PageSourceSearch

https://aulasneo.com/assets/index-BNfEtA-r.js

js aulasneo.com collected 2026-10-03 20:55:01 UTC 965,277 bytes, 3,134 lines download raw bytes

vendor: 5,691 bytes, lines 1-9
1var ld=e=>{throw TypeError(e)};var Yr=(e,n,a)=>n.has(e)||ld("Cannot "+a);var A=(e,n,a)=>(Yr(e,n,"read from private field"),a?a.call(e):n.get(e)),ne=(e,n,a)=>n.has(e)?ld("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(e):n.set(e,a),B=(e,n,a,s)=>(Yr(e,n,"write to private field"),s?s.call(e,a):n.set(e,a),a),Oe=(e,n,a)=>(Yr(e,n,"access private method"),a);var ao=(e,n,a,s)=>({set _(o){B(e,n,o,a)},get _(){return A(e,n,s)}});function Zg(e,n){for(var a=0;a<n.length;a++){const s=n[a];if(typeof s!="string"&&!Array.isArray(s)){for(const o in s)if(o!=="default"&&!(o in e)){const r=Object.getOwnPropertyDescriptor(s,o);r&&Object.defineProperty(e,o,r.get?r:{enumerable:!0,get:()=>s[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const n=document.createElement("link").relList;if(n&&n.supports&&n.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))s(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const i of r.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&s(i)}).observe(document,{childList:!0,subtree:!0});function a(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function s(o){if(o.ep)return;o.ep=!0;const r=a(o);fetch(o.href,r)}})();function Lp(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Xp={exports:{}},jr={},_p={exports:{}},V={};/**
2 * @license React
3 * react.production.min.js
4 *
5 * Copyright (c) Facebook, Inc. and its affiliates.
6 *
7 * This source code is licensed under the MIT license found in the
8 * LICENSE file in the root directory of this source tree.
9 */var Vs=Symbol.for("react.element"),Jg=Symbol.for("react.portal"),ex=Symbol.for("react.fragment"),nx=Symbol.for("react.strict_mode"),tx=Symbol.for("react.profiler"),ax=Symbol.for("react.provider"),sx=Symbol.for("react.context"),ox=Symbol.for("react.forward_ref"),rx=Symbol.for("react.suspense"),ix=Symbol.for("react.memo"),lx=Symbol.for("react.lazy"),cd=Symbol.iterator;function cx(e){return e===null||typeof e!="object"?null:(e=cd&&e[cd]||e["@@iterator"],typeof e=="function"?e:null)}var Fp={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Rp=Object.assign,Dp={};function Ra(e,n,a){this.props=e,this.context=n,this.refs=Dp,this.updater=a||Fp}Ra.prototype.isReactComponent={};Ra.prototype.setState=function(e,n){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,n,"setState")};Ra.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Hp(){}Hp.prototype=Ra.prototype;function Xl(e,n,a){this.props=e,this.context=n,this.refs=Dp,this.updater=a||Fp}var _l=Xl.prototype=new Hp;_l.constructor=Xl;Rp(_l,Ra.prototype);_l.isPureReactComponent=!0;var dd=Array.isArray,Up=Object.prototype.hasOwnProperty,Fl={current:null},Bp={key:!0,ref:!0,__self:!0,__source:!0};function Wp(e,n,a){var s,o={},r=null,i=null;if(n!=null)for(s in n.ref!==void 0&&(i=n.ref),n.key!==void 0&&(r=""+n.key),n)Up.call(n,s)&&!Bp.hasOwnProperty(s)&&(o[s]=n[s]);var l=arguments.length-2;if(l===1)o.children=a;else if(1<l){for(var c=Array(l),d=0;d<l;d++)c[d]=arguments[d+2];o.children=c}if(e&&e.defaultProps)for(s in l=e.defaultProps,l)o[s]===void 0&&(o[s]=l[s]);return{$$typeof:Vs,type:e,key:r,ref:i,props:o,_owner:Fl.current}}function dx(e,n){return{$$typeof:Vs,type:e.type,key:n,ref:e.ref,props:e.props,_owner:e._owner}}function Rl(e){return typeof e=="object"&&e!==null&&e.$$typeof===Vs}function ux(e){var n={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(a){return n[a]})}var ud=/\/+/g;function Kr(e,n){return typeof e=="object"&&e!==null&&e.key!=null?ux(""+e.key):n.toString(36)}function Oo(e,n,a,s,o){var r=typeof e;(r==="undefined"||r==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(r){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case Vs:case Jg:i=!0}}if(i)return i=e,o=o(i),e=s===""?"."+Kr(i,0):s,dd(o)?(a="",e!=null&&(a=e.replace(ud,"$&/")+"/"),Oo(o,n,a,"",function(d){return d})):o!=null&&(Rl(o)&&(o=dx(o,a+(!o.key||i&&i.key===o.key?"":(""+o.key).replace(ud,"$&/")+"/")+e)),n.push(o)),1;if(i=0,s=s===""?".":s+":",dd(e))for(var l=0;l<e.length;l++){r=e[l];var c=s+Kr(r,l);i+=Oo(r,n,a,c,o)}else if(c=cx(e),typeof c=="function")for(e=c.call(e),l=0;!(r=e.next()).done;)r=r.value,c=s+Kr(r,l++),i+=Oo(r,n,a,c,o);else if(r==="object")throw n=String(e),Error("Objects are not valid as a React child (found: "+(n==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":n)+"). If you meant to render a collection of children, use an array instead.");return i}function so(e,n,a){if(e==null)return e;var s=[],o=0;return Oo(e,s,"","",function(r){return n.call(a,r,o++)}),s}function px(e){if(e._status===-1){var n=e._result;n=n(),n.then(function(a){(e._status===0||e._status===-1)&&(e._status=1,e._result=a)},function(a){(e._status===0||e._status===-1)&&(e._status=2,e._result=a)}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var _e={current:null},Co={transition:null},mx={ReactCurrentDispatcher:_e,ReactCurrentBatchConfig:Co,ReactCurrentOwner:Fl};function Gp(){throw Error("act(...) is not supported in production builds of React.")}
vendor: 5,684 bytes, lines 9-25
9V.Children={map:so,forEach:function(e,n,a){so(e,function(){n.apply(this,arguments)},a)},count:function(e){var n=0;return so(e,function(){n++}),n},toArray:function(e){return so(e,function(n){return n})||[]},only:function(e){if(!Rl(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};V.Component=Ra;V.Fragment=ex;V.Profiler=tx;V.PureComponent=Xl;V.StrictMode=nx;V.Suspense=rx;V.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=mx;V.act=Gp;V.cloneElement=function(e,n,a){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var s=Rp({},e.props),o=e.key,r=e.ref,i=e._owner;if(n!=null){if(n.ref!==void 0&&(r=n.ref,i=Fl.current),n.key!==void 0&&(o=""+n.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in n)Up.call(n,c)&&!Bp.hasOwnProperty(c)&&(s[c]=n[c]===void 0&&l!==void 0?l[c]:n[c])}var c=arguments.length-2;if(c===1)s.children=a;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];s.children=l}return{$$typeof:Vs,type:e.type,key:o,ref:r,props:s,_owner:i}};V.createContext=function(e){return e={$$typeof:sx,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:ax,_context:e},e.Consumer=e};V.createElement=Wp;V.createFactory=function(e){var n=Wp.bind(null,e);return n.type=e,n};V.createRef=function(){return{current:null}};V.forwardRef=function(e){return{$$typeof:ox,render:e}};V.isValidElement=Rl;V.lazy=function(e){return{$$typeof:lx,_payload:{_status:-1,_result:e},_init:px}};V.memo=function(e,n){return{$$typeof:ix,type:e,compare:n===void 0?null:n}};V.startTransition=function(e){var n=Co.transition;Co.transition={};try{e()}finally{Co.transition=n}};V.unstable_act=Gp;V.useCallback=function(e,n){return _e.current.useCallback(e,n)};V.useContext=function(e){return _e.current.useContext(e)};V.useDebugValue=function(){};V.useDeferredValue=function(e){return _e.current.useDeferredValue(e)};V.useEffect=function(e,n){return _e.current.useEffect(e,n)};V.useId=function(){return _e.current.useId()};V.useImperativeHandle=function(e,n,a){return _e.current.useImperativeHandle(e,n,a)};V.useInsertionEffect=function(e,n){return _e.current.useInsertionEffect(e,n)};V.useLayoutEffect=function(e,n){return _e.current.useLayoutEffect(e,n)};V.useMemo=function(e,n){return _e.current.useMemo(e,n)};V.useReducer=function(e,n,a){return _e.current.useReducer(e,n,a)};V.useRef=function(e){return _e.current.useRef(e)};V.useState=function(e){return _e.current.useState(e)};V.useSyncExternalStore=function(e,n,a){return _e.current.useSyncExternalStore(e,n,a)};V.useTransition=function(){return _e.current.useTransition()};V.version="18.3.1";_p.exports=V;var v=_p.exports;const at=Lp(v),hx=Zg({__proto__:null,default:at},[v]);/**
10 * @license React
11 * react-jsx-runtime.production.min.js
12 *
13 * Copyright (c) Facebook, Inc. and its affiliates.
14 *
15 * This source code is licensed under the MIT license found in the
16 * LICENSE file in the root directory of this source tree.
17 */var fx=v,gx=Symbol.for("react.element"),xx=Symbol.for("react.fragment"),yx=Object.prototype.hasOwnProperty,vx=fx.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,bx={key:!0,ref:!0,__self:!0,__source:!0};function Vp(e,n,a){var s,o={},r=null,i=null;a!==void 0&&(r=""+a),n.key!==void 0&&(r=""+n.key),n.ref!==void 0&&(i=n.ref);for(s in n)yx.call(n,s)&&!bx.hasOwnProperty(s)&&(o[s]=n[s]);if(e&&e.defaultProps)for(s in n=e.defaultProps,n)o[s]===void 0&&(o[s]=n[s]);return{$$typeof:gx,type:e,key:r,ref:i,props:o,_owner:vx.current}}jr.Fragment=xx;jr.jsx=Vp;jr.jsxs=Vp;Xp.exports=jr;var t=Xp.exports,$p={exports:{}},en={},Qp={exports:{}},Yp={};/**
18 * @license React
19 * scheduler.production.min.js
20 *
21 * Copyright (c) Facebook, Inc. and its affiliates.
22 *
23 * This source code is licensed under the MIT license found in the
24 * LICENSE file in the root directory of this source tree.
25 */(function(e){function n(C,I){var R=C.length;C.push(I);e:for(;0<R;){var W=R-1>>>1,le=C[W];if(0<o(le,I))C[W]=I,C[R]=le,R=W;else break e}}function a(C){return C.length===0?null:C[0]}function s(C){if(C.length===0)return null;var I=C[0],R=C.pop();if(R!==I){C[0]=R;e:for(var W=0,le=C.length,hn=le>>>1;W<hn;){var sn=2*(W+1)-1,$a=C[sn],Fn=sn+1,Pt=C[Fn];if(0>o($a,R))Fn<le&&0>o(Pt,$a)?(C[W]=Pt,C[Fn]=R,W=Fn):(C[W]=$a,C[sn]=R,W=sn);else if(Fn<le&&0>o(Pt,R))C[W]=Pt,C[Fn]=R,W=Fn;else break e}}return I}function o(C,I){var R=C.sortIndex-I.sortIndex;return R!==0?R:C.id-I.id}if(typeof performance=="object"&&typeof performance.now=="function"){var r=performance;e.unstable_now=function(){return r.now()}}else{var i=Date,l=i.now();e.unstable_now=function(){return i.now()-l}}var c=[],d=[],u=1,p=null,m=3,y=!1,b=!1,x=!1,j=typeof setTimeout=="function"?setTimeout:null,f=typeof clearTimeout=="function"?clearTimeout:null,h=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function g(C){for(var I=a(d);I!==null;){if(I.callback===null)s(d);else if(I.startTime<=C)s(d),I.sortIndex=I.expirationTime,n(c,I);else break;I=a(d)}}function w(C){if(x=!1,g(C),!b)if(a(c)!==null)b=!0,G(k);else{var I=a(d);I!==null&&Z(w,I.startTime-C)}}function k(C,I){b=!1,x&&(x=!1,f(O),O=-1),y=!0;var R=m;try{for(g(I),p=a(c);p!==null&&(!(p.expirationTime>I)||C&&!H());){var W=p.callback;if(typeof W=="function"){p.callback=null,m=p.priorityLevel;var le=W(p.expirationTime<=I);I=e.unstable_now(),typeof le=="function"?p.callback=le:p===a(c)&&s(c),g(I)}else s(c);p=a(c)}if(p!==null)var hn=!0;else{var sn=a(d);
vendor: 8,516 bytes, lines 25-34
25sn!==null&&Z(w,sn.startTime-I),hn=!1}return hn}finally{p=null,m=R,y=!1}}var N=!1,S=null,O=-1,F=5,P=-1;function H(){return!(e.unstable_now()-P<F)}function M(){if(S!==null){var C=e.unstable_now();P=C;var I=!0;try{I=S(!0,C)}finally{I?Q():(N=!1,S=null)}}else N=!1}var Q;if(typeof h=="function")Q=function(){h(M)};else if(typeof MessageChannel<"u"){var T=new MessageChannel,ee=T.port2;T.port1.onmessage=M,Q=function(){ee.postMessage(null)}}else Q=function(){j(M,0)};function G(C){S=C,N||(N=!0,Q())}function Z(C,I){O=j(function(){C(e.unstable_now())},I)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(C){C.callback=null},e.unstable_continueExecution=function(){b||y||(b=!0,G(k))},e.unstable_forceFrameRate=function(C){0>C||125<C?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):F=0<C?Math.floor(1e3/C):5},e.unstable_getCurrentPriorityLevel=function(){return m},e.unstable_getFirstCallbackNode=function(){return a(c)},e.unstable_next=function(C){switch(m){case 1:case 2:case 3:var I=3;break;default:I=m}var R=m;m=I;try{return C()}finally{m=R}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(C,I){switch(C){case 1:case 2:case 3:case 4:case 5:break;default:C=3}var R=m;m=C;try{return I()}finally{m=R}},e.unstable_scheduleCallback=function(C,I,R){var W=e.unstable_now();switch(typeof R=="object"&&R!==null?(R=R.delay,R=typeof R=="number"&&0<R?W+R:W):R=W,C){case 1:var le=-1;break;case 2:le=250;break;case 5:le=1073741823;break;case 4:le=1e4;break;default:le=5e3}return le=R+le,C={id:u++,callback:I,priorityLevel:C,startTime:R,expirationTime:le,sortIndex:-1},R>W?(C.sortIndex=R,n(d,C),a(c)===null&&C===a(d)&&(x?(f(O),O=-1):x=!0,Z(w,R-W))):(C.sortIndex=le,n(c,C),b||y||(b=!0,G(k))),C},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(C){var I=m;return function(){var R=m;m=I;try{return C.apply(this,arguments)}finally{m=R}}}})(Yp);Qp.exports=Yp;var wx=Qp.exports;/**
26 * @license React
27 * react-dom.production.min.js
28 *
29 * Copyright (c) Facebook, Inc. and its affiliates.
30 *
31 * This source code is licensed under the MIT license found in the
32 * LICENSE file in the root directory of this source tree.
33 */var jx=v,Je=wx;function z(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,a=1;a<arguments.length;a++)n+="&args[]="+encodeURIComponent(arguments[a]);return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var Kp=new Set,ks={};function Kt(e,n){za(e,n),za(e+"Capture",n)}function za(e,n){for(ks[e]=n,e=0;e<n.length;e++)Kp.add(n[e])}var Vn=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Mi=Object.prototype.hasOwnProperty,kx=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,pd={},md={};function Nx(e){return Mi.call(md,e)?!0:Mi.call(pd,e)?!1:kx.test(e)?md[e]=!0:(pd[e]=!0,!1)}function Sx(e,n,a,s){if(a!==null&&a.type===0)return!1;switch(typeof n){case"function":case"symbol":return!0;case"boolean":return s?!1:a!==null?!a.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Ax(e,n,a,s){if(n===null||typeof n>"u"||Sx(e,n,a,s))return!0;if(s)return!1;if(a!==null)switch(a.type){case 3:return!n;case 4:return n===!1;case 5:return isNaN(n);case 6:return isNaN(n)||1>n}return!1}function Fe(e,n,a,s,o,r,i){this.acceptsBooleans=n===2||n===3||n===4,this.attributeName=s,this.attributeNamespace=o,this.mustUseProperty=a,this.propertyName=e,this.type=n,this.sanitizeURL=r,this.removeEmptyString=i}var Ae={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){Ae[e]=new Fe(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var n=e[0];Ae[n]=new Fe(n,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){Ae[e]=new Fe(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){Ae[e]=new Fe(e,2,!1,e,null,!1,!1)});"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){Ae[e]=new Fe(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){Ae[e]=new Fe(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){Ae[e]=new Fe(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){Ae[e]=new Fe(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){Ae[e]=new Fe(e,5,!1,e.toLowerCase(),null,!1,!1)});var Dl=/[\-:]([a-z])/g;function Hl(e){return e[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var n=e.replace(Dl,Hl);Ae[n]=new Fe(n,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var n=e.replace(Dl,Hl);Ae[n]=new Fe(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var n=e.replace(Dl,Hl);Ae[n]=new Fe(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){Ae[e]=new Fe(e,1,!1,e.toLowerCase(),null,!1,!1)});Ae.xlinkHref=new Fe("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){Ae[e]=new Fe(e,1,!1,e.toLowerCase(),null,!0,!0)});function Ul(e,n,a,s){var o=Ae.hasOwnProperty(n)?Ae[n]:null;(o!==null?o.type!==0:s||!(2<n.length)||n[0]!=="o"&&n[0]!=="O"||n[1]!=="n"&&n[1]!=="N")&&(Ax(n,a,o,s)&&(a=null),s||o===null?Nx(n)&&(a===null?e.removeAttribute(n):e.setAttribute(n,""+a)):o.mustUseProperty?e[o.propertyName]=a===null?o.type===3?!1:"":a:(n=o.attributeName,s=o.attributeNamespace,a===null?e.removeAttribute(n):(o=o.type,a=o===3||o===4&&a===!0?"":""+a,s?e.setAttributeNS(s,n,a):e.setAttribute(n,a))))}var Jn=jx.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,oo=Symbol.for("react.element"),na=Symbol.for("react.portal"),ta=Symbol.for("react.fragment"),Bl=Symbol.for("react.strict_mode"),Ii=Symbol.for("react.profiler"),Zp=Symbol.for("react.provider"),Jp=Symbol.for("react.context"),Wl=Symbol.for("react.forward_ref"),Li=Symbol.for("react.suspense"),Xi=Symbol.for("react.suspense_list"),Gl=Symbol.for("react.memo"),ot=Symbol.for("react.lazy"),em=Symbol.for("react.offscreen"),hd=Symbol.iterator;function Ya(e){return e===null||typeof e!="object"?null:(e=hd&&e[hd]||e["@@iterator"],typeof e=="function"?e:null)}var pe=Object.assign,Zr;function ls(e){if(Zr===void 0)try{throw Error()}catch(a){var n=a.stack.trim().match(/\n( *(at )?)/);Zr=n&&n[1]||""}return`
34`+Zr+e}
vendor: 5,262 bytes, lines 34-37
34var Jr=!1;function ei(e,n){if(!e||Jr)return"";Jr=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(n)if(n=function(){throw Error()},Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(n,[])}catch(d){var s=d}Reflect.construct(e,[],n)}else{try{n.call()}catch(d){s=d}e.call(n.prototype)}else{try{throw Error()}catch(d){s=d}e()}}catch(d){if(d&&s&&typeof d.stack=="string"){for(var o=d.stack.split(`
35`),r=s.stack.split(`
36`),i=o.length-1,l=r.length-1;1<=i&&0<=l&&o[i]!==r[l];)l--;for(;1<=i&&0<=l;i--,l--)if(o[i]!==r[l]){if(i!==1||l!==1)do if(i--,l--,0>l||o[i]!==r[l]){var c=`
37`+o[i].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=i&&0<=l);break}}}finally{Jr=!1,Error.prepareStackTrace=a}return(e=e?e.displayName||e.name:"")?ls(e):""}function Ox(e){switch(e.tag){case 5:return ls(e.type);case 16:return ls("Lazy");case 13:return ls("Suspense");case 19:return ls("SuspenseList");case 0:case 2:case 15:return e=ei(e.type,!1),e;case 11:return e=ei(e.type.render,!1),e;case 1:return e=ei(e.type,!0),e;default:return""}}function _i(e){if(e==null)return null;if(typeof e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case ta:return"Fragment";case na:return"Portal";case Ii:return"Profiler";case Bl:return"StrictMode";case Li:return"Suspense";case Xi:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Jp:return(e.displayName||"Context")+".Consumer";case Zp:return(e._context.displayName||"Context")+".Provider";case Wl:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Gl:return n=e.displayName||null,n!==null?n:_i(e.type)||"Memo";case ot:n=e._payload,e=e._init;try{return _i(e(n))}catch{}}return null}function Cx(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=n.render,e=e.displayName||e.name||"",n.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return _i(n);case 8:return n===Bl?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof n=="function")return n.displayName||n.name||null;if(typeof n=="string")return n}return null}function Nt(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function nm(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function Ex(e){var n=nm(e)?"checked":"value",a=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),s=""+e[n];if(!e.hasOwnProperty(n)&&typeof a<"u"&&typeof a.get=="function"&&typeof a.set=="function"){var o=a.get,r=a.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return o.call(this)},set:function(i){s=""+i,r.call(this,i)}}),Object.defineProperty(e,n,{enumerable:a.enumerable}),{getValue:function(){return s},setValue:function(i){s=""+i},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function ro(e){e._valueTracker||(e._valueTracker=Ex(e))}function tm(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var a=n.getValue(),s="";return e&&(s=nm(e)?e.checked?"true":"false":e.value),e=s,e!==a?(n.setValue(e),!0):!1}function Uo(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}function Fi(e,n){var a=n.checked;return pe({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:a??e._wrapperState.initialChecked})}function fd(e,n){var a=n.defaultValue==null?"":n.defaultValue,s=n.checked!=null?n.checked:n.defaultChecked;a=Nt(n.value!=null?n.value:a),e._wrapperState={initialChecked:s,initialValue:a,controlled:n.type==="checkbox"||n.type==="radio"?n.checked!=null:n.value!=null}}function am(e,n){n=n.checked,n!=null&&Ul(e,"checked",n,!1)}function Ri(e,n){am(e,n);var a=Nt(n.value),s=n.type;if(a!=null)s==="number"?(a===0&&e.value===""||e.value!=a)&&(e.value=""+a):e.value!==""+a&&(e.value=""+a);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}n.hasOwnProperty("value")?Di(e,n.type,a):n.hasOwnProperty("defaultValue")&&Di(e,n.type,Nt(n.defaultValue)),n.checked==null&&n.defaultChecked!=null&&(e.defaultChecked=!!n.defaultChecked)}function gd(e,n,a){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var s=n.type;if(!(s!=="submit"&&s!=="reset"||n.value!==void 0&&n.value!==null))return;n=""+e._wrapperState.initialValue,a||n===e.value||(e.value=n),e.defaultValue=n}a=e.name,a!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,a!==""&&(e.name=a)}function Di(e,n,a){(n!=="number"||Uo(e.ownerDocument)!==e)&&(a==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+a&&(e.defaultValue=""+a))}var cs=Array.isArray;
vendor: 10,202 bytes, line 37
37function ma(e,n,a,s){if(e=e.options,n){n={};for(var o=0;o<a.length;o++)n["$"+a[o]]=!0;for(a=0;a<e.length;a++)o=n.hasOwnProperty("$"+e[a].value),e[a].selected!==o&&(e[a].selected=o),o&&s&&(e[a].defaultSelected=!0)}else{for(a=""+Nt(a),n=null,o=0;o<e.length;o++){if(e[o].value===a){e[o].selected=!0,s&&(e[o].defaultSelected=!0);return}n!==null||e[o].disabled||(n=e[o])}n!==null&&(n.selected=!0)}}function Hi(e,n){if(n.dangerouslySetInnerHTML!=null)throw Error(z(91));return pe({},n,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function xd(e,n){var a=n.value;if(a==null){if(a=n.children,n=n.defaultValue,a!=null){if(n!=null)throw Error(z(92));if(cs(a)){if(1<a.length)throw Error(z(93));a=a[0]}n=a}n==null&&(n=""),a=n}e._wrapperState={initialValue:Nt(a)}}function sm(e,n){var a=Nt(n.value),s=Nt(n.defaultValue);a!=null&&(a=""+a,a!==e.value&&(e.value=a),n.defaultValue==null&&e.defaultValue!==a&&(e.defaultValue=a)),s!=null&&(e.defaultValue=""+s)}function yd(e){var n=e.textContent;n===e._wrapperState.initialValue&&n!==""&&n!==null&&(e.value=n)}function om(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function Ui(e,n){return e==null||e==="http://www.w3.org/1999/xhtml"?om(n):e==="http://www.w3.org/2000/svg"&&n==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var io,rm=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(n,a,s,o){MSApp.execUnsafeLocalFunction(function(){return e(n,a,s,o)})}:e}(function(e,n){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=n;else{for(io=io||document.createElement("div"),io.innerHTML="<svg>"+n.valueOf().toString()+"</svg>",n=io.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}});function Ns(e,n){if(n){var a=e.firstChild;if(a&&a===e.lastChild&&a.nodeType===3){a.nodeValue=n;return}}e.textContent=n}var ps={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},zx=["Webkit","ms","Moz","O"];Object.keys(ps).forEach(function(e){zx.forEach(function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),ps[n]=ps[e]})});function im(e,n,a){return n==null||typeof n=="boolean"||n===""?"":a||typeof n!="number"||n===0||ps.hasOwnProperty(e)&&ps[e]?(""+n).trim():n+"px"}function lm(e,n){e=e.style;for(var a in n)if(n.hasOwnProperty(a)){var s=a.indexOf("--")===0,o=im(a,n[a],s);a==="float"&&(a="cssFloat"),s?e.setProperty(a,o):e[a]=o}}var qx=pe({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Bi(e,n){if(n){if(qx[e]&&(n.children!=null||n.dangerouslySetInnerHTML!=null))throw Error(z(137,e));if(n.dangerouslySetInnerHTML!=null){if(n.children!=null)throw Error(z(60));if(typeof n.dangerouslySetInnerHTML!="object"||!("__html"in n.dangerouslySetInnerHTML))throw Error(z(61))}if(n.style!=null&&typeof n.style!="object")throw Error(z(62))}}function Wi(e,n){if(e.indexOf("-")===-1)return typeof n.is=="string";switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var Gi=null;function Vl(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var Vi=null,ha=null,fa=null;function vd(e){if(e=Ys(e)){if(typeof Vi!="function")throw Error(z(280));var n=e.stateNode;n&&(n=Or(n),Vi(e.stateNode,e.type,n))}}function cm(e){ha?fa?fa.push(e):fa=[e]:ha=e}function dm(){if(ha){var e=ha,n=fa;if(fa=ha=null,vd(e),n)for(e=0;e<n.length;e++)vd(n[e])}}function um(e,n){return e(n)}function pm(){}var ni=!1;function mm(e,n,a){if(ni)return e(n,a);ni=!0;try{return um(e,n,a)}finally{ni=!1,(ha!==null||fa!==null)&&(pm(),dm())}}function Ss(e,n){var a=e.stateNode;if(a===null)return null;var s=Or(a);if(s===null)return null;a=s[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(s=!s.disabled)||(e=e.type,s=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!s;break e;default:e=!1}if(e)return null;if(a&&typeof a!="function")throw Error(z(231,n,typeof a));return a}var $i=!1;if(Vn)try{var Ka={};Object.defineProperty(Ka,"passive",{get:function(){$i=!0}}),window.addEventListener("test",Ka,Ka),window.removeEventListener("test",Ka,Ka)}catch{$i=!1}function Px(e,n,a,s,o,r,i,l,c){var d=Array.prototype.slice.call(arguments,3);try{n.apply(a,d)}catch(u){this.onError(u)}}var ms=!1,Bo=null,Wo=!1,Qi=null,Tx={onError:function(e){ms=!0,Bo=e}};function Mx(e,n,a,s,o,r,i,l,c){ms=!1,Bo=null,Px.apply(Tx,arguments)}function Ix(e,n,a,s,o,r,i,l,c){if(Mx.apply(this,arguments),ms){if(ms){var d=Bo;ms=!1,Bo=null}else throw Error(z(198));Wo||(Wo=!0,Qi=d)}}function Zt(e){var n=e,a=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,n.flags&4098&&(a=n.return),e=n.return;while(e)}return n.tag===3?a:null}function hm(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function bd(e){if(Zt(e)!==e)throw Error(z(188))}function Lx(e){var n=e.alternate;if(!n){if(n=Zt(e),n===null)throw Error(z(188));return n!==e?null:e}for(var a=e,s=n;;){var o=a.return;if(o===null)break;var r=o.alternate;if(r===null){if(s=o.return,s!==null){a=s;continue}break}if(o.child===r.child){for(r=o.child;r;){if(r===a)return bd(o),e;if(r===s)return bd(o),n;r=r.sibling}throw Error(z(188))}if(a.return!==s.return)a=o,s=r;else{for(var i=!1,l=o.child;l;){if(l===a){i=!0,a=o,s=r;break}if(l===s){i=!0,s=o,a=r;break}l=l.sibling}if(!i){for(l=r.child;l;){if(l===a){i=!0,a=r,s=o;break}if(l===s){i=!0,s=r,a=o;break}l=l.sibling}if(!i)throw Error(z(189))}}if(a.alternate!==s)throw Error(z(190))}if(a.tag!==3)throw Error(z(188));return a.stateNode.current===a?e:n}function fm(e){return e=Lx(e),e!==null?gm(e):null}function gm(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var n=gm(e);if(n!==null)return n;e=e.sibling}return null}var xm=Je.unstable_scheduleCallback,wd=Je.unstable_cancelCallback,Xx=Je.unstable_shouldYield,_x=Je.unstable_requestPaint,ge=Je.unstable_now,Fx=Je.unstable_getCurrentPriorityLevel,$l=Je.unstable_ImmediatePriority,ym=Je.unstable_UserBlockingPriority,Go=Je.unstable_NormalPriority,Rx=Je.unstable_LowPriority,vm=Je.unstable_IdlePriority,kr=null,Tn=null;function Dx(e){if(Tn&&typeof Tn.onCommitFiberRoot=="function")try{Tn.onCommitFiberRoot(kr,e,void 0,(e.current.flags&128)===128)}catch{}}var wn=Math.clz32?Math.clz32:Bx,Hx=Math.log,Ux=Math.LN2;function Bx(e){return e>>>=0,e===0?32:31-(Hx(e)/Ux|0)|0}var lo=64,co=4194304;function ds(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function Vo(e,n){var a=e.pendingLanes;if(a===0)return 0;var s=0,o=e.suspendedLanes,r=e.pingedLanes,i=a&268435455;if(i!==0){var l=i&~o;l!==0?s=ds(l):(r&=i,r!==0&&(s=ds(r)))}else i=a&~o,i!==0?s=ds(i):r!==0&&(s=ds(r));if(s===0)return 0;if(n!==0&&n!==s&&!(n&o)&&(o=s&-s,r=n&-n,o>=r||o===16&&(r&4194240)!==0))return n;if(s&4&&(s|=a&16),n=e.entangledLanes,n!==0)for(e=e.entanglements,n&=s;0<n;)a=31-wn(n),o=1<<a,s|=e[a],n&=~o;return s}function Wx(e,n){switch(e){case 1:case 2:case 4:return n+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Gx(e,n){for(var a=e.suspendedLanes,s=e.pingedLanes,o=e.expirationTimes,r=e.pendingLanes;0<r;){var i=31-wn(r),l=1<<i,c=o[i];c===-1?(!(l&a)||l&s)&&(o[i]=Wx(l,n)):c<=n&&(e.expiredLanes|=l),r&=~l}}function Yi(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function bm(){var e=lo;return lo<<=1,!(lo&4194240)&&(lo=64),e}function ti(e){for(var n=[],a=0;31>a;a++)n.push(e);return n}function $s(e,n,a){e.pendingLanes|=n,n!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,n=31-wn(n),e[n]=a}function Vx(e,n){var a=e.pendingLanes&~n;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=n,e.mutableReadLanes&=n,e.entangledLanes&=n,n=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0<a;){var o=31-wn(a),r=1<<o;n[o]=0,s[o]=-1,e[o]=-1,a&=~r}}function Ql(e,n){var a=e.entangledLanes|=n;for(e=e.entanglements;a;){var s=31-wn(a),o=1<<s;o&n|e[s]&n&&(e[s]|=n),a&=~o}}var te=0;function wm(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var jm,Yl,km,Nm,Sm,Ki=!1,uo=[],gt=null,xt=null,yt=null,As=new Map,Os=new Map,it=[],$x="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");
vendor: 13,550 bytes, line 37
37function jd(e,n){switch(e){case"focusin":case"focusout":gt=null;break;case"dragenter":case"dragleave":xt=null;break;case"mouseover":case"mouseout":yt=null;break;case"pointerover":case"pointerout":As.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":Os.delete(n.pointerId)}}function Za(e,n,a,s,o,r){return e===null||e.nativeEvent!==r?(e={blockedOn:n,domEventName:a,eventSystemFlags:s,nativeEvent:r,targetContainers:[o]},n!==null&&(n=Ys(n),n!==null&&Yl(n)),e):(e.eventSystemFlags|=s,n=e.targetContainers,o!==null&&n.indexOf(o)===-1&&n.push(o),e)}function Qx(e,n,a,s,o){switch(n){case"focusin":return gt=Za(gt,e,n,a,s,o),!0;case"dragenter":return xt=Za(xt,e,n,a,s,o),!0;case"mouseover":return yt=Za(yt,e,n,a,s,o),!0;case"pointerover":var r=o.pointerId;return As.set(r,Za(As.get(r)||null,e,n,a,s,o)),!0;case"gotpointercapture":return r=o.pointerId,Os.set(r,Za(Os.get(r)||null,e,n,a,s,o)),!0}return!1}function Am(e){var n=It(e.target);if(n!==null){var a=Zt(n);if(a!==null){if(n=a.tag,n===13){if(n=hm(a),n!==null){e.blockedOn=n,Sm(e.priority,function(){km(a)});return}}else if(n===3&&a.stateNode.current.memoizedState.isDehydrated){e.blockedOn=a.tag===3?a.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Eo(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var a=Zi(e.domEventName,e.eventSystemFlags,n[0],e.nativeEvent);if(a===null){a=e.nativeEvent;var s=new a.constructor(a.type,a);Gi=s,a.target.dispatchEvent(s),Gi=null}else return n=Ys(a),n!==null&&Yl(n),e.blockedOn=a,!1;n.shift()}return!0}function kd(e,n,a){Eo(e)&&a.delete(n)}function Yx(){Ki=!1,gt!==null&&Eo(gt)&&(gt=null),xt!==null&&Eo(xt)&&(xt=null),yt!==null&&Eo(yt)&&(yt=null),As.forEach(kd),Os.forEach(kd)}function Ja(e,n){e.blockedOn===n&&(e.blockedOn=null,Ki||(Ki=!0,Je.unstable_scheduleCallback(Je.unstable_NormalPriority,Yx)))}function Cs(e){function n(o){return Ja(o,e)}if(0<uo.length){Ja(uo[0],e);for(var a=1;a<uo.length;a++){var s=uo[a];s.blockedOn===e&&(s.blockedOn=null)}}for(gt!==null&&Ja(gt,e),xt!==null&&Ja(xt,e),yt!==null&&Ja(yt,e),As.forEach(n),Os.forEach(n),a=0;a<it.length;a++)s=it[a],s.blockedOn===e&&(s.blockedOn=null);for(;0<it.length&&(a=it[0],a.blockedOn===null);)Am(a),a.blockedOn===null&&it.shift()}var ga=Jn.ReactCurrentBatchConfig,$o=!0;function Kx(e,n,a,s){var o=te,r=ga.transition;ga.transition=null;try{te=1,Kl(e,n,a,s)}finally{te=o,ga.transition=r}}function Zx(e,n,a,s){var o=te,r=ga.transition;ga.transition=null;try{te=4,Kl(e,n,a,s)}finally{te=o,ga.transition=r}}function Kl(e,n,a,s){if($o){var o=Zi(e,n,a,s);if(o===null)pi(e,n,s,Qo,a),jd(e,s);else if(Qx(o,e,n,a,s))s.stopPropagation();else if(jd(e,s),n&4&&-1<$x.indexOf(e)){for(;o!==null;){var r=Ys(o);if(r!==null&&jm(r),r=Zi(e,n,a,s),r===null&&pi(e,n,s,Qo,a),r===o)break;o=r}o!==null&&s.stopPropagation()}else pi(e,n,s,null,a)}}var Qo=null;function Zi(e,n,a,s){if(Qo=null,e=Vl(s),e=It(e),e!==null)if(n=Zt(e),n===null)e=null;else if(a=n.tag,a===13){if(e=hm(n),e!==null)return e;e=null}else if(a===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null);return Qo=e,null}function Om(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Fx()){case $l:return 1;case ym:return 4;case Go:case Rx:return 16;case vm:return 536870912;default:return 16}default:return 16}}var ht=null,Zl=null,zo=null;function Cm(){if(zo)return zo;var e,n=Zl,a=n.length,s,o="value"in ht?ht.value:ht.textContent,r=o.length;for(e=0;e<a&&n[e]===o[e];e++);var i=a-e;for(s=1;s<=i&&n[a-s]===o[r-s];s++);return zo=o.slice(e,1<s?1-s:void 0)}function qo(e){var n=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&n===13&&(e=13)):e=n,e===10&&(e=13),32<=e||e===13?e:0}function po(){return!0}function Nd(){return!1}function nn(e){function n(a,s,o,r,i){this._reactName=a,this._targetInst=o,this.type=s,this.nativeEvent=r,this.target=i,this.currentTarget=null;for(var l in e)e.hasOwnProperty(l)&&(a=e[l],this[l]=a?a(r):r[l]);return this.isDefaultPrevented=(r.defaultPrevented!=null?r.defaultPrevented:r.returnValue===!1)?po:Nd,this.isPropagationStopped=Nd,this}return pe(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():typeof a.returnValue!="unknown"&&(a.returnValue=!1),this.isDefaultPrevented=po)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():typeof a.cancelBubble!="unknown"&&(a.cancelBubble=!0),this.isPropagationStopped=po)},persist:function(){},isPersistent:po}),n}var Da={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Jl=nn(Da),Qs=pe({},Da,{view:0,detail:0}),Jx=nn(Qs),ai,si,es,Nr=pe({},Qs,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:ec,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==es&&(es&&e.type==="mousemove"?(ai=e.screenX-es.screenX,si=e.screenY-es.screenY):si=ai=0,es=e),ai)},movementY:function(e){return"movementY"in e?e.movementY:si}}),Sd=nn(Nr),ey=pe({},Nr,{dataTransfer:0}),ny=nn(ey),ty=pe({},Qs,{relatedTarget:0}),oi=nn(ty),ay=pe({},Da,{animationName:0,elapsedTime:0,pseudoElement:0}),sy=nn(ay),oy=pe({},Da,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),ry=nn(oy),iy=pe({},Da,{data:0}),Ad=nn(iy),ly={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},cy={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},dy={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function uy(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=dy[e])?!!n[e]:!1}function ec(){return uy}var py=pe({},Qs,{key:function(e){if(e.key){var n=ly[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=qo(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?cy[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:ec,charCode:function(e){return e.type==="keypress"?qo(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?qo(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),my=nn(py),hy=pe({},Nr,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Od=nn(hy),fy=pe({},Qs,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:ec}),gy=nn(fy),xy=pe({},Da,{propertyName:0,elapsedTime:0,pseudoElement:0}),yy=nn(xy),vy=pe({},Nr,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),by=nn(vy),wy=[9,13,27,32],nc=Vn&&"CompositionEvent"in window,hs=null;Vn&&"documentMode"in document&&(hs=document.documentMode);var jy=Vn&&"TextEvent"in window&&!hs,Em=Vn&&(!nc||hs&&8<hs&&11>=hs),Cd=" ",Ed=!1;function zm(e,n){switch(e){case"keyup":return wy.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qm(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var aa=!1;function ky(e,n){switch(e){case"compositionend":return qm(n);case"keypress":return n.which!==32?null:(Ed=!0,Cd);case"textInput":return e=n.data,e===Cd&&Ed?null:e;default:return null}}function Ny(e,n){if(aa)return e==="compositionend"||!nc&&zm(e,n)?(e=Cm(),zo=Zl=ht=null,aa=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return Em&&n.locale!=="ko"?null:n.data;default:return null}}var Sy={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function zd(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!Sy[e.type]:n==="textarea"}function Pm(e,n,a,s){cm(s),n=Yo(n,"onChange"),0<n.length&&(a=new Jl("onChange","change",null,a,s),e.push({event:a,listeners:n}))}var fs=null,Es=null;function Ay(e){Um(e,0)}function Sr(e){var n=ra(e);if(tm(n))return e}function Oy(e,n){if(e==="change")return n}var Tm=!1;if(Vn){var ri;if(Vn){var ii="oninput"in document;if(!ii){var qd=document.createElement("div");qd.setAttribute("oninput","return;"),ii=typeof qd.oninput=="function"}ri=ii}else ri=!1;Tm=ri&&(!document.documentMode||9<document.documentMode)}function Pd(){fs&&(fs.detachEvent("onpropertychange",Mm),Es=fs=null)}function Mm(e){if(e.propertyName==="value"&&Sr(Es)){var n=[];Pm(n,Es,e,Vl(e)),mm(Ay,n)}}function Cy(e,n,a){e==="focusin"?(Pd(),fs=n,Es=a,fs.attachEvent("onpropertychange",Mm)):e==="focusout"&&Pd()}function Ey(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return Sr(Es)}function zy(e,n){if(e==="click")return Sr(n)}function qy(e,n){if(e==="input"||e==="change")return Sr(n)}function Py(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var kn=typeof Object.is=="function"?Object.is:Py;function zs(e,n){if(kn(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;var a=Object.keys(e),s=Object.keys(n);if(a.length!==s.length)return!1;for(s=0;s<a.length;s++){var o=a[s];if(!Mi.call(n,o)||!kn(e[o],n[o]))return!1}return!0}function Td(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Md(e,n){var a=Td(e);e=0;for(var s;a;){if(a.nodeType===3){if(s=e+a.textContent.length,e<=n&&s>=n)return{node:a,offset:n-e};e=s}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=Td(a)}}function Im(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Im(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Lm(){for(var e=window,n=Uo();n instanceof e.HTMLIFrameElement;){try{var a=typeof n.contentWindow.location.href=="string"}catch{a=!1}if(a)e=n.contentWindow;else break;n=Uo(e.document)}return n}function tc(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}function Ty(e){var n=Lm(),a=e.focusedElem,s=e.selectionRange;if(n!==a&&a&&a.ownerDocument&&Im(a.ownerDocument.documentElement,a)){if(s!==null&&tc(a)){if(n=s.start,e=s.end,e===void 0&&(e=n),"selectionStart"in a)a.selectionStart=n,a.selectionEnd=Math.min(e,a.value.length);else if(e=(n=a.ownerDocument||document)&&n.defaultView||window,e.getSelection){e=e.getSelection();var o=a.textContent.length,r=Math.min(s.start,o);s=s.end===void 0?r:Math.min(s.end,o),!e.extend&&r>s&&(o=s,s=r,r=o),o=Md(a,r);var i=Md(a,s);o&&i&&(e.rangeCount!==1||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&(n=n.createRange(),n.setStart(o.node,o.offset),e.removeAllRanges(),r>s?(e.addRange(n),e.extend(i.node,i.offset)):(n.setEnd(i.node,i.offset),e.addRange(n)))}}for(n=[],e=a;e=e.parentNode;)e.nodeType===1&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof a.focus=="function"&&a.focus(),a=0;a<n.length;a++)e=n[a],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var My=Vn&&"documentMode"in document&&11>=document.documentMode,sa=null,Ji=null,gs=null,el=!1;function Id(e,n,a){var s=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;el||sa==null||sa!==Uo(s)||(s=sa,"selectionStart"in s&&tc(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focu
vendor: 3,800 bytes, line 37
37sNode:s.focusNode,focusOffset:s.focusOffset}),gs&&zs(gs,s)||(gs=s,s=Yo(Ji,"onSelect"),0<s.length&&(n=new Jl("onSelect","select",null,n,a),e.push({event:n,listeners:s}),n.target=sa)))}function mo(e,n){var a={};return a[e.toLowerCase()]=n.toLowerCase(),a["Webkit"+e]="webkit"+n,a["Moz"+e]="moz"+n,a}var oa={animationend:mo("Animation","AnimationEnd"),animationiteration:mo("Animation","AnimationIteration"),animationstart:mo("Animation","AnimationStart"),transitionend:mo("Transition","TransitionEnd")},li={},Xm={};Vn&&(Xm=document.createElement("div").style,"AnimationEvent"in window||(delete oa.animationend.animation,delete oa.animationiteration.animation,delete oa.animationstart.animation),"TransitionEvent"in window||delete oa.transitionend.transition);function Ar(e){if(li[e])return li[e];if(!oa[e])return e;var n=oa[e],a;for(a in n)if(n.hasOwnProperty(a)&&a in Xm)return li[e]=n[a];return e}var _m=Ar("animationend"),Fm=Ar("animationiteration"),Rm=Ar("animationstart"),Dm=Ar("transitionend"),Hm=new Map,Ld="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Et(e,n){Hm.set(e,n),Kt(n,[e])}for(var ci=0;ci<Ld.length;ci++){var di=Ld[ci],Iy=di.toLowerCase(),Ly=di[0].toUpperCase()+di.slice(1);Et(Iy,"on"+Ly)}Et(_m,"onAnimationEnd");Et(Fm,"onAnimationIteration");Et(Rm,"onAnimationStart");Et("dblclick","onDoubleClick");Et("focusin","onFocus");Et("focusout","onBlur");Et(Dm,"onTransitionEnd");za("onMouseEnter",["mouseout","mouseover"]);za("onMouseLeave",["mouseout","mouseover"]);za("onPointerEnter",["pointerout","pointerover"]);za("onPointerLeave",["pointerout","pointerover"]);Kt("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Kt("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Kt("onBeforeInput",["compositionend","keypress","textInput","paste"]);Kt("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Kt("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Kt("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var us="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Xy=new Set("cancel close invalid load scroll toggle".split(" ").concat(us));function Xd(e,n,a){var s=e.type||"unknown-event";e.currentTarget=a,Ix(s,n,void 0,e),e.currentTarget=null}function Um(e,n){n=(n&4)!==0;for(var a=0;a<e.length;a++){var s=e[a],o=s.event;s=s.listeners;e:{var r=void 0;if(n)for(var i=s.length-1;0<=i;i--){var l=s[i],c=l.instance,d=l.currentTarget;if(l=l.listener,c!==r&&o.isPropagationStopped())break e;Xd(o,l,d),r=c}else for(i=0;i<s.length;i++){if(l=s[i],c=l.instance,d=l.currentTarget,l=l.listener,c!==r&&o.isPropagationStopped())break e;Xd(o,l,d),r=c}}}if(Wo)throw e=Qi,Wo=!1,Qi=null,e}function re(e,n){var a=n[ol];a===void 0&&(a=n[ol]=new Set);var s=e+"__bubble";a.has(s)||(Bm(n,e,2,!1),a.add(s))}function ui(e,n,a){var s=0;n&&(s|=4),Bm(a,e,s,n)}var ho="_reactListening"+Math.random().toString(36).slice(2);
vendor: 3,064 bytes, line 37
37function qs(e){if(!e[ho]){e[ho]=!0,Kp.forEach(function(a){a!=="selectionchange"&&(Xy.has(a)||ui(a,!1,e),ui(a,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[ho]||(n[ho]=!0,ui("selectionchange",!1,n))}}function Bm(e,n,a,s){switch(Om(n)){case 1:var o=Kx;break;case 4:o=Zx;break;default:o=Kl}a=o.bind(null,n,a,e),o=void 0,!$i||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(o=!0),s?o!==void 0?e.addEventListener(n,a,{capture:!0,passive:o}):e.addEventListener(n,a,!0):o!==void 0?e.addEventListener(n,a,{passive:o}):e.addEventListener(n,a,!1)}function pi(e,n,a,s,o){var r=s;if(!(n&1)&&!(n&2)&&s!==null)e:for(;;){if(s===null)return;var i=s.tag;if(i===3||i===4){var l=s.stateNode.containerInfo;if(l===o||l.nodeType===8&&l.parentNode===o)break;if(i===4)for(i=s.return;i!==null;){var c=i.tag;if((c===3||c===4)&&(c=i.stateNode.containerInfo,c===o||c.nodeType===8&&c.parentNode===o))return;i=i.return}for(;l!==null;){if(i=It(l),i===null)return;if(c=i.tag,c===5||c===6){s=r=i;continue e}l=l.parentNode}}s=s.return}mm(function(){var d=r,u=Vl(a),p=[];e:{var m=Hm.get(e);if(m!==void 0){var y=Jl,b=e;switch(e){case"keypress":if(qo(a)===0)break e;case"keydown":case"keyup":y=my;break;case"focusin":b="focus",y=oi;break;case"focusout":b="blur",y=oi;break;case"beforeblur":case"afterblur":y=oi;break;case"click":if(a.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":y=Sd;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":y=ny;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":y=gy;break;case _m:case Fm:case Rm:y=sy;break;case Dm:y=yy;break;case"scroll":y=Jx;break;case"wheel":y=by;break;case"copy":case"cut":case"paste":y=ry;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":y=Od}var x=(n&4)!==0,j=!x&&e==="scroll",f=x?m!==null?m+"Capture":null:m;x=[];for(var h=d,g;h!==null;){g=h;var w=g.stateNode;if(g.tag===5&&w!==null&&(g=w,f!==null&&(w=Ss(h,f),w!=null&&x.push(Ps(h,w,g)))),j)break;h=h.return}0<x.length&&(m=new y(m,b,null,a,u),p.push({event:m,listeners:x}))}}if(!(n&7)){e:{if(m=e==="mouseover"||e==="pointerover",y=e==="mouseout"||e==="pointerout",m&&a!==Gi&&(b=a.relatedTarget||a.fromElement)&&(It(b)||b[$n]))break e;if((y||m)&&(m=u.window===u?u:(m=u.ownerDocument)?m.defaultView||m.parentWindow:window,y?(b=a.relatedTarget||a.toElement,y=d,b=b?It(b):null,b!==null&&(j=Zt(b),b!==j||b.tag!==5&&b.tag!==6)&&(b=null)):(y=null,b=d),y!==b)){if(x=Sd,w="onMouseLeave",f="onMouseEnter",h="mouse",(e==="pointerout"||e==="pointerover")&&(x=Od,w="onPointerLeave",f="onPointerEnter",h="pointer"),j=y==null?m:ra(y),g=b==null?m:ra(b),m=new x(w,h+"leave",y,a,u),m.target=j,m.relatedTarget=g,w=null,It(u)===d&&(x=new x(f,h+"enter",b,a,u),x.target=g,x.relatedTarget=j,w=x),j=w,y&&b)n:{for(x=y,f=b,h=0,g=x;g;g=ea(g))h++;for(g=0,w=f;w;w=ea(w))g++;for(;0<h-g;)x=ea(x),h--;for(;0<g-h;
vendor: 5,557 bytes, lines 37-38
37)f=ea(f),g--;for(;h--;){if(x===f||f!==null&&x===f.alternate)break n;x=ea(x),f=ea(f)}x=null}else x=null;y!==null&&_d(p,m,y,x,!1),b!==null&&j!==null&&_d(p,j,b,x,!0)}}e:{if(m=d?ra(d):window,y=m.nodeName&&m.nodeName.toLowerCase(),y==="select"||y==="input"&&m.type==="file")var k=Oy;else if(zd(m))if(Tm)k=qy;else{k=Ey;var N=Cy}else(y=m.nodeName)&&y.toLowerCase()==="input"&&(m.type==="checkbox"||m.type==="radio")&&(k=zy);if(k&&(k=k(e,d))){Pm(p,k,a,u);break e}N&&N(e,m,d),e==="focusout"&&(N=m._wrapperState)&&N.controlled&&m.type==="number"&&Di(m,"number",m.value)}switch(N=d?ra(d):window,e){case"focusin":(zd(N)||N.contentEditable==="true")&&(sa=N,Ji=d,gs=null);break;case"focusout":gs=Ji=sa=null;break;case"mousedown":el=!0;break;case"contextmenu":case"mouseup":case"dragend":el=!1,Id(p,a,u);break;case"selectionchange":if(My)break;case"keydown":case"keyup":Id(p,a,u)}var S;if(nc)e:{switch(e){case"compositionstart":var O="onCompositionStart";break e;case"compositionend":O="onCompositionEnd";break e;case"compositionupdate":O="onCompositionUpdate";break e}O=void 0}else aa?zm(e,a)&&(O="onCompositionEnd"):e==="keydown"&&a.keyCode===229&&(O="onCompositionStart");O&&(Em&&a.locale!=="ko"&&(aa||O!=="onCompositionStart"?O==="onCompositionEnd"&&aa&&(S=Cm()):(ht=u,Zl="value"in ht?ht.value:ht.textContent,aa=!0)),N=Yo(d,O),0<N.length&&(O=new Ad(O,e,null,a,u),p.push({event:O,listeners:N}),S?O.data=S:(S=qm(a),S!==null&&(O.data=S)))),(S=jy?ky(e,a):Ny(e,a))&&(d=Yo(d,"onBeforeInput"),0<d.length&&(u=new Ad("onBeforeInput","beforeinput",null,a,u),p.push({event:u,listeners:d}),u.data=S))}Um(p,n)})}function Ps(e,n,a){return{instance:e,listener:n,currentTarget:a}}function Yo(e,n){for(var a=n+"Capture",s=[];e!==null;){var o=e,r=o.stateNode;o.tag===5&&r!==null&&(o=r,r=Ss(e,a),r!=null&&s.unshift(Ps(e,r,o)),r=Ss(e,n),r!=null&&s.push(Ps(e,r,o))),e=e.return}return s}function ea(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function _d(e,n,a,s,o){for(var r=n._reactName,i=[];a!==null&&a!==s;){var l=a,c=l.alternate,d=l.stateNode;if(c!==null&&c===s)break;l.tag===5&&d!==null&&(l=d,o?(c=Ss(a,r),c!=null&&i.unshift(Ps(a,c,l))):o||(c=Ss(a,r),c!=null&&i.push(Ps(a,c,l)))),a=a.return}i.length!==0&&e.push({event:n,listeners:i})}var _y=/\r\n?/g,Fy=/\u0000|\uFFFD/g;function Fd(e){return(typeof e=="string"?e:""+e).replace(_y,`
38`).replace(Fy,"")}function fo(e,n,a){if(n=Fd(n),Fd(e)!==n&&a)throw Error(z(425))}function Ko(){}var nl=null,tl=null;function al(e,n){return e==="textarea"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var sl=typeof setTimeout=="function"?setTimeout:void 0,Ry=typeof clearTimeout=="function"?clearTimeout:void 0,Rd=typeof Promise=="function"?Promise:void 0,Dy=typeof queueMicrotask=="function"?queueMicrotask:typeof Rd<"u"?function(e){return Rd.resolve(null).then(e).catch(Hy)}:sl;function Hy(e){setTimeout(function(){throw e})}function mi(e,n){var a=n,s=0;do{var o=a.nextSibling;if(e.removeChild(a),o&&o.nodeType===8)if(a=o.data,a==="/$"){if(s===0){e.removeChild(o),Cs(n);return}s--}else a!=="$"&&a!=="$?"&&a!=="$!"||s++;a=o}while(a);Cs(n)}function vt(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break;if(n===8){if(n=e.data,n==="$"||n==="$!"||n==="$?")break;if(n==="/$")return null}}return e}function Dd(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var a=e.data;if(a==="$"||a==="$!"||a==="$?"){if(n===0)return e;n--}else a==="/$"&&n++}e=e.previousSibling}return null}var Ha=Math.random().toString(36).slice(2),Pn="__reactFiber$"+Ha,Ts="__reactProps$"+Ha,$n="__reactContainer$"+Ha,ol="__reactEvents$"+Ha,Uy="__reactListeners$"+Ha,By="__reactHandles$"+Ha;function It(e){var n=e[Pn];if(n)return n;for(var a=e.parentNode;a;){if(n=a[$n]||a[Pn]){if(a=n.alternate,n.child!==null||a!==null&&a.child!==null)for(e=Dd(e);e!==null;){if(a=e[Pn])return a;e=Dd(e)}return n}e=a,a=e.parentNode}return null}function Ys(e){return e=e[Pn]||e[$n],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function ra(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(z(33))}function Or(e){return e[Ts]||null}var rl=[],ia=-1;function zt(e){return{current:e}}function ie(e){0>ia||(e.current=rl[ia],rl[ia]=null,ia--)}function ae(e,n){ia++,rl[ia]=e.current,e.current=n}var St={},Te=zt(St),He=zt(!1),Bt=St;function qa(e,n){var a=e.type.contextTypes;if(!a)return St;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===n)return s.__reactInternalMemoizedMaskedChildContext;var o={},r;for(r in a)o[r]=n[r];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=o),o}function Ue(e){return e=e.childContextTypes,e!=null}function Zo(){ie(He),ie(Te)}function Hd(e,n,a){if(Te.current!==St)throw Error(z(168));ae(Te,n),ae(He,a)}function Wm(e,n,a){var s=e.stateNode;if(n=n.childContextTypes,typeof s.getChildContext!="function")return a;s=s.getChildContext();for(var o in s)if(!(o in n))throw Error(z(108,Cx(e)||"Unknown",o));return pe({},a,s)}function Jo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||St,Bt=Te.current,ae(Te,e),ae(He,He.current),!0}function Ud(e,n,a){var s=e.stateNode;if(!s)throw Error(z(169));a?(e=Wm(e,n,Bt),s.__reactInternalMemoizedMergedChildContext=e,ie(He),ie(Te),ae(Te,e)):ie(He),ae(He,a)}var Un=null,Cr=!1,hi=!1;function Gm(e){Un===null?Un=[e]:Un.push(e)}function Wy(e){Cr=!0,Gm(e)}function qt(){if(!hi&&Un!==null){hi=!0;var e=0,n=te;
vendor: 12,627 bytes, line 38
38try{var a=Un;for(te=1;e<a.length;e++){var s=a[e];do s=s(!0);while(s!==null)}Un=null,Cr=!1}catch(o){throw Un!==null&&(Un=Un.slice(e+1)),xm($l,qt),o}finally{te=n,hi=!1}}return null}var la=[],ca=0,er=null,nr=0,rn=[],ln=0,Wt=null,Bn=1,Wn="";function Tt(e,n){la[ca++]=nr,la[ca++]=er,er=e,nr=n}function Vm(e,n,a){rn[ln++]=Bn,rn[ln++]=Wn,rn[ln++]=Wt,Wt=e;var s=Bn;e=Wn;var o=32-wn(s)-1;s&=~(1<<o),a+=1;var r=32-wn(n)+o;if(30<r){var i=o-o%5;r=(s&(1<<i)-1).toString(32),s>>=i,o-=i,Bn=1<<32-wn(n)+o|a<<o|s,Wn=r+e}else Bn=1<<r|a<<o|s,Wn=e}function ac(e){e.return!==null&&(Tt(e,1),Vm(e,1,0))}function sc(e){for(;e===er;)er=la[--ca],la[ca]=null,nr=la[--ca],la[ca]=null;for(;e===Wt;)Wt=rn[--ln],rn[ln]=null,Wn=rn[--ln],rn[ln]=null,Bn=rn[--ln],rn[ln]=null}var Ke=null,Ye=null,ce=!1,bn=null;function $m(e,n){var a=cn(5,null,null,0);a.elementType="DELETED",a.stateNode=n,a.return=e,n=e.deletions,n===null?(e.deletions=[a],e.flags|=16):n.push(a)}function Bd(e,n){switch(e.tag){case 5:var a=e.type;return n=n.nodeType!==1||a.toLowerCase()!==n.nodeName.toLowerCase()?null:n,n!==null?(e.stateNode=n,Ke=e,Ye=vt(n.firstChild),!0):!1;case 6:return n=e.pendingProps===""||n.nodeType!==3?null:n,n!==null?(e.stateNode=n,Ke=e,Ye=null,!0):!1;case 13:return n=n.nodeType!==8?null:n,n!==null?(a=Wt!==null?{id:Bn,overflow:Wn}:null,e.memoizedState={dehydrated:n,treeContext:a,retryLane:1073741824},a=cn(18,null,null,0),a.stateNode=n,a.return=e,e.child=a,Ke=e,Ye=null,!0):!1;default:return!1}}function il(e){return(e.mode&1)!==0&&(e.flags&128)===0}function ll(e){if(ce){var n=Ye;if(n){var a=n;if(!Bd(e,n)){if(il(e))throw Error(z(418));n=vt(a.nextSibling);var s=Ke;n&&Bd(e,n)?$m(s,a):(e.flags=e.flags&-4097|2,ce=!1,Ke=e)}}else{if(il(e))throw Error(z(418));e.flags=e.flags&-4097|2,ce=!1,Ke=e}}}function Wd(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Ke=e}function go(e){if(e!==Ke)return!1;if(!ce)return Wd(e),ce=!0,!1;var n;if((n=e.tag!==3)&&!(n=e.tag!==5)&&(n=e.type,n=n!=="head"&&n!=="body"&&!al(e.type,e.memoizedProps)),n&&(n=Ye)){if(il(e))throw Qm(),Error(z(418));for(;n;)$m(e,n),n=vt(n.nextSibling)}if(Wd(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(z(317));e:{for(e=e.nextSibling,n=0;e;){if(e.nodeType===8){var a=e.data;if(a==="/$"){if(n===0){Ye=vt(e.nextSibling);break e}n--}else a!=="$"&&a!=="$!"&&a!=="$?"||n++}e=e.nextSibling}Ye=null}}else Ye=Ke?vt(e.stateNode.nextSibling):null;return!0}function Qm(){for(var e=Ye;e;)e=vt(e.nextSibling)}function Pa(){Ye=Ke=null,ce=!1}function oc(e){bn===null?bn=[e]:bn.push(e)}var Gy=Jn.ReactCurrentBatchConfig;function ns(e,n,a){if(e=a.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(a._owner){if(a=a._owner,a){if(a.tag!==1)throw Error(z(309));var s=a.stateNode}if(!s)throw Error(z(147,e));var o=s,r=""+e;return n!==null&&n.ref!==null&&typeof n.ref=="function"&&n.ref._stringRef===r?n.ref:(n=function(i){var l=o.refs;i===null?delete l[r]:l[r]=i},n._stringRef=r,n)}if(typeof e!="string")throw Error(z(284));if(!a._owner)throw Error(z(290,e))}return e}function xo(e,n){throw e=Object.prototype.toString.call(n),Error(z(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e))}function Gd(e){var n=e._init;return n(e._payload)}function Ym(e){function n(f,h){if(e){var g=f.deletions;g===null?(f.deletions=[h],f.flags|=16):g.push(h)}}function a(f,h){if(!e)return null;for(;h!==null;)n(f,h),h=h.sibling;return null}function s(f,h){for(f=new Map;h!==null;)h.key!==null?f.set(h.key,h):f.set(h.index,h),h=h.sibling;return f}function o(f,h){return f=kt(f,h),f.index=0,f.sibling=null,f}function r(f,h,g){return f.index=g,e?(g=f.alternate,g!==null?(g=g.index,g<h?(f.flags|=2,h):g):(f.flags|=2,h)):(f.flags|=1048576,h)}function i(f){return e&&f.alternate===null&&(f.flags|=2),f}function l(f,h,g,w){return h===null||h.tag!==6?(h=wi(g,f.mode,w),h.return=f,h):(h=o(h,g),h.return=f,h)}function c(f,h,g,w){var k=g.type;return k===ta?u(f,h,g.props.children,w,g.key):h!==null&&(h.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===ot&&Gd(k)===h.type)?(w=o(h,g.props),w.ref=ns(f,h,g),w.return=f,w):(w=_o(g.type,g.key,g.props,null,f.mode,w),w.ref=ns(f,h,g),w.return=f,w)}function d(f,h,g,w){return h===null||h.tag!==4||h.stateNode.containerInfo!==g.containerInfo||h.stateNode.implementation!==g.implementation?(h=ji(g,f.mode,w),h.return=f,h):(h=o(h,g.children||[]),h.return=f,h)}function u(f,h,g,w,k){return h===null||h.tag!==7?(h=Ut(g,f.mode,w,k),h.return=f,h):(h=o(h,g),h.return=f,h)}function p(f,h,g){if(typeof h=="string"&&h!==""||typeof h=="number")return h=wi(""+h,f.mode,g),h.return=f,h;if(typeof h=="object"&&h!==null){switch(h.$$typeof){case oo:return g=_o(h.type,h.key,h.props,null,f.mode,g),g.ref=ns(f,null,h),g.return=f,g;case na:return h=ji(h,f.mode,g),h.return=f,h;case ot:var w=h._init;return p(f,w(h._payload),g)}if(cs(h)||Ya(h))return h=Ut(h,f.mode,g,null),h.return=f,h;xo(f,h)}return null}function m(f,h,g,w){var k=h!==null?h.key:null;if(typeof g=="string"&&g!==""||typeof g=="number")return k!==null?null:l(f,h,""+g,w);if(typeof g=="object"&&g!==null){switch(g.$$typeof){case oo:return g.key===k?c(f,h,g,w):null;case na:return g.key===k?d(f,h,g,w):null;case ot:return k=g._init,m(f,h,k(g._payload),w)}if(cs(g)||Ya(g))return k!==null?null:u(f,h,g,w,null);xo(f,g)}return null}function y(f,h,g,w,k){if(typeof w=="string"&&w!==""||typeof w=="number")return f=f.get(g)||null,l(h,f,""+w,k);if(typeof w=="object"&&w!==null){switch(w.$$typeof){case oo:return f=f.get(w.key===null?g:w.key)||null,c(h,f,w,k);case na:return f=f.get(w.key===null?g:w.key)||null,d(h,f,w,k);case ot:var N=w._init;return y(f,h,g,N(w._payload),k)}if(cs(w)||Ya(w))return f=f.get(g)||null,u(h,f,w,k,null);xo(h,w)}return null}function b(f,h,g,w){for(var k=null,N=null,S=h,O=h=0,F=null;S!==null&&O<g.length;O++){S.index>O?(F=S,S=null):F=S.sibling;var P=m(f,S,g[O],w);if(P===null){S===null&&(S=F);break}e&&S&&P.alternate===null&&n(f,S),h=r(P,h,O),N===null?k=P:N.sibling=P,N=P,S=F}if(O===g.length)return a(f,S),ce&&Tt(f,O),k;if(S===null){for(;O<g.length;O++)S=p(f,g[O],w),S!==null&&(h=r(S,h,O),N===null?k=S:N.sibling=S,N=S);return ce&&Tt(f,O),k}for(S=s(f,S);O<g.length;O++)F=y(S,f,O,g[O],w),F!==null&&(e&&F.alternate!==null&&S.delete(F.key===null?O:F.key),h=r(F,h,O),N===null?k=F:N.sibling=F,N=F);return e&&S.forEach(function(H){return n(f,H)}),ce&&Tt(f,O),k}function x(f,h,g,w){var k=Ya(g);if(typeof k!="function")throw Error(z(150));if(g=k.call(g),g==null)throw Error(z(151));for(var N=k=null,S=h,O=h=0,F=null,P=g.next();S!==null&&!P.done;O++,P=g.next()){S.index>O?(F=S,S=null):F=S.sibling;var H=m(f,S,P.value,w);if(H===null){S===null&&(S=F);break}e&&S&&H.alternate===null&&n(f,S),h=r(H,h,O),N===null?k=H:N.sibling=H,N=H,S=F}if(P.done)return a(f,S),ce&&Tt(f,O),k;if(S===null){for(;!P.done;O++,P=g.next())P=p(f,P.value,w),P!==null&&(h=r(P,h,O),N===null?k=P:N.sibling=P,N=P);return ce&&Tt(f,O),k}for(S=s(f,S);!P.done;O++,P=g.next())P=y(S,f,O,P.value,w),P!==null&&(e&&P.alternate!==null&&S.delete(P.key===null?O:P.key),h=r(P,h,O),N===null?k=P:N.sibling=P,N=P);return e&&S.forEach(function(M){return n(f,M)}),ce&&Tt(f,O),k}function j(f,h,g,w){if(typeof g=="object"&&g!==null&&g.type===ta&&g.key===null&&(g=g.props.children),typeof g=="object"&&g!==null){switch(g.$$typeof){case oo:e:{for(var k=g.key,N=h;N!==null;){if(N.key===k){if(k=g.type,k===ta){if(N.tag===7){a(f,N.sibling),h=o(N,g.props.children),h.return=f,f=h;break e}}else if(N.elementType===k||typeof k=="object"&&k!==null&&k.$$typeof===ot&&Gd(k)===N.type){a(f,N.sibling),h=o(N,g.props),h.ref=ns(f,N,g),h.return=f,f=h;break e}a(f,N);break}else n(f,N);N=N.sibling}g.type===ta?(h=Ut(g.props.children,f.mode,w,g.key),h.return=f,f=h):(w=_o(g.type,g.key,g.props,null,f.mode,w),w.ref=ns(f,h,g),w.return=f,f=w)}return i(f);case na:e:{for(N=g.key;h!==null;){if(h.key===N)if(h.tag===4&&h.stateNode.containerInfo===g.containerInfo&&h.stateNode.implementation===g.implementation){a(f,h.sibling),h=o(h,g.children||[]),h.return=f,f=h;break e}else{a(f,h);break}else n(f,h);h=h.sibling}h=ji(g,f.mode,w),h.return=f,f=h}return i(f);case ot:return N=g._init,j(f,h,N(g._payload),w)}if(cs(g))return b(f,h,g,w);if(Ya(g))return x(f,h,g,w);xo(f,g)}return typeof g=="string"&&g!==""||typeof g=="number"?(g=""+g,h!==null&&h.tag===6?(a(f,h.sibling),h=o(h,g),h.return=f,f=h):(a(f,h),h=wi(g,f.mode,w),h.return=f,f=h),i(f)):a(f,h)}return j}var Ta=Ym(!0),Km=Ym(!1),tr=zt(null),ar=null,da=null,rc=null;function ic(){rc=da=ar=null}function lc(e){var n=tr.current;ie(tr),e._currentValue=n}function cl(e,n,a){for(;e!==null;){var s=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,s!==null&&(s.childLanes|=n)):s!==null&&(s.childLanes&n)!==n&&(s.childLanes|=n),e===a)break;e=e.return}}function xa(e,n){ar=e,rc=da=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&n&&(De=!0),e.firstContext=null)}function un(e){var n=e._currentValue;if(rc!==e)if(e={context:e,memoizedValue:n,next:null},da===null){if(ar===null)throw Error(z(308));da=e,ar.dependencies={lanes:0,firstContext:e}}else da=da.next=e;return n}var Lt=null;function cc(e){Lt===null?Lt=[e]:Lt.push(e)}function Zm(e,n,a,s){var o=n.interleaved;return o===null?(a.next=a,cc(n)):(a.next=o.next,o.next=a),n.interleaved=a,Qn(e,s)}function Qn(e,n){e.lanes|=n;var a=e.alternate;for(a!==null&&(a.lanes|=n),a=e,e=e.return;e!==null;)e.childLanes|=n,a=e.alternate,a!==null&&(a.childLanes|=n),a=e,e=e.return;return a.tag===3?a.stateNode:null}var rt=!1;function dc(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Jm(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Gn(e,n){return{eventTime:e,lane:n,tag:0,payload:null,callback:null,next:null}}function bt(e,n,a){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,K&2){var o=s.pending;return o===null?n.next=n:(n.next=o.next,o.next=n),s.pending=n,Qn(e,a)}return o=s.interleaved,o===null?(n.next=n,cc(s)):(n.next=o.next,o.next=n),s.interleaved=n,Qn(e,a)}function Po(e,n,a){if(n=n.updateQueue,n!==null&&(n=n.shared,(a&4194240)!==0)){var s=n.lanes;s&=e.pendingLanes,a|=s,n.lanes=a,Ql(e,a)}}function Vd(e,n){var a=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,a===s)){var o=null,r=null;if(a=a.firstBaseUpdate,a!==null){do{var i={eventTime:a.eventTime,lane:a.lane,tag:a.tag,payload:a.payload,callback:a.callback,next:null};r===null?o=r=i:r=r.next=i,a=a.next}while(a!==null);r===null?o=r=n:r=r.next=n}else o=r=n;a={baseState:s.baseState,firstBaseUpdate:o,lastBaseUpdate:r,shared:s.shared,effects:s.effects},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=n:e.next=n,a.lastBaseUpdate=n}function sr(e,n,a,s){var o=e.updateQueue;rt=!1;var r=o.firstBaseUpdate,i=o.lastBaseUpdate,l=o.shared.pending;if(l!==null){o.shared.pending=null;var c=l,d=c.next;c.next=null,i===null?r=d:i.next=d,i=c;var u=e.alternate;u!==null&&(u=u.updateQueue,l=u.lastBaseUpdate,l!==i&&(l===null?u.firstBaseUpdate=d:l.next=d,u.lastBaseUpdate=c))}if(r!==null){var p=o.baseState;i=0,u=d=c=null,l=r;do{var m=l.lane,y=l.eventTime;if((s&m)===m){u!==null&&(u=u.next={eventTime:y,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var b=e,x=l;switch(m=n,y=a,x.tag){case 1:if(b=x.payload,typeof b=="function"){p=b.call(y,p,m);break e}p=b;break e;case 3:b.flags=b.flags&-65537|128;case 0:if(b=x.payload,m=typeof b=="function"?b.call(y,p,m):b,m==null)break e;p=pe({},p,m);break e;case 2:rt=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,m=o.effects,m===null?o.effects=[l]:m.push(l))}else y={eventTime:y,lane:m,tag:l.tag,payload:l.payload,callback:l.callback,next:null},u===null?(d=u=y,c=p):u=u.next=y,i|=m;if(l=l.next,l===null){if(l=o.shared.pending,l===null)break;m=l,l=m.next,m.next=null,o.lastBaseUpdate=m,o.shared.pending=null}}while(!0);if(u===null&&(c=p),o.baseState=c,o.firstBaseUpdate=d,o.lastBaseUpdate=u,n=o.shared.interleaved,n!==null){o=n;do i|=o.lane,o=o.next;while(o!==n)}else r===null&&(o.shared.lanes=0);Vt|=i,e.lanes=i,e.memoizedState=p}}function $d(e,n,a){if(e=n.effects,n.effects=null,e!==null)for(n=0;n<e.length;n++){var s=e[n],o=s.callback;if(o!==null){if(s.callback=null,s=a,typeof o!="function")throw Error(z(191,o));o.call(s)}}}var Ks={},Mn=zt(Ks),Ms=zt(Ks),Is=zt(Ks);function Xt(e){if(e===Ks)throw Error(z(174));return e}function uc(e,n){switch(ae(Is,n),ae(Ms,e),ae(Mn,Ks),e=n.nodeType,e){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:Ui(null,"");break;default:e=e===8?n.parentNode:n,n=e.namespaceURI||null,e=e.tagName,n=Ui(n,e)}
vendor: 6,453 bytes, line 38
38ie(Mn),ae(Mn,n)}function Ma(){ie(Mn),ie(Ms),ie(Is)}function eh(e){Xt(Is.current);var n=Xt(Mn.current),a=Ui(n,e.type);n!==a&&(ae(Ms,e),ae(Mn,a))}function pc(e){Ms.current===e&&(ie(Mn),ie(Ms))}var de=zt(0);function or(e){for(var n=e;n!==null;){if(n.tag===13){var a=n.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||a.data==="$?"||a.data==="$!"))return n}else if(n.tag===19&&n.memoizedProps.revealOrder!==void 0){if(n.flags&128)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var fi=[];function mc(){for(var e=0;e<fi.length;e++)fi[e]._workInProgressVersionPrimary=null;fi.length=0}var To=Jn.ReactCurrentDispatcher,gi=Jn.ReactCurrentBatchConfig,Gt=0,ue=null,ye=null,je=null,rr=!1,xs=!1,Ls=0,Vy=0;function Ce(){throw Error(z(321))}function hc(e,n){if(n===null)return!1;for(var a=0;a<n.length&&a<e.length;a++)if(!kn(e[a],n[a]))return!1;return!0}function fc(e,n,a,s,o,r){if(Gt=r,ue=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,To.current=e===null||e.memoizedState===null?Ky:Zy,e=a(s,o),xs){r=0;do{if(xs=!1,Ls=0,25<=r)throw Error(z(301));r+=1,je=ye=null,n.updateQueue=null,To.current=Jy,e=a(s,o)}while(xs)}if(To.current=ir,n=ye!==null&&ye.next!==null,Gt=0,je=ye=ue=null,rr=!1,n)throw Error(z(300));return e}function gc(){var e=Ls!==0;return Ls=0,e}function Cn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return je===null?ue.memoizedState=je=e:je=je.next=e,je}function pn(){if(ye===null){var e=ue.alternate;e=e!==null?e.memoizedState:null}else e=ye.next;var n=je===null?ue.memoizedState:je.next;if(n!==null)je=n,ye=e;else{if(e===null)throw Error(z(310));ye=e,e={memoizedState:ye.memoizedState,baseState:ye.baseState,baseQueue:ye.baseQueue,queue:ye.queue,next:null},je===null?ue.memoizedState=je=e:je=je.next=e}return je}function Xs(e,n){return typeof n=="function"?n(e):n}function xi(e){var n=pn(),a=n.queue;if(a===null)throw Error(z(311));a.lastRenderedReducer=e;var s=ye,o=s.baseQueue,r=a.pending;if(r!==null){if(o!==null){var i=o.next;o.next=r.next,r.next=i}s.baseQueue=o=r,a.pending=null}if(o!==null){r=o.next,s=s.baseState;var l=i=null,c=null,d=r;do{var u=d.lane;if((Gt&u)===u)c!==null&&(c=c.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),s=d.hasEagerState?d.eagerState:e(s,d.action);else{var p={lane:u,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};c===null?(l=c=p,i=s):c=c.next=p,ue.lanes|=u,Vt|=u}d=d.next}while(d!==null&&d!==r);c===null?i=s:c.next=l,kn(s,n.memoizedState)||(De=!0),n.memoizedState=s,n.baseState=i,n.baseQueue=c,a.lastRenderedState=s}if(e=a.interleaved,e!==null){o=e;do r=o.lane,ue.lanes|=r,Vt|=r,o=o.next;while(o!==e)}else o===null&&(a.lanes=0);return[n.memoizedState,a.dispatch]}function yi(e){var n=pn(),a=n.queue;if(a===null)throw Error(z(311));a.lastRenderedReducer=e;var s=a.dispatch,o=a.pending,r=n.memoizedState;if(o!==null){a.pending=null;var i=o=o.next;do r=e(r,i.action),i=i.next;while(i!==o);kn(r,n.memoizedState)||(De=!0),n.memoizedState=r,n.baseQueue===null&&(n.baseState=r),a.lastRenderedState=r}return[r,s]}function nh(){}function th(e,n){var a=ue,s=pn(),o=n(),r=!kn(s.memoizedState,o);if(r&&(s.memoizedState=o,De=!0),s=s.queue,xc(oh.bind(null,a,s,e),[e]),s.getSnapshot!==n||r||je!==null&&je.memoizedState.tag&1){if(a.flags|=2048,_s(9,sh.bind(null,a,s,o,n),void 0,null),ke===null)throw Error(z(349));Gt&30||ah(a,n,o)}return o}function ah(e,n,a){e.flags|=16384,e={getSnapshot:n,value:a},n=ue.updateQueue,n===null?(n={lastEffect:null,stores:null},ue.updateQueue=n,n.stores=[e]):(a=n.stores,a===null?n.stores=[e]:a.push(e))}function sh(e,n,a,s){n.value=a,n.getSnapshot=s,rh(n)&&ih(e)}function oh(e,n,a){return a(function(){rh(n)&&ih(e)})}function rh(e){var n=e.getSnapshot;e=e.value;try{var a=n();return!kn(e,a)}catch{return!0}}function ih(e){var n=Qn(e,1);n!==null&&jn(n,e,1,-1)}function Qd(e){var n=Cn();return typeof e=="function"&&(e=e()),n.memoizedState=n.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Xs,lastRenderedState:e},n.queue=e,e=e.dispatch=Yy.bind(null,ue,e),[n.memoizedState,e]}function _s(e,n,a,s){return e={tag:e,create:n,destroy:a,deps:s,next:null},n=ue.updateQueue,n===null?(n={lastEffect:null,stores:null},ue.updateQueue=n,n.lastEffect=e.next=e):(a=n.lastEffect,a===null?n.lastEffect=e.next=e:(s=a.next,a.next=e,e.next=s,n.lastEffect=e)),e}function lh(){return pn().memoizedState}function Mo(e,n,a,s){var o=Cn();ue.flags|=e,o.memoizedState=_s(1|n,a,void 0,s===void 0?null:s)}function Er(e,n,a,s){var o=pn();s=s===void 0?null:s;var r=void 0;if(ye!==null){var i=ye.memoizedState;if(r=i.destroy,s!==null&&hc(s,i.deps)){o.memoizedState=_s(n,a,r,s);return}}ue.flags|=e,o.memoizedState=_s(1|n,a,r,s)}function Yd(e,n){return Mo(8390656,8,e,n)}function xc(e,n){return Er(2048,8,e,n)}function ch(e,n){return Er(4,2,e,n)}function dh(e,n){return Er(4,4,e,n)}function uh(e,n){if(typeof n=="function")return e=e(),n(e),function(){n(null)};if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function ph(e,n,a){return a=a!=null?a.concat([e]):null,Er(4,4,uh.bind(null,n,e),a)}function yc(){}function mh(e,n){var a=pn();n=n===void 0?null:n;var s=a.memoizedState;return s!==null&&n!==null&&hc(n,s[1])?s[0]:(a.memoizedState=[e,n],e)}function hh(e,n){var a=pn();n=n===void 0?null:n;var s=a.memoizedState;return s!==null&&n!==null&&hc(n,s[1])?s[0]:(e=e(),a.memoizedState=[e,n],e)}function fh(e,n,a){return Gt&21?(kn(a,n)||(a=bm(),ue.lanes|=a,Vt|=a,e.baseState=!0),n):(e.baseState&&(e.baseState=!1,De=!0),e.memoizedState=a)}function $y(e,n){var a=te;te=a!==0&&4>a?a:4,e(!0);var s=gi.transition;gi.transition={};try{e(!1),n()}finally{te=a,gi.transition=s}}function gh(){return pn().memoizedState}function Qy(e,n,a){var s=jt(e);if(a={lane:s,action:a,hasEagerState:!1,eagerState:null,next:null},xh(e))yh(n,a);else if(a=Zm(e,n,a,s),a!==null){var o=Xe();jn(a,e,s,o),vh(a,n,s)}}function Yy(e,n,a){var s=jt(e),o={lane:s,action:a,hasEagerState:!1,eagerState:null,next:null};if(xh(e))yh(n,o);else{var r=e.alternate;if(e.lanes===0&&(r===null||r.lanes===0)&&(r=n.lastRenderedReducer,r!==null))try{var i=n.lastRenderedState,l=r(i,a);if(o.hasEagerState=!0,o.eagerState=l,kn(l,i)){var c=n.interleaved;c===null?(o.next=o,cc(n)):(o.next=c.next,c.next=o),n.interleaved=o;return}}catch{}finally{}
vendor: 8,735 bytes, lines 38-40
38a=Zm(e,n,o,s),a!==null&&(o=Xe(),jn(a,e,s,o),vh(a,n,s))}}function xh(e){var n=e.alternate;return e===ue||n!==null&&n===ue}function yh(e,n){xs=rr=!0;var a=e.pending;a===null?n.next=n:(n.next=a.next,a.next=n),e.pending=n}function vh(e,n,a){if(a&4194240){var s=n.lanes;s&=e.pendingLanes,a|=s,n.lanes=a,Ql(e,a)}}var ir={readContext:un,useCallback:Ce,useContext:Ce,useEffect:Ce,useImperativeHandle:Ce,useInsertionEffect:Ce,useLayoutEffect:Ce,useMemo:Ce,useReducer:Ce,useRef:Ce,useState:Ce,useDebugValue:Ce,useDeferredValue:Ce,useTransition:Ce,useMutableSource:Ce,useSyncExternalStore:Ce,useId:Ce,unstable_isNewReconciler:!1},Ky={readContext:un,useCallback:function(e,n){return Cn().memoizedState=[e,n===void 0?null:n],e},useContext:un,useEffect:Yd,useImperativeHandle:function(e,n,a){return a=a!=null?a.concat([e]):null,Mo(4194308,4,uh.bind(null,n,e),a)},useLayoutEffect:function(e,n){return Mo(4194308,4,e,n)},useInsertionEffect:function(e,n){return Mo(4,2,e,n)},useMemo:function(e,n){var a=Cn();return n=n===void 0?null:n,e=e(),a.memoizedState=[e,n],e},useReducer:function(e,n,a){var s=Cn();return n=a!==void 0?a(n):n,s.memoizedState=s.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},s.queue=e,e=e.dispatch=Qy.bind(null,ue,e),[s.memoizedState,e]},useRef:function(e){var n=Cn();return e={current:e},n.memoizedState=e},useState:Qd,useDebugValue:yc,useDeferredValue:function(e){return Cn().memoizedState=e},useTransition:function(){var e=Qd(!1),n=e[0];return e=$y.bind(null,e[1]),Cn().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,a){var s=ue,o=Cn();if(ce){if(a===void 0)throw Error(z(407));a=a()}else{if(a=n(),ke===null)throw Error(z(349));Gt&30||ah(s,n,a)}o.memoizedState=a;var r={value:a,getSnapshot:n};return o.queue=r,Yd(oh.bind(null,s,r,e),[e]),s.flags|=2048,_s(9,sh.bind(null,s,r,a,n),void 0,null),a},useId:function(){var e=Cn(),n=ke.identifierPrefix;if(ce){var a=Wn,s=Bn;a=(s&~(1<<32-wn(s)-1)).toString(32)+a,n=":"+n+"R"+a,a=Ls++,0<a&&(n+="H"+a.toString(32)),n+=":"}else a=Vy++,n=":"+n+"r"+a.toString(32)+":";return e.memoizedState=n},unstable_isNewReconciler:!1},Zy={readContext:un,useCallback:mh,useContext:un,useEffect:xc,useImperativeHandle:ph,useInsertionEffect:ch,useLayoutEffect:dh,useMemo:hh,useReducer:xi,useRef:lh,useState:function(){return xi(Xs)},useDebugValue:yc,useDeferredValue:function(e){var n=pn();return fh(n,ye.memoizedState,e)},useTransition:function(){var e=xi(Xs)[0],n=pn().memoizedState;return[e,n]},useMutableSource:nh,useSyncExternalStore:th,useId:gh,unstable_isNewReconciler:!1},Jy={readContext:un,useCallback:mh,useContext:un,useEffect:xc,useImperativeHandle:ph,useInsertionEffect:ch,useLayoutEffect:dh,useMemo:hh,useReducer:yi,useRef:lh,useState:function(){return yi(Xs)},useDebugValue:yc,useDeferredValue:function(e){var n=pn();return ye===null?n.memoizedState=e:fh(n,ye.memoizedState,e)},useTransition:function(){var e=yi(Xs)[0],n=pn().memoizedState;return[e,n]},useMutableSource:nh,useSyncExternalStore:th,useId:gh,unstable_isNewReconciler:!1};function gn(e,n){if(e&&e.defaultProps){n=pe({},n),e=e.defaultProps;for(var a in e)n[a]===void 0&&(n[a]=e[a]);return n}return n}function dl(e,n,a,s){n=e.memoizedState,a=a(s,n),a=a==null?n:pe({},n,a),e.memoizedState=a,e.lanes===0&&(e.updateQueue.baseState=a)}var zr={isMounted:function(e){return(e=e._reactInternals)?Zt(e)===e:!1},enqueueSetState:function(e,n,a){e=e._reactInternals;var s=Xe(),o=jt(e),r=Gn(s,o);r.payload=n,a!=null&&(r.callback=a),n=bt(e,r,o),n!==null&&(jn(n,e,o,s),Po(n,e,o))},enqueueReplaceState:function(e,n,a){e=e._reactInternals;var s=Xe(),o=jt(e),r=Gn(s,o);r.tag=1,r.payload=n,a!=null&&(r.callback=a),n=bt(e,r,o),n!==null&&(jn(n,e,o,s),Po(n,e,o))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var a=Xe(),s=jt(e),o=Gn(a,s);o.tag=2,n!=null&&(o.callback=n),n=bt(e,o,s),n!==null&&(jn(n,e,s,a),Po(n,e,s))}};function Kd(e,n,a,s,o,r,i){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(s,r,i):n.prototype&&n.prototype.isPureReactComponent?!zs(a,s)||!zs(o,r):!0}function bh(e,n,a){var s=!1,o=St,r=n.contextType;return typeof r=="object"&&r!==null?r=un(r):(o=Ue(n)?Bt:Te.current,s=n.contextTypes,r=(s=s!=null)?qa(e,o):St),n=new n(a,r),e.memoizedState=n.state!==null&&n.state!==void 0?n.state:null,n.updater=zr,e.stateNode=n,n._reactInternals=e,s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=r),n}function Zd(e,n,a,s){e=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(a,s),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(a,s),n.state!==e&&zr.enqueueReplaceState(n,n.state,null)}function ul(e,n,a,s){var o=e.stateNode;o.props=a,o.state=e.memoizedState,o.refs={},dc(e);var r=n.contextType;typeof r=="object"&&r!==null?o.context=un(r):(r=Ue(n)?Bt:Te.current,o.context=qa(e,r)),o.state=e.memoizedState,r=n.getDerivedStateFromProps,typeof r=="function"&&(dl(e,n,r,a),o.state=e.memoizedState),typeof n.getDerivedStateFromProps=="function"||typeof o.getSnapshotBeforeUpdate=="function"||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(n=o.state,typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount(),n!==o.state&&zr.enqueueReplaceState(o,o.state,null),sr(e,a,o,s),o.state=e.memoizedState),typeof o.componentDidMount=="function"&&(e.flags|=4194308)}function Ia(e,n){try{var a="",s=n;do a+=Ox(s),s=s.return;while(s);var o=a}catch(r){o=`
39Error generating stack: `+r.message+`
40`+r.stack}return{value:e,source:n,stack:o,digest:null}}function vi(e,n,a){return{value:e,source:null,stack:a??null,digest:n??null}}function pl(e,n){try{console.error(n.value)}catch(a){setTimeout(function(){throw a})}}var ev=typeof WeakMap=="function"?WeakMap:Map;function wh(e,n,a){a=Gn(-1,a),a.tag=3,a.payload={element:null};var s=n.value;return a.callback=function(){cr||(cr=!0,jl=s),pl(e,n)},a}function jh(e,n,a){a=Gn(-1,a),a.tag=3;var s=e.type.getDerivedStateFromError;if(typeof s=="function"){var o=n.value;a.payload=function(){return s(o)},a.callback=function(){pl(e,n)}}var r=e.stateNode;return r!==null&&typeof r.componentDidCatch=="function"&&(a.callback=function(){pl(e,n),typeof s!="function"&&(wt===null?wt=new Set([this]):wt.add(this));var i=n.stack;this.componentDidCatch(n.value,{componentStack:i!==null?i:""})}),a}function Jd(e,n,a){var s=e.pingCache;if(s===null){s=e.pingCache=new ev;var o=new Set;s.set(n,o)}else o=s.get(n),o===void 0&&(o=new Set,s.set(n,o));o.has(a)||(o.add(a),e=hv.bind(null,e,n,a),n.then(e,e))}function eu(e){do{var n;if((n=e.tag===13)&&(n=e.memoizedState,n=n!==null?n.dehydrated!==null:!0),n)return e;e=e.return}while(e!==null);return null}function nu(e,n,a,s,o){return e.mode&1?(e.flags|=65536,e.lanes=o,e):(e===n?e.flags|=65536:(e.flags|=128,a.flags|=131072,a.flags&=-52805,a.tag===1&&(a.alternate===null?a.tag=17:(n=Gn(-1,1),n.tag=2,bt(a,n,1))),a.lanes|=1),e)}var nv=Jn.ReactCurrentOwner,De=!1;function Ie(e,n,a,s){n.child=e===null?Km(n,null,a,s):Ta(n,e.child,a,s)}function tu(e,n,a,s,o){a=a.render;var r=n.ref;return xa(n,o),s=fc(e,n,a,s,r,o),a=gc(),e!==null&&!De?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~o,Yn(e,n,o)):(ce&&a&&ac(n),n.flags|=1,Ie(e,n,s,o),n.child)}function au(e,n,a,s,o){if(e===null){var r=a.type;return typeof r=="function"&&!Ac(r)&&r.defaultProps===void 0&&a.compare===null&&a.defaultProps===void 0?(n.tag=15,n.type=r,kh(e,n,r,s,o)):(e=_o(a.type,null,s,n,n.mode,o),e.ref=n.ref,e.return=n,n.child=e)}if(r=e.child,!(e.lanes&o)){var i=r.memoizedProps;if(a=a.compare,a=a!==null?a:zs,a(i,s)&&e.ref===n.ref)return Yn(e,n,o)}return n.flags|=1,e=kt(r,s),e.ref=n.ref,e.return=n,n.child=e}function kh(e,n,a,s,o){if(e!==null){var r=e.memoizedProps;if(zs(r,s)&&e.ref===n.ref)if(De=!1,n.pendingProps=s=r,(e.lanes&o)!==0)e.flags&131072&&(De=!0);else return n.lanes=e.lanes,Yn(e,n,o)}return ml(e,n,a,s,o)}function Nh(e,n,a){var s=n.pendingProps,o=s.children,r=e!==null?e.memoizedState:null;if(s.mode==="hidden")if(!(n.mode&1))n.memoizedState={baseLanes:0,cachePool:null,transitions:null},ae(pa,$e),$e|=a;else{if(!(a&1073741824))return e=r!==null?r.baseLanes|a:a,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,ae(pa,$e),$e|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=r!==null?r.baseLanes:a,ae(pa,$e),$e|=s}else r!==null?(s=r.baseLanes|a,n.memoizedState=null):s=a,ae(pa,$e),$e|=s;return Ie(e,n,o,a),n.child}function Sh(e,n){var a=n.ref;(e===null&&a!==null||e!==null&&e.ref!==a)&&(n.flags|=512,n.flags|=2097152)}
vendor: 9,406 bytes, line 40
40function ml(e,n,a,s,o){var r=Ue(a)?Bt:Te.current;return r=qa(n,r),xa(n,o),a=fc(e,n,a,s,r,o),s=gc(),e!==null&&!De?(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~o,Yn(e,n,o)):(ce&&s&&ac(n),n.flags|=1,Ie(e,n,a,o),n.child)}function su(e,n,a,s,o){if(Ue(a)){var r=!0;Jo(n)}else r=!1;if(xa(n,o),n.stateNode===null)Io(e,n),bh(n,a,s),ul(n,a,s,o),s=!0;else if(e===null){var i=n.stateNode,l=n.memoizedProps;i.props=l;var c=i.context,d=a.contextType;typeof d=="object"&&d!==null?d=un(d):(d=Ue(a)?Bt:Te.current,d=qa(n,d));var u=a.getDerivedStateFromProps,p=typeof u=="function"||typeof i.getSnapshotBeforeUpdate=="function";p||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(l!==s||c!==d)&&Zd(n,i,s,d),rt=!1;var m=n.memoizedState;i.state=m,sr(n,s,i,o),c=n.memoizedState,l!==s||m!==c||He.current||rt?(typeof u=="function"&&(dl(n,a,u,s),c=n.memoizedState),(l=rt||Kd(n,a,l,s,m,c,d))?(p||typeof i.UNSAFE_componentWillMount!="function"&&typeof i.componentWillMount!="function"||(typeof i.componentWillMount=="function"&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount=="function"&&i.UNSAFE_componentWillMount()),typeof i.componentDidMount=="function"&&(n.flags|=4194308)):(typeof i.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=s,n.memoizedState=c),i.props=s,i.state=c,i.context=d,s=l):(typeof i.componentDidMount=="function"&&(n.flags|=4194308),s=!1)}else{i=n.stateNode,Jm(e,n),l=n.memoizedProps,d=n.type===n.elementType?l:gn(n.type,l),i.props=d,p=n.pendingProps,m=i.context,c=a.contextType,typeof c=="object"&&c!==null?c=un(c):(c=Ue(a)?Bt:Te.current,c=qa(n,c));var y=a.getDerivedStateFromProps;(u=typeof y=="function"||typeof i.getSnapshotBeforeUpdate=="function")||typeof i.UNSAFE_componentWillReceiveProps!="function"&&typeof i.componentWillReceiveProps!="function"||(l!==p||m!==c)&&Zd(n,i,s,c),rt=!1,m=n.memoizedState,i.state=m,sr(n,s,i,o);var b=n.memoizedState;l!==p||m!==b||He.current||rt?(typeof y=="function"&&(dl(n,a,y,s),b=n.memoizedState),(d=rt||Kd(n,a,d,s,m,b,c)||!1)?(u||typeof i.UNSAFE_componentWillUpdate!="function"&&typeof i.componentWillUpdate!="function"||(typeof i.componentWillUpdate=="function"&&i.componentWillUpdate(s,b,c),typeof i.UNSAFE_componentWillUpdate=="function"&&i.UNSAFE_componentWillUpdate(s,b,c)),typeof i.componentDidUpdate=="function"&&(n.flags|=4),typeof i.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof i.componentDidUpdate!="function"||l===e.memoizedProps&&m===e.memoizedState||(n.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&m===e.memoizedState||(n.flags|=1024),n.memoizedProps=s,n.memoizedState=b),i.props=s,i.state=b,i.context=c,s=d):(typeof i.componentDidUpdate!="function"||l===e.memoizedProps&&m===e.memoizedState||(n.flags|=4),typeof i.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&m===e.memoizedState||(n.flags|=1024),s=!1)}return hl(e,n,a,s,r,o)}function hl(e,n,a,s,o,r){Sh(e,n);var i=(n.flags&128)!==0;if(!s&&!i)return o&&Ud(n,a,!1),Yn(e,n,r);s=n.stateNode,nv.current=n;var l=i&&typeof a.getDerivedStateFromError!="function"?null:s.render();return n.flags|=1,e!==null&&i?(n.child=Ta(n,e.child,null,r),n.child=Ta(n,null,l,r)):Ie(e,n,l,r),n.memoizedState=s.state,o&&Ud(n,a,!0),n.child}function Ah(e){var n=e.stateNode;n.pendingContext?Hd(e,n.pendingContext,n.pendingContext!==n.context):n.context&&Hd(e,n.context,!1),uc(e,n.containerInfo)}function ou(e,n,a,s,o){return Pa(),oc(o),n.flags|=256,Ie(e,n,a,s),n.child}var fl={dehydrated:null,treeContext:null,retryLane:0};function gl(e){return{baseLanes:e,cachePool:null,transitions:null}}function Oh(e,n,a){var s=n.pendingProps,o=de.current,r=!1,i=(n.flags&128)!==0,l;if((l=i)||(l=e!==null&&e.memoizedState===null?!1:(o&2)!==0),l?(r=!0,n.flags&=-129):(e===null||e.memoizedState!==null)&&(o|=1),ae(de,o&1),e===null)return ll(n),e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(n.mode&1?e.data==="$!"?n.lanes=8:n.lanes=1073741824:n.lanes=1,null):(i=s.children,e=s.fallback,r?(s=n.mode,r=n.child,i={mode:"hidden",children:i},!(s&1)&&r!==null?(r.childLanes=0,r.pendingProps=i):r=Tr(i,s,0,null),e=Ut(e,s,a,null),r.return=n,e.return=n,r.sibling=e,n.child=r,n.child.memoizedState=gl(a),n.memoizedState=fl,e):vc(n,i));if(o=e.memoizedState,o!==null&&(l=o.dehydrated,l!==null))return tv(e,n,i,s,l,o,a);if(r){r=s.fallback,i=n.mode,o=e.child,l=o.sibling;var c={mode:"hidden",children:s.children};return!(i&1)&&n.child!==o?(s=n.child,s.childLanes=0,s.pendingProps=c,n.deletions=null):(s=kt(o,c),s.subtreeFlags=o.subtreeFlags&14680064),l!==null?r=kt(l,r):(r=Ut(r,i,a,null),r.flags|=2),r.return=n,s.return=n,s.sibling=r,n.child=s,s=r,r=n.child,i=e.child.memoizedState,i=i===null?gl(a):{baseLanes:i.baseLanes|a,cachePool:null,transitions:i.transitions},r.memoizedState=i,r.childLanes=e.childLanes&~a,n.memoizedState=fl,s}return r=e.child,e=r.sibling,s=kt(r,{mode:"visible",children:s.children}),!(n.mode&1)&&(s.lanes=a),s.return=n,s.sibling=null,e!==null&&(a=n.deletions,a===null?(n.deletions=[e],n.flags|=16):a.push(e)),n.child=s,n.memoizedState=null,s}function vc(e,n){return n=Tr({mode:"visible",children:n},e.mode,0,null),n.return=e,e.child=n}function yo(e,n,a,s){return s!==null&&oc(s),Ta(n,e.child,null,a),e=vc(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function tv(e,n,a,s,o,r,i){if(a)return n.flags&256?(n.flags&=-257,s=vi(Error(z(422))),yo(e,n,i,s)):n.memoizedState!==null?(n.child=e.child,n.flags|=128,null):(r=s.fallback,o=n.mode,s=Tr({mode:"visible",children:s.children},o,0,null),r=Ut(r,o,i,null),r.flags|=2,s.return=n,r.return=n,s.sibling=r,n.child=s,n.mode&1&&Ta(n,e.child,null,i),n.child.memoizedState=gl(i),n.memoizedState=fl,r);if(!(n.mode&1))return yo(e,n,i,null);if(o.data==="$!"){if(s=o.nextSibling&&o.nextSibling.dataset,s)var l=s.dgst;return s=l,r=Error(z(419)),s=vi(r,s,void 0),yo(e,n,i,s)}if(l=(i&e.childLanes)!==0,De||l){if(s=ke,s!==null){switch(i&-i){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}o=o&(s.suspendedLanes|i)?0:o,o!==0&&o!==r.retryLane&&(r.retryLane=o,Qn(e,o),jn(s,e,o,-1))}return Sc(),s=vi(Error(z(421))),yo(e,n,i,s)}return o.data==="$?"?(n.flags|=128,n.child=e.child,n=fv.bind(null,e),o._reactRetry=n,null):(e=r.treeContext,Ye=vt(o.nextSibling),Ke=n,ce=!0,bn=null,e!==null&&(rn[ln++]=Bn,rn[ln++]=Wn,rn[ln++]=Wt,Bn=e.id,Wn=e.overflow,Wt=n),n=vc(n,s.children),n.flags|=4096,n)}function ru(e,n,a){e.lanes|=n;var s=e.alternate;s!==null&&(s.lanes|=n),cl(e.return,n,a)}function bi(e,n,a,s,o){var r=e.memoizedState;r===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:s,tail:a,tailMode:o}:(r.isBackwards=n,r.rendering=null,r.renderingStartTime=0,r.last=s,r.tail=a,r.tailMode=o)}function Ch(e,n,a){var s=n.pendingProps,o=s.revealOrder,r=s.tail;if(Ie(e,n,s.children,a),s=de.current,s&2)s=s&1|2,n.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&ru(e,a,n);else if(e.tag===19)ru(e,a,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}s&=1}if(ae(de,s),!(n.mode&1))n.memoizedState=null;else switch(o){case"forwards":for(a=n.child,o=null;a!==null;)e=a.alternate,e!==null&&or(e)===null&&(o=a),a=a.sibling;a=o,a===null?(o=n.child,n.child=null):(o=a.sibling,a.sibling=null),bi(n,!1,o,a,r);break;case"backwards":for(a=null,o=n.child,n.child=null;o!==null;){if(e=o.alternate,e!==null&&or(e)===null){n.child=o;break}e=o.sibling,o.sibling=a,a=o,o=e}bi(n,!0,a,null,r);break;case"together":bi(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function Io(e,n){!(n.mode&1)&&e!==null&&(e.alternate=null,n.alternate=null,n.flags|=2)}function Yn(e,n,a){if(e!==null&&(n.dependencies=e.dependencies),Vt|=n.lanes,!(a&n.childLanes))return null;if(e!==null&&n.child!==e.child)throw Error(z(153));if(n.child!==null){for(e=n.child,a=kt(e,e.pendingProps),n.child=a,a.return=n;e.sibling!==null;)e=e.sibling,a=a.sibling=kt(e,e.pendingProps),a.return=n;a.sibling=null}return n.child}function av(e,n,a){switch(n.tag){case 3:Ah(n),Pa();break;case 5:eh(n);break;case 1:Ue(n.type)&&Jo(n);break;case 4:uc(n,n.stateNode.containerInfo);break;case 10:var s=n.type._context,o=n.memoizedProps.value;ae(tr,s._currentValue),s._currentValue=o;break;case 13:if(s=n.memoizedState,s!==null)return s.dehydrated!==null?(ae(de,de.current&1),n.flags|=128,null):a&n.child.childLanes?Oh(e,n,a):(ae(de,de.current&1),e=Yn(e,n,a),e!==null?e.sibling:null);ae(de,de.current&1);break;case 19:if(s=(a&n.childLanes)!==0,e.flags&128){if(s)return Ch(e,n,a);n.flags|=128}if(o=n.memoizedState,o!==null&&(o.rendering=null,o.tail=null,o.lastEffect=null),ae(de,de.current),s)break;return null;case 22:case 23:return n.lanes=0,Nh(e,n,a)}return Yn(e,n,a)}var Eh,xl,zh,qh;Eh=function(e,n){for(var a=n.child;a!==null;){if(a.tag===5||a.tag===6)e.appendChild(a.stateNode);else if(a.tag!==4&&a.child!==null){a.child.return=a,a=a.child;continue}if(a===n)break;for(;a.sibling===null;){if(a.return===null||a.return===n)return;a=a.return}a.sibling.return=a.return,a=a.sibling}};
vendor: 4,223 bytes, line 40
40xl=function(){};zh=function(e,n,a,s){var o=e.memoizedProps;if(o!==s){e=n.stateNode,Xt(Mn.current);var r=null;switch(a){case"input":o=Fi(e,o),s=Fi(e,s),r=[];break;case"select":o=pe({},o,{value:void 0}),s=pe({},s,{value:void 0}),r=[];break;case"textarea":o=Hi(e,o),s=Hi(e,s),r=[];break;default:typeof o.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=Ko)}Bi(a,s);var i;a=null;for(d in o)if(!s.hasOwnProperty(d)&&o.hasOwnProperty(d)&&o[d]!=null)if(d==="style"){var l=o[d];for(i in l)l.hasOwnProperty(i)&&(a||(a={}),a[i]="")}else d!=="dangerouslySetInnerHTML"&&d!=="children"&&d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(ks.hasOwnProperty(d)?r||(r=[]):(r=r||[]).push(d,null));for(d in s){var c=s[d];if(l=o!=null?o[d]:void 0,s.hasOwnProperty(d)&&c!==l&&(c!=null||l!=null))if(d==="style")if(l){for(i in l)!l.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(a||(a={}),a[i]="");for(i in c)c.hasOwnProperty(i)&&l[i]!==c[i]&&(a||(a={}),a[i]=c[i])}else a||(r||(r=[]),r.push(d,a)),a=c;else d==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,l=l?l.__html:void 0,c!=null&&l!==c&&(r=r||[]).push(d,c)):d==="children"?typeof c!="string"&&typeof c!="number"||(r=r||[]).push(d,""+c):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&(ks.hasOwnProperty(d)?(c!=null&&d==="onScroll"&&re("scroll",e),r||l===c||(r=[])):(r=r||[]).push(d,c))}a&&(r=r||[]).push("style",a);var d=r;(n.updateQueue=d)&&(n.flags|=4)}};qh=function(e,n,a,s){a!==s&&(n.flags|=4)};function ts(e,n){if(!ce)switch(e.tailMode){case"hidden":n=e.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?e.tail=null:a.sibling=null;break;case"collapsed":a=e.tail;for(var s=null;a!==null;)a.alternate!==null&&(s=a),a=a.sibling;s===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:s.sibling=null}}function Ee(e){var n=e.alternate!==null&&e.alternate.child===e.child,a=0,s=0;if(n)for(var o=e.child;o!==null;)a|=o.lanes|o.childLanes,s|=o.subtreeFlags&14680064,s|=o.flags&14680064,o.return=e,o=o.sibling;else for(o=e.child;o!==null;)a|=o.lanes|o.childLanes,s|=o.subtreeFlags,s|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=s,e.childLanes=a,n}function sv(e,n,a){var s=n.pendingProps;switch(sc(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Ee(n),null;case 1:return Ue(n.type)&&Zo(),Ee(n),null;case 3:return s=n.stateNode,Ma(),ie(He),ie(Te),mc(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(go(n)?n.flags|=4:e===null||e.memoizedState.isDehydrated&&!(n.flags&256)||(n.flags|=1024,bn!==null&&(Sl(bn),bn=null))),xl(e,n),Ee(n),null;case 5:pc(n);var o=Xt(Is.current);if(a=n.type,e!==null&&n.stateNode!=null)zh(e,n,a,s,o),e.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!s){if(n.stateNode===null)throw Error(z(166));return Ee(n),null}if(e=Xt(Mn.current),go(n)){s=n.stateNode,a=n.type;var r=n.memoizedProps;switch(s[Pn]=n,s[Ts]=r,e=(n.mode&1)!==0,a){case"dialog":re("cancel",s),re("close",s);break;case"iframe":case"object":case"embed":re("load",s);break;case"video":case"audio":for(o=0;o<us.length;o++)re(us[o],s);break;case"source":re("error",s);break;case"img":case"image":case"link":re("error",s),re("load",s);break;case"details":re("toggle",s);break;case"input":fd(s,r),re("invalid",s);break;case"select":s._wrapperState={wasMultiple:!!r.multiple},re("invalid",s);break;case"textarea":xd(s,r),re("invalid",s)}Bi(a,r),o=null;for(var i in r)if(r.hasOwnProperty(i)){var l=r[i];i==="children"?typeof l=="string"?s.textContent!==l&&(r.suppressHydrationWarning!==!0&&fo(s.textContent,l,e),o=["children",l]):typeof l=="number"&&s.textContent!==""+l&&(r.suppressHydrationWarning!==!0&&fo(s.textContent,l,e),o=["children",""+l]):ks.hasOwnProperty(i)&&l!=null&&i==="onScroll"&&re("scroll",s)}switch(a){case"input":ro(s),gd(s,r,!0);break;case"textarea":ro(s),yd(s);break;case"select":case"option":break;default:typeof r.onClick=="function"&&(s.onclick=Ko)}s=o,n.updateQueue=s,s!==null&&(n.flags|=4)}else{i=o.nodeType===9?o:o.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=om(a)),e==="http://www.w3.org/1999/xhtml"?a==="script"?(e=i.createElement("div"),e.innerHTML="<script><\/script>
40",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=i.createElement(a,{is:s.is}):(e=i.createElement(a),a==="select"&&(i=e,s.multiple?i.multiple=!0:s.size&&(i.size=s.size))):e=i.createElementNS(e,a),e[Pn]=n,e[Ts]=s,Eh(e,n,!1,!1),n.stateNode=e;e:{switch(i=Wi(a,s),a){case"dialog":re("cancel",e),re("close",e),o=s;break;case"iframe":case"object":case"embed":re("load",e),o=s;break;case"video":case"audio":for(o=0;o<us.length;o++)re(us[o],e);o=s;break;case"source":re("error",e),o=s;break;case"img":case"image":case"link":re("error",e),re("load",e),o=s;break;case"details":re("toggle",e),o=s;break;case"input":fd(e,s),o=Fi(e,s),re("invalid",e);break;case"option":o=s;break;case"select":e._wrapperState={wasMultiple:!!s.multiple},o=pe({},s,{value:void 0}),re("invalid",e);break;case"textarea":xd(e,s),o=Hi(e,s),re("invalid",e);break;default:o=s}Bi(a,o),l=o;for(r in l)if(l.hasOwnProperty(r)){var c=l[r];r==="style"?lm(e,c):r==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&rm(e,c)):r==="children"?typeof c=="string"?(a!=="textarea"||c!=="")&&Ns(e,c):typeof c=="number"&&Ns(e,""+c):r!=="suppressContentEditableWarning"&&r!=="suppressHydrationWarning"&&r!=="autoFocus"&&(ks.hasOwnProperty(r)?c!=null&&r==="onScroll"&&re("scroll",e):c!=null&&Ul(e,r,c,i))}switch(a){case"input":ro(e),gd(e,s,!1);break;case"textarea":ro(e),yd(e);break;case"option":s.value!=null&&e.setAttribute("value",""+Nt(s.value));break;case"select":e.multiple=!!s.multiple,r=s.value,r!=null?ma(e,!!s.multiple,r,!1):s.defaultValue!=null&&ma(e,!!s.multiple,s.defaultValue,!0);break;default:typeof o.onClick=="function"&&(e.onclick=Ko)}switch(a){case"button":case"input":case"select":case"textarea":s=!!s.autoFocus;break e;case"img":s=!0;break e;default:s=!1}}s&&(n.flags|=4)}n.ref!==null&&(n.flags|=512,n.flags|=2097152)}return Ee(n),null;case 6:if(e&&n.stateNode!=null)qh(e,n,e.memoizedProps,s);else{if(typeof s!="string"&&n.stateNode===null)throw Error(z(166));if(a=Xt(Is.current),Xt(Mn.current),go(n)){if(s=n.stateNode,a=n.memoizedProps,s[Pn]=n,(r=s.nodeValue!==a)&&(e=Ke,e!==null))switch(e.tag){case 3:fo(s.nodeValue,a,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&fo(s.nodeValue,a,(e.mode&1)!==0)}r&&(n.flags|=4)}else s=(a.nodeType===9?a:a.ownerDocument).createTextNode(s),s[Pn]=n,n.stateNode=s}return Ee(n),null;case 13:if(ie(de),s=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ce&&Ye!==null&&n.mode&1&&!(n.flags&128))Qm(),Pa(),n.flags|=98560,r=!1;else if(r=go(n),s!==null&&s.dehydrated!==null){if(e===null){if(!r)throw Error(z(318));if(r=n.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(z(317));r[Pn]=n}else Pa(),!(n.flags&128)&&(n.memoizedState=null),n.flags|=4;Ee(n),r=!1}else bn!==null&&(Sl(bn),bn=null),r=!0;if(!r)return n.flags&65536?n:null}return n.flags&128?(n.lanes=a,n):(s=s!==null,s!==(e!==null&&e.memoizedState!==null)&&s&&(n.child.flags|=8192,n.mode&1&&(e===null||de.current&1?be===0&&(be=3):Sc())),n.updateQueue!==null&&(n.flags|=4),Ee(n),null);case 4:return Ma(),xl(e,n),e===null&&qs(n.stateNode.containerInfo),Ee(n),null;case 10:return lc(n.type._context),Ee(n),null;case 17:return Ue(n.type)&&Zo(),Ee(n),null;case 19:if(ie(de),r=n.memoizedState,r===null)return Ee(n),null;if(s=(n.flags&128)!==0,i=r.rendering,i===null)if(s)ts(r,!1);else{if(be!==0||e!==null&&e.flags&128)for(e=n.child;e!==null;){if(i=or(e),i!==null){for(n.flags|=128,ts(r,!1),s=i.updateQueue,s!==null&&(n.updateQueue=s,n.flags|=4),n.subtreeFlags=0,s=a,a=n.child;a!==null;)r=a,e=s,r.flags&=14680066,i=r.alternate,i===null?(r.childLanes=0,r.lanes=e,r.child=null,r.subtreeFlags=0,r.memoizedProps=null,r.memoizedState=null,r.updateQueue=null,r.dependencies=null,r.stateNode=null):(r.childLanes=i.childLanes,r.lanes=i.lanes,r.child=i.child,r.subtreeFlags=0,r.deletions=null,r.memoizedProps=i.memoizedProps,r.memoizedState=i.memoizedState,r.updateQueue=i.updateQueue,r.type=i.type,e=i.dependencies,r.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),a=a.sibling;return ae(de,de.current&1|2),n.child}e=e.sibling}r.tail!==null&&ge()>La&&(n.flags|=128,s=!0,ts(r,!1),n.lanes=4194304)}else{if(!s)if(e=or(i),e!==null){if(n.flags|=128,s=!0,a=e.updateQueue,a!==null&&(n.updateQueue=a,n.flags|=4),ts(r,!0),r.tail===null&&r.tailMode==="hidden"&&!i.alternate&&!ce)return Ee(n),null}else 2*ge()-r.renderingStartTime>La&&a!==1073741824&&(n.flags|=128,s=!0,ts(r,!1),n.lanes=4194304);r.isBackwards?(i.sibling=n.child,n.child=i):(a=r.last,a!==null?a.sibling=i:n.child=i,r.last=i)}
vendor: 26,431 bytes, line 40
40return r.tail!==null?(n=r.tail,r.rendering=n,r.tail=n.sibling,r.renderingStartTime=ge(),n.sibling=null,a=de.current,ae(de,s?a&1|2:a&1),n):(Ee(n),null);case 22:case 23:return Nc(),s=n.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(n.flags|=8192),s&&n.mode&1?$e&1073741824&&(Ee(n),n.subtreeFlags&6&&(n.flags|=8192)):Ee(n),null;case 24:return null;case 25:return null}throw Error(z(156,n.tag))}function ov(e,n){switch(sc(n),n.tag){case 1:return Ue(n.type)&&Zo(),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Ma(),ie(He),ie(Te),mc(),e=n.flags,e&65536&&!(e&128)?(n.flags=e&-65537|128,n):null;case 5:return pc(n),null;case 13:if(ie(de),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(z(340));Pa()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return ie(de),null;case 4:return Ma(),null;case 10:return lc(n.type._context),null;case 22:case 23:return Nc(),null;case 24:return null;default:return null}}var vo=!1,Pe=!1,rv=typeof WeakSet=="function"?WeakSet:Set,_=null;function ua(e,n){var a=e.ref;if(a!==null)if(typeof a=="function")try{a(null)}catch(s){he(e,n,s)}else a.current=null}function yl(e,n,a){try{a()}catch(s){he(e,n,s)}}var iu=!1;function iv(e,n){if(nl=$o,e=Lm(),tc(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var s=a.getSelection&&a.getSelection();if(s&&s.rangeCount!==0){a=s.anchorNode;var o=s.anchorOffset,r=s.focusNode;s=s.focusOffset;try{a.nodeType,r.nodeType}catch{a=null;break e}var i=0,l=-1,c=-1,d=0,u=0,p=e,m=null;n:for(;;){for(var y;p!==a||o!==0&&p.nodeType!==3||(l=i+o),p!==r||s!==0&&p.nodeType!==3||(c=i+s),p.nodeType===3&&(i+=p.nodeValue.length),(y=p.firstChild)!==null;)m=p,p=y;for(;;){if(p===e)break n;if(m===a&&++d===o&&(l=i),m===r&&++u===s&&(c=i),(y=p.nextSibling)!==null)break;p=m,m=p.parentNode}p=y}a=l===-1||c===-1?null:{start:l,end:c}}else a=null}a=a||{start:0,end:0}}else a=null;for(tl={focusedElem:e,selectionRange:a},$o=!1,_=n;_!==null;)if(n=_,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,_=e;else for(;_!==null;){n=_;try{var b=n.alternate;if(n.flags&1024)switch(n.tag){case 0:case 11:case 15:break;case 1:if(b!==null){var x=b.memoizedProps,j=b.memoizedState,f=n.stateNode,h=f.getSnapshotBeforeUpdate(n.elementType===n.type?x:gn(n.type,x),j);f.__reactInternalSnapshotBeforeUpdate=h}break;case 3:var g=n.stateNode.containerInfo;g.nodeType===1?g.textContent="":g.nodeType===9&&g.documentElement&&g.removeChild(g.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(z(163))}}catch(w){he(n,n.return,w)}if(e=n.sibling,e!==null){e.return=n.return,_=e;break}_=n.return}return b=iu,iu=!1,b}function ys(e,n,a){var s=n.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var o=s=s.next;do{if((o.tag&e)===e){var r=o.destroy;o.destroy=void 0,r!==void 0&&yl(n,a,r)}o=o.next}while(o!==s)}}function qr(e,n){if(n=n.updateQueue,n=n!==null?n.lastEffect:null,n!==null){var a=n=n.next;do{if((a.tag&e)===e){var s=a.create;a.destroy=s()}a=a.next}while(a!==n)}}function vl(e){var n=e.ref;if(n!==null){var a=e.stateNode;switch(e.tag){case 5:e=a;break;default:e=a}typeof n=="function"?n(e):n.current=e}}function Ph(e){var n=e.alternate;n!==null&&(e.alternate=null,Ph(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&(delete n[Pn],delete n[Ts],delete n[ol],delete n[Uy],delete n[By])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function Th(e){return e.tag===5||e.tag===3||e.tag===4}function lu(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||Th(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function bl(e,n,a){var s=e.tag;if(s===5||s===6)e=e.stateNode,n?a.nodeType===8?a.parentNode.insertBefore(e,n):a.insertBefore(e,n):(a.nodeType===8?(n=a.parentNode,n.insertBefore(e,a)):(n=a,n.appendChild(e)),a=a._reactRootContainer,a!=null||n.onclick!==null||(n.onclick=Ko));else if(s!==4&&(e=e.child,e!==null))for(bl(e,n,a),e=e.sibling;e!==null;)bl(e,n,a),e=e.sibling}function wl(e,n,a){var s=e.tag;if(s===5||s===6)e=e.stateNode,n?a.insertBefore(e,n):a.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(wl(e,n,a),e=e.sibling;e!==null;)wl(e,n,a),e=e.sibling}var Ne=null,vn=!1;function et(e,n,a){for(a=a.child;a!==null;)Mh(e,n,a),a=a.sibling}function Mh(e,n,a){if(Tn&&typeof Tn.onCommitFiberUnmount=="function")try{Tn.onCommitFiberUnmount(kr,a)}catch{}switch(a.tag){case 5:Pe||ua(a,n);case 6:var s=Ne,o=vn;Ne=null,et(e,n,a),Ne=s,vn=o,Ne!==null&&(vn?(e=Ne,a=a.stateNode,e.nodeType===8?e.parentNode.removeChild(a):e.removeChild(a)):Ne.removeChild(a.stateNode));break;case 18:Ne!==null&&(vn?(e=Ne,a=a.stateNode,e.nodeType===8?mi(e.parentNode,a):e.nodeType===1&&mi(e,a),Cs(e)):mi(Ne,a.stateNode));break;case 4:s=Ne,o=vn,Ne=a.stateNode.containerInfo,vn=!0,et(e,n,a),Ne=s,vn=o;break;case 0:case 11:case 14:case 15:if(!Pe&&(s=a.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){o=s=s.next;do{var r=o,i=r.destroy;r=r.tag,i!==void 0&&(r&2||r&4)&&yl(a,n,i),o=o.next}while(o!==s)}et(e,n,a);break;case 1:if(!Pe&&(ua(a,n),s=a.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=a.memoizedProps,s.state=a.memoizedState,s.componentWillUnmount()}catch(l){he(a,n,l)}et(e,n,a);break;case 21:et(e,n,a);break;case 22:a.mode&1?(Pe=(s=Pe)||a.memoizedState!==null,et(e,n,a),Pe=s):et(e,n,a);break;default:et(e,n,a)}}function cu(e){var n=e.updateQueue;if(n!==null){e.updateQueue=null;var a=e.stateNode;a===null&&(a=e.stateNode=new rv),n.forEach(function(s){var o=gv.bind(null,e,s);a.has(s)||(a.add(s),s.then(o,o))})}}function fn(e,n){var a=n.deletions;if(a!==null)for(var s=0;s<a.length;s++){var o=a[s];try{var r=e,i=n,l=i;e:for(;l!==null;){switch(l.tag){case 5:Ne=l.stateNode,vn=!1;break e;case 3:Ne=l.stateNode.containerInfo,vn=!0;break e;case 4:Ne=l.stateNode.containerInfo,vn=!0;break e}l=l.return}if(Ne===null)throw Error(z(160));Mh(r,i,o),Ne=null,vn=!1;var c=o.alternate;c!==null&&(c.return=null),o.return=null}catch(d){he(o,n,d)}}if(n.subtreeFlags&12854)for(n=n.child;n!==null;)Ih(n,e),n=n.sibling}function Ih(e,n){var a=e.alternate,s=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(fn(n,e),On(e),s&4){try{ys(3,e,e.return),qr(3,e)}catch(x){he(e,e.return,x)}try{ys(5,e,e.return)}catch(x){he(e,e.return,x)}}break;case 1:fn(n,e),On(e),s&512&&a!==null&&ua(a,a.return);break;case 5:if(fn(n,e),On(e),s&512&&a!==null&&ua(a,a.return),e.flags&32){var o=e.stateNode;try{Ns(o,"")}catch(x){he(e,e.return,x)}}if(s&4&&(o=e.stateNode,o!=null)){var r=e.memoizedProps,i=a!==null?a.memoizedProps:r,l=e.type,c=e.updateQueue;if(e.updateQueue=null,c!==null)try{l==="input"&&r.type==="radio"&&r.name!=null&&am(o,r),Wi(l,i);var d=Wi(l,r);for(i=0;i<c.length;i+=2){var u=c[i],p=c[i+1];u==="style"?lm(o,p):u==="dangerouslySetInnerHTML"?rm(o,p):u==="children"?Ns(o,p):Ul(o,u,p,d)}switch(l){case"input":Ri(o,r);break;case"textarea":sm(o,r);break;case"select":var m=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!r.multiple;var y=r.value;y!=null?ma(o,!!r.multiple,y,!1):m!==!!r.multiple&&(r.defaultValue!=null?ma(o,!!r.multiple,r.defaultValue,!0):ma(o,!!r.multiple,r.multiple?[]:"",!1))}o[Ts]=r}catch(x){he(e,e.return,x)}}break;case 6:if(fn(n,e),On(e),s&4){if(e.stateNode===null)throw Error(z(162));o=e.stateNode,r=e.memoizedProps;try{o.nodeValue=r}catch(x){he(e,e.return,x)}}break;case 3:if(fn(n,e),On(e),s&4&&a!==null&&a.memoizedState.isDehydrated)try{Cs(n.containerInfo)}catch(x){he(e,e.return,x)}break;case 4:fn(n,e),On(e);break;case 13:fn(n,e),On(e),o=e.child,o.flags&8192&&(r=o.memoizedState!==null,o.stateNode.isHidden=r,!r||o.alternate!==null&&o.alternate.memoizedState!==null||(jc=ge())),s&4&&cu(e);break;case 22:if(u=a!==null&&a.memoizedState!==null,e.mode&1?(Pe=(d=Pe)||u,fn(n,e),Pe=d):fn(n,e),On(e),s&8192){if(d=e.memoizedState!==null,(e.stateNode.isHidden=d)&&!u&&e.mode&1)for(_=e,u=e.child;u!==null;){for(p=_=u;_!==null;){switch(m=_,y=m.child,m.tag){case 0:case 11:case 14:case 15:ys(4,m,m.return);break;case 1:ua(m,m.return);var b=m.stateNode;if(typeof b.componentWillUnmount=="function"){s=m,a=m.return;try{n=s,b.props=n.memoizedProps,b.state=n.memoizedState,b.componentWillUnmount()}catch(x){he(s,a,x)}}break;case 5:ua(m,m.return);break;case 22:if(m.memoizedState!==null){uu(p);continue}}y!==null?(y.return=m,_=y):uu(p)}u=u.sibling}e:for(u=null,p=e;;){if(p.tag===5){if(u===null){u=p;try{o=p.stateNode,d?(r=o.style,typeof r.setProperty=="function"?r.setProperty("display","none","important"):r.display="none"):(l=p.stateNode,c=p.memoizedProps.style,i=c!=null&&c.hasOwnProperty("display")?c.display:null,l.style.display=im("display",i))}catch(x){he(e,e.return,x)}}}else if(p.tag===6){if(u===null)try{p.stateNode.nodeValue=d?"":p.memoizedProps}catch(x){he(e,e.return,x)}}else if((p.tag!==22&&p.tag!==23||p.memoizedState===null||p===e)&&p.child!==null){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;p.sibling===null;){if(p.return===null||p.return===e)break e;u===p&&(u=null),p=p.return}u===p&&(u=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:fn(n,e),On(e),s&4&&cu(e);break;case 21:break;default:fn(n,e),On(e)}}function On(e){var n=e.flags;if(n&2){try{e:{for(var a=e.return;a!==null;){if(Th(a)){var s=a;break e}a=a.return}throw Error(z(160))}switch(s.tag){case 5:var o=s.stateNode;s.flags&32&&(Ns(o,""),s.flags&=-33);var r=lu(e);wl(e,r,o);break;case 3:case 4:var i=s.stateNode.containerInfo,l=lu(e);bl(e,l,i);break;default:throw Error(z(161))}}catch(c){he(e,e.return,c)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function lv(e,n,a){_=e,Lh(e)}function Lh(e,n,a){for(var s=(e.mode&1)!==0;_!==null;){var o=_,r=o.child;if(o.tag===22&&s){var i=o.memoizedState!==null||vo;if(!i){var l=o.alternate,c=l!==null&&l.memoizedState!==null||Pe;l=vo;var d=Pe;if(vo=i,(Pe=c)&&!d)for(_=o;_!==null;)i=_,c=i.child,i.tag===22&&i.memoizedState!==null?pu(o):c!==null?(c.return=i,_=c):pu(o);for(;r!==null;)_=r,Lh(r),r=r.sibling;_=o,vo=l,Pe=d}du(e)}else o.subtreeFlags&8772&&r!==null?(r.return=o,_=r):du(e)}}function du(e){for(;_!==null;){var n=_;if(n.flags&8772){var a=n.alternate;try{if(n.flags&8772)switch(n.tag){case 0:case 11:case 15:Pe||qr(5,n);break;case 1:var s=n.stateNode;if(n.flags&4&&!Pe)if(a===null)s.componentDidMount();else{var o=n.elementType===n.type?a.memoizedProps:gn(n.type,a.memoizedProps);s.componentDidUpdate(o,a.memoizedState,s.__reactInternalSnapshotBeforeUpdate)}var r=n.updateQueue;r!==null&&$d(n,r,s);break;case 3:var i=n.updateQueue;if(i!==null){if(a=null,n.child!==null)switch(n.child.tag){case 5:a=n.child.stateNode;break;case 1:a=n.child.stateNode}$d(n,i,a)}break;case 5:var l=n.stateNode;if(a===null&&n.flags&4){a=l;var c=n.memoizedProps;switch(n.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&a.focus();break;case"img":c.src&&(a.src=c.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(n.memoizedState===null){var d=n.alternate;if(d!==null){var u=d.memoizedState;if(u!==null){var p=u.dehydrated;p!==null&&Cs(p)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(z(163))}Pe||n.flags&512&&vl(n)}catch(m){he(n,n.return,m)}}if(n===e){_=null;break}if(a=n.sibling,a!==null){a.return=n.return,_=a;break}_=n.return}}function uu(e){for(;_!==null;){var n=_;if(n===e){_=null;break}var a=n.sibling;if(a!==null){a.return=n.return,_=a;break}_=n.return}}function pu(e){for(;_!==null;){var n=_;try{switch(n.tag){case 0:case 11:case 15:var a=n.return;try{qr(4,n)}catch(c){he(n,a,c)}break;case 1:var s=n.stateNode;if(typeof s.componentDidMount=="function"){var o=n.return;try{s.componentDidMount()}catch(c){he(n,o,c)}}var r=n.return;try{vl(n)}catch(c){he(n,r,c)}break;case 5:var i=n.return;try{vl(n)}catch(c){he(n,i,c)}}}catch(c){he(n,n.return,c)}if(n===e){_=null;break}var l=n.sibling;if(l!==null){l.return=n.return,_=l;break}_=n.return}}var cv=Math.ceil,lr=Jn.ReactCurrentDispatcher,bc=Jn.ReactCurrentOwner,dn=Jn.ReactCurrentBatchConfig,K=0,ke=null,xe=null,Se=0,$e=0,pa=zt(0),be=0,Fs=null,Vt=0,Pr=0,wc=0,vs=null,Re=null,jc=0,La=1/0,Hn=null,cr=!1,jl=null,wt=null,bo=!1,ft=null,dr=0,bs=0,kl=null,Lo=-1,Xo=0;function Xe(){return K&6?ge():Lo!==-1?Lo:Lo=ge()}function jt(e){return e.mode&1?K&2&&Se!==0?Se&-Se:Gy.transition!==null?(Xo===0&&(Xo=bm()),Xo):(e=te,e!==0||(e=window.event,e=e===void 0?16:Om(e.type)),e):1}function jn(e,n,a,s){if(50<bs)throw bs=0,kl=null,Error(z(185));$s(e,a,s),(!(K&2)||e!==ke)&&(e===ke&&(!(K&2)&&(Pr|=a),be===4&&lt(e,Se)),Be(e,s),a===1&&K===0&&!(n.mode&1)&&(La=ge()+500,Cr&&qt()))}function Be(e,n){var a=e.callbackNode;Gx(e,n);var s=Vo(e,e===ke?Se:0);if(s===0)a!==null&&wd(a),e.callbackNode=null,e.callbackPriority=0;else if(n=s&-s,e.callbackPriority!==n){if(a!=null&&wd(a),n===1)e.tag===0?Wy(mu.bind(null,e)):Gm(mu.bind(null,e)),Dy(function(){!(K&6)&&qt()}),a=null;else{switch(wm(s)){case 1:a=$l;break;case 4:a=ym;break;case 16:a=Go;break;case 536870912:a=vm;break;default:a=Go}a=Bh(a,Xh.bind(null,e))}e.callbackPriority=n,e.callbackNode=a}}function Xh(e,n){if(Lo=-1,Xo=0,K&6)throw Error(z(327));var a=e.callbackNode;if(ya()&&e.callbackNode!==a)return null;var s=Vo(e,e===ke?Se:0);if(s===0)return null;if(s&30||s&e.expiredLanes||n)n=ur(e,s);else{n=s;var o=K;K|=2;var r=Fh();(ke!==e||Se!==n)&&(Hn=null,La=ge()+500,Ht(e,n));do try{pv();break}catch(l){_h(e,l)}while(!0);ic(),lr.current=r,K=o,xe!==null?n=0:(ke=null,Se=0,n=be)}if(n!==0){if(n===2&&(o=Yi(e),o!==0&&(s=o,n=Nl(e,o))),n===1)throw a=Fs,Ht(e,0),lt(e,s),Be(e,ge()),a;if(n===6)lt(e,s);else{if(o=e.current.alternate,!(s&30)&&!dv(o)&&(n=ur(e,s),n===2&&(r=Yi(e),r!==0&&(s=r,n=Nl(e,r))),n===1))throw a=Fs,Ht(e,0),lt(e,s),Be(e,ge()),a;switch(e.finishedWork=o,e.finishedLanes=s,n){case 0:case 1:throw Error(z(345));case 2:Mt(e,Re,Hn);break;case 3:if(lt(e,s),(s&130023424)===s&&(n=jc+500-ge(),10<n)){if(Vo(e,0)!==0)break;if(o=e.suspendedLanes,(o&s)!==s){Xe(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=sl(Mt.bind(null,e,Re,Hn),n);break}Mt(e,Re,Hn);break;case 4:if(lt(e,s),(s&4194240)===s)break;for(n=e.eventTimes,o=-1;0<s;){var i=31-wn(s);r=1<<i,i=n[i],i>o&&(o=i),s&=~r}if(s=o,s=ge()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*cv(s/1960))-s,10<s){e.timeoutHandle=sl(Mt.bind(null,e,Re,Hn),s);break}Mt(e,Re,Hn);break;case 5:Mt(e,Re,Hn);break;default:throw Error(z(329))}}}return Be(e,ge()),e.callbackNode===a?Xh.bind(null,e):null}function Nl(e,n){var a=vs;return e.current.memoizedState.isDehydrated&&(Ht(e,n).flags|=256),e=ur(e,n),e!==2&&(n=Re,Re=a,n!==null&&Sl(n)),e}function Sl(e){Re===null?Re=e:Re.push.apply(Re,e)}function dv(e){for(var n=e;;){if(n.flags&16384){var a=n.updateQueue;if(a!==null&&(a=a.stores,a!==null))for(var s=0;s<a.length;s++){var o=a[s],r=o.getSnapshot;o=o.value;try{if(!kn(r(),o))return!1}catch{return!1}}}if(a=n.child,n.subtreeFlags&16384&&a!==null)a.return=n,n=a;else{if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function lt(e,n){for(n&=~wc,n&=~Pr,e.suspendedLanes|=n,e.pingedLanes&=~n,e=e.expirationTimes;0<n;){var a=31-wn(n),s=1<<a;e[a]=-1,n&=~s}}function mu(e){if(K&6)throw Error(z(327));ya();var n=Vo(e,0);if(!(n&1))return Be(e,ge()),null;var a=ur(e,n);if(e.tag!==0&&a===2){var s=Yi(e);s!==0&&(n=s,a=Nl(e,s))}if(a===1)throw a=Fs,Ht(e,0),lt(e,n),Be(e,ge()),a;if(a===6)throw Error(z(345));return e.finishedWork=e.current.alternate,e.finishedLanes=n,Mt(e,Re,Hn),Be(e,ge()),null}function kc(e,n){var a=K;K|=1;try{return e(n)}finally{K=a,K===0&&(La=ge()+500,Cr&&qt())}}function $t(e){ft!==null&&ft.tag===0&&!(K&6)&&ya();var n=K;K|=1;var a=dn.transition,s=te;try{if(dn.transition=null,te=1,e)return e()}finally{te=s,dn.transition=a,K=n,!(K&6)&&qt()}}function Nc(){$e=pa.current,ie(pa)}function Ht(e,n){e.finishedWork=null,e.finishedLanes=0;var a=e.timeoutHandle;if(a!==-1&&(e.timeoutHandle=-1,Ry(a)),xe!==null)for(a=xe.return;a!==null;){var s=a;switch(sc(s),s.tag){case 1:s=s.type.childContextTypes,s!=null&&Zo();break;case 3:Ma(),ie(He),ie(Te),mc();break;case 5:pc(s);break;case 4:Ma();break;case 13:ie(de);break;case 19:ie(de);break;case 10:lc(s.type._context);break;case 22:case 23:Nc()}a=a.return}if(ke=e,xe=e=kt(e.current,null),Se=$e=n,be=0,Fs=null,wc=Pr=Vt=0,Re=vs=null,Lt!==null){for(n=0;n<Lt.length;n++)if(a=Lt[n],s=a.interleaved,s!==null){a.interleaved=null;var o=s.next,r=a.pending;if(r!==null){var i=r.next;r.next=o,s.next=i}a.pending=s}Lt=null}return e}function _h(e,n){do{var a=xe;try{if(ic(),To.current=ir,rr){for(var s=ue.memoizedState;s!==null;){var o=s.queue;o!==null&&(o.pending=null),s=s.next}rr=!1}if(Gt=0,je=ye=ue=null,xs=!1,Ls=0,bc.current=null,a===null||a.return===null){be=1,Fs=n,xe=null;break}e:{var r=e,i=a.return,l=a,c=n;if(n=Se,l.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){var d=c,u=l,p=u.tag;if(!(u.mode&1)&&(p===0||p===11||p===15)){var m=u.alternate;m?(u.updateQueue=m.updateQueue,u.memoizedState=m.memoizedState,u.lanes=m.lanes):(u.updateQueue=null,u.memoizedState=null)}var y=eu(i);if(y!==null){y.flags&=-257,nu(y,i,l,r,n),y.mode&1&&Jd(r,d,n),n=y,c=d;var b=n.updateQueue;if(b===null){var x=new Set;x.add(c),n.updateQueue=x}else b.add(c);break e}else{if(!(n&1)){Jd(r,d,n),Sc();break e}c=Error(z(426))}}else if(ce&&l.mode&1){var j=eu(i);if(j!==null){!(j.flags&65536)&&(j.flags|=256),nu(j,i,l,r,n),oc(Ia(c,l));break e}}r=c=Ia(c,l),be!==4&&(be=2),vs===null?vs=[r]:vs.push(r),r=i;do{switch(r.tag){case 3:r.flags|=65536,n&=-n,r.lanes|=n;var f=wh(r,c,n);Vd(r,f);break e;case 1:l=c;var h=r.type,g=r.stateNode;if(!(r.flags&128)&&(typeof h.getDerivedStateFromError=="function"||g!==null&&typeof g.componentDidCatch=="function"&&(wt===null||!wt.has(g)))){r.flags|=65536,n&=-n,r.lanes|=n;var w=jh(r,l,n);Vd(r,w);break e}}r=r.return}while(r!==null)}Dh(a)}catch(k){n=k,xe===a&&a!==null&&(xe=a=a.return);continue}break}while(!0)}function Fh(){var e=lr.current;return lr.current=ir,e===null?ir:e}function Sc(){(be===0||be===3||be===2)&&(be=4),ke===null||!(Vt&268435455)&&!(Pr&268435455)||lt(ke,Se)}function ur(e,n){var a=K;K|=2;var s=Fh();(ke!==e||Se!==n)&&(Hn=null,Ht(e,n));do try{uv();break}catch(o){_h(e,o)}while(!0);if(ic(),K=a,lr.current=s,xe!==null)throw Error(z(261));return ke=null,Se=0,be}function uv(){for(;xe!==null;)Rh(xe)}function pv(){for(;xe!==null&&!Xx();)Rh(xe)}function Rh(e){var n=Uh(e.alternate,e,$e);e.memoizedProps=e.pendingProps,n===null?Dh(e):xe=n,bc.current=null}function Dh(e){var n=e;do{var a=n.alternate;if(e=n.return,n.flags&32768){if(a=ov(a,n),a!==null){a.flags&=32767,xe=a;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{be=6,xe=null;return}}else if(a=sv(a,n,$e),a!==null){xe=a;return}if(n=n.sibling,n!==null){xe=n;return}xe=n=e}while(n!==null);be===0&&(be=5)}function Mt(e,n,a){var s=te,o=dn.transition;try{dn.transition=null,te=1,mv(e,n,a,s)}finally{dn.transition=o,te=s}return null}function mv(e,n,a,s){do ya();while(ft!==null);if(K&6)throw Error(z(327));a=e.finishedWork;var o=e.finishedLanes;if(a===null)return null;if(e.finishedWork=null,e.finishedLanes=0,a===e.current)throw Error(z(177));e.callbackNode=null,e.callbackPriority=0;var r=a.lanes|a.childLanes;if(Vx(e,r),e===ke&&(xe=ke=null,Se=0),!(a.subtreeFlags&2064)&&!(a.flags&2064)||bo||(bo=!0,Bh(Go,function(){return ya(),null})),r=(a.flags&15990)!==0,a.subtreeFlags&15990||r){r=dn.transition,dn.transition=null;var i=te;te=1;var l=K;K|=4,bc.current=null,iv(e,a),Ih(a,e),Ty(tl),$o=!!nl,tl=nl=null,e.current=a,lv(a),_x(),K=l,te=i,dn.transition=r}else e.current=a;if(bo&&(bo=!1,ft=e,dr=o),r=e.pendingLanes,r===0&&(wt=null),Dx(a.stateNode),Be(e,ge()),n!==null)for(s=e.onRecoverableError,a=0;a<n.length;a++)o=n[a],s(o.value,{componentStack:o.stack,digest:o.digest});if(cr)throw cr=!1,e=jl,jl=null,e;return dr&1&&e.tag!==0&&ya(),r=e.pendingLanes,r&1?e===kl?bs++:(bs=0,kl=e):bs=0,qt(),null}function ya(){if(ft!==null){var e=wm(dr),n=dn.transition,a=te;try{if(dn.transition=null,te=16>e?16:e,ft===null)var s=!1;else{if(e=ft,ft=null,dr=0,K&6)throw Error(z(331));var o=K;for(K|=4,_=e.current;_!==null;){var r=_,i=r.child;if(_.flags&16){var l=r.deletions;if(l!==null){for(var c=0;c<l.length;c++){var d=l[c];for(_=d;_!==null;){var u=_;switch(u.tag){case 0:case 11:case 15:ys(8,u,r)}var p=u.child;if(p!==null)p.return=u,_=p;else for(;_!==null;){u=_;var m=u.sibling,y=u.return;if(Ph(u),u===d){_=null;break}if(m!==null){m.return=y,_=m;break}_=y}}}var b=r.alternate;if(b!==null){var x=b.child;if(x!==null){b.child=null;do{var j=x.sibling;x.sibling=null,x=j}while(x!==null)}}_=r}}if(r.subtreeFlags&2064&&i!==null)i.return=r,_=i;else e:for(;_!==null;){if(r=_,r.flags&2048)switch(r.tag){case 0:case 11:case 15:ys(9,r,r.return)}var f=r.sibling;if(f!==null){f.return=r.return,_=f;break e}_=r.return}}var h=e.current;for(_=h;_!==null;){i=_;var g=i.child;if(i.subtreeFlags&2064&&g!==null)g.return=i,_=g;else e:for(i=h;_!==null;){if(l=_,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:qr(9,l)}}catch(k){he(l,l.return,k)}if(l===i){_=null;break e}var w=l.sibling;if(w!==null){w.return=l.return,_=w;break e}_=l.return}}if(K=o,qt(),Tn&&typeof Tn.onPostCommitFiberRoot=="function")try{Tn.onPostCommitFiberRoot(kr,e)}catch{}s=!0}return s}finally{te=a,dn.transition=n}}return!1}function hu(e,n,a){n=Ia(a,n),n=wh(e,n,1),e=bt(e,n,1),n=Xe(),e!==null&&($s(e,1,n),Be(e,n))}function he(e,n,a){if(e.tag===3)hu(e,e,a);else for(;n!==null;){if(n.tag===3){hu(n,e,a);break}else if(n.tag===1){var s=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof s.componentDidCatch=="function"&&(wt===null||!wt.has(s))){e=Ia(a,e),e=jh(n,e,1),n=bt(n,e,1),e=Xe(),n!==null&&($s(n,1,e),Be(n,e));break}}n=n.return}}function hv(e,n,a){var s=e.pingCache;s!==null&&s.delete(n),n=Xe(),e.pingedLanes|=e.suspendedLanes&a,ke===e&&(Se&a)===a&&(be===4||be===3&&(Se&130023424)===Se&&500>ge()-jc?Ht(e,0):wc|=a),Be(e,n)}function Hh(e,n){n===0&&(e.mode&1?(n=co,co<<=1,!(co&130023424)&&(co=4194304)):n=1);var a=Xe();e=Qn(e,n),e!==null&&($s(e,n,a),Be(e,a))}function fv(e){var n=e.memoizedState,a=0;n!==null&&(a=n.retryLane),Hh(e,a)}function gv(e,n){var a=0;switch(e.tag){case 13:var s=e.stateNode,o=e.memoizedState;o!==null&&(a=o.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(z(314))}s!==null&&s.delete(n),Hh(e,a)}var Uh;Uh=function(e,n,a){if(e!==null)if(e.memoizedProps!==n.pendingProps||He.current)De=!0;else{if(!(e.lanes&a)&&!(n.flags&128))return De=!1,av(e,n,a);De=!!(e.flags&131072)}else De=!1,ce&&n.flags&1048576&&Vm(n,nr,n.index);switch(n.lanes=0,n.tag){case 2:var s=n.type;Io(e,n),e=n.pendingProps;var o=qa(n,Te.current);xa(n,a),o=fc(null,n,s,e,o,a);var r=gc();return n.flags|=1,typeof o=="object"&&o!==null&&typeof o.render=="function"&&o.$$typeof===void 0?(n.tag=1,n.memoizedState=null,n.updateQueue=null,Ue(s)?(r=!0,Jo(n)):r=!1,n.memoizedState=o.state!==null&&o.state!==void 0?o.state:null,dc(n),o.updater=zr,n.stateNode=o,o._reactInternals=n,ul(n,s,e,a),n=hl(null,n,s,!0,r,a)):(n.tag=0,ce&&r&&ac(n),Ie(null,n,o,a),n=n.child),n;case 16:s=n.elementType;e:{switch(Io(e,n),e=n.pendingProps,o=s._init,s=o(s._payload),n.type=s,o=n.tag=yv(s),e=gn(s,e),o){case 0:n=ml(null,n,s,e,a);break e;case 1:n=su(null,n,s,e,a);break e;case 11:n=tu(null,n,s,e,a);break e;case 14:n=au(null,n,s,gn(s.type,e),a);break e}throw Error(z(306,s,""))}return n;case 0:return s=n.type,o=n.pendingProps,o=n.elementType===s?o:gn(s,o),ml(e,n,s,o,a);case 1:return s=n.type,o=n.pendingProps,o=n.elementType===s?o:gn(s,o),su(e,n,s,o,a);case 3:e:{if(Ah(n),e===null)throw Error(z(387));s=n.pendingProps,r=n.memoizedState,o=r.element,Jm(e,n),sr(n,s,null,a);var i=n.memoizedState;if(s=i.element,r.isDehydrated)if(r={element:s,isDehydrated:!1,cache:i.cache,pendingSuspenseBoundaries:i.pendingSuspenseBoundaries,transitions:i.transitions},n.updateQueue.baseState=r,n.memoizedState=r,n.flags&256){o=Ia(Error(z(423)),n),n=ou(e,n,s,a,o);break e}else if(s!==o){o=Ia(Error(z(424)),n),n=ou(e,n,s,a,o);break e}else for(Ye=vt(n.stateNode.containerInfo.firstChild),Ke=n,ce=!0,bn=null,a=Km(n,null,s,a),n.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling;else{if(Pa(),s===o){n=Yn(e,n,a);break e}Ie(e,n,s,a)}n=n.child}return n;case 5:return eh(n),e===null&&ll(n),s=n.type,o=n.pendingProps,r=e!==null?e.memoizedProps:null,i=o.children,al(s,o)?i=null:r!==null&&al(s,r)&&(n.flags|=32),Sh(e,n),Ie(e,n,i,a),n.child;case 6:return e===null&&ll(n),null;case 13:return Oh(e,n,a);case 4:return uc(n,n.stateNode.containerInfo),s=n.pendingProps,e===null?n.child=Ta(n,null,s,a):Ie(e,n,s,a),n.child;case 11:return s=n.type,o=n.pendingProps,o=n.elementType===s?o:gn(s,o),tu(e,n,s,o,a);case 7:return Ie(e,n,n.pendingProps,a),n.child;case 8:return Ie(e,n,n.pendingProps.children,a),n.child;case 12:return Ie(e,n,n.pendingProps.children,a),n.child;case 10:e:{if(s=n.type._context,o=n.pendingProps,r=n.memoizedProps,i=o.value,ae(tr,s._currentValue),s._currentValue=i,r!==null)if(kn(r.value,i)){if(r.children===o.children&&!He.current){n=Yn(e,n,a);break e}}else for(r=n.child,r!==null&&(r.return=n);r!==null;){var l=r.dependencies;if(l!==null){i=r.child;for(var c=l.firstContext;c!==null;){if(c.context===s){if(r.tag===1){c=Gn(-1,a&-a),c.tag=2;var d=r.updateQueue;if(d!==null){d=d.shared;var u=d.pending;u===null?c.next=c:(c.next=u.next,u.next=c),d.pending=c}}r.lanes|=a,c=r.alternate,c!==null&&(c.lanes|=a),cl(r.return,a,n),l.lanes|=a;break}c=c.next}}else if(r.tag===10)i=r.type===n.type?null:r.child;else if(r.tag===18){if(i=r.return,i===null)throw Error(z(341));i.lanes|=a,l=i.alternate,l!==null&&(l.lanes|=a),cl(i,a,n),i=r.sibling}else i=r.child;if(i!==null)i.return=r;else for(i=r;i!==null;){if(i===n){i=null;break}if(r=i.sibling,r!==null){r.return=i.return,i=r;break}i=i.return}r=i}Ie(e,n,o.children,a),n=n.child}return n;case 9:return o=n.type,s=n.pendingProps.children,xa(n,a),o=un(o),s=s(o),n.flags|=1,Ie(e,n,s,a),n.child;case 14:return s=n.type,o=gn(s,n.pendingProps),o=gn(s.type,o),au(e,n,s,o,a);case 15:return kh(e,n,n.type,n.pendingProps,a);case 17:return s=n.type,o=n.pendingProps,o=n.elementType===s?o:gn(s,o),Io(e,n),n.tag=1,Ue(s)?(e=!0,Jo(n)):e=!1,xa(n,a),bh(n,s,o),ul(n,s,o,a),hl(null,n,s,!0,e,a);case 19:return Ch(e,n,a);case 22:return Nh(e,n,a)}throw Error(z(156,n.tag))};function Bh(e,n){return xm(e,n)}function xv(e,n,a,s){this.tag=e,this.key=a,this.sibling=this.child=this.return=this.stateNode=this.t
vendor: 9,468 bytes, line 40
40ype=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=s,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function cn(e,n,a,s){return new xv(e,n,a,s)}function Ac(e){return e=e.prototype,!(!e||!e.isReactComponent)}function yv(e){if(typeof e=="function")return Ac(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Wl)return 11;if(e===Gl)return 14}return 2}function kt(e,n){var a=e.alternate;return a===null?(a=cn(e.tag,n,e.key,e.mode),a.elementType=e.elementType,a.type=e.type,a.stateNode=e.stateNode,a.alternate=e,e.alternate=a):(a.pendingProps=n,a.type=e.type,a.flags=0,a.subtreeFlags=0,a.deletions=null),a.flags=e.flags&14680064,a.childLanes=e.childLanes,a.lanes=e.lanes,a.child=e.child,a.memoizedProps=e.memoizedProps,a.memoizedState=e.memoizedState,a.updateQueue=e.updateQueue,n=e.dependencies,a.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},a.sibling=e.sibling,a.index=e.index,a.ref=e.ref,a}function _o(e,n,a,s,o,r){var i=2;if(s=e,typeof e=="function")Ac(e)&&(i=1);else if(typeof e=="string")i=5;else e:switch(e){case ta:return Ut(a.children,o,r,n);case Bl:i=8,o|=8;break;case Ii:return e=cn(12,a,n,o|2),e.elementType=Ii,e.lanes=r,e;case Li:return e=cn(13,a,n,o),e.elementType=Li,e.lanes=r,e;case Xi:return e=cn(19,a,n,o),e.elementType=Xi,e.lanes=r,e;case em:return Tr(a,o,r,n);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Zp:i=10;break e;case Jp:i=9;break e;case Wl:i=11;break e;case Gl:i=14;break e;case ot:i=16,s=null;break e}throw Error(z(130,e==null?e:typeof e,""))}return n=cn(i,a,n,o),n.elementType=e,n.type=s,n.lanes=r,n}function Ut(e,n,a,s){return e=cn(7,e,s,n),e.lanes=a,e}function Tr(e,n,a,s){return e=cn(22,e,s,n),e.elementType=em,e.lanes=a,e.stateNode={isHidden:!1},e}function wi(e,n,a){return e=cn(6,e,null,n),e.lanes=a,e}function ji(e,n,a){return n=cn(4,e.children!==null?e.children:[],e.key,n),n.lanes=a,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function vv(e,n,a,s,o){this.tag=n,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ti(0),this.expirationTimes=ti(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ti(0),this.identifierPrefix=s,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Oc(e,n,a,s,o,r,i,l,c){return e=new vv(e,n,a,l,c),n===1?(n=1,r===!0&&(n|=8)):n=0,r=cn(3,null,null,n),e.current=r,r.stateNode=e,r.memoizedState={element:s,isDehydrated:a,cache:null,transitions:null,pendingSuspenseBoundaries:null},dc(r),e}function bv(e,n,a){var s=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:na,key:s==null?null:""+s,children:e,containerInfo:n,implementation:a}}function Wh(e){if(!e)return St;e=e._reactInternals;e:{if(Zt(e)!==e||e.tag!==1)throw Error(z(170));var n=e;do{switch(n.tag){case 3:n=n.stateNode.context;break e;case 1:if(Ue(n.type)){n=n.stateNode.__reactInternalMemoizedMergedChildContext;break e}}n=n.return}while(n!==null);throw Error(z(171))}if(e.tag===1){var a=e.type;if(Ue(a))return Wm(e,a,n)}return n}function Gh(e,n,a,s,o,r,i,l,c){return e=Oc(a,s,!0,e,o,r,i,l,c),e.context=Wh(null),a=e.current,s=Xe(),o=jt(a),r=Gn(s,o),r.callback=n??null,bt(a,r,o),e.current.lanes=o,$s(e,o,s),Be(e,s),e}function Mr(e,n,a,s){var o=n.current,r=Xe(),i=jt(o);return a=Wh(a),n.context===null?n.context=a:n.pendingContext=a,n=Gn(r,i),n.payload={element:e},s=s===void 0?null:s,s!==null&&(n.callback=s),e=bt(o,n,i),e!==null&&(jn(e,o,i,r),Po(e,o,i)),i}function pr(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function fu(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var a=e.retryLane;e.retryLane=a!==0&&a<n?a:n}}function Cc(e,n){fu(e,n),(e=e.alternate)&&fu(e,n)}function wv(){return null}var Vh=typeof reportError=="function"?reportError:function(e){console.error(e)};function Ec(e){this._internalRoot=e}Ir.prototype.render=Ec.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(z(409));Mr(e,n,null,null)};Ir.prototype.unmount=Ec.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;$t(function(){Mr(null,e,null,null)}),n[$n]=null}};function Ir(e){this._internalRoot=e}Ir.prototype.unstable_scheduleHydration=function(e){if(e){var n=Nm();e={blockedOn:null,target:e,priority:n};for(var a=0;a<it.length&&n!==0&&n<it[a].priority;a++);it.splice(a,0,e),a===0&&Am(e)}};function zc(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Lr(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function gu(){}function jv(e,n,a,s,o){if(o){if(typeof s=="function"){var r=s;s=function(){var d=pr(i);r.call(d)}}var i=Gh(n,s,e,0,null,!1,!1,"",gu);return e._reactRootContainer=i,e[$n]=i.current,qs(e.nodeType===8?e.parentNode:e),$t(),i}for(;o=e.lastChild;)e.removeChild(o);if(typeof s=="function"){var l=s;s=function(){var d=pr(c);l.call(d)}}var c=Oc(e,0,!1,null,null,!1,!1,"",gu);return e._reactRootContainer=c,e[$n]=c.current,qs(e.nodeType===8?e.parentNode:e),$t(function(){Mr(n,c,a,s)}),c}function Xr(e,n,a,s,o){var r=a._reactRootContainer;if(r){var i=r;if(typeof o=="function"){var l=o;o=function(){var c=pr(i);l.call(c)}}Mr(n,i,e,o)}else i=jv(a,n,e,o,s);return pr(i)}jm=function(e){switch(e.tag){case 3:var n=e.stateNode;if(n.current.memoizedState.isDehydrated){var a=ds(n.pendingLanes);a!==0&&(Ql(n,a|1),Be(n,ge()),!(K&6)&&(La=ge()+500,qt()))}break;case 13:$t(function(){var s=Qn(e,1);if(s!==null){var o=Xe();jn(s,e,1,o)}}),Cc(e,1)}};Yl=function(e){if(e.tag===13){var n=Qn(e,134217728);if(n!==null){var a=Xe();jn(n,e,134217728,a)}Cc(e,134217728)}};km=function(e){if(e.tag===13){var n=jt(e),a=Qn(e,n);if(a!==null){var s=Xe();jn(a,e,n,s)}Cc(e,n)}};Nm=function(){return te};Sm=function(e,n){var a=te;try{return te=e,n()}finally{te=a}};Vi=function(e,n,a){switch(n){case"input":if(Ri(e,a),n=a.name,a.type==="radio"&&n!=null){for(a=e;a.parentNode;)a=a.parentNode;for(a=a.querySelectorAll("input[name="+JSON.stringify(""+n)+'][type="radio"]'),n=0;n<a.length;n++){var s=a[n];if(s!==e&&s.form===e.form){var o=Or(s);if(!o)throw Error(z(90));tm(s),Ri(s,o)}}}break;case"textarea":sm(e,a);break;case"select":n=a.value,n!=null&&ma(e,!!a.multiple,n,!1)}};um=kc;pm=$t;var kv={usingClientEntryPoint:!1,Events:[Ys,ra,Or,cm,dm,kc]},as={findFiberByHostInstance:It,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Nv={bundleType:as.bundleType,version:as.version,rendererPackageName:as.rendererPackageName,rendererConfig:as.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Jn.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=fm(e),e===null?null:e.stateNode},findFiberByHostInstance:as.findFiberByHostInstance||wv,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var wo=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!wo.isDisabled&&wo.supportsFiber)try{kr=wo.inject(Nv),Tn=wo}catch{}}en.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=kv;en.createPortal=function(e,n){var a=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!zc(n))throw Error(z(200));return bv(e,n,null,a)};en.createRoot=function(e,n){if(!zc(e))throw Error(z(299));var a=!1,s="",o=Vh;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(s=n.identifierPrefix),n.onRecoverableError!==void 0&&(o=n.onRecoverableError)),n=Oc(e,1,!1,null,null,a,!1,s,o),e[$n]=n.current,qs(e.nodeType===8?e.parentNode:e),new Ec(n)};en.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var n=e._reactInternals;if(n===void 0)throw typeof e.render=="function"?Error(z(188)):(e=Object.keys(e).join(","),Error(z(268,e)));return e=fm(n),e=e===null?null:e.stateNode,e};en.flushSync=function(e){return $t(e)};en.hydrate=function(e,n,a){if(!Lr(n))throw Error(z(200));return Xr(null,e,n,!0,a)};en.hydrateRoot=function(e,n,a){if(!zc(e))throw Error(z(405));var s=a!=null&&a.hydratedSources||null,o=!1,r="",i=Vh;if(a!=null&&(a.unstable_strictMode===!0&&(o=!0),a.identifierPrefix!==void 0&&(r=a.identifierPrefix),a.onRecoverableError!==void 0&&(i=a.onRecoverableError)),n=Gh(n,null,e,1,a??null,o,!1,r,i),e[$n]=n.current,qs(e),s)for(e=0;e<s.length;e++)a=s[e],o=a._getVersion,o=o(a._source),n.mutableSourceEagerHydrationData==null?n.mutableSourceEagerHydrationData=[a,o]:n.mutableSourceEagerHydrationData.push(a,o);return new Ir(n)};en.render=function(e,n,a){if(!Lr(n))throw Error(z(200));return Xr(null,e,n,!1,a)};en.unmountComponentAtNode=function(e){if(!Lr(e))throw Error(z(40));return e._reactRootContainer?($t(function(){Xr(null,null,e,!1,function(){e._reactRootContainer=null,e[$n]=null})}),!0):!1};en.unstable_batchedUpdates=kc;
40en.unstable_renderSubtreeIntoContainer=function(e,n,a,s){if(!Lr(a))throw Error(z(200));if(e==null||e._reactInternals===void 0)throw Error(z(38));return Xr(e,n,a,!1,s)};en.version="18.3.1-next-f1338f8080-20240426";function $h(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE($h)}catch(e){console.error(e)}}$h(),$p.exports=en;var Zs=$p.exports;const Sv=Lp(Zs);var Qh,xu=Zs;Qh=xu.createRoot,xu.hydrateRoot;function Av(e,n){if(e instanceof RegExp)return{keys:!1,pattern:e};var a,s,o,r,i=[],l="",c=e.split("/");for(c[0]||c.shift();o=c.shift();)a=o[0],a==="*"?(i.push(a),l+=o[1]==="?"?"(?:/(.*))?":"/(.*)"):a===":"?(s=o.indexOf("?",1),r=o.indexOf(".",1),i.push(o.substring(1,~s?s:~r?r:o.length)),l+=~s&&!~r?"(?:/([^/]+?))?":"/([^/]+?)",~r&&(l+=(~s?"?":"")+"\\"+o.substring(r))):l+="/"+o;return{keys:i,pattern:new RegExp("^"+l+(n?"(?=$|/)":"/?$"),"i")}}var Yh={exports:{}},Kh={};/**
41 * @license React
42 * use-sync-external-store-shim.production.min.js
43 *
44 * Copyright (c) Facebook, Inc. and its affiliates.
45 *
46 * This source code is licensed under the MIT license found in the
47 * LICENSE file in the root directory of this source tree.
48 */var Xa=v;function Ov(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Cv=typeof Object.is=="function"?Object.is:Ov,Ev=Xa.useState,zv=Xa.useEffect,qv=Xa.useLayoutEffect,Pv=Xa.useDebugValue;function Tv(e,n){var a=n(),s=Ev({inst:{value:a,getSnapshot:n}}),o=s[0].inst,r=s[1];return qv(function(){o.value=a,o.getSnapshot=n,ki(o)&&r({inst:o})},[e,a,n]),zv(function(){return ki(o)&&r({inst:o}),e(function(){ki(o)&&r({inst:o})})},[e]),Pv(a),a}function ki(e){var n=e.getSnapshot;e=e.value;try{var a=n();return!Cv(e,a)}catch{return!0}}function Mv(e,n){return n()}var Iv=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?Mv:Tv;Kh.useSyncExternalStore=Xa.useSyncExternalStore!==void 0?Xa.useSyncExternalStore:Iv;Yh.exports=Kh;var Lv=Yh.exports;const Xv=hx.useInsertionEffect,_v=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Fv=_v?v.useLayoutEffect:v.useEffect,Rv=Xv||Fv,Zh=e=>{const n=v.useRef([e,(...a)=>n[0](...a)]).current;return Rv(()=>{n[0]=e}),n[1]},Dv="popstate",qc="pushState",Pc="replaceState",Hv="hashchange",yu=[Dv,qc,Pc,Hv],Uv=e=>{for(const n of yu)addEventListener(n,e);return()=>{for(const n of yu)removeEventListener(n,e)}},Jh=(e,n)=>Lv.useSyncExternalStore(Uv,e,n),Bv=()=>location.search,Wv=({ssrSearch:e=""}={})=>Jh(Bv,()=>e),vu=()=>location.pathname,Gv=({ssrPath:e}={})=>Jh(vu,e?()=>e:vu),Vv=(e,{replace:n=!1,state:a=null}={})=>history[n?Pc:qc](a,"",e),$v=(e={})=>[Gv(e),Vv],bu=Symbol.for("wouter_v3");if(typeof history<"u"&&typeof window[bu]>"u"){for(const e of[qc,Pc]){const n=history[e];history[e]=function(){const a=n.apply(this,arguments),s=new Event(e);return s.arguments=arguments,dispatchEvent(s),a}}Object.defineProperty(window,bu,{value:!0})}const Qv=(e,n)=>n.toLowerCase().indexOf(e.toLowerCase())?"~"+n:n.slice(e.length)||"/",ef=(e="")=>e==="/"?"":e,Yv=(e,n)=>e[0]==="~"?e.slice(1):ef(n)+e,Kv=(e="",n)=>Qv(wu(ef(e)),wu(n)),wu=e=>{try{return decodeURI(e)}catch{return e}},nf={hook:$v,searchHook:Wv,parser:Av,base:"",ssrPath:void 0,ssrSearch:void 0,hrefs:e=>e},tf=v.createContext(nf),Ua=()=>v.useContext(tf),af={},sf=v.createContext(af),Zv=()=>v.useContext(sf),_r=e=>{const[n,a]=e.hook(e);return[Kv(e.base,n),Zh((s,o)=>a(Yv(s,e.base),o))]},Jt=()=>_r(Ua()),Tc=(e,n,a,s)=>{const{pattern:o,keys:r}=n instanceof RegExp?{keys:!1,pattern:n}:e(n||"*",s),i=o.exec(a)||[],[l,...c]=i;return l!==void 0?[!0,(()=>{const d=r!==!1?Object.fromEntries(r.map((p,m)=>[p,c[m]])):i.groups;let u={...c};return d&&Object.assign(u,d),u})(),...s?[l]:[]]:[!1,null]},ju=e=>Tc(Ua().parser,e,Jt()[0]),of=({children:e,...n})=>{var u,p;const a=Ua(),s=n.hook?nf:a;let o=s;const[r,i]=((u=n.ssrPath)==null?void 0:u.split("?"))??[];i&&(n.ssrSearch=i,n.ssrPath=r),n.hrefs=n.hrefs??((p=n.hook)==null?void 0:p.hrefs);let l=v.useRef({}),c=l.current,d=c;for(let m in s){const y=m==="base"?s[m]+(n[m]||""):n[m]||s[m];c===d&&y!==d[m]&&(l.current=d={...d}),d[m]=y,y!==s[m]&&(o=d)}return v.createElement(tf.Provider,{value:o,children:e})},ku=({children:e,component:n},a)=>n?v.createElement(n,{params:a}):typeof e=="function"?e(a):e,Jv=e=>{let n=v.useRef(af),a=n.current;for(const s in e)e[s]!==a[s]&&(a=e);return Object.keys(e).length===0&&(a=e),n.current=a},X=({path:e,nest:n,match:a,...s})=>{const o=Ua(),[r]=_r(o),[i,l,c]=a??Tc(o.parser,e,r,n),d=Jv({...Zv(),...l});if(!i)return null;const u=c?v.createElement(of,{base:c},ku(s,d)):ku(s,d);return v.createElement(sf.Provider,{value:d,children:u})}
48,E=v.forwardRef((e,n)=>{const a=Ua(),[s,o]=_r(a),{to:r="",href:i=r,onClick:l,asChild:c,children:d,className:u,replace:p,state:m,...y}=e,b=Zh(j=>{j.ctrlKey||j.metaKey||j.altKey||j.shiftKey||j.button!==0||(l==null||l(j),j.defaultPrevented||(j.preventDefault(),o(i,e)))}),x=a.hrefs(i[0]==="~"?i.slice(1):a.base+i,a);return c&&v.isValidElement(d)?v.cloneElement(d,{onClick:b,href:x}):v.createElement("a",{...y,onClick:b,href:x,className:u!=null&&u.call?u(s===i):u,children:d,ref:n})}),rf=e=>Array.isArray(e)?e.flatMap(n=>rf(n&&n.type===v.Fragment?n.props.children:n)):[e],e0=({children:e,location:n})=>{const a=Ua(),[s]=_r(a);for(const o of rf(e)){let r=0;if(v.isValidElement(o)&&(r=Tc(a.parser,o.props.path,n||s,o.props.nest))[0])return v.cloneElement(o,{match:r})}return null};var Fr=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Rr=typeof window>"u"||"Deno"in globalThis;function xn(){}function n0(e,n){return typeof e=="function"?e(n):e}function t0(e){return typeof e=="number"&&e>=0&&e!==1/0}function a0(e,n){return Math.max(e+(n||0)-Date.now(),0)}function Nu(e,n){return typeof e=="function"?e(n):e}function s0(e,n){return typeof e=="function"?e(n):e}function Su(e,n){const{type:a="all",exact:s,fetchStatus:o,predicate:r,queryKey:i,stale:l}=e;if(i){if(s){if(n.queryHash!==Mc(i,n.options))return!1}else if(!Ds(n.queryKey,i))return!1}if(a!=="all"){const c=n.isActive();if(a==="active"&&!c||a==="inactive"&&c)return!1}return!(typeof l=="boolean"&&n.isStale()!==l||o&&o!==n.state.fetchStatus||r&&!r(n))}function Au(e,n){const{exact:a,status:s,predicate:o,mutationKey:r}=e;if(r){if(!n.options.mutationKey)return!1;if(a){if(Rs(n.options.mutationKey)!==Rs(r))return!1}else if(!Ds(n.options.mutationKey,r))return!1}return!(s&&n.state.status!==s||o&&!o(n))}function Mc(e,n){return((n==null?void 0:n.queryKeyHashFn)||Rs)(e)}function Rs(e){return JSON.stringify(e,(n,a)=>Al(a)?Object.keys(a).sort().reduce((s,o)=>(s[o]=a[o],s),{}):a)}function Ds(e,n){return e===n?!0:typeof e!=typeof n?!1:e&&n&&typeof e=="object"&&typeof n=="object"?!Object.keys(n).some(a=>!Ds(e[a],n[a])):!1}function lf(e,n){if(e===n)return e;const a=Ou(e)&&Ou(n);if(a||Al(e)&&Al(n)){const s=a?e:Object.keys(e),o=s.length,r=a?n:Object.keys(n),i=r.length,l=a?[]:{};let c=0;for(let d=0;d<i;d++){const u=a?d:r[d];(!a&&s.includes(u)||a)&&e[u]===void 0&&n[u]===void 0?(l[u]=void 0,c++):(l[u]=lf(e[u],n[u]),l[u]===e[u]&&e[u]!==void 0&&c++)}return o===i&&c===o?e:l}return n}function Ou(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Al(e){if(!Cu(e))return!1;const n=e.constructor;if(n===void 0)return!0;const a=n.prototype;return!(!Cu(a)||!a.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function Cu(e){return Object.prototype.toString.call(e)==="[object Object]"}function o0(e){return new Promise(n=>{setTimeout(n,e)})}function r0(e,n,a){return typeof a.structuralSharing=="function"?a.structuralSharing(e,n):a.structuralSharing!==!1?lf(e,n):n}function i0(e,n,a=0){const s=[...e,n];return a&&s.length>a?s.slice(1):s}function l0(e,n,a=0){const s=[n,...e];return a&&s.length>a?s.slice(0,-1):s}var Ic=Symbol();function cf(e,n){return!e.queryFn&&(n!=null&&n.initialPromise)?()=>n.initialPromise:!e.queryFn||e.queryFn===Ic?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}
vendor: 19,685 bytes, line 48
48var _t,ct,wa,Cp,c0=(Cp=class extends Fr{constructor(){super();ne(this,_t);ne(this,ct);ne(this,wa);B(this,wa,n=>{if(!Rr&&window.addEventListener){const a=()=>n();return window.addEventListener("visibilitychange",a,!1),()=>{window.removeEventListener("visibilitychange",a)}}})}onSubscribe(){A(this,ct)||this.setEventListener(A(this,wa))}onUnsubscribe(){var n;this.hasListeners()||((n=A(this,ct))==null||n.call(this),B(this,ct,void 0))}setEventListener(n){var a;B(this,wa,n),(a=A(this,ct))==null||a.call(this),B(this,ct,n(s=>{typeof s=="boolean"?this.setFocused(s):this.onFocus()}))}setFocused(n){A(this,_t)!==n&&(B(this,_t,n),this.onFocus())}onFocus(){const n=this.isFocused();this.listeners.forEach(a=>{a(n)})}isFocused(){var n;return typeof A(this,_t)=="boolean"?A(this,_t):((n=globalThis.document)==null?void 0:n.visibilityState)!=="hidden"}},_t=new WeakMap,ct=new WeakMap,wa=new WeakMap,Cp),df=new c0,ja,dt,ka,Ep,d0=(Ep=class extends Fr{constructor(){super();ne(this,ja,!0);ne(this,dt);ne(this,ka);B(this,ka,n=>{if(!Rr&&window.addEventListener){const a=()=>n(!0),s=()=>n(!1);return window.addEventListener("online",a,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",a),window.removeEventListener("offline",s)}}})}onSubscribe(){A(this,dt)||this.setEventListener(A(this,ka))}onUnsubscribe(){var n;this.hasListeners()||((n=A(this,dt))==null||n.call(this),B(this,dt,void 0))}setEventListener(n){var a;B(this,ka,n),(a=A(this,dt))==null||a.call(this),B(this,dt,n(this.setOnline.bind(this)))}setOnline(n){A(this,ja)!==n&&(B(this,ja,n),this.listeners.forEach(s=>{s(n)}))}isOnline(){return A(this,ja)}},ja=new WeakMap,dt=new WeakMap,ka=new WeakMap,Ep),mr=new d0;function u0(){let e,n;const a=new Promise((o,r)=>{e=o,n=r});a.status="pending",a.catch(()=>{});function s(o){Object.assign(a,o),delete a.resolve,delete a.reject}return a.resolve=o=>{s({status:"fulfilled",value:o}),e(o)},a.reject=o=>{s({status:"rejected",reason:o}),n(o)},a}function p0(e){return Math.min(1e3*2**e,3e4)}function uf(e){return(e??"online")==="online"?mr.isOnline():!0}var pf=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function Ni(e){return e instanceof pf}function mf(e){let n=!1,a=0,s=!1,o;const r=u0(),i=x=>{var j;s||(m(new pf(x)),(j=e.abort)==null||j.call(e))},l=()=>{n=!0},c=()=>{n=!1},d=()=>df.isFocused()&&(e.networkMode==="always"||mr.isOnline())&&e.canRun(),u=()=>uf(e.networkMode)&&e.canRun(),p=x=>{var j;s||(s=!0,(j=e.onSuccess)==null||j.call(e,x),o==null||o(),r.resolve(x))},m=x=>{var j;s||(s=!0,(j=e.onError)==null||j.call(e,x),o==null||o(),r.reject(x))},y=()=>new Promise(x=>{var j;o=f=>{(s||d())&&x(f)},(j=e.onPause)==null||j.call(e)}).then(()=>{var x;o=void 0,s||(x=e.onContinue)==null||x.call(e)}),b=()=>{if(s)return;let x;const j=a===0?e.initialPromise:void 0;try{x=j??e.fn()}catch(f){x=Promise.reject(f)}Promise.resolve(x).then(p).catch(f=>{var N;if(s)return;const h=e.retry??(Rr?0:3),g=e.retryDelay??p0,w=typeof g=="function"?g(a,f):g,k=h===!0||typeof h=="number"&&a<h||typeof h=="function"&&h(a,f);if(n||!k){m(f);return}a++,(N=e.onFail)==null||N.call(e,a,f),o0(w).then(()=>d()?void 0:y()).then(()=>{n?m(f):b()})})};return{promise:r,cancel:i,continue:()=>(o==null||o(),r),cancelRetry:l,continueRetry:c,canStart:u,start:()=>(u()?b():y().then(b),r)}}function m0(){let e=[],n=0,a=l=>{l()},s=l=>{l()},o=l=>setTimeout(l,0);const r=l=>{n?e.push(l):o(()=>{a(l)})},i=()=>{const l=e;e=[],l.length&&o(()=>{s(()=>{l.forEach(c=>{a(c)})})})};return{batch:l=>{let c;n++;try{c=l()}finally{n--,n||i()}return c},batchCalls:l=>(...c)=>{r(()=>{l(...c)})},schedule:r,setNotifyFunction:l=>{a=l},setBatchNotifyFunction:l=>{s=l},setScheduler:l=>{o=l}}}var Le=m0(),Ft,zp,hf=(zp=class{constructor(){ne(this,Ft)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),t0(this.gcTime)&&B(this,Ft,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Rr?1/0:5*60*1e3))}clearGcTimeout(){A(this,Ft)&&(clearTimeout(A(this,Ft)),B(this,Ft,void 0))}},Ft=new WeakMap,zp),Na,Sa,on,qe,Ws,Rt,yn,Dn,qp,h0=(qp=class extends hf{constructor(n){super();ne(this,yn);ne(this,Na);ne(this,Sa);ne(this,on);ne(this,qe);ne(this,Ws);ne(this,Rt);B(this,Rt,!1),B(this,Ws,n.defaultOptions),this.setOptions(n.options),this.observers=[],B(this,on,n.cache),this.queryKey=n.queryKey,this.queryHash=n.queryHash,B(this,Na,g0(this.options)),this.state=n.state??A(this,Na),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var n;return(n=A(this,qe))==null?void 0:n.promise}setOptions(n){this.options={...A(this,Ws),...n},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&A(this,on).remove(this)}setData(n,a){const s=r0(this.state.data,n,this.options);return Oe(this,yn,Dn).call(this,{data:s,type:"success",dataUpdatedAt:a==null?void 0:a.updatedAt,manual:a==null?void 0:a.manual}),s}setState(n,a){Oe(this,yn,Dn).call(this,{type:"setState",state:n,setStateOptions:a})}cancel(n){var s,o;const a=(s=A(this,qe))==null?void 0:s.promise;return(o=A(this,qe))==null||o.cancel(n),a?a.then(xn).catch(xn):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(A(this,Na))}isActive(){return this.observers.some(n=>s0(n.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Ic||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStale(){return this.state.isInvalidated?!0:this.getObserversCount()>0?this.observers.some(n=>n.getCurrentResult().isStale):this.state.data===void 0}isStaleByTime(n=0){return this.state.isInvalidated||this.state.data===void 0||!a0(this.state.dataUpdatedAt,n)}onFocus(){var a;const n=this.observers.find(s=>s.shouldFetchOnWindowFocus());n==null||n.refetch({cancelRefetch:!1}),(a=A(this,qe))==null||a.continue()}onOnline(){var a;const n=this.observers.find(s=>s.shouldFetchOnReconnect());n==null||n.refetch({cancelRefetch:!1}),(a=A(this,qe))==null||a.continue()}addObserver(n){this.observers.includes(n)||(this.observers.push(n),this.clearGcTimeout(),A(this,on).notify({type:"observerAdded",query:this,observer:n}))}removeObserver(n){this.observers.includes(n)&&(this.observers=this.observers.filter(a=>a!==n),this.observers.length||(A(this,qe)&&(A(this,Rt)?A(this,qe).cancel({revert:!0}):A(this,qe).cancelRetry()),this.scheduleGc()),A(this,on).notify({type:"observerRemoved",query:this,observer:n}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Oe(this,yn,Dn).call(this,{type:"invalidate"})}fetch(n,a){var c,d,u;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(a!=null&&a.cancelRefetch))this.cancel({silent:!0});else if(A(this,qe))return A(this,qe).continueRetry(),A(this,qe).promise}if(n&&this.setOptions(n),!this.options.queryFn){const p=this.observers.find(m=>m.options.queryFn);p&&this.setOptions(p.options)}const s=new AbortController,o=p=>{Object.defineProperty(p,"signal",{enumerable:!0,get:()=>(B(this,Rt,!0),s.signal)})},r=()=>{const p=cf(this.options,a),m={queryKey:this.queryKey,meta:this.meta};return o(m),B(this,Rt,!1),this.options.persister?this.options.persister(p,m,this):p(m)},i={fetchOptions:a,options:this.options,queryKey:this.queryKey,state:this.state,fetchFn:r};o(i),(c=this.options.behavior)==null||c.onFetch(i,this),B(this,Sa,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((d=i.fetchOptions)==null?void 0:d.meta))&&Oe(this,yn,Dn).call(this,{type:"fetch",meta:(u=i.fetchOptions)==null?void 0:u.meta});const l=p=>{var m,y,b,x;Ni(p)&&p.silent||Oe(this,yn,Dn).call(this,{type:"error",error:p}),Ni(p)||((y=(m=A(this,on).config).onError)==null||y.call(m,p,this),(x=(b=A(this,on).config).onSettled)==null||x.call(b,this.state.data,p,this)),this.scheduleGc()};return B(this,qe,mf({initialPromise:a==null?void 0:a.initialPromise,fn:i.fetchFn,abort:s.abort.bind(s),onSuccess:p=>{var m,y,b,x;if(p===void 0){l(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(p)}catch(j){l(j);return}(y=(m=A(this,on).config).onSuccess)==null||y.call(m,p,this),(x=(b=A(this,on).config).onSettled)==null||x.call(b,p,this.state.error,this),this.scheduleGc()},onError:l,onFail:(p,m)=>{Oe(this,yn,Dn).call(this,{type:"failed",failureCount:p,error:m})},onPause:()=>{Oe(this,yn,Dn).call(this,{type:"pause"})},onContinue:()=>{Oe(this,yn,Dn).call(this,{type:"continue"})},retry:i.options.retry,retryDelay:i.options.retryDelay,networkMode:i.options.networkMode,canRun:()=>!0})),A(this,qe).start()}},Na=new WeakMap,Sa=new WeakMap,on=new WeakMap,qe=new WeakMap,Ws=new WeakMap,Rt=new WeakMap,yn=new WeakSet,Dn=function(n){const a=s=>{switch(n.type){case"failed":return{...s,fetchFailureCount:n.failureCount,fetchFailureReason:n.error};case"pause":return{...s,fetchStatus:"paused"};case"continue":return{...s,fetchStatus:"fetching"};case"fetch":return{...s,...f0(s.data,this.options),fetchMeta:n.meta??null};case"success":return{...s,data:n.data,dataUpdateCount:s.dataUpdateCount+1,dataUpdatedAt:n.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!n.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const o=n.error;return Ni(o)&&o.revert&&A(this,Sa)?{...A(this,Sa),fetchStatus:"idle"}:{...s,error:o,errorUpdateCount:s.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:s.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error"};case"invalidate":return{...s,isInvalidated:!0};case"setState":return{...s,...n.state}}};this.state=a(this.state),Le.batch(()=>{this.observers.forEach(s=>{s.onQueryUpdate()}),A(this,on).notify({query:this,type:"updated",action:n})})},qp);function f0(e,n){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:uf(n.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function g0(e){const n=typeof e.initialData=="function"?e.initialData():e.initialData,a=n!==void 0,s=a?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:n,dataUpdateCount:0,dataUpdatedAt:a?s??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:a?"success":"pending",fetchStatus:"idle"}}var En,Pp,x0=(Pp=class extends Fr{constructor(n={}){super();ne(this,En);this.config=n,B(this,En,new Map)}build(n,a,s){const o=a.queryKey,r=a.queryHash??Mc(o,a);let i=this.get(r);return i||(i=new h0({cache:this,queryKey:o,queryHash:r,options:n.defaultQueryOptions(a),state:s,defaultOptions:n.getQueryDefaults(o)}),this.add(i)),i}add(n){A(this,En).has(n.queryHash)||(A(this,En).set(n.queryHash,n),this.notify({type:"added",query:n}))}remove(n){const a=A(this,En).get(n.queryHash);a&&(n.destroy(),a===n&&A(this,En).delete(n.queryHash),this.notify({type:"removed",query:n}))}clear(){Le.batch(()=>{this.getAll().forEach(n=>{this.remove(n)})})}get(n){return A(this,En).get(n)}getAll(){return[...A(this,En).values()]}find(n){const a={exact:!0,...n};return this.getAll().find(s=>Su(a,s))}findAll(n={}){const a=this.getAll();return Object.keys(n).length>0?a.filter(s=>Su(n,s)):a}notify(n){Le.batch(()=>{this.listeners.forEach(a=>{a(n)})})}onFocus(){Le.batch(()=>{this.getAll().forEach(n=>{n.onFocus()})})}onOnline(){Le.batch(()=>{this.getAll().forEach(n=>{n.onOnline()})})}},En=new WeakMap,Pp),zn,Me,Dt,qn,st,Tp,y0=(Tp=class extends hf{constructor(n){super();ne(this,qn);ne(this,zn);ne(this,Me);ne(this,Dt);this.mutationId=n.mutationId,B(this,Me,n.mutationCache),B(this,zn,[]),this.state=n.state||v0(),this.setOptions(n.options),this.scheduleGc()}setOptions(n){this.options=n,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(n){A(this,zn).includes(n)||(A(this,zn).push(n),this.clearGcTimeout(),A(this,Me).notify({type:"observerAdded",mutation:this,observer:n}))}removeObserver(n){B(this,zn,A(this,zn).filter(a=>a!==n)),this.scheduleGc(),A(this,Me).notify({type:"observerRemoved",mutation:this,observer:n})}optionalRemove(){A(this,zn).length||(this.state.status==="pending"?this.scheduleGc():A(this,Me).remove(this))}continue(){var n;return((n=A(this,Dt))==null?void 0:n.continue())??this.execute(this.state.variables)}async execute(n){var o,r,i,l,c,d,u,p,m,y,b,x,j,f,h,g,w,k,N,S;B(this,Dt,mf({fn:()=>this.options.mutationFn?this.options.mutationFn(n):Promise.reject(new Error("No mutationFn found")),onFail:(O,F)=>{Oe(this,qn,st).call(this,{type:"failed",failureCount:O,error:F})},onPause:()=>{Oe(this,qn,st).call(this,{type:"pause"})},onContinue:()=>{Oe(this,qn,st).call(this,{type:"continue"})},retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>A(this,Me).canRun(this)}));const a=this.state.status==="pending",s=!A(this,Dt).canStart();try{if(!a){Oe(this,qn,st).call(this,{type:"pending",variables:n,isPaused:s}),await((r=(o=A(this,Me).config).onMutate)==null?void 0:r.call(o,n,this));const F=await((l=(i=this.options).onMutate)==null?void 0:l.call(i,n));F!==this.state.context&&Oe(this,qn,st).call(this,{type:"pending",context:F,variables:n,isPaused:s})}const O=await A(this,Dt).start();return await((d=(c=A(this,Me).config).onSuccess)==null?void 0:d.call(c,O,n,this.state.context,this)),await((p=(u=this.options).onSuccess)==null?void 0:p.call(u,O,n,this.state.context)),await((y=(m=A(this,Me).config).onSettled)==null?void 0:y.call(m,O,null,this.state.variables,this.state.context,this)),await((x=(b=this.options).onSettled)==null?void 0:x.call(b,O,null,n,this.state.context)),Oe(this,qn,st).call(this,{type:"success",data:O}),O}catch(O){try{throw await((f=(j=A(this,Me).config).onError)==null?void 0:f.call(j,O,n,this.state.context,this)),await((g=(h=this.options).onError)==null?void 0:g.call(h,O,n,this.state.context)),await((k=(w=A(this,Me).config).onSettled)==null?void 0:k.call(w,void 0,O,this.state.variables,this.state.context,this)),await((S=(N=this.options).onSettled)==null?void 0:S.call(N,void 0,O,n,this.state.context)),O}finally{Oe(this,qn,st).call(this,{type:"error",error:O})}}finally{A(this,Me).runNext(this)}}},zn=new WeakMap,Me=new WeakMap,Dt=new WeakMap,qn=new WeakSet,st=function(n){const a=s=>{switch(n.type){case"failed":return{...s,failureCount:n.failureCount,failureReason:n.error};case"pause":return{...s,isPaused:!0};case"continue":return{...s,isPaused:!1};case"pending":return{...s,context:n.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:n.isPaused,status:"pending",variables:n.variables,submittedAt:Date.now()};case"success":return{...s,data:n.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...s,data:void 0,error:n.error,failureCount:s.failureCount+1,failureReason:n.error,isPaused:!1,status:"error"}}};this.state=a(this.state),Le.batch(()=>{A(this,zn).forEach(s=>{s.onMutationUpdate(n)}),A(this,Me).notify({mutation:this,type:"updated",action:n})})},Tp);function v0(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Ve,Gs,Mp,b0=(Mp=class extends Fr{constructor(n={}){super();ne(this,Ve);ne(this,Gs);this.config=n,B(this,Ve,new Map),B(this,Gs,Date.now())}build(n,a,s){const o=new y0({mutationCache:this,mutationId:++ao(this,Gs)._,options:n.defaultMutationOptions(a),state:s});return this.add(o),o}add(n){const a=jo(n),s=A(this,Ve).get(a)??[];s.push(n),A(this,Ve).set(a,s),this.notify({type:"added",mutation:n})}remove(n){var s;const a=jo(n);if(A(this,Ve).has(a)){const o=(s=A(this,Ve).get(a))==null?void 0:s.filter(r=>r!==n);o&&(o.length===0?A(this,Ve).delete(a):A(this,Ve).set(a,o))}this.notify({type:"removed",mutation:n})}canRun(n){var s;const a=(s=A(this,Ve).get(jo(n)))==null?void 0:s.find(o=>o.state.status==="pending");return!a||a===n}runNext(n){var s;const a=(s=A(this,Ve).get(jo(n)))==null?void 0:s.find(o=>o!==n&&o.state.isPaused);return(a==null?void 0:a.continue())??Promise.resolve()}clear(){Le.batch(()=>{this.getAll().forEach(n=>{this.remove(n)})})}getAll(){return[...A(this,Ve).values()].flat()}find(n){const a={exact:!0,...n};return this.getAll().find(s=>Au(a,s))}findAll(n={}){return this.getAll().filter(a=>Au(n,a))}notify(n){Le.batch(()=>{this.listeners.forEach(a=>{a(n)})})}resumePausedMutations(){const n=this.getAll().filter(a=>a.state.isPaused);return Le.batch(()=>Promise.all(n.map(a=>a.continue().catch(xn))))}},Ve=new WeakMap,Gs=new WeakMap,Mp);function jo(e){var n;return((n=e.options.scope)==null?void 0:n.id)??String(e.mutationId)}function Eu(e){return{onFetch:(n,a)=>{var u,p,m,y,b;const s=n.options,o=(m=(p=(u=n.fetchOptions)==null?void 0:u.meta)==null?void 0:p.fetchMore)==null?void 0:m.direction,r=((y=n.state.data)==null?void 0:y.pages)||[],i=((b=n.state.data)==null?void 0:b.pageParams)||[];let l={pages:[],pageParams:[]},c=0;const d=async()=>{let x=!1;const j=g=>{Object.defineProperty(g,"signal",{enumerable:!0,get:()=>(n.signal.aborted?x=!0:n.signal.addEventListener("abort",()=>{x=!0}),n.signal)})},f=cf(n.options,n.fetchOptions),h=async(g,w,k)=>{if(x)return Promise.reject();if(w==null&&g.pages.length)return Promise.resolve(g);const N={queryKey:n.queryKey,pageParam:w,direction:k?"backward":"forward",meta:n.options.meta};j(N);const S=await f(N),{maxPages:O}=n.options,F=k?l0:i0;return{pages:F(g.pages,S,O),pageParams:F(g.pageParams,w,O)}};if(o&&r.length){const g=o==="backward",w=g?w0:zu,k={pages:r,pageParams:i},N=w(s,k);l=await h(k,N,g)}else{const g=e??r.length;do{const w=c===0?i[0]??s.initialPageParam:zu(s,l);if(c>0&&w==null)break;l=await h(l,w),c++}while(c<g)}return l};n.options.persister?n.fetchFn=()=>{var x,j;return(j=(x=n.options).persister)==null?void 0:j.call(x,d,{queryKey:n.queryKey,meta:n.options.meta,signal:n.signal},a)}:n.fetchFn=d}}}function zu(e,{pages:n,pageParams:a}){const s=n.length-1;return n.length>0?e.getNextPageParam(n[s],n,a[s],a):void 0}function w0(e,{pages:n,pageParams:a}){var s;return n.length>0?(s=e.getPreviousPageParam)==null?void 0:s.call(e,n[0],n,a[0],a):void 0}var me,ut,pt,Aa,Oa,mt,Ca,Ea,Ip,j0=(Ip=class{constructor(e={}){ne(this,me);ne(this,ut);ne(this,pt);ne(this,Aa);ne(this,Oa);ne(this,mt);ne(this,Ca);ne(this,Ea);B(this,me,e.queryCache||new x0),B(this,ut,e.mutationCache||new b0),B(this,pt,e.defaultOptions||{}),B(this,Aa,new Map),B(this,Oa,new Map),B(this,mt,0)}mount(){ao(this,mt)._++,A(this,mt)===1&&(B(this,Ca,df.subscribe(async e=>{e&&(await this.resumePausedMutations(),A(this,me).onFocus())})),B(this,Ea,mr.subscribe(async e=>{e&&(await this.resumePausedMutations(),A(this,me).onOnline())})))}unmount(){var e,n;ao(this,mt)._--,A(this,mt)===0&&((e=A(this,Ca))==null||e.call(this),B(this,Ca,void 0),(n=A(this,Ea))==null||n.call(this),B(this,Ea,void 0))}isFetching(e){return A(this,me).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return A(this,ut).findAll({...e,status:"pending"}).length}getQueryData(e){var a;const n=this.defaultQueryOptions({queryKey:e});return(a=A(this,me).get(n.queryHash))==null?void 0:a.state.data}ensureQueryData(e){const n=this.getQueryData(e.queryKey);if(n===void 0)return this.fetchQuery(e);{const a=this.defaultQueryOptions(e),s=A(this,me).build(this,a);return e.revalidateIfStale&&s.isStaleByTime(Nu(a.staleTime,s))&&this.prefetchQuery(a),Promise.resolve(n)}}getQueriesData(e){return A(this,me).findAll(e).map(({queryKey:n,state:a})=>{const s=a.data;return[n,s]})}setQueryData(e,n,a){const s=this.defaultQueryOptions({queryKey:e}),o=A(this,me).get(s.queryHash),r=o==null?void 0:o.state.data,i=n0(n,r);if(i!==void 0)return A(this,me).build(this,s).setData(i,{...a,manual:!0})}
48setQueriesData(e,n,a){return Le.batch(()=>A(this,me).findAll(e).map(({queryKey:s})=>[s,this.setQueryData(s,n,a)]))}getQueryState(e){var a;const n=this.defaultQueryOptions({queryKey:e});return(a=A(this,me).get(n.queryHash))==null?void 0:a.state}removeQueries(e){const n=A(this,me);Le.batch(()=>{n.findAll(e).forEach(a=>{n.remove(a)})})}resetQueries(e,n){const a=A(this,me),s={type:"active",...e};return Le.batch(()=>(a.findAll(e).forEach(o=>{o.reset()}),this.refetchQueries(s,n)))}cancelQueries(e={},n={}){const a={revert:!0,...n},s=Le.batch(()=>A(this,me).findAll(e).map(o=>o.cancel(a)));return Promise.all(s).then(xn).catch(xn)}invalidateQueries(e={},n={}){return Le.batch(()=>{if(A(this,me).findAll(e).forEach(s=>{s.invalidate()}),e.refetchType==="none")return Promise.resolve();const a={...e,type:e.refetchType??e.type??"active"};return this.refetchQueries(a,n)})}refetchQueries(e={},n){const a={...n,cancelRefetch:(n==null?void 0:n.cancelRefetch)??!0},s=Le.batch(()=>A(this,me).findAll(e).filter(o=>!o.isDisabled()).map(o=>{let r=o.fetch(void 0,a);return a.throwOnError||(r=r.catch(xn)),o.state.fetchStatus==="paused"?Promise.resolve():r}));return Promise.all(s).then(xn)}fetchQuery(e){const n=this.defaultQueryOptions(e);
48n.retry===void 0&&(n.retry=!1);const a=A(this,me).build(this,n);return a.isStaleByTime(Nu(n.staleTime,a))?a.fetch(n):Promise.resolve(a.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(xn).catch(xn)}fetchInfiniteQuery(e){return e.behavior=Eu(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(xn).catch(xn)}ensureInfiniteQueryData(e){return e.behavior=Eu(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return mr.isOnline()?A(this,ut).resumePausedMutations():Promise.resolve()}getQueryCache(){return A(this,me)}getMutationCache(){return A(this,ut)}getDefaultOptions(){return A(this,pt)}setDefaultOptions(e){B(this,pt,e)}setQueryDefaults(e,n){A(this,Aa).set(Rs(e),{queryKey:e,defaultOptions:n})}getQueryDefaults(e){const n=[...A(this,Aa).values()];let a={};return n.forEach(s=>{Ds(e,s.queryKey)&&(a={...a,...s.defaultOptions})}),a}setMutationDefaults(e,n){A(this,Oa).set(Rs(e),{mutationKey:e,defaultOptions:n})}getMutationDefaults(e){const n=[...A(this,Oa).values()];let a={};return n.forEach(s=>{Ds(e,s.mutationKey)&&(a={...a,...s.defaultOptions})}),a}defaultQueryOptions(e){if(e._defaulted)return e;const n={...A(this,pt).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return n.queryHash||(n.queryHash=Mc(n.queryKey,n)),n.refetchOnReconnect===void 0&&(n.refetchOnReconnect=n.networkMode!=="always"),n.throwOnError===void 0&&(n.throwOnError=!!n.suspense),!n.networkMode&&n.persister&&(n.networkMode="offlineFirst"),n.enabled!==!0&&n.queryFn===Ic&&(n.enabled=!1),n}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...A(this,pt).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){A(this,me).clear(),A(this,ut).clear()}},me=new WeakMap,ut=new WeakMap,pt=new WeakMap,Aa=new WeakMap,Oa=new WeakMap,mt=new WeakMap,Ca=new WeakMap,Ea=new WeakMap,Ip),k0=v.createContext(void 0),N0=({client:e,children:n})=>(v.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),t.jsx(k0.Provider,{value:e,children:n}));async function S0(e){if(!e.ok){const n=await e.text()||e.statusText;throw new Error(`${e.status}: ${n}`)}}const A0=({on401:e})=>async({queryKey:n})=>{const a=await fetch(n[0],{credentials:"include"});return await S0(a),await a.json()},O0=new j0({defaultOptions:{queries:{queryFn:A0({on401:"throw"}),refetchInterval:!1,refetchOnWindowFocus:!1,staleTime:1/0,retry:!1},mutations:{retry:!1}}}),C0=1,E0=1e6;let Si=0;function z0(){return Si=(Si+1)%Number.MAX_SAFE_INTEGER,Si.toString()}const Ai=new Map,qu=e=>{if(Ai.has(e))return;const n=setTimeout(()=>{Ai.delete(e),ws({type:"REMOVE_TOAST",toastId:e})},E0);Ai.set(e,n)},q0=(e,n)=>{switch(n.type){case"ADD_TOAST":return{...e,toasts:[n.toast,...e.toasts].slice(0,C0)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(a=>a.id===n.toast.id?{...a,...n.toast}:a)};case"DISMISS_TOAST":{const{toastId:a}=n;return a?qu(a):e.toasts.forEach(s=>{qu(s.id)}),{...e,toasts:e.toasts.map(s=>s.id===a||a===void 0?{...s,open:!1}:s)}}case"REMOVE_TOAST":return n.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(a=>a.id!==n.toastId)}}},Fo=[];let Ro={toasts:[]};function ws(e){Ro=q0(Ro,e),Fo.forEach(n=>{n(Ro)})}function P0({...e}){const n=z0(),a=o=>ws({type:"UPDATE_TOAST",toast:{...o,id:n}}),s=()=>ws({type:"DISMISS_TOAST",toastId:n});return ws({type:"ADD_TOAST",toast:{...e,id:n,open:!0,onOpenChange:o=>{o||s()}}}),{id:n,dismiss:s,update:a}}function T0(){const[e,n]=v.useState(Ro);return v.useEffect(()=>(Fo.push(n),()=>{const a=Fo.indexOf(n);a>-1&&Fo.splice(a,1)}),[e]),{...e,toast:P0,dismiss:a=>ws({type:"DISMISS_TOAST",toastId:a})}}function ve(e,n,{checkForDefaultPrevented:a=!0}={}){return function(o){if(e==null||e(o),a===!1||!o.defaultPrevented)return n==null?void 0:n(o)}}function Pu(e,n){if(typeof e=="function")return e(n);e!=null&&(e.current=n)}function ff(...e){return n=>{let a=!1;const s=e.map(o=>{const r=Pu(o,n);return!a&&typeof r=="function"&&(a=!0),r});if(a)return()=>{for(let o=0;o<s.length;o++){const r=s[o];typeof r=="function"?r():Pu(e[o],null)}}}}function Nn(...e){return v.useCallback(ff(...e),e)}function Dr(e,n=[]){let a=[];function s(r,i){const l=v.createContext(i),c=a.length;a=[...a,i];const d=p=>{var f;const{scope:m,children:y,...b}=p,x=((f=m==null?void 0:m[e])==null?void 0:f[c])||l,j=v.useMemo(()=>b,Object.values(b));return t.jsx(x.Provider,{value:j,children:y})};d.displayName=r+"Provider";function u(p,m){var x;const y=((x=m==null?void 0:m[e])==null?void 0:x[c])||l,b=v.useContext(y);if(b)return b;if(i!==void 0)return i;throw new Error(`\`${p}\` must be used within \`${r}\``)}return[d,u]}const o=()=>{const r=a.map(i=>v.createContext(i));return function(l){const c=(l==null?void 0:l[e])||r;return v.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return o.scopeName=e,[s,M0(o,...n)]}function M0(...e){const n=e[0];if(e.length===1)return n;const a=()=>{const s=e.map(o=>({useScope:o(),scopeName:o.scopeName}));
vendor: 9,897 bytes, line 48
48return function(r){const i=s.reduce((l,{useScope:c,scopeName:d})=>{const p=c(r)[`__scope${d}`];return{...l,...p}},{});return v.useMemo(()=>({[`__scope${n.scopeName}`]:i}),[i])}};return a.scopeName=n.scopeName,a}function hr(e){const n=L0(e),a=v.forwardRef((s,o)=>{const{children:r,...i}=s,l=v.Children.toArray(r),c=l.find(_0);if(c){const d=c.props.children,u=l.map(p=>p===c?v.Children.count(d)>1?v.Children.only(null):v.isValidElement(d)?d.props.children:null:p);return t.jsx(n,{...i,ref:o,children:v.isValidElement(d)?v.cloneElement(d,void 0,u):null})}return t.jsx(n,{...i,ref:o,children:r})});return a.displayName=`${e}.Slot`,a}var I0=hr("Slot");function L0(e){const n=v.forwardRef((a,s)=>{const{children:o,...r}=a;if(v.isValidElement(o)){const i=R0(o),l=F0(r,o.props);return o.type!==v.Fragment&&(l.ref=s?ff(s,i):i),v.cloneElement(o,l)}return v.Children.count(o)>1?v.Children.only(null):null});return n.displayName=`${e}.SlotClone`,n}var gf=Symbol("radix.slottable");function X0(e){const n=({children:a})=>t.jsx(t.Fragment,{children:a});return n.displayName=`${e}.Slottable`,n.__radixId=gf,n}function _0(e){return v.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===gf}function F0(e,n){const a={...n};for(const s in n){const o=e[s],r=n[s];/^on[A-Z]/.test(s)?o&&r?a[s]=(...l)=>{r(...l),o(...l)}:o&&(a[s]=o):s==="style"?a[s]={...o,...r}:s==="className"&&(a[s]=[o,r].filter(Boolean).join(" "))}return{...e,...a}}function R0(e){var s,o;let n=(s=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:s.get,a=n&&"isReactWarning"in n&&n.isReactWarning;return a?e.ref:(n=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,a=n&&"isReactWarning"in n&&n.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}function D0(e){const n=e+"CollectionProvider",[a,s]=Dr(n),[o,r]=a(n,{collectionRef:{current:null},itemMap:new Map}),i=x=>{const{scope:j,children:f}=x,h=at.useRef(null),g=at.useRef(new Map).current;return t.jsx(o,{scope:j,itemMap:g,collectionRef:h,children:f})};i.displayName=n;const l=e+"CollectionSlot",c=hr(l),d=at.forwardRef((x,j)=>{const{scope:f,children:h}=x,g=r(l,f),w=Nn(j,g.collectionRef);return t.jsx(c,{ref:w,children:h})});d.displayName=l;const u=e+"CollectionItemSlot",p="data-radix-collection-item",m=hr(u),y=at.forwardRef((x,j)=>{const{scope:f,children:h,...g}=x,w=at.useRef(null),k=Nn(j,w),N=r(u,f);return at.useEffect(()=>(N.itemMap.set(w,{ref:w,...g}),()=>void N.itemMap.delete(w))),t.jsx(m,{[p]:"",ref:k,children:h})});y.displayName=u;function b(x){const j=r(e+"CollectionConsumer",x);return at.useCallback(()=>{const h=j.collectionRef.current;if(!h)return[];const g=Array.from(h.querySelectorAll(`[${p}]`));return Array.from(j.itemMap.values()).sort((N,S)=>g.indexOf(N.ref.current)-g.indexOf(S.ref.current))},[j.collectionRef,j.itemMap])}return[{Provider:i,Slot:d,ItemSlot:y},b,s]}var H0=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],We=H0.reduce((e,n)=>{const a=hr(`Primitive.${n}`),s=v.forwardRef((o,r)=>{const{asChild:i,...l}=o,c=i?a:n;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),t.jsx(c,{...l,ref:r})});return s.displayName=`Primitive.${n}`,{...e,[n]:s}},{});function xf(e,n){e&&Zs.flushSync(()=>e.dispatchEvent(n))}function Ln(e){const n=v.useRef(e);return v.useEffect(()=>{n.current=e}),v.useMemo(()=>(...a)=>{var s;return(s=n.current)==null?void 0:s.call(n,...a)},[])}function U0(e,n=globalThis==null?void 0:globalThis.document){const a=Ln(e);v.useEffect(()=>{const s=o=>{o.key==="Escape"&&a(o)};return n.addEventListener("keydown",s,{capture:!0}),()=>n.removeEventListener("keydown",s,{capture:!0})},[a,n])}var B0="DismissableLayer",Ol="dismissableLayer.update",W0="dismissableLayer.pointerDownOutside",G0="dismissableLayer.focusOutside",Tu,yf=v.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Lc=v.forwardRef((e,n)=>{const{disableOutsidePointerEvents:a=!1,onEscapeKeyDown:s,onPointerDownOutside:o,onFocusOutside:r,onInteractOutside:i,onDismiss:l,...c}=e,d=v.useContext(yf),[u,p]=v.useState(null),m=(u==null?void 0:u.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,y]=v.useState({}),b=Nn(n,S=>p(S)),x=Array.from(d.layers),[j]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),f=x.indexOf(j),h=u?x.indexOf(u):-1,g=d.layersWithOutsidePointerEventsDisabled.size>0,w=h>=f,k=$0(S=>{const O=S.target,F=[...d.branches].some(P=>P.contains(O));!w||F||(o==null||o(S),i==null||i(S),S.defaultPrevented||l==null||l())},m),N=Q0(S=>{const O=S.target;[...d.branches].some(P=>P.contains(O))||(r==null||r(S),i==null||i(S),S.defaultPrevented||l==null||l())},m);return U0(S=>{h===d.layers.size-1&&(s==null||s(S),!S.defaultPrevented&&l&&(S.preventDefault(),l()))},m),v.useEffect(()=>{if(u)return a&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(Tu=m.body.style.pointerEvents,m.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(u)),d.layers.add(u),Mu(),()=>{a&&d.layersWithOutsidePointerEventsDisabled.size===1&&(m.body.style.pointerEvents=Tu)}},[u,m,a,d]),v.useEffect(()=>()=>{u&&(d.layers.delete(u),d.layersWithOutsidePointerEventsDisabled.delete(u),Mu())},[u,d]),v.useEffect(()=>{const S=()=>y({});return document.addEventListener(Ol,S),()=>document.removeEventListener(Ol,S)},[]),t.jsx(We.div,{...c,ref:b,style:{pointerEvents:g?w?"auto":"none":void 0,...e.style},onFocusCapture:ve(e.onFocusCapture,N.onFocusCapture),onBlurCapture:ve(e.onBlurCapture,N.onBlurCapture),onPointerDownCapture:ve(e.onPointerDownCapture,k.onPointerDownCapture)})});Lc.displayName=B0;var V0="DismissableLayerBranch",vf=v.forwardRef((e,n)=>{const a=v.useContext(yf),s=v.useRef(null),o=Nn(n,s);return v.useEffect(()=>{const r=s.current;if(r)return a.branches.add(r),()=>{a.branches.delete(r)}},[a.branches]),t.jsx(We.div,{...e,ref:o})});vf.displayName=V0;function $0(e,n=globalThis==null?void 0:globalThis.document){const a=Ln(e),s=v.useRef(!1),o=v.useRef(()=>{});return v.useEffect(()=>{const r=l=>{if(l.target&&!s.current){let c=function(){bf(W0,a,d,{discrete:!0})};const d={originalEvent:l};l.pointerType==="touch"?(n.removeEventListener("click",o.current),o.current=c,n.addEventListener("click",o.current,{once:!0})):c()}else n.removeEventListener("click",o.current);s.current=!1},i=window.setTimeout(()=>{n.addEventListener("pointerdown",r)},0);return()=>{window.clearTimeout(i),n.removeEventListener("pointerdown",r),n.removeEventListener("click",o.current)}},[n,a]),{onPointerDownCapture:()=>s.current=!0}}function Q0(e,n=globalThis==null?void 0:globalThis.document){const a=Ln(e),s=v.useRef(!1);return v.useEffect(()=>{const o=r=>{r.target&&!s.current&&bf(G0,a,{originalEvent:r},{discrete:!1})};return n.addEventListener("focusin",o),()=>n.removeEventListener("focusin",o)},[n,a]),{onFocusCapture:()=>s.current=!0,onBlurCapture:()=>s.current=!1}}function Mu(){const e=new CustomEvent(Ol);document.dispatchEvent(e)}function bf(e,n,a,{discrete:s}){const o=a.originalEvent.target,r=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:a});n&&o.addEventListener(e,n,{once:!0}),s?xf(o,r):o.dispatchEvent(r)}var Y0=Lc,K0=vf,Qt=globalThis!=null&&globalThis.document?v.useLayoutEffect:()=>{},Z0="Portal",wf=v.forwardRef((e,n)=>{var l;const{container:a,...s}=e,[o,r]=v.useState(!1);Qt(()=>r(!0),[]);const i=a||o&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return i?Sv.createPortal(t.jsx(We.div,{...s,ref:n}),i):null});wf.displayName=Z0;function J0(e,n){return v.useReducer((a,s)=>n[a][s]??a,e)}var Xc=e=>{const{present:n,children:a}=e,s=eb(n),o=typeof a=="function"?a({present:s.isPresent}):v.Children.only(a),r=Nn(s.ref,nb(o));return typeof a=="function"||s.isPresent?v.cloneElement(o,{ref:r}):null};Xc.displayName="Presence";function eb(e){const[n,a]=v.useState(),s=v.useRef({}),o=v.useRef(e),r=v.useRef("none"),i=e?"mounted":"unmounted",[l,c]=J0(i,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return v.useEffect(()=>{const d=ko(s.current);r.current=l==="mounted"?d:"none"},[l]),Qt(()=>{const d=s.current,u=o.current;if(u!==e){const m=r.current,y=ko(d);e?c("MOUNT"):y==="none"||(d==null?void 0:d.display)==="none"?c("UNMOUNT"):c(u&&m!==y?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,c]),Qt(()=>{if(n){let d;const u=n.ownerDocument.defaultView??window,p=y=>{const x=ko(s.current).includes(y.animationName);if(y.target===n&&x&&(c("ANIMATION_END"),!o.current)){const j=n.style.animationFillMode;n.style.animationFillMode="forwards",d=u.setTimeout(()=>{n.style.animationFillMode==="forwards"&&(n.style.animationFillMode=j)})}},m=y=>{y.target===n&&(r.current=ko(s.current))};return n.addEventListener("animationstart",m),n.addEventListener("animationcancel",p),n.addEventListener("animationend",p),()=>{u.clearTimeout(d),n.removeEventListener("animationstart",m),n.removeEventListener("animationcancel",p),n.removeEventListener("animationend",p)}}else c("ANIMATION_END")},[n,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:v.useCallback(d=>{d&&(s.current=getComputedStyle(d)),a(d)},[])}}function ko(e){return(e==null?void 0:e.animationName)||"none"}function nb(e){var s,o;let n=(s=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:s.get,a=n&&"isReactWarning"in n&&n.isReactWarning;return a?e.ref:(n=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,a=n&&"isReactWarning"in n&&n.isReactWarning,a?e.props.ref:e.props.ref||e.ref)}function tb({prop:e,defaultProp:n,onChange:a=()=>{}}){const[s,o]=ab({defaultProp:n,onChange:a}),r=e!==void 0,i=r?e:s,l=Ln(a),c=v.useCallback(d=>{if(r){const p=typeof d=="function"?d(e):d;p!==e&&l(p)}else o(d)},[r,e,o,l]);return[i,c]}function ab({defaultProp:e,onChange:n}){const a=v.useState(e),[s]=a,o=v.useRef(s),r=Ln(n);return v.useEffect(()=>{o.current!==s&&(r(s),o.current=s)},[s,o,r]),a}
48var sb="VisuallyHidden",Hr=v.forwardRef((e,n)=>t.jsx(We.span,{...e,ref:n,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));Hr.displayName=sb;var ob=Hr,_c="ToastProvider",[Fc,rb,ib]=D0("Toast"),[jf]=Dr("Toast",[ib]),[lb,Ur]=jf(_c),kf=e=>{const{__scopeToast:n,label:a="Notification",duration:s=5e3,swipeDirection:o="right",swipeThreshold:r=50,children:i}=e,[l,c]=v.useState(null),[d,u]=v.useState(0),p=v.useRef(!1),m=v.useRef(!1);return a.trim()||console.error(`Invalid prop \`label\` supplied to \`${_c}\`. Expected non-empty \`string\`.`),t.jsx(Fc.Provider,{scope:n,children:t.jsx(lb,{scope:n,label:a,duration:s,swipeDirection:o,swipeThreshold:r,toastCount:d,viewport:l,onViewportChange:c,onToastAdd:v.useCallback(()=>u(y=>y+1),[]),onToastRemove:v.useCallback(()=>u(y=>y-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:m,children:i})})};kf.displayName=_c;var Nf="ToastViewport",cb=["F8"],Cl="toast.viewportPause",El="toast.viewportResume",Sf=v.forwardRef((e,n)=>{const{__scopeToast:a,hotkey:s=cb,label:o="Notifications ({hotkey})",...r}=e,i=Ur(Nf,a),l=rb(a),c=v.useRef(null),d=v.useRef(null),u=v.useRef(null),p=v.useRef(null),m=Nn(n,p,i.onViewportChange),y=s.join("+").replace(/Key/g,"").replace(/Digit/g,""),b=i.toastCount>0;v.useEffect(()=>{const j=f=>{var g;s.length!==0&&s.every(w=>f[w]||f.code===w)&&((g=p.current)==null||g.focus())};return document.addEventListener("keydown",j),()=>document.removeEventListener("keydown",j)},[s]),v.useEffect(()=>{const j=c.current,f=p.current;if(b&&j&&f){const h=()=>{if(!i.isClosePausedRef.current){const N=new CustomEvent(Cl);f.dispatchEvent(N),i.isClosePausedRef.current=!0}},g=()=>{if(i.isClosePausedRef.current){const N=new CustomEvent(El);f.dispatchEvent(N),i.isClosePausedRef.current=!1}},w=N=>{!j.contains(N.relatedTarget)&&g()},k=()=>{j.contains(document.activeElement)||g()};return j.addEventListener("focusin",h),j.addEventListener("focusout",w),j.addEventListener("pointermove",h),j.addEventListener("pointerleave",k),window.addEventListener("blur",h),window.addEventListener("focus",g),()=>{j.removeEventListener("focusin",h),j.removeEventListener("focusout",w),j.removeEventListener("pointermove",h),j.removeEventListener("pointerleave",k),window.removeEventListener("blur",h),window.removeEventListener("focus",g)}}},[b,i.isClosePausedRef]);const x=v.useCallback(({tabbingDirection:j})=>{const h=l().map(g=>{const w=g.ref.current,k=[w,...jb(w)];return j==="forwards"?k:k.reverse()});return(j==="forwards"?h.reverse():h).flat()},[l]);return v.useEffect(()=>{const j=p.current;if(j){const f=h=>{var k,N,S;const g=h.altKey||h.ctrlKey||h.metaKey;if(h.key==="Tab"&&!g){const O=document.activeElement,F=h.shiftKey;if(h.target===j&&F){(k=d.current)==null||k.focus();return}const M=x({tabbingDirection:F?"backwards":"forwards"}),Q=M.findIndex(T=>T===O);Oi(M.slice(Q+1))?h.preventDefault():F?(N=d.current)==null||N.focus():(S=u.current)==null||S.focus()}};return j.addEventListener("keydown",f),()=>j.removeEventListener("keydown",f)}},[l,x]),t.jsxs(K0,{ref:c,role:"region","aria-label":o.replace("{hotkey}",y),tabIndex:-1,style:{pointerEvents:b?void 0:"none"},children:[b&&t.jsx(zl,{ref:d,onFocusFromOutsideViewport:()=>{const j=x({tabbingDirection:"forwards"});Oi(j)}}),t.jsx(Fc.Slot,{scope:a,children:t.jsx(We.ol,{tabIndex:-1,...r,ref:m})}),b&&t.jsx(zl,{ref:u,onFocusFromOutsideViewport:()=>{const j=x({tabbingDirection:"backwards"});Oi(j)}})]})});Sf.displayName=Nf;var Af="ToastFocusProxy",zl=v.forwardRef((e,n)=>{const{__scopeToast:a,onFocusFromOutsideViewport:s,...o}=e,r=Ur(Af,a);return t.jsx(Hr,{"aria-hidden":!0,tabIndex:0,...o,ref:n,style:{position:"fixed"},onFocus:i=>{var d;const l=i.relatedTarget;!((d=r.viewport)!=null&&d.contains(l))&&s()}})});zl.displayName=Af;var Br="Toast",db="toast.swipeStart",ub="toast.swipeMove",pb="toast.swipeCancel",mb="toast.swipeEnd",Of=v.forwardRef((e,n)=>{const{forceMount:a,open:s,defaultOpen:o,onOpenChange:r,...i}=e,[l=!0,c]=tb({prop:s,defaultProp:o,onChange:r});return t.jsx(Xc,{present:a||l,children:t.jsx(gb,{open:l,...i,ref:n,onClose:()=>c(!1),onPause:Ln(e.onPause),onResume:Ln(e.onResume),onSwipeStart:ve(e.onSwipeStart,d=>{d.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:ve(e.onSwipeMove,d=>{const{x:u,y:p}=d.detail.delta;d.currentTarget.setAttribute("data-swipe","move"),d.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${u}px`),d.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:ve(e.onSwipeCancel,d=>{d.currentTarget.setAttribute("data-swipe","cancel"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),d.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),d.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:ve(e.onSwipeEnd,d=>{const{x:u,y:p}=d.detail.delta;d.currentTarget.setAttribute("data-swipe","end"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),d.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),d.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${u}px`),d.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),c(!1)})})})});Of.displayName=Br;var[hb,fb]=jf(Br,{onClose(){}}
48),gb=v.forwardRef((e,n)=>{const{__scopeToast:a,type:s="foreground",duration:o,open:r,onClose:i,onEscapeKeyDown:l,onPause:c,onResume:d,onSwipeStart:u,onSwipeMove:p,onSwipeCancel:m,onSwipeEnd:y,...b}=e,x=Ur(Br,a),[j,f]=v.useState(null),h=Nn(n,T=>f(T)),g=v.useRef(null),w=v.useRef(null),k=o||x.duration,N=v.useRef(0),S=v.useRef(k),O=v.useRef(0),{onToastAdd:F,onToastRemove:P}=x,H=Ln(()=>{var ee;(j==null?void 0:j.contains(document.activeElement))&&((ee=x.viewport)==null||ee.focus()),i()}),M=v.useCallback(T=>{!T||T===1/0||(window.clearTimeout(O.current),N.current=new Date().getTime(),O.current=window.setTimeout(H,T))},[H]);v.useEffect(()=>{const T=x.viewport;if(T){const ee=()=>{M(S.current),d==null||d()},G=()=>{const Z=new Date().getTime()-N.current;S.current=S.current-Z,window.clearTimeout(O.current),c==null||c()};return T.addEventListener(Cl,G),T.addEventListener(El,ee),()=>{T.removeEventListener(Cl,G),T.removeEventListener(El,ee)}}},[x.viewport,k,c,d,M]),v.useEffect(()=>{r&&!x.isClosePausedRef.current&&M(k)},[r,k,x.isClosePausedRef,M]),v.useEffect(()=>(F(),()=>P()),[F,P]);const Q=v.useMemo(()=>j?Mf(j):null,[j]);return x.viewport?t.jsxs(t.Fragment,{children:[Q&&t.jsx(xb,{__scopeToast:a,role:"status","aria-live":s==="foreground"?"assertive":"polite","aria-atomic":!0,children:Q}),t.jsx(hb,{scope:a,onClose:H,children:Zs.createPortal(t.jsx(Fc.ItemSlot,{scope:a,children:t.jsx(Y0,{asChild:!0,onEscapeKeyDown:ve(l,()=>{x.isFocusedToastEscapeKeyDownRef.current||H(),x.isFocusedToastEscapeKeyDownRef.current=!1}),children:t.jsx(We.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":r?"open":"closed","data-swipe-direction":x.swipeDirection,...b,ref:h,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:ve(e.onKeyDown,T=>{T.key==="Escape"&&(l==null||l(T.nativeEvent),T.nativeEvent.defaultPrevented||(x.isFocusedToastEscapeKeyDownRef.current=!0,H()))}),onPointerDown:ve(e.onPointerDown,T=>{T.button===0&&(g.current={x:T.clientX,y:T.clientY})}),onPointerMove:ve(e.onPointerMove,T=>{if(!g.current)return;const ee=T.clientX-g.current.x,G=T.clientY-g.current.y,Z=!!w.current,C=["left","right"].includes(x.swipeDirection),I=["left","up"].includes(x.swipeDirection)?Math.min:Math.max,R=C?I(0,ee):0,W=C?0:I(0,G),le=T.pointerType==="touch"?10:2,hn={x:R,y:W},sn={originalEvent:T,delta:hn};Z?(w.current=hn,No(ub,p,sn,{discrete:!1})):Iu(hn,x.swipeDirection,le)?(w.current=hn,No(db,u,sn,{discrete:!1}),T.target.setPointerCapture(T.pointerId)):(Math.abs(ee)>le||Math.abs(G)>le)&&(g.current=null)}),onPointerUp:ve(e.onPointerUp,T=>{const ee=w.current,G=T.target;if(G.hasPointerCapture(T.pointerId)&&G.releasePointerCapture(T.pointerId),w.current=null,g.current=null,ee){const Z=T.currentTarget,C={originalEvent:T,delta:ee};Iu(ee,x.swipeDirection,x.swipeThreshold)?No(mb,y,C,{discrete:!0}):No(pb,m,C,{discrete:!0}),Z.addEventListener("click",I=>I.preventDefault(),{once:!0})}})})})}),x.viewport)})]}):null}),xb=e=>{const{__scopeToast:n,children:a,...s}=e,o=Ur(Br,n),[r,i]=v.useState(!1),[l,c]=v.useState(!1);return bb(()=>i(!0)),v.useEffect(()=>{const d=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(d)},[]),l?null:t.jsx(wf,{asChild:!0,children:t.jsx(Hr,{...s,children:r&&t.jsxs(t.Fragment,{children:[o.label," ",a]})})})},yb="ToastTitle",Cf=v.forwardRef((e,n)=>{const{__scopeToast:a,...s}=e;return t.jsx(We.div,{...s,ref:n})});Cf.displayName=yb;var vb="ToastDescription",Ef=v.forwardRef((e,n)=>{const{__scopeToast:a,...s}=e;return t.jsx(We.div,{...s,ref:n})});Ef.displayName=vb;var zf="ToastAction",qf=v.forwardRef((e,n)=>{const{altText:a,...s}=e;return a.trim()?t.jsx(Tf,{altText:a,asChild:!0,children:t.jsx(Rc,{...s,ref:n})}):(console.error(`Invalid prop \`altText\` supplied to \`${zf}\`. Expected non-empty \`string\`.`),null)});qf.displayName=zf;var Pf="ToastClose",Rc=v.forwardRef((e,n)=>{const{__scopeToast:a,...s}=e,o=fb(Pf,a);return t.jsx(Tf,{asChild:!0,children:t.jsx(We.button,{type:"button",...s,ref:n,onClick:ve(e.onClick,o.onClose)})})});Rc.displayName=Pf;var Tf=v.forwardRef((e,n)=>{const{__scopeToast:a,altText:s,...o}=e;return t.jsx(We.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":s||void 0,...o,ref:n})});function Mf(e){const n=[];
vendor: 4,821 bytes, lines 48-78
48return Array.from(e.childNodes).forEach(s=>{if(s.nodeType===s.TEXT_NODE&&s.textContent&&n.push(s.textContent),wb(s)){const o=s.ariaHidden||s.hidden||s.style.display==="none",r=s.dataset.radixToastAnnounceExclude==="";if(!o)if(r){const i=s.dataset.radixToastAnnounceAlt;i&&n.push(i)}else n.push(...Mf(s))}}),n}function No(e,n,a,{discrete:s}){const o=a.originalEvent.currentTarget,r=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:a});n&&o.addEventListener(e,n,{once:!0}),s?xf(o,r):o.dispatchEvent(r)}var Iu=(e,n,a=0)=>{const s=Math.abs(e.x),o=Math.abs(e.y),r=s>o;return n==="left"||n==="right"?r&&s>a:!r&&o>a};function bb(e=()=>{}){const n=Ln(e);Qt(()=>{let a=0,s=0;return a=window.requestAnimationFrame(()=>s=window.requestAnimationFrame(n)),()=>{window.cancelAnimationFrame(a),window.cancelAnimationFrame(s)}},[n])}function wb(e){return e.nodeType===e.ELEMENT_NODE}function jb(e){const n=[],a=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:s=>{const o=s.tagName==="INPUT"&&s.type==="hidden";return s.disabled||s.hidden||o?NodeFilter.FILTER_SKIP:s.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;a.nextNode();)n.push(a.currentNode);return n}function Oi(e){const n=document.activeElement;return e.some(a=>a===n?!0:(a.focus(),document.activeElement!==n))}var kb=kf,If=Sf,Lf=Of,Xf=Cf,_f=Ef,Ff=qf,Rf=Rc;function Df(e){var n,a,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(n=0;n<o;n++)e[n]&&(a=Df(e[n]))&&(s&&(s+=" "),s+=a)}else for(a in e)e[a]&&(s&&(s+=" "),s+=a);return s}function Hf(){for(var e,n,a=0,s="",o=arguments.length;a<o;a++)(e=arguments[a])&&(n=Df(e))&&(s&&(s+=" "),s+=n);return s}const Lu=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Xu=Hf,Uf=(e,n)=>a=>{var s;if((n==null?void 0:n.variants)==null)return Xu(e,a==null?void 0:a.class,a==null?void 0:a.className);const{variants:o,defaultVariants:r}=n,i=Object.keys(o).map(d=>{const u=a==null?void 0:a[d],p=r==null?void 0:r[d];if(u===null)return null;const m=Lu(u)||Lu(p);return o[d][m]}),l=a&&Object.entries(a).reduce((d,u)=>{let[p,m]=u;return m===void 0||(d[p]=m),d},{}),c=n==null||(s=n.compoundVariants)===null||s===void 0?void 0:s.reduce((d,u)=>{let{class:p,className:m,...y}=u;return Object.entries(y).every(b=>{let[x,j]=b;return Array.isArray(j)?j.includes({...r,...l}[x]):{...r,...l}[x]===j})?[...d,p,m]:d},[]);return Xu(e,i,c,a==null?void 0:a.class,a==null?void 0:a.className)};/**
49 * @license lucide-react v0.453.0 - ISC
50 *
51 * This source code is licensed under the ISC license.
52 * See the LICENSE file in the root directory of this source tree.
53 */const Nb=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Bf=(...e)=>e.filter((n,a,s)=>!!n&&s.indexOf(n)===a).join(" ");/**
54 * @license lucide-react v0.453.0 - ISC
55 *
56 * This source code is licensed under the ISC license.
57 * See the LICENSE file in the root directory of this source tree.
58 */var Sb={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/**
59 * @license lucide-react v0.453.0 - ISC
60 *
61 * This source code is licensed under the ISC license.
62 * See the LICENSE file in the root directory of this source tree.
63 */const Ab=v.forwardRef(({color:e="currentColor",size:n=24,strokeWidth:a=2,absoluteStrokeWidth:s,className:o="",children:r,iconNode:i,...l},c)=>v.createElement("svg",{ref:c,...Sb,width:n,height:n,stroke:e,strokeWidth:s?Number(a)*24/Number(n):a,className:Bf("lucide",o),...l},[...i.map(([d,u])=>v.createElement(d,u)),...Array.isArray(r)?r:[r]]));/**
64 * @license lucide-react v0.453.0 - ISC
65 *
66 * This source code is licensed under the ISC license.
67 * See the LICENSE file in the root directory of this source tree.
68 */const we=(e,n)=>{const a=v.forwardRef(({className:s,...o},r)=>v.createElement(Ab,{ref:r,iconNode:n,className:Bf(`lucide-${Nb(e)}`,s),...o}));return a.displayName=`${e}`,a};/**
69 * @license lucide-react v0.453.0 - ISC
70 *
71 * This source code is licensed under the ISC license.
72 * See the LICENSE file in the root directory of this source tree.
73 */const Ob=we("Award",[["path",{d:"m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526",key:"1yiouv"}],["circle",{cx:"12",cy:"8",r:"6",key:"1vp47v"}]]);/**
74 * @license lucide-react v0.453.0 - ISC
75 *
76 * This source code is licensed under the ISC license.
77 * See the LICENSE file in the root directory of this source tree.
78 */const Cb=we("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}
78],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/**
79 * @license lucide-react v0.453.0 - ISC
80 *
81 * This source code is licensed under the ISC license.
82 * See the LICENSE file in the root directory of this source tree.
83 */const Eb=we("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);/**
84 * @license lucide-react v0.453.0 - ISC
85 *
86 * This source code is licensed under the ISC license.
87 * See the LICENSE file in the root directory of this source tree.
88 */const zb=we("ChartColumn",[["path",{d:"M3 3v16a2 2 0 0 0 2 2h16",key:"c24i48"}],["path",{d:"M18 17V9",key:"2bz60n"}],["path",{d:"M13 17V5",key:"1frdt8"}],["path",{d:"M8 17v-3",key:"17ska0"}]]);/**
89 * @license lucide-react v0.453.0 - ISC
90 *
91 * This source code is licensed under the ISC license.
92 * See the LICENSE file in the root directory of this source tree.
93 */const qb=we("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
94 * @license lucide-react v0.453.0 - ISC
95 *
96 * This source code is licensed under the ISC license.
97 * See the LICENSE file in the root directory of this source tree.
98 */const Pb=we("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);/**
99 * @license lucide-react v0.453.0 - ISC
100 *
101 * This source code is licensed under the ISC license.
102 * See the LICENSE file in the root directory of this source tree.
103 */const Tb=we("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
104 * @license lucide-react v0.453.0 - ISC
105 *
106 * This source code is licensed under the ISC license.
107 * See the LICENSE file in the root directory of this source tree.
108 */const Mb=we("Coffee",[["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M14 2v2",key:"6buw04"}],["path",{d:"M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1",key:"pwadti"}],["path",{d:"M6 2v2",key:"colzsn"}]]);/**
109 * @license lucide-react v0.453.0 - ISC
110 *
111 * This source code is licensed under the ISC license.
112 * See the LICENSE file in the root directory of this source tree.
113 */const _u=we("ExternalLink",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);/**
114 * @license lucide-react v0.453.0 - ISC
115 *
116 * This source code is licensed under the ISC license.
117 * See the LICENSE file in the root directory of this source tree.
118 */const Wf=we("Globe",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]]);/**
119 * @license lucide-react v0.453.0 - ISC
120 *
121 * This source code is licensed under the ISC license.
122 * See the LICENSE file in the root directory of this source tree.
123 */const Ib=we("GraduationCap",[["path",{d:"M21.42 10.922a1 1 0 0 0-.019-1.838L12.83 5.18a2 2 0 0 0-1.66 0L2.6 9.08a1 1 0 0 0 0 1.832l8.57 3.908a2 2 0 0 0 1.66 0z",key:"j76jl0"}],["path",{d:"M22 10v6",key:"1lu8f3"}],["path",{d:"M6 12.5V16a6 3 0 0 0 12 0v-3.5",key:"1r8lef"}]]);/**
124 * @license lucide-react v0.453.0 - ISC
125 *
126 * This source code is licensed under the ISC license.
127 * See the LICENSE file in the root directory of this source tree.
128 */const Lb=we("Link2",[["path",{d:"M9 17H7A5 5 0 0 1 7 7h2",key:"8i5ue5"}],["path",{d:"M15 7h2a5 5 0 1 1 0 10h-2",key:"1b9ql8"}],["line",{x1:"8",x2:"16",y1:"12",y2:"12",key:"1jonct"}]]);/**
129 * @license lucide-react v0.453.0 - ISC
130 *
131 * This source code is licensed under the ISC license.
132 * See the LICENSE file in the root directory of this source tree.
133 */const Fu=we("MapPin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);/**
134 * @license lucide-react v0.453.0 - ISC
135 *
136 * This source code is licensed under the ISC license.
137 * See the LICENSE file in the root directory of this source tree.
138 */const Xb=we("Palette",[["circle",{cx:"13.5",cy:"6.5",r:".5",fill:"currentColor",key:"1okk4w"}],["circle",{cx:"17.5",cy:"10.5",r:".5",fill:"currentColor",key:"f64h9f"}],["circle",{cx:"8.5",cy:"7.5",r:".5",fill:"currentColor",key:"fotxhn"}],["circle",{cx:"6.5",cy:"12.5",r:".5",fill:"currentColor",key:"qy21gx"}],["path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10c.926 0 1.648-.746 1.648-1.688 0-.437-.18-.835-.437-1.125-.29-.289-.438-.652-.438-1.125a1.64 1.64 0 0 1 1.668-1.668h1.996c3.051 0 5.555-2.503 5.555-5.554C21.965 6.012 17.461 2 12 2z",key:"12rzf8"}]]);/**
139 * @license lucide-react v0.453.0 - ISC
140 *
141 * This source code is licensed under the ISC license.
142 * See the LICENSE file in the root directory of this source tree.
143 */const _b=we("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);/**
144 * @license lucide-react v0.453.0 - ISC
145 *
146 * This source code is licensed under the ISC license.
147 * See the LICENSE file in the root directory of this source tree.
148 */const Fb=we("Server",[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]]);/**
149 * @license lucide-react v0.453.0 - ISC
150 *
151 * This source code is licensed under the ISC license.
152 * See the LICENSE file in the root directory of this source tree.
153 */const Rb=we("Shield",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",ke
vendor: 6,567 bytes, lines 153-163
153y:"oel41y"}]]);/**
154 * @license lucide-react v0.453.0 - ISC
155 *
156 * This source code is licensed under the ISC license.
157 * See the LICENSE file in the root directory of this source tree.
158 */const Ru=we("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/**
159 * @license lucide-react v0.453.0 - ISC
160 *
161 * This source code is licensed under the ISC license.
162 * See the LICENSE file in the root directory of this source tree.
163 */const Db=we("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),Dc="-",Hb=e=>{const n=Bb(e),{conflictingClassGroups:a,conflictingClassGroupModifiers:s}=e;return{getClassGroupId:i=>{const l=i.split(Dc);return l[0]===""&&l.length!==1&&l.shift(),Gf(l,n)||Ub(i)},getConflictingClassGroupIds:(i,l)=>{const c=a[i]||[];return l&&s[i]?[...c,...s[i]]:c}}},Gf=(e,n)=>{var i;if(e.length===0)return n.classGroupId;const a=e[0],s=n.nextPart.get(a),o=s?Gf(e.slice(1),s):void 0;if(o)return o;if(n.validators.length===0)return;const r=e.join(Dc);return(i=n.validators.find(({validator:l})=>l(r)))==null?void 0:i.classGroupId},Du=/^\[(.+)\]$/,Ub=e=>{if(Du.test(e)){const n=Du.exec(e)[1],a=n==null?void 0:n.substring(0,n.indexOf(":"));if(a)return"arbitrary.."+a}},Bb=e=>{const{theme:n,prefix:a}=e,s={nextPart:new Map,validators:[]};return Gb(Object.entries(e.classGroups),a).forEach(([r,i])=>{ql(i,s,r,n)}),s},ql=(e,n,a,s)=>{e.forEach(o=>{if(typeof o=="string"){const r=o===""?n:Hu(n,o);r.classGroupId=a;return}if(typeof o=="function"){if(Wb(o)){ql(o(s),n,a,s);return}n.validators.push({validator:o,classGroupId:a});return}Object.entries(o).forEach(([r,i])=>{ql(i,Hu(n,r),a,s)})})},Hu=(e,n)=>{let a=e;return n.split(Dc).forEach(s=>{a.nextPart.has(s)||a.nextPart.set(s,{nextPart:new Map,validators:[]}),a=a.nextPart.get(s)}),a},Wb=e=>e.isThemeGetter,Gb=(e,n)=>n?e.map(([a,s])=>{const o=s.map(r=>typeof r=="string"?n+r:typeof r=="object"?Object.fromEntries(Object.entries(r).map(([i,l])=>[n+i,l])):r);return[a,o]}):e,Vb=e=>{if(e<1)return{get:()=>{},set:()=>{}};let n=0,a=new Map,s=new Map;const o=(r,i)=>{a.set(r,i),n++,n>e&&(n=0,s=a,a=new Map)};return{get(r){let i=a.get(r);if(i!==void 0)return i;if((i=s.get(r))!==void 0)return o(r,i),i},set(r,i){a.has(r)?a.set(r,i):o(r,i)}}},Vf="!",$b=e=>{const{separator:n,experimentalParseClassName:a}=e,s=n.length===1,o=n[0],r=n.length,i=l=>{const c=[];let d=0,u=0,p;for(let j=0;j<l.length;j++){let f=l[j];if(d===0){if(f===o&&(s||l.slice(j,j+r)===n)){c.push(l.slice(u,j)),u=j+r;continue}if(f==="/"){p=j;continue}}f==="["?d++:f==="]"&&d--}const m=c.length===0?l:l.substring(u),y=m.startsWith(Vf),b=y?m.substring(1):m,x=p&&p>u?p-u:void 0;return{modifiers:c,hasImportantModifier:y,baseClassName:b,maybePostfixModifierPosition:x}};return a?l=>a({className:l,parseClassName:i}):i},Qb=e=>{if(e.length<=1)return e;const n=[];let a=[];return e.forEach(s=>{s[0]==="["?(n.push(...a.sort(),s),a=[]):a.push(s)}),n.push(...a.sort()),n},Yb=e=>({cache:Vb(e.cacheSize),parseClassName:$b(e),...Hb(e)}),Kb=/\s+/,Zb=(e,n)=>{const{parseClassName:a,getClassGroupId:s,getConflictingClassGroupIds:o}=n,r=[],i=e.trim().split(Kb);let l="";for(let c=i.length-1;c>=0;c-=1){const d=i[c],{modifiers:u,hasImportantModifier:p,baseClassName:m,maybePostfixModifierPosition:y}=a(d);let b=!!y,x=s(b?m.substring(0,y):m);if(!x){if(!b){l=d+(l.length>0?" "+l:l);continue}if(x=s(m),!x){l=d+(l.length>0?" "+l:l);continue}b=!1}const j=Qb(u).join(":"),f=p?j+Vf:j,h=f+x;if(r.includes(h))continue;r.push(h);const g=o(x,b);for(let w=0;w<g.length;++w){const k=g[w];r.push(f+k)}l=d+(l.length>0?" "+l:l)}return l};function Jb(){let e=0,n,a,s="";for(;e<arguments.length;)(n=arguments[e++])&&(a=$f(n))&&(s&&(s+=" "),s+=a);return s}const $f=e=>{if(typeof e=="string")return e;let n,a="";for(let s=0;s<e.length;s++)e[s]&&(n=$f(e[s]))&&(a&&(a+=" "),a+=n);return a};function ew(e,...n){let a,s,o,r=i;function i(c){const d=n.reduce((u,p)=>p(u),e());return a=Yb(d),s=a.cache.get,o=a.cache.set,r=l,l(c)}function l(c){const d=s(c);if(d)return d;const u=Zb(c,a);return o(c,u),u}return function(){return r(Jb.apply(null,arguments))}}const se=e=>{const n=a=>a[e]||[];return n.isThemeGetter=!0,n},Qf=/^\[(?:([a-z-]+):)?(.+)\]$/i,nw=/^\d+\/\d+$/,tw=new Set(["px","full","screen"]),aw=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,sw=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,ow=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,rw=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,iw=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Rn=e=>va(e)||tw.has(e)||nw.test(e),nt=e=>Ba(e,"length",fw),va=e=>!!e&&!Number.isNaN(Number(e)),Ci=e=>Ba(e,"number",va),ss=e=>!!e&&Number.isInteger(Number(e)),lw=e=>e.endsWith("%")&&va(e.slice(0,-1)),U=e=>Qf.test(e),tt=e=>aw.test(e),cw=new Set(["length","size","percentage"]),dw=e=>Ba(e,cw,Yf),uw=e=>Ba(e,"position",Yf),pw=new Set(["image","url"]),mw=e=>Ba(e,pw,xw),hw=e=>Ba(e,"",gw),os=()=>!0,Ba=(e,n,a)=>{const s=Qf.exec(e);return s?s[1]?typeof n=="string"?s[1]===n:n.has(s[1]):a(s[2]):!1},fw=e=>sw.test(e)&&!ow.test(e),Yf=()=>!1,gw=e=>rw.test(e),xw=e=>iw.test(e),yw=()=>{const e=se("colors"),n=se("spacing"),a=se("blur"),s=se("brightness"),o=se("borderColor"),r=se("borderRadius"),i=se("borderSpacing"),l=se("borderWidth"),c=se("contrast"),d=se("grayscale"),u=se("hueRotate"),p=se("invert"),m=se("gap"),y=se("gradientColorStops"),b=se("gradientColorStopPositions"),x=se("inset"),j=se("margin"),f=se("opacity"),h=se("padding"),g=se("saturate"),w=se("scale"),k=se("sepia"),N=se("skew"),S=se("space"),O=se("translate"),F=()=>["auto","contain","none"],P=()=>["auto","hidden","clip","visible","scroll"],H=()=>["auto",U,n],M=()=>[U,n],Q=()=>["",Rn,nt],T=()=>["auto",va,U],ee=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],G=()=>["solid","dashed","dotted","double","none"],Z=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],C=()=>["start","end","center","between","around","evenly","stretch"],I=()=>["","0",U],R=()=>["auto","avoid","all","avoid-page","page","left","right","column"],W=()=>[va,U];return{cacheSize:500,separator:":",theme:{colors:[os],spacing:[Rn,nt],blur:["none","",tt,U],brightness:W(),borderColor:[e],borderRadius:["n
163one","","full",tt,U],borderSpacing:M(),borderWidth:Q(),contrast:W(),grayscale:I(),hueRotate:W(),invert:I(),gap:M(),gradientColorStops:[e],gradientColorStopPositions:[lw,nt],inset:H(),margin:H(),opacity:W(),padding:M(),saturate:W(),scale:W(),sepia:I(),skew:W(),space:M(),translate:M()},classGroups:{aspect:[{aspect:["auto","square","video",U]}],container:["container"],columns:[{columns:[tt]}],"break-after":[{"break-after":R()}],"break-before":[{"break-before":R()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...ee(),U]}],overflow:[{overflow:P()}],"overflow-x":[{"overflow-x":P()}],"overflow-y":[{"overflow-y":P()}],overscroll:[{overscroll:F()}],"overscroll-x":[{"overscroll-x":F()}],"overscroll-y":[{"overscroll-y":F()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[x]}],"inset-x":[{"inset-x":[x]}],"inset-y":[{"inset-y":[x]}],start:[{start:[x]}],end:[{end:[x]}],top:[{top:[x]}],right:[{right:[x]}],bottom:[{bottom:[x]}],left:[{left:[x]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",ss,U]}],basis:[{basis:H()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",U]}],grow:[{grow:I()}],shrink:[{shrink:I()}],order:[{order:["first","last","none",ss,U]}],"grid-cols":[{"grid-cols":[os]}],"col-start-end":[{col:["auto",{span:["full",ss,U]},U]}],"col-start":[{"col-start":T()}],"col-end":[{"col-end":T()}],"grid-rows":[{"grid-rows":[os]}],"row-start-end":[{row:["auto",{span:[ss,U]},U]}],"row-start":[{"row-start":T()}],"row-end":[{"row-end":T()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",U]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",U]}],gap:[{gap:[m]}],"gap-x":[{"gap-x":[m]}],"gap-y":[{"gap-y":[m]}],"justify-content":[{justify:["normal",...C()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...C(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...C(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[h]}],px:[{px:[h]}],py:[{py:[h]}],ps:[{ps:[h]}],pe:[{pe:[h]}],pt:[{pt:[h]}],pr:[{pr:[h]}],pb:[{pb:[h]}],pl:[{pl:[h]}],m:[{m:[j]}],mx:[{mx:[j]}],my:[{my:[j]}],ms:[{ms:[j]}],me:[{me:[j]}],mt:[{mt:[j]}],mr:[{mr:[j]}],mb:[{mb:[j]}],ml:[{ml:[j]}],"space-x":[{"space-x":[S]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[S]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",U,n]}],"min-w":[{"min-w":[U,n,"min","max","fit"]}],"max-w":[{"max-w":[U,n,"none","full","min","max","fit","prose",{screen:[tt]},tt]}],h:[{h:[U,n,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[U,n,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[U,n,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[U,n,"auto","min","max","fit"]}],"font-size":[{text:["base",tt,nt]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Ci]}],"font-family":[{font:[os]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",U]}],"line-clamp":[{"line-clamp":["none",va,Ci]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Rn,U]}],"list-image":[{"list-image":["none",U]}],"list-style-type":[{list:["none","disc","decimal",U]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[f]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[f]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Rn,nt]}],"underline-offset":[{"underline-offset":["auto",Rn,U]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:M()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",U]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",U]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[f]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...ee(),uw]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",dw]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},mw]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[b]}
vendor: 5,172 bytes, line 163
163],"gradient-via-pos":[{via:[b]}],"gradient-to-pos":[{to:[b]}],"gradient-from":[{from:[y]}],"gradient-via":[{via:[y]}],"gradient-to":[{to:[y]}],rounded:[{rounded:[r]}],"rounded-s":[{"rounded-s":[r]}],"rounded-e":[{"rounded-e":[r]}],"rounded-t":[{"rounded-t":[r]}],"rounded-r":[{"rounded-r":[r]}],"rounded-b":[{"rounded-b":[r]}],"rounded-l":[{"rounded-l":[r]}],"rounded-ss":[{"rounded-ss":[r]}],"rounded-se":[{"rounded-se":[r]}],"rounded-ee":[{"rounded-ee":[r]}],"rounded-es":[{"rounded-es":[r]}],"rounded-tl":[{"rounded-tl":[r]}],"rounded-tr":[{"rounded-tr":[r]}],"rounded-br":[{"rounded-br":[r]}],"rounded-bl":[{"rounded-bl":[r]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[f]}],"border-style":[{border:[...G(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[f]}],"divide-style":[{divide:G()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...G()]}],"outline-offset":[{"outline-offset":[Rn,U]}],"outline-w":[{outline:[Rn,nt]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:Q()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[f]}],"ring-offset-w":[{"ring-offset":[Rn,nt]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",tt,hw]}],"shadow-color":[{shadow:[os]}],opacity:[{opacity:[f]}],"mix-blend":[{"mix-blend":[...Z(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":Z()}],filter:[{filter:["","none"]}],blur:[{blur:[a]}],brightness:[{brightness:[s]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",tt,U]}],grayscale:[{grayscale:[d]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[p]}],saturate:[{saturate:[g]}],sepia:[{sepia:[k]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[a]}],"backdrop-brightness":[{"backdrop-brightness":[s]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[d]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[f]}],"backdrop-saturate":[{"backdrop-saturate":[g]}],"backdrop-sepia":[{"backdrop-sepia":[k]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[i]}],"border-spacing-x":[{"border-spacing-x":[i]}],"border-spacing-y":[{"border-spacing-y":[i]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",U]}],duration:[{duration:W()}],ease:[{ease:["linear","in","out","in-out",U]}],delay:[{delay:W()}],animate:[{animate:["none","spin","ping","pulse","bounce",U]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[w]}],"scale-x":[{"scale-x":[w]}],"scale-y":[{"scale-y":[w]}],rotate:[{rotate:[ss,U]}],"translate-x":[{"translate-x":[O]}],"translate-y":[{"translate-y":[O]}],"skew-x":[{"skew-x":[N]}],"skew-y":[{"skew-y":[N]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",U]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",U]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":M()}],"scroll-mx":[{"scroll-mx":M()}],"scroll-my":[{"scroll-my":M()}],"scroll-ms":[{"scroll-ms":M()}],"scroll-me":[{"scroll-me":M()}],"scroll-mt":[{"scroll-mt":M()}],"scroll-mr":[{"scroll-mr":M()}],"scroll-mb":[{"scroll-mb":M()}],"scroll-ml":[{"scroll-ml":M()}],"scroll-p":[{"scroll-p":M()}],"scroll-px":[{"scroll-px":M()}],"scroll-py":[{"scroll-py":M()}],"scroll-ps":[{"scroll-ps":M()}],"scroll-pe":[{"scroll-pe":M()}],"scroll-pt":[{"scroll-pt":M()}],"scroll-pr":[{"scroll-pr":M()}],"scroll-pb":[{"scroll-pb":M()}],"scroll-pl":[{"scroll-pl":M()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}
vendor: 4,646 bytes, line 163
163],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",U]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Rn,nt,Ci]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},vw=ew(yw);function Ge(...e){return vw(Hf(e))}const bw=kb,Kf=v.forwardRef(({className:e,...n},a)=>t.jsx(If,{ref:a,className:Ge("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...n}));Kf.displayName=If.displayName;const ww=Uf("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),Zf=v.forwardRef(({className:e,variant:n,...a},s)=>t.jsx(Lf,{ref:s,className:Ge(ww({variant:n}),e),...a}));Zf.displayName=Lf.displayName;const jw=v.forwardRef(({className:e,...n},a)=>t.jsx(Ff,{ref:a,className:Ge("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...n}));jw.displayName=Ff.displayName;const Jf=v.forwardRef(({className:e,...n},a)=>t.jsx(Rf,{ref:a,className:Ge("absolute right-2 top-2 rounded-md p-1 text-foreground
vendor: 12,804 bytes, line 163
163/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...n,children:t.jsx(Db,{className:"h-4 w-4"})}));Jf.displayName=Rf.displayName;const eg=v.forwardRef(({className:e,...n},a)=>t.jsx(Xf,{ref:a,className:Ge("text-sm font-semibold",e),...n}));eg.displayName=Xf.displayName;const ng=v.forwardRef(({className:e,...n},a)=>t.jsx(_f,{ref:a,className:Ge("text-sm opacity-90",e),...n}));ng.displayName=_f.displayName;function kw(){const{toasts:e}=T0();return t.jsxs(bw,{children:[e.map(function({id:n,title:a,description:s,action:o,...r}){return t.jsxs(Zf,{...r,children:[t.jsxs("div",{className:"grid gap-1",children:[a&&t.jsx(eg,{children:a}),s&&t.jsx(ng,{children:s})]}),o,t.jsx(Jf,{})]},n)}),t.jsx(Kf,{})]})}const Nw=["top","right","bottom","left"],At=Math.min,Qe=Math.max,fr=Math.round,So=Math.floor,In=e=>({x:e,y:e}),Sw={left:"right",right:"left",bottom:"top",top:"bottom"},Aw={start:"end",end:"start"};function Pl(e,n,a){return Qe(e,At(n,a))}function Kn(e,n){return typeof e=="function"?e(n):e}function Zn(e){return e.split("-")[0]}function Wa(e){return e.split("-")[1]}function Hc(e){return e==="x"?"y":"x"}function Uc(e){return e==="y"?"height":"width"}function Ot(e){return["top","bottom"].includes(Zn(e))?"y":"x"}function Bc(e){return Hc(Ot(e))}function Ow(e,n,a){a===void 0&&(a=!1);const s=Wa(e),o=Bc(e),r=Uc(o);let i=o==="x"?s===(a?"end":"start")?"right":"left":s==="start"?"bottom":"top";return n.reference[r]>n.floating[r]&&(i=gr(i)),[i,gr(i)]}function Cw(e){const n=gr(e);return[Tl(e),n,Tl(n)]}function Tl(e){return e.replace(/start|end/g,n=>Aw[n])}function Ew(e,n,a){const s=["left","right"],o=["right","left"],r=["top","bottom"],i=["bottom","top"];switch(e){case"top":case"bottom":return a?n?o:s:n?s:o;case"left":case"right":return n?r:i;default:return[]}}function zw(e,n,a,s){const o=Wa(e);let r=Ew(Zn(e),a==="start",s);return o&&(r=r.map(i=>i+"-"+o),n&&(r=r.concat(r.map(Tl)))),r}function gr(e){return e.replace(/left|right|bottom|top/g,n=>Sw[n])}function qw(e){return{top:0,right:0,bottom:0,left:0,...e}}function tg(e){return typeof e!="number"?qw(e):{top:e,right:e,bottom:e,left:e}}function xr(e){const{x:n,y:a,width:s,height:o}=e;return{width:s,height:o,top:a,left:n,right:n+s,bottom:a+o,x:n,y:a}}function Uu(e,n,a){let{reference:s,floating:o}=e;const r=Ot(n),i=Bc(n),l=Uc(i),c=Zn(n),d=r==="y",u=s.x+s.width/2-o.width/2,p=s.y+s.height/2-o.height/2,m=s[l]/2-o[l]/2;let y;switch(c){case"top":y={x:u,y:s.y-o.height};break;case"bottom":y={x:u,y:s.y+s.height};break;case"right":y={x:s.x+s.width,y:p};break;case"left":y={x:s.x-o.width,y:p};break;default:y={x:s.x,y:s.y}}switch(Wa(n)){case"start":y[i]-=m*(a&&d?-1:1);break;case"end":y[i]+=m*(a&&d?-1:1);break}return y}const Pw=async(e,n,a)=>{const{placement:s="bottom",strategy:o="absolute",middleware:r=[],platform:i}=a,l=r.filter(Boolean),c=await(i.isRTL==null?void 0:i.isRTL(n));let d=await i.getElementRects({reference:e,floating:n,strategy:o}),{x:u,y:p}=Uu(d,s,c),m=s,y={},b=0;for(let x=0;x<l.length;x++){const{name:j,fn:f}=l[x],{x:h,y:g,data:w,reset:k}=await f({x:u,y:p,initialPlacement:s,placement:m,strategy:o,middlewareData:y,rects:d,platform:i,elements:{reference:e,floating:n}});u=h??u,p=g??p,y={...y,[j]:{...y[j],...w}},k&&b<=50&&(b++,typeof k=="object"&&(k.placement&&(m=k.placement),k.rects&&(d=k.rects===!0?await i.getElementRects({reference:e,floating:n,strategy:o}):k.rects),{x:u,y:p}=Uu(d,m,c)),x=-1)}return{x:u,y:p,placement:m,strategy:o,middlewareData:y}};async function Hs(e,n){var a;n===void 0&&(n={});const{x:s,y:o,platform:r,rects:i,elements:l,strategy:c}=e,{boundary:d="clippingAncestors",rootBoundary:u="viewport",elementContext:p="floating",altBoundary:m=!1,padding:y=0}=Kn(n,e),b=tg(y),j=l[m?p==="floating"?"reference":"floating":p],f=xr(await r.getClippingRect({element:(a=await(r.isElement==null?void 0:r.isElement(j)))==null||a?j:j.contextElement||await(r.getDocumentElement==null?void 0:r.getDocumentElement(l.floating)),boundary:d,rootBoundary:u,strategy:c})),h=p==="floating"?{x:s,y:o,width:i.floating.width,height:i.floating.height}:i.reference,g=await(r.getOffsetParent==null?void 0:r.getOffsetParent(l.floating)),w=await(r.isElement==null?void 0:r.isElement(g))?await(r.getScale==null?void 0:r.getScale(g))||{x:1,y:1}:{x:1,y:1},k=xr(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:h,offsetParent:g,strategy:c}):h);return{top:(f.top-k.top+b.top)/w.y,bottom:(k.bottom-f.bottom+b.bottom)/w.y,left:(f.left-k.left+b.left)/w.x,right:(k.right-f.right+b.right)/w.x}}const Tw=e=>({name:"arrow",options:e,async fn(n){const{x:a,y:s,placement:o,rects:r,platform:i,elements:l,middlewareData:c}=n,{element:d,padding:u=0}=Kn(e,n)||{};if(d==null)return{};const p=tg(u),m={x:a,y:s},y=Bc(o),b=Uc(y),x=await i.getDimensions(d),j=y==="y",f=j?"top":"left",h=j?"bottom":"right",g=j?"clientHeight":"clientWidth",w=r.reference[b]+r.reference[y]-m[y]-r.floating[b],k=m[y]-r.reference[y],N=await(i.getOffsetParent==null?void 0:i.getOffsetParent(d));let S=N?N[g]:0;(!S||!await(i.isElement==null?void 0:i.isElement(N)))&&(S=l.floating[g]||r.floating[b]);const O=w/2-k/2,F=S/2-x[b]/2-1,P=At(p[f],F),H=At(p[h],F),M=P,Q=S-x[b]-H,T=S/2-x[b]/2+O,ee=Pl(M,T,Q),G=!c.arrow&&Wa(o)!=null&&T!==ee&&r.reference[b]/2-(T<M?P:H)-x[b]/2<0,Z=G?T<M?T-M:T-Q:0;return{[y]:m[y]+Z,data:{[y]:ee,centerOffset:T-ee-Z,...G&&{alignmentOffset:Z}},reset:G}}}),Mw=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(n){var a,s;const{placement:o,middlewareData:r,rects:i,initialPlacement:l,platform:c,elements:d}=n,{mainAxis:u=!0,crossAxis:p=!0,fallbackPlacements:m,fallbackStrategy:y="bestFit",fallbackAxisSideDirection:b="none",flipAlignment:x=!0,...j}=Kn(e,n);if((a=r.arrow)!=null&&a.alignmentOffset)return{};const f=Zn(o),h=Ot(l),g=Zn(l)===l,w=await(c.isRTL==null?void 0:c.isRTL(d.floating)),k=m||(g||!x?[gr(l)]:Cw(l)),N=b!=="none";!m&&N&&k.push(...zw(l,x,b,w));const S=[l,...k],O=await Hs(n,j),F=[];let P=((s=r.flip)==null?void 0:s.overflows)||[];if(u&&F.push(O[f]),p){const T=Ow(o,i,w);F.push(O[T[0]],O[T[1]])}if(P=[...P,{placement:o,overflows:F}],!F.every(T=>T<=0)){var H,M;const T=(((H=r.flip)==null?void 0:H.index)||0)+1,ee=S[T];if(ee)return{data:{index:T,overflows:P},reset:{placement:ee}};let G=(M=P.filter(Z=>Z.overflows[0]<=0).sort((Z,C)=>Z.overflows[1]-C.overflows[1])[0])==null?void 0:M.placement;if(!G)switch(y){case"bestFit":{var Q;const Z=(Q=P.filter(C=>{if(N){const I=Ot(C.placement);return I===h||I==="y"}return!0}).map(C=>[C.placement,C.overflows.filter(I=>I>0).reduce((I,R)=>I+R,0)]).sort((C,I)=>C[1]-I[1])[0])==null?void 0:Q[0];Z&&(G=Z);break}case"initialPlacement":G=l;break}if(o!==G)return{reset:{placement:G}}}return{}}}};function Bu(e,n){return{top:e.top-n.height,right:e.right-n.width,bottom:e.bottom-n.height,left:e.left-n.width}}function Wu(e){return Nw.some(n=>e[n]>=0)}const Iw=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(n){const{rects:a}=n,{strategy:s="referenceHidden",...o}=Kn(e,n);switch(s){case"referenceHidden":{const r=await Hs(n,{...o,elementContext:"reference"}),i=Bu(r,a.reference);return{data:{referenceHiddenOffsets:i,referenceHidden:Wu(i)}}}case"escaped":{const r=await Hs(n,{...o,altBoundary:!0}),i=Bu(r,a.floating);return{data:{escapedOffsets:i,escaped:Wu(i)}}}default:return{}}}}};async function Lw(e,n){const{placement:a,platform:s,elements:o}=e,r=await(s.isRTL==null?void 0:s.isRTL(o.floating)),i=Zn(a),l=Wa(a),c=Ot(a)==="y",d=["left","top"].includes(i)?-1:1,u=r&&c?-1:1,p=Kn(n,e);let{mainAxis:m,crossAxis:y,alignmentAxis:b}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return l&&typeof b=="number"&&(y=l==="end"?b*-1:b),c?{x:y*u,y:m*d}:{x:m*d,y:y*u}}const Xw=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(n){var a,s;const{x:o,y:r,placement:i,middlewareData:l}=n,c=await Lw(n,e);return i===((a=l.offset)==null?void 0:a.placement)&&(s=l.arrow)!=null&&s.alignmentOffset?{}:{x:o+c.x,y:r+c.y,data:{...c,placement:i}}}}},_w=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(n){const{x:a,y:s,placement:o}=n,{mainAxis:r=!0,crossAxis:i=!1,limiter:l={fn:j=>{let{x:f,y:h}=j;return{x:f,y:h}}},...c}=Kn(e,n),d={x:a,y:s},u=await Hs(n,c),p=Ot(Zn(o)),m=Hc(p);let y=d[m],b=d[p];if(r){const j=m==="y"?"top":"left",f=m==="y"?"bottom":"right",h=y+u[j],g=y-u[f];y=Pl(h,y,g)}if(i){const j=p==="y"?"top":"left",f=p==="y"?"bottom":"right",h=b+u[j],g=b-u[f];b=Pl(h,b,g)}const x=l.fn({...n,[m]:y,[p]:b});return{...x,data:{x:x.x-a,y:x.y-s,enabled:{[m]:r,[p]:i}}}}}},Fw=function(e){return e===void 0&&(e={}),{options:e,fn(n){const{x:a,y:s,placement:o,rects:r,middlewareData:i}=n,{offset:l=0,mainAxis:c=!0,crossAxis:d=!0}=Kn(e,n),u={x:a,y:s},p=Ot(o),m=Hc(p);let y=u[m],b=u[p];const x=Kn(l,n),j=typeof x=="number"?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(c){const g=m==="y"?"height":"width",w=r.reference[m]-r.floating[g]+j.mainAxis,k=r.reference[m]+r.reference[g]-j.mainAxis;y<w?y=w:y>k&&(y=k)}if(d){var f,h;const g=m==="y"?"width":"height",w=["top","left"].includes(Zn(o)),k=r.reference[p]-r.floating[g]+(w&&((f=i.offset)==null?void 0:f[p])||0)+(w?0:j.crossAxis),N=r.reference[p]+r.reference[g]+(w?0:((h=i.offset)==null?void 0:h[p])||0)-(w?j.crossAxis:0);b<k?b=k:b>N&&(b=N)}return{[m]:y,[p]:b}}}},Rw=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(n){var a,s;const{placement:o,rects:r,platform:i,elements:l}=n,{apply:c=()=>{},...d}=Kn(e,n),u=await Hs(n,d),p=Zn(o),m=Wa(o),y=Ot(o)==="y",{width:b,height:x}=r.floating;let j,f;p==="top"||p==="bottom"?(j=p,f=m===(await(i.isRTL==null?void 0:i.isRTL(l.floating))?"start":"end")?"left":"right"):(f=p,j=m==="end"?"top":"bottom");const h=x-u.top-u.bottom,g=b-u.left-u.right,w=At(x-u[j],h),k=At(b-u[f],g),N=!n.middlewareData.shift;let S=w,O=k;if((a=n.middlewareData.shift)!=null&&a.enabled.x&&(O=g),(s=n.middlewareData.shift)!=null&&s.enabled.y&&(S=h),N&&!m){const P=Qe(u.left,0),H=Qe(u.right,0),M=Qe(u.top,0),Q=Qe(u.bottom,0);y?O=b-2*(P!==0||H!==0?P+H:Qe(u.left,u.right)):S=x-2*(M!==0||Q!==0?M+Q:Qe(u.top,u.bottom))}await c({...n,availableWidth:O,availableHeight:S});const F=await i.getDimensions(l.floating);return b!==F.width||x!==F.height?{reset:{rects:!0}}:{}}}};function Wr(){return typeof window<"u"}function Ga(e){return ag(e)?(e.nodeName||"").toLowerCase():"#document"}function Ze(e){var n;return(e==null||(n=e.ownerDocument)==null?void 0:n.defaultView)||window}function _n(e){var n;return(n=(ag(e)?e.ownerDocument:e.document)||window.document)==null?void 0:n.documentElement}function ag(e){return Wr()?e instanceof Node||e instanceof Ze(e).Node:!1}function Sn(e){return Wr()?e instanceof Element||e instanceof Ze(e).Element:!1}function Xn(e){return Wr()?e instanceof HTMLElement||e instanceof Ze(e).HTMLElement:!1}function Gu(e){return!Wr()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Ze(e).ShadowRoot}function Js(e){const{overflow:n,overflowX:a,overflowY:s,display:o}=An(e);return/auto|scroll|overlay|hidden|clip/.test(n+s+a)&&!["inline","contents"].includes(o)}function Dw(e){return["table","td","th"].includes(Ga(e))}function Gr(e){return[":popover-open",":modal"].some(n=>{try{return e.matches(n)}catch{return!1}})}function Wc(e){const n=Gc(),a=Sn(e)?An(e):e;return["transform","translate","scale","rotate","perspective"].some(s=>a[s]?a[s]!=="none":!1)||(a.containerType?a.containerType!=="normal":!1)||!n&&(a.backdropFilter?a.backdropFilter!=="none":!1)||!n&&(a.filter?a.filter!=="none":!1)||["transform","translate","scale","rotate","perspective","filter"].some(s=>(a.willChange||"").includes(s))||["paint","layout","strict","content"].some(s=>(a.contain||"").includes(s))}function Hw(e){let n=Ct(e);for(;Xn(n)&&!_a(n);){if(Wc(n))return n;if(Gr(n))return null;n=Ct(n)}return null}function Gc(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function _a(e){return["html","body","#document"].includes(Ga(e))}function An(e){return Ze(e).getComputedStyle(e)}function Vr(e){return Sn(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ct(e){if(Ga(e)==="html")return e;const n=e.assignedSlot||e.parentNode||Gu(e)&&e.host||_n(e);return Gu(n)?n.host:n}function sg(e){const n=Ct(e);return _a(n)?e.ownerDocument?e.ownerDocument.body:e.body:Xn(n)&&Js(n)?n:sg(n)}function Us(e,n,a){var s;n===void 0&&(n=[]),a===void 0&&(a=!0);const o=sg(e),r=o===((s=e.ownerDocument)==null?void 0:s.body),i=Ze(o);if(r){const l=Ml(i);
vendor: 4,745 bytes, line 163
163return n.concat(i,i.visualViewport||[],Js(o)?o:[],l&&a?Us(l):[])}return n.concat(o,Us(o,[],a))}function Ml(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function og(e){const n=An(e);let a=parseFloat(n.width)||0,s=parseFloat(n.height)||0;const o=Xn(e),r=o?e.offsetWidth:a,i=o?e.offsetHeight:s,l=fr(a)!==r||fr(s)!==i;return l&&(a=r,s=i),{width:a,height:s,$:l}}function Vc(e){return Sn(e)?e:e.contextElement}function ba(e){const n=Vc(e);if(!Xn(n))return In(1);const a=n.getBoundingClientRect(),{width:s,height:o,$:r}=og(n);let i=(r?fr(a.width):a.width)/s,l=(r?fr(a.height):a.height)/o;return(!i||!Number.isFinite(i))&&(i=1),(!l||!Number.isFinite(l))&&(l=1),{x:i,y:l}}const Uw=In(0);function rg(e){const n=Ze(e);return!Gc()||!n.visualViewport?Uw:{x:n.visualViewport.offsetLeft,y:n.visualViewport.offsetTop}}function Bw(e,n,a){return n===void 0&&(n=!1),!a||n&&a!==Ze(e)?!1:n}function Yt(e,n,a,s){n===void 0&&(n=!1),a===void 0&&(a=!1);const o=e.getBoundingClientRect(),r=Vc(e);let i=In(1);n&&(s?Sn(s)&&(i=ba(s)):i=ba(e));const l=Bw(r,a,s)?rg(r):In(0);let c=(o.left+l.x)/i.x,d=(o.top+l.y)/i.y,u=o.width/i.x,p=o.height/i.y;if(r){const m=Ze(r),y=s&&Sn(s)?Ze(s):s;let b=m,x=Ml(b);for(;x&&s&&y!==b;){const j=ba(x),f=x.getBoundingClientRect(),h=An(x),g=f.left+(x.clientLeft+parseFloat(h.paddingLeft))*j.x,w=f.top+(x.clientTop+parseFloat(h.paddingTop))*j.y;c*=j.x,d*=j.y,u*=j.x,p*=j.y,c+=g,d+=w,b=Ze(x),x=Ml(b)}}return xr({width:u,height:p,x:c,y:d})}function $c(e,n){const a=Vr(e).scrollLeft;return n?n.left+a:Yt(_n(e)).left+a}function ig(e,n,a){a===void 0&&(a=!1);const s=e.getBoundingClientRect(),o=s.left+n.scrollLeft-(a?0:$c(e,s)),r=s.top+n.scrollTop;return{x:o,y:r}}function Ww(e){let{elements:n,rect:a,offsetParent:s,strategy:o}=e;const r=o==="fixed",i=_n(s),l=n?Gr(n.floating):!1;if(s===i||l&&r)return a;let c={scrollLeft:0,scrollTop:0},d=In(1);const u=In(0),p=Xn(s);if((p||!p&&!r)&&((Ga(s)!=="body"||Js(i))&&(c=Vr(s)),Xn(s))){const y=Yt(s);d=ba(s),u.x=y.x+s.clientLeft,u.y=y.y+s.clientTop}const m=i&&!p&&!r?ig(i,c,!0):In(0);return{width:a.width*d.x,height:a.height*d.y,x:a.x*d.x-c.scrollLeft*d.x+u.x+m.x,y:a.y*d.y-c.scrollTop*d.y+u.y+m.y}}function Gw(e){return Array.from(e.getClientRects())}function Vw(e){const n=_n(e),a=Vr(e),s=e.ownerDocument.body,o=Qe(n.scrollWidth,n.clientWidth,s.scrollWidth,s.clientWidth),r=Qe(n.scrollHeight,n.clientHeight,s.scrollHeight,s.clientHeight);let i=-a.scrollLeft+$c(e);const l=-a.scrollTop;return An(s).direction==="rtl"&&(i+=Qe(n.clientWidth,s.clientWidth)-o),{width:o,height:r,x:i,y:l}}function $w(e,n){const a=Ze(e),s=_n(e),o=a.visualViewport;let r=s.clientWidth,i=s.clientHeight,l=0,c=0;if(o){r=o.width,i=o.height;const d=Gc();(!d||d&&n==="fixed")&&(l=o.offsetLeft,c=o.offsetTop)}return{width:r,height:i,x:l,y:c}}function Qw(e,n){const a=Yt(e,!0,n==="fixed"),s=a.top+e.clientTop,o=a.left+e.clientLeft,r=Xn(e)?ba(e):In(1),i=e.clientWidth*r.x,l=e.clientHeight*r.y,c=o*r.x,d=s*r.y;return{width:i,height:l,x:c,y:d}}function Vu(e,n,a){let s;if(n==="viewport")s=$w(e,a);else if(n==="document")s=Vw(_n(e));else if(Sn(n))s=Qw(n,a);else{const o=rg(e);s={x:n.x-o.x,y:n.y-o.y,width:n.width,height:n.height}}return xr(s)}function lg(e,n){const a=Ct(e);return a===n||!Sn(a)||_a(a)?!1:An(a).position==="fixed"||lg(a,n)}function Yw(e,n){const a=n.get(e);if(a)return a;let s=Us(e,[],!1).filter(l=>Sn(l)&&Ga(l)!=="body"),o=null;const r=An(e).position==="fixed";let i=r?Ct(e):e;for(;Sn(i)&&!_a(i);){const l=An(i),c=Wc(i);!c&&l.position==="fixed"&&(o=null),(r?!c&&!o:!c&&l.position==="static"&&!!o&&["absolute","fixed"].includes(o.position)||Js(i)&&!c&&lg(e,i))?s=s.filter(u=>u!==i):o=l,i=Ct(i)}return n.set(e,s),s}function Kw(e){let{element:n,boundary:a,rootBoundary:s,strategy:o}=e;const i=[...a==="clippingAncestors"?Gr(n)?[]:Yw(n,this._c):[].concat(a),s],l=i[0],c=i.reduce((d,u)=>{const p=Vu(n,u,o);return d.top=Qe(p.top,d.top),d.right=At(p.right,d.right),d.bottom=At(p.bottom,d.bottom),d.left=Qe(p.left,d.left),d},Vu(n,l,o));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function Zw(e){const{width:n,height:a}=og(e);return{width:n,height:a}}function Jw(e,n,a){const s=Xn(n),o=_n(n),r=a==="fixed",i=Yt(e,!0,r,n);let l={scrollLeft:0,scrollTop:0};const c=In(0);if(s||!s&&!r)if((Ga(n)!=="body"||Js(o))&&(l=Vr(n)),s){const m=Yt(n,!0,r,n);c.x=m.x+n.clientLeft,c.y=m.y+n.clientTop}else o&&(c.x=$c(o));const d=o&&!s&&!r?ig(o,l):In(0),u=i.left+l.scrollLeft-c.x-d.x,p=i.top+l.scrollTop-c.y-d.y;return{x:u,y:p,width:i.width,height:i.height}}function Ei(e){return An(e).position==="static"}function $u(e,n){if(!Xn(e)||An(e).position==="fixed")return null;if(n)return n(e);let a=e.offsetParent;return _n(e)===a&&(a=a.ownerDocument.body),a}function cg(e,n){const a=Ze(e);if(Gr(e))return a;
vendor: 7,530 bytes, line 163
163if(!Xn(e)){let o=Ct(e);for(;o&&!_a(o);){if(Sn(o)&&!Ei(o))return o;o=Ct(o)}return a}let s=$u(e,n);for(;s&&Dw(s)&&Ei(s);)s=$u(s,n);return s&&_a(s)&&Ei(s)&&!Wc(s)?a:s||Hw(e)||a}const e2=async function(e){const n=this.getOffsetParent||cg,a=this.getDimensions,s=await a(e.floating);return{reference:Jw(e.reference,await n(e.floating),e.strategy),floating:{x:0,y:0,width:s.width,height:s.height}}};function n2(e){return An(e).direction==="rtl"}const t2={convertOffsetParentRelativeRectToViewportRelativeRect:Ww,getDocumentElement:_n,getClippingRect:Kw,getOffsetParent:cg,getElementRects:e2,getClientRects:Gw,getDimensions:Zw,getScale:ba,isElement:Sn,isRTL:n2};function dg(e,n){return e.x===n.x&&e.y===n.y&&e.width===n.width&&e.height===n.height}function a2(e,n){let a=null,s;const o=_n(e);function r(){var l;clearTimeout(s),(l=a)==null||l.disconnect(),a=null}function i(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),r();const d=e.getBoundingClientRect(),{left:u,top:p,width:m,height:y}=d;if(l||n(),!m||!y)return;const b=So(p),x=So(o.clientWidth-(u+m)),j=So(o.clientHeight-(p+y)),f=So(u),g={rootMargin:-b+"px "+-x+"px "+-j+"px "+-f+"px",threshold:Qe(0,At(1,c))||1};let w=!0;function k(N){const S=N[0].intersectionRatio;if(S!==c){if(!w)return i();S?i(!1,S):s=setTimeout(()=>{i(!1,1e-7)},1e3)}S===1&&!dg(d,e.getBoundingClientRect())&&i(),w=!1}try{a=new IntersectionObserver(k,{...g,root:o.ownerDocument})}catch{a=new IntersectionObserver(k,g)}a.observe(e)}return i(!0),r}function s2(e,n,a,s){s===void 0&&(s={});const{ancestorScroll:o=!0,ancestorResize:r=!0,elementResize:i=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=s,d=Vc(e),u=o||r?[...d?Us(d):[],...Us(n)]:[];u.forEach(f=>{o&&f.addEventListener("scroll",a,{passive:!0}),r&&f.addEventListener("resize",a)});const p=d&&l?a2(d,a):null;let m=-1,y=null;i&&(y=new ResizeObserver(f=>{let[h]=f;h&&h.target===d&&y&&(y.unobserve(n),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var g;(g=y)==null||g.observe(n)})),a()}),d&&!c&&y.observe(d),y.observe(n));let b,x=c?Yt(e):null;c&&j();function j(){const f=Yt(e);x&&!dg(x,f)&&a(),x=f,b=requestAnimationFrame(j)}return a(),()=>{var f;u.forEach(h=>{o&&h.removeEventListener("scroll",a),r&&h.removeEventListener("resize",a)}),p==null||p(),(f=y)==null||f.disconnect(),y=null,c&&cancelAnimationFrame(b)}}const o2=Xw,r2=_w,i2=Mw,l2=Rw,c2=Iw,Qu=Tw,d2=Fw,u2=(e,n,a)=>{const s=new Map,o={platform:t2,...a},r={...o.platform,_c:s};return Pw(e,n,{...o,platform:r})};var Do=typeof document<"u"?v.useLayoutEffect:v.useEffect;function yr(e,n){if(e===n)return!0;if(typeof e!=typeof n)return!1;if(typeof e=="function"&&e.toString()===n.toString())return!0;let a,s,o;if(e&&n&&typeof e=="object"){if(Array.isArray(e)){if(a=e.length,a!==n.length)return!1;for(s=a;s--!==0;)if(!yr(e[s],n[s]))return!1;return!0}if(o=Object.keys(e),a=o.length,a!==Object.keys(n).length)return!1;for(s=a;s--!==0;)if(!{}.hasOwnProperty.call(n,o[s]))return!1;for(s=a;s--!==0;){const r=o[s];if(!(r==="_owner"&&e.$$typeof)&&!yr(e[r],n[r]))return!1}return!0}return e!==e&&n!==n}function ug(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function Yu(e,n){const a=ug(e);return Math.round(n*a)/a}function zi(e){const n=v.useRef(e);return Do(()=>{n.current=e}),n}function p2(e){e===void 0&&(e={});const{placement:n="bottom",strategy:a="absolute",middleware:s=[],platform:o,elements:{reference:r,floating:i}={},transform:l=!0,whileElementsMounted:c,open:d}=e,[u,p]=v.useState({x:0,y:0,strategy:a,placement:n,middlewareData:{},isPositioned:!1}),[m,y]=v.useState(s);yr(m,s)||y(s);const[b,x]=v.useState(null),[j,f]=v.useState(null),h=v.useCallback(C=>{C!==N.current&&(N.current=C,x(C))},[]),g=v.useCallback(C=>{C!==S.current&&(S.current=C,f(C))},[]),w=r||b,k=i||j,N=v.useRef(null),S=v.useRef(null),O=v.useRef(u),F=c!=null,P=zi(c),H=zi(o),M=zi(d),Q=v.useCallback(()=>{if(!N.current||!S.current)return;const C={placement:n,strategy:a,middleware:m};H.current&&(C.platform=H.current),u2(N.current,S.current,C).then(I=>{const R={...I,isPositioned:M.current!==!1};T.current&&!yr(O.current,R)&&(O.current=R,Zs.flushSync(()=>{p(R)}))})},[m,n,a,H,M]);Do(()=>{d===!1&&O.current.isPositioned&&(O.current.isPositioned=!1,p(C=>({...C,isPositioned:!1})))},[d]);const T=v.useRef(!1);Do(()=>(T.current=!0,()=>{T.current=!1}),[]),Do(()=>{if(w&&(N.current=w),k&&(S.current=k),w&&k){if(P.current)return P.current(w,k,Q);Q()}},[w,k,Q,P,F]);const ee=v.useMemo(()=>({reference:N,floating:S,setReference:h,setFloating:g}),[h,g]),G=v.useMemo(()=>({reference:w,floating:k}),[w,k]),Z=v.useMemo(()=>{const C={position:a,left:0,top:0};if(!G.floating)return C;const I=Yu(G.floating,u.x),R=Yu(G.floating,u.y);return l?{...C,transform:"translate("+I+"px, "+R+"px)",...ug(G.floating)>=1.5&&{willChange:"transform"}}:{position:a,left:I,top:R}},[a,l,G.floating,u.x,u.y]);return v.useMemo(()=>({...u,update:Q,refs:ee,elements:G,floatingStyles:Z}),[u,Q,ee,G,Z])}const m2=e=>{function n(a){return{}.hasOwnProperty.call(a,"current")}return{name:"arrow",options:e,fn(a){const{element:s,padding:o}=typeof e=="function"?e(a):e;return s&&n(s)?s.current!=null?Qu({element:s.current,padding:o}).fn(a):{}:s?Qu({element:s,padding:o}).fn(a):{}}}},h2=(e,n)=>({...o2(e),options:[e,n]}),f2=(e,n)=>({...r2(e),options:[e,n]}),g2=(e,n)=>({...d2(e),options:[e,n]}),x2=(e,n)=>({...i2(e),options:[e,n]}),y2=(e,n)=>({...l2(e),options:[e,n]}),v2=(e,n)=>({...c2(e),options:[e,n]}),b2=(e,n)=>({...m2(e),options:[e,n]});var w2="Arrow",pg=v.forwardRef((e,n)=>{const{children:a,width:s=10,height:o=5,...r}=e;return t.jsx(We.svg,{...r,ref:n,width:s,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?a:t.jsx("polygon",{points:"0,0 30,0 15,10"})})});pg.displayName=w2;var j2=pg;function k2(e){const[n,a]=v.useState(void 0);return Qt(()=>{if(e){a({width:e.offsetWidth,height:e.offsetHeight});const s=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const r=o[0];let i,l;if("borderBoxSize"in r){const c=r.borderBoxSize,d=Array.isArray(c)?c[0]:c;i=d.inlineSize,l=d.blockSize}else i=e.offsetWidth,l=e.offsetHeight;a({width:i,height:l})});return s.observe(e,{box:"border-box"}),()=>s.unobserve(e)}else a(void 0)},[e]),n}var mg="Popper",[hg,fg]=Dr(mg),[lk,gg]=hg(mg),xg="PopperAnchor",yg=v.forwardRef((e,n)=>{const{__scopePopper:a,virtualRef:s,...o}=e,r=gg(xg,a),i=v.useRef(null),l=Nn(n,i);return v.useEffect(()=>{r.onAnchorChange((s==null?void 0:s.current)||i.current)}),s?null:t.jsx(We.div,{...o,ref:l})});yg.displayName=xg;var Qc="PopperContent",[N2,S2]=hg(Qc),vg=v.forwardRef((e,n)=>{var Pt,td,ad,sd,od,rd;const{__scopePopper:a,side:s="bottom",sideOffset:o=0,align:r="center",alignOffset:i=0,arrowPadding:l=0,avoidCollisions:c=!0,collisionBoundary:d=[],collisionPadding:u=0,sticky:p="partial",hideWhenDetached:m=!1,updatePositionStrategy:y="optimized",onPlaced:b,...x}=e,j=gg(Qc,a),[f,h]=v.useState(null),g=Nn(n,Qa=>h(Qa)),[w,k]=v.useState(null),N=k2(w),S=(N==null?void 0:N.width)??0,O=(N==null?void 0:N.height)??0,F=s+(r!=="center"?"-"+r:""),P=typeof u=="number"?u:{top:0,right:0,bottom:0,left:0,...u},H=Array.isArray(d)?d:[d],M=H.length>0,Q={padding:P,boundary:H.filter(O2),altBoundary:M},{refs:T,floatingStyles:ee,placement:G,isPositioned:Z,middlewareData:C}=p2({strategy:"fixed",placement:F,whileElementsMounted:(...Qa)=>s2(...Qa,{animationFrame:y==="always"}),elements:{reference:j.anchor},middleware:[h2({mainAxis:o+O,alignmentAxis:i}),c&&f2({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?g2():void 0,...Q}),c&&x2({...Q}
vendor: 7,489 bytes, line 163
163),y2({...Q,apply:({elements:Qa,rects:id,availableWidth:$g,availableHeight:Qg})=>{const{width:Yg,height:Kg}=id.reference,to=Qa.floating.style;to.setProperty("--radix-popper-available-width",`${$g}px`),to.setProperty("--radix-popper-available-height",`${Qg}px`),to.setProperty("--radix-popper-anchor-width",`${Yg}px`),to.setProperty("--radix-popper-anchor-height",`${Kg}px`)}}),w&&b2({element:w,padding:l}),C2({arrowWidth:S,arrowHeight:O}),m&&v2({strategy:"referenceHidden",...Q})]}),[I,R]=jg(G),W=Ln(b);Qt(()=>{Z&&(W==null||W())},[Z,W]);const le=(Pt=C.arrow)==null?void 0:Pt.x,hn=(td=C.arrow)==null?void 0:td.y,sn=((ad=C.arrow)==null?void 0:ad.centerOffset)!==0,[$a,Fn]=v.useState();return Qt(()=>{f&&Fn(window.getComputedStyle(f).zIndex)},[f]),t.jsx("div",{ref:T.setFloating,"data-radix-popper-content-wrapper":"",style:{...ee,transform:Z?ee.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:$a,"--radix-popper-transform-origin":[(sd=C.transformOrigin)==null?void 0:sd.x,(od=C.transformOrigin)==null?void 0:od.y].join(" "),...((rd=C.hide)==null?void 0:rd.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:t.jsx(N2,{scope:a,placedSide:I,onArrowChange:k,arrowX:le,arrowY:hn,shouldHideArrow:sn,children:t.jsx(We.div,{"data-side":I,"data-align":R,...x,ref:g,style:{...x.style,animation:Z?void 0:"none"}})})})});vg.displayName=Qc;var bg="PopperArrow",A2={top:"bottom",right:"left",bottom:"top",left:"right"},wg=v.forwardRef(function(n,a){const{__scopePopper:s,...o}=n,r=S2(bg,s),i=A2[r.placedSide];return t.jsx("span",{ref:r.onArrowChange,style:{position:"absolute",left:r.arrowX,top:r.arrowY,[i]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[r.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[r.placedSide],visibility:r.shouldHideArrow?"hidden":void 0},children:t.jsx(j2,{...o,ref:a,style:{...o.style,display:"block"}})})});wg.displayName=bg;function O2(e){return e!==null}var C2=e=>({name:"transformOrigin",options:e,fn(n){var j,f,h;const{placement:a,rects:s,middlewareData:o}=n,i=((j=o.arrow)==null?void 0:j.centerOffset)!==0,l=i?0:e.arrowWidth,c=i?0:e.arrowHeight,[d,u]=jg(a),p={start:"0%",center:"50%",end:"100%"}[u],m=(((f=o.arrow)==null?void 0:f.x)??0)+l/2,y=(((h=o.arrow)==null?void 0:h.y)??0)+c/2;let b="",x="";return d==="bottom"?(b=i?p:`${m}px`,x=`${-c}px`):d==="top"?(b=i?p:`${m}px`,x=`${s.floating.height+c}px`):d==="right"?(b=`${-c}px`,x=i?p:`${y}px`):d==="left"&&(b=`${s.floating.width+c}px`,x=i?p:`${y}px`),{data:{x:b,y:x}}}});function jg(e){const[n,a="center"]=e.split("-");return[n,a]}var E2=yg,z2=vg,q2=wg,[$r]=Dr("Tooltip",[fg]),Yc=fg(),kg="TooltipProvider",P2=700,Ku="tooltip.open",[T2,Ng]=$r(kg),Sg=e=>{const{__scopeTooltip:n,delayDuration:a=P2,skipDelayDuration:s=300,disableHoverableContent:o=!1,children:r}=e,i=v.useRef(!0),l=v.useRef(!1),c=v.useRef(0);return v.useEffect(()=>{const d=c.current;return()=>window.clearTimeout(d)},[]),t.jsx(T2,{scope:n,isOpenDelayedRef:i,delayDuration:a,onOpen:v.useCallback(()=>{window.clearTimeout(c.current),i.current=!1},[]),onClose:v.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>i.current=!0,s)},[s]),isPointerInTransitRef:l,onPointerInTransitChange:v.useCallback(d=>{l.current=d},[]),disableHoverableContent:o,children:r})};Sg.displayName=kg;var Ag="Tooltip",[ck,Qr]=$r(Ag),Il="TooltipTrigger",M2=v.forwardRef((e,n)=>{const{__scopeTooltip:a,...s}=e,o=Qr(Il,a),r=Ng(Il,a),i=Yc(a),l=v.useRef(null),c=Nn(n,l,o.onTriggerChange),d=v.useRef(!1),u=v.useRef(!1),p=v.useCallback(()=>d.current=!1,[]);return v.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),t.jsx(E2,{asChild:!0,...i,children:t.jsx(We.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...s,ref:c,onPointerMove:ve(e.onPointerMove,m=>{m.pointerType!=="touch"&&!u.current&&!r.isPointerInTransitRef.current&&(o.onTriggerEnter(),u.current=!0)}),onPointerLeave:ve(e.onPointerLeave,()=>{o.onTriggerLeave(),u.current=!1}),onPointerDown:ve(e.onPointerDown,()=>{o.open&&o.onClose(),d.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:ve(e.onFocus,()=>{d.current||o.onOpen()}),onBlur:ve(e.onBlur,o.onClose),onClick:ve(e.onClick,o.onClose)})})});M2.displayName=Il;var I2="TooltipPortal",[dk,L2]=$r(I2,{forceMount:void 0}),Fa="TooltipContent",Og=v.forwardRef((e,n)=>{const a=L2(Fa,e.__scopeTooltip),{forceMount:s=a.forceMount,side:o="top",...r}=e,i=Qr(Fa,e.__scopeTooltip);return t.jsx(Xc,{present:s||i.open,children:i.disableHoverableContent?t.jsx(Cg,{side:o,...r,ref:n}):t.jsx(X2,{side:o,...r,ref:n})})}),X2=v.forwardRef((e,n)=>{const a=Qr(Fa,e.__scopeTooltip),s=Ng(Fa,e.__scopeTooltip),o=v.useRef(null),r=Nn(n,o),[i,l]=v.useState(null),{trigger:c,onClose:d}=a,u=o.current,{onPointerInTransitChange:p}=s,m=v.useCallback(()=>{l(null),p(!1)},[p]),y=v.useCallback((b,x)=>{const j=b.currentTarget,f={x:b.clientX,y:b.clientY},h=H2(f,j.getBoundingClientRect()),g=U2(f,h),w=B2(x.getBoundingClientRect()),k=G2([...g,...w]);l(k),p(!0)},[p]);return v.useEffect(()=>()=>m(),[m]),v.useEffect(()=>{if(c&&u){const b=j=>y(j,u),x=j=>y(j,c);return c.addEventListener("pointerleave",b),u.addEventListener("pointerleave",x),()=>{c.removeEventListener("pointerleave",b),u.removeEventListener("pointerleave",x)}}},[c,u,y,m]),v.useEffect(()=>{if(i){const b=x=>{const j=x.target,f={x:x.clientX,y:x.clientY},h=(c==null?void 0:c.contains(j))||(u==null?void 0:u.contains(j)),g=!W2(f,i);h?m():g&&(m(),d())};return document.addEventListener("pointermove",b),()=>document.removeEventListener("pointermove",b)}},[c,u,i,d,m]),t.jsx(Cg,{...e,ref:r})}),[_2,F2]=$r(Ag,{isInside:!1}),R2=X0("TooltipContent"),Cg=v.forwardRef((e,n)=>{const{__scopeTooltip:a,children:s,"aria-label":o,onEscapeKeyDown:r,onPointerDownOutside:i,...l}=e,c=Qr(Fa,a),d=Yc(a),{onClose:u}=c;return v.useEffect(()=>(document.addEventListener(Ku,u),()=>document.removeEventListener(Ku,u)),[u]),v.useEffect(()=>{if(c.trigger){const p=m=>{const y=m.target;y!=null&&y.contains(c.trigger)&&u()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[c.trigger,u]),t.jsx(Lc,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:p=>p.preventDefault(),onDismiss:u,children:t.jsxs(z2,{"data-state":c.stateAttribute,...d,...l,ref:n,style:{...l.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[t.jsx(R2,{children:s}),t.jsx(_2,{scope:a,isInside:!0,children:t.jsx(ob,{id:c.contentId,role:"tooltip",children:o||s})})]})})});Og.displayName=Fa;var Eg="TooltipArrow",D2=v.forwardRef((e,n)=>{const{__scopeTooltip:a,...s}=e,o=Yc(a);return F2(Eg,a).isInside?null:t.jsx(q2,{...o,...s,ref:n})});D2.displayName=Eg;function H2(e,n){const a=Math.abs(n.top-e.y),s=Math.abs(n.bottom-e.y),o=Math.abs(n.right-e.x),r=Math.abs(n.left-e.x);switch(Math.min(a,s,o,r)){case r:return"left";case o:return"right";case a:return"top";case s:return"bottom";default:throw new Error("unreachable")}}function U2(e,n,a=5){const s=[];
163switch(n){case"top":s.push({x:e.x-a,y:e.y+a},{x:e.x+a,y:e.y+a});break;case"bottom":s.push({x:e.x-a,y:e.y-a},{x:e.x+a,y:e.y-a});break;case"left":s.push({x:e.x+a,y:e.y-a},{x:e.x+a,y:e.y+a});break;case"right":s.push({x:e.x-a,y:e.y-a},{x:e.x-a,y:e.y+a});break}return s}function B2(e){const{top:n,right:a,bottom:s,left:o}=e;return[{x:o,y:n},{x:a,y:n},{x:a,y:s},{x:o,y:s}]}function W2(e,n){const{x:a,y:s}=e;let o=!1;for(let r=0,i=n.length-1;r<n.length;i=r++){const l=n[r].x,c=n[r].y,d=n[i].x,u=n[i].y;c>s!=u>s&&a<(d-l)*(s-c)/(u-c)+l&&(o=!o)}return o}function G2(e){const n=e.slice();return n.sort((a,s)=>a.x<s.x?-1:a.x>s.x?1:a.y<s.y?-1:a.y>s.y?1:0),V2(n)}function V2(e){if(e.length<=1)return e.slice();const n=[];for(let s=0;s<e.length;s++){const o=e[s];for(;n.length>=2;){const r=n[n.length-1],i=n[n.length-2];if((r.x-i.x)*(o.y-i.y)>=(r.y-i.y)*(o.x-i.x))n.pop();else break}n.push(o)}n.pop();const a=[];for(let s=e.length-1;s>=0;s--){const o=e[s];for(;a.length>=2;){const r=a[a.length-1],i=a[a.length-2];if((r.x-i.x)*(o.y-i.y)>=(r.y-i.y)*(o.x-i.x))a.pop();else break}a.push(o)}return a.pop(),n.length===1&&a.length===1&&n[0].x===a[0].x&&n[0].y===a[0].y?n:n.concat(a)}var $2=Sg,zg=Og;const Q2=$2,Y2=v.forwardRef(({className:e,sideOffset:n=4,...a},s)=>t.jsx(zg,{ref:s,sideOffset:n,className:Ge("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-tooltip-content-transform-origin]",e),...a}));Y2.displayName=zg.displayName;const qg=[["/","/es/"],["/about/","/es/about/"],["/solutions/","/es/solutions/"],["/solutions/openedx/","/es/solutions/openedx/"],["/solutions/owly/","/es/solutions/owly/"],["/solutions/panorama/","/es/solutions/panorama/"],["/contact/","/es/contact/"],["/pricing/","/es/pricing/"],["/open-edx-hosting/","/es/open-edx-hosting/"],["/open-edx-pricing/","/es/open-edx-pricing/"],["/blog/","/es/blog/"],["/blog/open-edx-migration-lessons-learned/","/es/blog/migracion-open-edx-lecciones-aprendidas/"],["/blog/ai-needs-organizations-that-learn/","/es/blog/la-ia-necesita-organizaciones-que-aprendan/"],["/blog/starting-a-new-year-in-the-age-of-ai/","/es/blog/comenzar-un-nuevo-ano-en-la-era-de-la-ia/"],["/blog/hidden-cost-of-lms-security/","/es/blog/costo-oculto-seguridad-lms/"],["/blog/new-baseline-for-ai-education/","/es/blog/nueva-base-ensenanza-con-ia/"],["/blog/bad-but-used-to-it-educational-innovation/","/es/blog/mal-pero-acostumbrau-innovacion-educativa/"],["/blog/building-owly-ai-agent-for-education/","/es/blog/owly-agente-ia-gestion-del-aprendizaje/"],["/blog/kubernetes-cluster-scalable-stable-cost-efficient/","/es/blog/cluster-kubernetes-escalable-estable-eficiente/"],["/blog/what-is-a-learning-management-system/","/es/blog/que-es-un-lms-sistema-de-gestion-del-aprendizaje/"],["/blog/what-is-instructional-design/","/es/blog/que-es-el-diseno-instruccional/"],["/blog/open-edx-analytics-guide/","/es/blog/guia-analitica-open-edx/"],["/case-studies/","/es/case-studies/"],["/holcim-academy-success-stories-with-aulasneo/","/es/holcim-academy-casos-de-exito-con-aulasneo/"],["/health-hive-success-stories-with-aulasneo/","/es/health-hive-casos-de-exito-con-aulasneo/"],["/cap-net-success-stories-with-aulasneo/","/es/cap-net-casos-de-exito-con-aulasneo/"],["/aie-arg-success-stories-with-aulasneo/","/es/aie-arg-casos-de-exito-con-aulasneo/"],["/icdeba-success-stories-with-aulasneo/","/es/icdeba-casos-de-exito-con-aulasneo/"],["/ceef-success-stories-with-aulasneo/","/es/ceef-casos-de-exito-con-aulasneo/"],["/faq/open-edx/","/es/faq/open-edx/"],["/faq/ai-agent-education/","/es/faq/ai-agent-education/"],["/support/","/es/support/"],["/privacy-policy/","/es/privacy-policy/"],["/terms-of-service/","/es/terms-of-service/"],["/blog/what-is-open-edx-overview-features-benefits/","/es/lo-que-es-open-edx-y-cuales-son-las-ventajas-de-open-edx/"],["/whats-the-difference-between-edx-and-open-edx/","/es/cual-es-la-diferencia-entre-edx-y-open-edx/"],["/tips-to-choose-the-right-lms-for-your-organization/","/es/consejos-para-elegir-el-lms-correcto/"],["/lms-customization-a-successful-approach/","/es/personalizacion-lms-un-enfoque-exitoso/"],["/elevate-your-course-design-in-open-edx-studio/","/es/mejora-el-diseno-de-tus-cursos-en-open-edx-studio/"],["/open-edx-analytics-impact-open-courses/","/es/analitica-open-edx-impacto-cursos-abiertos/"]];function js(e){return e.length>1&&e.endsWith("/")?e.slice(0,-1):e}function Pg(e,n){const a=js(e);for(const[s,o]of qg)if(a===js(s)||a===js(o))return n==="es"?o:s;return null}function Zu(e){const n=js(e);return n.startsWith("/blog/")?!0:qg.some(([a])=>n===js(a))}function Tg(e,n){return n!=="es"?e:Pg(e,"es")??e}const Mg=v.createContext(void 0),K2={en:{"nav.home":"Home","nav.about":"About Us","nav.solutions":"Solutions","nav.pricing":"Pricing","nav.caseStudies":"Success Stories","nav.blog":"Blog","nav.contact":"Contact","hero.title":"Transform Education with AI-Powered LMS Solutions","hero.subtitle":"Aulasneo is a global EdTech company specializing in innovative solutions for online learning. With expertise in open-source LMS technologies and AI integrations, we deliver scalable, customized platforms that help organizations and educational institutions worldwide achieve impactful learning outcomes.","hero.cta.primary":"Explore Solutions","hero.cta.secondary":"Get Started","clients.title":"Trusted by Leading Organizations","clients.subtitle":"Join prestigious institutions that trust Aulasneo for their learning solutions","solutions.title":"Our Solutions","solutions.subtitle":"We empower organizations to make online learning projects come true with innovative, scalable solutions that drive real educational outcomes.","solutions.owly":"Owly – AI Agent for LMS","solutions.owly.description":"Revolutionary AI agent that transforms how educators and learners interact with LMS platforms. Owly provides intelligent assistance, automated workflows, and personalized learning experiences.","solutions.openedx":"Open edX LMS","solutions.openedx.description":"Comprehensive Open edX hosting and customization services. From setup to scaling, we handle everything so you can focus on creating amazing learning experiences.","solutions.panorama":"Panorama Analytics","solutions.panorama.description":"Advanced multi-LMS learner analytics platform that provides comprehensive insights into student performance, engagement, and learning outcomes across multiple platforms.","solutions.learnMore":"Learn More","solutions.
163custom.title":"Need a Custom Solution?","solutions.custom.subtitle":"Every organization has unique needs. We offer custom development services to create tailored solutions that perfectly fit your requirements.","solutions.custom.button":"Discuss Your Project","mission.title":"Our Mission","mission.subtitle":"At Aulasneo, we envision a world where quality education is accessible to everyone, everywhere. We leverage cutting-edge AI technology to create personalized, scalable learning experiences that adapt to each learner's unique needs and pace.","cta.title":"Ready to Transform Your Learning Experience?","cta.subtitle":"Join thousands of organizations worldwide that trust Aulasneo for their educational technology needs.","cta.button":"Get Started Today","footer.company":"Learning platforms powered by Open edX.","footer.solutions":"Solutions","footer.resources":"Resources","footer.company.title":"Company","footer.blog":"Blog","footer.caseStudies":"Success Stories","footer.documentation":"Documentation","footer.support":"Support","footer.pricing":"Pricing","footer.aboutUs":"About Us","footer.contact":"Contact","footer.privacy":"Privacy Policy","footer.terms":"Terms of Service","footer.copyright":"© 2025 Aulasneo. All rights reserved. | Empowering education through innovative technology.","about.title":"About Aulasneo","about.subtitle":"Leading the future of education technology with innovative AI-powered solutions.","blog.title":"Blog","blog.subtitle":"Insights, updates, and thought leadership in educational technology.","blog.readMore":"Read More","contact.title":"Contact Us","contact.subtitle":"Ready to transform your learning experience? Get in touch with our team.","pricing.title":"Choose Your Plan","pricing.subtitle":"Select the perfect solution for your educational needs. Flexible pricing for every institution.","pricing.custom.title":"Need a Custom Solution?","pricing.custom.subtitle":"Contact our team to discuss your specific requirements and get a tailored quote.","pricing.contact.sales":"Contact Sales","owly.title":"Owly: AI Agent for Your LMS | Tutoring, Courses & Automation","owly.description":"Owly is an AI agent that works inside your LMS: 24/7 tutoring for students, AI course creation for educators and automated enrollments for admins. Request a demo.","owly.hero.title":"Meet Owly: Your AI Agent for LMS","owly.hero.description":"Revolutionary AI agent that transforms how educators and learners interact with LMS platforms. Owly provides intelligent assistance, automated workflows, and personalized learning experiences enhanced by learning analytics.","owly.hero.cta":"Learn more at GetOwly.ai","owly.demo.title":"See Owly in Action","owly.demo.description":"Watch how Owly transforms the learning experience","owly.features.title1":"Intelligent Recommendations","owly.features.desc1":"AI-powered content recommendations based on learning patterns and preferences","owly.features.title2":"Automated Workflows","owly.features.desc2":"Streamline administrative tasks and reduce manual workload for educators","owly.features.title3":"24/7 Support","owly.features.desc3":"Round-the-clock intelligent assistance for students and educators","owly.features.title4":"Advanced Analytics","owly.features.desc4":"Deep insights into learning patterns and performance metrics","owly.howworks.title":"How Owly Works","owly.howworks.step1.title":"Integrate","owly.howworks.step1.desc":"Seamlessly integrates with your existing LMS platform without disrupting current workflows.","owly.howworks.step2.title":"Interact","owly.howworks.step2.desc":"All users (students, teachers, operators and more!) can interact with Owly.","owly.howworks.step3.title":"Improve your learning experience","owly.howworks.step3.desc":"Save time, gain detailed insights and support, and create enriching learning sessions.","owly.educators.title":"For Educators","owly.educators.feature1.title":"Course creation","owly.educators.feature1.desc":"Full or partial course creation. Retain control, accelerate speed.","owly.educators.feature2.title":"Content Curation","owly.educators.feature2.desc":"AI-powered content recommendations and organization","owly.educators.feature3.title":"Student Insights","owly.educators.feature3.desc":"Detailed analytics on student performance and engagement","owly.admins.title":"For Admins and Operators","owly.admins.feature1.title":"Administrative Efficiency","owly.admins.feature1.desc":"Streamline daily operations with intelligent automation","owly.admins.feature2.title":"System Integration","owly.admins.feature2.desc":"Seamless integration with existing institutional systems","owly.admins.feature3.title":"Operational Insights","owly.admins.feature3.desc":"Comprehensive analytics for informed decision-making","owly.students.title":"For Students","owly.students.feature1.title":"Personalized Learning","owly.students.feature1.desc":"Tailored learning paths adapted to individual progress and preferences","owly.students.feature2.title":"Intelligent Tutoring","owly.students.feature2.desc":"24/7 AI-powered assistance for questions and learning support","owly.students.feature3.title":"Adaptive Content","owly.students.feature3.desc":"Dynamic content recommendations based on learning style and performance","owly.cta.title":"Ready to Transform Your LMS?","owly.cta.description":"Discover how Owly can revolutionize your learning management system with the power of AI.","owly.cta.demo":"Request Demo","owly.cta.solutions":"View All Solutions","ai_banner.title":"Still not sure if Aulasneo is right for you?","ai_banner.description":"Let ChatGPT, Claude, or Perplexity do the thinking for you. Click a button and see what your favorite AI says about Aulasneo.","ai_banner.ask_chatgpt":"Ask ChatGPT","ai_banner.ask_claude":"Ask Claude","ai_banner.ask_perplexity":"Ask Perplexity","ai_banner.lang":"en","panorama.title":"Panorama - Learning Analytics Platform | Multi-LMS Analytics","panorama.description":"Panorama delivers comprehensive learning analytics across multiple LMS platforms. Monitor student performance, engagement, and learning outcomes with advanced analytics.","panorama.hero.title":"Panorama: Multi-LMS Learning Analytics & Student Performance Insights","panorama.hero.description":"Advanced multi-LMS learner analytics platform that provides comprehensive insights into student performance, engagement, and learning outcomes across multiple platforms including","panorama.hero.openedx.link":"Open edX","panorama.hero.owly.link":"Owly AI agent","panorama.hero.description2":"and other LMS solutions enhanced by","panorama.feature1.title":"Cross-Platform Integration","panorama.feature1.desc":"Connect multiple LMS platforms and educational tools in one unified dashboard","panorama.feature2.title":"Learning Metrics","panorama.feature2.desc":"Monitor student performance and engagement with live data updates","panorama.feature3.title":"Custom Dashboards","panorama.feature3.desc":"Create personalized dashboards for different roles and requirements","panorama.feature4.title":"AI-Powered Insights","panorama.feature4.desc":"Machine learning algorithms provide predictive analytics and recommendations","panorama.challenge.title":"LMS Analytics Challenges: Fragmented Data & Limited Insights","panorama.challenge.intro":"LMSs Analytics have been a challenge for many organizations for a long time. While many analytics tools focu
163s on course-centric insights, real-world applications demand a broader perspective.","panorama.challenge.problem1":"Limited cross-platform visibility","panorama.challenge.problem2":"Fragmented data sources","panorama.challenge.problem3":"Lack of actionable insights","panorama.challenge.solution1":"Unified multi-LMS dashboard","panorama.challenge.solution2":"Real-time data synchronization","panorama.challenge.solution3":"AI-powered predictive analytics","panorama.challenge.conclusion":"PANORAMA revolutionizes LMS Analytics with a customizable, multi-platform approach that provides comprehensive insights for all stakeholders.","panorama.roles.title":"Comprehensive Learning Analytics for Every Educational Role","panorama.role.student.title":"Student View","panorama.role.student.desc":"Personal dashboard with progress tracking, grades, certificates, and learning analytics","panorama.role.instructor.title":"Instructor View","panorama.role.instructor.desc":"Course analytics, student performance insights, and engagement metrics","panorama.role.admin.title":"Administrator View","panorama.role.admin.desc":"Platform-wide analytics, user management, and system performance monitoring","panorama.role.executive.title":"Executive View","panorama.role.executive.desc":"High-level KPIs, ROI metrics, and strategic decision-making insights","panorama.role.partner.title":"Partner View","panorama.role.partner.desc":"Collaborative analytics for multi-organizational learning initiatives","panorama.role.scientist.title":"Data Scientist View","panorama.role.scientist.desc":"Advanced analytics, custom queries, and machine learning model insights","panorama.technical.title":"Technical Excellence","panorama.technical.intro":"Built on Amazon AWS's serverless components, PANORAMA boasts superior performance and scalability","panorama.technical.speed.title":"Speed","panorama.technical.speed.desc":"Deploy in minutes with serverless architecture","panorama.technical.simplicity.title":"Simplicity","panorama.technical.simplicity.desc":"No coding or Open edX modifications required","panorama.technical.scalability.title":"Scalability","panorama.technical.scalability.desc":"Global integration across multiple instances","panorama.technical.security.title":"Security","panorama.technical.security.desc":"Enhanced data access control and IAM security","panorama.institutions.title":"For Educational Institutions","panorama.institutions.feature1.title":"Holistic Student Insights","panorama.institutions.feature1.desc":"Comprehensive data from enrollment to performance metrics","panorama.institutions.feature2.title":"Degree-Centric Tracking","panorama.institutions.feature2.desc":"Monitor student performance across entire degree programs","panorama.institutions.feature3.title":"Predictive Analytics","panorama.institutions.feature3.desc":"Identify at-risk students and intervention opportunities","panorama.training.title":"For Training Organizations","panorama.training.feature1.title":"Revenue Analytics","panorama.training.feature1.desc":"Track course popularity and revenue generation","panorama.training.feature2.title":"Learner Engagement","panorama.training.feature2.desc":"Measure and improve learner participation and completion","panorama.training.feature3.title":"ROI Tracking","panorama.training.feature3.desc":"Measure training effectiveness and business impact","panorama.cta.title":"Experience Panorama Today","panorama.cta.description":"Tell us about your learning platform and we will show you how Panorama turns your data into actionable insights and strategic decisions.","panorama.cta.demo":"Request a demo","common.get.started":"Get Started","common.learn.more":"Learn More","common.contact.us":"Contact Us","common.readTime":"min read","common.backToTop":"Back to Top","common.mostPopular":"Most Popular","common.free":"Free","common.month":"/month","common.year":"/year","common.monthly":"Monthly","common.annual":"Annual"},es:{"nav.home":"Inicio","nav.about":"Nosotros","nav.solutions":"Soluciones","nav.pricing":"Precios","nav.caseStudies":"Casos de éxito","nav.blog":"Blog","nav.contact":"Contacto","hero.title":"Transforme la Educación con Soluciones LMS Impulsadas por IA","hero.subtitle":"Aulasneo es una empresa EdTech global especializada en soluciones innovadoras para el aprendizaje en línea. Con experiencia en tecnologías LMS de código abierto e integraciones de IA, ofrecemos plataformas escalables y personalizadas que ayudan a organizaciones e instituciones educativas de todo el mund
163o a lograr resultados de aprendizaje impactantes.","hero.cta.primary":"Explorar Soluciones","hero.cta.secondary":"Comenzar","clients.title":"Confianza de Organizaciones Líderes","clients.subtitle":"Únete a instituciones prestigiosas que confían en Aulasneo para sus soluciones de aprendizaje","solutions.title":"Nuestras Soluciones","solutions.subtitle":"Empoderamos a las organizaciones para hacer realidad proyectos de aprendizaje en línea con soluciones innovadoras y escalables que impulsan resultados educativos reales.","solutions.owly":"Owly – Agente de IA para LMS","solutions.owly.description":"Agente de IA revolucionario que transforma la forma en que educadores y estudiantes interactúan con plataformas LMS. Owly proporciona asistencia inteligente, flujos de trabajo automatizados y experiencias de aprendizaje personalizadas.","solutions.openedx":"Open edX LMS","solutions.openedx.description":"Servicios integrales de alojamiento y personalización de Open edX. Desde la configuración hasta el escalado, manejamos todo para que pueda concentrarse en crear experiencias de aprendizaje increíbles.","solutions.panorama":"Panorama Analytics","solutions.panorama.description":"Plataforma avanzada de análisis de estudiantes multi-LMS que proporciona insights integrales sobre el rendimiento estudiantil, compromiso y resultados de aprendizaje en múltiples plataformas.","solutions.learnMore":"Saber Más","solutions.custom.title":"¿Necesita una Solución Personalizada?","solutions.custom.subtitle":"Cada organización tiene necesidades únicas. Ofrecemos servicios de desarrollo personalizado para crear soluciones adaptadas que se ajusten perfectamente a sus requisitos.","solutions.custom.button":"Discutir Su Proyecto","mission.title":"Nuestra Misión","mission.subtitle":"En Aulasneo, visualizamos un mundo donde la educación de calidad sea accesible para todos, en todas partes. Aprovechamos la tecnología de IA de vanguardia para crear experiencias de aprendizaje personalizadas y escalables que se adaptan a las necesidades únicas y el ritmo de cada estudiante.","cta.title":"¿Listo para Transformar Su Experiencia de Aprendizaje?","cta.subtitle":"Únase a miles de organizaciones en todo el mund
163o que confían en Aulasneo para sus necesidades de tecnología educativa.","cta.button":"Comenzar Hoy","footer.company":"Plataformas de aprendizaje con motor Open edX.","footer.solutions":"Soluciones","footer.resources":"Recursos","footer.company.title":"Empresa","footer.blog":"Blog","footer.caseStudies":"Casos de éxito","footer.documentation":"Documentación","footer.support":"Soporte","footer.pricing":"Precios","footer.aboutUs":"Nosotros","footer.contact":"Contacto","footer.privacy":"Política de Privacidad","footer.terms":"Términos de Servicio","footer.copyright":"© 2025 Aulasneo. Todos los derechos reservados. | Empoderando la educación a través de tecnología innovadora.","about.title":"Sobre Aulasneo","about.subtitle":"Liderando el futuro de la tecnología educativa con soluciones innovadoras impulsadas por IA.","blog.title":"Blog","blog.subtitle":"Perspectivas, actualizaciones y liderazgo de pensamiento en tecnología educativa.","blog.readMore":"Leer Más","contact.title":"Contáctanos","contact.subtitle":"¿Listo para transformar su experiencia de aprendizaje? Póngase en contacto con nuestro equipo.","pricing.title":"Elija Su Plan","pricing.subtitle":"Seleccione la solución perfecta para sus necesidades educativas. Precios flexibles para cada institución.","pricing.custom.title":"¿Necesita una Solución Personalizada?","pricing.custom.subtitle":"Contacte a nuestro equipo para discutir sus requisitos específicos y obtener una cotización personalizada.","pricing.contact.sales":"Contactar Ventas","owly.title":"Owly: agente de IA para LMS | Tutoría, cursos y automatización","owly.description":"Owly es un agente de IA que trabaja dentro de tu LMS: tutoría 24/7 para estudiantes, creación de cursos con IA para docentes e inscripciones automáticas. Pedí una demo.","owly.hero.title":"Conoce a Owly: Tu Agente de IA para LMS","owly.hero.description":"Agente de IA revolucionario que transforma la forma en que educadores y estudiantes interactúan con plataformas LMS. Owly proporciona asistencia inteligente, flujos de trabajo automatizados y experiencias de aprendizaje personalizadas mejoradas por análisis de aprendizaje.","owly.hero.cta":"Más información en GetOwly.ai","owly.demo.title":"Ve a Owly en Acción","owly.demo.description":"Observa cómo Owly transforma la experiencia de aprendizaje","owly.features.title1":"Recomendaciones Inteligentes","owly.features.desc1":"Recomendaciones de contenido impulsadas por IA basadas en patrones y preferencias de aprendizaje","owly.features.title2":"Flujos de Trabajo Automatizados","owly.features.desc2":"Agiliza tareas administrativas y reduce la carga de trabajo manual para educadores","owly.features.title3":"Soporte 24/7","owly.features.desc3":"Asistencia inteligente las 24 horas para estudiantes y educadores","owly.features.title4":"Análisis Avanzados","owly.features.desc4":"Perspectivas profundas sobre patrones de aprendizaje y métricas de rendimiento","owly.howworks.title":"Cómo Funciona Owly","owly.howworks.step1.title":"Integrar","owly.howworks.step1.desc":"Se integra perfectamente con tu plataforma LMS existente sin interrumpir los flujos de trabajo actuales.","owly.howworks.step2.title":"Interactuar","owly.howworks.step2.desc":"¡Todos los usuarios (estudiantes, profesores, operadores y más!) pueden interactuar con Owly.","owly.howworks.step3.title":"Mejora tu experiencia de aprendizaje","owly.howworks.step3.desc":"Ahorra tiempo, obtén perspectivas detalladas y soporte, y crea sesiones de aprendizaje enriquecedoras.","owly.educators.title":"Para Educadores","owly.educators.feature1.title":"Creación de cursos","owly.educators.feature1.desc":"Creación de cursos completa o parcial. Mantén el control, acelera la velocidad.","owly.educators.feature2.title":"Curación de Contenido","owly.educators.feature2.desc":"Recomendaciones y organización de contenido impulsadas por IA","owly.educators.feature3.title":"Perspectivas de Estudiantes","owly.educators.feature3.desc":"Análisis detallados sobre el rendimiento y compromiso de estudiantes","owly.admins.title":"Para Administradores y Operadores","owly.admins.feature1.title":"Eficiencia Administrativa","owly.admins.feature1.desc":"Agiliza las operaciones diarias con automatización inteligente","owly.admins.feature2.title":"Integración de Sistemas","owly.admins.feature2.desc":"Integración perfecta con sistemas institucionales existentes","owly.admins.feature3.title":"Perspectivas Operacionales","owly.admins.feature3.desc":"Análisis integral para toma de decisiones informada","owly.students.title":"Para 
163Estudiantes","owly.students.feature1.title":"Aprendizaje Personalizado","owly.students.feature1.desc":"Rutas de aprendizaje adaptadas al progreso y preferencias individuales","owly.students.feature2.title":"Tutoría Inteligente","owly.students.feature2.desc":"Asistencia 24/7 impulsada por IA para preguntas y apoyo de aprendizaje","owly.students.feature3.title":"Contenido Adaptativo","owly.students.feature3.desc":"Recomendaciones de contenido dinámicas basadas en estilo de aprendizaje y rendimiento","owly.cta.title":"¿Listo para Transformar Tu LMS?","owly.cta.description":"Descubre cómo Owly puede revolucionar tu sistema de gestión de aprendizaje con el poder de la IA.","owly.cta.demo":"Solicitar Demo","owly.cta.solutions":"Ver Todas las Soluciones","ai_banner.title":"¿Aún no estás seguro si Aulasneo es adecuado para ti?","ai_banner.description":"Deja que ChatGPT, Claude o Perplexity piensen por ti. Haz clic en un botón y mira lo que tu IA favorita dice sobre Aulasneo.","ai_banner.ask_chatgpt":"Preguntar a ChatGPT","ai_banner.ask_claude":"Preguntar a Claude","ai_banner.ask_perplexity":"Preguntar a Perplexity","ai_banner.lang":"es","panorama.title":"Panorama - Plataforma de Análisis de Aprendizaje | Análisis Multi-LMS","panorama.description":"Panorama ofrece análisis de aprendizaje integral en múltiples plataformas LMS. Monitorea el rendimiento estudiantil, compromiso y resultados de aprendizaje con análisis avanzados.","panorama.hero.title":"Panorama: Análisis de Aprendizaje Multi-LMS e Insights de Rendimiento Estudiantil","panorama.hero.description":"Plataforma avanzada de análisis de estudiantes multi-LMS que proporciona insights integrales sobre el rendimiento estudiantil, compromiso y resultados de aprendizaje en múltiples plataformas incluyendo","panorama.hero.openedx.link":"Open edX","panorama.hero.owly.link":"agente de IA Owly","panorama.hero.description2":"y otras soluciones LMS mejoradas por","panorama.feature1.title":"Integración Multiplataforma","panorama.feature1.desc":"Conecta múltiples plataformas LMS y herramientas educativas en un panel unificado","panorama.feature2.title":"Métricas de Aprendizaje","panorama.feature2.desc":"Monitorea el rendimiento y compromiso estudiantil con actualizaciones de datos en vivo","panorama.feature3.title":"Paneles Personalizados","panorama.feature3.desc":"Crea paneles personalizados para diferentes roles y requisitos","panorama.feature4.title":"Insights Impulsados por IA","panorama.feature4.desc":"Algoritmos de aprendizaje automático proporcionan análisis predictivos y recomendaciones","panorama.challenge.title":"Desafíos de Análisis LMS: Datos Fragmentados e Insights Limitados","panorama.challenge.intro":"Los análisis de LMS han sido un desafío para muchas organizaciones durante mucho tiempo. Mientras muchas herramientas de análisis se centran en insights centrados en cursos, las aplicaciones del mundo real demandan una perspectiva más amplia.","panorama.challenge.problem1":"Visibilidad multiplataforma limitada","panorama.challenge.problem2":"Fuentes de datos fragmentadas","panorama.challenge.problem3":"Falta de insights accionables","panorama.challenge.solution1":"Panel multi-LMS unificado","panorama.challenge.solution2":"Sincronización de datos en tiempo real","panorama.challenge.solution3":"Análisis predictivos impulsados por IA","panorama.challenge.conclusion":"PANORAMA revoluciona el Análisis LMS con un enfoque personalizable y multiplataforma que proporciona insights integrales para todas las partes interesadas.","panorama.roles.title":"Análisis de Aprendizaje Integral para Cada Rol Educativo","panorama.role.student.title":"Vista de Estudiante","panorama.role.student.desc":"Panel personal con seguimiento de progreso, calificaciones, certificados y análisis de aprendizaje","panorama.role.instructor.title":"Vista de Instructor","panorama.role.instructor.desc":"Análisis de cursos, insights de rendimiento estudiantil y métricas de compromiso","panorama.role.admin.title":"Vista de Administrador","panorama.role.admin.desc":"Análisis de toda la plataforma, gestión de usuarios y monitoreo de rendimiento del sistema","panorama.role.executive.title":"Vista Ejecutiva","panorama.role.executive.desc":"KPIs de alto nivel, métricas de ROI e insights para toma de decisiones estratég
163icas","panorama.role.partner.title":"Vista de Socio","panorama.role.partner.desc":"Análisis colaborativos para iniciativas de aprendizaje multi-organizacionales","panorama.role.scientist.title":"Vista de Científico de Datos","panorama.role.scientist.desc":"Análisis avanzados, consultas personalizadas e insights de modelos de aprendizaje automático","panorama.technical.title":"Excelencia Técnica","panorama.technical.intro":"Construido sobre componentes serverless de Amazon AWS, PANORAMA cuenta con rendimiento y escalabilidad superiores","panorama.technical.speed.title":"Velocidad","panorama.technical.speed.desc":"Despliega en minutos con arquitectura serverless","panorama.technical.simplicity.title":"Simplicidad","panorama.technical.simplicity.desc":"No requiere codificación ni modificaciones de Open edX","panorama.technical.scalability.title":"Escalabilidad","panorama.technical.scalability.desc":"Integración global en múltiples instancias","panorama.technical.security.title":"Seguridad","panorama.technical.security.desc":"Control de acceso a datos mejorado y seguridad IAM","panorama.institutions.title":"Para Instituciones Educativas","panorama.institutions.feature1.title":"Insights Holísticos de Estudiantes","panorama.institutions.feature1.desc":"Datos integrales desde la inscripción hasta las métricas de rendimiento","panorama.institutions.feature2.title":"Seguimiento Centrado en Títulos","panorama.institutions.feature2.desc":"Monitorea el rendimiento estudiantil en programas de grado completos","panorama.institutions.feature3.title":"Análisis Predictivos","panorama.institutions.feature3.desc":"Identifica estudiantes en riesgo y oportunidades de intervención","panorama.training.title":"Para Organizaciones de Capacitación","panorama.training.feature1.title":"Análisis de Ingresos","panorama.training.feature1.desc":"Rastrea la popularidad de cursos y generación de ingresos","panorama.training.feature2.title":"Compromiso del Estudiante","panorama.training.feature2.desc":"Mide y mejora la participación y finalización del estudiante","panorama.training.feature3.title":"Seguimiento de ROI","panorama.training.feature3.desc":"Mide la efectividad de la capacitación y el impacto empresarial","panorama.cta.title":"Conocé Panorama","panorama.cta.description":"Contanos sobre tu plataforma de aprendizaje y te mostramos cómo Panorama convierte tus datos en insights accionables y decisiones estratégicas.","panorama.cta.demo":"Pedí una demo","common.get.started":"Comenzar","common.learn.more":"Saber Más","common.contact.us":"Contáctanos","common.readTime":"min de lectura","common.backToTop":"Volver Arriba","common.mostPopular":"Más Popular","common.free":"Gratis","common.month":"/mes","common.year":"/año","common.monthly":"Mensual","common.annual":"Anual"}};function Ju(e){return e==="/es"||e.startsWith("/es/")}function Z2({children:e,initialLanguage:n}){const[a]=Jt(),[s,o]=v.useState(()=>{if(n)return n;if(typeof window<"u"){const l=window.location.pathname;if(Ju(l))return"es";if(Zu(l))return"en"}return"en"});v.useEffect(()=>{if(Ju(a)){o("es");return}if(Zu(a)){o("en");return}const l=localStorage.getItem("language");if(l&&(l==="en"||l==="es"))o(l);else{const c=navigator.language.toLowerCase();o(c.startsWith("es")?"es":"en")}},[a]);const r=l=>{o(l),localStorage.setItem("language",l)},i=l=>K2[s][l]||l;return t.jsx(Mg.Provider,{value:{language:s,setLanguage:r,t:i},children:e})}function J(){const e=v.useContext(Mg);if(e===void 0)throw new Error("useLanguage must be used within a LanguageProvider");return e}const J2=()=>{const e="G-ZCG559XGWD",n=document.createElement("script");n.async=!0,n.src=`https://www.googletagmanager.com/gtag/js?id=${e}`,document.head.appendChild(n);const a=document.createElement("script");a.textContent=`
164    window.dataLayer = window.dataLayer || [];
165    function gtag(){dataLayer.push(arguments);}
166    gtag('js', new Date());
167    gtag('config', '${e}');
168  `,document.head.appendChild(a)},e1=e=>{if(typeof window>"u"||!window.gtag)return;window.gtag("config","G-ZCG559XGWD",{page_path:e})},Ho=(e,n,a,s)=>{typeof window>"u"||!window.gtag||window.gtag("event",e,{event_category:n,event_label:a,value:s})},n1=()=>{const[e]=Jt(),n=v.useRef(e);v.useEffect(()=>{e!==n.current&&(e1(e),n.current=e)},[e])},ep={"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"};function t1(e,n){const a=[];return n!=null&&n.service&&a.push({id:"service-schema",data:{"@context":"https://schema.org","@type":"Service",name:n.service.name,provider:ep,serviceType:n.service.serviceType,areaServed:"Worldwide",url:n.service.url,description:n.service.description}}),n!=null&&n.software&&a.push({id:"software-schema",data:{"@context":"https://schema.org","@type":"SoftwareApplication","@id":n.softw
168are.url,name:n.software.name,applicationCategory:n.software.applicationCategory||"EducationalApplication",operatingSystem:"Web",provider:ep,url:n.software.url,description:n.software.description}}),e&&a.push(...e),n!=null&&n.faq&&n.faq.length>0&&a.push({id:"faq-schema",data:{"@context":"https://schema.org","@type":"FAQPage",mainEntity:n.faq.map(s=>({"@type":"Question",name:s.question,acceptedAnswer:{"@type":"Answer",text:s.answer}}))}}),a}function D({title:e,description:n,keywords:a,canonical:s,hreflangEs:o,hreflangEn:r,ogTitle:i,ogDescription:l,ogType:c="website",ogUrl:d,ogImage:u,ogImageAlt:p,ogImageWidth:m="1200",ogImageHeight:y="630",robots:b,rawSchemas:x,structuredData:j}){const{language:f}=J(),h=u??`https://aulasneo.com/images/og-aulasneo-${f==="es"?"es":"en"}.jpg`,g=p??(f==="es"?"Aulasneo: Open edX gestionado, IA y analítica de aprendizaje":"Aulasneo: managed Open edX, AI and learning analytics");return v.useEffect(()=>{document.documentElement.lang=f==="es"?"es":"en",document.title=e;const w=(P,H,M=!1)=>{const Q=M?`meta[property="${P}"]`:`meta[name="${P}"]`;let T=document.querySelector(Q);T||(T=document.createElement("meta"),M?T.setAttribute("property",P):T.setAttribute("name",P),document.head.appendChild(T)),T.setAttribute("content",H)},k=(P,H)=>{let M=document.querySelector(`link[rel="${P}"]`);M||(M=document.createElement("link"),M.setAttribute("rel",P),document.head.appendChild(M)),M.setAttribute("href",H)};w("description",n),a&&w("keywords",a),w("robots",b||"index, follow"),w("og:title",i||e,!0),w("og:description",l||n,!0),w("og:type",c,!0);const N=s||d;N&&w("og:url",N,!0),w("og:site_name","Aulasneo",!0),w("og:locale",f==="es"?"es_ES":"en_US",!0),w("og:image",h,!0),w("og:image:width",m,!0),w("og:image:height",y,!0),w("og:image:alt",g,!0),w("twitter:card","summary_large_image"),w("twitter:site","@aulasneo"),w("twitter:creator","@aulasneo"),w("twitter:title",i||e),w("twitter:description",l||n),w("twitter:image",h),w("twitter:image:alt",g),s&&k("canonical",s),w("language",f==="es"?"Spanish":"English");const S=(P,H)=>{let M=document.querySelector(`link[hreflang="${P}"]`);M||(M=document.createElement("link"),M.setAttribute("rel","alternate"),M.setAttribute("hreflang",P),document.head.appendChild(M)),M.setAttribute("href",H)},O=r||(f!=="es"?s:void 0),F=o||(f==="es"?s:void 0);O&&(S("en",O),S("x-default",O)),F&&S("es",F)},[e,n,a,s,o,r,i,l,c,d,h,g,m,y,b,f,x,j]),t.jsx(t.Fragment,{children:t1(x,j).map(({id:w,data:k})=>t.jsx("script",{id:w,type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(k)}},w))})}const a1="https://api.web3forms.com/submit",s1="5f16129f-ea8a-433c-bbe7-763a129a6b77",np="[email protected]";function Ig(e){const{language:n}=J(),[a,s]=v.useState("idle");return{status:a,submit:async(r,i)=>{s("submitting");const l=new FormData;l.append("access_key",s1),l.append("from_name","Aulasneo Website"),l.append("subject",`Nueva consulta desde aulasneo.com — ${i.name??""}`);for(const[d,u]of Object.entries(i))u&&l.append(d,u);l.append("form_location",e),l.append("language",n);const c=r.elements.namedItem("botcheck");c!=null&&c.checked&&l.append("botcheck","true");try{const d=await fetch(a1,{method:"POST",headers:{Accept:"application/json"},body:l}),u=await d.json().catch(()=>null);if(d.ok&&(u==null?void 0:u.success)===!0)return s("success"),typeof window.gtag=="function"&&window.gtag("event","generate_lead",{form_location:e,language:n}),!0;console.error("[contact] Web3Forms rejected the submission",d.status,u)}catch(d){console.error("[contact] Web3Forms request failed",d)}return s("error"),!1}}}function Lg(){return t.jsx("input",{type:"checkbox",name:"botcheck",tabIndex:-1,autoComplete:"off","aria-hidden":"true",style:{display:"none"}})}function Xg({className:e=""}){const{language:n}=J(),a=t.jsx("a",{href:`mailto:${np}`,className:"font-semibold underline",children:np});return t.jsx("div",{role:"alert",className:e,children:n==="es"?t.jsxs(t.Fragment,{children:["No pudimos enviar tu mensaje. Intentá de nuevo en unos minutos o escribinos a ",a,"."]}):t.jsxs(t.Fragment,{children:["We couldn't send your message. Please try again in a few minutes or email us at ",a,"."]})})}const o1=["University / Higher Education","Corporation / Company","NGO / Non-Profit","Government Agency","EdTech Startup","Other"],r1=["Universidad / Educación Superior","Empresa / Corporación","ONG / Sin fines de lucro","Organismo Gubernamental","Startup EdTech","Otro"];function i1({preselect:e}){const{language:n}=J(),a=n==="es",s=a?r1:o1,[o,r]=v.useState({nombre:"",email:"",organizacion:e||"",mensaje:""}),[i,l]=v.useState({}),{status:c,submit:d}=Ig("home"),u=x=>j=>r(f=>({...f,[x]:j.target.value})),p=()=>{const x={};return o.nombre.trim()||(x.nombre=a?"Este campo es obligatorio.":"This field is required."),(!o.email.trim()||!/\S+@\S+\.\S+/.test(o.email))&&(x.email=a?"Ingresá un email válido.":"Please enter a valid email."),o.organizacion||(x.organizacion=a?"Seleccioná el tipo de organización.":"Please select your organization type."),x},m=async x=>{x.preventDefault();const j=p();if(Object.keys(j).length>0){l(j);return}l({}),await d(x.currentTarget,{name:o.nombre,email:o.email,organization_type:o.organizacion,message:o.mensaje})&&r({nombre:"",email:"",organizacion:"",mensaje:""})},y="w-full px-3.5 py-2.5 border-[1.5px] border-[#cdcdcd] rounded-xl font-[Quicksand,system-ui,sans-serif] text-[0.95rem] bg-white text-[#1d1d1b] focus:outline-none focus:border-[#6f51b5] focus:shadow-[0_0_0_3px_rgba(111,81,181,0.18)] transition-all",b="block text-[0.83rem] font-bold text-[#062b60
168] mb-1 font-[Quicksand,system-ui,sans-serif]";return c==="success"?t.jsxs("div",{className:"text-center py-10 px-4",children:[t.jsxs("svg",{className:"mx-auto mb-4",width:"52",height:"52",viewBox:"0 0 52 52",fill:"none","aria-hidden":"true",children:[t.jsx("circle",{cx:"26",cy:"26",r:"26",fill:"#ef9245",opacity:"0.15"}),t.jsx("circle",{cx:"26",cy:"26",r:"20",fill:"#ef9245"}),t.jsx("path",{d:"M16 26l7 7 13-13",stroke:"#fff",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),t.jsx("h4",{className:"text-[1.15rem] font-bold text-[#062b60] mb-1 font-[Quicksand,system-ui,sans-serif]",children:a?"¡Consultoría reservada!":"Consultation booked!"}),t.jsx("p",{className:"text-[#4a5670] text-[0.92rem] font-[Quicksand,system-ui,sans-serif]",children:a?"Gracias. Nos ponemos en contacto dentro de las 24 horas.":"Thanks! We'll reach out within 24 hours."})]}):t.jsxs("form",{onSubmit:m,noValidate:!0,children:[t.jsx(Lg,{}),c==="error"&&t.jsx(Xg,{className:"mb-4 bg-red-50 border border-red-200 text-red-700 rounded-xl px-4 py-3 text-sm font-[Quicksand,system-ui,sans-serif]"}),t.jsxs("div",{className:"mb-[0.9rem]",children:[t.jsxs("label",{className:b,children:[a?"Nombre":"Name"," ",t.jsx("span",{className:"text-[#ef9245]",children:"*"})]}),t.jsx("input",{type:"text",value:o.nombre,onChange:u("nombre"),placeholder:a?"Tu nombre":"Your name",className:y,autoComplete:"name"}),i.nombre&&t.jsx("p",{className:"text-red-600 text-[0.8rem] font-semibold mt-1",children:i.nombre})]}),t.jsxs("div",{className:"mb-[0.9rem]",children:[t.jsxs("label",{className:b,children:[a?"Correo laboral":"Work email"," ",t.jsx("span",{className:"text-[#ef9245]",children:"*"})]}),t.jsx("input",{type:"email",value:o.email,onChange:u("email"),placeholder:a?"tu@organización.com":"[email protected]",className:y,autoComplete:"email"}),i.email&&t.jsx("p",{className:"text-red-600 text-[0.8rem] font-semibold mt-1",children:i.email})]}),t.jsxs("div",{className:"mb-[0.9rem]",children:[t.jsxs("label",{className:b,children:[a?"Tipo de organización":"Organization type"," ",t.jsx("span",{className:"text-[#ef9245]",children:"*"})]}),t.jsxs("select",{value:o.organizacion,onChange:u("organizacion"),className:y+" cursor-pointer",children:[t.jsx("option",{value:"",children:a?"Seleccioná una opción":"Select one"}),s.map(x=>t.jsx("option",{value:x,children:x},x))]}),i.organizacion&&t.jsx("p",{className:"text-red-600 text-[0.8rem] font-semibold mt-1",children:i.organizacion})]}),t.jsxs("div",{className:"mb-[0.9rem]",children:[t.jsx("label",{className:b,children:a?"Mensaje (opcional)":"Message (optional)"}),t.jsx("textarea",{value:o.mensaje,onChange:u("mensaje"),placeholder:a?"Contanos sobre tu proyecto, cantidad de usuarios, plazos...":"Tell us about your project — users, timeline, current platform...",rows:3,className:y+" resize-y min-h-[74px]"})]}),t.jsx("button",{type:"submit",disabled:c==="submitting",className:"w-full bg-[#ef9245] text-[#062b60] font-bold py-[0.9rem] px-[1.7rem] rounded-[999px] font-[Quicksand,system-ui,sans-serif] text-base hover:bg-[#faa95b] transition-all shadow-[0_8px_20px_rgba(239,146,69,0.4)] disabled:opacity-60 disabled:cursor-not-allowed hover:-translate-y-px",style:{marginTop:"0.3rem"},children:c==="submitting"?a?"Enviando...":"Sending...":a?"Quiero mi consultoría gratis":"Get my free consultation"}),t.jsx("p",{className:"text-center text-[0.76rem] text-[#4a5670] mt-[0.7rem] font-[Quicksand,system-ui,sans-serif]",children:a?"Sin spam. Sin compromiso. Respondemos en menos de 24 h.":"No spam. No commitment. We reply in under 24 h."})]})}const Ll=[{slug:"holcim-academy",client:"Holcim Academy",path:{en:"/holcim-academy-success-stories-with-aulasneo/",es:"/es/holcim-academy-casos-de-exito-con-aulasneo/"},poster:{en:"/media/case-studies/holcim-academy/holcim-case-en-poster.jpg",es:"/media/case-studies/holcim-academy/holcim-case-es-poster.jpg"},title:{en:"Holcim Academy: one platform, two audiences",es:"Holcim Academy: una plataforma, dos audiencias"},summary:{en:"Holcim, the Swiss building materials leader, wanted to share sustainable construction knowledge with professionals worldwide. Aulasneo built and runs the Holcim Sustainable Construction Academy on a managed Open edX platform that serves external professionals and Holcim employees in one place.",es:"Holcim, l
168íder suizo en materiales de construcción, quería compartir conocimiento sobre construcción sostenible con profesionales de todo el mundo. Aulasneo construyó y opera la Holcim Sustainable Construction Academy sobre una plataforma Open edX gestionada, que reúne en un mismo lugar a profesionales externos y a empleados de Holcim."}},{slug:"health-hive",client:"The Health Hive · University of Sydney",path:{en:"/health-hive-success-stories-with-aulasneo/",es:"/es/health-hive-casos-de-exito-con-aulasneo/"},poster:{en:"/media/case-studies/health-hive/health-hive-video-poster.jpg",es:"/media/case-studies/health-hive/health-hive-video-poster.jpg"},title:{en:"The Health Hive: where young minds shape health research",es:"The Health Hive: donde las mentes jóvenes dan forma a la investigación en salud"},summary:{en:"How Aulasneo built a free, open-access Open edX platform in The Health Hive’s own identity, so young people can learn to take part in the health research that affects their lives, and researchers can learn from them.",es:"Cómo Aulasneo desarrolló una plataforma Open edX gratuita y de acceso abierto, con la propia identidad de The Health Hive, para que los jóvenes aprendan a participar en la investigación en salud que afecta sus vidas, y para que los investigadores aprendan de ellos."}},{slug:"cap-net",client:"Cap-Net UNDP",path:{en:"/cap-net-success-stories-with-aulasneo/",es:"/es/cap-net-casos-de-exito-con-aulasneo/"},poster:{en:"/media/case-studies/cap-net/capnet-video-poster-en.jpg",es:"/media/case-studies/cap-net/capnet-video-poster-es.jpg"},title:{en:"Cap-Net: water knowledge, global reach",es:"Cap-Net: conocimiento sobre el agua, con alcance global"},summary:{en:"How a dedicated Open edX campus, running on AWS infrastructure with Panorama learning analytics, supported the evolution of an established learning initiative and helped bring water-management capacity development to professionals around the world.",es:"Cómo un campus Open edX dedicado, sobre infraestructura AWS y con analítica de aprendizaje Panorama, acompañó la evolución de una iniciativa de formación consolidada para llevar el desarrollo de capacidades en gestión del agua a profesionales de todo el mund
168o."}},{slug:"aie-arg",client:"AIE ARG",path:{en:"/aie-arg-success-stories-with-aulasneo/",es:"/es/aie-arg-casos-de-exito-con-aulasneo/"},poster:{en:"/media/case-studies/aie-arg/aie-arg-poster-en.jpg",es:"/media/case-studies/aie-arg/aie-arg-poster-es.jpg"},title:{en:"From one auditorium in Buenos Aires to learners across Argentina",es:"De un auditorio en Buenos Aires a toda la Argentina"},summary:{en:"For years, AIE ARG (Asociación de Ingenieros Estructurales de la Argentina) brought structural engineers together for two-day, in-person training in Buenos Aires. With a dedicated virtual campus built by Aulasneo, it kept the in-person sessions and brought live training to colleagues across the country. When COVID-19 arrived, the campus was already there, ready to adapt.",es:"Durante años, la Asociación de Ingenieros Estructurales de la Argentina (AIE ARG) reunió a ingenieros en capacitaciones presenciales de dos días en Buenos Aires. Con un campus virtual propio, desarrollado por Aulasneo, mantuvo el encuentro presencial y llevó la formación en vivo a colegas de todo el país. Cuando llegó el COVID-19, el campus ya estaba listo para adaptarse."}},{slug:"icdeba",client:"ICdeBA",path:{en:"/icdeba-success-stories-with-aulasneo/",es:"/es/icdeba-casos-de-exito-con-aulasneo/"},poster:{en:"/media/case-studies/icdeba/icdeba-video-poster-en.jpg",es:"/media/case-studies/icdeba/icdeba-video-poster-es.jpg"},title:{en:"ICdeBA: 75 courses. One week.",es:"ICdeBA: 75 cursos. Una semana."},summary:{en:"When lockdown closed classrooms in March 2020, ICdeBA needed to bring its psychoanalytic training online without losing the academic year. Working with Aulasneo, it launched a virtual campus with all 75 of its courses in one week, and built a foundation for continued growth.",es:"Cuando el confinamiento cerró las aulas en marzo de 2020, ICdeBA necesitaba llevar su formación psicoanalítica a la modalidad virtual, sin perder el año académico. En una semana, junto a Aulasneo, puso en marcha un campus virtual con sus 75 cursos, y sentó las bases para seguir creciendo."}},{slug:"ceef",client:"CEEF",path:{en:"/ceef-success-stories-with-aulasneo/",es:"/es/ceef-casos-de-exito-con-aulasneo/"},poster:{en:"/media/case-studies/ceef/ceef-case-en-poster.jpg",es:"/media/case-studies/ceef/ceef-case-es-poster.jpg"},title:{en:"CEEF: learning that keeps moving",es:"CEEF: aprendizaje en movimiento"},summary:{en:"CEEF provides professional education in physical education and sports training. It first moved from mailed textbooks to a virtual campus powered by Open edX; then, when the March 2020 lockdown closed classrooms, it added live classes on the same campus. Teaching never stopped.",es:"CEEF forma profesionales en educación física y entrenamiento deportivo. Primero pasó de los libros enviados por correo a un campus virtual con Open edX; después, cuando el confinamiento de marzo de 2020 cerró las aulas, sumó clases en vivo en el mismo campus. La enseñanza nunca se detuvo."}}];function eo({limit:e,headingLevel:n="h2",slugs:a,lang:s}){const{language:o}=J(),r=s??(o==="es"?"es":"en"),i=n,l=a?a.map(d=>Ll.find(u=>u.slug===d)).filter(d=>d!==void 0):Ll,c=e?l.slice(0,e):l;return t.jsx("ul",{className:"grid gap-8 sm:grid-cols-2 lg:grid-cols-3",children:c.map(d=>t.jsx("li",{children:t.jsxs(E,{href:d.path[r],className:"group flex h-full flex-col overflow-hidden rounded-2xl bg-white shadow-[0_18px_44px_rgba(6,43,96,0.12)] transition-transform hover:-translate-y-1",children:[t.jsx("img",{src:d.poster[r],alt:"",width:640,height:360,loading:"lazy",className:"aspect-video w-full object-cover"}),t.jsxs("div",{className:"flex flex-1 flex-col p-6",children:[t.jsx("p",{className:"text-xs font-bold uppercase tracking-[0.12em] text-[#24497F] font-quicksand mb-2",children:d.client}),t.jsx(i,{className:"text-xl font-bold leading-snug text-dark-blue font-quicksand mb-3",children:d.title[r]}),t.jsx("p",{className:"text-sm text-gray-600 font-quicksand line-clamp-4 mb-5",children:d.summary[r]}),t.jsx("span",{className:"mt-auto font-semibold text-[#4E359E] font-quicksand group-hover:underline",children:r==="es"?"Ver el c
168aso →":"Read the story →"})]})]})},d.slug))})}const Kc="text-[#4e359e] hover:text-[#062b60] underline transition-colors";function q({href:e,children:n}){return t.jsx(E,{href:e,className:Kc,children:n})}function $({children:e}){return t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:e})}function Y({children:e}){return t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4 mb-8",children:e})}function L({title:e,children:n}){return t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:e}),t.jsx("div",{className:"text-gray-700 font-quicksand space-y-3",children:n})]})}function Zc({label:e,children:n}){return t.jsxs("div",{className:"rounded-2xl border-l-4 border-[#ef9245] bg-[#fff7ef] p-6 mb-8 font-quicksand text-gray-800",children:[t.jsx("p",{className:"font-bold text-[#062b60] mb-2",children:e}),t.jsx("p",{children:n})]})}function _g({title:e,items:n}){return t.jsxs("nav",{className:"bg-gray-50 border border-gray-200 rounded-2xl p-6 mb-10",children:[t.jsx("p",{className:"font-bold text-[#062b60] font-quicksand mb-3",children:e}),t.jsx("ol",{className:"space-y-1.5 list-decimal list-inside",children:n.map(a=>t.jsx("li",{children:t.jsx("a",{href:`#${a.id}`,className:"text-[#4e359e] hover:text-[#062b60] font-quicksand text-sm transition-colors",children:a.label})},a.id))})]})}function Va({items:e}){return t.jsx("div",{className:"space-y-4 mb-6",children:e.map(n=>t.jsxs("details",{className:"group rounded-2xl border border-gray-200 bg-white p-5 font-quicksand",children:[t.jsxs("summary",{className:"cursor-pointer list-none font-bold text-[#062b60] flex justify-between gap-4",children:[n.question,t.jsx("span",{className:"text-[#ef9245] transition-transform group-open:rotate-45","aria-hidden":"true",children:"+"})]}),t.jsx("p",{className:"mt-3 text-gray-700",children:n.answer})]},n.question))})}function Fg({headers:e,rows:n}){return t.jsxs(t.Fragment,{children:[t.jsx("dl",{className:"md:hidden space-y-3 font-quicksand text-sm",children:n.map(([a,s,o])=>t.jsxs("div",{className:"rounded-xl border border-gray-100 bg-gray-50 p-4",children:[t.jsx("dt",{className:"font-bold text-[#062b60] mb-2",children:a}),t.jsxs("dd",{className:"text-gray-600",children:[t.jsxs("span",{className:"font-semibold text-gray-800",children:[e[1],":"]})," ",s]}),t.jsxs("dd",{className:"text-gray-600 mt-1",children:[t.jsxs("span",{className:"font-semibold text-gray-800",children:[e[2],":"]})," ",o]})]},a))}),t.jsx("div",{className:"hidden md:block overflow-x-auto",children:t.jsxs("table",{className:"w-full font-quicksand text-sm border-collapse",children:[t.jsx("thead",{children:t.jsxs("tr",{className:"bg-[#062b60] text-white",children:[t.jsx("th",{className:"text-left px-4 py-3 rounded-tl-xl",children:e[0]}),t.jsx("th",{className:"text-left px-4 py-3",children:e[1]}),t.jsx("th",{className:"text-left px-4 py-3 rounded-tr-xl",children:e[2]})]})}),t.jsx("tbody",{children:n.map(([a,s,o],r)=>t.jsxs("tr",{className:r%2===0?"bg-white":"bg-gray-50",children:[t.jsx("td",{className:"px-4 py-3 font-semibold text-[#062b60] border-b border-gray-100",children:a}),t.jsx("td",{className:"px-4 py-3 text-gray-600 border-b border-gray-100",children:s}),t.jsx("td",{className:"px-4 py-3 text-gray-600 border-b border-gray-100",children:o})]},a))})]})})]})}function Jc({href:e,children:n}){return t.jsx("div",{className:"text-center py-4",children:t.jsx(E,{href:e,className:"inline-block bg-[#ef9245] text-white px-10 py-4 rounded-xl font-semibold font-quicksand hover:bg-[#e07c30] transition-colors shadow-lg text-lg",children:n})})}const oe="#062b60",fe="#6f51b5",ze="#ef9245",l1={seo:{title:"Aulasneo · Open edX Managed Platform | Live in 24 Hours",description:"Fully managed Open edX platform for universities, corporations and NGOs. Infrastructure, updates, security and support included — live in 24 hours. Official Open edX provider."},hero:{eyebrow:"Open edX Managed Platform",h1Part1:"Your learning platform,",h1Highlight:"fully managed",h1Part2:" — live in 24 hours.",sub:"We take care of the infrastru
168cture so your team can focus on what matters: creating great learning experiences.",chips:["✔ 10+ years in Open edX","✔ 100+ projects in 40+ countries","✔ High-availability SLA"],timelineTitle:"Your go-live timeline:",timeline:[{day:"Day 1",label:"Kick-off & setup"},{day:"Day 2",label:"Custom domain live"},{day:"Day 3",label:"First course published"}],formTitle:"Get a free consultation",formSub:"We reply within 24 hours — no commitment."},logos:{label:"Trusted by leading organizations worldwide"},segments:{eyebrow:"Who we serve",title:"Solutions for every type of organization",cards:[{title:"Universities & Higher Ed",desc:"Accredited programs, multi-campus deployments, SSO, LTI and advanced analytics.",cta:"I'm a university",preselect:"University / Higher Education"},{title:"Corporations & Companies",desc:"Employee training, compliance programs and certifications — at any scale.",cta:"I'm a corporation",preselect:"Corporation / Company"},{title:"NGOs & Government",desc:"Impact-driven learning programs with flexible, mission-aligned licensing.",cta:"I'm an NGO / Gov",preselect:"NGO / Non-Profit"}]},engine:{pill:"Powered by Open edX®",facts:["20 M+ registered learners on the platform","Used by MIT, Harvard, UNICEF and 50+ institutions","100% open source — 100% under your control"]},included:{eyebrow:"What's included",title:"Everything your platform needs — managed for you",items:[{title:"Managed hosting",desc:"AWS / GCP infrastru
168cture with auto-scaling."},{title:"Always up to date",desc:"Latest Open edX release, always deployed for you."},{title:"Security & backups",desc:"Daily backups, SSL, and 24/7 monitoring."},{title:"Custom branding",desc:"Your logo, your colors, your domain."},{title:"Integrations",desc:"LTI, xAPI, SCORM, Zoom, SSO and more."},{title:"Analytics",desc:"Learner progress dashboards included."}]},howItWorks:{eyebrow:"How it works",title:"From sign-up to live platform in 3 steps",steps:[{num:"01",title:"We configure your platform",desc:"We set up Open edX on your domain with your branding in less than 24 hours."},{num:"02",title:"You create your courses",desc:"Your team uploads content using Open edX Studio — no coding required."},{num:"03",title:"We handle the rest",desc:"Hosting, updates, support and monitoring — all taken care of by our team."}]},proof:{eyebrow:"Results",title:"Trusted by institutions worldwide",stats:[{value:"100+",label:"Projects in 40+ countries"},{value:"10+",label:"Years managing Open edX"},{value:"1M",label:"Learners reached"},{value:"24 h",label:"Average go-live time"}]},cases:{eyebrow:"Success stories",title:"Organizations learning at scale with Aulasneo",cta:"See all success stories",href:"/case-studies/"},compare:{eyebrow:"Why Aulasneo",title:"Stop managing infrastructure. Start delivering learning.",lose:{heading:"❌ Without Aulasneo",items:["DevOps team required","Weeks of setup","You handle all updates","Security is your problem","Costly unexpected downtime"]},win:{heading:"✅ With Aulasneo",items:["No technical team needed","Live in 24 hours","We handle all updates","Security included","High availability, backed by an SLA"]}},topics:{eyebrow:"Learn more",title:"Guides on the topics we work on every day",items:[{title:"Open edX",text:"What the platform is, how it works and who uses it.",guide:{href:"/blog/what-is-open-edx-overview-features-benefits/",label:"What is Open edX?"},service:{href:"/solutions/openedx/",label:"Managed Open edX"}},{title:"Choosing an LMS",text:"What a learning management system does and how to pick one.",guide:{href:"/blog/what-is-a-learning-management-system/",label:"What is an LMS?"},service:{href:"/solutions/",label:"Our solutions"}},{title:"AI in education",text:"How AI agents help students, educators and administrators.",guide:{href:"/blog/building-owly-ai-agent-for-education/",label:"Building Owly, an AI agent"},service:{href:"/solutions/owly/",label:"Owly"}},{title:"Learning analytics",text:"Turning Open edX data into better courses and decisions.",guide:{href:"/blog/open-edx-analytics-guide/",label:"Open edX analytics guide"},service:{href:"/solutions/panorama/",label:"Panorama"}},{title:"Infrastructure",text:"Hosting, upgrades, security and scaling of Open edX.",guide:{href:"/blog/open-edx-migration-lessons-learned/",label:"Open edX migration: lessons learned"},service:{href:"/open-edx-hosting/",label:"Open edX hosting"}}],all:{href:"/blog/",label:"All articles"}},faq:{eyebrow:"FAQ",title:"Frequently asked questions",items:[{question:"What is a managed Open edX service?",answer:"A managed Open edX service means a provider like Aulasneo handles all the technical infrastructure (hosting, updates, backups, security patches and support) so your organization focuses only on creating and delivering courses."},{question:"How much does managed Open edX cost?",answer:"Aulasneo's managed Open edX plans include unlimited users and courses and start at USD 499 per month billed annually (USD 599 month to month). Technical support and Panorama analytics are included from the Gold plan. See the pricing page for details."},{question:"How fast can my platform be live?",answer:"A new Open edX platform can be set up in 24 hours, with your domain and branding. From there, your team can start creating courses in Open edX Studio."},{question:"Can I run Open edX without a technical team?",answer:"Yes. With Aulasneo's managed Open edX service you do not need a DevOps or infrastru
168cture team. Aulasneo handles setup, updates, monitoring and support."},{question:"What is the difference between edX and Open edX?",answer:"edX is an online course marketplace founded by Harvard and MIT and now owned by 2U. Open edX is the open source platform behind it, which any organization can run on its own or through a managed provider like Aulasneo."},{question:"Why choose Aulasneo as your Open edX provider?",answer:"Aulasneo has worked with Open edX since 2016, is listed in the official Open edX Marketplace and has delivered 100+ projects in 40+ countries. Beyond hosting, it builds Owly, an AI agent for LMS platforms, and Panorama, a learning analytics engine, and works in English and Spanish."}]},finalCta:{title:"Ready to launch your platform?",sub:"Book a free 30-minute consultation with our Open edX experts.",cta:"Book my free consultation"}},c1={seo:{title:"Aulasneo · Plataforma Open edX Gestionada | En línea en 24 horas",description:"Plataforma Open edX totalmente gestionada para universidades, empresas y ONGs. Infraestructura, actualizaciones, seguridad y soporte incluidos — en línea en 24 horas. Proveedor oficial de Open edX."},hero:{eyebrow:"Plataforma Open edX Gestionada",h1Part1:"Tu plataforma de aprendizaje,",h1Highlight:"gestionada por expertos",h1Part2:" — en línea en 24 horas.",sub:"Nos encargamos de la infraestructura para que tu equipo se enfoque en lo que importa: crear experiencias de aprendizaje.",chips:["✔ 10+ años en Open edX","✔ 100+ proyectos en 40+ países","✔ SLA de alta disponibilidad"],timelineTitle:"Tu cronograma de lanzamiento:",timeline:[{day:"Día 1",label:"Kick-off y configuración"},{day:"Día 2",label:"Dominio personalizado activo"},{day:"Día 3",label:"Primer curso publicado"}],formTitle:"Pedí tu consultoría gratuita",formSub:"Respondemos en menos de 24 horas — sin compromiso."},logos:{label:"Con la confianza de organizaciones líderes en todo el mund
168o"},segments:{eyebrow:"A quién servimos",title:"Soluciones para todo tipo de organización",cards:[{title:"Universidades y Educación Superior",desc:"Programas acreditados, campus múltiples, SSO, LTI y analítica avanzada.",cta:"Soy una universidad",preselect:"Universidad / Educación Superior"},{title:"Empresas y Corporaciones",desc:"Capacitación de empleados, programas de cumplimiento y certificaciones a escala.",cta:"Soy una empresa",preselect:"Empresa / Corporación"},{title:"ONGs y Gobierno",desc:"Programas de aprendizaje con impacto social y licencias flexibles.",cta:"Soy una ONG / Gobierno",preselect:"ONG / Gobierno"}]},engine:{pill:"Impulsado por Open edX®",facts:["20 M+ estudiantes registrados en la plataforma","Utilizado por MIT, Harvard, UNICEF y 50+ instituciones","100% código abierto — 100% bajo tu control"]},included:{eyebrow:"Qué incluye",title:"Todo lo que tu plataforma necesita — gestionado por nosotros",items:[{title:"Hosting gestionado",desc:"Infraestructura AWS / GCP con auto-escalado."},{title:"Siempre actualizado",desc:"Última versión de Open edX, siempre desplegada."},{title:"Seguridad y backups",desc:"Backups diarios, SSL y monitoreo 24/7."},{title:"Marca personalizada",desc:"Tu logo, tus colores, tu dominio."},{title:"Integraciones",desc:"LTI, xAPI, SCORM, Zoom, SSO y más."},{title:"Analítica",desc:"Dashboards de progreso del estudiante incluidos."}]},howItWorks:{eyebrow:"Cómo funciona",title:"De la firma al lanzamiento en 3 pasos",steps:[{num:"01",title:"Configuramos tu plataforma",desc:"Instalamos Open edX en tu dominio con tu identidad visual en menos de 24 horas."},{num:"02",title:"Creás tus cursos",desc:"Tu equipo sube contenido con Open edX Studio — sin necesidad de programar."},{num:"03",title:"Nos encargamos del resto",desc:"Hosting, actualizaciones, soporte y monitoreo — todo a cargo de nuestro equipo."}]},proof:{eyebrow:"Resultados",title:"Con la confianza de instituciones en todo el mund
168o",stats:[{value:"100+",label:"Proyectos en 40+ países"},{value:"10+",label:"Años gestionando Open edX"},{value:"1M",label:"Estudiantes alcanzados"},{value:"24 h",label:"Tiempo promedio de lanzamiento"}]},cases:{eyebrow:"Casos de éxito",title:"Organizaciones que aprenden a escala con Aulasneo",cta:"Ver todos los casos de éxito",href:"/es/case-studies/"},compare:{eyebrow:"Por qué Aulasneo",title:"Dejá de gestionar infraestructura. Empezá a generar aprendizaje.",lose:{heading:"❌ Sin Aulasneo",items:["Necesitás un equipo DevOps","Semanas de configuración","Vos manejás las actualizaciones","La seguridad es tu problema","Caídas costosas e inesperadas"]},win:{heading:"✅ Con Aulasneo",items:["Sin equipo técnico necesario","En línea en 24 horas","Nosotros gestionamos las actualizaciones","Seguridad incluida","Alta disponibilidad, con SLA"]}},topics:{eyebrow:"Aprendé más",title:"Guías sobre los temas en los que trabajamos todos los días",items:[{title:"Open edX",text:"Qué es la plataforma, cómo funciona y quiénes la usan.",guide:{href:"/es/lo-que-es-open-edx-y-cuales-son-las-ventajas-de-open-edx/",label:"¿Qué es Open edX?"},service:{href:"/es/solutions/openedx/",label:"Open edX gestionado"}},{title:"Elegir un LMS",text:"Qué hace un sistema de gestión del aprendizaje y cómo elegirlo.",guide:{href:"/es/blog/que-es-un-lms-sistema-de-gestion-del-aprendizaje/",label:"¿Qué es un LMS?"},service:{href:"/es/solutions/",label:"Nuestras soluciones"}},{title:"IA en educación",text:"Cómo los agentes de IA ayudan a estudiantes, docentes y administradores.",guide:{href:"/es/blog/owly-agente-ia-gestion-del-aprendizaje/",label:"Owly, un agente de IA"},service:{href:"/es/solutions/owly/",label:"Owly"}},{title:"Analítica de aprendizaje",text:"Cómo convertir los datos de Open edX en mejores cursos y decisiones.",guide:{href:"/es/blog/guia-analitica-open-edx/",label:"Guía de analítica para Open edX"},service:{href:"/es/solutions/panorama/",label:"Panorama"}},{title:"Infraestructura",text:"Hosting, actualizaciones, seguridad y escalabilidad de Open edX.",guide:{href:"/es/blog/migracion-open-edx-lecciones-aprendidas/",label:"Migración de Open edX: lecciones aprendidas"},service:{href:"/es/open-edx-hosting/",label:"Hosting de Open edX"}}],all:{href:"/es/blog/",label:"Todos los artículos"}},faq:{eyebrow:"Preguntas frecuentes",title:"Preguntas frecuentes",items:[{question:"¿Qué es un servicio gestionado de Open edX?",answer:"Un servicio gestionado de Open edX significa que un proveedor como Aulasneo se encarga de toda la infraestructura técnica (hosting, actualizaciones, backups, parches de seguridad y soporte) para que tu organización se concentre en crear y dictar cursos."},{question:"¿Cuánto cuesta Open edX gestionado?",answer:"Los planes de Open edX gestionado de Aulasneo incluyen usuarios y cursos ilimitados y empiezan en USD 499 por mes con pago anual (USD 599 mes a mes). El soporte técnico y la analítica de Panorama están incluidos desde el plan Oro. Mirá la página de precios para más detalles."},{question:"¿En cuánto tiempo puedo tener mi plataforma?",answer:"Una nueva plataforma Open edX se puede configurar en 24 horas, con tu dominio y tu marca. Desde ahí, tu equipo ya puede crear cursos en Open edX Studio."},{question:"¿Puedo usar Open edX sin un equipo técnico?",answer:"Sí. Con el servicio gestionado de Aulasneo no necesitás un equipo de DevOps ni de infraestructura. Nos encargamos de la configuración, las actualizaciones, el monitoreo y el soporte."},{question:"¿Cuál es la diferencia entre edX y Open edX?",answer:"edX es un marketplace de cursos online fundado por Harvard y el MIT, hoy propiedad de 2U. Open edX es la plataforma de código abierto sobre la que funciona, y cualquier organización puede usarla por su cuenta o con un proveedor gestionado como Aulasneo."},{question:"¿Por qué elegir a Aulasneo como proveedor de Open edX?",answer:"Aulasneo trabaja con Open edX desde 2016, figura en el Marketplace oficial de Open edX y entregó más de 100 proyectos en más de 40 países. Además del hosting, desarrolla Owly, un agente de IA para LMS, y Panorama, un motor de analítica de aprendizaje, y trabaja en español y en inglés."}]},finalCta:{title:"¿Listo para lanzar tu plataforma?",sub:"Reservá una consultoría gratuita de 30 minutos con nuestros expertos en Open edX.",cta:"Reservar mi consultoría gratuita"}},d1=[{id:"service-schema-home",data:{"@context":"https://schema.org","@type":"Service",serviceType:"Open edX Managed Hosting",provider:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},description:"Fully managed Open edX platform as a service. Aulasneo handles hosting, updates, backups, security and support so organizations can focus on learning.",areaServed:"Worldwide",audience:{"@type":"Audience",audienceType:"Universities, corporations, NGOs, government agencies, ed-tech startups"}}}],u1=[{id:"service-schema-home",data:{"@context":"https://schema.org","@type":"Service",serviceType:"Hosting Gestionado de Open edX",provider:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},description:"Plataforma Open edX totalmente gestionada como servicio. Aulasneo se encarga del hosting, las actualizaciones, los backups, la seguridad y el soporte.",areaServed:"En todo el mund
168o",audience:{"@type":"Audience",audienceType:"Universidades, empresas, ONGs, organismos gubernamentales y startups de EdTech"}}}];function tp(){return t.jsxs("svg",{"aria-hidden":"true",className:"absolute inset-0 w-full h-full opacity-[0.07] pointer-events-none",xmlns:"http://www.w3.org/2000/svg",children:[t.jsx("defs",{children:t.jsx("pattern",{id:"grid",width:"40",height:"40",patternUnits:"userSpaceOnUse",children:t.jsx("path",{d:"M 40 0 L 0 0 0 40",fill:"none",stroke:"white",strokeWidth:"0.8"})})}),t.jsx("rect",{width:"100%",height:"100%",fill:"url(#grid)"})]})}function ap(){const{language:e}=J(),n=e==="es"?c1:l1,a=v.useRef(null),s=o=>{var r;(r=a.current)==null||r.scrollIntoView({behavior:"smooth",block:"center"}),Ho("cta_scroll_to_form","engagement",o??"hero")};return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:n.seo.title,description:n.seo.description,keywords:"Open edX managed service, Open edX hosting, LMS, AI Agent for education, Learning Analytics, EdTech",ogTitle:n.seo.title,ogDescription:n.seo.description,ogType:"website",ogUrl:e==="es"?"https://aulasneo.com/es/":"https://aulasneo.com",canonical:e==="es"?"https://aulasneo.com/es/":"https://aulasneo.com/",hreflangEn:"https://aulasneo.com/",hreflangEs:"https://aulasneo.com/es/",rawSchemas:e==="es"?u1:d1,structuredData:{faq:n.faq.items}}),t.jsxs("section",{className:"relative pt-28 pb-16 bg-white overflow-hidden",children:[t.jsx("div",{"aria-hidden":"true",className:"absolute -top-32 -left-32 w-[520px] h-[520px] rounded-full opacity-[0.06] pointer-events-none",style:{background:`radial-gradient(circle, ${fe}, transparent 70%)`}}),t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"grid lg:grid-cols-2 gap-12 items-center",children:[t.jsxs("div",{children:[t.jsx("div",{className:"inline-flex items-center gap-2 mb-5",children:t.jsx("span",{className:"text-xs font-bold uppercase tracking-widest px-4 py-1.5 rounded-full font-quicksand",style:{background:`${fe}18`,color:fe},children:n.hero.eyebrow})}),t.jsxs("h1",{className:"text-4xl md:text-5xl font-bold leading-tight mb-5 font-quicksand",style:{color:oe},children:[n.hero.h1Part1," ",t.jsx("span",{style:{color:fe},children:n.hero.h1Highlight}),n.hero.h1Part2]}),t.jsx("p",{className:"text-lg text-gray-600 mb-7 font-quicksand leading-relaxed max-w-lg",children:n.hero.sub}),t.jsx("div",{className:"flex flex-wrap gap-2.5 mb-8",children:n.hero.chips.map((o,r)=>
168t.jsx("span",{className:"text-sm font-semibold px-3.5 py-1.5 rounded-full border font-quicksand",style:{borderColor:`${ze}60`,color:oe,background:`${ze}0d`},children:o},r))}),t.jsxs("div",{className:"rounded-2xl border border-gray-100 bg-gray-50 p-5",children:[t.jsx("p",{className:"text-xs font-bold uppercase tracking-widest mb-4 font-quicksand",style:{color:fe},children:n.hero.timelineTitle}),t.jsx("div",{className:"flex flex-col gap-3",children:n.hero.timeline.map((o,r)=>t.jsxs("div",{className:"flex items-center gap-3",children:[t.jsx("span",{className:"flex-shrink-0 w-16 text-xs font-bold font-quicksand text-center py-1 rounded-full",style:{background:oe,color:"white"},children:o.day}),t.jsx("div",{className:"flex-1 h-px",style:{background:`${ze}50`}}),t.jsx("span",{className:"text-sm text-gray-700 font-quicksand font-medium",children:o.label})]},r))})]})]}),t.jsx("div",{id:"contact",ref:a,className:"scroll-mt-24",children:t.jsxs("div",{className:"rounded-2xl shadow-xl overflow-hidden bg-white",style:{border:`1.5px solid ${fe}30`},children:[t.jsx("div",{className:"h-1.5 w-full",style:{background:`linear-gradient(90deg, ${ze}, ${fe})`}}),t.jsxs("div",{className:"p-7",children:[t.jsx("h2",{className:"text-xl font-bold mb-1 font-quicksand",style:{color:oe},children:n.hero.formTitle}),t.jsx("p",{className:"text-sm text-gray-500 mb-5 font-quicksand",children:n.hero.formSub}),t.jsx(i1,{})]})]})})]})})]}),t.jsx("section",{className:"py-16 border-t border-b border-gray-100 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsx("p",{className:"text-center text-xs font-bold uppercase tracking-widest text-gray-400 mb-10 font-quicksand",children:n.logos.label}),t.jsx("div",{className:"grid grid-cols-4 sm:grid-cols-8 gap-8 max-w-5xl mx-auto items-center",children:[{name:"MIT",img:"/logo-mit.png"},{name:"Harvard University",img:"/logo-harvard.png"},{name:"UNICEF",img:"/logo-unicef.png"},{name:"Holcim",img:"/logo-holcim.png"},{name:"University of Sydney",img:"/logo-sydney.png"},{name:"UTEC",img:"/logo-utec.png"},{name:"Axim Collaborative",img:"/logo-axim.png"},{name:"IIMBx",img:"/logo-iimbx.png"}].map((o,r)=>t.jsx("div",{className:"flex items-center justify-center h-28 grayscale hover:grayscale-0 opacity-60 hover:opacity-100 transition-all duration-300",children:t.jsx("img",{src:o.img,alt:o.name,className:"max-h-full max-w-full object-contain scale-110"})},r))})]})}),t.jsx("section",{id:"segments",className:"py-20 bg-gray-50 scroll-mt-20",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("span",{className:"text-xs font-bold uppercase tracking-widest font-quicksand",style:{color:ze},children:n.segments.eyebrow}),t.jsx("h2",{className:"text-3xl md:text-4xl font-bold mt-2 font-quicksand",style:{color:oe},children:n.segments.title})]}),t.jsx("div",{className:"grid md:grid-cols-3 gap-6 max-w-5xl mx-auto",children:n.segments.cards.map((o,r)=>
168{const i=[Ib,Cb,Wf][r];return t.jsxs("div",{className:"bg-white rounded-2xl p-7 shadow-sm border border-gray-100 hover:shadow-md hover:border-violet-200 transition-all duration-300 flex flex-col",children:[t.jsx("div",{className:"mb-4",children:t.jsx(i,{size:36,color:fe,strokeWidth:1.5})}),t.jsx("h3",{className:"text-xl font-bold mb-2 font-quicksand",style:{color:oe},children:o.title}),t.jsx("p",{className:"text-gray-500 font-quicksand leading-relaxed mb-6 flex-1",children:o.desc}),t.jsxs("button",{onClick:()=>s(o.preselect),className:"w-full py-2.5 rounded-full text-sm font-bold font-quicksand transition-all duration-200",style:{background:`${fe}15`,color:fe,border:`1.5px solid ${fe}40`},onMouseOver:l=>{l.currentTarget.style.background=fe,l.currentTarget.style.color="white"},onMouseOut:l=>{l.currentTarget.style.background=`${fe}15`,l.currentTarget.style.color=fe},children:[o.cta," →"]})]},r)})})]})}),t.jsxs("section",{className:"relative py-16 overflow-hidden",style:{background:oe},children:[t.jsx(tp,{}),t.jsxs("div",{className:"container mx-auto px-4 relative z-10 text-center",children:[t.jsx("span",{className:"inline-block text-xs font-bold uppercase tracking-widest px-4 py-1.5 rounded-full mb-8 font-quicksand",style:{background:"rgba(255,255,255,0.12)",color:"white"},children:n.engine.pill}),t.jsx("div",{className:"grid md:grid-cols-3 gap-8 max-w-4xl mx-auto",children:n.engine.facts.map((o,r)=>t.jsx("div",{className:"rounded-xl px-6 py-5 text-center font-quicksand font-semibold text-white text-base leading-snug",style:{background:"rgba(255,255,255,0.08)",border:"1px solid rgba(255,255,255,0.15)"},children:o},r))})]})]}),t.jsx("section",{id:"included",className:"py-20 bg-white scroll-mt-20",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("span",{className:"text-xs font-bold uppercase tracking-widest font-quicksand",style:{color:ze},children:n.included.eyebrow}),t.jsx("h2",{className:"text-3xl md:text-4xl font-bold mt-2 font-quicksand",style:{color:oe},children:n.included.title})]}),t.jsx("div",{className:"grid sm:grid-cols-2 lg:grid-cols-3 gap-6 max-w-5xl mx-auto",children:n.included.items.map((o,r)=>{const i=[Fb,_b,Rb,Xb,Lb,zb][r];return t.jsxs("div",{className:"flex gap-4 items-start p-6 rounded-2xl border border-gray-100 hover:shadow-sm hover:border-orange-100 transition-all duration-300",children:[t.jsx("span",{className:"flex-shrink-0 mt-0.5",children:t.jsx(i,{size:28,color:fe,strokeWidth:1.5})}),t.jsxs("div",{children:[t.jsx("h3",{className:"font-bold text-base mb-1 font-quicksand",style:{color:oe},children:o.title}),t.jsx("p",{className:"text-sm text-gray-500 font-quicksand leading-relaxed",children:o.desc})]})]},r)})})]})}),t.jsx("section",{className:"py-20 bg-gray-50",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-14",children:[t.jsx("span",{className:"text-xs font-bold uppercase tracking-widest font-quicksand",style:{color:ze},children:n.howItWorks.eyebrow}),t.jsx("h2",{className:"text-3xl md:text-4xl font-bold mt-2 font-quicksand",style:{color:oe},children:n.howItWorks.title})]}),t.jsx("div",{className:"grid md:grid-cols-3 gap-10 max-w-4xl mx-auto",children:n.howItWorks.steps.map((o,r)=>
168t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"text-5xl font-bold mb-5 leading-none",style:{fontFamily:"Comfortaa, cursive",color:`${fe}30`},children:o.num}),t.jsx("h3",{className:"text-lg font-bold mb-3 font-quicksand",style:{color:oe},children:o.title}),t.jsx("p",{className:"text-gray-500 font-quicksand leading-relaxed text-sm",children:o.desc})]},r))})]})}),t.jsx("section",{className:"py-20 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("span",{className:"text-xs font-bold uppercase tracking-widest font-quicksand",style:{color:ze},children:n.proof.eyebrow}),t.jsx("h2",{className:"text-3xl md:text-4xl font-bold mt-2 font-quicksand",style:{color:oe},children:n.proof.title})]}),t.jsx("div",{className:"rounded-2xl py-10 px-6 grid grid-cols-2 md:grid-cols-4 gap-8 max-w-4xl mx-auto",style:{background:`${oe}06`,border:`1px solid ${oe}12`},children:n.proof.stats.map((o,r)=>t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"text-4xl md:text-5xl font-bold mb-1",style:{fontFamily:"Comfortaa, cursive",color:fe},children:o.value}),t.jsx("div",{className:"text-sm text-gray-500 font-quicksand leading-tight",children:o.label})]},r))})]})}),t.jsx("section",{className:"py-20 bg-gray-50",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("span",{className:"text-xs font-bold uppercase tracking-widest font-quicksand",style:{color:ze},children:n.compare.eyebrow}),t.jsx("h2",{className:"text-3xl md:text-4xl font-bold mt-2 font-quicksand max-w-2xl mx-auto",style:{color:oe},children:n.compare.title})]}),t.jsxs("div",{className:"grid md:grid-cols-2 gap-6 max-w-3xl mx-auto",children:[t.jsxs("div",{className:"rounded-2xl p-7 bg-red-50 border border-red-100",children:[t.jsx("h3",{className:"font-bold text-lg mb-5 font-quicksand text-red-700",children:n.compare.lose.heading}),t.jsx("ul",{className:"space-y-3",children:n.compare.lose.items.map((o,r)=>t.jsxs("li",{className:"flex items-start gap-2.5 text-sm text-red-800 font-quicksand",children:[t.jsx("span",{className:"text-red-400 mt-0.5 flex-shrink-0",children:"✕"}),o]},r))})]}),t.jsxs("div",{className:"rounded-2xl p-7 border",style:{background:`${fe}08`,borderColor:`${fe}30`},children:[t.jsx("h3",{className:"font-bold text-lg mb-5 font-quicksand",style:{color:fe},children:n.compare.win.heading}),t.jsx("ul",{className:"space-y-3",children:n.compare.win.items.map((o,r)=>t.jsxs("li",{className:"flex items-start gap-2.5 text-sm font-quicksand",style:{color:oe},children:[t.jsx("span",{style:{color:ze},className:"mt-0.5 flex-shrink-0",children:"✓"}),o]},r))})]})]})]})}),t.jsx("section",{className:"py-20 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("span",{className:"text-xs font-bold uppercase tracking-widest font-quicksand",style:{color:ze},children:n.cases.eyebrow}),t.jsx("h2",{className:"text-3xl md:text-4xl font-bold mt-2 font-quicksand",style:{color:oe},children:n.cases.title})]}),t.jsx("div",{className:"max-w-6xl mx-auto",children:t.jsx(eo,{limit:3,headingLevel:"h3"})}),t.jsx("div",{className:"text-center mt-10",children:t.jsxs(E,{href:n.cases.href,className:"inline-block rounded-full px-7 py-3 font-bold font-quicksand text-white transition-colors",style:{background:oe},children:[n.cases.cta," →"]})})]})}),t.jsx("section",{className:"py-20 bg-gray-50",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("span",{className:"text-xs font-bold uppercase tracking-widest font-quicksand",style:{color:ze},children:n.topics.eyebrow}),t.jsx("h2",{className:"text-3xl md:text-4xl font-bold mt-2 font-quicksand",style:{color:oe},children:n.topics.title})]}),t.jsx("ul",{className:"max-w-6xl mx-auto grid gap-6 sm:grid-cols-2 lg:grid-cols-5",children:n.topics.items.map(o=>t.jsxs("li",{className:"flex flex-col rounded-2xl bg-white p-6 shadow-sm border border-gray-100",children:[t.jsx("h3",{className:"text-lg font-bold font-quicksand mb-2",style:{color:oe},children:o.title}),t.jsx("p",{className:"text-sm text-gray-600 font-quicksand mb-4 flex-1",children:o.text}),t.jsx(E,{href:o.guide.href,className:"text-sm font-semibold font-quicksand underline mb-2",style:{color:fe},children:o.guide.label}),t.jsxs(E,{href:o.service.href,className:"text-sm font-semibold font-quicksand",style:{color:ze},children:[o.service.label," →"]})]},o.title))}),t.jsx("div",{className:"text-center mt-10",children:t.jsxs(E,{href:n.topics.all.href,className:"font-bold font-quicksand underline",style:{color:oe},children:[n.topics.all.label," →"]})})]})}),t.jsx("section",{className:"py-20 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4 max-w-3xl",children:[t.jsxs("div",{className:"text-center mb-10",children:[t.jsx("span",{className:"text-xs font-bold uppercase tracking-widest font-quicksand",style:{color:ze},children:n.faq.eyebrow}),t.jsx("h2",{className:"text-3xl md:text-4xl font-bold mt-2 font-quicksand",style:{color:oe},children:n.faq.title})]}),t.jsx(Va,{items:n.faq.items})]})}),t.jsxs("section",{className:"relative py-16 text-center overflow-hidden",style:{background:oe},children:[t.jsx(tp,{}),t.jsxs("div",{className:"relative z-10 container mx-auto px-4",children:[t.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-white mb-4 font-quicksand",children:n.finalCta.title}),t.jsx("p",{className:"text-white/70 text-lg mb-8 font-quicksand max-w-lg mx-auto",children:n.finalCta.sub}),t.jsx("button",{onClick:()=>s(),className:"inline-block font-bold text-base px-9 py-4 rounded-full font-quicksand transition-all duration-200 hover:-translate-y-0.5",style:{background:ze,color:oe,boxShadow:"0 8px 20px rgba(239,146,69,0.45)"},children:n.finalCta.cta})]})]}),t.jsx("div",{className:"fixed bottom-0 left-0 right-0 z-40 p-3 md:hidden",style:{background:"rgba(6,43,96,0.97)",backdropFilter:"blur(8px)"},children:t.jsx("button",{onClick:()=>s(),className:"w-full py-3.5 rounded-full font-bold text-sm font-quicksand",style:{background:ze,color:oe},children:n.finalCta.cta})})]})}const vr={"Andrés González":{name:"Andrés González",role:{en:"CTO & Cofounder at Aulasneo",es:"CTO y cofundador de Aulasneo"},linkedin:"https://www.linkedin.com/in/gonzalezandres/"},"Esteban Etcheverry":{name:"Esteban Etcheverry",role:{en:"Executive Director & Cofounder at Aulasneo",es:"Director ejecutivo y cofundador de Aulasneo"},linkedin:"https://www.linkedin.com/in/estebanetcheverry/"}};function tn(e){const n=vr[e];return{"@type":"Person",name:e,url:"https://aulasneo.com/about/",worksFor:{"@id":"https://aulasneo.com/#organization"},...n?{jobTitle:n.role.en.replace(/ at Aulasneo$/,""),sameAs:[n.linkedin]}:{}}}const p1=[{value:"2016",label:{en:"Founded in Buenos Aires",es:"Fundada en Buenos Aires"}},{value:"100+",label:{en:"Projects delivered",es:"Proyectos entregados"}}
168,{value:"40+",label:{en:"Countries",es:"Países"}},{value:"1M",label:{en:"Learners reached",es:"Estudiantes alcanzados"}}],m1=["Axim Collaborative","IIMBx","UTEC","Avanxa","Cap-Net UNDP","Holcim Academy","The University of Sydney","ICdeBA","AIE ARG","CEEF"],h1=[{year:"2016",text:{en:"Andrés González and Esteban Etcheverry found Aulasneo in Buenos Aires, Argentina, to build online learning platforms on Open edX.",es:"Andrés González y Esteban Etcheverry fundan Aulasneo en Buenos Aires, Argentina, para crear plataformas de aprendizaje online sobre Open edX."}},{year:"2020",text:{en:"We start developing Panorama, our learning analytics engine for Open edX and other systems. Its connector is open source.",es:"Empezamos a desarrollar Panorama, nuestro motor de analítica de aprendizaje para Open edX y otros sistemas. Su conector es de código abierto."}},{year:"2023",text:{en:"We present Panorama's architecture at the IEEE Learning with MOOCs conference (LWMOOCs), at MIT.",es:"Presentamos la arquitectura de Panorama en la conferencia Learning with MOOCs (LWMOOCs) del IEEE, en el MIT."}},{year:"2025",text:{en:"We present the first prototype of Owly, our AI agent for learning platforms, at the Open edX Conference in Paris.",es:"Presentamos el primer prototipo de Owly, nuestro agente de IA para plataformas de aprendizaje, en la Open edX Conference de París."}}];function sp(){const{language:e}=J(),n=e==="es"?"es":"en",a=n==="es",s=o=>a?`/es${o}`:o;return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:a?"Sobre Aulasneo | Open edX, IA y analítica desde 2016":"About Aulasneo | Open edX, AI & Analytics Experts Since 2016",description:a?"Aulasneo nació en 2016 en Buenos Aires. Más de 100 proyectos Open edX en 40+ países y 1 millón de estudiantes. Conocé al equipo, nuestra historia y clientes.":"Founded in 2016 in Buenos Aires, Aulasneo has delivered 100+ Open edX projects in 40+ countries, reaching 1 million learners. Meet the team, story and clients.",keywords:"Aulasneo, Open edX provider, Open edX experts, AI agent for education, learning analytics, EdTech company Argentina",canonical:a?"https://aulasneo.com/es/about/":"https://aulasneo.com/about/",hreflangEn:"https://aulasneo.com/about/",hreflangEs:"https://aulasneo.com/es/about/"}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60] mb-6 font-quicksand",children:a?"Sobre Aulasneo":"About Aulasneo"}),t.jsx("p",{className:"text-xl text-gray-600 font-quicksand",children:a?"Desde 2016 ayudamos a universidades, empresas, ONG y gobiernos a enseñar online con Open edX, inteligencia artificial y analítica de aprendizaje.":"Since 2016 we have helped universities, companies, NGOs and governments teach online with Open edX, artificial intelligence and learning analytics."})]}),t.jsx(Zc,{label:a?"En pocas palabras":"In short",children:t.jsx("p",{children:a?"Aulasneo es una empresa de tecnología educativa fundada en 2016 en Buenos Aires, Argentina. Somos proveedores de Open edX listados en el Marketplace oficial: alojamos, personalizamos y damos soporte a plataformas Open edX, y desarrollamos Owly, un agente de IA para LMS, y Panorama, un motor de analítica de aprendizaje. Entregamos más de 100 proyectos en más de 40 países, que alcanzaron a 1 millón de estudiantes, en inglés y en español.":"Aulasneo is an EdTech company founded in 2016 in Buenos Aires, Argentina. We are an Open edX provider listed in the official Marketplace: we host, customize and support Open edX platforms, and we build Owly, an AI agent for LMS platforms, and Panorama, a learning analytics engine. We have delivered 100+ projects in 40+ countries, reaching 1 million learners, in English and Spanish."})}),t.jsx("ul",{className:"grid grid-cols-2 md:grid-cols-4 gap-6 text-center mb-16",children:p1.map(o=>t.jsxs("li",{className:"rounded-2xl bg-gray-50 border border-gray-100 p-5",children:[t.jsx("div",{className:"text-3xl font-bold text-[#ef9245] font-quicksand mb-1",children:o.value}),t.jsx("div",{className:"text-gray-600 font-quicksand text-sm",children:o.label[n]})]},o.value))}),t.jsx($,{children:a?"Nuestra historia":"Our story"}),t.jsxs(Y,{children:[t.jsx("p",{children:a?"Aulasneo nació de una convicción: las instituciones merecen plataformas de aprendizaje abiertas, que puedan adaptar a su manera de enseñar y que no las aten a un proveedor. Por eso elegimos Open edX, la plataforma de código abierto creada por Harvard y el MIT, y nos especializamos en ella.":"Aulasneo was born from a conviction: institutions deserve open learning platforms they can adapt to the way they teach, without being locked in to a vendor. That is 
168why we chose Open edX, the open source platform created by Harvard and MIT, and specialized in it."}),t.jsx("p",{children:a?t.jsxs(t.Fragment,{children:["Con los años sumamos lo que nuestros clientes necesitaban: ",t.jsx(q,{href:s("/open-edx-hosting/"),children:"Open edX gestionado"})," en AWS, ",t.jsx(q,{href:s("/solutions/panorama/"),children:"Panorama"})," para convertir los datos en decisiones y ",t.jsx(q,{href:s("/solutions/owly/"),children:"Owly"})," para usar la IA donde realmente ayuda: liberando tiempo para enseñar y aprender. Creemos que la tecnología tiene que potenciar la conexión humana en la educación, no reemplazarla."]}):t.jsxs(t.Fragment,{children:["Over the years we added what our clients needed: ",t.jsx(q,{href:s("/open-edx-hosting/"),children:"managed Open edX"})," on AWS, ",t.jsx(q,{href:s("/solutions/panorama/"),children:"Panorama"})," to turn data into decisions, and ",t.jsx(q,{href:s("/solutions/owly/"),children:"Owly"})," to use AI where it truly helps: freeing up time for teaching and learning. We believe technology should strengthen human connection in education, not replace it."]})})]}),t.jsx("ol",{className:"relative border-l-2 border-[#ef9245]/40 ml-3 mb-16 space-y-6",children:h1.map(o=>t.jsxs("li",{className:"pl-6 relative",children:[t.jsx("span",{className:"absolute -left-[9px] top-1.5 h-4 w-4 rounded-full bg-[#ef9245]","aria-hidden":"true"}),t.jsx("p",{className:"font-bold text-[#062b60] font-quicksand",children:o.year}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:o.text[n]})]},o.year))}),t.jsx($,{children:a?"El equipo":"The team"}),t.jsx(Y,{children:t.jsx("p",{children:a?"Aulasneo lo dirigen sus dos cofundadores, junto a un equipo multidisciplinario de colaboradores en desarrollo, infraestructura, diseño instruccional y soporte.":"Aulasneo is led by its two cofounders, together with a multidisciplinary team of collaborators in development, infrastructure, instructional design and support."})}),t.jsx("div",{className:"grid md:grid-cols-2 gap-6 mb-16",children:[{author:vr["Esteban Etcheverry"],role:{en:"Executive Director & Cofounder",es:"Director ejecutivo y cofundador"},bio:{en:"Leads Aulasneo's strategy, clients and partnerships, and writes about online learning, AI in education and learning analytics.",es:"Lidera la estrategia, los clientes y las alianzas de Aulasneo, y escribe sobre aprendizaje online, IA en educación y analítica de aprendizaje."}},{author:vr["Andrés González"],role:{en:"CTO & Cofounder",es:"CTO y cofundador"},bio:{en:"Leads Aulasneo's technology: Open edX infrastructure on AWS and Kubernetes, upgrades and migrations, Panorama and Owly.",es:"Lidera la tecnología de Aulasneo: la infraestructura Open edX en AWS y Kubernetes, las actualizaciones y migraciones, Panorama y Owly."}}].map(({author:o,role:r,bio:i})=>t.jsxs(L,{title:o.name,children:[t.jsx("p",{className:"font-semibold text-[#4e359e]",children:r[n]}),t.jsx("p",{children:i[n]}),t.jsx("a",{href:o.linkedin,target:"_blank",rel:"noopener noreferrer",className:"text-[#4e359e] hover:text-[#062b60] underline",children:"LinkedIn"})]},o.name))}),t.jsx($,{children:a?"Qué hacemos":"What we do"}),t.jsxs("div",{className:"grid md:grid-cols-3 gap-6 mb-16",children:[t.jsxs(L,{title:a?"Open edX gestionado":"Managed Open edX",children:[t.jsx("p",{children:a?"Alojamos, actualizamos, respaldamos y damos soporte a tu Open edX, con usuarios y cursos ilimitados. Soporte 24/7 disponible en planes a medida.":"We host, update, back up and support your Open edX, with unlimited users and courses. 24/7 support available on custom plans."}),t.jsx(q,{href:s("/open-edx-hosting/"),children:a?"Ver Open edX gestionado":"See managed Open edX"})]}),t.jsxs(L,{title:"Owly",children:[t.jsx("p",{children:a?"Un agente de IA dentro de tu LMS: tutoría para estudiantes, creación de cursos para docentes y automatización para administradores.":"An AI agent inside your LMS: tutoring for students, course creation for educators and automation for administrators."}),t.jsx(q,{href:s("/solutions/owly/"),children:a?"Conocé Owly":"Meet Owly"})]}),t.jsxs(L,{title:"Panorama",children:[t.jsx("p",{children:a?"Analítica de aprendizaje para Open edX y otros sistemas, con tableros para el equipo y para los estudiantes.":"Learning analytics for Open edX and other systems, with dashboards for staff and for learners."}),t.jsx(q,{href:s("/solutions/panorama/"),children:a?"Conocé Panorama":"Meet Panorama"})]})]}),t.jsx($,{children:a?"Con quiénes trabajamos":"Who we work with"}),t.jsx(Y,{children:t.jsx("p",{children:a?"Universidades, empresas, organismos internacionales y ONG confían en Aulasneo para sus plataformas de aprendizaje, entre ellos:":"Universities, companies, international organizations and NGOs trust Aulasneo with their learning platforms, including:"})}),t.jsx("ul",{className:"flex flex-wrap gap-3 mb-10",children:m1.map(o=>t.jsx("li",{className:"rounded-full border border-gray-200 bg-gray-50 px-4 py-2 font-quicksand text-sm font-semibold text-[#062b60
168]",children:o},o))})]}),t.jsxs("div",{className:"max-w-6xl mx-auto mb-16",children:[t.jsx("h2",{className:"sr-only",children:a?"Casos de éxito":"Success stories"}),t.jsx(eo,{headingLevel:"h3",lang:n})]}),t.jsxs("div",{className:"max-w-4xl mx-auto text-center bg-[#062b60] rounded-2xl p-8 md:p-12 text-white",children:[t.jsx("h2",{className:"text-3xl font-bold mb-4 font-quicksand",children:a?"Hablemos de tu proyecto":"Let's talk about your project"}),t.jsx("p",{className:"text-lg mb-8 opacity-90 font-quicksand",children:a?"Contanos qué querés lograr con tu plataforma de aprendizaje y te proponemos el camino.":"Tell us what you want to achieve with your learning platform and we will propose the way forward."}),t.jsx(Jc,{href:s("/contact/"),children:a?"Contactanos":"Contact us"})]})]})})]})}function f1({icon:e,titleKey:n,descriptionKey:a,featuresKey:s,title:o,description:r,features:i,color:l,link:c}){const{t:d}=J(),u=n?d(n):o||"",p=a?d(a):r||"",y=n==="solutions.owly"?d("solutions.owly")==="Owly – Agente de IA para LMS"?["Recomendaciones Inteligentes de Contenido","Tareas Administrativas Automatizadas","Soporte 24/7 para Estudiantes","Integración de Análisis Avanzados"]:["Intelligent Content Recommendations","Automated Administrative Tasks","24/7 Student Support","Advanced Analytics Integration"]:n==="solutions.openedx"?d("solutions.openedx")==="Open edX LMS"&&d("solutions.title")==="Nuestras Soluciones"?["Hosting Gestionado y Monitoreo 24/7","Usuarios Ilimitados y Alta Disponibilidad","Desarrollo de Temas Personalizados","Servicios de Integración"]:["Managed Hosting & 24/7 Monitoring","Unlimited Users & High Availability","Custom Theme Development","Integration Services"]:n==="solutions.panorama"?d("solutions.panorama")==="Panorama Analytics"&&d("solutions.title")==="Nuestras Soluciones"?["Integración de Datos Multiplataforma","Métricas de Rendimiento en Tiempo Real","Dashboards Personalizables","Insights Impulsados por IA"]:["Cross-Platform Data Integration","Real-time Performance Metrics","Customizable Dashboards","AI-Powered Insights"]:i||[];return t.jsxs("div",{className:"service-card bg-white rounded-2xl p-8 shadow-lg hover:shadow-xl transition-all duration-300 hover:-translate-y-2",children:[t.jsx("div",{className:`w-16 h-16 rounded-lg flex items-center justify-center mb-6 ${l==="ai-purple"?"bg-purple":l==="primary"?"bg-dark-blue":"bg-orange"}`,children:n==="solutions.owly"?t.jsx("span",{className:"text-white text-2xl",children:"✨"}):t.jsx("i",{className:`${e} text-white text-2xl`})}),t.jsx("h3",{className:"text-2xl font-bold text-neutral-800 mb-4 font-quicksand",children:n==="solutions.owly"?t.jsxs("span",{className:"flex items-center gap-2",children:[t.jsx("span",{style:{color:"#4e359e"},children:"✨"}),u]}):u}),t.jsx("p",{className:"text-neutral-600 mb-6 font-quicksand",children:p}),t.jsx("ul",{className:"space-y-2 mb-6",children:Array.isArray(y)&&y.map((b,x)=>t.jsxs("li",{className:"flex items-center text-neutral-600 font-quicksand",children:[t.jsx("i",{className:`fas fa-check mr-2 ${l==="ai-purple"?"text-purple":l==="primary"?"text-dark-blue":"text-orange"}`,style:l==="ai-purple"?{color:"#4e359e"}:{}}),b]},x))}),t.jsxs(E,{href:c,className:`font-semibold hover:opacity-80 transition-colors font-quicksand ${n==="solutions.owly"?"text-purple":l==="primary"?"text-dark-blue":"text-orange"}`,style:n==="solutions.owly"?{color:"#4e359e"}:{},children:[d("solutions.learnMore")," ",t.jsx("i",{className:"fas fa-arrow-right ml-1",style:n==="solutions.owly"?{color:"#4e359e"}:{}})]})]})}const g1=[{icon:"fas fa-brain",titleKey:"solutions.owly",descriptionKey:"solutions.owly.description",featuresKey:"solutions.owly.features",color:"ai-purple",link:"/solutions/owly/"},{icon:"fas fa-graduation-cap",titleKey:"solutions.openedx",descriptionKey:"solutions.openedx.description",featuresKey:"solutions.openedx.features",color:"primary",link:"/solutions/openedx/"},{icon:"fas fa-chart-line",titleKey:"solutions.panorama",descriptionKey:"solutions.panorama.description",featuresKey:"solutions.panorama.features",color:"secondary",link:"/solutions/panorama/"}];function op(){const{t:e,language:n}=J(),a=n==="es";return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:a?"Soluciones LMS | Open edX, Agente de IA y Learning Analytics":"LMS S
168olutions | Open edX, AI Agent & Learning Analytics",description:a?"Explorá las soluciones LMS de Aulasneo: Owly Agente de IA para educación, hosting de Open edX y Panorama learning analytics para transformar tu plataforma educativa.":"Explore Aulasneo's LMS solutions: Owly AI Agent for education, Open edX hosting, and Panorama learning analytics to transform your educational platform.",keywords:"LMS, Open edX, AI Agent for education, Learning Analytics, Owly AI, Panorama analytics, EdTech solutions",canonical:a?"https://aulasneo.com/es/solutions/":"https://aulasneo.com/solutions/",hreflangEn:"https://aulasneo.com/solutions/",hreflangEs:"https://aulasneo.com/es/solutions/"}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-16",children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-neutral-800 mb-6 font-quicksand",children:a?"Open edX LMS, Agentes de IA educativos y Learning Analytics":"Complete EdTech Solutions: Open edX LMS, AI Agents & Learning Analytics"}),t.jsx("p",{className:"text-xl text-neutral-600 max-w-3xl mx-auto font-quicksand",children:e("solutions.subtitle")})]}),t.jsx("div",{className:"grid md:grid-cols-3 gap-8 mb-16",children:g1.map((s,o)=>t.jsx(f1,{...s},o))}),t.jsxs("div",{className:"bg-neutral-50 rounded-2xl p-8 md:p-12",children:[t.jsxs("div",{className:"text-center mb-8",children:[t.jsx("h2",{className:"text-3xl font-bold text-neutral-800 mb-4 font-quicksand",children:e("solutions.custom.title")}),t.jsx("p",{className:"text-lg text-neutral-600 font-quicksand",children:a?t.jsxs(t.Fragment,{children:[e("solutions.custom.subtitle")," ",t.jsx(E,{href:"/pricing/",className:"text-purple hover:text-purple/80 font-semibold",children:"Mirá nuestros precios"})," o ",t.jsx(E,{href:"/contact/",className:"text-orange hover:text-orange/80 font-semibold",children:"contactanos"})," para hablar sobre tus necesidades específicas."]}):t.jsxs(t.Fragment,{children:[e("solutions.custom.subtitle")," ",t.jsx(E,{href:"/pricing/",className:"text-purple hover:text-purple/80 font-semibold",children:"View our pricing"})," or ",t.jsx(E,{href:"/contact/",className:"text-orange hover:text-orange/80 font-semibold",children:"contact us"})," to discuss your specific needs."]})})]}),t.jsxs("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:[t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-primary/10 w-12 h-12 rounded-lg flex items-center justify-center mx-auto mb-3",children:t.jsx("i",{className:"fas fa-palette text-primary"})}),t.jsx("h3",{className:"font-semibold text-neutral-800 mb-2",children:a?"Desarrollo de Temas":"Theme Development"}),t.jsx("p",{className:"text-sm text-neutral-600",children:a?"Temas personalizados que se adaptan a tu marca y visión":"Custom themes that match your brand and vision"})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-secondary/10 w-12 h-12 rounded-lg flex items-center justify-center mx-auto mb-3",children:t.jsx("i",{className:"fas fa-plug text-secondary"})}),t.jsx("h3",{className:"font-semibold text-neutral-800 mb-2",children:a?"Servicios de Integración":"Integration Services"}),t.jsx("p",{className:"text-sm text-neutral-600",children:a?"Conectá tu LMS con los sistemas que ya usás":"Connect your LMS with existing systems"})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-accent/10 w-12 h-12 rounded-lg flex items-center justify-center mx-auto mb-3",children:t.jsx("i",{className:"fas fa-chalkboard-teacher text-accent"})}),t.jsx("h3",{className:"font-semibold text-neutral-800 mb-2",children:a?"Diseño Instruccional":"Instructional Design"}),t.jsx("p",{className:"text-sm text-neutral-600",children:a?"Asesoramiento experto para crear cursos efectivos":"Expert guidance for effective course creation"})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-success/10 w-12 h-12 rounded-lg flex items-center justify-center mx-auto mb-3",children:t.jsx("i",{className:"fas fa-headset text-success"})}),t.jsx("h3",{className:"font-semibold text-neutral-800 mb-2",children:a?"Soporte 24/7":"24/7 Support"}),t.jsx("p",{className:"text-sm text-neutral-600",children:a?"Disponible en plane
168s a medida":"Available on custom plans"})]})]}),t.jsx("div",{className:"text-center mt-8",children:t.jsx(E,{href:a?"/es/contact/":"/contact/",className:"bg-primary text-white px-8 py-3 rounded-lg hover:bg-primary/90 transition-colors font-semibold font-quicksand",children:e("solutions.custom.button")})})]})]})})]})}const x1="/assets/owly-icon-BF5gS66D.png",rp="/images/aulasneo-open-edx-migration-cover-1200x630.png",y1=[{title:"Upgrade took 1 hour. Preparation took 2 months. Lessons learned from a migration.",excerpt:"An Open edX migration across nine major releases: 500GB MongoDB, squashed data migrations, videos in GridFS, charsets, Meilisearch and a one-hour cutover window.",content:"",contentUrl:"/articles/open-edx-migration-lessons-learned.en.html",date:"2026-09-01",dateModified:"2026-09-01",author:"Andrés González",authorUrl:"https://www.linkedin.com/in/gonzalezandres/",authorRole:"CTO & Cofounder at Aulasneo",image:rp,slug:"open-edx-migration-lessons-learned",alternateSlug:"migracion-open-edx-lecciones-aprendidas",path:"/blog/open-edx-migration-lessons-learned/",language:"en",readTime:13,tags:["LMS migration","Open edX migration","Open edX upgrade","Managed Open edX hosting","Tutor","MongoDB GridFS"]},{title:"La actualización tomó 1 hora. La preparación tomó 2 meses. Lecciones aprendidas de una migración.",excerpt:"Una migración Open edX de nueve releases mayores: MongoDB de 500 GB, migraciones de datos comprimidas, videos en GridFS, charsets, Meilisearch y una ventana de corte de una hora.",content:"",contentUrl:"/articles/open-edx-migration-lessons-learned.es.html",date:"2026-09-01",dateModified:"2026-09-01",author:"Andrés González",authorUrl:"https://www.linkedin.com/in/gonzalezandres/",authorRole:"CTO y cofundador de Aulasneo",image:rp,slug:"migracion-open-edx-lecciones-aprendidas",alternateSlug:"open-edx-migration-lessons-learned",path:"/es/blog/migracion-open-edx-lecciones-aprendidas/",language:"es",readTime:13,tags:["Migración LMS","Migración Open edX","Actualización Open edX","Hosting Open edX gestionado","Tutor","MongoDB GridFS"]}],v1=[{title:"Master the Open edX Installation with its 3 options",excerpt:"Open edX Installation uses Ubuntu with 3 options. In this article we explain how to install Open edX and its installation options.",content:"",contentUrl:"/articles/open-edx-installation-3-options-master.en.html",date:"2023-08-04",dateModified:"2024-07-17",author:"Andrés González",image:"/images/blog/open-edx-installation-3-options-master.jpg",slug:"open-edx-installation-3-options-master",path:"/blog/open-edx-installation-3-options-master/",language:"en",readTime:4,tags:["Open edX","Tutor","Installation","Kubernetes"]},{title:"10 Open edX Advanced Components to boost engagement",excerpt:"Consider these Open edX advanced components for your virtual courses to create more engaging training experiences for your students.",content:"",contentUrl:"/articles/10-open-edx-advanced-components-to-boost-engagement.en.html",date:"2023-09-08",dateModified:"2024-07-17",author:"Andrés González",image:"/images/blog/10-open-edx-advanced-components-to-boost-engagement.jpg",slug:"10-open-edx-advanced-components-to-boost-engagement",path:"/blog/10-open-edx-advanced-components-to-boost-engagement/",language:"en",readTime:8,tags:["Open edX","Studio","Course Design","Engagement"]},{title:"How to design successful MOOCs?",excerpt:"How to design successful MOOCs: Keys to design a successful MOOC. What is the fundamental role of using an LMS.",content:"",contentUrl:"/articles/how-design-successful-moocs.en.html",date:"2023-08-18",dateModified:"2023-08-18",author:"Antonella Perrupato",image:"/images/blog/how-design-successful-moocs.jpg",slug:"how-design-successful-moocs",path:"/blog/how-design-successful-moocs/",language:"en",readTime:5,tags:["MOOC","LMS","Course Design","Open edX"]},{title:"Learning management system: what is it and why do I need one?",excerpt:"What a Learning Management System (LMS) is, the myths around it, how to choose one and how universities, companies, governments and NGOs use it.",content:"",contentUrl:"/articles/what-is-a-learning-management-system.en.html",date:"2023-08-15",dateModified:"2024-09-19",author:"Andrés González",image:"/images/blog/what-is-a-learning-management-system.jpg",slug:"what-is-a-learning-management-system",alternateSlug:"que-es-un-lms-sistema-de-gestion-del-aprendizaje",path:"/blog/what-is-a-learning-management-system/",language:"en",readTime:9,tags:["LMS","Open edX","E-learning"]},{title:"Open edX for Universities",excerpt:"Open edX for universities: the LMS for large-scale academic projects, its key advantages and how Aulasneo provides it integrated 
168with Panorama analytics.",content:"",contentUrl:"/articles/open-edx-for-universities.en.html",date:"2023-08-04",dateModified:"2023-08-04",author:"Andrés González",image:"/images/blog/open-edx-for-universities.jpg",slug:"open-edx-for-universities",path:"/blog/open-edx-for-universities/",language:"en",readTime:4,tags:["Open edX","Universities","LMS"]},{title:"Virtual campus for NGO",excerpt:"Why an LMS makes NGO social and environmental projects viable at scale, without geographical barriers, and what Open edX offers them.",content:"",contentUrl:"/articles/lms-for-ngo.en.html",date:"2023-08-10",dateModified:"2023-08-10",author:"Andrés González",image:"/images/blog/lms-for-ngo.jpg",slug:"lms-for-ngo",path:"/blog/lms-for-ngo/",language:"en",readTime:4,tags:["LMS","NGO","Open edX"]},{title:"What is instructional design?",excerpt:"Instructional design is the discipline of creating effective online courses with a pedagogical approach. Why it matters and what it brings to learning.",content:"",contentUrl:"/articles/what-is-instructional-design.en.html",date:"2023-05-16",dateModified:"2023-05-16",author:"Andrés González",image:"/images/blog/what-is-instructional-design.jpg",slug:"what-is-instructional-design",alternateSlug:"que-es-el-diseno-instruccional",path:"/blog/what-is-instructional-design/",language:"en",readTime:3,tags:["Instructional design","Course Design","E-learning"]},{title:"Sistema de gestión del aprendizaje (LMS): qué es y por qué lo necesitás",excerpt:"Qué es un LMS, qué hace, los mitos más comunes, cómo elegir uno (propietario u open source, equipo propio o proveedor, instalación o SaaS) y sus casos de uso.",content:"",contentUrl:"/articles/que-es-un-lms-sistema-de-gestion-del-aprendizaje.es.html",date:"2023-08-15",dateModified:"2026-09-30",author:"Andrés González",image:"/images/blog/que-es-un-lms-sistema-de-gestion-del-aprendizaje.jpg",slug:"que-es-un-lms-sistema-de-gestion-del-aprendizaje",alternateSlug:"what-is-a-learning-management-system",path:"/es/blog/que-es-un-lms-sistema-de-gestion-del-aprendizaje/",language:"es",readTime:9,tags:["LMS","Open edX","E-learning","Elegir un LMS"]},{title:"¿Qué es el diseño instruccional?",excerpt:"El diseño instruccional crea cursos online efectivos con un enfoque pedagógico: pedagogía, experiencia de usuario, participación, recorrido del estudiante y por qué importa.",content:"",contentUrl:"/articles/que-es-el-diseno-instruccional.es.html",date:"2023-05-16",dateModified:"2026-09-30",author:"Andrés González",image:"/images/blog/que-es-el-diseno-instruccional.jpg",slug:"que-es-el-diseno-instruccional",alternateSlug:"what-is-instructional-design",path:"/es/blog/que-es-el-diseno-instruccional/",language:"es",readTime:3,tags:["Diseño instruccional","Diseño de cursos","E-learning"]}],b1=[{title:"AI Doesn’t Need More Pilots. It Needs Organizations That Learn Better.",excerpt:"The real advantage in the age of AI won’t come from adopting more tools, but from building the capability to learn from every experiment. The Spark AI Learning Loop™.",content:"",contentUrl:"/articles/ai-needs-organizations-that-learn.en.html",date:"2026-07-23",dateModified:"2026-07-23",author:"Esteban Etcheverry",image:"/images/newsletter/ai-needs-organizations-that-learn/cover.jpg",slug:"ai-needs-organizations-that-learn",alternateSlug:"la-ia-necesita-organizaciones-que-aprendan",path:"/blog/ai-needs-organizations-that-learn/",language:"en",readTime:5,tags:["AI adoption","Organizational learning","AI governance","Education"]},{title:"La IA no necesita más pilotos. Necesita organizaciones que aprendan mejor.",excerpt:"La ventaja competitiva en la era de la IA no será adoptar más herramientas, sino aprender mejor de cada experimento. El Spark AI Learning Loop™.",content:"",contentUrl:"/articles/la-ia-necesita-organizaciones-que-aprendan.es.html",date:"2026-07-23",dateModified:"2026-07-23",author:"Esteban Etcheverry",image:"/images/newsletter/ai-needs-organizations-that-learn/cover.jpg",slug:"la-ia-necesita-organizaciones-que-aprendan",alternateSlug:"ai-needs-organizations-that-learn",path:"/es/blog/la-ia-necesita-organizaciones-que-aprendan/",language:"es",readTime:6,tags:["Adopción de IA","Aprendizaje organizacional","Gobernanza de IA","Educación"]},{title:"10 Practical Tips for a Scalable, Stable, and Cost-Efficient Kubernetes Cluster",excerpt:"Lessons from running Open edX and Owly in production: databases, StatefulSets, availability zones, requests and limits, Karpenter, HPA, PDBs and probes.",content:"",contentUrl:"/articles/kubernetes-cluster-scalable-stable-cost-efficient.en.html",date:"2026-01-29",dateModified:"2026-01-29",author:"Andrés González",image:"/images/blog/kubernetes-cluster-scalable-stable-cost-efficient.jpg",slug:"kubernetes-cluster-scalable-stable-cost-efficient",alternateSlug:"cluster-kubernetes-escalable-estable-eficiente",path:"/blog/kubernetes-cluster-scalable-stable-cost-efficient/",language:"en",readTime:7,tags:["Kubernetes","Open edX","DevOps","Karpe
168nter","Cloud costs"]},{title:"Starting a New Year in the Age of AI",excerpt:"Between promise, pressure and pragmatism: how organizations can approach AI without falling into all-or-nothing thinking.",content:"",contentUrl:"/articles/starting-a-new-year-in-the-age-of-ai.en.html",date:"2026-01-21",dateModified:"2026-01-21",author:"Esteban Etcheverry",image:"/images/newsletter/starting-a-new-year-in-the-age-of-ai/cover.jpg",slug:"starting-a-new-year-in-the-age-of-ai",alternateSlug:"comenzar-un-nuevo-ano-en-la-era-de-la-ia",path:"/blog/starting-a-new-year-in-the-age-of-ai/",language:"en",readTime:4,tags:["AI","AI strategy","Owly","Education"]},{title:"Comenzar un nuevo año en la era de la IA",excerpt:"Entre promesas, presión y pragmatismo: cómo pueden las organizaciones abordar la IA sin caer en lógicas de todo o nada.",content:"",contentUrl:"/articles/comenzar-un-nuevo-ano-en-la-era-de-la-ia.es.html",date:"2026-01-21",dateModified:"2026-01-21",author:"Esteban Etcheverry",image:"/images/newsletter/comenzar-un-nuevo-ano-en-la-era-de-la-ia/cover.jpg",slug:"comenzar-un-nuevo-ano-en-la-era-de-la-ia",alternateSlug:"starting-a-new-year-in-the-age-of-ai",path:"/es/blog/comenzar-un-nuevo-ano-en-la-era-de-la-ia/",language:"es",readTime:5,tags:["IA","Estrategia de IA","Owly","Educación"]},{title:"When “Cheap” Gets Expensive: The Hidden Cost of LMS Security",excerpt:"Why comparing learning platforms on price alone can leave a backdoor open to your data, and how to compare LMS security apples to apples.",content:"",contentUrl:"/articles/hidden-cost-of-lms-security.en.html",date:"2025-12-04",dateModified:"2025-12-04",author:"Esteban Etcheverry",image:"/images/newsletter/hidden-cost-of-lms-security/cover.jpg",slug:"hidden-cost-of-lms-security",alternateSlug:"costo-oculto-seguridad-lms",path:"/blog/hidden-cost-of-lms-security/",language:"en",readTime:3,tags:["LMS security","Open edX","LMS selection"]},{title:"Cuando lo barato sale caro: el costo oculto de la seguridad en tu LMS",excerpt:"Por qué comparar plataformas de aprendizaje solo por precio puede dejar una puerta trasera abierta a tus datos, y cómo comparar la seguridad de un LMS.",content:"",contentUrl:"/articles/costo-oculto-seguridad-lms.es.html",date:"2025-12-04",dateModified:"2025-12-04",author:"Esteban Etcheverry",image:"/images/newsletter/costo-oculto-seguridad-lms/cover.jpg",slug:"costo-oculto-seguridad-lms",alternateSlug:"hidden-cost-of-lms-security",path:"/es/blog/costo-oculto-seguridad-lms/",language:"es",readTime:4,tags:["Seguridad LMS","Open edX","Elegir un LMS"]},{title:"The New Baseline for AI Education",excerpt:"AI in education needs solid foundations: why a robust LMS like Open edX is the new baseline, a free tool to check your Open edX version, and new university partners.",content:"",contentUrl:"/articles/new-baseline-for-ai-education.en.html",date:"2025-11-26",dateModified:"2025-11-26",author:"Esteban Etcheverry",image:"/images/newsletter/new-baseline-for-ai-education/cover.jpg",slug:"new-baseline-for-ai-education",alternateSlug:"nueva-base-ensenanza-con-ia",path:"/blog/new-baseline-for-ai-education/",language:"en",readTime:4,tags:["AI in education","Open edX","LMS","Open edX upgrade"]},{title:"La vieja-nueva base de la enseñanza con IA",excerpt:"La IA en educación necesita cimientos sólidos: por qué un LMS robusto como Open edX es la nueva base, una herramienta gratuita para ver tu versión de Open edX y nuevas alianzas.",content:"",contentUrl:"/articles/nueva-base-ensenanza-con-ia.es.html",date:"2025-11-26",dateModified:"2025-11-26",author:"Esteban Etcheverry",image:"/images/newsletter/new-baseline-for-ai-education/cover.jpg",slug:"nueva-base-ensenanza-con-ia",alternateSlug:"new-baseline-for-ai-education",path:"/es/blog/nueva-base-ensenanza-con-ia/",language:"es",readTime:4,tags:["IA en educación","Open edX","LMS","Actualización Open edX"]},{title:"“Bad, but Used to It”: From Resignation to Educational Innovation",excerpt:"Why so many institutions stay on learning platforms that don’t serve them, and a simple, low-risk way to break the inertia and modernize.",content:"",contentUrl:"/articles/bad-but-used-to-it-educational-innovation.en.html",date:"2025-10-20",dateModified:"2025-10-20",author:"Esteban Etcheverry",image:"/images/newsletter/bad-but-used-to-it-educational-innovation/cover.jpg",slug:"bad-but-used-to-it-educational-innovation",alternateSlug:"mal-pero-acostumbrau-innovacion-educativa",path:"/blog/bad-but-used-to-it-educational-innovation/",language:"en",readTime:3,tags:["Educational innovation","LMS migration","Change management"]},{title:"“Mal, pero acostumbráu”: de la resignación a la innovación educativa",excerpt:"Por qué tantas instituciones siguen con plataformas que no les sirven, y una forma simple y de bajo riesgo de romper la inercia y modernizarse.",content:"",contentUrl:"/articles/mal-pero-acostumbrau-innovacion-educativa.es.html",date:"2025-10-20",dateModified:"2025-10-20",author:"Esteban Etcheverry",image:"/images/newsletter/mal-pero-acostumbrau-innovacion-educativa/cover.jpg",slug:"mal-pero-acostumbrau-innovacion-educativa",alternateSlug:"bad-but-used-to-it-educational-innovation",path:"/es/blog/mal-pero-acostumbrau-innovacion-educativa/",language:"es",readTime:4,tags:["Innovación educativa","Migración LMS","Gestión del cambio"]},{title:"From Hype to Meaning: Building Owly, Our First AI Agent for Education",excerpt:"The journey from curiosity to creation: how we built Owly, an AI agent for learning management, what it can do today and what we learned.",content:"",contentUrl:"/articles/building-owly-ai-agent-for-education.en.html",date:"2025-10-08",dateModified:"2025-10-08",author:"Esteban Etcheverry",image:"/images/newsletter/building-owly-ai-agent-for-education/cover.jpg",slug:"building-owly-ai-agent-for-education",alternateSlug:"owly-agente-ia-gestion-del-aprendizaje",path:"/blog/building-owly-ai-agent-for-education/",language:"en",readTime:3,tags:["Owly","AI agents","AI in education","Open edX"]},{title:"De la moda al sentido: así construimos Owly, nuestro primer agente de IA para educación",excerpt:"Cómo construimos Owly, un agente de IA para la gestión del aprendizaje: qu
168é puede hacer hoy y qué aprendimos en el camino.",content:"",contentUrl:"/articles/owly-agente-ia-gestion-del-aprendizaje.es.html",date:"2025-10-08",dateModified:"2025-10-08",author:"Esteban Etcheverry",image:"/images/newsletter/building-owly-ai-agent-for-education/cover.jpg",slug:"owly-agente-ia-gestion-del-aprendizaje",alternateSlug:"building-owly-ai-agent-for-education",path:"/es/blog/owly-agente-ia-gestion-del-aprendizaje/",language:"es",readTime:4,tags:["Owly","Agentes de IA","IA en educación","Open edX"]},{title:"10 consejos prácticos para un cluster de Kubernetes escalable, estable y eficiente en costos",excerpt:"Lecciones de operar Open edX y Owly en producción: bases de datos, StatefulSets, zonas de disponibilidad, requests y limits, Karpenter, HPA, PDBs y probes.",content:"",contentUrl:"/articles/cluster-kubernetes-escalable-estable-eficiente.es.html",date:"2026-01-29",dateModified:"2026-01-29",author:"Andrés González",image:"/images/blog/cluster-kubernetes-escalable-estable-eficiente.jpg",slug:"cluster-kubernetes-escalable-estable-eficiente",alternateSlug:"kubernetes-cluster-scalable-stable-cost-efficient",path:"/es/blog/cluster-kubernetes-escalable-estable-eficiente/",language:"es",readTime:8,tags:["Kubernetes","Open edX","DevOps","Karpenter","Costos de nube"]}],w1=[{title:"Open edX Analytics: A Practical Guide to Learning Data and Panorama",excerpt:"What data Open edX generates, how to ask the right questions, what learner behavior reveals, and how Panorama brings learning analytics to staff and students inside Open edX.",content:"",contentUrl:"/articles/open-edx-analytics-guide.en.html",date:"2026-09-30",dateModified:"2026-09-30",author:"Andrés González",image:"/images/blog/open-edx-analytics-guide.jpg",slug:"open-edx-analytics-guide",alternateSlug:"guia-analitica-open-edx",path:"/blog/open-edx-analytics-guide/",language:"en",readTime:10,tags:["Open edX analytics","Learning analytics","Panorama","Data"],faq:[{question:"Does Open edX have built-in analytics?",answer:"Yes, basic ones. Instructors can download reports from the Instructor Dashboard (enrolled learners, grades, problem responses) and see course insights. For cross-course analysis, learner behavior, custom dashboards or combining Open edX with other systems, you need an analytics engine such as Panorama."},{question:"What data does Open edX collect?",answer:"Operational data (users, enrollments, course structure, grades, progress, certificates, cohorts and forums) and event data in tracking logs, which record learner interactions such as video plays, pauses and seeks, answer submissions and page views."},{question:"What is Panorama?",answer:"Panorama is a learning analytics engine developed and maintained by Aulasneo since 2020, with an open-source data connector. It extracts data from Open edX and other systems into a data lake, transforms it, and serves customizable dashboards with row-level access control, for staff and for learners."},{question:"Is Panorama free?",answer:"The connector is. Panorama ELT, which extracts the data from the Open edX databases into a data lake, is open source and free on GitHub, and you can pair it with your own data pipeline and a visualization tool such as Power BI or Tableau. The data pipeline and the ready-to-use dashboards are offered by Aulasneo as a service, included in its managed Open edX Gold plan and higher or as standalone Pro and Enterprise plans, or installed in your own infrastructure."},{question:"Which Open edX versions does Panorama support?",answer:"Panorama works with Open edX releases from Ironwood onward. Its micro-frontend, which embeds Panorama in Open edX and provides the student view, requires Palm or later."},{question:"Can learners see their own analytics?",answer:"Yes. Panorama's student view shows each learner their enrolled courses, grades, certificates, progress and time spent, with filters and export, inside Open edX."}]},{title:"Analítica en Open edX: guía práctica sobre datos de aprendizaje y Panorama",excerpt:"Qué datos genera Open edX, cómo hacer las preguntas correctas, qué revela el comportamiento de los estudiantes y cómo Panorama lleva la analítica al equipo y a los estudiantes dentro de Open edX.",content:"",contentUrl:"/articles/guia-analitica-open-edx.es.html",date:"2026-09-30",dateModified:"2026-09-30",author:"Andrés González",image:"/images/blog/guia-analitica-open-edx.jpg",slug:"guia-analitica-open-edx",alternateSlug:"open-edx-analytics-guide",path:"/es/blog/guia-analitica-open-edx/",language:"es",readTime:10,tags:["Analítica Open edX","Analítica de aprendizaje","Panorama","Datos"],faq:[{question:"¿Open edX trae analítica incorporada?",answer:"Sí, básica. Los docentes pueden descargar reportes desde el panel del instructor (inscriptos, calificaciones, respuestas a problemas) y ver indicadores del curso. Para analizar varios cursos, el comportamiento de los estudiantes, armar tableros propios o combinar Open edX con otros sistemas, hace falta un motor de analítica como Panorama."},{question:"¿Qué datos recolecta Open edX?",answer:"Datos operativos (usuarios, inscripciones, estructura de cursos, calificaciones, progreso, certificados, cohortes y foros) y datos de eventos en los tracking logs, que registran interacciones como reproducir, pausar o adelantar videos, enviar respuestas y ver páginas."},{question:"¿Qué es Panorama?",answer:"Panorama es un motor de analítica de aprendizaje que Aulasneo desarrolla y mantiene desde 2020, con un conector de datos de código abierto. Extrae datos de Open edX y otros sistemas a un data lake, los transforma y ofrece tableros personalizables con control de acceso por fila, para el equipo y para los estudiantes."},{question:"¿Panorama es gratis?",answer:"El conector sí. Panorama ELT, que extrae los datos de las bases de Open edX a un data lake, es de código abierto y gratuito en GitHub, y se puede combinar con un pipeline propio y una herramienta de visualización como Power BI o Tableau. El pipeline de datos y los tableros listos para usar los ofrece Aulasneo como servicio, incluido en su Open edX gestionado desde el plan Oro o con los planes Pro y Enterprise, o instalados en tu propia infraestructura."},{question:"¿Con qué versiones de Open edX funciona Panorama?",answer:"Panorama funciona con Open edX desde la ver
168sión Ironwood. Su micro-frontend, que integra Panorama en Open edX y ofrece la vista de estudiante, requiere Palm o posterior."},{question:"¿Los estudiantes pueden ver su propia analítica?",answer:"Sí. La vista de estudiante de Panorama le muestra a cada estudiante sus cursos, calificaciones, certificados, progreso y tiempo dedicado, con filtros y exportación, dentro de Open edX."}]}],ed=[...y1,...v1,...b1,...w1,{title:"Aulasneo at IFE 2025: Notes and Perspectives",excerpt:"IFE 2025 in Monterrey: Art, Education, and Future. The conference was organized by the Institute for the Future of Education, part of the renowned and prestigious Tecnológico de Monterrey.",content:`
169      <h2>IFE 2025 in Monterrey: Art, Education, and Future</h2>
170      
171      <p>The conference was organized by the Institute for the Future of Education, part of the renowned and prestigious Tecnológico de Monterrey. Before delving into the conference itself, we'd like to share our experience from a traveler's perspective.</p>
172      
173      <p>When venturing into new lands and cities, it is always enriching to discover the local culture, architecture, and traditions. Monterrey impressed us with its modern infrastructure, vibrant business district, and the warm hospitality of its people.</p>
174      
175      <h3>Key Insights from the Conference</h3>
176      
177      <p>The Institute for the Future of Education presented compelling visions for the intersection of technology and pedagogy. Several themes emerged throughout the sessions:</p>
178      
179      <ul>
180        <li><strong>AI Integration in Education:</strong> The responsible and meaningful integration of artificial intelligence in educational environments</li>
181        <li><strong>Personalized Learning:</strong> How technology can enable truly personalized educational experiences</li>
182        <li><strong>Global Collaboration:</strong> Breaking down barriers to enable worldwide educational partnerships</li>
183        <li><strong>Accessibility and Inclusion:</strong> Ensuring educational technology serves all learners regardless of their circumstances</li>
184      </ul>
185      
186      <h3>Aulasneo's Contribution</h3>
187      
188      <p>Our team had the opportunity to present our latest innovations in AI-powered LMS solutions, particularly focusing on <a href="/solutions/owly/">Owly</a>, our AI agent that's transforming how educators and students interact with learning platforms.</p>
189      
190      <p>The feedback from attendees was overwhelmingly positive, with particular interest in:</p>
191      
192      <ul>
193        <li>The practical applications of AI in reducing administrative burden on educators</li>
194        <li>How Panorama Analytics provides actionable insights across multiple LMS platforms</li>
195        <li>The open-source approach we take with Open edX implementations</li>
196      </ul>
197      
198      <h3>Looking Forward</h3>
199      
200      <p>The conversations at IFE 2025 reinforced our commitment to developing technology that truly serves the educational community. We're excited to continue collaborating with institutions like Tecnológico de Monterrey and implementing the insights gained from this enriching experience.</p>
201      
202      <p>As we move forward, we remain focused on our mission: using AI where it truly matters—freeing up time for what matters most in education: teaching and learning.</p>
203    `,date:"2025-02-21",author:"Esteban Etcheverry",image:"/images/blog/aulasneo-ife-2025-notes-perspectives.jpg",slug:"aulasneo-ife-2025-notes-perspectives",readTime:5,tags:["Conference","EdTech","AI in Education","Future of Education","Monterrey"]},{title:"How to Upload an Image in Open edX Studio Without Distortion: A Guide for Instructional Designers",excerpt:"Images play a crucial role in online learning, enhancing engagement and helping illustrate complex concepts. In Open edX, a widely-used LMS platform, instructional designers can easily upload images to enrich their courses.",content:`
204      <h2>Introduction</h2>
205      
206      <p>Images play a crucial role in online learning, enhancing engagement and helping illustrate complex concepts. In <a href="/blog/what-is-open-edx-overview-features-benefits/">Open edX</a>, a widely-used LMS platform, instructional designers can easily upload images to enrich their courses. However, a common issue arises when images appear distorted or pixelated after upload.</p>
207      
208      <p>
208This comprehensive guide will walk you through the best practices for uploading images in <a href="/elevate-your-course-design-in-open-edx-studio/">Open edX Studio</a> while maintaining their quality and proper proportions.</p>
209      
210      <h3>Understanding Image Distortion in Open edX</h3>
211      
212      <p>Image distortion in Open edX typically occurs due to:</p>
213      
214      <ul>
215        <li><strong>Incorrect aspect ratios:</strong> When the platform automatically resizes images that don't match expected dimensions</li>
216        <li><strong>Improper file formats:</strong> Using formats that don't compress well or aren't optimized for web display</li>
217        <li><strong>Oversized files:</strong> Large images that get automatically compressed by the platform</li>
218        <li><strong>Responsive design conflicts:</strong> Images that don't adapt well to different screen sizes</li>
219      </ul>
220      
221      <h3>Best Practices for Image Preparation</h3>
222      
223      <h4>1. Choose the Right Format</h4>
224      
225      <p>For different types of images, use these formats:</p>
226      
227      <ul>
228        <li><strong>JPEG:</strong> Best for photographs and complex images with many colors</li>
229        <li><strong>PNG:</strong> Ideal for graphics with transparency, logos, and images with text</li>
230        <li><strong>SVG:</strong> Perfect for scalable graphics, icons, and simple illustrations</li>
231        <li><strong>WebP:</strong> Modern format offering superior compression (when supported)</li>
232      </ul>
233      
234      <h4>2. Optimize Image Dimensions</h4>
235      
236      <p>Before uploading, resize your images to match common display sizes:</p>
237      
238      <ul>
239        <li><strong>Full-width content images:</strong> 1200px wide maximum</li>
240        <li><strong>Inline images:</strong> 600-800px wide</li>
241        <li><strong>Thumbnails:</strong> 300px wide maximum</li>
242        <li><strong>Banner images:</strong> 1920px wide for full-screen displays</li>
243      </ul>
244      
245      <h4>3. Maintain Aspect Ratios</h4>
246      
247      <p>Common aspect ratios that work well in educational content:</p>
248      
249      <ul>
250        <li><strong>16:9</strong> - Great for screenshots and video thumbnails</li>
251        <li><strong>4:3</strong> - Traditional format, good for presentations</li>
252        <li><strong>1:1</strong> - Square format, ideal for profile images and icons</li>
253        <li><strong>3:2</strong> - Classic photography ratio</li>
254      </ul>
255      
256      <h3>Step-by-Step Upload Process</h3>
257      
258      <h4>Step 1: Access the Files & Uploads Section</h4>
259      
260      <ol>
261        <li>Navigate to your course in Open edX Studio</li>
262        <li>Click on "Content" in the main navigation</li>
263        <li>Select "Files & Uploads" from the dropdown menu</li>
264      </ol>
265      
266      <h4>Step 2: Upload Your Optimized Image</h4>
267      
268      <ol>
269        <li>Click the "Upload New File" button</li>
270        <li>Select your prepared image file</li>
271        <li>Wait for the upload to complete</li>
272        <li>Copy the generated URL for later use</li>
273      </ol>
274      
275      <h4>Step 3: Insert Image in Course Content</h4>
276      
277      <ol>
278        <li>Navigate to the unit where you want to add the image</li>
279        <li>Add an HTML component</li>
280        <li>Use the HTML editor to insert your image with proper markup</li>
281      </ol>
282      
283      <h3>HTML Best Practices</h3>
284      
285      <p>When inserting images in Open edX, use this HTML structure:</p>
286      
287      <pre><code>&lt;figure class="image"&gt;
288        &lt;img src="/static/your-image.jpg" 
289             alt="Descriptive alt text" 
290             style="max-width: 100%; height: auto;"&gt;
291        &lt;figcaption&gt;Optional image caption&lt;/figcaption&gt;
292      &lt;/figure&gt;</code></pre>
293      
294      <h3>Responsive Design Considerations</h3>
295      
296      <p>To ensure your images look great on all devices:</p>
297      
298      <ul>
299        <li>Always include <code>max-width: 100%</code> in your image styles</li>
300        <li>Use <code>height: auto</code> to maintain aspect ratios</li>
301        <li>Consider providing multiple image sizes for different screen resolutions</li>
302        <li>Test your images on various devices and screen sizes</li>
303      </ul>
304      
305      <h3>Troubleshooting Common Issues</h3>
306      
307      <h4>Blurry Images</h4>
308      
309      <p>If your images appear blurry:</p>
310      
311      <ul>
312        <li>Ensure the source image is high resolution</li>
313        <li>Check that you're not over-compressing JPEG files</li>
314        <li>Consider using PNG for images with fine details</li>
315      </ul>
316      
317      <h4>
317Slow Loading Times</h4>
318      
319      <p>To improve loading performance:</p>
320      
321      <ul>
322        <li>Compress images before upload using tools like TinyPNG</li>
323        <li>Use appropriate file formats for different image types</li>
324        <li>Consider lazy loading for pages with multiple images</li>
325      </ul>
326      
327      <h3>Conclusion</h3>
328      
329      <p>By following these guidelines, you can ensure that your images in Open edX courses maintain their quality and visual appeal across all devices and screen sizes. Remember that well-optimized images not only look better but also improve the overall learning experience by reducing load times and enhancing accessibility.</p>
330      
331      <p>Taking the time to properly prepare and upload images will result in more professional-looking courses that engage learners and support your educational objectives.</p>
332    `,date:"2024-09-15",author:"Andrés González",authorUrl:"https://www.linkedin.com/in/gonzalezandres/",authorRole:"CTO & Cofounder at Aulasneo",image:"/images/blog/open-edx-image-upload-without-distortion.jpg",slug:"open-edx-image-upload-without-distortion",readTime:8,tags:["Open edX","Instructional Design","Image Optimization","LMS Tips","Course Creation"]},{title:"The Open edX Conference 2024",excerpt:"Aulasneo present in the Open edX Conference 2024 in Stellenbosch, Cape Town, South Africa",content:`
333      <h2>Open edX Conference 2024: A Gathering of Global EdTech Innovators</h2>
334      
335      <p>The <a href="/blog/what-is-open-edx-overview-features-benefits/">Open edX</a> Conference 2024 took place in the beautiful city of Stellenbosch, Cape Town, South Africa, bringing together educators, developers, and EdTech enthusiasts from around the world. As proud participants and contributors to the Open edX ecosystem, Aulasneo was thrilled to be part of this significant event.</p>
336      
337      <h3>Conference Highlights</h3>
338      
339      <p>The conference featured a diverse range of sessions, workshops, and networking opportunities that showcased the latest developments in open-source education technology:</p>
340      
341      <h4>Keynote Presentations</h4>
342      
343      <ul>
344        <li><strong>The Future of Open Education:</strong> Industry leaders discussed emerging trends and the evolving landscape of online learning</li>
345        <li><strong>Global Impact Stories:</strong> Institutions shared how Open edX has transformed education in their regions</li>
346        <li><strong>Technology Roadmap:</strong> Core developers presented upcoming features and platform improvements</li>
347      </ul>
348      
349      <h4>Technical Workshops</h4>
350      
351      <p>Hands-on sessions covered various aspects of Open edX development and deployment:</p>
352      
353      <ul>
354        <li>Advanced customization techniques</li>
355        <li>Integration best practices</li>
356        <li>Performance optimization strategies</li>
357        <li>Analytics and reporting solutions</li>
358      </ul>
359      
360      <h3>Aulasneo's Participation</h3>
361      
362      <p>Our team actively participated in several conference activities:</p>
363      
364      <h4>Presentation: "Panorama Analytics - Beyond Traditional LMS Reporting"</h4>
365      
366      <p>We presented our innovative approach to multi-LMS analytics, demonstrating how <a href="/solutions/panorama/">Panorama</a> provides comprehensive insights across different educational platforms. The session highlighted:</p>
367      
368      <ul>
369        <li>Cross-platform data integration challenges and solutions</li>
370        <li>Real-time analytics implementation</li>
371        <li>Customizable dashboards for different stakeholder needs</li>
372        <li>AI-powered predictive analytics capabilities</li>
373      </ul>
374      
375      <h4>Workshop: "AI Integration in Open edX"</h4>
376      
377      <p>Our technical team conducted a workshop on integrating AI capabilities into Open edX platforms, covering:</p>
378      
379      <ul>
380        <li>Practical applications of AI in educational settings</li>
381        <li>Implementation strategies for AI-powered features</li>
382        <li>Case studies from our Owly AI agent development</li>
383        <li>Ethical considerations and best practices</li>
384      </ul>
385      
386      <h3>Key Takeaways</h3>
387      
388      <h4>Community Collaboration</h4>
389      
390      <p>
390The conference reinforced the importance of community collaboration in the Open edX ecosystem. The diverse perspectives and experiences shared by participants from different continents highlighted the global impact of open-source educational technology.</p>
391      
392      <h4>Innovation Trends</h4>
393      
394      <p>Several key trends emerged from the discussions:</p>
395      
396      <ul>
397        <li><strong>Microlearning Integration:</strong> Platforms are adapting to support shorter, more focused learning modules</li>
398        <li><strong>Mobile-First Design:</strong> Increasing emphasis on mobile accessibility and responsive design</li>
399        <li><strong>AI and Personalization:</strong> Growing adoption of AI for personalized learning experiences</li>
400        <li><strong>Accessibility Focus:</strong> Renewed commitment to making education inclusive for all learners</li>
401      </ul>
402      
403      <h4>Sustainability in EdTech</h4>
404      
405      <p>Discussions around sustainable EdTech practices highlighted the need for:</p>
406      
407      <ul>
408        <li>Energy-efficient hosting solutions</li>
409        <li>Optimized content delivery networks</li>
410        <li>Responsible AI development</li>
411        <li>Long-term platform maintenance strategies</li>
412      </ul>
413      
414      <h3>Networking and Partnerships</h3>
415      
416      <p>One of the most valuable aspects of the conference was the opportunity to connect with fellow Open edX practitioners and explore potential collaborations. We established new partnerships with:</p>
417      
418      <ul>
419        <li>African universities looking to implement Open edX solutions</li>
420        <li>Technology partners interested in analytics integration</li>
421        <li>Educational content providers seeking platform customization</li>
422        <li>Government initiatives focused on digital education transformation</li>
423      </ul>
424      
425      <h3>Exploring Cape Town</h3>
426      
427      <p>Beyond the conference, the beautiful setting of Stellenbosch and Cape Town provided an inspiring backdrop for discussions about the future of education. The local hospitality and stunning landscapes created a memorable experience that enhanced the collaborative spirit of the event.</p>
428      
429      <h3>Looking Forward</h3>
430      
431      <p>The Open edX Conference 2024 has energized our team and reinforced our commitment to the open-source education community. We're excited to implement the insights gained and continue contributing to the ecosystem through:</p>
432      
433      <ul>
434        <li>Enhanced Panorama Analytics features based on community feedback</li>
435        <li>Continued development of our Owly AI agent</li>
436        <li>New partnerships and collaborations established at the conference</li>
437        <li>Ongoing support for the global Open edX community</li>
438      </ul>
439      
440      <h3>Conclusion</h3>
441      
442      <p>The Open edX Conference 2024 was a testament to the power of open-source collaboration in education. As we return from Cape Town, we're more committed than ever to our mission of transforming education through innovative technology solutions.</p>
443      
444      <p>We look forward to the next conference and continue working with the global community to make quality education accessible to learners everywhere.</p>
445    `,date:"2024-08-20",author:"Esteban Etcheverry",image:"/images/blog/open-edx-conference-2024.jpg",slug:"open-edx-conference-2024",readTime:6,tags:["Open edX","Conference","EdTech","Community","Cape Town","Analytics"]},{title:"Analytics for learning projects: Panorama as a cross-platform approach",excerpt:"Platforms and systems that support learning activities produce a huge amount of valuable data that requires some form of learning analytics system. Some of them provide a data visualisation system out of the box or as an add-on.",content:`
446      <h2>The Learning Analytics Challenge</h2>
447      
448      <p>Platforms and systems that support learning activities produce a huge amount of valuable data that requires some form of <a href="/open-edx-analytics-impact-open-courses/">learning analytics</a> system. Some of them provide a data visualisation system out of the box or as an add-on. However, the integration of all systems is complex.</p>
449      
450      <p>Most LMS analytics systems are usually closed-source and offer limited customization options. This creates significant challenges for organizations that want to gain comprehensive insights across their entire learning ecosystem.</p>
451      
452      <h3>The Multi-Platform Reality</h3>
453      
454      <p>Modern educational organizations rarely rely on a single platform. A typical learning ecosystem might include:</p>
455      
456      <ul>
457        <li><strong>Learning Management Systems (LMS):</strong> Open edX, Moodle, Canvas, Blackboard</li>
458        <li><strong>Content Authoring Tools:</strong> Articulate, Captivate, H5P</li>
459        <li><strong>Video Platforms:</strong> YouTube, Vimeo, custom solutions</li>
460        <li><strong>Assessment Tools:</strong> Proctoring systems, quiz platforms</li>
461        <li><strong>Communication Platforms:</strong> Discussion forums, chat systems</li>
462        <li><strong>Administrative Systems:</strong> Student Information Systems (SIS), HR platforms</li>
463      </ul>
464      
465      <p>Each of these platforms generates valuable learning data, but analyzing this data in isolation provides only a partial picture of the learner journey.</p>
466      
467      <h3>
467Traditional Analytics Limitations</h3>
468      
469      <h4>Siloed Data</h4>
470      
471      <p>Most traditional analytics solutions focus on single-platform insights:</p>
472      
473      <ul>
474        <li>LMS-specific dashboards that don't account for external learning activities</li>
475        <li>Content analytics that miss the broader learning context</li>
476        <li>Assessment data that isn't correlated with engagement metrics</li>
477      </ul>
478      
479      <h4>Limited Customization</h4>
480      
481      <p>Proprietary analytics solutions often restrict customization:</p>
482      
483      <ul>
484        <li>Fixed dashboard layouts that don't match organizational needs</li>
485        <li>Predetermined metrics that may not align with learning objectives</li>
486        <li>Inflexible reporting structures</li>
487      </ul>
488      
489      <h4>Scalability Issues</h4>
490      
491      <p>As organizations grow, traditional analytics systems face challenges:</p>
492      
493      <ul>
494        <li>Performance degradation with increased data volume</li>
495        <li>Limited integration capabilities with new platforms</li>
496        <li>Cost scaling that becomes prohibitive</li>
497      </ul>
498      
499      <h3>Introducing Panorama: A Cross-Platform Solution</h3>
500      
501      <p><a href="/solutions/panorama/">Panorama</a> addresses these challenges by providing a unified analytics platform that aggregates data from multiple sources and presents it through customizable, role-based dashboards.</p>
502      
503      <h4>Core Principles</h4>
504      
505      <p>Panorama is built on several key principles:</p>
506      
507      <ul>
508        <li><strong>Platform Agnostic:</strong> Works with any system that can provide data</li>
509        <li><strong>Highly Customizable:</strong> Dashboards and metrics can be tailored to specific needs</li>
510        <li><strong>Scalable Architecture:</strong> Cloud-native design that grows with your organization</li>
511        <li><strong>Role-Based Access:</strong> Different views for different stakeholders</li>
512        <li><strong>Real-Time Processing:</strong> Near real-time data updates and insights</li>
513      </ul>
514      
515      <h3>Technical Architecture</h3>
516      
517      <h4>Data Ingestion Layer</h4>
518      
519      <p>Panorama uses multiple methods to collect data from various sources:</p>
520      
521      <ul>
522        <li><strong>API Integration:</strong> Direct connection to platform APIs for real-time data</li>
523        <li><strong>Database Connections:</strong> Direct access to platform databases where possible</li>
524        <li><strong>File Imports:</strong> Scheduled imports of CSV, JSON, and other data formats</li>
525        <li><strong>Webhooks:</strong> Real-time event notifications from supported platforms</li>
526      </ul>
527      
528      <h4>Data Processing Pipeline</h4>
529      
530      <p>Raw data undergoes several processing stages:</p>
531      
532      <ol>
533        <li><strong>Data Validation:</strong> Ensuring data quality and consistency</li>
534        <li><strong>Normalization:</strong> Converting data into standardized formats</li>
535        <li><strong>Enrichment:</strong> Adding calculated fields and derived metrics</li>
536        <li><strong>Correlation:</strong> Linking data across platforms using common identifiers</li>
537      </ol>
538      
539      <h4>Analytics Engine</h4>
540      
541      <p>The analytics engine provides various types of analysis:</p>
542      
543      <ul>
544        <li><strong>Descriptive Analytics:</strong> What happened in the past</li>
545        <li><strong>Diagnostic Analytics:</strong> Why certain events occurred</li>
546        <li><strong>Predictive Analytics:</strong> What is likely to happen next</li>
547        <li><strong>Prescriptive Analytics:</strong> What actions should be taken</li>
548      </ul>
549      
550      <h3>Use Cases Across Different Sectors</h3>
551      
552      <h4>Higher Education</h4>
553      
554      <p>Universities and colleges use Panorama to:</p>
555      
556      <ul>
557        <li>Track student progress across multiple courses and programs</li>
558        <li>Identify at-risk students early through predictive modeling</li>
559        <li>Analyze the effectiveness of different teaching methods</li>
560        <li>Optimize resource allocation based on usage patterns</li>
561      </ul>
562      
563      <h4>Corporate Training</h4>
564      
565      <p>
565Businesses leverage Panorama for:</p>
566      
567      <ul>
568        <li>Measuring training ROI across different programs</li>
569        <li>Tracking employee skill development over time</li>
570        <li>Identifying knowledge gaps in different departments</li>
571        <li>Optimizing training delivery methods based on engagement data</li>
572      </ul>
573      
574      <h4>K-12 Education</h4>
575      
576      <p>Schools and districts use Panorama to:</p>
577      
578      <ul>
579        <li>Monitor student engagement across digital learning tools</li>
580        <li>Track academic progress and intervention effectiveness</li>
581        <li>Analyze the impact of different teaching technologies</li>
582        <li>Support data-driven decision making at the classroom and district level</li>
583      </ul>
584      
585      <h3>Implementation Methodology</h3>
586      
587      <h4>Phase 1: Assessment and Planning</h4>
588      
589      <ul>
590        <li>Audit existing learning platforms and data sources</li>
591        <li>Define key performance indicators (KPIs) and success metrics</li>
592        <li>Map stakeholder requirements and dashboard needs</li>
593        <li>Design data integration architecture</li>
594      </ul>
595      
596      <h4>Phase 2: Data Integration</h4>
597      
598      <ul>
599        <li>Establish connections to all identified data sources</li>
600        <li>Implement data validation and quality checks</li>
601        <li>Set up real-time and batch data processing pipelines</li>
602        <li>Test data accuracy and completeness</li>
603      </ul>
604      
605      <h4>Phase 3: Dashboard Development</h4>
606      
607      <ul>
608        <li>Create role-specific dashboard layouts</li>
609        <li>Implement custom metrics and calculations</li>
610        <li>Set up automated reporting and alerting</li>
611        <li>Conduct user acceptance testing</li>
612      </ul>
613      
614      <h4>Phase 4: Training and Deployment</h4>
615      
616      <ul>
617        <li>Train stakeholders on dashboard usage</li>
618        <li>Establish data governance policies</li>
619        <li>Set up monitoring and maintenance procedures</li>
620        <li>Plan for ongoing optimization and expansion</li>
621      </ul>
622      
623      <h3>Success Stories</h3>
624      
625      <h4>Case Study: Global University Network</h4>
626      
627      <p>A network of universities across three continents implemented Panorama to gain unified insights across their diverse learning platforms:</p>
628      
629      <ul>
630        <li><strong>Challenge:</strong> 15 different LMS instances, multiple content platforms, and inconsistent reporting</li>
631        <li><strong>Solution:</strong> Panorama integration with standardized KPIs across all institutions</li>
632        <li><strong>Results:</strong> 40% improvement in identifying at-risk students, 25% increase in course completion rates</li>
633      </ul>
634      
635      <h4>Case Study: Multinational Corporation</h4>
636      
637      <p>A Fortune 500 company used Panorama to optimize their global training programs:</p>
638      
639      <ul>
640        <li><strong>Challenge:</strong> Fragmented training data across regions, difficulty measuring ROI</li>
641        <li><strong>Solution:</strong> Cross-platform analytics with financial impact modeling</li>
642        <li><strong>Results:</strong> 30% reduction in training costs, 50% improvement in skills assessment accuracy</li>
643      </ul>
644      
645      <h3>Future Developments</h3>
646      
647      <h4>AI and Machine Learning Integration</h4>
648      
649      <p>Upcoming features include:</p>
650      
651      <ul>
652        <li>Automated anomaly detection in learning patterns</li>
653        <li>Personalized learning path recommendations</li>
654        <li>Predictive modeling for intervention timing</li>
655        <li>Natural language querying of analytics data</li>
656      </ul>
657      
658      <h4>Enhanced Visualization</h4>
659      
660      <p>New visualization capabilities will include:</p>
661      
662      <ul>
663        <li>Interactive learning journey maps</li>
664        <li>3D data exploration interfaces</li>
665        <li>Augmented reality dashboard overlays</li>
666        <li>Collaborative annotation and discussion features</li>
667      </ul>
668      
669      <h3>Conclusion</h3>
670      
671      <p>Panorama represents a paradigm shift from single-platform analytics to comprehensive, cross-platform learning insights. By breaking down data silos and providing customizable, role-based analytics, organizations can make more informed decisions about their learning initiatives.</p>
672      
673      <p>The future of learning analytics lies not in proprietary, closed systems, but in open, flexible platforms that can adapt to the diverse and evolving needs of educational organizations. Panorama embodies this vision, providing the tools necessary to transform educational data into actionable insights that improve learning outcomes for everyone.</p>
674      
675      <p>As the learning landscape continues to evolve, organizations that embrace cross-platform analytics will be better positioned to understand, optimize, and improve their educational offerings, ultimately leading to better outcomes for learners worldwide.</p>
676    `,date:"2023-10-15",author:"Esteban Etcheverry",image:"/images/blog/panorama-cross-platform-analytics-approach.jpg",slug:"panorama-cross-platform-analytics-approach",readTime:12,tags:["Analytics","Panorama","Cross-platform","Learning Data","EdTech","Multi-LMS"]}],Bs=[{id:"open-edx",label:{en:"Open edX",es:"Open edX"}}
676,{id:"lms",label:{en:"Choosing an LMS",es:"Elegir un LMS"}},{id:"ai",label:{en:"AI in education",es:"IA en educación"}},{id:"analytics",label:{en:"Learning analytics",es:"Analítica de aprendizaje"}},{id:"infrastructure",label:{en:"Infrastructure",es:"Infraestructura"}},{id:"events",label:{en:"Events",es:"Eventos"}}],j1={"open-edx-migration-lessons-learned":"infrastructure","migracion-open-edx-lecciones-aprendidas":"infrastructure","aulasneo-ife-2025-notes-perspectives":"events","open-edx-image-upload-without-distortion":"open-edx","open-edx-conference-2024":"events","panorama-cross-platform-analytics-approach":"analytics","open-edx-installation-3-options-master":"infrastructure","10-open-edx-advanced-components-to-boost-engagement":"open-edx","how-design-successful-moocs":"lms","what-is-a-learning-management-system":"lms","open-edx-for-universities":"open-edx","lms-for-ngo":"lms","what-is-instructional-design":"lms","open-edx-analytics-guide":"analytics","guia-analitica-open-edx":"analytics","que-es-un-lms-sistema-de-gestion-del-aprendizaje":"lms","que-es-el-diseno-instruccional":"lms","ai-needs-organizations-that-learn":"ai","la-ia-necesita-organizaciones-que-aprendan":"ai","kubernetes-cluster-scalable-stable-cost-efficient":"infrastructure","cluster-kubernetes-escalable-estable-eficiente":"infrastructure","starting-a-new-year-in-the-age-of-ai":"ai","comenzar-un-nuevo-ano-en-la-era-de-la-ia":"ai","hidden-cost-of-lms-security":"lms","costo-oculto-seguridad-lms":"lms","new-baseline-for-ai-education":"ai","nueva-base-ensenanza-con-ia":"ai","bad-but-used-to-it-educational-innovation":"lms","mal-pero-acostumbrau-innovacion-educativa":"lms","building-owly-ai-agent-for-education":"ai","owly-agente-ia-gestion-del-aprendizaje":"ai"},k1=[{title:"What is Open edX?",excerpt:"Open edX is the open-source LMS behind edX, used by Harvard, MIT and 100M+ learners. Learn what it is, how it works, and how to get a fully managed instance.",date:"2024-07-10",author:"Esteban Etcheverry",language:"en",topic:"open-edx",path:"/blog/what-is-open-edx-overview-features-benefits/"},{title:"edX vs Open edX — What's the Difference?",excerpt:"edX and Open edX are related but different. Learn the key differences between edx.org and the Open edX open-source platform, and which one is right for your organization.",date:"2023-04-23",author:"Esteban Etcheverry",language:"en",topic:"open-edx",path:"/whats-the-difference-between-edx-and-open-edx/"},{title:"Elevate Your Course Design in Open edX Studio",excerpt:"A practical video guide for instructional designers using Open edX Studio. Learn custom pages, cohorts, staff permissions, and course descriptions — with official Open edX tutorial videos.",date:"2023-08-10",author:"Esteban Etcheverry",language:"en",topic:"open-edx",path:"/elevate-your-course-design-in-open-edx-studio/"},{title:"Tips to Choose the Right LMS for Your Organization",excerpt:"A practical guide to evaluating and selecting the right Learning Management System for your organization. Key criteria, common mistakes, and how Open edX compares.",date:"2023-11-26",author:"Esteban Etcheverry",language:"en",topic:"lms",path:"/tips-to-choose-the-right-lms-for-your-organization/"},{title:"Rethinking LMS Customization: A Step-by-Step Success Strategy",excerpt:"Learn Aulasneo's proven iterative approach to Open edX LMS customization — prioritizing functionality and real user feedback over aesthetics.",date:"2024-04-16",author:"Esteban Etcheverry",language:"en",topic:"lms",path:"/lms-customization-a-successful-approach/"},{title:"Open edX Analytics: Evaluating the Impact of Open Courses",excerpt:"How Aulasneo uses Open edX analytics and Panorama to measure the real impact of open courses — presented by Esteban Etcheverry at MIT.",date:"2023-09-24",author:"Esteban Etcheverry",language:"en",topic:"analytics",path:"/open-edx-analytics-impact-open-courses/"},{title:"¿Qué es Open edX y cuáles son las ventajas de Open edX?",excerpt:"Open edX es el LMS open source desarrollado por MIT y Harvard. Descubrí sus principales ventajas: flexibilidad, escalabilidad, integraciones y bajo costo.",date:"2023-07-31",author:"Esteban Etcheverry",language:"es",topic:"open-edx",path:"/es/lo-que-es-open-edx-y-cuales-son-las-ventajas-de-open-edx/"},{title:"edX vs Open edX — ¿Cuál es la diferencia?",excerpt:"edX y Open edX están relacionados pero son muy diferentes. Conocé las diferencias clave y cuál es la opción correcta para tu organización.",date:"2023-04-23",author:"Esteban Etcheverry",language:"es",topic:"open-edx",path:"/es/cual-es-la-diferencia-entre-edx-y-open-edx/"},{title:"Mejorá el diseño de tus cursos en Open edX Studio",excerpt:"Guía en video para diseña
676dores instruccionales que usan Open edX Studio. Páginas personalizadas, cohortes, permisos y descripciones de cursos — con videos oficiales del canal de Open edX.",date:"2023-08-10",author:"Esteban Etcheverry",language:"es",topic:"open-edx",path:"/es/mejora-el-diseno-de-tus-cursos-en-open-edx-studio/"},{title:"Consejos para elegir el LMS correcto para tu organización",excerpt:"Guía práctica para evaluar y elegir el LMS adecuado para tu organización. Criterios clave, errores comunes y cómo se compara Open edX.",date:"2023-11-26",author:"Esteban Etcheverry",language:"es",topic:"lms",path:"/es/consejos-para-elegir-el-lms-correcto/"},{title:"Repensando la personalización del LMS: una estrategia de éxito paso a paso",excerpt:"Conocé el enfoque iterativo de Aulasneo para la personalización de Open edX — priorizando funcionalidad y feedback real de usuarios sobre la estética.",date:"2024-04-16",author:"Esteban Etcheverry",language:"es",topic:"lms",path:"/es/personalizacion-lms-un-enfoque-exitoso/"},{title:"Analítica Open edX: evaluando el impacto de cursos abiertos",excerpt:"Cómo Aulasneo usa Panorama y la analítica de Open edX para medir el impacto real de cursos abiertos — presentado por Esteban Etcheverry en el MIT.",date:"2023-09-24",author:"Esteban Etcheverry",language:"es",topic:"analytics",path:"/es/analitica-open-edx-impacto-cursos-abiertos/"}];function nd(e){const n=ed.filter(s=>(s.language??"en")===e).map(s=>({title:s.title,excerpt:s.excerpt,date:s.date,author:s.author,path:s.path??`/blog/${s.slug}/`,language:e,topic:j1[s.slug]??"open-edx",image:s.image,readTime:s.readTime})),a=k1.filter(s=>s.language===e).map(s=>({...s,image:s.image??`/images/blog/${s.path.replace(/\/+$/,"").split("/").pop()}.jpg`}));return[...n,...a].sort((s,o)=>o.date.localeCompare(s.date))}const ip={href:{en:"/solutions/openedx/",es:"/es/solutions/openedx/"},title:{en:"Fully managed Open edX",es:"Open edX totalmente gestionado"},text:{en:"Aulasneo hosts, updates and supports your Open edX platform so your team can focus on courses and learners.",es:"Aulasneo aloja, actualiza y da soporte a tu plataforma Open edX para que tu equipo se concentre en los cursos y los estudiantes."},cta:{en:"See managed Open edX",es:"Ver Open edX gestionado"}},Rg={"open-edx":{service:ip,caseStudies:["icdeba","holcim-academy"]},lms:{service:{href:{en:"/solutions/",es:"/es/solutions/"},title:{en:"Choosing or changing your LMS?",es:"¿Elegís o cambiás de LMS?"},text:{en:"We help organizations choose, customize and run their learning platform, with Open edX at the core.",es:"Ayudamos a las organizaciones a elegir, personalizar y operar su plataforma de aprendizaje, con Open edX como base."},cta:{en:"See our solutions",es:"Ver nuestras soluciones"}},caseStudies:["ceef","aie-arg"]},ai:{service:{href:{en:"/solutions/owly/",es:"/es/solutions/owly/"},title:{en:"Owly, the AI agent for your LMS",es:"Owly, el agente de IA para tu LMS"},text:{en:"Owly brings AI assistance to students and educators inside the learning platform they already use.",es:"Owly suma asistencia con IA para estudiantes y docentes, dentro de la plataforma que ya usan."},cta:{en:"Meet Owly",es:"Conocé Owly"}},caseStudies:[]},analytics:{service:{href:{en:"/solutions/panorama/",es:"/es/solutions/panorama/"},title:{en:"Panorama learning analytics",es:"Analítica de aprendizaje con Panorama"},text:{en:"Panorama brings multi-LMS analytics and student performance tracking to Open edX and other learning platforms.",es:"Panorama suma analítica multi-LMS y seguimiento del rendimiento de los estudiantes a Open edX y otras plataformas."},cta:{en:"See Panorama",es:"Ver Panorama"}},caseStudies:["cap-net","holcim-academy"]}
676,infrastructure:{service:{href:{en:"/open-edx-hosting/",es:"/es/open-edx-hosting/"},title:{en:"Open edX hosting, handled",es:"Hosting de Open edX, resuelto"},text:{en:"Updates, backups, security and scalability: Aulasneo runs the infrastructure behind your Open edX platform.",es:"Actualizaciones, backups, seguridad y escalabilidad: Aulasneo opera la infraestructura detrás de tu Open edX."},cta:{en:"See Open edX hosting",es:"Ver hosting de Open edX"}},caseStudies:["cap-net","holcim-academy"]},events:{service:ip,caseStudies:["icdeba","aie-arg"]}};function no({topic:e,contained:n=!1}){const{language:a}=J(),s=a==="es"?"es":"en",o=nd(s).filter(c=>c.topic===e).slice(0,3),{caseStudies:r}=Rg[e];if(o.length===0&&r.length===0)return null;const i=Bs.find(c=>c.id===e).label[s],l=s==="es";return t.jsx("section",{className:`font-quicksand ${n?"py-16 bg-white":"mb-16"}`,children:t.jsxs("div",{className:`space-y-14 ${n?"container mx-auto px-4 max-w-6xl":""}`,children:[o.length>0&&t.jsxs("div",{children:[t.jsx("p",{className:"text-xs font-bold uppercase tracking-[0.12em] text-[#24497F]",children:i}),t.jsx("h2",{className:"mt-1 mb-6 text-3xl font-bold text-[#062b60]",children:l?"Aprendé más":"Learn more"}),t.jsx("ul",{className:"grid gap-6 md:grid-cols-3",children:o.map(c=>t.jsx("li",{children:t.jsxs(E,{href:c.path,className:"group block h-full overflow-hidden rounded-xl bg-gray-50 transition-shadow hover:shadow-lg",children:[c.image&&t.jsx("img",{src:c.image,alt:"",loading:"lazy",className:"aspect-video w-full object-cover"}),t.jsxs("div",{className:"p-5",children:[t.jsx("h3",{className:"font-bold leading-snug text-[#062b60] group-hover:underline",children:c.title}),t.jsx("p",{className:"mt-2 text-sm text-gray-600 line-clamp-2",children:c.excerpt})]})]})},c.path))}),t.jsx("p",{className:"mt-6",children:t.jsx(E,{href:l?"/es/blog/":"/blog/",className:"font-semibold text-[#4E359E] hover:underline",children:l?"Ver todos los artículos →":"See all articles →"})})]}),r.length>0&&t.jsxs("div",{children:[t.jsx("h2",{className:"mb-6 text-3xl font-bold text-[#062b60]",children:l?"Casos de éxito":"Success stories"}),t.jsx(eo,{slugs:r,headingLevel:"h3"})]})]})})}const br={owly:{en:[{question:"What is Owly?",answer:"Owly is Aulasneo's AI agent for learning management systems. It works inside the learning platform to assist students, educators and administrators: it answers questions, helps create and curate courses, and automates administrative tasks."},{question:"Who can use Owly?",answer:"Everyone who works with the platform: students get 24/7 tutoring and personalized recommendations, educators get help creating and curating courses and insights on their students, and administrators and operators automate tasks such as bulk enrollments, learning paths and advanced settings."},{question:"Can Owly create courses?",answer:"Yes. Owly can create a full course or parts of it, while the course team keeps control and reviews the result. It speeds up authoring without replacing the educator's judgment."},{question:"Do I need to change my LMS to use Owly?",answer:"No. Owly integrates with your existing learning platform without disrupting current workflows. Aulasneo helps set it up on Open edX platforms, whether Aulasneo hosts them or not."},{question:"Where can I learn more about Owly?",answer:"Visit getowly.ai for product details and release notes, or contact Aulasneo to request a demo."}],es:[{question:"¿Qué es Owly?",answer:"Owly es el agente de IA de Aulasneo para sistemas de gestión del aprendizaje. Funciona dentro de la plataforma para asistir a estudiantes, docentes y administradores: responde preguntas, ayuda a crear y curar cursos y automatiza tareas administrativas."},{question:"¿Quiénes pueden usar Owly?",answer:"Todos los que trabajan con la plataforma: los estudiantes tienen tutoría 24/7 y recomendaciones personalizadas, los docentes reciben ayuda para crear y curar cursos e información sobre sus estudiantes, y los administradores y operadores automatizan tareas como inscripciones masivas, rutas de aprendizaje y configuraciones avanzadas."},{question:"¿Owly puede crear cursos?",answer:"Sí. Owly puede crear un curs
676o completo o partes de él, mientras el equipo docente mantiene el control y revisa el resultado. Acelera la autoría sin reemplazar el criterio del docente."},{question:"¿Tengo que cambiar de LMS para usar Owly?",answer:"No. Owly se integra con tu plataforma de aprendizaje actual sin alterar los flujos de trabajo. Aulasneo lo configura en plataformas Open edX, las aloje Aulasneo o no."},{question:"¿Dónde puedo saber más sobre Owly?",answer:"En getowly.ai están los detalles del producto y las novedades de cada versión, o podés contactar a Aulasneo para pedir una demo."}]},panorama:{en:[{question:"What is Panorama?",answer:"Panorama is a learning analytics engine developed and maintained by Aulasneo since 2020. It extracts data from Open edX and other systems into a data lake, transforms it and serves customizable dashboards with row-level access control, for staff and for learners."},{question:"Is Panorama free?",answer:"The connector is. Panorama ELT, which extracts the data from the Open edX databases into a data lake, is open source and free on GitHub, and can feed your own data pipeline and a tool such as Power BI or Tableau. The data pipeline and ready-to-use dashboards are included in Aulasneo's managed Open edX from the Gold plan, available as Pro and Enterprise plans, or installed in your own infrastructure."},{question:"Can Panorama combine data from several LMSs?",answer:"Yes. Panorama was designed for institutions with more than one learning platform, of the same or different brands and versions, and can also combine data from other systems such as surveys, videoconferencing, student information systems or e-commerce."},{question:"Can learners see their own analytics?",answer:"Yes. Panorama's student view shows each learner their enrolled courses, grades, certificates, progress and time spent, with filters and export, inside Open edX."},{question:"Which Open edX versions does Panorama support?",answer:"Panorama works with Open edX releases from Ironwood onward. Its micro-frontend, which embeds Panorama in Open edX and provides the student view, requires Palm or later."}],es:[{question:"¿Qué es Panorama?",answer:"Panorama es un motor de analítica de aprendizaje que Aulasneo desarrolla y mantiene desde 2020. Extrae datos de Open edX y otros sistemas a un data lake, los transforma y ofrece tableros personalizables con control de acceso por fila, para el equipo y para los estudiantes."},{question:"¿Panorama es gratis?",answer:"El conector sí. Panorama ELT, que extrae los datos de las bases de Open edX a un data lake, es de código abierto y gratuito en GitHub, y puede alimentar un pipeline propio y una herramienta como Power BI o Tableau. El pipeline de datos y los tableros listos para usar están incluidos en el Open edX gestionado de Aulasneo desde el plan Oro, se ofrecen con los planes Pro y Enterprise o se instalan en tu propia infraestructura."},{question:"¿Panorama puede combinar datos de varios LMS?",answer:"Sí. Panorama se diseñó para instituciones con más de una plataforma de aprendizaje, de la misma marca o de otras y en distintas versiones, y también puede combinar datos de otros sistemas como encuestas, videoconferencia, sistemas de gestión académica o comercio electrónico."},{question:"¿Los estudiantes pueden ver su propia analítica?",answer:"Sí. La vista de estudiante de Panorama le muestra a cada estudiante sus cursos, calificaciones, certificados, progreso y tiempo dedicado, con filtros y exportación, dentro de Open edX."},{question:"¿Con qué versiones de Open edX funciona Panorama?",answer:"Panorama funciona con Open edX desde la versión Ironwood. Su micro-frontend, que integra Panorama en Open edX y ofrece la vista de estudiante, requiere Palm o posterior."}]}};function lp(){const{t:e,language:n}=J(),a=n==="es";return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:e("owly.title"),description:e("owly.description"),keywords:"AI Agent for education, Owly, artificial intelligence in education, LMS automation, intelligent learning assistant, AI-powered education",canonical:a?"https://aulasneo.com/es/solutions/owly/":"https://aulasneo.com/solutions/owly/",hreflangEn:"https://aulasneo.com/solutions/owly/",hreflangEs:"https://aulasneo.com/es/solutions/owly/",structuredData:{faq:br.owly[n==="es"?"es":"en"]}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-16",children:[t.jsx("div",{className:"flex items-center justify-center mx-auto mb-6",children:t.jsx("img",{src:x1,alt:"Owly AI Agent",className:"w-24 h-24 object-contain"})}),t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-dark-blue mb-6 font-quicksand",children:e("owly.hero.title")}),t.jsx("p",{className:"text-xl text-gray-600 max-w-3xl mx-auto mb-8 font-quicksand",children:e("owly.hero.description")}),t.jsxs("a",{href:"https://getowly.ai",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:[e("owly.hero.cta"),t.jsx(_u,{className:"w-4 h-4 ml-2"})]})]}),t.jsxs("div",{className:"mb-16",children:[t.jsxs("div",{className:"text-center mb-8",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-4 font-quicksand",children:e("owly.demo.title")}),t.jsx("p",{className:"text-lg text-gray-600 font-quicksand",children:e("owly.demo.description")})]}),t.jsx("div",{className:"max-w-4xl mx-auto",children:t.jsx("div",{className:"relative w-full",style:{paddingBottom:"56.25%",height:0},children:t.jsx("iframe",{src:"https://player.vimeo.com/video/1106723600?badge=0&autopause=0&player_id=0&app_id=58479",allow:"autoplay; fullscreen; picture-in-picture; clipboard-write",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%"},title:"Owly Demo",className:"rounded-lg shadow-lg"})})})]}),t.jsxs("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-8 mb-16",children:[t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple/10 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4",children:t.jsx("i",{className:"fas fa-lightbulb text-purple text-xl"})}),t.jsx("h3",{className:"text-lg font-bold text-dark-blue mb-2 font-quicksand",children:e("owly.features.title1")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.features.desc1")})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple/10 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4",children:t.jsx("i",{className:"fas fa-cogs text-purple text-xl"})}),t.jsx("h3",{className:"text-lg font-bold text-dark-blue mb-2 font-quicksand",children:e("owly.features.title2")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.features.desc2")})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple/10 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4",children:t.jsx("i",{className:"fas fa-clock text-purple text-xl"})}),t.jsx("h3",{className:"text-lg font-bold text-dark-blue mb-2 font-quicksand",children:e("owly.features.title3")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.features.desc3")})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple/10 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4",children:t.jsx("i",{className:"fas fa-chart-line text-purple text-xl"})}),t.jsx("h3",{className:"text-lg font-bold text-dark-blue mb-2 font-quicksand",children:e("owly.features.title4")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.features.desc4")})]})]}),t.jsxs("div",{className:"bg-neutral-50 rounded-2xl p-8 md:p-12 mb-16",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-8 text-center font-quicksand",children:e("owly.howworks.title")}),t.jsxs("div",{className:"grid md:grid-cols-3 gap-8",children:[t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple text-white w-12 h-12 rounded-full flex items-center justify-center mx-auto mb-4 text-xl font-bold font-quicksand",children:"1"}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("owly.howworks.step1.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.howworks.step1.desc")})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple text-white w-12 h-12 rounded-full flex items-center justify-center mx-auto mb-4 text-xl font-bold font-quicksand",children:"2"}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("owly.howworks.step2.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.howworks.step2.desc")})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple text-white w-12 h-12 rounded-full flex items-center justify-center mx-auto mb-4 text-xl font-bold font-quicksand",children:"3"}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("owly.howworks.step3.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.howworks.step3.desc")})]})]})]}),t.jsxs("div",{className:"grid md:grid-cols-2 gap-12 mb-16",children:[t.jsxs("div",{children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-6 font-quicksand",children:e("owly.educators.title")}),t.jsxs("ul",{className:"space-y-4",children:[t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-green mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("owly.educators.feature1.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.educators.feature1.desc")})]})]}),t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-green mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("owly.educators.feature2.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.educators.feature2.desc")})]})]}),t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-green mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("owly.educators.feature3.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.educators.feature3.desc")})]})]})]})]}),t.jsxs("div",{children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-6 font-quicksand",children:e("owly.admins.title")}),t.jsx("ul",{className:"space-y-4",children:t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-green mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("owly.admins.feature1.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.admins.feature1.desc")}),t.jsxs("ul",{className:"mt-2 ml-4 space-y-1",children:[t.jsx("li",{className:"text-gray-600 font-quicksand text-sm",children:"• Bulk enrollments"}),t.jsx("li",{className:"text-gray-600 font-quicksand text-sm",children:"• Learning paths"}),t.jsx("li",{className:"text-gray-600 font-quicksand text-sm",children:"• Change advanced settings"})]})]})]})})]})]}),t.jsx("div",{className:"grid md:grid-cols-1 gap-12 mb-16",children:t.jsxs("div",{children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-6 font-quicksand",children:e("owly.students.title")}),t.jsxs("ul",{className:"space-y-4",children:[t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-green mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("owly.students.feature1.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.students.feature1.desc")})]})]}),t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-green mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("owly.students.feature2.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.students.feature2.desc")})]})]}),t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-green mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("owly.students.feature3.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("owly.students.feature3.desc")})]})]})]})]})}),t.jsxs("section",{className:"mb-16 max-w-4xl mx-auto","aria-labelledby":"faq-heading",children:[t.jsx("h2",{id:"faq-heading",className:"text-3xl font-bold text-dark-blue mb-6 font-quicksand text-center",children:n==="es"?"Preguntas frecuentes":"Frequently asked questions"}),t.jsx(Va,{items:br.owly[n==="es"?"es":"en"]})]}),t.jsx(no,{topic:"ai"}),t.jsxs("div",{className:"text-center bg-purple/5 rounded-2xl p-8 md:p-12",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-4 font-quicksand",children:e("owly.cta.title")}),t.jsx("p",{className:"text-lg text-gray-600 mb-8 font-quicksand",children:e("owly.cta.description")}),t.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[t.jsxs("a",{href:"https://getowly.ai",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center justify-center bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:[e("owly.hero.cta"),t.jsx(_u,{className:"w-4 h-4 ml-2"})]}),t.jsx(E,{href:"/contact/",className:"bg-purple text-white px-8 py-3 rounded-lg hover:bg-purple/90 transition-colors font-semibold font-quicksand",children:e("owly.cta.demo")}),t.jsx(E,{href:"/solutions/",className:"bg-white text-purple px-8 py-3 rounded-lg hover:bg-gray-50 transition-colors font-semibold border border-purple font-quicksand",children:e("owly.cta.solutions")})]})]})]})})]})}const N1=[{question:"What is Open edX, and why is it the leading LMS for large organizations?",answer:"Open edX is the world's most powerful open-source learning platform, originally founded by Harvard and MIT. Unlike other Learning Management Systems (LMS), it is specifically designed for massive scalability. Whether you are managing hundreds or millions of users, the Open edX platform delivers a modern, intuitive, and data-driven learning experience."},{question:"What are the advantages of using Open edX over traditional LMS platforms?",answer:'The primary advantages are flexibility and content ownership. While traditional LMS providers often limit growth with "per-user" licensing fees, Open edX allows you to scale without restrictions. Additionally, it offers advanced features like Open edX Studio for course authoring, deep learning analytics, and a micro-services architecture that ensures high availability and performance.'},{question:"Why choose Managed Open edX Hosting with Aulasneo?",answer:"Managing an Open edX infrastru
676cture requires deep technical expertise. At Aulasneo, we provide Managed Open edX Hosting where we handle installation, security updates, server maintenance and monitoring, with technical support from the Gold plan (24/7 support is available on custom plans). This allows your organization to focus 100% on creating high-quality educational content while we ensure your platform runs perfectly."},{question:"Can I customize the look and feel of my Open edX platform?",answer:"Absolutely. One of the greatest strengths of working with Aulasneo is our Open edX customization and theming capabilities. We can adapt the interface to match your brand's visual identity, ensuring a seamless User Experience (UX) across both desktop and mobile devices."},{question:"Does Open edX support integrations with other tools and AI agents?",answer:"Yes, the Open edX LMS is highly integrable via APIs and industry standards like LTI (Learning Tools Interoperability). At Aulasneo, we take the platform to the next level by integrating Owly, our specialized AI agent for LMS. Owly automates administrative tasks and provides personalized, real-time student support."}],S1=[{question:"¿Qué es Open edX y por qué es el LMS líder para grandes organizaciones?",answer:"Open edX es la plataforma de aprendizaje (learning platform) de código abierto más potente del mundo, creada originalmente por Harvard y el MIT. A diferencia de otros LMS, está diseña
676da para la escalabilidad masiva, permitiendo gestionar desde cientos hasta millones de usuarios con una experiencia de aprendizaje moderna, intuitiva y basada en datos."},{question:"¿Cuáles son las ventajas de usar Open edX frente a otros LMS tradicionales?",answer:"La principal ventaja es la flexibilidad y propiedad del contenido. Mientras que otros LMS limitan tu crecimiento con licencias por usuario, Open edX te permite escalar sin restricciones. Además, ofrece herramientas avanzadas como el Studio para creación de cursos, analíticas profundas y una arquitectura basada en micro-servicios que garantiza alta disponibilidad."},{question:"¿Por qué elegir el Hosting Gestionado de Open edX con Aulasneo?",answer:"Administrar una infraestructura de Open edX requiere conocimientos técnicos profundos. En Aulasneo, ofrecemos un servicio de Managed Hosting donde nosotros nos encargamos de la instalación, las actualizaciones de seguridad, el mantenimiento de servidores y el monitoreo, con soporte técnico desde el plan Oro (soporte 24/7 disponible en planes a medida). Esto permite que tu organización se enfoque 100% en crear contenido educativo de calidad mientras nosotros garantizamos que la plataforma funcione siempre a la perfección."},{question:"¿Se puede personalizar la apariencia de mi plataforma Open edX?",answer:"Absolutamente. Una de las fortalezas de trabajar con Aulasneo es la capacidad de personalización (theming). Podemos adaptar la interfaz para que refleje la identidad visual de tu marca, garantizando una experiencia de usuario (UX) coherente en dispositivos móviles y de escritorio."},{question:"¿Open edX permite la integración con otras herramientas y agentes de IA?",answer:"Sí, Open edX es altamente integrable mediante APIs y estándares como LTI. En Aulasneo, llevamos la plataforma al siguiente nivel integrando Owly, nuestro agente de IA para LMS, que automatiza tareas administrativas y personaliza el soporte al estudiante en tiempo real."}];function cp(){const{t:e,language:n}=J(),[a,s]=v.useState(!0),[o,r]=v.useState(null),i=e("solutions.title")==="Nuestras Soluciones",l=i?S1:N1;return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:i?"Plataforma Open edX LMS: Características, Hosting y Personalización | Aulasneo":"Open edX LMS Platform: Features, Hosting & Customization | Aulasneo",description:i?"Open edX es el LMS open-source líder, usado por Harvard, MIT y más de 100M de estudiantes. Aulasneo ofrece hosting gestionado de Open edX, personalización e integraciones — desplegado en 24 horas.":"Open edX is the leading open-source LMS used by Harvard, MIT and 100M+ learners. Aulasneo offers fully managed Open edX hosting, customization and integrations — deployed in 24 hours.",keywords:"Open edX, LMS, learning management system, Open edX hosting, LMS hosting, online education platform, learning platform",canonical:i?"https://aulasneo.com/es/solutions/openedx/":"https://aulasneo.com/solutions/openedx/",hreflangEn:"https://aulasneo.com/solutions/openedx/",hreflangEs:"https://aulasneo.com/es/solutions/openedx/",structuredData:{faq:l}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-16",children:[t.jsx("div",{className:"bg-dark-blue w-20 h-20 rounded-2xl flex items-center justify-center mx-auto mb-6",children:t.jsx("i",{className:"fas fa-graduation-cap text-white text-3xl"})}),t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-dark-blue mb-6 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Plataforma Open edX LMS — Hosting Gestionado, Características y Personalización":"Open edX LMS Platform — Managed Hosting, Features & Customization"}),t.jsx("p",{className:"text-xl text-gray-600 max-w-3xl mx-auto font-quicksand",children:i?t.jsxs(t.Fragment,{children:[e("solutions.openedx.description")," Potenciá tu plataforma Open edX con ",t.jsx(E,{href:"/es/solutions/owly/",className:"text-purple hover:text-purple/80 font-semibold",children:"Owly, el agente de IA"})," y monitoreá el rendimiento con ",t.jsx(E,{href:"/es/solutions/panorama/",className:"text-purple hover:text-purple/80 font-semibold",children:"Panorama learning analytics"}),"."]}):t.jsxs(t.Fragment,{children:[e("solutions.openedx.description")," Enhance your Open edX platform with ",t.jsx(E,{href:"/solutions/owly/",className:"text-purple hover:text-purple/80 font-semibold",children:"Owly AI agent"})," and monitor performance with ",t.jsx(E,{href:"/solutions/panorama/",className:"text-purple hover:text-purple/80 font-semibold",children:"Panorama learning analytics"}),"."]})})]}),t.jsxs("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-8 mb-16",children:[t.jsxs("div",{className:"bg-gray-50 rounded-xl p-6",children:[t.jsx("div",{className:"bg-dark-blue/10 w-12 h-12 rounded-lg flex items-center justify-center mb-4",children:t.jsx("i",{className:"fas fa-server text-dark-blue"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Hosting Gestionado":"Managed Hosting"}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Hosting completamente gestionado de Open edX con actualizaciones automáticas, parches de seguridad y optimización de rendimiento.":"Fully managed Open edX hosting with automatic updates, security patches, and performance optimization."})]}),t.jsxs("div",{className:"bg-gradient-to-br from-purple to-purple/80 rounded-xl p-6 text-white border-2 border-purple shadow-lg",children:[t.jsx("div",{className:"bg-white/20 w-12 h-12 rounded-lg flex items-center justify-center mb-4",children:t.jsx("i",{className:"fas fa-users text-white"})}),t.jsxs("h3",{className:"text-xl font-bold text-white mb-3 font-quicksand flex items-center gap-2",children:[t.jsx("span",{className:"bg-orange text-white px-2 py-1 rounded text-sm font-bold",children:"FEATURED"}),e("solutions.title")==="Nuestras Soluciones"?"Usuarios Ilimitados":"Unlimited Users & Courses"]}),t.jsx("p",{className:"text-white/90 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Escale su plataforma para soportar estudiantes ilimitados sin preocuparse por límites de usuarios o costos adicionales.":"Scale your platform to supp
676ort unlimited learners without worrying about user limits or additional costs."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-xl p-6",children:[t.jsx("div",{className:"bg-dark-blue/10 w-12 h-12 rounded-lg flex items-center justify-center mb-4",children:t.jsx("i",{className:"fas fa-shield-alt text-dark-blue"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Alta Disponibilidad":"High Availability"}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Alta disponibilidad respaldada por SLA, con infraestructura redundante y conmutación automática.":"High availability backed by an SLA, with redundant infrastructure and automatic failover."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-xl p-6",children:[t.jsx("div",{className:"bg-dark-blue/10 w-12 h-12 rounded-lg flex items-center justify-center mb-4",children:t.jsx("i",{className:"fas fa-eye text-dark-blue"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Monitoreo 24/7":"24/7 Monitoring"}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Monitoreo del sistema las 24 horas y mantenimiento proactivo para asegurar un rendimiento óptimo.":"Round-the-clock system monitoring and proactive maintenance to ensure optimal performance."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-xl p-6",children:[t.jsx("div",{className:"bg-dark-blue/10 w-12 h-12 rounded-lg flex items-center justify-center mb-4",children:t.jsx("i",{className:"fas fa-palette text-dark-blue"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Temas Personalizados":"Custom Themes"}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Temas diseñados profesionalmente que coinciden con su identidad de marca y mejoran la experiencia del usuario.":"Professionally designed themes that match your brand identity and enhance user experience."})]}),t.jsxs("div",{className:"bg-orange/10 rounded-xl p-6",children:[t.jsx("div",{className:"bg-orange w-12 h-12 rounded-lg flex items-center justify-center mb-4",children:t.jsx("i",{className:"fas fa-plug text-white"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Servicios de Integración":"Integration Services"}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Conecte su plataforma Open edX con sistemas existentes, CRM y herramientas de terceros.":"Connect your Open edX platform with existing systems, CRM, and third-party tools."})]})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-8 md:p-12 mb-16",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-8 text-center font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Características de la Plataforma Open edX":"Open edX Platform Features"}),t.jsxs("div",{className:"grid md:grid-cols-2 gap-8",children:[t.jsxs("div",{children:[t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-4 font-quicksand",children:"Trusted by Leading Institutions"}),t.jsx("p",{className:"text-gray-600 mb-4 font-quicksand",children:"Open edX powers online learning for Harvard, MIT, and hundreds of other prestigious institutions worldwide."}),t.jsxs("ul",{className:"space-y-2",children:[t.jsxs("li",{className:"flex items-center text-gray-600 font-quicksand",children:[t.jsx("i",{className:"fas fa-check text-orange mr-2"}),"Used by top universities globally"]}),t.jsxs("li",{className:"flex items-center text-gray-600 font-quicksand",children:[t.jsx("i",{className:"fas fa-check text-orange mr-2"}),"Proven scalability and reliability"]}),t.jsxs("li",{className:"flex items-center text-gray-600 font-quicksand",children:[t.jsx("i",{className:"fas fa-check text-orange mr-2"}),"Continuous development and updates"]})]})]}),t.jsxs("div",{children:[t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-4 font-quicksand",children:"Open Source Flexibility"}),t.jsx("p",{className:"text-gray-600 mb-4 font-quicksand",children:"Full control over your platform with the freedom to customize, extend, and integrate as needed."}),t.jsxs("ul",{className:"space-y-2",children:[t.jsxs("li",{className:"flex items-center text-gray-600 font-quicksand",children:[t.jsx("i",{className:"fas fa-check text-orange mr-2"}),"Complete source code access"]}),t.jsxs("li",{className:"flex items-center text-gray-600 font-quicksand",children:[t.jsx("i",{className:"fas fa-check text-orange mr-2"}),"No vendor lock-in"]}),t.jsxs("li",{className:"flex items-center text-gray-600 font-quicksand",children:[t.jsx("i",{className:"fas fa-check text-orange mr-2"}),"Extensive customization options"]})]})]})]})]}),t.jsxs("div",{className:"bg-white rounded-2xl p-8 md:p-12 mb-16 border border-gray-200",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-8 text-center font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"¿Por qué elegir Aulasneo como tu Proveedor de Open edX?":"Why Choose Aulasneo as Your Open edX Provider?"}),t.jsxs("div",{className:"text-center",children:[t.jsx("p",{className:"text-lg text-gray-600 font-quicksand max-w-2xl mx-auto",children:e("solutions.title")==="Nuestras Soluciones"?"Porque somos socios de Open edX y tenemos más de 10 años de experiencia implementando proyectos en todo el mund
676o.":"Because we are Open edX partners and we have 10+ years of experience implementing projects worldwide."}),t.jsxs("div",{className:"grid md:grid-cols-2 gap-8 mt-8",children:[t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-orange/10 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4",children:t.jsx("i",{className:"fas fa-handshake text-orange text-xl"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-2 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Socios Oficiales":"Official Partners"}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Socios certificados de Open edX con acceso directo al equipo de desarrollo":"Certified Open edX partners with direct access to the development team"})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-dark-blue/10 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4",children:t.jsx("i",{className:"fas fa-globe text-dark-blue text-xl"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-2 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"10+ Años de Experiencia":"10+ Years Experience"}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Implementaciones exitosas en todo el mund
676o para universidades y empresas":"Successful implementations worldwide for universities and enterprises"})]})]})]})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-8 md:p-12 mb-16",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-8 text-center font-quicksand",children:i?"Preguntas Frecuentes sobre Open edX LMS":"Open edX LMS Frequently Asked Questions (FAQ)"}),t.jsx("div",{className:"max-w-4xl mx-auto space-y-4",children:l.map((c,d)=>t.jsxs("div",{className:"bg-white rounded-xl border border-gray-200 overflow-hidden shadow-sm",children:[t.jsxs("button",{onClick:()=>r(o===d?null:d),className:"w-full px-6 py-5 text-left flex items-center justify-between hover:bg-gray-50 transition-colors",children:[t.jsx("span",{className:"text-lg font-semibold text-dark-blue font-quicksand pr-4",children:c.question}),t.jsx("i",{className:`fas fa-chevron-down text-orange transition-transform duration-300 ${o===d?"rotate-180":""}`})]}),t.jsx("div",{className:`overflow-hidden transition-all duration-300 ${o===d?"max-h-96 opacity-100":"max-h-0 opacity-0"}`,children:t.jsx("div",{className:"px-6 pb-5 text-gray-600 font-quicksand leading-relaxed border-t border-gray-100 pt-4",children:c.answer})})]},d))})]}),t.jsx(no,{topic:"open-edx"}),t.jsxs("div",{className:"text-center bg-gradient-to-r from-dark-blue to-purple rounded-2xl p-8 md:p-12",children:[t.jsx("h2",{className:"text-3xl font-bold text-white mb-4 font-quicksand",children:i?"¿Listo para Lanzar su Plataforma Open edX?":"Ready to Launch Your Open edX Platform?"}),t.jsx("p",{className:"text-lg text-white/90 mb-8 font-quicksand",children:i?"Únase a cientos de organizaciones que confían en Aulasneo para sus necesidades de hosting y personalización de Open edX.":"Join hundreds of organizations that trust Aulasneo for their Open edX hosting and customization needs."}),t.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[t.jsx(E,{href:i?"/es/contact/":"/contact/",className:"bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:e("cta.button")}),t.jsx("a",{href:"https://calendly.com/esteban-etcheverry",target:"_blank",rel:"noopener noreferrer",className:"bg-white text-dark-blue px-8 py-3 rounded-lg hover:bg-gray-100 transition-colors font-semibold font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"Reservar Demo Guiado":"Book a Guided Demo"})]})]})]})})]})}function dp(){const{t:e,language:n}=J();return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:e("panorama.title"),description:e("panorama.description"),keywords:"Learning Analytics, LMS analytics, Open edX analytics, Panorama, multi-LMS analytics, student performance tracking",canonical:n==="es"?"https://aulasneo.com/es/solutions/panorama/":"https://aulasneo.com/solutions/panorama/",hreflangEn:"https://aulasneo.com/solutions/panorama/",hreflangEs:"https://aulasneo.com/es/solutions/panorama/",structuredData:{faq:br.panorama[n==="es"?"es":"en"]}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-16",children:[t.jsx("div",{className:"bg-purple w-20 h-20 rounded-2xl flex items-center justify-center mx-auto mb-6",children:t.jsx("i",{className:"fas fa-chart-line text-white text-3xl"})}),t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-dark-blue mb-6 font-quicksand",children:e("panorama.hero.title")}),t.jsxs("p",{className:"text-xl text-gray-600 max-w-3xl mx-auto font-quicksand",children:[e("panorama.hero.description")," ",t.jsx(E,{href:"/solutions/openedx/",className:"text-dark-blue hover:text-dark-blue/80 font-semibold",children:e("panorama.hero.openedx.link")})," ",e("panorama.hero.description2")," ",t.jsx(E,{href:"/solutions/owly/",className:"text-purple hover:text-purple/80 font-semibold",children:e("panorama.hero.owly.link")}),"."]})]}),t.jsx("div",{className:"mb-16",children:t.jsx("div",{className:"max-w-4xl mx-auto",children:t.jsx("div",{className:"relative w-full",style:{paddingBottom:"56.25%"},children:t.jsx("iframe",{src:"https://player.vimeo.com/video/1142449288?h=0&title=0&byline=0&portrait=0",className:"absolute top-0 left-0 w-full h-full rounded-2xl shadow-lg",frameBorder:"0",allow:"autoplay; fullscreen; picture-in-picture",allowFullScreen:!0,title:"Panorama Analytics Demo","data-testid":"video-panorama-demo"})})})}),t.jsxs("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-8 mb-16",children:[t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple/10 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4",children:t.jsx("i",{className:"fas fa-network-wired text-purple text-xl"})}),t.jsx("h3",{className:"text-lg font-bold text-dark-blue mb-2 font-quicksand",children:e("panorama.feature1.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.feature1.desc")})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple/10 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4",children:t.jsx("i",{className:"fas fa-tachometer-alt text-purple text-xl"})}),t.jsx("h3",{className:"text-lg font-bold text-dark-blue mb-2 font-quicksand",children:e("panorama.feature2.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.feature2.desc")})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple/10 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4",children:t.jsx("i",{className:"fas fa-sliders-h text-purple text-xl"})}),t.jsx("h3",{className:"text-lg font-bold text-dark-blue mb-2 font-quicksand",children:e("panorama.feature3.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.feature3.desc")})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple/10 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4",children:t.jsx("i",{className:"fas fa-brain text-purple text-xl"})}),t.jsx("h3",{className:"text-lg font-bold text-dark-blue mb-2 font-quicksand",children:e("panorama.feature4.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.feature4.desc")})]})]}),t.jsx("div",{className:"bg-gray-50 rounded-2xl p-8 md:p-12 mb-16",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-6 text-center font-quicksand",children:e("panorama.challenge.title")}),t.jsx("p",{className:"text-gray-600 mb-6 font-quicksand text-center",children:e("panorama.challenge.intro")}),t.jsxs("div",{className:"grid md:grid-cols-2 gap-8 mb-8",children:[t.jsx("div",{children:t.jsxs("ul",{className:"space-y-3",children:[t.jsxs("li",{className:"flex items-start text-gray-600 font-quicksand",children:[t.jsx("i",{className:"fas fa-times text-red-500 mr-3 mt-1"}),e("panorama.challenge.problem1")]}),t.jsxs("li",{className:"flex items-start text-gray-600 font-quicksand",children:[t.jsx("i",{className:"fas fa-times text-red-500 mr-3 mt-1"}),e("panorama.challenge.problem2")]}),t.jsxs("li",{className:"flex items-start text-gray-600 font-quicksand",children:[t.jsx("i",{className:"fas fa-times text-red-500 mr-3 mt-1"}),e("panorama.challenge.problem3")]})]})}),t.jsx("div",{children:t.jsxs("ul",{className:"space-y-3",children:[t.jsxs("li",{className:"flex items-start text-gray-600 font-quicksand",children:[t.jsx("i",{className:"fas fa-check text-orange mr-3 mt-1"}),e("panorama.challenge.solution1")]}),t.jsxs("li",{className:"flex items-start text-gray-600 font-quicksand",children:[t.jsx("i",{className:"fas fa-check text-orange mr-3 mt-1"}),e("panorama.challenge.solution2")]}),t.jsxs("li",{className:"flex items-start text-gray-600 font-quicksand",children:[t.jsx("i",{className:"fas fa-check text-orange mr-3 mt-1"}),e("panorama.challenge.solution3")]})]})})]}),t.jsx("p",{className:"text-gray-600 font-quicksand text-center",children:e("panorama.challenge.conclusion")})]})}),t.jsxs("div",{className:"mb-16",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-8 text-center font-quicksand",children:e("panorama.roles.title")}),t.jsxs("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:[t.jsxs("div",{className:"bg-white rounded-xl p-6 border-2 border-gray-200",children:[t.jsx("div",{className:"bg-purple/10 w-12 h-12 rounded-lg flex items-center justify-center mb-4",children:t.jsx("i",{className:"fas fa-user-graduate text-purple"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("panorama.role.student.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.role.student.desc")})]}),t.jsxs("div",{className:"bg-white rounded-xl p-6 border-2 border-gray-200",children:[t.jsx("div",{className:"bg-purple/10 w-12 h-12 rounded-lg flex items-center justify-center mb-4",children:t.jsx("i",{className:"fas fa-chalkboard-teacher text-purple"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("panorama.role.instructor.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.role.instructor.desc")})]}),t.jsxs("div",{className:"bg-white rounded-xl p-6 border-2 border-gray-200",children:[t.jsx("div",{className:"bg-purple/10 w-12 h-12 rounded-lg flex items-center justify-center mb-4",children:t.jsx("i",{className:"fas fa-users-cog text-purple"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("panorama.role.admin.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.role.admin.desc")})]}),t.jsxs("div",{className:"bg-white rounded-xl p-6 border-2 border-gray-200",children:[t.jsx("div",{className:"bg-purple/10 w-12 h-12 rounded-lg flex items-center justify-center mb-4",children:t.jsx("i",{className:"fas fa-chart-bar text-purple"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("panorama.role.executive.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.role.executive.desc")})]}),t.jsxs("div",{className:"bg-white rounded-xl p-6 border-2 border-gray-200",children:[t.jsx("div",{className:"bg-purple/10 w-12 h-12 rounded-lg flex items-center justify-center mb-4",children:t.jsx("i",{className:"fas fa-handshake text-purple"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("panorama.role.partner.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.role.partner.desc")})]}),t.jsxs("div",{className:"bg-white rounded-xl p-6 border-2 border-gray-200",children:[t.jsx("div",{className:"bg-purple/10 w-12 h-12 rounded-lg flex items-center justify-center mb-4",children:t.jsx("i",{className:"fas fa-flask text-purple"})}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue mb-3 font-quicksand",children:e("panorama.role.scientist.t
676itle")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.role.scientist.desc")})]})]})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-8 md:p-12 mb-16",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-8 text-center font-quicksand",children:e("panorama.technical.title")}),t.jsx("p",{className:"text-lg text-gray-600 mb-8 text-center font-quicksand",children:e("panorama.technical.intro")}),t.jsxs("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:[t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple/10 w-12 h-12 rounded-lg flex items-center justify-center mx-auto mb-3",children:t.jsx("i",{className:"fas fa-bolt text-purple"})}),t.jsx("h3",{className:"font-bold text-dark-blue mb-2 font-quicksand",children:e("panorama.technical.speed.title")}),t.jsx("p",{className:"text-sm text-gray-600 font-quicksand",children:e("panorama.technical.speed.desc")})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple/10 w-12 h-12 rounded-lg flex items-center justify-center mx-auto mb-3",children:t.jsx("i",{className:"fas fa-puzzle-piece text-purple"})}),t.jsx("h3",{className:"font-bold text-dark-blue mb-2 font-quicksand",children:e("panorama.technical.simplicity.title")}),t.jsx("p",{className:"text-sm text-gray-600 font-quicksand",children:e("panorama.technical.simplicity.desc")})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple/10 w-12 h-12 rounded-lg flex items-center justify-center mx-auto mb-3",children:t.jsx("i",{className:"fas fa-expand-arrows-alt text-purple"})}),t.jsx("h3",{className:"font-bold text-dark-blue mb-2 font-quicksand",children:e("panorama.technical.scalability.title")}),t.jsx("p",{className:"text-sm text-gray-600 font-quicksand",children:e("panorama.technical.scalability.desc")})]}),t.jsxs("div",{className:"text-center",children:[t.jsx("div",{className:"bg-purple/10 w-12 h-12 rounded-lg flex items-center justify-center mx-auto mb-3",children:t.jsx("i",{className:"fas fa-shield-alt text-purple"})}),t.jsx("h3",{className:"font-bold text-dark-blue mb-2 font-quicksand",children:e("panorama.technical.security.title")}),t.jsx("p",{className:"text-sm text-gray-600 font-quicksand",children:e("panorama.technical.security.desc")})]})]})]}),t.jsxs("div",{className:"grid md:grid-cols-2 gap-12 mb-16",children:[t.jsxs("div",{children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-6 font-quicksand",children:e("panorama.institutions.title")}),t.jsxs("ul",{className:"space-y-4",children:[t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-orange mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("panorama.institutions.feature1.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.institutions.feature1.desc")})]})]}),t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-orange mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("panorama.institutions.feature2.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.institutions.feature2.desc")})]})]}),t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-orange mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("panorama.institutions.feature3.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.institutions.feature3.desc")})]})]})]})]}),t.jsxs("div",{children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-6 font-quicksand",children:e("panorama.training.title")}),t.jsxs("ul",{className:"space-y-4",children:[t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-orange mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("panorama.training.feature1.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.training.feature1.desc")})]})]}),t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-orange mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("panorama.training.feature2.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.training.feature2.desc")})]})]}),t.jsxs("li",{className:"flex items-start space-x-3",children:[t.jsx("i",{className:"fas fa-check text-orange mt-1"}),t.jsxs("div",{children:[t.jsx("h4",{className:"font-semibold text-dark-blue font-quicksand",children:e("panorama.training.feature3.title")}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:e("panorama.training.feature3.desc")})]})]})]})]})]}),t.jsxs("section",{className:"mb-16 max-w-4xl mx-auto","aria-labelledby":"faq-heading",children:[t.jsx("h2",{id:"faq-heading",className:"text-3xl font-bold text-dark-blue mb-6 font-quicksand text-center",children:n==="es"?"Preguntas frecuentes":"Frequently asked questions"}),t.jsx(Va,{items:br.panorama[n==="es"?"es":"en"]})]}),t.jsx(no,{topic:"analytics"}),t.jsxs("div",{className:"text-center bg-purple/5 rounded-2xl p-8 md:p-12",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-4 font-quicksand",children:e("panorama.cta.title")}),t.jsx("p",{className:"text-lg text-gray-600 mb-8 font-quicksand",children:e("panorama.cta.description")}),t.jsx(E,{href:n==="es"?"/es/contact/":"/contact/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand","data-testid":"link-contact-panorama-demo",children:e("panorama.cta.demo")})]})]})})]})}const A1={en:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],es:["ene","feb","mar","abr","may","jun","jul","ago","sep","oct","nov","dic"]};function O1(e,n){const[a,s,o]=e.split("-").map(Number),r=A1[n][s-1];return n==="es"?`${o} ${r} ${a}`:`${r} ${o}, ${a}`}function C1({article:e,lang:n}){const a=Bs.find(s=>s.id===e.topic);return t.jsx("li",{children:t.jsxs(E,{href:e.path,className:"group flex h-full flex-col overflow-hidden rounded-2xl bg-white shadow-[0_18px_44px_rgba(6,43,96,0.12)] transition-transform hover:-translate-y-1",children:[e.image?t.jsx("img",{src:e.image,alt:"",loading:"lazy",className:"aspect-video w-full object-cover"}):t.jsx("div",{className:"flex aspect-video w-full items-end bg-[#062b60
676] p-6",children:t.jsx("span",{className:"font-quicksand text-2xl font-bold leading-tight text-white line-clamp-3",children:e.title})}),t.jsxs("div",{className:"flex flex-1 flex-col p-6",children:[t.jsxs("p",{className:"text-xs font-bold uppercase tracking-[0.12em] text-[#24497F] font-quicksand mb-2",children:[a.label[n]," · ",O1(e.date,n)]}),t.jsx("h2",{className:"text-xl font-bold leading-snug text-dark-blue font-quicksand mb-3",children:e.title}),t.jsx("p",{className:"text-sm text-gray-600 font-quicksand line-clamp-3 mb-4",children:e.excerpt}),t.jsxs("p",{className:"mt-auto text-sm text-gray-500 font-quicksand",children:[n==="es"?"Por":"By"," ",e.author,e.readTime?` · ${e.readTime} min`:""]})]})]})})}function up(){const{language:e}=J(),n=e==="es",a=n?"es":"en",s=nd(a),o=Bs.filter(d=>s.some(u=>u.topic===d.id)),[r,i]=v.useState("all"),l=r==="all"?s:s.filter(d=>d.topic===r),c=d=>`rounded-full px-4 py-2 text-sm font-semibold font-quicksand transition-colors ${d?"bg-[#062b60] text-white":"bg-gray-100 text-[#062b60] hover:bg-gray-200"}`;return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:n?"Blog - LMS, Open edX y Agente de IA para Educación":"Blog - LMS, Open edX & AI Agent for Education Insights",description:n?"Descubre perspectivas sobre optimización de LMS, mejores prácticas de Open edX, agentes de IA para educación y learning analytics de los expertos EdTech de Aulasneo.":"Discover insights on LMS optimization, Open edX best practices, AI agents for education, and learning analytics from Aulasneo's EdTech experts.",keywords:"LMS blog, Open edX, AI Agent for education, Learning Analytics, EdTech insights, online learning best practices",canonical:n?"https://aulasneo.com/es/blog/":"https://aulasneo.com/blog/",hreflangEn:"https://aulasneo.com/blog/",hreflangEs:"https://aulasneo.com/es/blog/"}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-10",children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-neutral-800 mb-6 font-quicksand",children:n?"Blog: LMS, Open edX y agentes de IA para educación":"Blog: LMS, Open edX & AI Agent Insights"}),t.jsx("p",{className:"text-xl text-neutral-600 max-w-3xl mx-auto font-quicksand",children:n?"Guías prácticas, lecciones de proyectos reales y novedades sobre aprendizaje en línea.":"Practical guides, lessons from real projects and news about online learning."})]}),t.jsxs("div",{className:"flex flex-wrap justify-center gap-2 mb-12",role:"group","aria-label":n?"Filtrar por tema":"Filter by topic",children:[t.jsxs("button",{type:"button",className:c(r==="all"),"aria-pressed":r==="all",onClick:()=>i("all"),children:[n?"Todos":"All"," (",s.length,")"]}),o.map(d=>t.jsxs("button",{type:"button",className:c(r===d.id),"aria-pressed":r===d.id,onClick:()=>i(d.id),children:[d.label[a]," (",s.filter(u=>u.topic===d.id).length,")"]},d.id))]}),t.jsx("ul",{className:"grid gap-8 md:grid-cols-2 lg:grid-cols-3",children:l.map(d=>t.jsx(C1,{article:d,lang:a},d.path))})]})})]})}const Dg=v.forwardRef(({className:e,...n},a)=>t.jsx("div",{ref:a,className:Ge("rounded-lg border bg-card text-card-foreground shadow-sm",e),...n}));Dg.displayName="Card";const E1=v.forwardRef(({className:e,...n},a)=>t.jsx("div",{ref:a,className:Ge("flex flex-col space-y-1.5 p-6",e),...n}));E1.displayName="CardHeader";const z1=v.forwardRef(({className:e,...n},a)=>t.jsx("div",{ref:a,className:Ge("text-2xl font-semibold leading-none tracking-tight",e),...n}));z1.displayName="CardTitle";const q1=v.forwardRef(({className:e,...n},a)=>t.jsx("div",{ref:a,className:Ge("text-sm text-muted-foreground",e),...n}));q1.displayName="CardDescription";const Hg=v.forwardRef(({className:e,...n},a)=>t.jsx("div",{ref:a,className:Ge("p-6 pt-0",e),...n}));Hg.displayName="CardContent";const P1=v.forwardRef(({className:e,...n},a)=>t.jsx("div",{ref:a,className:Ge("flex items-center p-6 pt-0",e),...n}));P1.displayName="CardFooter";function Ug(){return t.jsx("div",{className:"min-h-screen w-full flex items-center justify-center bg-gray-50",children:t.jsx(Dg,{className:"w-full max-w-md mx-4",children:t.jsxs(Hg,{className:"pt-6",children:[t.jsxs("div",{className:"flex mb-4 gap-2",children:[t.jsx(Pb,{className:"h-8 w-8 text-red-500"}),t.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"404 Page Not Found"})]}),t.jsx("p",{className:"mt-4 text-sm text-gray-600",children:"Did you forget to add the page to the router?"})]})})})}const Ao=e=>e.replace(/\/+$/,"");function an({path:e,lang:n}){const a=nd(n),s=a.find(p=>Ao(p.path)===Ao(e)),o=(s==null?void 0:s.topic)??"open-edx",{service:r,caseStudies:i}=Rg[o],l=Bs.find(p=>p.id===o).label[n],c=n==="es",d=a.filter(p=>Ao(p.path)!==Ao(e)),u=[...d.filter(p=>p.topic===o),...d.filter(p=>p.topic!==o)].slice(0,3);return t.jsxs("div",{className:"mt-16 space-y-14 font-quicksand",children:[t.jsxs("aside",{className:"rounded-2xl bg-[#062b60
676] p-8 text-white md:p-10","aria-label":r.title[n],children:[t.jsx("p",{className:"text-xs font-bold uppercase tracking-[0.12em] text-[#FAA95B]",children:l}),t.jsx("h2",{className:"mt-2 text-2xl font-bold md:text-3xl",children:r.title[n]}),t.jsx("p",{className:"mt-3 max-w-2xl text-white/85",children:r.text[n]}),t.jsxs(E,{href:r.href[n],className:"mt-6 inline-block rounded-full bg-[#ef9245] px-6 py-3 font-bold text-[#062b60] transition-colors hover:bg-[#faa95b]",children:[r.cta[n]," →"]})]}),i.length>0&&t.jsxs("section",{children:[t.jsx("h2",{className:"mb-6 text-2xl font-bold text-[#062b60]",children:c?"Casos de éxito relacionados":"Related success stories"}),t.jsx(eo,{slugs:i,headingLevel:"h3",lang:n})]}),t.jsxs("section",{children:[t.jsx("h2",{className:"mb-6 text-2xl font-bold text-[#062b60]",children:c?"Seguí leyendo":"Keep reading"}),t.jsx("ul",{className:"grid gap-6 md:grid-cols-3",children:u.map(p=>t.jsx("li",{children:t.jsxs(E,{href:p.path,className:"group block h-full overflow-hidden rounded-xl bg-gray-50 transition-shadow hover:shadow-lg",children:[p.image&&t.jsx("img",{src:p.image,alt:"",loading:"lazy",className:"aspect-video w-full object-cover"}),t.jsxs("div",{className:"p-5",children:[t.jsx("p",{className:"mb-1 text-xs font-bold uppercase tracking-[0.12em] text-[#24497F]",children:Bs.find(m=>m.id===p.topic).label[n]}),t.jsx("h3",{className:"font-bold leading-snug text-[#062b60] group-hover:underline",children:p.title})]})]})},p.path))}),t.jsx("p",{className:"mt-6",children:t.jsx(E,{href:c?"/es/blog/":"/blog/",className:"font-semibold text-[#4E359E] hover:underline",children:c?"Ver todos los artículos →":"See all articles →"})})]})]})}function T1(e,n){const a=new Date(`${e}T00:00:00Z`);return Number.isNaN(a.getTime())?e:a.toLocaleDateString(n==="es"?"es-ES":"en-US",{year:"numeric",month:"long",day:"numeric",timeZone:"UTC"})}function M1(e){return e==="/"||e.endsWith("/")?e:`${e}/`}function I1(e){return M1(e.path||`/blog/${e.slug}`)}function pp(){var g,w;const[e,n]=ju("/es/blog/:slug"),[,a]=ju("/blog/:slug"),s=e?"es":"en",o=e?n:a,r=ed.find(k=>k.slug===(o==null?void 0:o.slug)&&(!k.language||k.language===s)),[i,l]=v.useState((r==null?void 0:r.content)??""),[c,d]=v.useState(!1);if(v.useEffect(()=>{if(!r){l(""),d(!1);return}if(l(r.content),d(!1),!r.contentUrl)return;let k=!1;return fetch(r.contentUrl).then(N=>{if(!N.ok)throw new Error(`Failed to load article content (${N.status})`);return N.text()}).then(N=>{k||l(N)}).catch(()=>{k||d(!0)}),()=>{k=!0}},[r]),!r)return t.jsx(Ug,{});const u=I1(r),p=`https://aulasneo.com${u}`,m=vr[r.author],y=r.authorUrl??(m==null?void 0:m.linkedin),b=r.authorRole??(m==null?void 0:m.role[s==="es"?"es":"en"]),x=r.alternateSlug?s==="es"?`/blog/${r.alternateSlug}/`:`/es/blog/${r.alternateSlug}/`:void 0,j=x?`https://aulasneo.com${x}`:void 0,f=r.image.startsWith("http")?r.image:`https://aulasneo.com${r.image}`,h={"@context":"https://schema.org","@type":"BlogPosting",headline:r.title,description:r.excerpt,image:[f],datePublished:r.date,dateModified:r.dateModified||r.date,inLanguage:s,author:tn(r.author),publisher:{"@type":"Organization","@id":"https://aulasneo.com/#organization",name:"Aulasneo",url:"https://aulasneo.com/",logo:{"@type":"ImageObject",url:"https://aulasneo.com/images/logo-color.png"}},mainEntityOfPage:{"@type":"WebPage","@id":p},keywords:(g=r.tags)==null?void 0:g.join(", "),articleSection:"Blog",url:p};return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:`${r.title} | Aulasneo Blog`,description:r.excerpt,keywords:(w=r.tags)==null?void 0:w.join(", "),ogTitle:r.title,ogDescription:r.excerpt,ogType:"article",ogUrl:p,canonical:p,hreflangEn:s==="en"?p:j,hreflangEs:s==="es"?p:j,ogImage:f,ogImageAlt:r.title,ogImageWidth:r.authorRole?"1200":void 0,ogImageHeight:r.authorRole?"630":void 0,rawSchemas:[{id:"blog-posting-schema",data:h}],structuredData:r.faq?{faq:r.faq}:void 0}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsx("nav",{className:"mb-8",children:t.jsxs("ol",{className:"flex items-center space-x-2 text-sm text-neutral-600",children:[t.jsx("li",{children:t.jsx(E,{href:e?"/es/":"/",className:"hover:text-primary",children:e?"Inicio":"Home"})}),t.jsx("li",{children:t.jsx("i",{className:"fas fa-chevron-right text-xs"})}),t.jsx("li",{children:t.jsx(E,{href:e?"/es/blog/":"/blog/",className:"hover:text-primary",children:"Blog"})}),t.jsx("li",{children:t.jsx("i",{className:"fas fa-chevron-right text-xs"})}),t.jsx("li",{className:"text-neutral-400",children:r.title})]})}),t.jsxs("header",{className:"mb-12",children:[t.jsxs("div",{className:"text-sm text-secondary mb-4 flex items-center space-x-4",children:[t.jsx("span",{children:T1(r.date,s)}),t.jsx("span",{children:"•"}),t.jsxs("span",{children:[e?"Por":"By"," ",y?t.jsx("a",{href:y,target:"_blank",rel:"noopener noreferrer",className:"hover:text-primary underline underline-offset-2",children:r.author}):r.author]}),t.jsx("span",{children:"•"}),t.jsxs("span",{children:[r.readTime," ",e?"min de lectura":"min read"]})]}),t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-neutral-800 mb-6",children:r.title}),t.jsx("p",{className:"text-xl text-neutral-600 mb-8",children:r.excerpt}),t.jsx("img",{src:r.image,alt:r.title,className:"w-full h-64 md:h-96 object-cover rounded-xl"})]}),t.jsx("article",{className:"prose prose-lg max-w-none",children:c?t.jsx("p",{children:e?"No se pudo cargar el contenido del artículo.":"The article content could not be loaded."}):i?t.jsx("div",{dangerouslySetInnerHTML:{__html:i}}):t.jsx("p",{children:e?"Cargando artículo…":"Loading article…"})}),r.faq&&r.faq.length>0&&t.jsxs("section",{className:"mt-12","aria-labelledby":"faq-heading",children:[t.jsx("h2",{id:"faq-heading",className:"text-3xl font-bold text-[#062b60
676] font-quicksand mb-6",children:e?"Preguntas frecuentes":"Frequently asked questions"}),t.jsx(Va,{items:r.faq})]}),r.tags&&t.jsx("div",{className:"mt-12 pt-8 border-t border-neutral-200",children:t.jsx("div",{className:"flex flex-wrap gap-2",children:r.tags.map((k,N)=>t.jsx("span",{className:"bg-neutral-100 text-neutral-600 px-3 py-1 rounded-full text-sm",children:k},N))})}),t.jsx("div",{className:"mt-12 pt-8 border-t border-neutral-200",children:t.jsxs("div",{className:"flex items-center space-x-4",children:[t.jsx("div",{className:"w-16 h-16 bg-primary rounded-full flex items-center justify-center",children:t.jsx("span",{className:"text-white font-bold text-xl",children:r.author[0]})}),t.jsxs("div",{children:[t.jsx("h3",{className:"text-lg font-bold text-neutral-800",children:y?t.jsx("a",{href:y,target:"_blank",rel:"noopener noreferrer",className:"hover:text-primary underline underline-offset-2",children:r.author}):r.author}),t.jsx("p",{className:"text-neutral-600",children:b||"Aulasneo"})]})]})}),t.jsx(an,{path:u,lang:s==="es"?"es":"en"})]})})})]})}const L1=["Afghanistan","Åland Islands","Albania","Algeria","Andorra","Angola","Anguilla","Antarctica","Antigua and Barbuda","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bonaire, Saint Eustatius and Saba","Bosnia and Herzegovina","Botswana","Bouvet Island","Brazil","Brunei","Bulgaria","Burkina Faso","Burundi","Cape Verde","Cambodia","Cameroon","Canada","Cayman Islands","Central African Republic","Chad","Chile","China","Colombia","Comoros","Cook Islands","Costa Rica","Croatia","Cuba","Cyprus","Czech Republic","Denmark","Djibouti","Dominica","Dominican Republic","Democratic Republic of the Congo","East Timor","Ecuador","Egypt","El Salvador","Equatorial Guinea","Eritrea","Estonia","Ethiopia","Falkland Islands","Fiji","Finland","France","French Guiana","French Polynesia","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guadeloupe","Guam","Guatemala","Guernsey","Guinea","Guinea Bissau","Guyana","Haiti","Heard Island and McDonald Islands","Holy See","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Israel","Italy","Ivory Coast","Jamaica","Japan","Jersey","Jordan","Kazakhstan","Kenya","Kiribati","Kosovo","Kuwait","Kyrgyzstan","Laos","Latvia","Lebanon","Lesotho","Liberia","Libya","Liechtenstein","Lithuania","Luxembourg","Macao","Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Marshall Islands","Martinique","Mauritania","Mauritius","Mayotte","Mexico","Micronesia","Moldova","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Myanmar","Namibia","Nauru","Nepal","Netherlands","New Caledonia","New Zealand","Nicaragua","Niger","Nigeria","Niue","North Korea","Northern Mariana Islands","Norway","Oman","Pakistan","Palau","Palestine","Panama","Papua New Guinea","Paraguay","Peru","Philippines","Pitcairn","Poland","Portugal","Puerto Rico","Qatar","Republic of the Congo","Réunion","Romania","Russia","Rwanda","Saint Barthelemy","Saint Helena, Ascension and Tristan da Cunha","Saint Kitts and Nevis","Saint Lucia","Saint Martin","Saint Pierre and Miquelon","Saint Vincent and the Grenadines","Samoa","San Marino","Sao Tome and Principe","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","Solomon Islands","Somalia","South Africa","South Georgia and the South Sandwich Islands","South Korea","South Sudan","Spain","Sri Lanka","Svalbard and Jan Mayen","Sudan","Suriname","Swaziland","Sweden","Switzerland","Syria","Tahiti","Taiwan","Tajikistan","Tanzania","Thailand","Togo","Tokelau","Tonga","Trinidad and Tobago","Tunisia","Turkey","Turkmenistan","Turks and Caicos Islands","Tuvalu","United Kingdom","United States","Unknown","Uganda","Ukraine","United Arab Emirates","Uruguay","Uzbekistan","Vanuatu","Venezuela","Vietnam","Virgin Islands (British)","Virgin Islands (U.S.)","Wallis and Futuna","Western Sahara","Yemen","Yugoslavia","Zambia","Zimbabwe"];function X1(){const{language:e}=J(),n=e==="es",[a,s]=v.useState({nombre:"",email:"",pais:"",telefono:"",detalle_su_consulta1:""}),[o,r]=v.useState({}),{status:i,submit:l}=Ig("contact"),c=y=>b=>s(x=>({...x,[y]:b.target.value})),d=()=>{const y={};return a.nombre.trim()||(y.nombre=n?"Este campo es obligatorio.":"This is required."),(!a.email.trim()||!/\S+@\S+\.\S+/.test(a.email))&&(y.email=n?"Ingresá un email válido.":"Please enter a valid email."),a.pais||(y.pais=n?"Este campo es obligatorio.":"This is required."),y},u=async y=>{y.preventDefault();const b=d();if(Object.keys(b).length>0){r(b);return}r({}),await l(y.currentTarget,{name:a.nombre,email:a.email,country:a.pais,phone:a.telefono,message:a.detalle_su_consulta1})&&s({nombre:"",email:"",pais:"",telefono:"",detalle_su_consulta1:""})},p="w-full border border-gray-200 rounded-xl px-4 py-3 font-quicksand text-sm text-gray-800 placeholder-gray-400 focus:outline-none focus:ring-2 focus:ring-[#ef9245]/40 focu
676s:border-[#ef9245] transition bg-white",m="block text-sm font-semibold text-[#062b60] font-quicksand mb-1.5";return i==="success"?t.jsxs("div",{className:"text-center py-12 px-6",children:[t.jsx("div",{className:"text-5xl mb-4",children:"✅"}),t.jsx("h3",{className:"text-2xl font-bold text-[#062b60] font-quicksand mb-2",children:n?"¡Mensaje enviado!":"Message sent!"}),t.jsx("p",{className:"text-gray-600 font-quicksand",children:n?"Gracias por contactarnos. Te responderemos dentro de las 24 horas.":"Thanks for reaching out! We'll get back to you within 24 hours."})]}):t.jsxs("form",{onSubmit:u,noValidate:!0,className:"space-y-5",children:[t.jsx(Lg,{}),i==="error"&&t.jsx(Xg,{className:"bg-red-50 border border-red-200 text-red-700 rounded-xl px-4 py-3 text-sm font-quicksand"}),t.jsxs("div",{children:[t.jsxs("label",{className:m,children:[n?"Nombre":"Name"," ",t.jsx("span",{className:"text-[#ef9245]",children:"*"})]}),t.jsx("input",{type:"text",value:a.nombre,onChange:c("nombre"),placeholder:n?"Tu nombre":"Your name",className:p}),o.nombre&&t.jsx("p",{className:"text-red-500 text-xs mt-1 font-quicksand",children:o.nombre})]}),t.jsxs("div",{children:[t.jsxs("label",{className:m,children:[n?"Correo electrónico":"Email"," ",t.jsx("span",{className:"text-[#ef9245]",children:"*"})]}),t.jsx("input",{type:"email",value:a.email,onChange:c("email"),placeholder:n?"[email protected]":"[email protected]",className:p}),o.email&&t.jsx("p",{className:"text-red-500 text-xs mt-1 font-quicksand",children:o.email})]}),t.jsxs("div",{children:[t.jsxs("label",{className:m,children:[n?"País":"Country"," ",t.jsx("span",{className:"text-[#ef9245]",children:"*"})]}),t.jsxs("select",{value:a.pais,onChange:c("pais"),className:p+" cursor-pointer",children:[t.jsx("option",{value:"",children:n?"Seleccioná tu país":"Select your country"}),L1.map(y=>t.jsx("option",{value:y,children:y},y))]}),o.pais&&t.jsx("p",{className:"text-red-500 text-xs mt-1 font-quicksand",children:o.pais})]}),t.jsxs("div",{children:[t.jsx("label",{className:m,children:n?"Teléfono":"Phone"}),t.jsx("input",{type:"text",value:a.telefono,onChange:c("telefono"),placeholder:n?"+54 11 1234-5678":"+1 555 000 0000",className:p})]}),t.jsxs("div",{children:[t.jsx("label",{className:m,children:n?"Detalle su consulta":"Please detail your request"}),t.jsx("textarea",{value:a.detalle_su_consulta1,onChange:c("detalle_su_consulta1"),placeholder:n?"Contanos sobre tu proyecto — usuarios, plazos, plataforma actual...":"Tell us about your project — number of users, timeline, current platform...",rows:4,className:p+" resize-none"})]}),t.jsx("button",{type:"submit",disabled:i==="submitting",className:"w-full bg-[#ef9245] text-white py-3.5 rounded-xl font-semibold font-quicksand hover:bg-[#e07c30] transition-colors shadow-md text-base disabled:opacity-60 disabled:cursor-not-allowed",children:i==="submitting"?n?"Enviando...":"Sending...":n?"Enviar mensaje":"Send message"})]})}function mp(){const{t:e}=J(),n=e("contact.title")==="Contáctanos";return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:n?"Contacto Aulasneo | LMS, Open edX y AI Agent para Educación":"Contact Aulasneo | LMS, Open edX & AI Agent for Education",description:n?"Contacta a Aulasneo para soluciones LMS, Open edX, agentes de IA para educación y analíticas de aprendizaje. Soporte EdTech experto.":"Contact Aulasneo for LMS solutions, Open edX expertise, AI agents for education, and learning analytics. Get expert EdTech support for your organization.",keywords:"contact Aulasneo, LMS support, Open edX consultation, AI Agent for education, Learning Analytics support",canonical:n?"https://aulasneo.com/es/contact/":"https://aulasneo.com/contact/",hreflangEn:"https://aulasneo.com/contact/",hreflangEs:"https://aulasneo.com/es/contact/"}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-dark-blue mb-6 font-quicksand",children:n?"Contáctanos para LMS, Open edX y AI Agents":"Contact Us for LMS, Open edX & AI Agents"}),t.jsx("p",{className:"text-xl text-gray-600 max-w-3xl mx-auto font-quicksand",children:e("contact.subtitle")})]}),t.jsxs("div",{className:"max-w-6xl mx-auto grid lg:grid-cols-2 gap-12",children:[t.jsx("div",{className:"bg-white rounded-2xl shadow-sm border border-gray-100 p-8",children:t.jsx(X1,{})}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-8 lg:p-10 h-fit",children:[t.jsx("h2",{className:"text-2xl font-bold text-dark-blue mb-8 font-quicksand",children:n?"Canales de Contacto":"How can we help?"}),t.jsxs("div",{className:"space-y-8",children:[t.jsxs("div",{className:"flex items-start gap-4",children:[t.jsx("div",{className:"bg-orange/10 w-12 h-12 rounded-lg flex items-center justify-center flex-shrink-0",children:t.jsx("i",{className:"fas fa-handshake text-orange text-xl"})}),t.jsxs("div",{children:[t.jsx("h3",{className:"text-lg font-bold text-dark-blue mb-1 font-quicksand",children:n?"Ventas y Alianzas":"Sales & Partnerships"}),t.jsx("p",{className:"text-gray-600 font-quicksand mb-2",children:n?"Para consultas sobre planes, desarrollos personalizados o demos.":"For inquiries about plans, custom developments, or demos."}),t.jsxs("a",{href:"mailto:[email protected]",className:"text-purple hover:text-purple/80 font-semibold font-quicksand flex items-center gap-2",children:[t.jsx("i",{className:"fas fa-envelope text-sm"}),"[email protected]"]})]})]}),t.jsx("div",{className:"border-t border-gray-200"}),t.jsxs("div",{className:"flex items-start gap-4",children:[t.jsx("div",{className:"bg-dark-blue/10 w-12 h-12 rounded-lg flex items-center justify-center flex-shrink-0",children:t.jsx("i",{className:"fas fa-headset text-dark-blue text-xl"})}),t.jsxs("div",{children:[t.jsx("h3",{className:"text-lg font-bold text-dark-blue mb-1 font-quicksand",children:n?"Soporte Técnico":"Technical Support"}),t.jsx("p",{className:"text-gray-600 font-quicksand mb-2",children:n?"¿Ya eres cliente? Contacta directo con ingeniería.":"Already a client? Reach our engineering team directly."}),t.jsxs("a",{href:"mailto:[email protected]",className:"text-purple hover:text-purple/80 font-semibold font-quicksand flex items-center gap-2",children:[t.jsx("i",{className:"fas fa-envelope text-sm"}),"[email protected]"]})]})]}),t.jsx("div",{className:"border-t border-gray-200"}),t.jsxs("div",{className:"flex items-start gap-4",children:[t.jsx("div",{className:"bg-purple/10 w-12 h-12 rounded-lg flex items-center justify-center flex-shrink-0",children:t.jsx("i",{className:"fas fa-building text-purple text-xl"})}),t.jsxs("div",{children:[t.jsx("h3",{className:"text-lg font-bold text-dark-blue mb-1 font-quicksand",children:n?"Oficina Central"
676:"Our Headquarters"}),t.jsx("p",{className:"text-gray-600 font-quicksand mb-1",children:t.jsx("strong",{children:"Aulasneo LLC"})}),t.jsx("p",{className:"text-gray-600 font-quicksand mb-2",children:"8 The Green, Dover, DE 19901, USA"}),t.jsxs("a",{href:"tel:+13022725945",className:"text-purple hover:text-purple/80 font-semibold font-quicksand flex items-center gap-2",children:[t.jsx("i",{className:"fas fa-phone text-sm"}),"+1 302 272 5945"]})]})]})]}),t.jsx("div",{className:"mt-10 pt-8 border-t border-gray-200",children:t.jsx("p",{className:"text-sm text-gray-500 font-quicksand text-center",children:n?"Responderemos en menos de 24 horas hábiles.":"We typically respond within 24 business hours."})})]})]})]})})]})}function _1(){const{t:e}=J();return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Thank You - Aulasneo",description:"Thank you for contacting Aulasneo. Our team will get back to you shortly to assist with your inquiry.",keywords:"thank you, contact confirmation, Aulasneo",canonical:"https://aulasneo.com/thank-you"}),t.jsx("div",{className:"min-h-screen bg-white flex items-center justify-center py-12 px-4",children:t.jsxs("div",{className:"max-w-md w-full text-center",children:[t.jsx("div",{className:"mx-auto w-16 h-16 bg-green-100 rounded-full flex items-center justify-center mb-6",children:t.jsx("i",{className:"fas fa-check text-green-600 text-2xl"})}),t.jsx("h1",{className:"text-3xl md:text-4xl font-bold text-dark-blue mb-6 font-quicksand",children:e("solutions.title")==="Nuestras Soluciones"?"¡Gracias!":"Thank You!"}),t.jsx("p",{className:"text-lg text-gray-600 mb-8 font-quicksand leading-relaxed",children:e("solutions.title")==="Nuestras Soluciones"?"Gracias por contactar a Aulasneo. Nuestro equipo se pondrá en contacto contigo en breve para ayudarte con tu consulta.":"Thank you for contacting Aulasneo. Our team will get back to you shortly to assist with your inquiry."}),t.jsx(E,{href:"/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg font-semibold font-quicksand hover:bg-orange/90 transition-colors duration-300 shadow-lg hover:shadow-xl transform hover:-translate-y-1",children:e("solutions.title")==="Nuestras Soluciones"?"Volver al Inicio":"Return to Home"}),t.jsx("div",{className:"mt-8 text-sm text-gray-500 font-quicksand",children:t.jsx("p",{children:e("solutions.title")==="Nuestras Soluciones"?"Respuesta típica en 24 horas durante días laborales":"Typical response within 24 hours on business days"})})]})})]})}function qi(e,n,a,s){return{"@type":"Offer",name:e,price:n,priceCurrency:"USD",url:s,priceSpecification:[{"@type":"UnitPriceSpecification",price:n,priceCurrency:"USD",unitText:"month, billed annually"},{"@type":"UnitPriceSpecification",price:a,priceCurrency:"USD",unitText:"month, billed monthly"}]}}function F1(e){return[{id:"pricing-offers-openedx",data:{"@context":"https://schema.org","@type":"Product",name:"Managed Open edX",description:"Fully managed Open edX hosting by Aulasneo, with unlimited users and courses.",brand:{"@id":"https://aulasneo.com/#organization"},offers:[qi("Silver",499,599,e),qi("Gold",999,1199,e),qi("Platinum",2199,2499,e)]}},{id:"pricing-offers-panorama",data:{"@context":"https://schema.org","@type":"Product",name:"Panorama Pro",description:"Panorama learning analytics for Open edX: 10 dashboards and unlimited users.",brand:{"@id":"https://aulasneo.com/#organization"},offers:{"@type":"Offer",price:250,priceCurrency:"USD",url:e,priceSpecification:{"@type":"UnitPriceSpecification",price:250,priceCurrency:"USD",unitText:"month"}}}}]}function hp(){const{language:e,t:n}=J(),[a,s]=v.useState("openedx"),[o,r]=v.useState(!0),l={en:{title:"Pricing Plans",subtitle:"Choose the perfect solution for your organization",openedx:"Open edX LMS",panorama:"Panorama Analytics",monthly:"Monthly",annual:"Annual",featureComparison:"Feature Comparison",features:"Features",getStarted:"Get Started",contactSales:"Contact Sales",openedxAdvanced:{name:"Silver Plan",tagline:"Essential customization and integrations.",features:["The Open edX Platform","UNLIMITED USERS & COURSES","Custom Domain & Branding","Community Supp
676ort (no human support)"],infrastructure:"Provided infrastructure: up to 50 GB RAM / 40 vCPU. Approximate capacity: <strong>up to 5,000 monthly active learners</strong> and <strong>up to 1,000 at the same time</strong>.",button:"Get Silver Plan"},openedxPremium:{name:"Gold Plan",tagline:"Advanced analytics and priority support.",features:["All included in Silver plus:","PANORAMA Analytics","Email with Priority Support"],infrastructure:"Provided infrastructure: up to 70 GB RAM / 50 vCPU. Approximate capacity: <strong>up to 10,000 monthly active learners</strong> and <strong>up to 4,000 at the same time</strong>.",button:"Get Gold Plan"},openedxPlatinum:{name:"Platinum Plan",tagline:"Complete support plus expert services.",features:["All included in Gold, plus:","PANORAMA Analytics Author Users","Customizable Platform","Customer Success Manager"],infrastructure:"Provided infrastructure: up to 100 GB RAM / 90 vCPU. Approximate capacity: <strong>up to 50,000 monthly active learners</strong> and <strong>up to 10,000 at the same time</strong>.",button:"Get Platinum Plan"},panoramaIncluded:{name:"Panorama in Managed Open edX",tagline:"Learning analytics built into your Aulasneo platform.",price:"Included*",note:"*With Aulasneo's managed Open edX, Gold plan and above.",features:["Ready-to-use dashboards","Staff and student views inside Open edX","Managed data pipeline"],button:"See Open edX plans"},panoramaPro:{name:"Panorama Pro",tagline:"Advanced analytics for growing organizations.",features:["10 dashboards","Unlimited users"],button:"Get Panorama Pro"},panoramaEnterprise:{name:"Panorama Enterprise",tagline:"Full customization and multi-LMS integration.",features:["Custom dashboards","Dashboard author user","Multiple data sources","Multiple LMSs"],button:"Contact Sales"}},es:{title:"Planes de Precios",subtitle:"Elige la solución perfecta para tu organización",openedx:"Open edX LMS",panorama:"Panorama Analytics",monthly:"Mensual",annual:"Anual",featureComparison:"Comparación de Características",features:"Características",getStarted:"Comenzar",contactSales:"Contactar Ventas",openedxAdvanced:{name:"Plan Plata",tagline:"Personalización e integraciones esenciales.",features:["La Plataforma Open edX","USUARIOS Y CURSOS ILIMITADOS","Dominio Personalizado y Marca","Soporte Comunitario"],infrastructure:"Infraestructura provista: hasta 50 GB RAM / 40 vCPU. Capacidad aproximada: <strong>hasta 5,000 alumnos activos por mes</strong> y <strong>hasta 1,000 al mismo tiempo</strong>.",button:"Obtener Plan Plata"},openedxPremium:{name:"Plan Oro",tagline:"Análisis avanzados y soporte prioritario.",features:["Todo lo incluido en Plata más:","Analytics PANORAMA","Email con Soporte Prioritario"],infrastructure:"Infraestructura provista: hasta 70 GB RAM / 50 vCPU. Capacidad aproximada: <strong>hasta 10,000 alumnos activos por mes</strong> y <strong>hasta 4,000 al mismo tiempo</strong>.",button:"Obtener Plan Oro"},openedxPlatinum:{name:"Plan Platino",tagline:"Soporte completo más servicios especializados.",features:["Todo lo incluido en Oro, más:","Usuarios Autor PANORAMA Analytics","Plataforma Personalizable","Customer Success Manager"],infrastructure:"Infraestructura provista: hasta 100 GB RAM / 90 vCPU. Capacidad aproximada: <strong>hasta 50,000 alumnos activos por mes</strong> y <strong>hasta 10,000 al mismo tiempo</strong>.",button:"Obtener Plan Platino"},panoramaIncluded:{name:"Panorama en Open edX gestionado",tagline:"Analítica de aprendizaje integrada en tu plataforma Aulasneo.",price:"Incluido*",note:"*Con Open edX gestionado por Aulasneo, plan Oro en adelante.",features:["Dashboards listos para usar","Vistas para el equipo y para estudiantes dentro de Open edX","Pipeline de datos gestionado"],button:"Ver planes de Open edX"},panoramaPro:{name:"Panorama Pro",tagline:"Analytics avanzados para organizaciones en crecimiento.",features:["10 dashboards","Usuarios ilimitados"],button:"Obtener Panorama Pro"},panoramaEnterprise:{name:"Panorama Enterprise",tagline:"Personalización completa e integración multi-LMS.",features:["Dashboards personalizados","Usuario autor de dashboard","Múltiples fuentes de datos","Múltiples LMSs"],button:"Contactar Ventas"}}}[e],c=()=>t.jsxs("div",{children:[t.jsxs("div",{className:"text-center mb-12",children:[t.jsx("h2",{className:"text-4xl font-bold text-dark-blue mb-4 font-quicksand",children:"Open edX"}),t.jsx("p",{className:"text-xl text-gray-600 font-quicksand",children:e==="es"?"Plataforma exclusiva para tu organización con usuarios ilimitados":"Exclusive platform for your organization with unlimited users"})]}),t.jsxs("div",{className:"flex items-center justify-center mb-12",children:[t.jsx("span",{className:`mr-4 font-quicksand text-lg ${o?"text-gray-500":"text-dark-blue font-semibold"}`,children:l.monthly}),t.jsx("button",{onClick:()=>r(!o),className:`relative inline-flex h-7 w-12 items-center rounded-full transition-colors ${o?"bg-orange":"bg-gray-300"}`,children:t.jsx("span",{className:`inline-block h-5 w-5 transform rounded-full bg-white transition-transform ${o?"translate-x-6":"translate-x-1"}`})}),t.jsx("span",{className:`ml-4 font-quicksand text-lg ${o?"text-dark-blue font-semibold":"text-gray-500"}`,children:l.annual})]}),t.jsxs("div",{className:"grid md:grid-cols-3 gap-8 max-w-6xl mx-auto mb-16",children:[t.jsxs("div",{className:"bg-white rounded-lg p-8 border border-gray-200 hover:border-gray-300 transition-colors",children:[t.jsx("h3",{className:"text-2xl font-bold text-dark-blue mb-2 font-quicksand",children:l.openedxAdvanced.name}),t.jsx("p",{className:"text-gray-600 mb-6 font-quicksand text-sm",children:l.openedxAdvanced.tagline}),t.jsx("div",{className:"mb-8",children:t.jsxs("div",{className:"text-4xl font-bold text-dark-blue font-quicksand",children:["USD $",o?"499":"599",t.jsx("span",{className:"text-lg text-gray-600 font-normal",children:e==="es"?"/mes":"/month"})]})}),t.jsx("ul",{className:"space-y-4 mb-4",children:l.openedxAdvanced.features.map((u,p)=>t.jsxs("li",{className:"flex items-start font-quicksand text-gray-700",children:[t.jsx("i",{className:"fas fa-check text-orange mr-3 mt-1 flex-shrink-0"}),u]},p))}),t.jsx("div",{className:"bg-gray-50 rounded-lg p-3 mb-8",children:t.jsx("p",{className:"text-sm text-gray-600 font-quicksand",dangerouslySetInnerHTML:{__html:l.openedxAdvanced.infrastru
676cture}})}),t.jsx("div",{className:"flex flex-col gap-2",children:t.jsx("a",{href:o?"https://buy.stripe.com/9B6bJ10oW6r00pq4On6sw0d":"https://buy.stripe.com/bJe5kD9Zw4iSdcc3Kj6sw0c",target:"_blank",rel:"noopener noreferrer",className:"w-full bg-orange text-white py-3 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:o?e==="es"?"Plan Plata Anual":"Silver Plan Annual":e==="es"?"Plan Plata Mensual":"Silver Plan Monthly"})})]}),t.jsxs("div",{className:"bg-white rounded-lg p-8 border-2 border-purple relative",children:[t.jsx("div",{className:"absolute -top-3 left-1/2 transform -translate-x-1/2 bg-purple text-white px-4 py-1 rounded-full text-sm font-semibold font-quicksand",children:e==="es"?"Más Popular":"Most Popular"}),t.jsx("h3",{className:"text-2xl font-bold text-dark-blue mb-2 font-quicksand",children:l.openedxPremium.name}),t.jsx("p",{className:"text-gray-600 mb-6 font-quicksand text-sm",children:l.openedxPremium.tagline}),t.jsx("div",{className:"mb-8",children:t.jsxs("div",{className:"text-4xl font-bold text-dark-blue font-quicksand",children:["USD $",o?"999":"1,199",t.jsx("span",{className:"text-lg text-gray-600 font-normal",children:e==="es"?"/mes":"/month"})]})}),t.jsx("ul",{className:"space-y-4 mb-4",children:l.openedxPremium.features.map((u,p)=>t.jsxs("li",{className:"flex items-start font-quicksand text-gray-700",children:[t.jsx("i",{className:"fas fa-check text-orange mr-3 mt-1 flex-shrink-0"}),u]},p))}),t.jsx("div",{className:"bg-gray-50 rounded-lg p-3 mb-8",children:t.jsx("p",{className:"text-sm text-gray-600 font-quicksand",dangerouslySetInnerHTML:{__html:l.openedxPremium.infrastructure}})}),t.jsx("div",{className:"flex flex-col gap-2",children:t.jsx("a",{href:o?"https://buy.stripe.com/00g29b95j5kSba8fZ2":"https://buy.stripe.com/3cs8xz1CR28Ga64fZ1",target:"_blank",rel:"noopener noreferrer",className:"w-full bg-orange text-white py-3 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:o?e==="es"?"Plan Oro Anual":"Gold Plan Annual":e==="es"?"Plan Oro Mensual":"Gold Plan Monthly"})})]}),t.jsxs("div",{className:"bg-white rounded-lg p-8 border border-gray-200 hover:border-gray-300 transition-colors",children:[t.jsx("h3",{className:"text-2xl font-bold text-dark-blue mb-2 font-quicksand",children:l.openedxPlatinum.name}),t.jsx("p",{className:"text-gray-600 mb-6 font-quicksand text-sm",children:l.openedxPlatinum.tagline}),t.jsx("div",{className:"mb-8",children:t.jsxs("div",{className:"text-4xl font-bold text-dark-blue font-quicksand",children:["USD $",o?"2,199":"2,499",t.jsx("span",{className:"text-lg text-gray-600 font-normal",children:e==="es"?"/mes":"/month"})]})}),t.jsx("ul",{className:"space-y-4 mb-4",children:l.openedxPlatinum.features.map((u,p)=>t.jsxs("li",{className:"flex items-start font-quicksand text-gray-700",children:[t.jsx("i",{className:"fas fa-check text-orange mr-3 mt-1 flex-shrink-0"}),u]},p))}),t.jsx("div",{className:"bg-gray-50 rounded-lg p-3 mb-8",children:t.jsx("p",{className:"text-sm text-gray-600 font-quicksand",dangerouslySetInnerHTML:{__html:l.openedxPlatinum.infrastructure}})}),t.jsx("div",{className:"flex flex-col gap-2",children:t.jsx("a",{href:"https://buy.stripe.com/4gw0133KZ6oW5POfZ3",target:"_blank",rel:"noopener noreferrer",className:"w-full bg-orange text-white py-3 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:o?e==="es"?"Plan Platino Anual":"Platinum Plan Annual":e==="es"?"Plan Platino Mensual":"Platinum Plan Monthly"})})]})]}),t.jsx("div",{className:"max-w-4xl mx-auto mb-16 bg-gray-50 rounded-lg p-6",children:t.jsx("p",{className:"text-base text-gray-600 font-quicksand leading-relaxed text-center",children:e==="es"?"Nuestros costos se basan en el rendimiento de la infraestructura y el uso, no en licencias por usuario. Open edX® no tiene costos de licencia, por lo que puedes escalar tu base de alumnos sin restricciones. Nos enfocamos en proveer el hardware necesario para garantizar estabilidad en altas cargas de trabajo.":"Pricing is based on infrastru
676cture performance and usage rather than per-user seats. Since Open edX® has no license fees, you can grow your learner base as much as you need. We provide the dedicated hardware power required to sustain high-performance workloads."})}),t.jsxs("div",{className:"mt-16 bg-gray-50 rounded-lg p-8",children:[t.jsx("h3",{className:"text-3xl font-bold text-dark-blue mb-6 text-center font-quicksand",children:e==="es"?"Expande Tus Capacidades con Nuestros Add-Ons y Servicios Especializados":"Expand Your Capabilities with Our Expert Add-Ons and Services"}),t.jsx("p",{className:"text-lg text-gray-600 text-center max-w-4xl mx-auto mb-12 font-quicksand",children:e==="es"?"Maximiza el potencial de tu plataforma Open edX con nuestros add-ons especializados y servicios adicionales. Desde diseño instruccional hasta migración de plataforma, nuestras soluciones expertas están diseñadas para mejorar tu experiencia de eLearning.":"Maximize the potential of your Open edX platform with our specialized add-ons and additional services. From instructional design to platform migration, our expert solutions are designed to enhance your eLearning experience."}),t.jsxs("div",{className:"grid md:grid-cols-2 gap-8 mb-12",children:[t.jsxs("div",{children:[t.jsx("h4",{className:"text-2xl font-bold text-dark-blue mb-6 font-quicksand",children:e==="es"?"Nuestros Add-Ons":"Our Add-Ons"}),t.jsxs("div",{className:"space-y-4",children:[t.jsxs("div",{className:"p-4 bg-white rounded-lg border border-gray-200",children:[t.jsxs("div",{className:"flex justify-between items-center mb-3",children:[t.jsx("span",{className:"font-quicksand text-gray-700",children:e==="es"?"Addon Licencia Zoom Integrada":"Integrated Zoom License Addon"}),t.jsxs("span",{className:"font-bold text-dark-blue font-quicksand",children:["USD $49",e==="es"?"/mes":"/month"]})]}),t.jsx("a",{href:"https://buy.stripe.com/aFa6oH7Ro02C7RS5Sr6sw0f",target:"_blank",rel:"noopener noreferrer",className:"w-full bg-orange text-white py-2 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:e==="es"?"Comprar Addon":"Purchase Addon"})]}),t.jsxs("div",{className:"p-4 bg-white rounded-lg border border-gray-200",children:[t.jsxs("div",{className:"flex justify-between items-center mb-3",children:[t.jsx("span",{className:"font-quicksand text-gray-700",children:e==="es"?"Addon Usuario Autor H5P":"H5P Author user Addon"}),t.jsxs("span",{className:"font-bold text-dark-blue font-quicksand",children:["USD $99",e==="es"?"/mes":"/month"]})]}),t.jsx("a",{href:"https://buy.stripe.com/8x28wPb3AaHg0pq2Gf6sw0g",target:"_blank",rel:"noopener noreferrer",className:"w-full bg-orange text-white py-2 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:e==="es"?"Comprar Addon":"Purchase Addon"})]}),t.jsxs("div",{className:"p-4 bg-white rounded-lg border border-gray-200",children:[t.jsxs("div",{className:"flex justify-between items-center mb-3",children:[t.jsx("span",{className:"font-quicksand text-gray-700",children:e==="es"?"Addon Formularios Avanzados":"Advanced Forms Addon"}),t.jsxs("span",{className:"font-bold text-dark-blue font-quicksand",children:["USD $149",e==="es"?"/mes":"/month"]})]}),t.jsx("a",{href:"https://buy.stripe.com/eVq4gz5JgdTs8VWeoX6sw0e",target:"_blank",rel:"noopener noreferrer",className:"w-full bg-orange text-white py-2 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:e==="es"?"Comprar Addon":"Purchase Addon"})]}),t.jsxs("div",{className:"p-4 bg-white rounded-lg border border-gray-200",children:[t.jsxs("div",{className:"flex justify-between items-center mb-3",children:[t.jsx("span",{className:"font-quicksand text-gray-700",children:e==="es"?"Addon Sitio de Marketing":"Marketing Site Addon"}),t.jsxs("span",{className:"font-bold text-dark-blue font-quicksand",children:["USD $199",e==="es"?"/mes":"/month"]})]}),t.jsx("a",{href:"https://buy.stripe.com/9B6aEXefM6r04FGgx56sw0h",target:"_blank",rel:"noopener noreferrer",className:"w-full bg-orange text-white py-2 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:e==="es"?"Comprar Addon":"Purchase Addon"})]}),t.jsxs("div",{className:"p-4 bg-white rounded-lg border border-gray-200",children:[t.jsxs("div",{className:"flex justify-between items-center mb-3",children:[t.jsx("span",{className:"font-quicksand text-gray-700",children:e==="es"?"Hosting de videos (Vimeo)":"Vimeo Video Hosting"}),t.jsxs("span",{className:"font-bold text-dark-blue font-quicksand",children:["USD $199",e==="es"?"/mes":"/month"]})]}),t.jsx(E,{href:"/contact/",className:"w-full bg-orange text-white py-2 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:e==="es"?"Contactar Ventas":"Contact Sales"})]})]})]}),t.jsxs("div",{children:[t.jsx("h4",{className:"text-2xl font-bold text-dark-blue mb-6 font-quicksand",children:e==="es"?"Proyectos Especiales":"Special Projects"}),t.jsxs("div",{className:"space-y-4",children:[t.jsxs("div",{className:"bg-white rounded-lg p-6 border border-gray-200 text-center",children:[t.jsx("p",{className:"text-lg text-gray-700 mb-4 font-quicksand",children:e==="es"?"¿Tienes necesidades específicas?":"Do you have specific needs?"}),t.jsx("p",{className:"text-xl font-bold text-dark-blue mb-6 font-quicksand",children:e==="es"?"Solicita una Cotización":"Request a Quote"}),t.jsx(E,{href:"/contact/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:e==="es"?"Solicitar Cotización":"Request a Quote"})]}),t.jsxs("div",{className:"p-4 bg-white rounded-lg border border-gray-200",children:[t.jsx("div",{className:"flex justify-between items-center mb-3",children:t.jsx("span",{className:"font-quicksand text-gray-700 font-semibold",children:e==="es"?"Soporte Instruccional":"Instructional Support"})}),t.jsx("p",{className:"text-gray-600 mb-3 font-quicksand text-sm",children:e==="es"?"Diseño instruccional y creación de contenido para optimizar tu experiencia de aprendizaje.":"Instructional design and content creation to optimize your learning experience."}),t.jsx(E,{href:"/contact/",className:"w-full bg-orange text-white py-2 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:e==="es"?"Solicitar Cotización":"Request a Quote"})]}),t.jsxs("div",{className:"p-4 bg-white rounded-lg border border-gray-200",children:[t.jsx("div",{className:"flex justify-between items-center mb-3",children:t.jsx("span",{className:"font-quicksand text-gray-700 font-semibold",children:e==="es"?"Soporte a Estudiantes":"Student Support"})}),t.jsx("p",{className:"text-gray-600 mb-3 font-quicksand text-sm",children:e==="es"?"Asistencia dedicada para estudiantes con soporte técnico y académico.":"Dedicated student assistance with technical and academic supp
676ort."}),t.jsx(E,{href:"/contact/",className:"w-full bg-orange text-white py-2 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:e==="es"?"Solicitar Cotización":"Request a Quote"})]}),t.jsxs("div",{className:"p-4 bg-white rounded-lg border border-gray-200",children:[t.jsx("div",{className:"flex justify-between items-center mb-3",children:t.jsx("span",{className:"font-quicksand text-gray-700 font-semibold",children:e==="es"?"Desarrollos Personalizados":"Custom Developments"})}),t.jsx("p",{className:"text-gray-600 mb-3 font-quicksand text-sm",children:e==="es"?"Desarrollo a medida de funcionalidades, integraciones y plugins para tu plataforma.":"Custom development of features, integrations, and plugins for your platform."}),t.jsx(E,{href:"/contact/",className:"w-full bg-orange text-white py-2 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:e==="es"?"Solicitar Cotización":"Request a Quote"})]})]})]})]})]})]}),d=()=>t.jsxs("div",{className:"grid md:grid-cols-3 gap-8 max-w-6xl mx-auto mb-16",children:[t.jsxs("div",{className:"bg-white rounded-lg p-8 border border-gray-200 hover:border-gray-300 transition-colors",children:[t.jsx("h3",{className:"text-2xl font-bold text-dark-blue mb-2 font-quicksand",children:l.panoramaIncluded.name}),t.jsx("p",{className:"text-gray-600 mb-6 font-quicksand text-sm",children:l.panoramaIncluded.tagline}),t.jsxs("div",{className:"mb-8",children:[t.jsx("div",{className:"text-4xl font-bold text-dark-blue font-quicksand",children:l.panoramaIncluded.price}),t.jsx("p",{className:"mt-2 text-sm text-gray-600 font-quicksand",children:l.panoramaIncluded.note})]}),t.jsx("ul",{className:"space-y-4 mb-8",children:l.panoramaIncluded.features.map((u,p)=>t.jsxs("li",{className:"flex items-start font-quicksand text-gray-700",children:[t.jsx("i",{className:"fas fa-check text-orange mr-3 mt-1 flex-shrink-0"}),u]},p))}),t.jsx("button",{type:"button",onClick:()=>{s("openedx"),window.scrollTo({top:0,behavior:"smooth"})},className:"w-full bg-orange text-white py-3 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:l.panoramaIncluded.button})]}),t.jsxs("div",{className:"bg-white rounded-lg p-8 border-2 border-purple relative",children:[t.jsx("div",{className:"absolute -top-3 left-1/2 transform -translate-x-1/2 bg-purple text-white px-4 py-1 rounded-full text-sm font-semibold font-quicksand",children:e==="es"?"Más Popular":"Most Popular"}),t.jsx("h3",{className:"text-2xl font-bold text-dark-blue mb-2 font-quicksand",children:l.panoramaPro.name}),t.jsx("p",{className:"text-gray-600 mb-6 font-quicksand text-sm",children:l.panoramaPro.tagline}),t.jsx("div",{className:"mb-8",children:t.jsxs("div",{className:"text-4xl font-bold text-dark-blue font-quicksand",children:["USD $250",t.jsx("span",{className:"text-lg text-gray-600 font-normal",children:e==="es"?"/mes":"/month"})]})}),t.jsx("ul",{className:"space-y-4 mb-8",children:l.panoramaPro.features.map((u,p)=>t.jsxs("li",{className:"flex items-start font-quicksand text-gray-700",children:[t.jsx("i",{className:"fas fa-check text-orange mr-3 mt-1 flex-shrink-0"}),u]},p))}),t.jsx("a",{href:"https://buy.stripe.com/dRmaEX7Ro3eOdcc1Cb6sw0i",target:"_blank",rel:"noopener noreferrer",className:"w-full bg-orange text-white py-3 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:e==="es"?"Obtener Panorama Pro":"Get Panorama Pro"})]}),t.jsxs("div",{className:"bg-white rounded-lg p-8 border border-gray-200 hover:border-gray-300 transition-colors",children:[t.jsx("h3",{className:"text-2xl font-bold text-dark-blue mb-2 font-quicksand",children:l.panoramaEnterprise.name}),t.jsx("p",{className:"text-gray-600 mb-6 font-quicksand text-sm",children:l.panoramaEnterprise.tagline}),t.jsx("div",{className:"mb-8",children:t.jsx("div",{className:"text-2xl font-bold text-dark-blue font-quicksand",children:e==="es"?"Contáctanos por precios":"Contact us for pricing"})}),t.jsx("ul",{className:"space-y-4 mb-8",children:l.panoramaEnterprise.features.map((u,p)=>t.jsxs("li",{className:"flex items-start font-quicksand text-gray-700",children:[t.jsx("i",{className:"fas fa-check text-orange mr-3 mt-1 flex-shrink-0"}),u]},p))}),t.jsx(E,{href:"/contact/",className:"w-full bg-orange text-white py-3 rounded-lg hover:bg-orange/90 transition-colors text-center block font-semibold font-quicksand",children:l.panoramaEnterprise.button})]})]});return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:e==="es"?"Planes de Precios - Open edX gestionado y Panorama Analytics | Aulasneo":"Pricing Plans - Managed Open edX and Panorama Analytics | Aulasneo",description:e==="es"?"Planes y precios de Aulasneo: hosting de Open edX totalmente gestionado con usuarios y cursos ilimitados, y analítica de aprendizaje con Panorama. Encontrá el plan para tu organización.":"Aulasneo plans and pricing: fully managed Open edX hosting with unlimited users and courses, and learning analytics with Panorama. Find the right plan for your organization.",keywords:"pricing, Open edX hosting, managed Open edX, LMS analytics, Panorama, Aulasneo plans",canonical:e==="es"?"https://aulasneo.com/es/pricing/":"https://aulasneo.com/pricing/",hreflangEn:"https://aulasneo.com/pricing/",hreflangEs:"https://aulasneo.com/es/pricing/",rawSchemas:F1(e==="es"?"https://aulasneo.com/es/pricing/":"https://aulasneo.com/pricing/")}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-16",children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-dark-blue mb-6 font-quicksand",children:l.title}),t.jsx("p",{className:"text-xl text-gray-600 max-w-3xl mx-auto font-quicksand",children:l.subt
676itle})]}),t.jsxs("div",{className:"flex flex-col sm:flex-row justify-center mb-12 bg-gray-100 rounded-lg p-2 max-w-4xl mx-auto",children:[t.jsx("button",{onClick:()=>s("openedx"),className:`px-6 py-3 rounded-lg font-semibold font-quicksand transition-colors ${a==="openedx"?"bg-orange text-white":"text-gray-600 hover:text-dark-blue"}`,children:l.openedx}),t.jsx("button",{onClick:()=>s("panorama"),className:`px-6 py-3 rounded-lg font-semibold font-quicksand transition-colors ${a==="panorama"?"bg-orange text-white":"text-gray-600 hover:text-dark-blue"}`,children:l.panorama})]}),a==="openedx"&&c(),a==="panorama"&&d()]})})]})}function fp(){const{language:e}=J(),n=e==="es";return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:n?"Casos de Éxito - Historias de Tecnología Educativa | Aulasneo":"Case Studies - Educational Technology Success Stories | Aulasneo",description:n?"Explorá historias reales de instituciones educativas que transformaron sus experiencias de aprendizaje con las soluciones Open edX y EdTech de Aulasneo.":"Explore real-world success stories of educational institutions transforming their learning experiences with Aulasneo's Open edX and EdTech solutions.",keywords:"case studies, Open edX implementation, LMS success stories, educational technology, Holcim Academy, The Health Hive, Cap-Net UNDP, AIE ARG, ICdeBA, CEEF",canonical:n?"https://aulasneo.com/es/case-studies/":"https://aulasneo.com/case-studies/",hreflangEn:"https://aulasneo.com/case-studies/",hreflangEs:"https://aulasneo.com/es/case-studies/"}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-16",children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-dark-blue mb-6 font-quicksand",children:n?"Casos de éxito":"Success Stories"}),t.jsx("p",{className:"text-xl text-gray-600 max-w-3xl mx-auto font-quicksand",children:n?"Descubre cómo instituciones educativas de todo el mund
676o están transformando sus experiencias de aprendizaje con las soluciones EdTech innovadoras de Aulasneo.":"Discover how educational institutions worldwide are transforming their learning experiences with Aulasneo's innovative EdTech solutions."})]}),t.jsx("div",{className:"mb-16",children:t.jsx(eo,{})}),t.jsxs("div",{className:"bg-gradient-to-r from-dark-blue to-purple rounded-2xl p-8 md:p-12 text-center text-white",children:[t.jsx("h2",{className:"text-3xl font-bold mb-4 font-quicksand",children:n?"¿Listo para transformar su institución educativa?":"Ready to Transform Your Educational Institution?"}),t.jsx("p",{className:"text-lg mb-8 opacity-90 font-quicksand",children:n?"Únase a las organizaciones líderes que confían en Aulasneo para sus necesidades de EdTech.":"Join leading organizations that trust Aulasneo for their EdTech needs."}),t.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[t.jsx("a",{href:n?"/es/contact/":"/contact/",className:"bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:n?"Contáctanos":"Contact Us"}),t.jsx("a",{href:n?"/es/solutions/":"/solutions/",className:"bg-white text-dark-blue px-8 py-3 rounded-lg hover:bg-gray-100 transition-colors font-semibold font-quicksand",children:n?"Ver Soluciones":"View Solutions"})]})]})]})})]})}function gp(){const{t:e,language:n}=J(),a=n==="es";return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:a?"Soporte - Aulasneo":"Support - Aulasneo",description:a?"Obtené ayuda y soporte para las soluciones EdTech de Aulasneo. Contactá a nuestro equipo de soporte para asistencia técnica y orientación.":"Get help and support for Aulasneo's EdTech solutions. Contact our support team for technical assistance and guidance.",keywords:"support, help, technical assistance, customer support, contact",canonical:a?"https://aulasneo.com/es/support/":"https://aulasneo.com/support/",hreflangEn:"https://aulasneo.com/support/",hreflangEs:"https://aulasneo.com/es/support/"}),t.jsx("div",{className:"pt-24 pb-16 bg-white min-h-screen",children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"text-center mb-16",children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-dark-blue mb-6 font-quicksand",children:"Support"}),t.jsx("p",{className:"text-xl text-gray-600 max-w-3xl mx-auto font-quicksand",children:"We're here to help you succeed with our EdTech solutions. Get the support and guidance you need."})]}),t.jsxs("div",{className:"grid md:grid-cols-2 gap-8 mb-16",children:[t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-8",children:[t.jsx("h3",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:"Technical Support"}),t.jsx("p",{className:"text-gray-600 mb-6 font-quicksand",children:"Need help with implementation, troubleshooting, or technical questions? Our expert team is ready to assist."}),t.jsx(E,{href:"/contact/",className:"bg-orange text-white px-6 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand inline-block",children:"Contact Technical Support"})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-8",children:[t.jsx("h3",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:"Sales Support"}),t.jsx("p",{className:"text-gray-600 mb-6 font-quicksand",children:"Questions about pricing, features, or finding the right solution for your institution? Let's talk."}),t.jsx(E,{href:"/contact/",className:"bg-purple text-white px-6 py-3 rounded-lg hover:bg-purple/90 transition-colors font-semibold font-quicksand inline-block",children:"Contact Sales Team"})]})]}),t.jsxs("div",{className:"bg-gradient-to-r from-dark-blue to-purple rounded-2xl p-8 md:p-12 text-center text-white",children:[t.jsx("h2",{className:"text-3xl font-bold mb-4 font-quicksand",children:"24/7 Support Available"}),t.jsx("p",{className:"text-lg mb-8 opacity-90 font-quicksand",children:"On custom plans, our support team is available around the clock to keep your learning platform running smoothly."}),t.jsx(E,{href:"/contact/",className:"bg-white text-dark-blue px-8 py-3 rounded-lg hover:bg-gray-100 transition-colors font-semibold font-quicksand inline-flex items-center",children:"Get Help N
676ow"})]})]})})]})}function xp(){const{language:e}=J(),n=[{question:e==="es"?"¿Qué es Open edX?":"What is Open edX?",answer:e==="es"?"Open edX es un sistema de gestión del aprendizaje (LMS) de código abierto desarrollado originalmente por Harvard y MIT en 2012 para potenciar edX.org. Permite a cualquier organización —universidades, empresas, ONGs y gobiernos— crear, impartir y gestionar cursos en línea a cualquier escala. La plataforma es gratuita y puede ser autoalojada o implementada a través de un proveedor gestionado como Aulasneo.":"Open edX is an open-source learning management system (LMS) originally developed by Harvard and MIT in 2012 to power edX.org. It allows any organization — universities, corporations, NGOs, and governments — to create, deliver, and manage online courses at any scale. The platform is free to use and can be self-hosted or deployed through a managed provider like Aulasneo."},{question:e==="es"?"¿Cuál es la diferencia entre edX y Open edX?":"What is the difference between edX and Open edX?",answer:e==="es"?"edX (edx.org) es un marketplace comercial de aprendizaje en línea propiedad de 2U Inc., que ofrece cursos de las mejores universidades. Open edX es la plataforma de código abierto que originalmente impulsó edX, disponible gratuitamente para que cualquiera la implemente de forma independiente. Con Open edX, su organización controla la plataforma, el contenido y los datos de los estudiantes.":"edX (edx.org) is a commercial online learning marketplace owned by 2U Inc., offering courses from top universities. Open edX is the open-source platform that originally powered edX — free for anyone to deploy independently. With Open edX, your organization controls the platform, the content, and the learner data."},{question:e==="es"?"¿Quiénes usan Open edX?":"Who uses Open edX?",answer:e==="es"?"Open edX es utilizado por más de 100 millones de estudiantes en todo el mund
676o. Sus usuarios incluyen las mejores universidades (Harvard, MIT, Stanford), corporaciones globales (Microsoft, IBM), agencias gubernamentales, ONGs y startups de EdTech. Soporta casos de uso desde la capacitación de empleados hasta programas educativos a escala nacional.":"Open edX is used by over 100 million learners worldwide. Its users include top universities (Harvard, MIT, Stanford), global corporations (Microsoft, IBM), government agencies, NGOs, and ed-tech startups. It supports use cases from employee training to national-scale education programs."},{question:e==="es"?"¿Cuáles son las principales características de Open edX?":"What are the main features of Open edX?",answer:e==="es"?"Open edX incluye una herramienta completa de creación de cursos (Studio), paneles de estudiantes, transmisión de video, cuestionarios y evaluaciones, foros de discusión, certificados, soporte multilingüe, integraciones SCORM y LTI, analíticas y una arquitectura de plugins extensible. Soporta formatos de aprendizaje a propio ritmo, dirigidos por instructores y mixtos.":"Open edX includes a full course authoring tool (Studio), learner dashboards, video streaming, quizzes and assessments, discussion forums, certificates, multilingual support, SCORM and LTI integrations, analytics, and an extensible plugin architecture. It supports self-paced, instructor-led, and blended learning formats."},{question:e==="es"?"¿Es gratuito Open edX?":"Is Open edX free?",answer:e==="es"?"El software Open edX es gratuito y de código abierto. Sin embargo, ejecutarlo requiere infraestructura en la nube, configuración técnica y mantenimiento continuo. Las organizaciones pueden autoalojarlo con un equipo técnico, o usar un servicio totalmente gestionado como Aulasneo que se encarga de toda la infraestructura para que usted pueda centrarse en sus cursos.":"The Open edX software is free and open-source. However, running it requires cloud infrastructure, technical setup, and ongoing maintenance. Organizations can self-host it with a technical team, or use a fully managed service like Aulasneo that handles all the infrastructure so you can focus on your courses."},{question:e==="es"?"¿Cuáles son las opciones de hosting de Open edX?":"What are the Open edX hosting options?",answer:e==="es"?"Hay dos opciones principales: autoalojado (su equipo instala y gestiona la plataforma en sus propios servidores) o totalmente gestionado (un proveedor como Aulasneo se encarga de todo el hosting, actualizaciones, copias de seguridad y soporte). El hosting gestionado es ideal para organizaciones sin un equipo de DevOps o que desean lanzar rápidamente.":"There are two main options: self-hosted (your team installs and manages the platform on your own servers) or fully managed (a provider like Aulasneo handles all hosting, updates, backups and support). Managed hosting is ideal for organizations without a DevOps team or those that want to launch quickly."}],a=[{question:e==="es"?"¿Qué servicios de Open edX proporciona Aulasneo?":"What Open edX services does Aulasneo provide?",answer:e==="es"?"Proporcionamos hosting gestionado de Open edX, personalización, integraciones (LTI 1.3, OAuth), y analytics avanzados de LMS.":"We provide managed Open edX hosting, customization, integrations (LTI 1.3, OAuth), and advanced LMS analytics."},{question:e==="es"?"¿Qué es LTI 1.3 y cómo se integra con Open edX?":"What is LTI 1.3 and how does it integrate with Open edX?",answer:e==="es"?"LTI 1.3 es un estándar para integrar herramientas externas con LMS. Configuramos conexiones seguras entre Open edX y aplicaciones de terceros para contenido interactivo.":"LTI 1.3 is a standard for integrating external tools with LMS. We configure secure connections between Open edX and third-party applications for interactive content."},{question:e==="es"?"¿Cómo maneja Aulasneo las inscripciones masivas (bulk enrollment) en Open edX?":"How does Aulasneo handle bulk enrollment in Open edX?",answer:e==="es"?"Automatizamos las inscripciones masivas través de APIs y scripts personalizados, permitiendo la gestión eficiente de miles de estudiantes simultáneamente.":"We automate bulk enrollment through APIs and custom scripts, enabling efficient management of thousands of students simultaneously."},{question:e==="es"?"¿Qué analytics de riesgo de deserción proporciona Aulasneo?":"What dropout risk analytics does Aulasneo provide?",answer:e==="es"?"Analizamos patrones de participación, progreso de estudiantes y datos de comportamiento para identificar estudiantes en riesgo de deserción antes de que abandonen.":"We analyze engagement patterns, student progress, and behavioral data to i
676dentify students at dropout risk before they leave."},{question:e==="es"?"¿Aulasneo ofrece personalización de temas para Open edX?":"Does Aulasneo offer Open edX theme customization?",answer:e==="es"?"Sí, desarrollamos temas personalizados que reflejan la marca de su organización, incluyendo colores, logos, y elementos de interfaz únicos.":"Yes, we develop custom themes that reflect your organization's branding, including colors, logos, and unique interface elements."},{question:e==="es"?"¿Qué integraciones SIS soporta Aulasneo con Open edX?":"What SIS integrations does Aulasneo support with Open edX?",answer:e==="es"?"Integramos Open edX con sistemas SIS populares para sincronización automática de estudiantes, cursos y calificaciones mediante APIs seguras.":"We integrate Open edX with popular SIS systems for automatic synchronization of students, courses, and grades through secure APIs."},{question:e==="es"?"¿Cómo funciona el hosting gestionado de Open edX de Aulasneo?":"How does Aulasneo's managed Open edX hosting work?",answer:e==="es"?"Proporcionamos infraestructura escalable en AWS, actualizaciones automáticas, respaldos diarios y monitoreo 24/7 para mantener su plataforma funcionando óptimamente.":"We provide scalable infrastructure on AWS, automatic updates, daily backups, and 24/7 monitoring to keep your platform running optimally."},{question:e==="es"?"¿Puede Aulasneo migrar nuestro Open edX existente?":"Can Aulasneo migrate our existing Open edX?",answer:e==="es"?"Sí, manejamos migraciones completas de instancias Open edX existentes, incluyendo contenido de cursos, datos de usuarios y configuraciones personalizadas.":"Yes, we handle complete migrations of existing Open edX instances, including course content, user data, and custom configurations."},{question:e==="es"?"¿Qué soporte de OAuth proporciona Aulasneo para Open edX?":"What OAuth support does Aulasneo provide for Open edX?",answer:e==="es"?"Configuramos autenticación OAuth2 para integración con sistemas de identidad existentes, permitiendo inicio de sesión único (SSO) seguro.":"We configure OAuth2 authentication for integration with existing identity systems, enabling secure single sign-on (SSO)."},{question:e==="es"?"¿Cómo habilita Aulasneo el agente IA en Open edX?":"How does Aulasneo enable AI agent in Open edX?",answer:e==="es"?"Integramos Owly, nuestro agente IA, para automatizar tareas administrativas, responder preguntas de estudiantes y proporcionar insights analíticos en tiempo real.":"We integrate Owly, our AI agent, to automate administrative tasks, answer student questions, and provide real-time analytics insights."}],s=[{question:"What is Open edX?",answer:"Open edX is an open-source learning management system originally developed by Harvard and MIT in 2012 to power edX.org. It allows any organization to create, deliver, and manage online courses at any scale. It can be self-hosted or deployed through a managed provider like Aulasneo."},{question:"What is the difference between edX and Open edX?",answer:"edX.org is a commercial online learning marketplace owned by 2U Inc. Open edX is the open-source platform that originally powered edX — free for anyone to deploy independently. With Open edX, your organization controls the platform, the content, and the learner data."},{question:"Who uses Open edX?",answer:"Open edX is used by over 100 million learners worldwide, including Harvard, MIT, Microsoft, IBM, government agencies, NGOs, and ed-tech startups."},{question:"What are the main features of Open edX?",answer:"Open edX includes Studio (course authoring), learner dashboards, video streaming, quizzes, discussion forums, certificates, multilingual support, SCORM and LTI integrations, analytics, and an extensible plugin architecture."},{question:"Is Open edX free?",answer:"The Open edX software is free and open-source. However, running it requires cloud infrastructure, technical setup, and ongoing maintenance. Organizations can self-host it or use a fully managed service like Aulasneo."},{question:"What are the Open edX hosting options?",answer:"There are two main options: self-hosted (your team manages the platform) or fully managed (a provider like Aulasneo handles all hosting, updates, backups and support)."},{question:"What Open edX services does Aulasneo provide?",answer:"Aulasneo provides managed Open edX hosting, customization, integrations (LTI 1.3, OAuth), and advanced LMS analytics."},{question:"How does Aulasneo's managed Open edX hosting work?",answer:"Aulasneo provides scalable infrastru
676cture on AWS, automatic updates, daily backups, and 24/7 monitoring to keep your platform running optimally."},{question:"Can Aulasneo migrate our existing Open edX?",answer:"Yes, Aulasneo handles complete migrations of existing Open edX instances, including course content, user data, and custom configurations."}];return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:e==="es"?"FAQ Open edX: Qué es, Características, Hosting y Servicios | Aulasneo":"Open edX FAQ: What Is It, Features, Hosting & Services | Aulasneo",description:e==="es"?"Respuestas a las preguntas más comunes sobre Open edX: qué es, cómo funciona, opciones de hosting, precios y cómo Aulasneo puede ayudarte a comenzar.":"Answers to the most common questions about Open edX: what it is, how it works, hosting options, pricing, and how Aulasneo can help you get started.",keywords:"Open edX, LTI 1.3, bulk enrollment, dropout risk analytics, LMS hosting, SIS integration",canonical:e==="es"?"https://aulasneo.com/es/faq/open-edx/":"https://aulasneo.com/faq/open-edx/",hreflangEn:"https://aulasneo.com/faq/open-edx/",hreflangEs:"https://aulasneo.com/es/faq/open-edx/",structuredData:{faq:s}}),t.jsx("div",{className:"min-h-screen bg-gray-50 pt-24 pb-16",children:t.jsxs("div",{className:"max-w-4xl mx-auto px-6",children:[t.jsxs("div",{className:"text-center mb-8",children:[t.jsx("h1",{className:"text-4xl font-bold text-dark-blue mb-6 font-quicksand",children:e==="es"?"FAQ de Open edX: Todo lo que Necesitas Saber":"Open edX FAQ: Everything You Need to Know"}),t.jsx("p",{className:"text-xl text-gray-600 font-quicksand",children:e==="es"?"Respuestas a las preguntas más comunes sobre Open edX — qué es, cómo funciona, opciones de hosting y cómo comenzar.":"Answers to the most common questions about Open edX — what it is, how it works, hosting options, and how to get started."})]}),t.jsx("p",{className:"text-lg text-gray-600 font-quicksand mb-8",children:e==="es"?"Open edX es uno de los sistemas de gestión del aprendizaje de código abierto más utilizados en el mundo. Aquí están las preguntas más comunes que recibimos sobre la plataforma.":"Open edX is one of the world's most widely used open-source learning management systems. Here are the most common questions we receive about the platform itself."}),t.jsx("div",{className:"space-y-8",children:n.map((o,r)=>
676t.jsxs("div",{className:"bg-white rounded-lg p-8 shadow-sm border border-gray-200",children:[t.jsx("h2",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:o.question}),t.jsx("p",{className:"text-lg text-gray-700 font-quicksand leading-relaxed",children:o.answer})]},`intro-${r}`))}),t.jsxs("div",{className:"my-12 flex items-center gap-4",children:[t.jsx("div",{className:"flex-1 border-t border-gray-300"}),t.jsx("span",{className:"text-base font-semibold text-gray-500 font-quicksand whitespace-nowrap",children:e==="es"?"Preguntas sobre los servicios de Open edX de Aulasneo":"Questions about Aulasneo's Open edX services"}),t.jsx("div",{className:"flex-1 border-t border-gray-300"})]}),t.jsx("div",{className:"space-y-8",children:a.map((o,r)=>t.jsxs("div",{className:"bg-white rounded-lg p-8 shadow-sm border border-gray-200",children:[t.jsx("h2",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:o.question}),t.jsx("p",{className:"text-lg text-gray-700 font-quicksand leading-relaxed",children:o.answer})]},`service-${r}`))}),t.jsx("div",{className:"text-center mt-16",children:t.jsxs("div",{className:"bg-white rounded-lg p-8 shadow-sm border border-gray-200",children:[t.jsx("h3",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:e==="es"?"¿Tienes más preguntas?":"Have more questions?"}),t.jsx("p",{className:"text-lg text-gray-600 mb-6 font-quicksand",children:e==="es"?"Nuestro equipo de expertos está listo para ayudarte con cualquier consulta sobre Open edX.":"Our team of experts is ready to help you with any Open edX questions."}),t.jsx("a",{href:"/contact/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:e==="es"?"Contactar Expertos":"Contact Experts"})]})})]})})]})}function yp(){const{language:e}=J(),n=[{question:e==="es"?"¿Qué es Owly, el agente IA para educación?":"What is Owly, the AI agent for education?",answer:e==="es"?"Owly es un agente IA que ejecuta tareas del LMS (como inscripciones masivas, actualizaciones de contenido) y proporciona insights analíticos para reducir el riesgo de deserción.":"Owly is an AI Agent that executes LMS tasks (e.g., bulk enrollments, content updates) and surfaces analytics insights to reduce dropout risk."},{question:e==="es"?"¿Cómo automatiza Owly las tareas del LMS?":"How does Owly automate LMS tasks?",answer:e==="es"?"Owly se conecta con APIs del LMS para ejecutar inscripciones masivas, crear cursos, gestionar usuarios y actualizar contenido automáticamente según instrucciones en lenguaje natural.":"Owly connects with LMS APIs to execute bulk enrollments, create courses, manage users, and update content automatically based on natural language instructions."},{question:e==="es"?"¿Con qué plataformas LMS funciona el agente IA Owly?":"Which LMS platforms does Owly AI agent work with?",answer:e==="es"?"Owly funciona con Open edX, Canvas, Moodle y otros LMS principales, proporcionando automatización e insights analíticos across múltiples plataformas.":"Owly works with Open edX, Canvas, Moodle, and other major LMS platforms, providing automation and analytics insights across multiple platforms."},{question:e==="es"?"¿Cómo detecta Owly el riesgo de deserción de estudiantes?":"How does Owly detect student dropout risk?",answer:e==="es"?"Owly analiza patrones de participación, tiempo en plataforma, puntuaciones de tareas y comportamiento de navegación para identificar señales tempranas de riesgo de deserción.":"Owly analyzes engagement patterns, time on platform, assignment scores, and browsing behavior to identify early dropout risk signals."},{question:e==="es"?"¿Owly soporta interacciones multilingües?":"Does Owly support multilingual interactions?",answer:e==="es"?"Sí, Owly maneja comunicaciones en múltiples idiomas, permitiendo a estudiantes e instructores interactuar en su idioma preferido.":"Yes, Owly handles communications in multiple languages, allowing students and instructors to interact in their preferred language."},{question:e==="es"?"¿Cómo maneja Owly las preguntas y respuestas (Q&A)?":"How does Owly handle Q&A?",answer:e==="es"?"Owly responde preguntas de estudiantes usando conocimiento del curso y políticas institucionales, escalando consultas complejas a instructores humanos cuando es necesario.":"Owly answers student questions using course knowledge and institutional policies, escalating complex queries to human instructors when needed."},{question:e==="es"?"¿Qué insights analíticos proporciona el agente IA para LMS?":"What analytics insights does the AI agent for LMS provide?",answer:e==="es"?"Owly proporciona alertas de riesgo de deserción, métricas de participación, análisis de rendimiento del curso y recomendaciones para mejorar el éxito estudiantil.":"Owly provides dropout risk alerts, engagement metrics, course performance analysis, and recommendations for improving student success."},{question:e==="es"?"¿Cómo se integra Owly con sistemas SIS existentes?":"How does Owly integrate with existing SIS systems?",answer:e==="es"?"Owly se conecta con sistemas SIS para sincronizar datos de estudiantes, automatizar procesos de inscripción y mantener registros académicos actualizados.":"Owly connects with SIS systems to sync student data, automate enrollment processes, and maintain up-to-date academic re
676cords."},{question:e==="es"?"¿Pueden las instituciones personalizar las capacidades de Owly?":"Can institutions customize Owly's capabilities?",answer:e==="es"?"Sí, Owly se puede personalizar con reglas específicas de la institución, flujos de trabajo únicos y bases de conocimiento adaptadas a políticas organizacionales.":"Yes, Owly can be customized with institution-specific rules, unique workflows, and knowledge bases tailored to organizational policies."},{question:e==="es"?"¿Qué seguridad y privacidad ofrece el agente IA Owly?":"What security and privacy does Owly AI agent offer?",answer:e==="es"?"Owly sigue estándares FERPA y GDPR, usa encriptación de datos y acceso basado en roles para proteger información sensible de estudiantes.":"Owly follows FERPA and GDPR standards, uses data encryption and role-based access to protect sensitive student information."},{question:e==="es"?"¿Cómo comenzar a usar Owly en nuestra institución?":"How to get started with Owly in our institution?",answer:e==="es"?"Contacta a nuestro equipo para una demostración personalizada, análisis de necesidades y plan de implementación adaptado a tu entorno educativo específico.":"Contact our team for a personalized demo, needs analysis, and implementation plan tailored to your specific educational environment."}];return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:e==="es"?"FAQ Agente IA Educación - Preguntas sobre Owly | Aulasneo":"AI Agent Education FAQ - Owly Questions | Aulasneo",description:e==="es"?"Preguntas frecuentes sobre Owly, nuestro agente IA para educación que automatiza tareas del LMS, detecta riesgo de deserción y mejora el éxito estudiantil.":"Frequently asked questions about Owly, our AI agent for education that automates LMS tasks, detects dropout risk, and improves student success.",keywords:"AI agent for LMS, Owly, dropout risk analytics, LMS automation, multilingual AI, educational AI",canonical:e==="es"?"https://aulasneo.com/es/faq/ai-agent-education/":"https://aulasneo.com/faq/ai-agent-education/",hreflangEn:"https://aulasneo.com/faq/ai-agent-education/",hreflangEs:"https://aulasneo.com/es/faq/ai-agent-education/",structuredData:{faq:n}}),t.jsx("div",{className:"min-h-screen bg-gray-50 py-16",children:t.jsxs("div",{className:"max-w-4xl mx-auto px-6",children:[t.jsxs("div",{className:"text-center mb-16",children:[t.jsx("h1",{className:"text-4xl font-bold text-dark-blue mb-6 font-quicksand",children:e==="es"?"Agente IA para Educación: Preguntas Frecuentes sobre Owly":"AI Agent for Education: Frequently Asked Questions about Owly"}),t.jsx("p",{className:"text-xl text-gray-600 font-quicksand",children:e==="es"?"Descubre cómo Owly automatiza LMS, detecta riesgo de deserción y mejora el éxito estudiantil.":"Discover how Owly automates LMS tasks, detects dropout risk, and improves student success."})]}),t.jsx("div",{className:"space-y-8",children:n.map((a,s)=>t.jsxs("div",{className:"bg-white rounded-lg p-8 shadow-sm border border-gray-200",children:[t.jsx("h2",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:a.question}),t.jsx("p",{className:"text-lg text-gray-700 font-quicksand leading-relaxed",children:a.answer})]},s))}),t.jsx("div",{className:"text-center mt-16",children:t.jsxs("div",{className:"bg-white rounded-lg p-8 shadow-sm border border-gray-200",children:[t.jsx("h3",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:e==="es"?"¿Listo para probar Owly?":"Ready to try Owly?"}),t.jsx("p",{className:"text-lg text-gray-600 mb-6 font-quicksand",children:e==="es"?"Experimenta el poder de la IA en educación con una demostración personalizada de Owly.":"Experience the power of AI in education with a personalized Owly demonstration."}),t.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[t.jsx("a",{href:"/contact/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:e==="es"?"Solicitar Demo":"Request Demo"}),t.jsx("a",{href:"https://getowly.ai",target:"_blank",rel:"noopener noreferrer",className:"inline-block bg-purple text-white px-8 py-3 rounded-lg hover:bg-purple/90 transition-colors font-semibold font-quicksand",children:e==="es"?"Visitar GetOwly.ai":"Visit GetOwly.ai"})]})]})})]})})]})}const R1=Uf("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),wr=v.forwardRef(({className:e,variant:n,size:a,asChild:s=!1,...o},r)=>{const i=s?I0:"button";return t.jsx(i,{className:Ge(R1({variant:n,size:a,className:e})),ref:r,...o})});wr.displayName="Button";function D1(){const e="https://cloud.marketing.cloudhesive.com/awsome-campus?utm_source=event&utm_medium=AulasNeo&utm_campaign=sponsor_aulasneo";return t.jsxs("div",{className:"min-h-screen bg-gradient-to-br from-slate-900 via-blue-900 to-slate-800",children:[t.jsx(D,{title:"AW
676Some Campus Buenos Aires 2025 - Modernización de la Educación | Aulasneo",description:"Únete al evento AWSome Campus 2025 en Universidad de San Andrés. Experiencia única de innovación educativa con AWS, IA y tecnologías disruptivas. ¡Inscríbete ya!",canonical:"https://aulasneo.com/awsomecampus-udesa"}),t.jsxs("div",{className:"relative overflow-hidden pt-24",children:[t.jsx("div",{className:"absolute inset-0 bg-gradient-to-br from-blue-600/20 to-purple-600/20"}),t.jsx("div",{className:"container mx-auto px-6 py-16 relative z-10",children:t.jsxs("div",{className:"max-w-4xl mx-auto text-center text-white",children:[t.jsxs("h1",{className:"text-4xl md:text-6xl font-bold mb-6",children:["AWSome Campus",t.jsx("br",{}),t.jsx("span",{className:"text-blue-400",children:"Buenos Aires 2025"})]}),t.jsx("h2",{className:"text-2xl md:text-3xl font-light mb-8 text-cyan-300",children:"Modernización de la Educación"}),t.jsxs("div",{className:"bg-white/10 backdrop-blur-md rounded-3xl p-8 md:p-12 border border-white/20 shadow-2xl",children:[t.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8 text-left",children:[t.jsxs("div",{className:"flex items-start space-x-4",children:[t.jsx(Eb,{className:"w-6 h-6 text-cyan-400 mt-1"}),t.jsxs("div",{children:[t.jsx("h3",{className:"text-cyan-400 font-semibold text-sm uppercase tracking-wide mb-2",children:"Fecha"}),t.jsx("p",{className:"text-xl font-medium",children:"14 de octubre de 2025"})]})]}),t.jsxs("div",{className:"flex items-start space-x-4",children:[t.jsx(Tb,{className:"w-6 h-6 text-cyan-400 mt-1"}),t.jsxs("div",{children:[t.jsx("h3",{className:"text-cyan-400 font-semibold text-sm uppercase tracking-wide mb-2",children:"Horario"}),t.jsx("p",{className:"text-xl font-medium",children:"09:30 a 13:00 hs"})]})]}),t.jsxs("div",{className:"flex items-start space-x-4",children:[t.jsx(Fu,{className:"w-6 h-6 text-cyan-400 mt-1"}),t.jsxs("div",{children:[t.jsx("h3",{className:"text-cyan-400 font-semibold text-sm uppercase tracking-wide mb-2",children:"Lugar"}),t.jsx("p",{className:"text-xl font-medium",children:"Universidad de San Andrés"}),t.jsx("p",{className:"text-cyan-300",children:"Campus Victoria"})]})]})]}),t.jsxs("div",{className:"mt-8 pt-8 border-t border-white/20",children:[t.jsx(wr,{size:"lg",className:"w-full md:w-auto bg-cyan-500 hover:bg-cyan-600 text-white px-12 py-4 text-xl font-semibold rounded-xl",onClick:()=>window.open(e,"_blank"),children:"INSCRIBITE AHORA"}),t.jsxs("p",{className:"mt-4 text-sm text-cyan-300",children:[t.jsx(Ru,{className:"w-4 h-4 inline mr-2"}),"Cupos limitados a 50 participantes"]})]})]})]})})]}),t.jsx("div",{className:"bg-white/5 backdrop-blur-sm py-16",children:t.jsx("div",{className:"container mx-auto px-6",children:t.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[t.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-white mb-8",children:"Una experiencia única de innovación educativa"}),t.jsxs("p",{className:"text-lg text-gray-300 leading-relaxed mb-8",children:["AWSome Campus 2025 es una jornada experiencial organizada por ",t.jsx("strong",{className:"text-cyan-400",children:"Aulasneo y AWS & partners"}),", con el apoyo de la Universidad de San Andrés, pensada para acercar a los principales tomadores de decisión del sector educativo a las soluciones tecnológicas que hoy están transformando la manera de",t.jsx("strong",{className:"text-blue-400",children:" enseñar, aprender y operar en las instituciones"}),"."]}),t.jsxs("p",{className:"text-lg text-gray-300 leading-relaxed",children:["A lo largo de la jornada, vivirás un recorrido por ",t.jsx("strong",{className:"text-cyan-400",children:"estaciones temáticas interactivas"}),", con casos de uso reales y demostraciones prácticas de tecnologías disruptivas con aplicación de",t.jsx("strong",{className:"text-blue-400",children:" IA, chatbots y experiencias 100% personalizadas"}),"."]})]})})}),t.jsx("div",{className:"py-16",children:t.jsx("div",{className:"container mx-auto px-6",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsx("h2",{className:"text-3xl font-bold text-white text-center mb-12",children:"¿Por qué participar?"}),t.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-8",children:[t.jsxs("div",{className:"bg-white/10 backdrop-blur-md rounded-2xl p-6 border border-white/20",children:[t.jsx("div",{className:"w-12 h-12 bg-cyan-500 rounded-lg flex items-center justify-center mb-4",children:t.jsx(Ru,{className:"w-6 h-6 text-white"})}),t.jsx("h3",{className:"text-xl font-semibold text-white mb-3",children:"Contenido Exclusivo"}),t.jsx("p",{className:"text-gray-300",children:"Acceso exclusivo a un evento presencial con contenido práctico y aplicad
676o."})]}),t.jsxs("div",{className:"bg-white/10 backdrop-blur-md rounded-2xl p-6 border border-white/20",children:[t.jsx("div",{className:"w-12 h-12 bg-blue-500 rounded-lg flex items-center justify-center mb-4",children:t.jsx(Mb,{className:"w-6 h-6 text-white"})}),t.jsx("h3",{className:"text-xl font-semibold text-white mb-3",children:"Networking de Alto Nivel"}),t.jsx("p",{className:"text-gray-300",children:"Conecta con pares y referentes de la industria educativa y tecnológica."})]}),t.jsxs("div",{className:"bg-white/10 backdrop-blur-md rounded-2xl p-6 border border-white/20",children:[t.jsx("div",{className:"w-12 h-12 bg-purple-500 rounded-lg flex items-center justify-center mb-4",children:t.jsx(Ob,{className:"w-6 h-6 text-white"})}),t.jsx("h3",{className:"text-xl font-semibold text-white mb-3",children:"Experiencias Inmersivas"}),t.jsx("p",{className:"text-gray-300",children:"Estaciones equipadas para grupos reducidos con demostraciones prácticas."})]}),t.jsxs("div",{className:"bg-white/10 backdrop-blur-md rounded-2xl p-6 border border-white/20",children:[t.jsx("div",{className:"w-12 h-12 bg-orange-500 rounded-lg flex items-center justify-center mb-4",children:t.jsx(Fu,{className:"w-6 h-6 text-white"})}),t.jsx("h3",{className:"text-xl font-semibold text-white mb-3",children:"Modernización Educativa"}),t.jsx("p",{className:"text-gray-300",children:"Descubre cómo la nube está modernizando la educación en Argentina y la región."})]})]})]})})}),t.jsx("div",{className:"bg-white/5 backdrop-blur-sm py-16",children:t.jsx("div",{className:"container mx-auto px-6",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsx("h2",{className:"text-3xl font-bold text-white text-center mb-12",children:"Agenda Preliminar"}),t.jsx("div",{className:"bg-white/10 backdrop-blur-md rounded-2xl p-8 border border-white/20",children:t.jsxs("div",{className:"space-y-6",children:[t.jsxs("div",{className:"flex items-center space-x-4 border-b border-white/20 pb-4",children:[t.jsx("div",{className:"w-20 text-cyan-400 font-semibold",children:"09:30 - 10:00"}),t.jsx("div",{className:"text-white",children:"Desayuno de bienvenida y acreditaciones"})]}),t.jsxs("div",{className:"flex items-center space-x-4 border-b border-white/20 pb-4",children:[t.jsx("div",{className:"w-20 text-cyan-400 font-semibold",children:"10:00 - 10:15"}),t.jsx("div",{className:"text-white",children:"Apertura institucional"})]}),t.jsxs("div",{className:"flex items-center space-x-4 border-b border-white/20 pb-4",children:[t.jsx("div",{className:"w-20 text-cyan-400 font-semibold",children:"10:15 - 11:15"}),t.jsx("div",{className:"text-white",children:"Recorrido por estaciones temáticas – 1ª ronda"})]}),t.jsxs("div",{className:"flex items-center space-x-4 border-b border-white/20 pb-4",children:[t.jsx("div",{className:"w-20 text-cyan-400 font-semibold",children:"11:15 - 11:30"}),t.jsx("div",{className:"text-white",children:"Coffee break & networking"})]}),t.jsxs("div",{className:"flex items-center space-x-4 border-b border-white/20 pb-4",children:[t.jsx("div",{className:"w-20 text-cyan-400 font-semibold",children:"11:30 - 12:30"}),t.jsx("div",{className:"text-white",children:"Recorrido por estaciones temáticas – 2ª ronda"})]}),t.jsxs("div",{className:"flex items-center space-x-4",children:[t.jsx("div",{className:"w-20 text-cyan-400 font-semibold",children:"12:30 - 13:00"}),t.jsx("div",{className:"text-white",children:"Cierre y sorteos especiales"})]})]})})]})})}),t.jsx("div",{className:"py-16",children:t.jsx("div",{className:"container mx-auto px-6",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsx("h2",{className:"text-3xl font-bold text-white text-center mb-12",children:"Estaciones Temáticas"}),t.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[t.jsxs("div",{className:"bg-white/10 backdrop-blur-md rounded-2xl p-6 border border-white/20",children:[t.jsx("h3",{className:"text-xl font-semibold text-cyan-400 mb-3",children:"Asistente Académico Inteligente"}),t.jsx("p",{className:"text-gray-300",children:"Para acompañar a docentes y estudiantes en su proceso educativo."})]}),t.jsxs("div",{className:"bg-white/10 backdrop-blur-md rounded-2xl p-6 border border-white/20",children:[t.jsx("h3",{className:"text-xl font-semibold text-cyan-400 mb-3",children:"Owly - Agente de IA"}),t.jsx("p",{className:"text-gray-300",children:"Transformar la gestión educativa con inteligencia artificial avanzada."})]}),t.jsxs("div",{className:"bg-white/10 backdrop-blur-md rounded-2xl p-6 border border-white/20",children:[t.jsx("h3",{className:"text-xl font-semibold text-cyan-400 mb-3",children:"Transformación Digital"}),t.jsx("p",{className:"text-gray-300",children:"Educación Continua con Salesforce para 
676instituciones modernas."})]}),t.jsxs("div",{className:"bg-white/10 backdrop-blur-md rounded-2xl p-6 border border-white/20",children:[t.jsx("h3",{className:"text-xl font-semibold text-cyan-400 mb-3",children:"Educación 360 con AWS"}),t.jsx("p",{className:"text-gray-300",children:"Experiencias más inteligentes y personalizadas en la nube."})]})]}),t.jsxs("div",{className:"mt-8 text-center",children:[t.jsx("p",{className:"text-gray-300 mb-6",children:"Cada estación incluye trivias interactivas con premios vinculados a AWS y la posibilidad de completar el Pasaporte AWSome Campus 2025, para participar del gran sorteo final."}),t.jsxs("div",{className:"bg-gradient-to-r from-yellow-500/20 to-orange-500/20 rounded-2xl p-6 border border-yellow-500/30",children:[t.jsx("h3",{className:"text-xl font-semibold text-yellow-400 mb-2",children:"🏆 Sorteos Finales"}),t.jsx("p",{className:"text-white",children:"Importantes premios sorpresa y créditos de uso en la consola de AWS"})]})]})]})})}),t.jsx("div",{className:"bg-gradient-to-r from-cyan-600 to-blue-600 py-16",children:t.jsx("div",{className:"container mx-auto px-6",children:t.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[t.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-white mb-6",children:"¡Asegurá tu lugar hoy mismo!"}),t.jsx("p",{className:"text-xl text-cyan-100 mb-8",children:"Sé parte de esta experiencia única que marcará el futuro de la educación en la nube."}),t.jsx(wr,{size:"lg",className:"bg-white text-blue-600 hover:bg-gray-100 px-12 py-4 text-xl font-semibold rounded-xl",onClick:()=>window.open(e,"_blank"),children:"REGISTRARSE AHORA"}),t.jsx("p",{className:"mt-4 text-cyan-200",children:"Los cupos son limitados a 50 participantes"})]})})})]})}function H1(){const{language:e}=J(),s=e==="es"?"https://sparklearningesp.substack.com/":"https://aulasneo.substack.com/";return v.useEffect(()=>{const o=setTimeout(()=>{window.location.replace(s)},100);return()=>clearTimeout(o)},[s]),t.jsxs("div",{className:"min-h-screen flex items-center justify-center bg-gray-50",children:[t.jsx(D,{title:"Newsletter - Aulasneo",description:e==="es"?"Redirigiendo a nuestro newsletter.":"Redirecting to our newsletter.",canonical:"https://aulasneo.com/newsletter/",robots:"noindex, follow"}),t.jsxs("div",{className:"text-center p-8",children:[t.jsx("div",{className:"animate-spin rounded-full h-12 w-12 border-b-2 border-purple mx-auto mb-6"}),t.jsx("p",{className:"text-gray-600 font-quicksand mb-4",children:e==="es"?"Redirigiendo al newsletter...":"Redirecting to newsletter..."}),t.jsx("a",{href:s,className:"text-purple hover:text-purple/80 underline font-quicksand",target:"_blank",rel:"noopener noreferrer",children:e==="es"?"Haz clic aquí si no eres redirigido automáticamente":"Click here if not redirected automatically"})]})]})}function vp(){const{language:e}=J(),s=e==="es"?{title:"Política de Privacidad | Aulasneo",description:"Política de Privacidad de Aulasneo. Conocé cómo recopilamos, usamos, almacenamos y protegemos tu información personal.",heading:"Política de Privacidad",effective:"Fecha de vigencia: 1 de enero de 2024",intro:'¡Bienvenido a aulasneo.com! Estamos comprometidos con la protección de tu privacidad. Esta Política de Privacidad explica cómo recopilamos, usamos, almacenamos y protegemos tu información personal cuando visitás nuestro sitio web https://www.aulasneo.com (el "Sitio Web").',collectTitle:"Información que Recopilamos",collectItems:["Directamente de vos cuando nos la proporcionás (p. ej., al suscribirte a un boletín o realizar una compra).","Automáticamente mientras navegás por el sitio (lo que puede incluir detalles de uso, direcciones IP e información recopilada a través de cookies y otras tecnologías de seguimiento)."],useTitle:"Uso de tu Información",useIntro:"Podemos usar la información que recopilamos sobre vos para:",useItems:["Proporcionarte nuestro Sitio Web y su contenido.","Proporcionarte información, productos o servicios que nos solicitás.","Cumplir con cualquier otro propósito para el que nos la proporcionás."],sharingTitle:"Compartición de tu Información",sharingText:"No vendemos, alquilamos ni proporcionamos tu Información Personal a terceros con fines de marketing. Podemos divulgar información agregada sobre nuestros usuarios sin restricciones.",securityTitle:"Seguridad de los Datos",securityText:"Hemos implementado medidas diseña
676das para proteger tu Información Personal de pérdidas accidentales y de acceso, uso, alteración y divulgación no autorizados.",changesTitle:"Cambios en Nuestra Política de Privacidad",changesText:"Podemos actualizar nuestra Política de Privacidad periódicamente. Te notificaremos de cualquier cambio publicando la nueva Política de Privacidad en esta página.",contactTitle:"Información de Contacto",contactIntro:"Para hacer preguntas o comentarios sobre esta Política de Privacidad y nuestras prácticas de privacidad, contáctanos en:",contactEmail:"Correo electrónico: [email protected]",contactAddress:"Dirección: 8th the Green, Dover, DE, 19901, EE. UU.",footer:"Vigente desde el 1 de enero de 2024."}:{title:"Privacy Policy | Aulasneo",description:"Privacy Policy for Aulasneo. Learn how we collect, use, store, and protect your personal information.",heading:"Privacy Policy",effective:"Effective Date: 1st January 2024",intro:'Welcome to aulasneo.com! We are committed to protecting your privacy. This Privacy Policy explains how we collect, use, store, and protect your personal information when you visit our website https://www.aulasneo.com (the "Website").',collectTitle:"Information We Collect",collectItems:["Directly from you when you provide it to us (e.g., signing up for a newsletter, making a purchase).","Automatically as you navigate through the site (which may include usage details, IP addresses, and information collected through cookies and other tracking technologies)."],useTitle:"Use of Your Information",useIntro:"We may use the information we collect about you to:",useItems:["Provide our Website and its contents to you.","Provide you with information, products, or services that you request from us.","Fulfill any other purpose for which you provide it."],sharingTitle:"Sharing of Your Information",sharingText:"We do not sell, rent, or otherwise provide your Personal Information to third parties for marketing purposes. We may disclose aggregated information about our users without restriction.",securityTitle:"Data Security",securityText:"We have implemented measures designed to secure your Personal Information from accidental loss and from unauthorized access, use, alteration, and disclosure.",changesTitle:"Changes to Our Privacy Policy",changesText:"We may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page.",contactTitle:"Contact Information",contactIntro:"To ask questions or comment about this Privacy Policy and our privacy practices, contact us at:",contactEmail:"Email Address: [email protected]",contactAddress:"Address: 8th the Green, Dover, DE, 19901, USA.",footer:"Effective as of 1st January 2024."};return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:s.title,description:s.description,canonical:e==="es"?"https://aulasneo.com/es/privacy-policy/":"https://aulasneo.com/privacy-policy/",hreflangEn:"https://aulasneo.com/privacy-policy/",hreflangEs:"https://aulasneo.com/es/privacy-policy/"}),t.jsx("div",{className:"min-h-screen bg-white",children:t.jsxs("div",{className:"container mx-auto px-4 py-16 max-w-3xl",children:[t.jsx("h1",{className:"text-4xl font-bold text-dark-blue mb-2 font-quicksand",children:s.heading}),t.jsx("p",{className:"text-orange font-semibold mb-8 font-quicksand",children:s.effective}),t.jsx("p",{className:"text-gray-700 mb-8 font-quicksand leading-relaxed",children:s.intro}),t.jsxs("section",{className:"mb-8",children:[t.jsx("h2",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:s.collectTitle}),t.jsx("ul",{className:"list-disc list-outside ml-6 space-y-2",children:s.collectItems.map((o,r)=>t.jsx("li",{className:"text-gray-700 font-quicksand leading-relaxed",children:o},r))})]}),t.jsxs("section",{className:"mb-8",children:[t.jsx("h2",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:s.useTitle}),t.jsx("p",{className:"text-gray-700 mb-3 font-quicksand",children:s.useIntro}),t.jsx("ul",{className:"list-disc list-outside ml-6 space-y-2",children:s.useItems.map((o,r)=>
676t.jsx("li",{className:"text-gray-700 font-quicksand leading-relaxed",children:o},r))})]}),t.jsxs("section",{className:"mb-8",children:[t.jsx("h2",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:s.sharingTitle}),t.jsx("p",{className:"text-gray-700 font-quicksand leading-relaxed",children:s.sharingText})]}),t.jsxs("section",{className:"mb-8",children:[t.jsx("h2",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:s.securityTitle}),t.jsx("p",{className:"text-gray-700 font-quicksand leading-relaxed",children:s.securityText})]}),t.jsxs("section",{className:"mb-8",children:[t.jsx("h2",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:s.changesTitle}),t.jsx("p",{className:"text-gray-700 font-quicksand leading-relaxed",children:s.changesText})]}),t.jsxs("section",{className:"mb-8",children:[t.jsx("h2",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:s.contactTitle}),t.jsx("p",{className:"text-gray-700 mb-3 font-quicksand",children:s.contactIntro}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:s.contactEmail}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:s.contactAddress})]}),t.jsx("p",{className:"text-gray-500 text-sm font-quicksand border-t border-gray-200 pt-6 mt-6",children:s.footer})]})})]})}function bp(){const{language:e}=J(),s=e==="es"?{title:"Términos de Uso | Aulasneo",description:"Términos de Uso de Aulasneo.com. Leé los términos que rigen tu acceso y uso de nuestro sitio web y servicios.",heading:"Términos de Uso",effective:"Fecha de vigencia: 1 de enero de 2024",sections:[{title:"Introducción",text:'Bienvenido a Aulasneo.com. Estos Términos de Uso ("Términos") rigen tu acceso y uso del sitio web de Aulasneo.com y sus servicios relacionados (colectivamente, el "Servicio"). Al acceder o usar el Servicio, aceptás quedar vinculado por estos Términos y nuestra Política de Privacidad.'},{title:"Aceptación de los Términos",text:"Tu acceso y uso del Servicio está condicionado a tu aceptación y cumplimiento de estos Términos. Si no estás de acuerdo con alguna parte de los Términos, no podés acceder al Servicio."},{title:"Descripción del Servicio",text:'Aulasneo.com proporciona una variedad de servicios en línea, incluyendo, entre otros, cursos, tutoriales y recursos educativos (el "Contenido Educativo"). El Servicio está diseña
676do para facilitar el aprendizaje y el desarrollo personal.'},{title:"Cuentas de Usuario y Responsabilidades",text:"Para acceder a ciertas funciones del Servicio, debés registrarte y crear una cuenta. Sos responsable de mantener la confidencialidad de la información de tu cuenta y de todas las actividades que ocurran bajo tu cuenta. Aceptás proporcionar información precisa, actual y completa durante el proceso de registro y actualizar dicha información para mantenerla precisa, actual y completa."},{title:"Actividades Prohibidas",intro:"Está prohibido usar el Servicio para:",items:["Participar en actividades fraudulentas o ilegales.","Infringir los derechos de propiedad intelectual de terceros.","Transmitir material abusivo, acosador, difamatorio, obsceno o de cualquier otra forma objetable.","Interferir con el Servicio o interrumpirlo."]},{title:"Propiedad Intelectual",text:"Todo el contenido proporcionado en Aulasneo.com, incluyendo texto, gráficos, logotipos, imágenes, así como su compilación, y cualquier software utilizado en el Sitio, es propiedad de Aulasneo.com o sus proveedores y está protegido por derechos de autor y otras leyes que protegen la propiedad intelectual y los derechos de propiedad."},{title:"Descargos de Responsabilidad",text:'Los materiales en Aulasneo.com se proporcionan "tal como están". Aulasneo.com no ofrece garantías, expresas o implícitas, y por la presente renuncia a todas las demás garantías, incluyendo, sin limitación, las garantías implícitas o condiciones de comerciabilidad, idoneidad para un propósito particular o no infracción de la propiedad intelectual.'},{title:"Limitación de Responsabilidad",text:"En ningún caso Aulasneo.com o sus proveedores serán responsables de daños (incluyendo, sin limitación, daños por pérdida de datos o ganancias, o debido a la interrupción del negocio) que surjan del uso o la imposibilidad de usar los materiales de Aulasneo.com."},{title:"Indemnización",text:"Aceptás indemnizar, defender y mantener indemnes a Aulasneo.com, sus funcionarios, directores, empleados, agentes y terceros, por cualquier pérdida, costo, responsabilidad y gasto (incluidos los honorarios razonables de abogados) relacionados con o que surjan de tu uso o imposibilidad de usar el Sitio o los servicios."},{title:"Modificación de los Términos",text:"Aulasneo.com se reserva el derecho, a su entera discreción, de cambiar los Términos bajo los cuales se ofrece Aulasneo.com. La versión más actual de los Términos reemplazará todas las versiones anteriores."},{title:"Ley Aplicable",text:"Estos Términos se rigen e interpretan de acuerdo con las leyes de Dover, EE. UU., y te sometés irrevocablemente a la jurisdicción exclusiva de los tribunales de ese Estado o ubicación."},{title:"Información de Contacto",intro:"Aulasneo.com agradece tus preguntas o comentarios sobre los Términos:",contact:["Correo electrónico: [email protected]","Dirección: 8th the Green, Dover, DE, EE. UU., 19901."]}],footer:"Vigente desde: 1 de enero de 2024."}:{title:"Terms of Use | Aulasneo",description:"Terms of Use for Aulasneo.com. Read the terms that govern your access to and use of our website and services.",heading:"Terms of Use",effective:"Effective Date: 1st January 2024",sections:[{title:"Introduction",text:'Welcome to Aulasneo.com. These Terms of Use ("Terms") govern your access to and use of the Aulasneo.com website and its related services (collectively, the "Service"). By accessing or using the Service, you agree to be bound by these Terms and our Privacy Policy.'},{title:"Acceptance of Terms",text:"Your access to and use of the Service is conditioned on your acceptance of and compliance with these Terms. If you disagree with any part of the Terms, you may not access the Service."},{title:"Description of Service",text:'Aulasneo.com provides a range of online services, including but not limited to, courses, tutorials, and educational resources (the "Educational Content"). The Service is designed to facilitate learning and personal development.'},{title:"User Accounts and Responsibilities",text:"To access certain features of the Service, you must register and create an account. You are responsible for maintaining the confidentiality of your account information and for all activities that occur under your account. You agree to provide accurate, current, and complete information during the registration process and to update such information to keep it accurate, current, and complete."},{title:"Prohibited Activities",intro:"You are prohibited from using the Service to:",items:["Engage in any fraudulent or illegal activities.","Infringe upon the intellectual property rights of others.","Transmit any material that is abusive, harassing, defamatory, obscene, or otherwise objectionable.","Interfere with or disrupt the Service."]},{title:"Intellectual Property",text:"All content provided on Aulasneo.com, including text, graphics, logos, images, as well as the compilation thereof, and any software used on the Site, is the property of Aulasneo.com or its suppliers and protected by copyright and other laws that protect intellectual property and proprietary rights."},{title:"Disclaimers",text:'The materials on Aulasneo.com are provided "as is". Aulasneo.com makes no warranties, expressed or implied, and hereby disclaims all other warranties including, without limitation, implied warranties or conditions of merchantability, fitness for a particular purpose, or non-infringement of intellectual property.'},{title:"Limitation of Liability",text:"In no event shall Aulasneo.com or its suppliers be liable for any damages (including, without limitation, damages for loss of data or profit, or due to business interruption) arising out of the use or inability to use the materials on Aulasneo.com."},{title:"Indemnification",text:"You agree to indemnify, defend and hold harmless Aulasneo.com, its officers, directors, employees, agents, and third parties, for any losses, costs, liabilities, and expenses (including reasonable attorney's fees) relating to or arising out of your use of or inability to use the Site or services."},{title:"Modification of Terms",text:"Aulasneo.com reserves the right, in its sole discretion, to change the Terms under which Aulasneo.com is offered. The most current version of the Terms will supersede all previous versions."},{title:"Governing Law",text:"These Terms are governed by and construed in accordance with the laws of Dover, USA and you irrevocably submit to the exclusive jurisdiction of the courts in that State or location."},{title:"Contact Information",intro:"Aulasneo.com welcomes your questions or comments regarding the Terms:",contact:["Email Address: [email protected]","Address: 8th the Green, Dover, DE, USA, 19901."]}],footer:"Effective as of: 1st January 2024."};
676return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:s.title,description:s.description,canonical:e==="es"?"https://aulasneo.com/es/terms-of-service/":"https://aulasneo.com/terms-of-service/",hreflangEn:"https://aulasneo.com/terms-of-service/",hreflangEs:"https://aulasneo.com/es/terms-of-service/"}),t.jsx("div",{className:"min-h-screen bg-white",children:t.jsxs("div",{className:"container mx-auto px-4 py-16 max-w-3xl",children:[t.jsx("h1",{className:"text-4xl font-bold text-dark-blue mb-2 font-quicksand",children:s.heading}),t.jsx("p",{className:"text-orange font-semibold mb-8 font-quicksand",children:s.effective}),s.sections.map((o,r)=>t.jsxs("section",{className:"mb-8",children:[t.jsx("h2",{className:"text-2xl font-bold text-dark-blue mb-4 font-quicksand",children:o.title}),"text"in o&&t.jsx("p",{className:"text-gray-700 font-quicksand leading-relaxed",children:o.text}),"intro"in o&&o.intro&&t.jsx("p",{className:"text-gray-700 font-quicksand mb-3",children:o.intro}),"items"in o&&o.items&&t.jsx("ul",{className:"list-disc list-outside ml-6 space-y-2",children:o.items.map((i,l)=>t.jsx("li",{className:"text-gray-700 font-quicksand leading-relaxed",children:i},l))}),"contact"in o&&o.contact&&t.jsx("div",{className:"space-y-1",children:o.contact.map((i,l)=>t.jsx("p",{className:"text-gray-700 font-quicksand",children:i},l))})]},r)),t.jsx("p",{className:"text-gray-500 text-sm font-quicksand border-t border-gray-200 pt-6 mt-6",children:s.footer})]})})]})}const U1={seo:{title:"Open edX Pricing: Self-Hosted vs Managed Service | Aulasneo",description:"How much does Open edX cost? Compare self-hosted vs fully managed pricing. Aulasneo offers managed Open edX plans for universities, companies and NGOs."},hero:{h1:"Open edX Pricing: What Does It Really Cost?",subtitle:"Understand the true cost of running Open edX — and why a managed service changes the equation."},twoWays:{title:"Two ways to run Open edX",selfHosted:{label:"Self-Hosted",intro:"You manage everything. This approach gives you full control but comes with significant hidden costs:",costs:["DevOps / SRE team salary: USD 3,000–6,000/mo","AWS or cloud infrastructure: USD 500–2,000/mo","Ongoing updates & version upgrades","Security patches & compliance","24/7 monitoring & incident response","Analytics setup & maintenance","Custom integrations & plugin support"],totalLabel:"Total hidden cost:",totalValue:"USD 3,500 – USD 10,000+/month",disclaimer:"Not counting your team's time and opportunity cost."},managed:{badge:"RECOMMENDED",label:"Fully Managed",intro:"We handle everything. You focus entirely on creating great learning experiences.",includes:["Hosting on AWS — fully managed","Automatic Open edX updates","Daily backups & disaster recovery","Technical support (Gold plan and above; Silver includes community support)","Panorama Analytics dashboard (Gold plan and above)","Custom branding & domain","LTI & third-party integrations","Setup in 24 hours"],pricing:"Plans starting from",pricingValue:"USD 499",pricingWith:"with",unlimited1:"Unlimited Users",unlimited2:"Unlimited Courses",cta:"See all our plans →"}},included:{title:"What's included in Aulasneo's managed Open edX plans",items:[{icon:"☁️",text:"Hosting on AWS — scalable, reliable, secure"},{icon:"🔄",text:"Automatic Open edX updates and upgrades"},{icon:"💾",text:"Daily automated backups"},{icon:"🛠️",text:"Technical support via email and chat (Gold plan and above; Silver includes community support)"},{icon:"📊",text:"Panorama Analytics — learner insights dashboard (Gold plan and above)"},{icon:"🎨",text:"Custom branding and white-labeling"},{icon:"🔗",text:"LTI, SCORM and third-party integrations"},{icon:"⚡",text:"Setup and go-live in 24 hours"}]},faq:{title:"Frequently asked questions about Open edX pricing",items:[{q:"Is Open edX free?",a:"The Open edX software is open source and free to download, but running it requires cloud infrastructure, DevOps expertise, and ongoing maintenance. A managed service like Aulasneo eliminates those hidden costs."},{q:"How much does Open edX hosting cost?",a:"Aulasneo's fully managed Open edX plans start at USD 499 per month billed annually (USD 599 month to month), with unlimited users and courses. Silver, Gold and Platinum plans differ in infrastru
676cture capacity, support and included services such as Panorama analytics. Contact us for a custom quote for enterprise scale."},{q:"What is the difference between self-hosted and managed Open edX?",a:"Self-hosted means your team installs and maintains the platform. Managed means a provider like Aulasneo handles everything — infrastructure, updates, security and support."},{q:"Does Aulasneo offer a free trial?",a:"Yes. You can book a one-day sandbox session to explore the platform before committing to a plan."}]},cta:{title:"Ready to get started?",subtitle:"Tell us about your project and we'll put together a custom Open edX plan for you.",btn1:"Request a quote",btn2:"See all pricing plans"}},B1={seo:{title:"Precios de Open edX: Auto-hospedado vs Servicio Gestionado | Aulasneo",description:"¿Cuánto cuesta Open edX? Comparación de precios entre auto-hospedado y totalmente gestionado. Aulasneo ofrece planes de Open edX gestionado para universidades, empresas y ONGs."},hero:{h1:"Precios de Open edX: ¿Cuánto Cuesta Realmente?",subtitle:"Entendé el costo real de operar Open edX — y por qué un servicio gestionado cambia la ecuación."},twoWays:{title:"Dos formas de usar Open edX",selfHosted:{label:"Auto-hospedado",intro:"Vos administrás todo. Este enfoque te da control total, pero tiene costos ocultos significativos:",costs:["Salario equipo DevOps / SRE: USD 3,000–6,000/mes","AWS u otra infraestructura cloud: USD 500–2,000/mes","Actualizaciones y upgrades de versión continuos","Parches de seguridad y cumplimiento normativo","Monitoreo 24/7 y respuesta a incidentes","Configuración y mantenimiento de analytics","Integraciones personalizadas y soporte de plugins"],totalLabel:"Costo oculto total:",totalValue:"USD 3,500 – USD 10,000+/mes",disclaimer:"Sin contar el tiempo de tu equipo y el costo de oportunidad."},managed:{badge:"RECOMENDADO",label:"Totalmente Gestionado",intro:"Nosotros nos encargamos de todo. Vos te enfocás en crear experiencias de aprendizaje excepcionales.",includes:["Hosting en AWS — totalmente gestionado","Actualizaciones automáticas de Open edX","Backups diarios y recuperación ante desastres","Soporte técnico (plan Oro o superior; el plan Plata incluye soporte de la comunidad)","Dashboard de Panorama Analytics (plan Oro o superior)","Branding personalizado y dominio propio","Integraciones LTI y de terceros","Puesta en marcha en 24 horas"],pricing:"Planes desde",pricingValue:"USD 499",pricingWith:"con",unlimited1:"Usuarios Ilimitados",unlimited2:"Cursos Ilimitados",cta:"Ver todos nuestros planes →"}},included:{title:"Qué incluyen los planes de Open edX gestionado de Aulasneo",items:[{icon:"☁️",text:"Hosting en AWS — escalable, confiable y seguro"},{icon:"🔄",text:"Actualizaciones y upgrades automáticos de Open edX"},{icon:"💾",text:"Backups automatizados diarios"},{icon:"🛠️",text:"Soporte técnico por email y chat (plan Oro o superior; el plan Plata incluye soporte de la comunidad)"},{icon:"📊",text:"Panorama Analytics — dashboard de insights del alumno (plan Oro o superior)"},{icon:"🎨",text:"Branding personalizado y white-labeling"},{icon:"🔗",text:"Integraciones LTI, SCORM y de terceros"},{icon:"⚡",text:"Puesta en marcha en 24 horas"}]},faq:{title:"Preguntas frecuentes sobre los precios de Open edX",items:[{q:"¿Open edX es gratuito?",a:"El software Open edX es de código abierto y gratuito para descargar, pero ejecutarlo requiere infraestructura cloud, experiencia en DevOps y mantenimiento continuo. Un servicio gestionado como Aulasneo elimina esos costos ocultos."},{q:"¿Cuánto cuesta el hosting de Open edX?",a:"Los planes de Open edX totalmente gestionado de Aulasneo arrancan en USD 499 por mes con pago anual (USD 599 con pago mensual), con usuarios y cursos ilimitados. Los planes Plata, Oro y Platino se diferencian en capacidad de infraestructura, soporte y servicios incluidos, como la analítica de Panorama. Contactanos para una cotización a escala empresarial."},{q:"¿Cuál es la diferencia entre Open edX auto-hospedado y gestionado?",a:"Auto-hospedado significa que tu equipo instala y mantiene la plataforma. Gestionado significa que un proveedor como Aulasneo se encarga de todo — infraestructura, actualizaciones, seguridad y soporte."},{q:"¿Aulasneo ofrece una prueba gratuita?",a:"Sí. Podés reservar una sesión de sandbox de un día para explorar la plataforma antes de comprometerte con un plan."}]}
676,cta:{title:"¿Listo para comenzar?",subtitle:"Contanos sobre tu proyecto y armaremos un plan Open edX personalizado para vos.",btn1:"Solicitar una cotización",btn2:"Ver todos los planes"}};function wp(){const{language:e}=J(),n=e==="es"?B1:U1;return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:n.seo.title,description:n.seo.description,canonical:e==="es"?"https://aulasneo.com/es/open-edx-pricing/":"https://aulasneo.com/open-edx-pricing/",hreflangEn:"https://aulasneo.com/open-edx-pricing/",hreflangEs:"https://aulasneo.com/es/open-edx-pricing/",ogTitle:n.seo.title,ogDescription:n.seo.description,ogType:"website",ogUrl:e==="es"?"https://aulasneo.com/es/open-edx-pricing/":"https://aulasneo.com/open-edx-pricing/",structuredData:{faq:n.faq.items.map(a=>({question:a.q,answer:a.a}))}}),t.jsxs("div",{className:"min-h-screen bg-white",children:[t.jsx("section",{className:"pt-32 pb-16 bg-gradient-to-br from-dark-blue via-[#0a3d7a] to-purple text-white",children:t.jsxs("div",{className:"container mx-auto px-4 text-center max-w-3xl",children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-4 font-quicksand leading-tight",children:n.hero.h1}),t.jsx("p",{className:"text-lg text-blue-200 font-quicksand",children:n.hero.subtitle})]})}),t.jsx("section",{className:"py-16 bg-gray-50",children:t.jsxs("div",{className:"container mx-auto px-4 max-w-5xl",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-10 text-center font-quicksand",children:n.twoWays.title}),t.jsxs("div",{className:"grid md:grid-cols-2 gap-8",children:[t.jsxs("div",{className:"bg-white border border-gray-200 rounded-2xl p-8 shadow-sm",children:[t.jsxs("div",{className:"flex items-center gap-3 mb-5",children:[t.jsx("div",{className:"w-10 h-10 rounded-full bg-gray-100 flex items-center justify-center text-xl",children:"🖥️"}),t.jsx("h3",{className:"text-xl font-bold text-dark-blue font-quicksand",children:n.twoWays.selfHosted.label})]}),t.jsx("p",{className:"text-gray-600 font-quicksand mb-5 text-sm leading-relaxed",children:n.twoWays.selfHosted.intro}),t.jsx("ul",{className:"space-y-3 text-sm text-gray-700 font-quicksand",children:n.twoWays.selfHosted.costs.map((a,s)=>t.jsxs("li",{className:"flex items-start gap-2",children:[t.jsx("span",{className:"text-red-400 mt-0.5 flex-shrink-0",children:"✗"}),t.jsx("span",{children:a})]},s))}),t.jsxs("div",{className:"mt-6 p-4 bg-red-50 border border-red-100 rounded-xl",children:[t.jsxs("p",{className:"text-sm font-semibold text-red-700 font-quicksand",children:[n.twoWays.selfHosted.totalLabel," ",t.jsx("span",{className:"text-lg",children:n.twoWays.selfHosted.totalValue})]}),t.jsx("p",{className:"text-xs font-bold text-red-600 font-quicksand mt-1",children:n.twoWays.selfHosted.disclaimer})]})]}),t.jsxs("div",{className:"bg-dark-blue border-2 border-orange rounded-2xl p-8 shadow-lg text-white relative overflow-hidden",children:[t.jsx("div",{className:"absolute top-4 right-4 bg-orange text-white text-xs font-bold px-3 py-1 rounded-full font-quicksand",children:n.twoWays.managed.badge}),t.jsxs("div",{className:"flex items-center gap-3 mb-5",children:[t.jsx("div",{className:"w-10 h-10 rounded-full bg-orange/20 flex items-center justify-center text-xl",children:"🚀"}),t.jsxs("h3",{className:"text-xl font-bold font-quicksand",children:[n.twoWays.managed.label," ",t.jsx("span",{className:"text-orange",children:"(Aulasneo)"})]})]}),t.jsx("p",{className:"text-blue-200 font-quicksand mb-5 text-sm leading-relaxed",children:n.twoWays.managed.intro}),t.jsx("ul",{className:"space-y-3 text-sm font-quicksand",children:n.twoWays.managed.includes.map((a,s)=>t.jsxs("li",{className:"flex items-start gap-2 text-blue-100",children:[t.jsx("span",{className:"text-orange mt-0.5 flex-shrink-0",children:"✓"}),t.jsx("span",{children:a})]},s))}),t.jsxs("div",{className:"mt-6 p-4 bg-white/10 border border-white/20 rounded-xl",children:[t.jsxs("p",{className:"text-sm font-quicksand text-blue-200",children:[n.twoWays.managed.pricing," ",t.jsx("span",{className:"font-bold text-white",children:n.twoWays.managed.pricingValue})," ",n.twoWays.managed.pricingWith," ",t.jsx("span",{className:"font-bold text-orange uppercase",children:n.twoWays.managed.unlimited1})," ",e==="es"?"y":"and"," ",t.jsx("span",{className:"font-bold text-orange uppercase",children:n.twoWays.managed.unlimited2}),"."]}),t.jsx(E,{href:"/pricing/",className:"mt-3 inline-block bg-orange text-white px-6 py-2 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand text-sm",onClick:()=>Ho("see_plans_click","engagement","open_edx_pricing"),children:n.twoWays.managed.cta})]})]})]})]})}),t.jsx("section",{className:"py-16 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4 max-w-3xl",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-8 font-quicksand text-center",children:n.included.title}),t.jsx("div",{className:"grid sm:grid-cols-2 gap-4",children:n.included.items.map((a,s)=>t.jsxs("div",{className:"flex items-start gap-3 p-4 bg-gray-50 rounded-xl border border-gray-100",children:[t.jsx("span",{className:"text-xl flex-shrink-0",children:a.icon}),t.jsx("span",{className:"text-gray-700 font-quicksand text-sm leading-relaxed",children:a.text})]},s))})]})}),t.jsx("section",{className:"py-16 bg-gray-50",children:t.jsxs("div",{className:"container mx-auto px-4 max-w-3xl",children:[t.jsx("h2",{className:"text-3xl font-bold text-dark-blue mb-10 font-quicksand text-center",children:n.faq.title}),t.jsx("div",{className:"space-y-8",children:n.faq.items.map((a,s)=>t.jsxs("div",{className:"border-b border-gray-200 pb-8 last:border-0",children:[t.jsxs("h3",{className:"text-lg font-bold text-dark-blue mb-3 font-quicksand",children:["Q: ",a.q]}),t.jsxs("p",{className:"text-gray-600 font-quicksand leading-relaxed",children:[t.jsx("span",{className:"font-semibold text-gray-700",children:"A:"})," ",a.a]})]},s))})]})}),t.jsx(no,{topic:"open-edx",contained:!0}),t.jsx("section",{className:"py-20 bg-gradient-to-r from-dark-blue to-purple text-white text-center",children:t.jsxs("div",{className:"container mx-auto px-4 max-w-2xl",children:[t.jsx("h2",{className:"text-3xl md:text-4xl font-bold mb-4 font-quicksand",children:n.cta.title}),t.jsx("p",{className:"text-blue-200 text-lg mb-8 font-quicksand",children:n.cta.subtitle}),t.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[t.jsx(E,{href:"/contact/",className:"bg-orange text-white px-8 py-3.5 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand shadow-lg",onClick:()=>Ho("get_started_click","engagement","open_edx_pricing_cta"),children:n.cta.btn1}),t.jsx(E,{href:"/pricing/",className:"bg-white/10 border border-white/30 text-white px-8 py-3.5 rounded-lg hover:bg-white/20 transition-colors font-semibold font-quicksand",onClick:()=>Ho("see_pricing_click","engagement","open_edx_pricing_cta"),children:n.cta.btn2})]})]})})]})]})}const W1={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"How long does it take to set up a managed Open edX instance?",acceptedA
676nswer:{"@type":"Answer",text:"Aulasneo deploys fully configured Open edX instances within 24 hours of onboarding. You get a production-ready platform without any DevOps work."}},{"@type":"Question",name:"What cloud infrastructure does Aulasneo use for Open edX hosting?",acceptedAnswer:{"@type":"Answer",text:"Aulasneo hosts all Open edX instances on Amazon Web Services (AWS), ensuring high availability, security and scalability for any number of users."}},{"@type":"Question",name:"Can I customize my Open edX platform if it's managed by Aulasneo?",acceptedAnswer:{"@type":"Answer",text:"Yes. Managed hosting does not limit customization. Aulasneo's team can apply custom branding, integrations, XBlocks and any other modification your organization needs."}},{"@type":"Question",name:"What happens to my data if I want to migrate away?",acceptedAnswer:{"@type":"Answer",text:"All your data is yours. Aulasneo provides full data exports at any time. We also offer migration services to help you move to or from any other platform."}},{"@type":"Question",name:"How is managed Open edX hosting priced?",acceptedAnswer:{"@type":"Answer",text:"Pricing is based on the level of service (all our plans offer unlimited users!). Check our standard plans at aulasneo.com/pricing or contact us for a custom quote at aulasneo.com/contact."}}]},G1={"@context":"https://schema.org","@type":"FAQPage",mainEntity:[{"@type":"Question",name:"¿Cuánto tiempo toma configurar una instancia gestionada de Open edX?",acceptedAnswer:{"@type":"Answer",text:"Aulasneo despliega instancias de Open edX completamente configuradas en 24 horas desde el onboarding. Obtenés una plataforma lista para producción sin ningún trabajo de DevOps."}},{"@type":"Question",name:"¿Qué infraestructura cloud usa Aulasneo para el hosting de Open edX?",acceptedAnswer:{"@type":"Answer",text:"Aulasneo aloja todas las instancias de Open edX en Amazon Web Services (AWS), garantizando alta disponibilidad, seguridad y escalabilidad para cualquier cantidad de usuarios."}},{"@type":"Question",name:"¿Puedo personalizar mi plataforma Open edX si es gestionada por Aulasneo?",acceptedAnswer:{"@type":"Answer",text:"Sí. El hosting gestionado no limita la personalización. El equipo de Aulasneo puede aplicar branding personalizado, integraciones, XBlocks y cualquier otra modificación que tu organización necesite."}},{"@type":"Question",name:"¿Qué pasa con mis datos si quiero migrar a otra plataforma?",acceptedAnswer:{"@type":"Answer",text:"Todos tus datos son tuyos. Aulasneo ofrece exportación completa de datos en cualquier momento. También ofrecemos servicios de migración para ayudarte a moverte hacia o desde cualquier otra plataforma."}},{"@type":"Question",name:"¿Cómo se determina el precio del hosting gestionado de Open edX?",acceptedAnswer:{"@type":"Answer",text:"El precio se basa en el nivel de servicio (¡todos nuestros planes ofrecen usuarios ilimitados!). Consultá nuestros planes estándar en aulasneo.com/pricing o contactanos para una cotización personalizada en aulasneo.com/contact."}}]},V1={seo:{title:"Open edX Hosting: Fully Managed Plans | Aulasneo",description:"Open edX hosting without the headaches. Aulasneo manages your entire Open edX infrastructure — servers, updates, backups and support. Deployed in 24 hours.",canonical:"https://aulasneo.com/open-edx-hosting/",hreflangEn:"https://aulasneo.com/open-edx-hosting/",hreflangEs:"https://aulasneo.com/es/open-edx-hosting/"},hero:{h1:"Open edX Hosting — Fully Managed, Zero Infrastructure Headaches",subtitle:"We manage your entire Open edX infrastructure — servers, updates, backups and support — so your team focuses on learning, not DevOps.",cta1:"Get a free quote",cta2:"See pricing"},includes:{h2:"What does Open edX hosting include?",items:["AWS cloud infrastructure","Automatic platform updates","Daily backups","24/7 monitoring","SSL certificates","Custom domain setup","Technical support (Gold plan and above)","Panorama Analytics dashboard (Gold plan and above)"]},comparison:{h2:"Self-managed vs fully managed Open edX hosting",colSelf:"Self-managed",colManaged:"Fully managed by Aulasneo",rows:[{aspect:"Setup time",self:"Weeks of DevOps work",managed:"24 hours"},{aspect:"Technical team required",self:"Yes — DevOps + sysadmin",managed:"No"},{aspect:"Platform updates",self:"Manual, risky",managed:"Automatic, handled by Aulasneo"}
676,{aspect:"Infrastructure cost",self:"AWS + team salary",managed:"All-inclusive plan"},{aspect:"Support",self:"Internal team",managed:"Aulasneo expert support"},{aspect:"Customization",self:"Full control",managed:"Full control"}]},audience:{h2:"Who is managed Open edX hosting for?",items:[{icon:"🎓",title:"Universities and higher education institutions"},{icon:"🏢",title:"Corporations running employee training programs"},{icon:"🌍",title:"NGOs and government agencies"},{icon:"🚀",title:"Ed-tech startups and online course academies"}]},faq:{h2:"Frequently asked questions about Open edX hosting",items:[{q:"How long does it take to set up a managed Open edX instance?",a:"Aulasneo deploys fully configured Open edX instances within 24 hours of onboarding. You get a production-ready platform without any DevOps work."},{q:"What cloud infrastructure does Aulasneo use for Open edX hosting?",a:"Aulasneo hosts all Open edX instances on Amazon Web Services (AWS), ensuring high availability, security and scalability for any number of users."},{q:"Can I customize my Open edX platform if it's managed by Aulasneo?",a:"Yes. Managed hosting does not limit customization. Aulasneo's team can apply custom branding, integrations, XBlocks and any other modification your organization needs."},{q:"What happens to my data if I want to migrate away?",a:"All your data is yours. Aulasneo provides full data exports at any time. We also offer migration services to help you move to or from any other platform."},{q:"How is managed Open edX hosting priced?",a:null}]},pricingAnswer:{prefix:"Pricing is based on the level of service (all our plans offer unlimited users!). Check our standard plans at",pricingLink:"aulasneo.com/pricing",middle:"or contact us for a custom quote at",contactLink:"aulasneo.com/contact",suffix:"."},cta:{h2:"Ready to launch your Open edX platform?",subtitle:"Tell us about your project and get a custom hosting quote within 24 hours.",button:"Get a free quote"}},$1={seo:{title:"Hosting de Open edX: Planes Totalmente Gestionados | Aulasneo",description:"Hosting de Open edX sin complicaciones. Aulasneo gestiona toda tu infraestructura — servidores, actualizaciones, backups y soporte. Desplegado en 24 horas.",canonical:"https://aulasneo.com/es/open-edx-hosting/",hreflangEn:"https://aulasneo.com/open-edx-hosting/",hreflangEs:"https://aulasneo.com/es/open-edx-hosting/"},hero:{h1:"Hosting de Open edX — Totalmente Gestionado, Sin Dolores de Cabeza de Infraestructura",subtitle:"Gestionamos toda tu infraestructura de Open edX — servidores, actualizaciones, backups y soporte — para que tu equipo se enfoque en el aprendizaje, no en DevOps.",cta1:"Obtener cotización gratis",cta2:"Ver precios"},includes:{h2:"¿Qué incluye el hosting de Open edX?",items:["Infraestructura cloud en AWS","Actualizaciones automáticas de la plataforma","Backups diarios","Monitoreo 24/7","Certificados SSL","Configuración de dominio personalizado","Soporte técnico (plan Oro o superior)","Panel de Panorama Analytics (plan Oro o superior)"]},comparison:{h2:"Hosting de Open edX autogestionado vs totalmente gestionado",colSelf:"Autogestionado",colManaged:"Totalmente gestionado por Aulasneo",rows:[{aspect:"Tiempo de instalación",self:"Semanas de trabajo DevOps",managed:"24 horas"},{aspect:"Equipo técnico requerido",self:"Sí — DevOps + sysadmin",managed:"No"},{aspect:"Actualizaciones",self:"Manuales, riesgosas",managed:"Automáticas, a cargo de Aulasneo"},{aspect:"Costo de infraestructura",self:"AWS + salario del equipo",managed:"Plan todo incluido"},{aspect:"Soporte",self:"Equipo interno",managed:"Soporte experto de Aulasneo"},{aspect:"Personalización",self:"Control total",managed:"Control total"}]},audience:{h2:"¿Para quién es el hosting gestionado de Open edX?",items:[{icon:"🎓",title:"Universidades e instituciones de educación superior"},{icon:"🏢",title:"Empresas con programas de capacitación para empleados"},{icon:"🌍",title:"ONGs y organismos gubernamentales"},{icon:"🚀",title:"Startups de EdTech y academias de cursos online"}]},faq:{h2:"Preguntas frecuentes sobre hosting de Open edX",items:[{q:"¿Cuánto tiempo toma configurar una instancia gestionada de Open edX?",a:"Aulasneo despliega instancias de Open edX completamente configuradas en 24 horas de
676sde el onboarding. Obtenés una plataforma lista para producción sin ningún trabajo de DevOps."},{q:"¿Qué infraestructura cloud usa Aulasneo para el hosting de Open edX?",a:"Aulasneo aloja todas las instancias de Open edX en Amazon Web Services (AWS), garantizando alta disponibilidad, seguridad y escalabilidad para cualquier cantidad de usuarios."},{q:"¿Puedo personalizar mi plataforma Open edX si es gestionada por Aulasneo?",a:"Sí. El hosting gestionado no limita la personalización. El equipo de Aulasneo puede aplicar branding personalizado, integraciones, XBlocks y cualquier otra modificación que tu organización necesite."},{q:"¿Qué pasa con mis datos si quiero migrar a otra plataforma?",a:"Todos tus datos son tuyos. Aulasneo ofrece exportación completa de datos en cualquier momento. También ofrecemos servicios de migración para ayudarte a moverte hacia o desde cualquier otra plataforma."},{q:"¿Cómo se determina el precio del hosting gestionado de Open edX?",a:null}]},pricingAnswer:{prefix:"El precio se basa en el nivel de servicio (¡todos nuestros planes ofrecen usuarios ilimitados!). Consultá nuestros planes estándar en",pricingLink:"aulasneo.com/pricing",middle:"o contactanos para una cotización personalizada en",contactLink:"aulasneo.com/contact",suffix:"."},cta:{h2:"¿Listo para lanzar tu plataforma Open edX?",subtitle:"Contanos sobre tu proyecto y recibí una cotización de hosting personalizada en 24 horas.",button:"Obtener cotización gratis"}};function jp(){const{language:e}=J(),n=e==="es"?$1:V1,a="text-[#ef9245] underline hover:text-[#e07c30] transition-colors";return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:n.seo.title,description:n.seo.description,canonical:n.seo.canonical,hreflangEn:n.seo.hreflangEn,hreflangEs:n.seo.hreflangEs}),t.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(e==="es"?G1:W1)}}),t.jsxs("section",{className:"bg-[#062b60] text-white py-20 pt-32 relative overflow-hidden",children:[t.jsx("div",{className:"absolute inset-0 opacity-10 pointer-events-none",style:{backgroundImage:"radial-gradient(circle at 20% 50%, #ef9245 0%, transparent 60%), radial-gradient(circle at 80% 20%, #4e359e 0%, transparent 50%)"}}),t.jsx("div",{className:"container mx-auto px-4 relative z-10",children:t.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold mb-6 leading-tight font-quicksand",children:n.hero.h1}),t.jsx("p",{className:"text-lg md:text-xl text-blue-100 mb-10 max-w-2xl mx-auto font-quicksand leading-relaxed",children:n.hero.subtitle}),t.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[t.jsx(E,{href:"/contact/",className:"inline-block bg-[#ef9245] text-white px-8 py-3.5 rounded-xl font-semibold font-quicksand hover:bg-[#e07c30] transition-colors shadow-lg",children:n.hero.cta1}),t.jsx(E,{href:"/open-edx-pricing/",className:"inline-block bg-white/10 border border-white/30 text-white px-8 py-3.5 rounded-xl font-semibold font-quicksand hover:bg-white/20 transition-colors",children:n.hero.cta2})]})]})})]}),t.jsx("section",{className:"py-16 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4 max-w-4xl",children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-8 text-center",children:n.includes.h2}),t.jsx("ul",{className:"grid sm:grid-cols-2 gap-4",children:n.includes.items.map(s=>t.jsxs("li",{className:"flex items-start gap-3 bg-gray-50 rounded-xl px-5 py-4",children:[t.jsx("span",{className:"text-[#ef9245] text-lg mt-0.5",children:"✓"}),t.jsx("span",{className:"text-gray-700 font-quicksand",children:s})]},s))})]})}),t.jsx("section",{className:"py-16 bg-gray-50",children:t.jsxs("div",{className:"container mx-auto px-4 max-w-4xl",children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-8 text-center",children:n.comparison.h2}),t.jsx("div",{className:"overflow-x-auto rounded-2xl shadow-sm border border-gray-200",children:t.jsxs("table",{className:"w-full font-quicksand text-sm",children:[t.jsx("thead",{children:t.jsxs("tr",{className:"bg-[#062b60
676] text-white",children:[t.jsx("th",{className:"py-4 px-6 text-left font-semibold"}),t.jsx("th",{className:"py-4 px-6 text-center font-semibold",children:n.comparison.colSelf}),t.jsx("th",{className:"py-4 px-6 text-center font-semibold bg-[#ef9245]",children:n.comparison.colManaged})]})}),t.jsx("tbody",{children:n.comparison.rows.map((s,o)=>t.jsxs("tr",{className:o%2===0?"bg-white":"bg-gray-50",children:[t.jsx("td",{className:"py-3.5 px-6 font-semibold text-[#062b60]",children:s.aspect}),t.jsx("td",{className:"py-3.5 px-6 text-center text-gray-500",children:s.self}),t.jsx("td",{className:"py-3.5 px-6 text-center text-[#062b60] font-semibold bg-orange-50",children:s.managed})]},s.aspect))})]})})]})}),t.jsx("section",{className:"py-16 bg-white",children:t.jsxs("div",{className:"container mx-auto px-4 max-w-4xl",children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-8 text-center",children:n.audience.h2}),t.jsx("div",{className:"grid sm:grid-cols-2 gap-6",children:n.audience.items.map(s=>t.jsxs("div",{className:"flex items-center gap-4 bg-gray-50 rounded-2xl px-6 py-5 border border-gray-100",children:[t.jsx("span",{className:"text-3xl",children:s.icon}),t.jsx("span",{className:"font-semibold text-[#062b60] font-quicksand",children:s.title})]},s.title))})]})}),t.jsx("section",{className:"py-16 bg-gray-50",children:t.jsxs("div",{className:"container mx-auto px-4 max-w-3xl",children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-10 text-center",children:n.faq.h2}),t.jsx("div",{className:"space-y-8",children:n.faq.items.map(s=>t.jsxs("div",{children:[t.jsx("h3",{className:"text-lg font-bold text-[#062b60] font-quicksand mb-2",children:s.q}),s.a!==null?t.jsx("p",{className:"text-gray-600 font-quicksand leading-relaxed",children:s.a}):t.jsxs("p",{className:"text-gray-600 font-quicksand leading-relaxed",children:[n.pricingAnswer.prefix," ",t.jsx("a",{href:"https://aulasneo.com/pricing/",className:a,children:n.pricingAnswer.pricingLink})," ",n.pricingAnswer.middle," ",t.jsx("a",{href:"https://aulasneo.com/contact/",className:a,children:n.pricingAnswer.contactLink}),n.pricingAnswer.suffix]})]},s.q))})]})}),t.jsx(no,{topic:"infrastructure",contained:!0}),t.jsx("section",{className:"py-16 bg-[#062b60] text-white",children:t.jsxs("div",{className:"container mx-auto px-4 text-center max-w-2xl",children:[t.jsx("h2",{className:"text-3xl font-bold font-quicksand mb-4",children:n.cta.h2}),t.jsx("p",{className:"text-blue-100 font-quicksand mb-8 text-lg",children:n.cta.subtitle}),t.jsx(E,{href:"/contact/",className:"inline-block bg-[#ef9245] text-white px-10 py-4 rounded-xl font-semibold font-quicksand hover:bg-[#e07c30] transition-colors shadow-lg text-lg",children:n.cta.button})]})})]})}const Bg="Open edX is the open-source LMS created by Harvard and MIT for edX, used by 100M+ learners. How it works, key features, benefits, use cases, costs and how to get started.",Q1={"@context":"https://schema.org","@type":"BlogPosting",headline:"What is Open edX? Features, Advantages and Use Cases",description:Bg,author:tn("Esteban Etcheverry"),publisher:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},datePublished:"2024-07-10",dateModified:"2026-09-29",mainEntityOfPage:{"@type":"WebPage","@id":"https://aulasneo.com/blog/what-is-open-edx-overview-features-benefits/"}},kp=[{question:"Is Open edX free?",answer:"Yes. The Open edX software is free and open source under the AGPL v3 license, with no per-user or license fees. Running it does have costs: cloud infrastructure, installation, upgrades, security and support, whether your own team handles them or a managed provider does."},{question:"Is Open edX the same as edX?",answer:"No. edX (edx.org) is a course marketplace owned by 2U. Open edX is the open-source platform originally built to power edX, which any organization can run on its own, with its own brand, content and learner data."},{question:"Who maintains Open edX?",answer:"Open edX is stewarded by Axim Collaborative, a non-profit founded by Harvard and MIT, and developed by a global community of individual contributors, universities and service providers such as Aulasneo."},{question:"How often is Open edX updated?",answer:"The community publishes a named release every six months, in June and December, named alphabetically after trees (Redwood, Sumac, Teak, Ulmo…). Each release brings new features and security updates."},{question:"What technology is Open edX built on?",answer:"The backend is written in Python with the Django framework, and the learner and authoring interfaces are React micro-frontends. Tutor, the official distribution, installs it with Docker on a single server or on Kubernetes."},{question:"Does Open edX support SCORM and LTI?",answer:"Yes. Open edX can act as an LTI 1.3 tool and as an LTI consumer, and SCORM packages can be added to courses through an XBlock, so you can reuse existing content and connect external tools."},{question:"Can I use Open edX without a technical team?",answer:"Yes, through a managed Open edX provider. The provider hosts, upgrades, secures and supports the platform, and your team focuses on courses and learners. Aulasneo can have a managed Open edX site running in 24 hours."}],Y1=[{id:"Introduction_to_Open_edX",label:"Introduction to Open edX"},{id:"how-it-works",label:"How Open edX works"},{id:"Key_Features_of_Open_edX",label:"Key features of Open edX"},{id:"Benefits_of_Using_Open_edX",label:"Benefits of using Open edX"},{id:"Use_Cases_of_Open_edX",label:"Use cases of Open edX"},{id:"getting-started",label:"Getting started with Open edX"},{id:"future",label:"The future of online learning with Open edX"},{id:"faq",label:"Frequently asked questions"},{id:"conclusion",label:"Conclusion"}];function K1(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"What is Open edX? Features, Advantages and Use Cases | Aulasneo",description:Bg,ogImage:"https://aulasneo.com/images/blog/what-is-open-edx-overview-features-benefits.jpg",canonical:"https://aulasneo.com/blog/what-is-open-edx-overview-features-benefits/",hreflangEs:"https://aulasneo.com/es/lo-que-es-open-edx-y-cuales-son-las-ventajas-de-open-edx/",structuredData:{faq:kp}}),t.jsx("script",{id:"blog-posting-schema",type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(Q1)}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsxs("nav",{className:"bg-gray-50 border border-gray-200 rounded-2xl p-6 mb-10",children:[t.jsx("p",{className:"font-bold text-[#062b60
676] font-quicksand mb-3",children:"Contents"}),t.jsx("ol",{className:"space-y-1.5 list-decimal list-inside",children:Y1.map(e=>t.jsx("li",{children:t.jsx("a",{href:`#${e.id}`,className:"text-[#4e359e] hover:text-[#062b60] font-quicksand text-sm transition-colors",children:e.label})},e.id))})]}),t.jsxs("section",{id:"Introduction_to_Open_edX",children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60] font-quicksand mb-6 leading-tight",children:"What is Open edX?"}),t.jsxs("div",{className:"rounded-2xl border-l-4 border-[#ef9245] bg-[#fff7ef] p-6 mb-8 font-quicksand text-gray-800",children:[t.jsx("p",{className:"font-bold text-[#062b60] mb-2",children:"In short"}),t.jsxs("p",{children:[t.jsx("strong",{children:"Open edX is a free, open-source learning management system (LMS)"})," originally built by Harvard and MIT to run edx.org. Universities, companies, governments and NGOs use it to create, deliver and certify online courses for audiences of any size, from a few hundred learners to millions. It can be installed on your own infrastructure or run by a managed provider."]})]}),t.jsx("h3",{className:"text-2xl font-bold text-[#062b60] font-quicksand mb-3",children:"Brief history and origin"}),t.jsx(Y,{children:t.jsx("p",{children:"The learning platform that runs Open edX was originally developed in 2012 by Harvard and MIT for their MOOC initiative: edx.org. In this portal, students from all over the world were able to access world-class courses and learning programs delivered online from the most recognized universities and organizations in the world. edX Inc, the non-profit in charge of this initiative, was established as the curator and gatekeeper of the course portfolio. Due to the expansion of video and broadband access around the world, along with mobile devices, these Massive Open Online Courses rapidly became a huge success."})}),t.jsx("h3",{className:"text-2xl font-bold text-[#062b60] font-quicksand mb-3",children:"Purpose and vision"}),t.jsxs(Y,{children:[t.jsx("p",{children:"edX's mission was to improve access to education all around the world, and its initiatives went beyond the edx.org portfolio. As more and more universities and organizations asked to publish their own courses, in 2013 edX decided to open the source code of the learning platform so that anyone could deliver online courses with their own curation criteria and without any gatekeeper. This is the moment when Open edX was born, as an open-source LMS under the GNU Affero General Public License version 3."}),t.jsx("p",{children:"Along with this milestone, the Open edX community was born, with people from all parts of the globe. Not only individuals but also service providers such as Aulasneo started contributing to the open-source project."}),t.jsxs("p",{children:["In 2021, edx.org was acquired by 2U. Harvard and MIT used the proceeds to create"," ",t.jsx("strong",{children:"Axim Collaborative"}),", a non-profit that now stewards the Open edX project and its community. That is why today ",t.jsx(q,{href:"/whats-the-difference-between-edx-and-open-edx/",children:"edX and Open edX are different things"}),": edX is a course marketplace, while Open edX is the platform you can run for your own organization."]})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"how-it-works",children:[t.jsx($,{children:"How Open edX works"}),t.jsx(Y,{children:t.jsx("p",{children:"Open edX is not a single application but a set of services that work together. Knowing its main pieces helps to understand what it can do and what it takes to run it:"})}),t.jsxs("div",{className:"space-y-6",children:[t.jsx(L,{title:"LMS: the learner experience",children:t.jsx("p",{children:"The Learning Management System is where learners sign up, take courses, watch videos, answer assessments, participate in discussions, track their progress and earn certificates."})}),t.jsx(L,{title:"Studio: course authoring",children:t.jsxs("p",{children:["Studio is the authoring tool where instructors and course teams build courses in sections, subsections and units, schedule releases and define grading policies. See our tips to"," ",t.jsx(q,{href:"/elevate-your-course-design-in-open-edx-studio/",children:"elevate your course design in Open edX Studio"}),"."]})}),t.jsx(L,{title:"XBlocks: the building blocks of every course",children:t.jsxs("p",{children:["Every component in a course (a video, a problem, an HTML page, a drag-and-drop exercise) is an XBlock. New component types can be installed as plugins. Discover"," ",t.jsx(q,{href:"/blog/10-open-edx-advanced-components-to-boost-engagement/",children:"10 advanced components to boost engagement"}),"."]})}),t.jsx(L,{title:"Micro-frontends and mobile apps",children:t.jsx("p",{children:"The learner dashboard, course pages and authoring screens are built as React micro-frontends that can be branded and customized independently. Learners can also use the Open edX mobile apps for iOS and Android."})}),t.jsx(L,{title:"Tutor: the official distribution",children:t.jsxs("p",{children:["Tutor is the community-supported way to install, configure and upgrade Open edX with Docker, either on a single server or on Kubernetes. Learn about the"," ",t.jsx(q,{href:"/blog/open-edx-installation-3-options-master/",children:"Open edX installation options"}),"."]})}),t.jsx(L,{title:"Named releases every six months",children:t.jsxs("p",{children:["The community ships a new release every June and December, named alphabetically after trees: Redwood, Sumac, Teak, Ulmo… Use our ",t.jsx("a",{href:"/open-edx-releases/",className:Kc,children:"Open edX release notes explorer"})," to see everything that changed since your version."]})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"Key_Features_of_Open_edX",children:[t.jsx($,{children:"Key features of Open edX"}),t.jsxs(Y,{children:[t.jsxs("p",{children:["Before diving into the key features of the Open edX platform, let's briefly explain what an LMS, or Learning Management System, is. An LMS is a software platform designed to manage and organize courses for students. It enables students to access learning content in various formats and includes assessments to test their knowledge and comprehension. Upon meeting the evaluation criteria for each course, the LMS generates a certificate of completion. Read more in"," ",t.jsx(q,{href:"/blog/what-is-a-learning-management-system/",children:"Learning management system: what is it and why do I 
676need one?"})]}),t.jsx("p",{children:"Now, let's see the key features of the Open edX LMS."})]}),t.jsxs("div",{className:"space-y-6",children:[t.jsx(L,{title:"Scalability and flexibility",children:t.jsx("p",{children:"The platform's architecture is designed to manage thousands of simultaneous users without compromising performance. Achieving this was a crucial goal during development, as edx.org had to serve learners from all over the world. The platform not only scales up to handle high demand but also scales down during periods of lower usage, making it both flexible and cost-effective."})}),t.jsx(L,{title:"Learner-centric design",children:t.jsx("p",{children:"Originally developed by Harvard and MIT, two of the world's most recognized universities, the Open edX platform was designed with a learner-centric approach. Both the user interface (UI) and user experience (UX) are crafted to facilitate the online learning experience, effectively addressing and overcoming typical challenges associated with online education."})}),t.jsx(L,{title:"Customizable learning experiences",children:t.jsxs("p",{children:["A key premise during the design stage was to create an open platform adaptable to various use cases. This deliberate choice led to the software being built with a modular approach, incorporating extensions and multiple integration options. This design allows for the expansion of features by including external resources and supports the development of new features or components within the learning platform."," ",t.jsx(q,{href:"/lms-customization-a-successful-approach/",children:"Learn how to approach LMS customization"}),"."]})}),t.jsx(L,{title:"Rich content and assessments",children:t.jsx("p",{children:"Courses combine video, text, problems of many kinds (multiple choice, numerical input, drag and drop, code graders), open responses with peer and staff assessment, timed exams and proctoring integrations. Grading policies are defined per course, and learners can always see their progress."})}),t.jsx(L,{title:"Certificates and credentials",children:t.jsx("p",{children:"Open edX issues certificates when learners meet the passing criteria, with your own design and signatures. It can also issue verifiable digital credentials, and supports programs that group several courses."})}),t.jsx(L,{title:"Robust analytics and reporting",children:t.jsxs("p",{children:["The platform provides analytics and reporting tools to track learner progress, measure course effectiveness and improve educational outcomes. For deeper insights, ",t.jsx(q,{href:"/solutions/panorama/",children:"Panorama"})," brings customizable dashboards for staff and learners and can combine Open edX data with other systems. Read how"," ",t.jsx(q,{href:"/open-edx-analytics-impact-open-courses/",children:"analytics help measure the impact of open courses"}),"."]})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"Benefits_of_Using_Open_edX",children:[t.jsx($,{children:"Benefits of using Open edX"}),t.jsx(Y,{children:t.jsx("p",{children:"Now let's discover the benefits of using the Open edX platform as the LMS for your organization."})}),t.jsxs("div",{className:"space-y-6",children:[t.jsxs(L,{title:"Accessibility and inclusivity",children:[t.jsx("p",{children:"Open edX adheres to global accessibility standards such as WCAG (Web Content Accessibility Guidelines), ensuring that the platform is usable by individuals with disabilities. It works with screen readers, supports keyboard navigation for users who can't use a mouse, and lets users adjust text size, contrast and other display settings."}),t.jsx("p",{children:"Inclusivity is another key strength. The platform offers multilingual support, so learners from diverse linguistic backgrounds can access courses in their preferred language. It supports various content formats, including videos, text, quizzes and interactive simulations, catering to different learning styles. Discussion forums, peer reviews and collaborative projects foster a sense of community where all learners can participate."})]}),t.jsx(L,{title:"Cost-effectiveness",children:t.jsxs("p",{children:["As an open-source platform, Open edX eliminates licensing fees, and you can access and modify the softw
676are freely. Its scalable architecture ensures that resources are used efficiently, accommodating thousands of users without compromising performance, and it integrates with external tools without requiring proprietary solutions. See"," ",t.jsx(q,{href:"/open-edx-pricing/",children:"what a fully managed Open edX costs"}),"."]})}),t.jsx(L,{title:"Ownership of your platform and your data",children:t.jsx("p",{children:"With Open edX, the platform, the content and the learner data belong to your organization. There is no vendor lock-in: you can move between hosting providers or bring the platform in-house at any time."})}),t.jsx(L,{title:"Community support and resources",children:t.jsxs("p",{children:["Open edX is backed by a vibrant global community of developers, educators, service providers (such as us at Aulasneo!) and enthusiasts who continuously contribute to its improvement and innovation. Users have access to documentation, tutorials, forums and Slack channels, and to regular community events such as the"," ",t.jsx(q,{href:"/blog/open-edx-conference-2024/",children:"Open edX Conference"}),", webinars and meetups."]})}),t.jsx(L,{title:"Integration with other tools and platforms",children:t.jsx("p",{children:"The platform's modular architecture allows for easy integration with third-party applications: learning analytics tools, content management systems, CRMs, single sign-on or communication platforms. Open edX supports standards such as LTI (Learning Tools Interoperability) and SCORM (Sharable Content Object Reference Model), and exposes REST APIs to connect it with the rest of your systems."})}),t.jsx(L,{title:"Ready for AI",children:t.jsxs("p",{children:["Open edX's open architecture makes it possible to bring AI into the learning experience on your own terms. For example, ",t.jsx(q,{href:"/solutions/owly/",children:"Owly, our AI agent for LMS"}),", assists learners and course teams right inside Open edX."]})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"Use_Cases_of_Open_edX",children:[t.jsx($,{children:"Use cases of Open edX"}),t.jsx(Y,{children:t.jsx("p",{children:"The Open edX platform, with its robust features and flexible architecture, serves a diverse range of educational needs across various sectors. These are some of its primary use cases, with real examples from our clients."})}),t.jsxs("div",{className:"space-y-6",children:[t.jsx(L,{title:"MOOCs (Massive Open Online Courses)",children:t.jsxs("p",{children:["Open edX is renowned for delivering MOOCs. Its ability to handle thousands of simultaneous users, its assessment tools and its community features make it perfect for large-scale educational initiatives. Institutions like Harvard and MIT have used it to offer courses that reach millions of learners worldwide. Learn"," ",t.jsx(q,{href:"/blog/how-design-successful-moocs/",children:"how to design successful MOOCs"}),", or see how"," ",t.jsx(q,{href:"/health-hive-success-stories-with-aulasneo/",children:"The Health Hive"})," built a free, open-access learning platform."]})}),t.jsx(L,{title:"Corporate training and development",children:t.jsxs("p",{children:["Open edX's modular design allows companies to tailor content to specific skill sets and roles, and to integrate the platform with existing HR and management systems. Analytics help measure the effectiveness of training. See how ",t.jsx(q,{href:"/holcim-academy-success-stories-with-aulasneo/",children:"Holcim Academy"})," shares sustainable construction knowledge with professionals worldwide."]})}),t.jsx(L,{title:"K-12 and higher education",children:t.jsxs("p",{children:["For K-12, Open edX supports blended learning, combining online resources with classroom instruction. Universities use it to offer online courses and degree programs with flexible learning options. Read more about"," ",t.jsx(q,{href:"/blog/open-edx-for-universities/",children:"Open edX for universities"})," and how"," ",t.jsx(q,{href:"/icdeba-success-stories-with-aulasneo/",children:"ICdeBA"})," moved its training online without losing the academic year."]})}),t.jsx(L,{title:"Professional certification programs",children:t.jsxs("p",{children:["Quizzes, peer assessments and proctored exams ensure that learners meet the criteria for certification, and digital certificates recognize and validate their skills. Professional associations like"," ",t.jsx(q,{href:"/aie-arg-success-stories-with-aulasneo/",children:"AIE ARG"})," and"," ",t.jsx(q,{href:"/ceef-success-stories-with-aulasneo/",children:"CEEF"})," use Open edX for their professional education."]})}),t.jsx(L,{title:"Governments and NGOs",children:t.jsxs("p",{children:["Open edX helps non-profits and public organizations reach large audiences without geographical barriers. See how"," ",t.jsx(q,{href:"/cap-net-success-stories-with-aulasneo/",children:"Cap-Net UNDP"})," runs its global capacity-building campus, and why an ",t.jsx(q,{href:"/blog/lms-for-ngo/",children:"LMS is key for NGOs"}),"."]})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"getting-started",children:[t.jsx($,{children:"Getting started with Open edX"}),t.jsx(Y,{children:t.jsx("p",{children:"Starting with Open edX can seem daunting, but with the right resources and guidance you can leverage this powerful platform to meet your educational needs. The first step is to understand your specific requirements (audience, number of learners, integrations, branding) and how Open edX can address them. Then, cho
676ose how to run it."})}),t.jsxs("div",{className:"space-y-6",children:[t.jsx(L,{title:"Setting up your own Open edX instance",children:t.jsxs("p",{children:["Installing Open edX on your own servers or cloud account with Tutor gives you full control over the platform's features and customization options. It requires technical expertise in Linux, Docker and, at scale, Kubernetes and managed databases, plus the time to apply security updates and upgrade to a new release every six months. Read our ",t.jsx(q,{href:"/blog/kubernetes-cluster-scalable-stable-cost-efficient/",children:"tips for running Kubernetes in production"})," and the ",t.jsx(q,{href:"/blog/open-edx-migration-lessons-learned/",children:"lessons learned from a nine-release migration"}),"."]})}),t.jsx(L,{title:"Choosing a managed Open edX provider",children:t.jsxs("p",{children:[t.jsx(q,{href:"/open-edx-hosting/",children:"Open edX hosting"})," providers handle the setup, maintenance, upgrades and scaling of the platform. This is ideal for organizations that want to focus on content creation and learner engagement without worrying about the underlying infrastructure. Aulasneo offers"," ",t.jsx(q,{href:"/open-edx-pricing/",children:"fully managed Open edX plans"})," with setup in 24 hours."]})}),t.jsx(L,{title:"Community and support resources",children:t.jsx("p",{children:"The Open edX community is a valuable resource for anyone getting started with the platform. You can access the official documentation and forums, connect via Slack, attend community events and participate in working groups to get help and share your experiences."})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"future",children:[t.jsx($,{children:"The future of online learning with Open edX"}),t.jsxs(Y,{children:[t.jsx("p",{children:"Open edX is a live platform that evolves continuously, adding new features, removing old and unused ones, and releasing a new version every six months to keep up with the evolution of the modern software stack. Recent releases have modernized the authoring experience, the learner interfaces and analytics."}),t.jsx("p",{children:"As AI becomes part of everyday learning, an open platform lets each organization decide how to adopt it: which models to use, where learner data lives and how to measure the results. With ongoing contributions from its global community, Open edX is well positioned to remain at the forefront of online education."})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"faq",children:[t.jsx($,{children:"Frequently asked questions"}),t.jsx("div",{className:"space-y-4 mb-6",children:kp.map(e=>t.jsxs("details",{className:"group rounded-2xl border border-gray-200 bg-white p-5 font-quicksand",children:[t.jsxs("summary",{className:"cursor-pointer list-none font-bold text-[#062b60] flex justify-between gap-4",children:[e.question,t.jsx("span",{className:"text-[#ef9245] transition-transform group-open:rotate-45","aria-hidden":"true",children:"+"})]}),t.jsx("p",{className:"mt-3 text-gray-700",children:e.answer})]},e.question))}),t.jsxs("p",{className:"font-quicksand text-gray-700",children:["More answers in our ",t.jsx(q,{href:"/faq/open-edx/",children:"Open edX FAQ"}),"."]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"conclusion",children:[t.jsx($,{children:"Conclusion"}),t.jsxs(Y,{children:[t.jsx("p",{children:"Open edX stands out as a versatile and powerful platform for online education. Its scalability, learner-centric design, cost-effectiveness and extensive integration capabilities make it valuable for educators, corporations and institutions alike, and its community ensures that it keeps evolving."}),t.jsxs("p",{children:["At Aulasneo, we are experts with more than 10 years of experience across various use cases and scales, providing hosting, customization and advanced services. You don't need to embark on this initiative alone."," ",t.jsx(q,{href:"/contact/",children:"Contact us"})," and let's talk about your project: we will provide the guidance and support you need to make your Open edX implementation a success."]})]}),t.jsx("div",{className:"text-center py-4",children:t.jsx(E,{href:"/contact/",className:"inline-block bg-[#ef9245] text-white px-10 py-4 rounded-xl font-semibold font-quicksand hover:bg-[#e07c30] transition-colors shadow-lg text-lg",children:"Talk to an Open edX expert"})})]}),t.jsx(an,{path:"/blog/what-is-open-edx-overview-features-benefits/",lang:"en"})]})})})]})}const Wg="Open edX es el LMS open source creado por Harvard y MIT para edX, con más de 100 millones de estudiantes. Cómo funciona, ventajas, casos de uso, costos y cómo empezar.",Z1={"@context":"https://schema.org","@type":"BlogPosting",headline:"¿Qué es Open edX y cuáles son las ventajas de Open edX?",description:Wg,author:tn("Esteban Etcheverry"),publisher:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},datePublished:"2023-07-31",dateModified:"2026-09-29",inLanguage:"es",mainEntityOfPage:{"@type":"WebPage","@id":"https://aulasneo.com/es/lo-que-es-open-edx-y-cuales-son-las-ventajas-de-open-edx/"}},Np=[{question:"¿Open edX es gratis?",answer:"Sí. El software de Open edX es gratuito y de código abierto bajo la licencia AGPL v3, sin costos por usuario ni licencias. Operarlo sí tiene costos: infraestructura en la nube, instalación, actualizaciones, seguridad y soporte, ya sea con un equipo propio o con un proveedor gestionado."},{question:"¿Open edX es lo mismo que edX?",answer:"No. edX (edx.org) es un marketplace de cursos que pertenece a 2U. Open edX es la plataforma de código abierto que se creó para edX y que cualquier organización puede operar por su cuenta, con su propia marca, contenidos y datos de estudiantes."},{question:"¿Quién mantiene Open edX?",answer:"Open edX está a cargo de Axim C
676ollaborative, una organización sin fines de lucro fundada por Harvard y MIT, y lo desarrolla una comunidad global de colaboradores individuales, universidades y proveedores de servicios como Aulasneo."},{question:"¿Cada cuánto se actualiza Open edX?",answer:"La comunidad publica una versión con nombre cada seis meses, en junio y diciembre, con nombres de árboles en orden alfabético (Redwood, Sumac, Teak, Ulmo…). Cada versión trae nuevas funcionalidades y actualizaciones de seguridad."},{question:"¿Con qué tecnología está hecho Open edX?",answer:"El backend está escrito en Python con el framework Django, y las interfaces de estudiantes y de autoría son micro-frontends en React. Tutor, la distribución oficial, lo instala con Docker en un solo servidor o en Kubernetes."},{question:"¿Open edX soporta SCORM y LTI?",answer:"Sí. Open edX puede funcionar como herramienta LTI 1.3 y como consumidor LTI, y los paquetes SCORM se pueden sumar a los cursos mediante un XBlock, para reutilizar contenidos existentes y conectar herramientas externas."},{question:"¿Puedo usar Open edX sin un equipo técnico?",answer:"Sí, con un proveedor de Open edX gestionado. El proveedor aloja, actualiza, asegura y da soporte a la plataforma, y tu equipo se concentra en los cursos y los estudiantes. Aulasneo puede tener un sitio Open edX gestionado funcionando en 24 horas."}],J1=[{id:"introduccion",label:"Introducción a Open edX"},{id:"como-funciona",label:"Cómo funciona Open edX"},{id:"caracteristicas",label:"Características principales de Open edX"},{id:"ventajas",label:"Ventajas de usar Open edX"},{id:"casos-de-uso",label:"Casos de uso de Open edX"},{id:"como-empezar",label:"Cómo empezar con Open edX"},{id:"futuro",label:"El futuro del aprendizaje online con Open edX"},{id:"preguntas-frecuentes",label:"Preguntas frecuentes"},{id:"conclusion",label:"Conclusión"}];function ej(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"¿Qué es Open edX y cuáles son sus ventajas? | Aulasneo",description:Wg,ogImage:"https://aulasneo.com/images/blog/lo-que-es-open-edx-y-cuales-son-las-ventajas-de-open-edx.jpg",canonical:"https://aulasneo.com/es/lo-que-es-open-edx-y-cuales-son-las-ventajas-de-open-edx/",hreflangEs:"https://aulasneo.com/es/lo-que-es-open-edx-y-cuales-son-las-ventajas-de-open-edx/",hreflangEn:"https://aulasneo.com/blog/what-is-open-edx-overview-features-benefits/",structuredData:{faq:Np}}),t.jsx("script",{id:"blog-posting-schema",type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(Z1)}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsxs("nav",{className:"bg-gray-50 border border-gray-200 rounded-2xl p-6 mb-10",children:[t.jsx("p",{className:"font-bold text-[#062b60] font-quicksand mb-3",children:"Contenido"}),t.jsx("ol",{className:"space-y-1.5 list-decimal list-inside",children:J1.map(e=>t.jsx("li",{children:t.jsx("a",{href:`#${e.id}`,className:"text-[#4e359e] hover:text-[#062b60] font-quicksand text-sm transition-colors",children:e.label})},e.id))})]}),t.jsxs("section",{id:"introduccion",children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60] font-quicksand mb-6 leading-tight",children:"¿Qué es Open edX y cuáles son las ventajas de Open edX?"}),t.jsxs("div",{className:"rounded-2xl border-l-4 border-[#ef9245] bg-[#fff7ef] p-6 mb-8 font-quicksand text-gray-800",children:[t.jsx("p",{className:"font-bold text-[#062b60] mb-2",children:"En pocas palabras"}),t.jsxs("p",{children:[t.jsx("strong",{children:"Open edX es un sistema de gestión del aprendizaje (LMS) gratuito y de código abierto"}),", creado originalmente por Harvard y MIT para operar edx.org. Universidades, empresas, gobiernos y ONGs lo usan para crear, dictar y certificar cursos online para audiencias de cualquier tamaño, desde unos cientos de estudiantes hasta millones. Se puede instalar en infraestructura propia o contratar a un proveedor gestionado."]})]}
676),t.jsx("h3",{className:"text-2xl font-bold text-[#062b60] font-quicksand mb-3",children:"Un poco de historia"}),t.jsx(Y,{children:t.jsx("p",{children:"La plataforma de aprendizaje sobre la que funciona Open edX fue desarrollada en 2012 por Harvard y MIT para su iniciativa de MOOCs: edx.org. En ese portal, estudiantes de todo el mundo podían acceder a cursos y programas de primer nivel de las universidades y organizaciones más reconocidas. edX Inc, la organización sin fines de lucro a cargo de la iniciativa, era la curadora del catálogo de cursos. Con la expansión del video, la banda ancha y los dispositivos móviles, estos cursos masivos, abiertos y online se volvieron un éxito enorme."})}),t.jsx("h3",{className:"text-2xl font-bold text-[#062b60] font-quicksand mb-3",children:"Propósito y visión"}),t.jsxs(Y,{children:[t.jsx("p",{children:"La misión de edX era mejorar el acceso a la educación en todo el mundo, y eso iba más allá de su propio catálogo. A medida que más universidades y organizaciones pedían publicar sus cursos, en 2013 edX decidió abrir el código fuente de la plataforma, para que cualquiera pudiera dictar cursos online con sus propios criterios y sin intermediarios. Así nació Open edX, como un LMS de código abierto bajo la licencia GNU Affero General Public License versión 3."}),t.jsx("p",{children:"Junto con Open edX nació su comunidad, con personas de todas partes del mundo. No solo colaboradores individuales: también proveedores de servicios como Aulasneo empezaron a contribuir al proyecto."}),t.jsxs("p",{children:["En 2021, 2U compró edx.org. Con lo recaudado, Harvard y MIT crearon ",t.jsx("strong",{children:"Axim Collaborative"}),", una organización sin fines de lucro que hoy está a cargo de Open edX y su comunidad. Por eso hoy"," ",t.jsx(q,{href:"/es/cual-es-la-diferencia-entre-edx-y-open-edx/",children:"edX y Open edX son cosas distintas"}),": edX es un marketplace de cursos, y Open edX es la plataforma que podés operar para tu propia organización."]})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"como-funciona",children:[t.jsx($,{children:"Cómo funciona Open edX"}),t.jsx(Y,{children:t.jsx("p",{children:"Open edX no es una sola aplicación sino un conjunto de servicios que trabajan juntos. Conocer sus piezas principales ayuda a entender qué puede hacer y qué hace falta para operarlo:"})}),t.jsxs("div",{className:"space-y-6",children:[t.jsx(L,{title:"LMS: la experiencia del estudiante",children:t.jsx("p",{children:"El sistema de gestión del aprendizaje es donde los estudiantes se inscriben, cursan, miran videos, responden evaluaciones, participan en foros, siguen su progreso y obtienen certificados."})}),t.jsx(L,{title:"Studio: la autoría de cursos",children:t.jsxs("p",{children:["Studio es la herramienta donde docentes y equipos de contenido arman los cursos en secciones, subsecciones y unidades, programan su publicación y definen las políticas de calificación. Mirá nuestros consejos para"," ",t.jsx(q,{href:"/es/mejora-el-diseno-de-tus-cursos-en-open-edx-studio/",children:"mejorar el diseño de tus cursos en Open edX Studio"}),"."]})}),t.jsx(L,{title:"XBlocks: los bloques de cada curso",children:t.jsxs("p",{children:["Cada componente de un curso (un video, un problema, una página HTML, un ejercicio de arrastrar y soltar) es un XBlock. Se pueden instalar nuevos tipos de componentes como plugins. Conocé"," ",t.jsx(q,{href:"/blog/10-open-edx-advanced-components-to-boost-engagement/",children:"10 componentes avanzados para aumentar la participación"})," ","(en inglés)."]})}),t.jsx(L,{title:"Micro-frontends y apps móviles",children:t.jsx("p",{children:"El panel del estudiante, las páginas de los cursos y las pantallas de autoría son micro-frontends en React que se pueden personalizar con tu marca de forma independiente. Los estudiantes también pueden usar las apps móviles de Open edX para iOS y Android."})}),t.jsx(L,{title:"Tutor: la distribución oficial",children:t.jsxs("p",{children:["Tutor es la forma que sostiene la comunidad para instalar, configurar y actualizar Open edX con Docker, en un solo servidor o en Kubernetes. Conocé las"," ",t.jsx(q,{href:"/blog/open-edx-installation-3-options-master/",children:"opciones de instalación de Open edX"})," (en inglés)."]})}),t.jsx(L,{title:"Una versión nueva cada seis meses",children:t.jsxs("p",{children:["La comunidad publica una versión cada junio y cada diciembre, con nombres de árboles en orden alfabético: Redwood, Sumac, Teak, Ulmo… Usá nuestro"," ",t.jsx("a",{href:"/open-edx-releases/",className:Kc,children:"explorador de novedades de Open edX"}
676)," para ver todo lo que cambió desde tu versión."]})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"caracteristicas",children:[t.jsx($,{children:"Características principales de Open edX"}),t.jsx(Y,{children:t.jsxs("p",{children:["Antes de repasar las características de Open edX, vale la pena explicar qué es un LMS (Learning Management System, o sistema de gestión del aprendizaje). Un LMS es una plataforma de software para gestionar y organizar cursos. Permite a los estudiantes acceder a contenidos en distintos formatos, incluye evaluaciones para medir lo aprendido y, cuando se cumplen los criterios de aprobación, emite un certificado. Si estás evaluando opciones, te pueden servir nuestros"," ",t.jsx(q,{href:"/es/consejos-para-elegir-el-lms-correcto/",children:"consejos para elegir el LMS correcto"}),"."]})}),t.jsxs("div",{className:"space-y-6",children:[t.jsx(L,{title:"Escalabilidad y flexibilidad",children:t.jsx("p",{children:"Su arquitectura está pensada para manejar miles de usuarios simultáneos sin perder rendimiento, algo clave desde el principio porque edx.org debía atender a estudiantes de todo el mund
676o. La plataforma escala hacia arriba en los picos de demanda y hacia abajo cuando baja el uso, lo que la hace flexible y eficiente en costos."})}),t.jsx(L,{title:"Diseño centrado en el estudiante",children:t.jsx("p",{children:"Al haber sido desarrollada por Harvard y MIT, dos de las universidades más reconocidas del mundo, la plataforma se diseñó con foco en el estudiante. Tanto la interfaz (UI) como la experiencia de usuario (UX) están pensadas para facilitar el aprendizaje online y resolver los desafíos típicos de la educación a distancia."})}),t.jsx(L,{title:"Experiencias de aprendizaje personalizables",children:t.jsxs("p",{children:["Una premisa del diseño fue crear una plataforma abierta que se adaptara a distintos casos de uso. Por eso se construyó de forma modular, con extensiones y múltiples opciones de integración, lo que permite sumar recursos externos y desarrollar nuevas funcionalidades."," ",t.jsx(q,{href:"/es/personalizacion-lms-un-enfoque-exitoso/",children:"Conocé cómo encarar la personalización de un LMS"}),"."]})}),t.jsx(L,{title:"Contenidos y evaluaciones variados",children:t.jsx("p",{children:"Los cursos combinan video, texto, problemas de muchos tipos (opción múltiple, respuesta numérica, arrastrar y soltar, correctores de código), respuestas abiertas con evaluación entre pares o del equipo docente, exámenes con tiempo e integraciones de supervisión. Las políticas de calificación se definen por curso, y los estudiantes siempre pueden ver su progreso."})}),t.jsx(L,{title:"Certificados y credenciales",children:t.jsx("p",{children:"Open edX emite certificados cuando los estudiantes cumplen los criterios de aprobación, con tu propio diseño y firmas. También puede emitir credenciales digitales verificables y soporta programas que agrupan varios cursos."})}),t.jsx(L,{title:"Analítica y reportes",children:t.jsxs("p",{children:["La plataforma ofrece herramientas de analítica y reportes para seguir el progreso de los estudiantes, medir la efectividad de los cursos y mejorar los resultados. Para ir m
676ás allá,"," ",t.jsx(q,{href:"/es/solutions/panorama/",children:"Panorama"})," suma tableros personalizables para el equipo y para los estudiantes, y puede combinar los datos de Open edX con otros sistemas. Leé cómo la"," ",t.jsx(q,{href:"/es/analitica-open-edx-impacto-cursos-abiertos/",children:"analítica ayuda a medir el impacto de los cursos abiertos"}),"."]})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"ventajas",children:[t.jsx($,{children:"Ventajas de usar Open edX"}),t.jsx(Y,{children:t.jsx("p",{children:"Veamos ahora las ventajas de elegir Open edX como el LMS de tu organización."})}),t.jsxs("div",{className:"space-y-6",children:[t.jsxs(L,{title:"Accesibilidad e inclusión",children:[t.jsx("p",{children:"Open edX sigue estándares internacionales de accesibilidad como WCAG (Web Content Accessibility Guidelines), para que la plataforma pueda usarla cualquier persona, incluidas las personas con discapacidad. Funciona con lectores de pantalla, permite navegar con el teclado y ajustar el tamaño del texto, el contraste y otras opciones de visualización."}),t.jsx("p",{children:"La inclusión es otra de sus fortalezas. La plataforma es multilingüe, así que cada estudiante puede cursar en su idioma, y admite distintos formatos de contenido (videos, texto, cuestionarios, simulaciones interactivas) para distintos estilos de aprendizaje. Los foros, la evaluación entre pares y los proyectos colaborativos generan comunidad y participación."})]}),t.jsx(L,{title:"Bajo costo",children:t.jsxs("p",{children:["Al ser de código abierto, Open edX no tiene costos de licencia y se puede usar y modificar libremente. Su arquitectura escalable aprovecha los recursos de forma eficiente, y se integra con herramientas externas sin depender de soluciones propietarias. Mirá"," ",t.jsx(q,{href:"/es/open-edx-pricing/",children:"cuánto cuesta un Open edX totalmente gestionado"}),"."]})}),t.jsx(L,{title:"La plataforma y los datos son tuyos",children:t.jsx("p",{children:"Con Open edX, la plataforma, los contenidos y los datos de los estudiantes pertenecen a tu organización. No hay dependencia de un proveedor: podés cambiar de proveedor de hosting o traer la plataforma a tu propia infraestructura cuando quieras."})}),t.jsx(L,{title:"Una comunidad activa",children:t.jsx("p",{children:"Detrás de Open edX hay una comunidad global de desarrolladores, educadores, proveedores de servicios (¡como nosotros en Aulasneo!) y entusiastas que mejoran la plataforma de forma constante. Hay documentación, tutoriales, foros y canales de Slack, además de encuentros como la Open edX Conference, webinars y meetups."})}),t.jsx(L,{title:"Integración con otras herramientas",children:t.jsx("p",{children:"Su arquitectura modular permite integrarlo con aplicaciones de terceros: herramientas de analítica, gestores de contenido, CRMs, inicio de sesión único (SSO) o plataformas de comunicación como Zoom. Open edX soporta estándares como LTI (Learning Tools Interoperability) y SCORM (Sharable Content Object Reference Model), y ofrece APIs REST para conectarlo con el resto de tus sistemas."})}),t.jsx(L,{title:"Preparado para la IA",children:t.jsxs("p",{children:["Su arquitectura abierta permite sumar inteligencia artificial a la experiencia de aprendizaje con tus propias reglas. Por ejemplo, ",t.jsx(q,{href:"/es/solutions/owly/",children:"Owly, nuestro agente de IA para LMS"}),", asiste a estudiantes y equipos docentes dentro de Open edX."]})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"casos-de-uso",children:[t.jsx($,{children:"Casos de uso de Open edX"}),t.jsx(Y,{children:t.jsx("p",{children:"Gracias a sus funcionalidades y su arquitectura flexible, Open edX responde a necesidades educativas muy distintas. Estos son sus principales casos de uso, con ejemplos reales de nuestros clientes."})}),t.jsxs("div",{className:"space-y-6",children:[t.jsx(L,{title:"MOOCs (cursos masivos, abiertos y online)",children:t.jsxs("p",{children:["Open edX es reconocido por su capacidad para dictar MOOCs. Soporta miles de usuarios simultáneos y sus herramientas de evaluación y de comunidad lo hacen ideal para iniciativas educativas a gran escala. Harvard y MIT lo usaron para llegar a millones de estudiantes en todo el mund
676o. Mirá cómo"," ",t.jsx(q,{href:"/es/health-hive-casos-de-exito-con-aulasneo/",children:"The Health Hive"})," creó una plataforma de aprendizaje gratuita y abierta."]})}),t.jsx(L,{title:"Capacitación corporativa",children:t.jsxs("p",{children:["Su diseño modular permite a las empresas adaptar los contenidos a cada perfil y rol, e integrar la plataforma con sus sistemas de RR.HH. y de gestión. La analítica ayuda a medir la efectividad de la capacitación. Conocé cómo"," ",t.jsx(q,{href:"/es/holcim-academy-casos-de-exito-con-aulasneo/",children:"Holcim Academy"})," comparte conocimiento sobre construcción sustentable con profesionales de todo el mundo."]})}),t.jsx(L,{title:"Escuelas y educación superior",children:t.jsxs("p",{children:["En escuelas, Open edX permite el aprendizaje híbrido, combinando recursos online con las clases presenciales. Las universidades lo usan para ofrecer cursos y carreras online con opciones flexibles para sus estudiantes. Mirá cómo"," ",t.jsx(q,{href:"/es/icdeba-casos-de-exito-con-aulasneo/",children:"ICdeBA"})," pasó su formación a la modalidad online sin perder el año académico."]})}),t.jsx(L,{title:"Programas de certificación profesional",children:t.jsxs("p",{children:["Los cuestionarios, la evaluación entre pares y los exámenes supervisados aseguran que los estudiantes cumplan los criterios de certificación, y los certificados digitales reconocen y validan sus habilidades. Asociaciones profesionales como ",t.jsx(q,{href:"/es/aie-arg-casos-de-exito-con-aulasneo/",children:"AIE ARG"})," y"," ",t.jsx(q,{href:"/es/ceef-casos-de-exito-con-aulasneo/",children:"CEEF"})," usan Open edX para su formación profesional."]})}),t.jsx(L,{title:"Gobiernos y ONGs",children:t.jsxs("p",{children:["Open edX ayuda a organizaciones sin fines de lucro y organismos públicos a llegar a grandes audiencias sin barreras geográficas. Conocé cómo ",t.jsx(q,{href:"/es/cap-net-casos-de-exito-con-aulasneo/",children:"Cap-Net PNUD"})," opera su campus global de formación."]})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"como-empezar",children:[t.jsx($,{children:"Cómo empezar con Open edX"}),t.jsx(Y,{children:t.jsx("p",{children:"Empezar con Open edX puede parecer difícil, pero con los recursos y el acompañamiento adecuados vas a poder aprovechar todo su potencial. El primer paso es entender tus necesidades (audiencia, cantidad de estudiantes, integraciones, identidad de marca) y cómo Open edX las resuelve. Después, elegir cómo operarlo."})}),t.jsxs("div",{className:"space-y-6",children:[t.jsx(L,{title:"Instalar tu propia instancia de Open edX",children:t.jsxs("p",{children:["Instalar Open edX con Tutor en tus servidores o en tu cuenta de nube te da control total sobre la plataforma y su personalización. Requiere experiencia en Linux, Docker y, a escala, Kubernetes y bases de datos gestionadas, además de tiempo para aplicar actualizaciones de seguridad y migrar a una versión nueva cada seis meses. Leé nuestros ",t.jsx(q,{href:"/es/blog/cluster-kubernetes-escalable-estable-eficiente/",children:"consejos para operar Kubernetes en producción"})," y las ",t.jsx(q,{href:"/es/blog/migracion-open-edx-lecciones-aprendidas/",children:"lecciones aprendidas en una migración de nueve versiones"}),"."]})}),t.jsx(L,{title:"Elegir un proveedor de Open edX gestionado",children:t.jsxs("p",{children:["Los proveedores de ",t.jsx(q,{href:"/es/open-edx-hosting/",children:"hosting de Open edX"})," se encargan de la instalación, el mantenimiento, las actualizaciones y la escalabilidad de la plataforma. Es ideal para las organizaciones que quieren concentrarse en los contenidos y los estudiantes sin preocuparse por la infraestructura. Aulasneo ofrece"," ",t.jsx(q,{href:"/es/open-edx-pricing/",children:"planes de Open edX totalmente gestionado"})," con puesta en marcha en 24 horas."]})}),t.jsx(L,{title:"La comunidad y sus recursos",children:t.jsx("p",{children:"La comunidad de Open edX es un gran recurso para quien empieza. Tenés la documentación oficial y los foros, canales de Slack, eventos y grupos de trabajo donde pedir ayuda y compartir experiencias."})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"futuro",children:[t.jsx($,{children:"El futuro del aprendizaje online con Open edX"}),t.jsxs(Y,{children:[t.jsx("p",{children:"Open edX es una plataforma viva que evoluciona de forma continua: suma funcionalidades, retira las que ya no se usan y publica una versión nueva cada seis meses para acompañar la evolución del software moderno. Las últimas versiones renovaron la experiencia de autoría, las interfaces de los estudiantes y la analítica."}),t.jsx("p",{children:"A medida que la IA se vuelve parte del aprendizaje cotidiano, una plataforma abierta le permite a cada organización decidir cómo adoptarla: qué modelos usar, dónde viven los datos de los estudiantes y cómo medir los resultados. Con los aportes de su comunidad global, Open edX está bien posicionado para seguir a la vanguardia de la educación online."})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"preguntas-frecuentes",children:[t.jsx($,{children:"Preguntas frecuentes"}),t.jsx("div",{className:"space-y-4 mb-6",children:Np.map(e=>t.jsxs("details",{className:"group rounded-2xl border border-gray-200 bg-white p-5 font-quicksand",children:[t.jsxs("summary",{className:"cursor-pointer list-none font-bold text-[#062b60
676] flex justify-between gap-4",children:[e.question,t.jsx("span",{className:"text-[#ef9245] transition-transform group-open:rotate-45","aria-hidden":"true",children:"+"})]}),t.jsx("p",{className:"mt-3 text-gray-700",children:e.answer})]},e.question))}),t.jsxs("p",{className:"font-quicksand text-gray-700",children:["Más respuestas en nuestras ",t.jsx(q,{href:"/es/faq/open-edx/",children:"preguntas frecuentes sobre Open edX"}),"."]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"conclusion",children:[t.jsx($,{children:"Conclusión"}),t.jsxs(Y,{children:[t.jsx("p",{children:"Open edX se destaca como una plataforma versátil y potente para la educación online. Su escalabilidad, su diseño centrado en el estudiante, su bajo costo y sus amplias posibilidades de integración la hacen valiosa para educadores, empresas e instituciones, y su comunidad asegura que siga evolucionando."}),t.jsxs("p",{children:["En Aulasneo tenemos más de 10 años de experiencia con Open edX en distintos casos de uso y escalas, con servicios de hosting, personalización y servicios avanzados. No tenés que encarar este proyecto solo."," ",t.jsx(q,{href:"/es/contact/",children:"Contactanos"})," y hablemos de tu proyecto: te vamos a dar la guía y el acompañamiento que necesitás para que tu implementación de Open edX sea un éxito."]})]}),t.jsx("div",{className:"text-center py-4",children:t.jsx(E,{href:"/es/contact/",className:"inline-block bg-[#ef9245] text-white px-10 py-4 rounded-xl font-semibold font-quicksand hover:bg-[#e07c30] transition-colors shadow-lg text-lg",children:"Hablá con un experto en Open edX"})})]}),t.jsx(an,{path:"/es/lo-que-es-open-edx-y-cuales-son-las-ventajas-de-open-edx/",lang:"es"})]})})})]})}const nj={"@context":"https://schema.org","@type":"Article",headline:"LMS Customization: A Successful Approach",description:"Aulasneo's proven iterative approach to Open edX LMS customization, prioritizing functionality and user feedback over aesthetics.",author:tn("Esteban Etcheverry"),publisher:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},datePublished:"2024-04-16",dateModified:"2026-04-03",url:"https://aulasneo.com/lms-customization-a-successful-approach/"};function tj(){return v.useEffect(()=>{const e=(n,a)=>{let s=document.querySelector(`link[hreflang="${n}"]`);s||(s=document.createElement("link"),s.setAttribute("rel","alternate"),s.setAttribute("hreflang",n),document.head.appendChild(s)),s.setAttribute("href",a)};e("en","https://aulasneo.com/lms-customization-a-successful-approach/"),e("es","https://aulasneo.com/es/personalizacion-lms-un-enfoque-exitoso/"),e("x-default","https://aulasneo.com/lms-customization-a-successful-approach/")},[]),t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"LMS Customization: A Successful Approach | Aulasneo",description:"Learn Aulasneo's proven iterative approach to Open edX LMS customization — prioritizing functionality and real user feedback over aesthetics.",ogImage:"https://aulasneo.com/images/blog/lms-customization-a-successful-approach.jpg",canonical:"https://aulasneo.com/lms-customization-a-successful-approach/",hreflangEs:"https://aulasneo.com/es/personalizacion-lms-un-enfoque-exitoso/"}),t.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(nj)}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsxs("section",{children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60] font-quicksand mb-6 leading-tight",children:"Rethinking LMS Customization: A Step-by-Step Success Strategy"}),t.jsx("div",{className:"prose prose-lg max-w-none font-quicksand text-gray-700 space-y-4",children:t.jsxs("p",{children:["In the rapidly evolving world of eLearning, LMS customization has become a pivotal concern for educators and institutions aiming to provide impactful learning experiences. A common pitfall in these projects is the initial focus on aesthetic enhancements over the foundational logic that underpins effective learning. At Aulasneo, we have charted a different c
676ourse — emphasizing a strategic, iterative approach to"," ",t.jsx(E,{href:"/solutions/openedx/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Open edX customization"})," ","that prioritizes functionality and user feedback from the start."]})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"The misdirection of initial focus"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsx("p",{children:"Many customization projects begin with heavy emphasis on visual design. While the look and feel of an LMS matter, starting there leads to misallocation of resources on features that may look appealing but do not contribute significantly to learning outcomes. This approach often overlooks the core functionalities that truly drive user engagement and educational results."})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"Aulasneo's iterative approach"}),t.jsxs("div",{className:"font-quicksand text-gray-700 space-y-4",children:[t.jsx("p",{children:"Our strategy diverges from the conventional path. We advocate for an iterative customization process that begins with deploying the LMS in its basic, out-of-the-box state. This lets all stakeholders familiarize themselves with core functionalities before any custom features are introduced."}),t.jsx("p",{children:"We then run a pilot phase with a select group of learners to gather genuine feedback on usability and effectiveness. Based on this feedback, we implement changes in phases — directly addressing real user needs and progressively enhancing the learning experience."})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"Why this approach works"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsx("p",{children:"The iterative method ensures development efforts align with actual user needs, making every customized feature more relevant and impactful. It enables early identification of potential issues, avoiding wasted resources on unnecessary features. By involving learners in the process, institutions also foster a sense of ownership that drives long-term platform adoption."})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"Conclusion"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsxs("p",{children:["Our experience at Aulasneo underscores the importance of a logic-first, user-centered approach to"," ",t.jsx(E,{href:"/solutions/openedx/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Open edX platform"})," ","customization. By adopting an iterative process that values user feedback and functional improvements, educational institutions achieve a more effective and engaging LMS — one that truly serves learners rather than just looking good."]})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("div",{className:"bg-gradient-to-r from-[#062b60] to-[#4e359e] rounded-2xl p-8 md:p-12 text-center",children:[t.jsx("p",{className:"text-xl text-white font-quicksand mb-6",children:"Ready to customize your Open edX platform the right way?"}),t.jsx(E,{href:"/contact/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:"Talk to our team"})]}),t.jsx(an,{path:"/lms-customization-a-successful-approach/",lang:"en"})]})})})]})}const aj={"@context":"https://schema.org","@type":"Article",headline:"Personalización de LMS: Un Enfoque Exitoso",description:"El enfoque iterativo de Aulasneo para la personalización de Open edX, priorizando funcionalidad y feedback real de usuarios.",author:tn("Esteban Etcheverry"),publisher:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},datePublished:"2024-04-16",dateModified:"2026-04-03",url:"https://aulasneo.com/es/personalizacion-lms-un-enfoque-exitoso/"};function sj(){return v.useEffect(()=>{const e=(n,a)=>{let s=document.querySelector(`link[hreflang="${n}"]`);s||(s=document.createElement("link"),s.setAttribute("rel","alternate"),s.setAttribute("hreflang",n),document.head.appendChild(s)),s.setAttribute("href",a)};e("en","https://aulasneo.com/lms-customization-a-successful-approach/"),e("es","https://aulasneo.com/es/personalizacion-lms-un-enfoque-exitoso/"),e("x-default","https://aulasneo.com/lms-customization-a-successful-approach/")},[]),t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Personalización de LMS: Un Enfoque Exitoso | Aulasneo",description:"Conocé el enfoque iterativo de Aulasneo para la personalización de Open edX — priorizando funcionalidad y feedback real de usuarios sobre la estética.",ogImage:"https://aulasneo.com/images/blog/personalizacion-lms-un-enfoque-exitoso.jpg",canonical:"https://aulasneo.com/es/personalizacion-lms-un-enfoque-exitoso/",hreflangEs:"https://aulasneo.com/es/personalizacion-lms-un-enfoque-exitoso/"}),t.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(aj)}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsxs("section",{children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60
676] font-quicksand mb-6 leading-tight",children:"Repensando la Personalización del LMS: Una Estrategia de Éxito Paso a Paso"}),t.jsx("div",{className:"prose prose-lg max-w-none font-quicksand text-gray-700 space-y-4",children:t.jsxs("p",{children:["En el mundo del eLearning, la personalización del LMS se ha convertido en una preocupación central para educadores e instituciones que buscan experiencias de aprendizaje impactantes. Un error frecuente en estos proyectos es el foco inicial en mejoras estéticas por sobre la lógica funcional que sostiene experiencias de aprendizaje efectivas. En Aulasneo seguimos un camino diferente: un enfoque iterativo para la"," ",t.jsx(E,{href:"/solutions/openedx/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"personalización de Open edX"})," ","que prioriza la funcionalidad y el feedback real de los usuarios desde el inicio."]})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"El error de enfocarse primero en la estética"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsx("p",{children:"Muchos proyectos de personalización comienzan con énfasis en el diseño visual. Si bien el look and feel del LMS importa, arrancar por ahí lleva a una mala asignación de recursos en features que pueden verse bien pero no contribuyen significativamente a los resultados de aprendizaje."})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"El enfoque iterativo de Aulasneo"}),t.jsxs("div",{className:"font-quicksand text-gray-700 space-y-4",children:[t.jsx("p",{children:"Nuestra estrategia comienza desplegando el LMS en su estado básico, sin personalizaciones. Esto permite que todos los actores se familiaricen con las funcionalidades centrales antes de introducir features personalizados."}),t.jsx("p",{children:"Luego implementamos una fase piloto con un grupo selecto de estudiantes para recopilar feedback genuino sobre usabilidad y efectividad. Con base en ese feedback, implementamos cambios en fases — atendiendo directamente las necesidades reales de los usuarios."})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"Por qué este enfoque funciona"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsx("p",{children:"El método iterativo asegura que el desarrollo esté alineado con las necesidades reales, haciendo cada feature personalizado más relevante e impactante. Permite identificar problemas temprano, evitando recursos desperdiciados. Al involucrar a los estudiantes, las instituciones también generan un sentido de pertenencia que impulsa la adopción a largo plazo."})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"Conclusión"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsx("p",{children:"La experiencia de Aulasneo subraya la importancia de un enfoque centrado en el usuario para la personalización de Open edX. Al adoptar un proceso iterativo que valora el feedback y las mejoras funcionales, las instituciones logran un LMS más efectivo — uno que realmente sirve a los estudiantes."})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("div",{className:"bg-gradient-to-r from-[#062b60] to-[#4e359e] rounded-2xl p-8 md:p-12 text-center",children:[t.jsx("p",{className:"text-xl text-white font-quicksand mb-6",children:"¿Listo para personalizar tu plataforma Open edX de la manera correcta?"}),t.jsx(E,{href:"/contact/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:"Hablá con nuestro equipo"})]}),t.jsx(an,{path:"/es/personalizacion-lms-un-enfoque-exitoso/",lang:"es"})]})})})]})}const Gg="edX is a course marketplace owned by 2U; Open edX is the open-source LMS behind it that any organization can run. History, practical differences, comparison table and FAQ.",oj={"@context":"https://schema.org","@type":"BlogPosting",headline:"edX vs Open edX: What's the Difference?",description:Gg,author:tn("Esteban Etcheverry"),publisher:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},datePublished:"2023-04-23",dateModified:"2026-09-30",mainEntityOfPage:{"@type":"WebPage","@id":"https://aulasneo.com/whats-the-difference-between-edx-and-open-edx/"}},Sp=[{question:"Is Open edX the same as edX?",answer:"No. edX (edx.org) is an online course marketplace owned by 2U. Open edX is the open-source learning platform originally built for edX, which any organization can run on its own, with its own brand, courses and learner data."},{question:"Who owns edX and who maintains Open edX?",answer:"2U has owned edx.org and the edX brand since 2021. The Open edX project is stewarded by Axim Collaborative, a non-profit founded by Harvard and MIT, together with a global community of contributors and service providers."},{question:"Can anyone publish courses on edx.org?",answer:"No. Only organizations that edX accepts can publish there, usually top-ranked universities, large companies and institutions with agreements with edX. Courses follow edX's terms, certificate model and revenue share."}
676,{question:"Is Open edX free?",answer:"The software is free and open source (AGPL v3), with no license or per-user fees. Running it has infrastructure, maintenance and support costs, whether your own team runs it or a managed provider does."},{question:"Can I issue my own certificates with Open edX?",answer:"Yes. With Open edX you define the passing criteria, design your own certificates with your brand and signatures, and decide whether they are free or paid."},{question:"Do I need developers to use Open edX?",answer:"Only if you run it yourself. With a fully managed provider such as Aulasneo, the provider installs, upgrades, secures and supports the platform, and your team focuses on courses and learners."}],rj=[{id:"related",label:"How edX and Open edX are related"},{id:"edx",label:"edX: the course marketplace"},{id:"open-edx",label:"Open edX: your own learning platform"},{id:"comparison",label:"Key differences at a glance"},{id:"which-one",label:"Which one is right for your organization?"},{id:"running-open-edx",label:"How to run Open edX"},{id:"faq",label:"Frequently asked questions"}];function ij(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"edX vs Open edX: What's the Difference? | Aulasneo",description:Gg,ogImage:"https://aulasneo.com/images/blog/whats-the-difference-between-edx-and-open-edx.jpg",canonical:"https://aulasneo.com/whats-the-difference-between-edx-and-open-edx/",hreflangEs:"https://aulasneo.com/es/cual-es-la-diferencia-entre-edx-y-open-edx/",hreflangEn:"https://aulasneo.com/whats-the-difference-between-edx-and-open-edx/",structuredData:{faq:Sp}}),t.jsx("script",{id:"blog-posting-schema",type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(oj)}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsx(_g,{title:"Contents",items:rj}),t.jsxs("section",{children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60] font-quicksand mb-6 leading-tight",children:"edX vs Open edX — What's the Difference?"}),t.jsxs(Zc,{label:"In short",children:[t.jsx("strong",{children:"edX (edx.org) is an online course marketplace"})," owned by 2U, where learners take courses from universities and companies that edX selects. ",t.jsx("strong",{children:"Open edX is the open-source learning platform"})," ","originally built for edX, which any organization can run as its own branded LMS, with full control over courses, certificates, pricing and learner data."]})]}),t.jsxs("section",{id:"related",children:[t.jsx($,{children:"How edX and Open edX are related"}),t.jsxs(Y,{children:[t.jsx("p",{children:"The names are similar because both come from the same project. In 2012, Harvard and MIT founded edX, a non-profit that built a learning platform to deliver Massive Open Online Courses (MOOCs) on edx.org. Courses from the world's leading universities attracted millions of learners."}),t.jsxs("p",{children:["In 2013, edX released the source code of its platform under the name ",t.jsx("strong",{children:"Open edX"}),", so that anyone could run it and adapt it to their needs. The open-source project was led by edX together with a community of users and service providers."]}),t.jsxs("p",{children:["In 2021, 2U acquired edX. Since then, 2U owns edx.org and the edX brand. Harvard and MIT created a new non-profit to continue the Open edX mission: first called The Center for Reimagining Learning (tCRIL), it is now"," ",t.jsx("strong",{children:"Axim Collaborative"}),". So today they are two different things with different owners: a commercial course marketplace and an open-source platform with a community behind it."]}),t.jsx("p",{children:"Now let's look beyond history and ownership, at the practical differences."})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"edx",children:[t.jsx($,{children:"edX: the course marketplace"}),t.jsxs(Y,{children:[t.jsx("p",{children:"edX is an online learning destination that lists courses and programs from leading universities, NGOs and companies. Most courses are MOOCs: learners can often access the content for free, and pay a fee for a verified certificate once they complete the tests and grading requirements. edX has also expanded into professional certificates and online degree programs."}),t.jsx("p",{children:"In many cases there is a revenue share agreement between edX and the organizations that produce the courses, and course providers must follow the terms and conditions defined by edX."})]}),t.jsx(L,{title:"Can anyone publish courses on edx.org?",children:t.jsx("p",{children:"No. Only the organizations (universities, companies, NGOs, governments) that edX considers meet its curation criteria. They are usually universities with high positions in international rankings, large corporations or institutions with agreements with edX. All courses go through a curation process to guarantee a consistent quality in pedagogical approach and content production."})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"open-edx",children:[t.jsx($,{children:"Open edX: your own learning platform"}),t.jsx(Y,{children:t.jsxs("p",{children:[t.jsx(q,{href:"/blog/what-is-open-edx-overview-features-benefits/",children:"Open edX"}),' is open-source software, public and available to anyone who wants to download it and install it. Being an open platform means you can "own" it: install it, modify it and integrate it with other platforms or resources without asking for permission.']})}),t.jsxs("div",{className:"space-y-6",children:[t.jsx(L,{title:"Can anyone publish courses with Open edX?",children:t.jsxs("p",{children:["Yes! On your Open edX platform, ",t.jsx("strong",{children:"you"})," are the curator of your courses. You have complete control over the details and dynamics of each course: its length, the content to include (videos, texts, images, PDFs, interactive exercises), and how many tests learners need to pass to get a certificate. You can create custom certificates and adapt the look and feel of the platform to your brand guidelines."]})}),t.jsx(L,{title:"You set the rules",children:t.jsx("p",{children:"You also decide the terms and conditions. You can sell your courses or offer them for free. You can use the platform to train your employees, your suppliers, your customers or the general public. Or all of them!"})}),t.jsx(L,{title:"The platform grows with you",children:t.jsxs("p",{children:["Open edX is a community-driven project: developers, institutions and educators collaborate to improve its features, security and performance, with a new release every six months. You can extend it with"," ",t.jsx(q,{href:"/blog/10-open-edx-advanced-components-to-boost-engagement/",children:"advanced components"}),", analytics like"," ",t.jsx(q,{href:"/solutions/panorama/",children:"Panorama"})," or AI agents like ",t.jsx(q,{href:"/solutions/owly/",children:"Owly"}),"."]})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"comparison",children:[t.jsx($,{children:"Key differences at a glance"}),t.jsx(Fg,{headers:["Category","edX (edx.org)","Open edX"],rows:[["What it is","A course marketplace","An open-source learning platform (LMS)"],["Owner","2U","Open source, stewarded by Axim Collaborative"],["Who can publish","Organizations accepted by edX","Anyone running the platform"],["Who controls the content","edX curation and terms","You decide"],["Branding","edX brand","Your own brand and domain"],["Pricing model","edX's model, often with revenue share","You set your own pricing, or free"],["Certificates","edX certificates, usually paid","Your own certificates and criteria"],["Learner data","On edX's platform","On your platform, you own it"],["Customization and integrations","Limited","Full: plugins, APIs, LTI, SSO"],["Audience","edX's global learner base","Your own audie
676nce: employees, customers, students"],["Hosting","Run by 2U","Self-hosted or fully managed provider"]]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"which-one",children:[t.jsx($,{children:"Which one is right for your organization?"}),t.jsxs(Y,{children:[t.jsxs("p",{children:["It is a trade-off between ",t.jsx("strong",{children:"reach and control"}),". If you are a university or company that edX accepts and you want to reach learners through an established marketplace, publishing on edX can help you get visibility."]}),t.jsxs("p",{children:["If you want your own branded learning platform, with full control over content, certificates, pricing and learner data, Open edX is the right choice. It is what organizations use for corporate training, professional certification, university programs and public-interest initiatives: see how"," ",t.jsx(q,{href:"/holcim-academy-success-stories-with-aulasneo/",children:"Holcim Academy"}),","," ",t.jsx(q,{href:"/cap-net-success-stories-with-aulasneo/",children:"Cap-Net UNDP"})," or"," ",t.jsx(q,{href:"/icdeba-success-stories-with-aulasneo/",children:"ICdeBA"})," run their own Open edX campus."]}),t.jsx("p",{children:"The two are not mutually exclusive: some organizations publish a few flagship courses on edX and run the rest of their catalog on their own Open edX platform."})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"running-open-edx",children:[t.jsx($,{children:"How to run Open edX"}),t.jsx(Y,{children:t.jsx("p",{children:"Once you choose Open edX, the main decision is how your organization will host and operate the platform. There are two options:"})}),t.jsxs("div",{className:"space-y-6",children:[t.jsx(L,{title:"Self-hosted",children:t.jsxs("p",{children:["Your technical team downloads and installs Open edX on your servers or cloud account, usually with Tutor, the official distribution. It gives you full control, but requires experience with Linux, Docker and Kubernetes, and time for security updates and an upgrade every six months. Learn about the"," ",t.jsx(q,{href:"/blog/open-edx-installation-3-options-master/",children:"Open edX installation options"}),"."]})}),t.jsx(L,{title:"Fully managed",children:t.jsxs("p",{children:["You subscribe to a service provider like Aulasneo and get the platform, upgrades and support, so your team can focus on content and learning goals. See our ",t.jsx(q,{href:"/open-edx-hosting/",children:"managed Open edX hosting"})," and"," ",t.jsx(q,{href:"/open-edx-pricing/",children:"plans and pricing"}),"."]})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"faq",children:[t.jsx($,{children:"Frequently asked questions"}),t.jsx(Va,{items:Sp}),t.jsx(Y,{children:t.jsxs("p",{children:["More answers in our ",t.jsx(q,{href:"/faq/open-edx/",children:"Open edX FAQ"}),"."]})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx($,{children:"Conclusion"}),t.jsx(Y,{children:t.jsx("p",{children:"edX is a learning destination where selected institutions publish their courses. Open edX is the collaborative, open-source engine that any organization can use to build its own. If you want your own platform, we can help you take the first step: Aulasneo has been deploying and running Open edX for universities, companies, NGOs and governments for more than 10 years."})}),t.jsx(Jc,{href:"/contact/",children:"Talk to an Open edX expert"})]}),t.jsx(an,{path:"/whats-the-difference-between-edx-and-open-edx/",lang:"en"})]})})})]})}const Vg="edX es un marketplace de cursos de 2U; Open edX es el LMS open source detrás, que cualquier organización puede operar. Historia, diferencias prácticas, tabla comparativa y FAQ.",lj={"@context":"https://schema.org","@type":"BlogPosting",headline:"edX vs Open edX: ¿Cuál es la diferencia?",description:Vg,author:tn("Esteban Etcheverry"),publisher:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},datePublished:"2023-04-23",dateModified:"2026-09-30",inLanguage:"es",mainEntityOfPage:{"@type":"WebPage","@id":"https://aulasneo.com/es/cual-es-la-diferencia-entre-edx-y-open-edx/"}},Ap=[{question:"¿Open edX es lo mismo que edX?",answer:"No. edX (edx.org) es un marketplace de cursos online que pertenece a 2U. Open edX es la plataforma de aprendizaje de código abierto que se creó para edX y que cualquier organización puede operar por su cuenta, con su propia marca, cursos y datos de estudiantes."},{question:"¿De quién es edX y quién mantiene Open edX?",answer:"2U es dueña de edx.org y de la marca edX desde 2021. El proyecto Open edX está a cargo de Axim C
676ollaborative, una organización sin fines de lucro fundada por Harvard y MIT, junto con una comunidad global de colaboradores y proveedores de servicios."},{question:"¿Cualquiera puede publicar cursos en edx.org?",answer:"No. Solo pueden publicar las organizaciones que edX acepta, en general universidades de primer nivel en los rankings, grandes empresas e instituciones con acuerdos con edX. Los cursos siguen los términos, el modelo de certificados y el reparto de ingresos de edX."},{question:"¿Open edX es gratis?",answer:"El software es gratuito y de código abierto (AGPL v3), sin costos de licencia ni por usuario. Operarlo tiene costos de infraestructura, mantenimiento y soporte, ya sea con un equipo propio o con un proveedor gestionado."},{question:"¿Puedo emitir mis propios certificados con Open edX?",answer:"Sí. Con Open edX definís los criterios de aprobación, diseñás tus propios certificados con tu marca y tus firmas, y decidís si son gratuitos o pagos."},{question:"¿Necesito programadores para usar Open edX?",answer:"Solo si lo operás por tu cuenta. Con un proveedor totalmente gestionado como Aulasneo, el proveedor instala, actualiza, asegura y da soporte a la plataforma, y tu equipo se concentra en los cursos y los estudiantes."}],cj=[{id:"relacion",label:"Cómo se relacionan edX y Open edX"},{id:"edx",label:"edX: el marketplace de cursos"},{id:"open-edx",label:"Open edX: tu propia plataforma de aprendizaje"},{id:"comparacion",label:"Diferencias clave de un vistazo"},{id:"cual-elegir",label:"¿Cuál es la opción correcta para tu organización?"},{id:"como-operar",label:"Cómo operar Open edX"},{id:"preguntas-frecuentes",label:"Preguntas frecuentes"}];function dj(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"edX vs Open edX: ¿Cuál es la diferencia? | Aulasneo",description:Vg,ogImage:"https://aulasneo.com/images/blog/cual-es-la-diferencia-entre-edx-y-open-edx.jpg",canonical:"https://aulasneo.com/es/cual-es-la-diferencia-entre-edx-y-open-edx/",hreflangEs:"https://aulasneo.com/es/cual-es-la-diferencia-entre-edx-y-open-edx/",hreflangEn:"https://aulasneo.com/whats-the-difference-between-edx-and-open-edx/",structuredData:{faq:Ap}}),t.jsx("script",{id:"blog-posting-schema",type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(lj)}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsx(_g,{title:"Contenido",items:cj}),t.jsxs("section",{children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60] font-quicksand mb-6 leading-tight",children:"edX vs Open edX: ¿Cuál es la diferencia?"}),t.jsxs(Zc,{label:"En pocas palabras",children:[t.jsx("strong",{children:"edX (edx.org) es un marketplace de cursos online"})," que pertenece a 2U, donde los estudiantes toman cursos de universidades y empresas que edX selecciona. ",t.jsx("strong",{children:"Open edX es la plataforma de aprendizaje de código abierto"})," que se creó para edX y que cualquier organización puede operar como su propio LMS con su marca, con control total sobre cursos, certificados, precios y datos de los estudiantes."]})]}),t.jsxs("section",{id:"relacion",children:[t.jsx($,{children:"Cómo se relacionan edX y Open edX"}),t.jsxs(Y,{children:[t.jsx("p",{children:"Los nombres se parecen porque los dos vienen del mismo proyecto. En 2012, Harvard y MIT fundaron edX, una organización sin fines de lucro que desarrolló una plataforma para dictar cursos masivos, abiertos y online (MOOCs) en edx.org. Los cursos de las principales universidades del mundo atrajeron a millones de estudiantes."}),t.jsxs("p",{children:["En 2013, edX liberó el código fuente de su plataforma con el nombre ",t.jsx("strong",{children:"Open edX"}),", para que cualquiera pudiera operarla y adaptarla a sus necesidades. El proyecto de código abierto lo lideraba edX junto con una comunidad de usuarios y proveedores de servicios."]}),t.jsxs("p",{children:["En 2021, 2U compró edX. Desde entonces, 2U es dueña de edx.org y de la marca edX. Harvard y MIT crearon una nueva organización sin fines de lucro para continuar la misión de Open edX: primero se llamó The Center for Reimagining Learning (tCRIL) y hoy es ",t.jsx("strong",{children:"Axim Collaborative"}),". Así que hoy son dos cosas distintas, con dueños distintos: un marketplace comercial de cursos y una plataforma de código abierto con una comunidad detrás."]}),t.jsx("p",{children:"Ahora vayamos más allá de la historia y de quién es dueño de qué, a las diferencias prácticas."})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"edx",children:[t.jsx($,{children:"edX: el marketplace de cursos"}),t.jsxs(Y,{children:[t.jsx("p",{children:"edX es un destino de aprendizaje online que reúne cursos y programas de universidades, ONGs y empresas líderes. La mayoría son MOOCs: muchas veces se puede acceder al contenido gratis y pagar un arancel por un certificado verificado al completar las evaluaciones. edX también sumó certificados profesionales y carreras online."}),t.jsx("p",{children:"En muchos casos hay un acuerdo de reparto de ingresos entre edX y las organizaciones que producen los cursos, que además deben cumplir los términos y condiciones que define edX."})]}),t.jsx(L,{title:"¿Cualquiera puede publicar cursos en edx.org?",children:t.jsx("p",{children:"No. Solo las organizaciones (universidades, empresas, ONGs, gobiernos) que edX considera que cumplen sus criterios de curaduría. Suelen ser universidades bien posicionadas en los rankings internacionales, grandes empresas o instituciones con acuerdos con edX. Todos los cursos pasan por un proceso de curaduría para asegurar una calidad pareja en el enfoque pedagógico y la producción de contenidos."})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"open-edx",children:[t.jsx($,{children:"Open edX: tu propia plataforma de aprendizaje"}),t.jsx(Y,{children:t.jsxs("p",{children:[t.jsx(q,{href:"/es/lo-que-es-open-edx-y-cuales-son-las-ventajas-de-open-edx/",children:"Open edX"}),' es software de código abierto, público y disponible para cualquiera que quiera descargarlo e instalarlo. Que sea una plataforma abierta significa que podés "adueñarte" de ella: instalarla, modificarla e integrarla con otras plataformas o recursos sin pedir permiso.']})}),t.jsxs("div",{className:"space-y-6",children:[t.jsx(L,{title:"¿Cualquiera puede publicar cursos con Open edX?",children:t.jsxs("p",{children:["¡Sí! En tu plataforma Open edX, ",t.jsx("strong",{children:"vos"})," sos quien decide qué cursos publicar. Tenés control total sobre los detalles y la dinámica de cada curso: su duración, los contenidos (videos, textos, imágenes, PDFs, ejercicios interactivos) 
676y cuántas evaluaciones hay que aprobar para obtener el certificado. Podés crear certificados propios y adaptar la apariencia de la plataforma a tu identidad de marca."]})}),t.jsx(L,{title:"Vos ponés las reglas",children:t.jsx("p",{children:"También definís los términos y condiciones. Podés vender tus cursos u ofrecerlos gratis. Podés usar la plataforma para capacitar a tus empleados, tus proveedores, tus clientes o al público en general. ¡O a todos!"})}),t.jsx(L,{title:"La plataforma crece con vos",children:t.jsxs("p",{children:["Open edX es un proyecto impulsado por su comunidad: desarrolladores, instituciones y educadores colaboran para mejorar sus funcionalidades, su seguridad y su rendimiento, con una versión nueva cada seis meses. Podés extenderlo con analítica como ",t.jsx(q,{href:"/es/solutions/panorama/",children:"Panorama"})," o agentes de IA como"," ",t.jsx(q,{href:"/es/solutions/owly/",children:"Owly"}),"."]})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"comparacion",children:[t.jsx($,{children:"Diferencias clave de un vistazo"}),t.jsx(Fg,{headers:["Categoría","edX (edx.org)","Open edX"],rows:[["Qué es","Un marketplace de cursos","Una plataforma de aprendizaje (LMS) de código abierto"],["Dueño","2U","Código abierto, a cargo de Axim Collaborative"],["Quién puede publicar","Organizaciones aceptadas por edX","Quien opere la plataforma"],["Quién controla el contenido","La curaduría y los términos de edX","Vos decidís"],["Marca","La marca edX","Tu propia marca y dominio"],["Modelo de precios","El de edX, muchas veces con reparto de ingresos","Vos definís tus precios, o gratis"],["Certificados","Certificados de edX, en general pagos","Tus propios certificados y criterios"],["Datos de los estudiantes","En la plataforma de edX","En tu plataforma, son tuyos"],["Personalización e integraciones","Limitadas","Totales: plugins, APIs, LTI, SSO"],["Audiencia","La base global de estudiantes de edX","Tu propia audiencia: empleados, clientes, alumnos"],["Hosting","Lo opera 2U","Autoalojado o proveedor totalmente gestionado"]]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"cual-elegir",children:[t.jsx($,{children:"¿Cuál es la opción correcta para tu organización?"}),t.jsxs(Y,{children:[t.jsxs("p",{children:["Es un equilibrio entre ",t.jsx("strong",{children:"alcance y control"}),". Si sos una universidad o empresa que edX acepta y querés llegar a estudiantes a través de un marketplace consolidado, publicar en edX te puede dar visibilidad."]}),t.jsxs("p",{children:["Si querés tu propia plataforma de aprendizaje con tu marca, con control total sobre contenidos, certificados, precios y datos de los estudiantes, Open edX es la opción correcta. Es lo que usan las organizaciones para capacitación corporativa, certificación profesional, programas universitarios e iniciativas de interés público. Mirá cómo ",t.jsx(q,{href:"/es/holcim-academy-casos-de-exito-con-aulasneo/",children:"Holcim Academy"}),","," ",t.jsx(q,{href:"/es/cap-net-casos-de-exito-con-aulasneo/",children:"Cap-Net PNUD"})," o"," ",t.jsx(q,{href:"/es/icdeba-casos-de-exito-con-aulasneo/",children:"ICdeBA"})," operan su propio campus Open edX."]}),t.jsx("p",{children:"Las dos opciones no se excluyen: algunas organizaciones publican unos pocos cursos insignia en edX y dictan el resto de su catálogo en su propia plataforma Open edX."})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"como-operar",children:[t.jsx($,{children:"Cómo operar Open edX"}),t.jsx(Y,{children:t.jsx("p",{children:"Una vez que elegís Open edX, la decisión principal es cómo va a alojar y operar la plataforma tu organización. Hay dos opciones:"})}),t.jsxs("div",{className:"space-y-6",children:[t.jsx(L,{title:"Autoalojado",children:t.jsxs("p",{children:["Tu equipo técnico descarga e instala Open edX en tus servidores o en tu cuenta de nube, en general con Tutor, la distribución oficial. Te da control total, pero requiere experiencia en Linux, Docker y Kubernetes, y tiempo para aplicar actualizaciones de seguridad y migrar de versión cada seis meses. Leé nuestros"," ",t.jsx(q,{href:"/es/blog/cluster-kubernetes-escalable-estable-eficiente/",children:"consejos para operar Kubernetes en producción"}),"."]})}),t.jsx(L,{title:"Totalmente gestionado",children:t.jsxs("p",{children:["Contratás a un proveedor como Aulasneo y recibís la plataforma, las actualizaciones y el soporte, para que tu equipo se concentre en los contenidos y los objetivos de aprendizaje. Conocé nuestro"," ",t.jsx(q,{href:"/es/open-edx-hosting/",children:"hosting de Open edX gestionado"})," y los"," ",t.jsx(q,{href:"/es/open-edx-pricing/",children:"planes y precios"}),"."]})})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{id:"preguntas-frecuentes",children:[t.jsx($,{children:"Preguntas frecuentes"}),t.jsx(Va,{items:Ap}),t.jsx(Y,{children:t.jsxs("p",{children:["Más respuestas en nuestras ",t.jsx(q,{href:"/es/faq/open-edx/",children:"preguntas frecuentes sobre Open edX"}),"."]})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx($,{children:"Conclusión"}),t.jsx(Y,{children:t.jsx("p",{children:"edX es un destino de aprendizaje donde instituciones seleccionad
676as publican sus cursos. Open edX es el motor colaborativo y de código abierto que cualquier organización puede usar para armar el suyo. Si querés tu propia plataforma, te ayudamos a dar el primer paso: en Aulasneo implementamos y operamos Open edX para universidades, empresas, ONGs y gobiernos desde hace más de 10 años."})}),t.jsx(Jc,{href:"/es/contact/",children:"Hablá con un experto en Open edX"})]}),t.jsx(an,{path:"/es/cual-es-la-diferencia-entre-edx-y-open-edx/",lang:"es"})]})})})]})}const uj={"@context":"https://schema.org","@type":"Article",headline:"Tips to Choose the Right LMS for Your Organization",description:"A practical guide to evaluating and selecting the right LMS. Key criteria, common mistakes, and how Open edX compares.",author:tn("Esteban Etcheverry"),publisher:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},datePublished:"2023-11-26",dateModified:"2026-04-03",url:"https://aulasneo.com/tips-to-choose-the-right-lms-for-your-organization/"};function pj(){return v.useEffect(()=>{const e=(n,a)=>{let s=document.querySelector(`link[hreflang="${n}"]`);s||(s=document.createElement("link"),s.setAttribute("rel","alternate"),s.setAttribute("hreflang",n),document.head.appendChild(s)),s.setAttribute("href",a)};e("en","https://aulasneo.com/tips-to-choose-the-right-lms-for-your-organization/"),e("es","https://aulasneo.com/es/consejos-para-elegir-el-lms-correcto/"),e("x-default","https://aulasneo.com/tips-to-choose-the-right-lms-for-your-organization/")},[]),t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Tips to Choose the Right LMS for Your Organization | Aulasneo",description:"A practical guide to evaluating and selecting the right Learning Management System for your organization. Key criteria, common mistakes, and how Open edX compares.",ogImage:"https://aulasneo.com/images/blog/tips-to-choose-the-right-lms-for-your-organization.jpg",canonical:"https://aulasneo.com/tips-to-choose-the-right-lms-for-your-organization/",hreflangEs:"https://aulasneo.com/es/consejos-para-elegir-el-lms-correcto/"}),t.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(uj)}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsxs("section",{children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60] font-quicksand mb-6 leading-tight",children:"Tips to Choose the Right LMS for Your Organization"}),t.jsx("div",{className:"prose prose-lg max-w-none font-quicksand text-gray-700 space-y-4",children:t.jsx("p",{children:"Choosing the right Learning Management System is one of the most important decisions for any organization embarking on an online learning initiative. The wrong choice can lead to wasted investment, low adoption, and poor learning outcomes. This guide offers practical criteria to evaluate any LMS before committing."})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-6",children:"What makes an LMS effective?"}),t.jsxs("div",{className:"space-y-6",children:[t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:"User interface"}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:"An intuitive interface ensures easy navigation for both learners and instructors. If learners can't figure out how to access content, they won't engage."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:"Scalability"}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:"The system must grow with your organization. An LMS that works for 100 users should also work for 10,000 without a complete re-architecture."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60
676] font-quicksand mb-2",children:"Customization"}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:"Look for an LMS that can be tailored to your specific workflows, branding, and content requirements. Generic platforms often force you to adapt your pedagogy to the tool rather than the other way around."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:"Integration with other systems"}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:"Your LMS should connect with the tools you already use — HR systems, CRMs, video conferencing platforms, and analytics tools. Check for LTI and SCORM support as minimum requirements."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:"Enterprise-level support"}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:"Reliable technical support is critical. Evaluate response times, support channels, and whether the provider offers SLAs."})]})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"The importance of choosing the right partner"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsxs("p",{children:["Selecting an LMS is not just about the software — it's also about choosing a reliable technology partner. A knowledgeable partner brings expertise in online learning, customized solutions, ongoing support, and strategic insight. At Aulasneo, we specialize in the"," ",t.jsx(E,{href:"/solutions/openedx/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Open edX platform"})," ","and have delivered successful implementations across universities, corporations, NGOs, and government agencies worldwide."]})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"Why Open edX stands out"}),t.jsxs("div",{className:"font-quicksand text-gray-700 space-y-4",children:[t.jsx("p",{children:"Open edX meets all the criteria above and adds key advantages: it is o
676pen-source (no licensing fees, no vendor lock-in), highly scalable, deeply customizable, and backed by a global community. For organizations that need a production-grade LMS with full control over their data and learning experience, Open edX is consistently the right choice."}),t.jsxs("p",{children:["Explore our"," ",t.jsx(E,{href:"/open-edx-hosting/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Open edX hosting"})," ","options, or learn how"," ",t.jsx(E,{href:"/solutions/panorama/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Panorama analytics"})," ","can help you measure and improve learning outcomes."]})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("div",{className:"bg-gradient-to-r from-[#062b60] to-[#4e359e] rounded-2xl p-8 md:p-12 text-center",children:[t.jsx("p",{className:"text-xl text-white font-quicksand mb-6",children:"Not sure which LMS is right for you?"}),t.jsx(E,{href:"/contact/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:"Talk to our team"})]}),t.jsx(an,{path:"/tips-to-choose-the-right-lms-for-your-organization/",lang:"en"})]})})})]})}const mj={"@context":"https://schema.org","@type":"Article",headline:"Consejos para elegir el LMS correcto para tu organización",description:"Guía práctica para evaluar y elegir el LMS adecuado. Criterios clave y cómo 
676se compara Open edX.",author:tn("Esteban Etcheverry"),publisher:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},datePublished:"2023-11-26",dateModified:"2026-04-03",url:"https://aulasneo.com/es/consejos-para-elegir-el-lms-correcto/"};function hj(){return v.useEffect(()=>{const e=(n,a)=>{let s=document.querySelector(`link[hreflang="${n}"]`);s||(s=document.createElement("link"),s.setAttribute("rel","alternate"),s.setAttribute("hreflang",n),document.head.appendChild(s)),s.setAttribute("href",a)};e("en","https://aulasneo.com/tips-to-choose-the-right-lms-for-your-organization/"),e("es","https://aulasneo.com/es/consejos-para-elegir-el-lms-correcto/"),e("x-default","https://aulasneo.com/tips-to-choose-the-right-lms-for-your-organization/")},[]),t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Consejos para elegir el LMS correcto para tu organización | Aulasneo",description:"Guía práctica para evaluar y elegir el LMS adecuado para tu organización. Criterios clave, errores comunes y cómo se compara Open edX.",ogImage:"https://aulasneo.com/images/blog/consejos-para-elegir-el-lms-correcto.jpg",canonical:"https://aulasneo.com/es/consejos-para-elegir-el-lms-correcto/",hreflangEs:"https://aulasneo.com/es/consejos-para-elegir-el-lms-correcto/"}),t.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(mj)}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsxs("section",{children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60] font-quicksand mb-6 leading-tight",children:"Consejos para elegir el LMS correcto para tu organización"}),t.jsx("div",{className:"prose prose-lg max-w-none font-quicksand text-gray-700 space-y-4",children:t.jsx("p",{children:"Elegir el Sistema de Gestión de Aprendizaje correcto es una de las decisiones más importantes para cualquier organización que quiera lanzar iniciativas de aprendizaje online. Una mala elección puede llevar a inversión desperdiciada, baja adopción y pobres resultados de aprendizaje. Esta guía ofrece criterios prácticos para evaluar cualquier LMS antes de comprometerse."})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-6",children:"¿Qué hace efectivo a un LMS?"}),t.jsxs("div",{className:"space-y-6",children:[t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:"Interfaz de usuario"}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:"Una interfaz intuitiva garantiza navegación fácil tanto para estudiantes como para instructores. Si los estudiantes no pueden acceder al contenido, no van a participar."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:"Escalabilidad"}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:"El sistema debe crecer con tu organización. Un LMS que funciona para 100 usuarios también debe funcionar para 10.000 sin re-arquitectura completa."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:"Personalización"}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:"Buscá un LMS que pueda adaptarse a tus flujos de trabajo, marca y requisitos de contenido específicos. Las plataformas genéricas a menudo te obligan a adaptar tu pedagogía a la herramienta."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:"Integración con otros sistemas"}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:"Tu LMS debe conectarse con las herramientas que ya usás — sistemas de RRHH, CRMs, plataformas de videoconferencia y herramientas de analítica. Verificá soporte para LTI y SCORM como requisitos mínimos."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60
676] font-quicksand mb-2",children:"Soporte de nivel enterprise"}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:"El soporte técnico confiable es crítico. Evaluá tiempos de respuesta, canales de soporte y si el proveedor ofrece SLAs."})]})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"La importancia de elegir el partner correcto"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsxs("p",{children:["Elegir un LMS no es solo sobre el software — también es sobre elegir un socio tecnológico confiable. En Aulasneo nos especializamos en la"," ",t.jsx(E,{href:"/solutions/openedx/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"plataforma Open edX"})," ","y hemos entregado implementaciones exitosas en universidades, empresas, ONGs y agencias gubernamentales en todo el mundo."]})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"Por qué Open edX se destaca"}),t.jsxs("div",{className:"font-quicksand text-gray-700 space-y-4",children:[t.jsx("p",{children:"Open edX cumple todos los criterios anteriores y agrega ventajas clave: es open source (sin licencias, sin vendor lock-in), altamente escalable, profundamente personalizable y respaldado por una comunidad global. Para organizaciones que necesitan un LMS de nivel productivo con control total sobre sus datos, Open edX es consistentemente la elección correcta."}),t.jsxs("p",{children:["Explorá nuestras opciones de"," ",t.jsx(E,{href:"/open-edx-hosting/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Open edX hosting"})," ","y descubrí cómo podemos ayudarte a lanzar tu plataforma."]})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("div",{className:"bg-gradient-to-r from-[#062b60] to-[#4e359e] rounded-2xl p-8 md:p-12 text-center",children:[t.jsx("p",{className:"text-xl text-white font-quicksand mb-6",children:"¿No estás seguro de qué LMS es el correcto?"}),t.jsx(E,{href:"/contact/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:"Hablá con nuestro equipo"})]}),t.jsx(an,{path:"/es/consejos-para-elegir-el-lms-correcto/",lang:"es"})]})})})]})}const fj={"@context":"https://schema.org","@type":"Article",headline:"Elevate Your Course Design in Open edX Studio",description:"A practical video guide for instructional designers using Open edX Studio — custom pages, cohorts, staff permissions and course descriptions.",author:tn("Esteban Etcheverry"),publisher:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},datePublished:"2023-08-10",dateModified:"2026-04-03",url:"https://aulasneo.com/elevate-your-course-design-in-open-edx-studio/"};function rs({url:e,title:n}){return t.jsx("div",{style:{position:"relative",paddingBottom:"56.25%",height:0,overflow:"hidden"},className:"rounded-xl my-6",children:t.jsx("iframe",{src:e,title:n,style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",border:0},allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})})}function gj(){return v.useEffect(()=>{const e=(n,a)=>{let s=document.querySelector(`link[hreflang="${n}"]`);s||(s=document.createElement("link"),s.setAttribute("rel","alternate"),s.setAttribute("hreflang",n),document.head.appendChild(s)),s.setAttribute("href",a)};e("en","https://aulasneo.com/elevate-your-course-design-in-open-edx-studio/"),e("es","https://aulasneo.com/es/mejora-el-diseno-de-tus-cursos-en-open-edx-studio/"),e("x-default","https://aulasneo.com/elevate-your-course-design-in-open-edx-studio/")},[]),t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Elevate Your Course Design in Open edX Studio | Aulasneo",description:"A practical video guide for instructional designers using Open edX Studio. Learn custom pages, cohorts, staff permissions, and course descriptions — with official Open edX tutorial videos.",ogImage:"https://aulasneo.com/images/blog/elevate-your-course-design-in-open-edx-studio.jpg",canonical:"https://aulasneo.com/elevate-your-course-design-in-open-edx-studio/",hreflangEs:"https://aulasneo.com/es/mejora-el-diseno-de-tus-cursos-en-open-edx-studio/"}),t.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(fj)}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsxs("section",{children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60
676] font-quicksand mb-3 leading-tight",children:"Elevate Your Course Design in Open edX Studio"}),t.jsx("p",{className:"italic text-gray-500 font-quicksand mb-6",children:"A video guide for instructional designers"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsxs("p",{children:[t.jsx(E,{href:"/solutions/openedx/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Open edX Studio"})," ","is the course authoring tool built into the"," ",t.jsx(E,{href:"/solutions/openedx/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Open edX platform"}),". It offers unparalleled flexibility to craft engaging, informative, and user-friendly courses. To help you take full advantage of what Studio has to offer, here are five step-by-step how-to videos from the official Open edX YouTube channel. Whether you're a beginner or an experienced user, these resources are designed to help you create the best learning experience for your audience."]})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"1. Customizing your course with custom pages"}),t.jsx("p",{className:"font-quicksand text-gray-700 mb-2",children:"Customization is the key to creating an immersive learning environment. This video guides you through adding custom pages to your Open edX course using Studio — whether for supplementary resources, FAQs, or instructor introductions."}),t.jsx(rs,{url:"https://www.youtube.com/embed/vIR9auBmiFU",title:"How To Create Custom Pages in the Open edX Platform"})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"2. Streamlining communication with updates and handouts"}),t.jsx("p",{className:"font-quicksand text-gray-700 mb-2",children:"Keeping learners informed and engaged is crucial. Studio makes it simple to share course updates, announcements, and downloadable handouts, ensuring learners always have access to essential course materials."}),t.jsx(rs,{url:"https://www.youtube.com/embed/3rPeuFR6UDI",title:"How To Add Course Updates and Handouts - Open edX Platform"})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"3. Granting staff permissions"}),t.jsx("p",{className:"font-quicksand text-gray-700 mb-2",children:"Collaboration is at the heart of effective course design. This video shows how to grant specific permissions to co-instructors, teaching assistants, and content reviewers — delegating responsibilities without compromising platform security."}),t.jsx(rs,{url:"https://www.youtube.com/embed/IwuGccK49m8",title:"How To Grant Staff Permissions to the Course - Open edX Platform"})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"4. Creating cohorts and content groups"}),t.jsx("p",{className:"font-quicksand text-gray-700 mb-2",children:"Segmenting your audience allows you to deliver tailored content to different learner groups. This video guides you through setting up cohorts and content groups to create differentiated learning paths within a single course."}),t.jsx(rs,{url:"https://www.youtube.com/embed/rp7st8yxC5E",title:"How To Add Cohorts and Content Groups - Open edX Platform"})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"5. Crafting the perfect course description"}),t.jsx("p",{className:"font-quicksand text-gray-700 mb-2",children:"First impressions matter. A well-written course description attracts the right learners and sets expectations clearly. This video shows how to set an engaging course description that retains learners from the start."}),t.jsx(rs,{url:"https://www.youtube.com/embed/ruXRjT176Cs",title:"How To Set the Course Description - Open edX Platform"})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60
676] font-quicksand mb-4",children:"Beyond the basics"}),t.jsxs("div",{className:"font-quicksand text-gray-700 space-y-4",children:[t.jsx("p",{children:"These five videos are just the tip of the iceberg of what you can do with Open edX Studio. Technical proficiency is only part of the equation — creating courses that are engaging and effective also requires instructional design expertise, learner empathy, and ongoing refinement based on feedback."}),t.jsx("p",{children:"At Aulasneo, our team of experts helps organizations navigate the full complexity of Open edX Studio, from initial course setup to advanced customization and ongoing support."}),t.jsx("p",{className:"italic text-sm text-gray-500",children:"This article was originally published on the Open edX Blog."})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("div",{className:"bg-gradient-to-r from-[#062b60] to-[#4e359e] rounded-2xl p-8 md:p-12 text-center",children:[t.jsx("p",{className:"text-xl text-white font-quicksand mb-6",children:"Need help designing effective courses on Open edX?"}),t.jsx(E,{href:"/contact/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:"Talk to our team"})]}),t.jsx(an,{path:"/elevate-your-course-design-in-open-edx-studio/",lang:"en"})]})})})]})}const xj={"@context":"https://schema.org","@type":"Article",headline:"Mejorá el diseño de tus cursos en Open edX Studio",description:"Guía en video para diseñadores instruccionales que usan Open edX Studio — con videos oficiales del canal de Open edX.",author:tn("Esteban Etcheverry"),publisher:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},datePublished:"2023-08-10",dateModified:"2026-04-03",url:"https://aulasneo.com/es/mejora-el-diseno-de-tus-cursos-en-open-edx-studio/"};function is({url:e,title:n}){return t.jsx("div",{style:{position:"relative",paddingBottom:"56.25%",height:0,overflow:"hidden"},className:"rounded-xl my-6",children:t.jsx("iframe",{src:e,title:n,style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",border:0},allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})})}function yj(){return v.useEffect(()=>{const e=(n,a)=>{let s=document.querySelector(`link[hreflang="${n}"]`);s||(s=document.createElement("link"),s.setAttribute("rel","alternate"),s.setAttribute("hreflang",n),document.head.appendChild(s)),s.setAttribute("href",a)};e("en","https://aulasneo.com/elevate-your-course-design-in-open-edx-studio/"),e("es","https://aulasneo.com/es/mejora-el-diseno-de-tus-cursos-en-open-edx-studio/"),e("x-default","https://aulasneo.com/elevate-your-course-design-in-open-edx-studio/")},[]),t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Mejorá el diseño de tus cursos en Open edX Studio | Aulasneo",description:"Guía en video para diseñadores instruccionales que usan Open edX Studio. Páginas personalizadas, cohortes, permisos y descripciones de cursos — con videos oficiales del canal de Open edX.",ogImage:"https://aulasneo.com/images/blog/mejora-el-diseno-de-tus-cursos-en-open-edx-studio.jpg",canonical:"https://aulasneo.com/es/mejora-el-diseno-de-tus-cursos-en-open-edx-studio/",hreflangEs:"https://aulasneo.com/es/mejora-el-diseno-de-tus-cursos-en-open-edx-studio/"}),t.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(xj)}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsxs("section",{children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60] font-quicksand mb-3 leading-tight",children:"Mejorá el diseño de tus cursos en Open edX Studio"}),t.jsx("p",{className:"italic text-gray-500 font-quicksand mb-6",children:"Una guía en video para diseñadores instruccionales"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsxs("p",{children:["Open edX Studio es la herramienta de autoría de cursos integrada en la"," ",t.jsx(E,{href:"/solutions/openedx/",className:"text-[#4e359e] hover:text-[#062b60
676] font-semibold",children:"plataforma Open edX"}),". Ofrece una flexibilidad sin igual para crear cursos atractivos, informativos y fáciles de usar. Estos cinco videos paso a paso del canal oficial de Open edX en YouTube te van a ayudar a sacarle el máximo partido a Studio, tanto si sos principiante como si ya tenés experiencia."]})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"1. Personalización con páginas personalizadas"}),t.jsx("p",{className:"font-quicksand text-gray-700 mb-2",children:"La personalización es clave para crear un entorno de aprendizaje inmersivo. Este video te guía a través del proceso de agregar páginas personalizadas a tu curso en Studio — para recursos complementarios, FAQs o presentaciones del instructor."}),t.jsx(is,{url:"https://www.youtube.com/embed/vIR9auBmiFU",title:"How To Create Custom Pages in the Open edX Platform"})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"2. Comunicación con actualizaciones y materiales"}),t.jsx("p",{className:"font-quicksand text-gray-700 mb-2",children:"Mantener informados a los estudiantes es crucial. Studio facilita compartir actualizaciones del curso, anuncios y materiales descargables para que los estudiantes siempre tengan acceso a lo que necesitan."}),t.jsx(is,{url:"https://www.youtube.com/embed/3rPeuFR6UDI",title:"How To Add Course Updates and Handouts - Open edX Platform"})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"3. Permisos de staff"}),t.jsx("p",{className:"font-quicksand text-gray-700 mb-2",children:"La colaboración es central en el diseño efectivo de cursos. Este video muestra cómo asignar permisos específicos a co-instructores, asistentes y revisores sin comprometer la seguridad de la plataforma."}),t.jsx(is,{url:"https://www.youtube.com/embed/IwuGccK49m8",title:"How To Grant Staff Permissions to the Course - Open edX Platform"})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"4. Cohortes y grupos de contenido"}),t.jsx("p",{className:"font-quicksand text-gray-700 mb-2",children:"Segmentar tu audiencia permite entregar contenido personalizado a diferentes grupos. Este video te guía para configurar cohortes y grupos de contenido para crear rutas de aprendizaje diferenciadas dentro de un mismo curso."}),t.jsx(is,{url:"https://www.youtube.com/embed/rp7st8yxC5E",title:"How To Add Cohorts and Content Groups - Open edX Platform"})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"5. Una descripción de curso efectiva"}),t.jsx("p",{className:"font-quicksand text-gray-700 mb-2",children:"Las primeras impresiones importan. Una descripción bien escrita atrae a los estudiantes correctos y establece expectativas claras. Este video muestra cómo configurar una descripción atractiva que retenga estudiantes desde el primer momento."}),t.jsx(is,{url:"https://www.youtube.com/embed/ruXRjT176Cs",title:"How To Set the Course Description - Open edX Platform"})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"Más allá de lo básico"}),t.jsxs("div",{className:"font-quicksand text-gray-700 space-y-4",children:[t.jsx("p",{children:"Estos cinco videos son solo el comienzo de lo que podés hacer con Open edX Studio. La competencia técnica es solo parte de la ecuación — crear cursos efectivos también requiere diseño instruccional, empatía con el estudiante y mejora continua basada en feedback."}),t.jsx("p",{children:"En Aulasneo, nuestro equipo de expertos ayuda a las organizaciones a navegar toda la complejidad de Open edX Studio, desde la configuración inicial hasta la personalización avanzada y el soporte continuo."}),t.jsx("p",{className:"italic text-sm text-gray-500",children:"Este artículo fue publicado originalmente en el blog oficial de Open edX."})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}
676),t.jsxs("div",{className:"bg-gradient-to-r from-[#062b60] to-[#4e359e] rounded-2xl p-8 md:p-12 text-center",children:[t.jsx("p",{className:"text-xl text-white font-quicksand mb-6",children:"¿Necesitás ayuda para diseñar cursos efectivos en Open edX?"}),t.jsx(E,{href:"/contact/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:"Hablá con nuestro equipo"})]}),t.jsx(an,{path:"/es/mejora-el-diseno-de-tus-cursos-en-open-edx-studio/",lang:"es"})]})})})]})}const vj={"@context":"https://schema.org","@type":"Article",headline:"Open edX Analytics: Evaluating the Impact of Open Courses",description:"How Aulasneo uses Panorama and Open edX analytics to measure the real impact of open courses beyond enrollment numbers. Presented at MIT.",author:tn("Esteban Etcheverry"),publisher:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},datePublished:"2023-09-24",dateModified:"2026-04-03",url:"https://aulasneo.com/open-edx-analytics-impact-open-courses/"};function bj(){return v.useEffect(()=>{const e=(n,a)=>{let s=document.querySelector(`link[hreflang="${n}"]`);s||(s=document.createElement("link"),s.setAttribute("rel","alternate"),s.setAttribute("hreflang",n),document.head.appendChild(s)),s.setAttribute("href",a)};e("en","https://aulasneo.com/open-edx-analytics-impact-open-courses/"),e("es","https://aulasneo.com/es/analitica-open-edx-impacto-cursos-abiertos/"),e("x-default","https://aulasneo.com/open-edx-analytics-impact-open-courses/")},[]),t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Open edX Analytics: Evaluating the Impact of Open Courses | Aulasneo",description:"How Aulasneo uses Open edX analytics and Panorama to measure the real impact of open courses — presented by Esteban Etcheverry at MIT.",ogImage:"https://aulasneo.com/images/blog/open-edx-analytics-impact-open-courses.jpg",canonical:"https://aulasneo.com/open-edx-analytics-impact-open-courses/",hreflangEs:"https://aulasneo.com/es/analitica-open-edx-impacto-cursos-abiertos/"}),t.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(vj)}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsxs("section",{children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60] font-quicksand mb-6 leading-tight",children:"Open edX Analytics: Evaluating the Impact of Open Courses"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsxs("p",{children:["Measuring the impact of online education goes far beyond counting enrollments and completion rates. In this presentation at MIT, Esteban Etcheverry — co-founder of Aulasneo — shares a framework for evaluating the real impact of open courses using"," ",t.jsx(E,{href:"/solutions/panorama/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Open edX analytics"})," ","and"," ",t.jsx(E,{href:"/solutions/panorama/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Panorama"}),". The approach combines quantitative and qualitative data to paint a complete picture of educational outcomes."]})}),t.jsx("div",{style:{position:"relative",paddingBottom:"56.25%",height:0,overflow:"hidden",margin:"2rem 0"},className:"rounded-xl",children:t.jsx("iframe",{src:"https://www.youtube.com/embed/hRJokFVrP0Q",title:"Open edX Analytics: Evaluating the Impact of Open Courses — MIT Presentation by Esteban Etcheverry",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",border:0},allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"The traditional approach: quantitative data only"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsx("p",{children:"Traditionally, open courses — especially those offered by NGOs or government agencies — are evaluated through quantitative metrics: enrollment numbers, completion rates, and quiz scores. These numbers provide a snapshot but don't reveal the full story. They lack the depth needed to truly understand the educational experience and its broader impact on learners' lives."})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60
676] font-quicksand mb-4",children:"Aulasneo's approach: merging quantitative and qualitative analysis"}),t.jsxs("div",{className:"font-quicksand text-gray-700 space-y-4",children:[t.jsxs("p",{children:["Leveraging"," ",t.jsx(E,{href:"/solutions/panorama/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Panorama"}),", our flexible Open edX analytics engine, Aulasneo has pioneered a method that combines hard data with personal stories and feedback at scale. By doing so, we achieve a richer and more nuanced picture of educational outcomes."]}),t.jsx("p",{children:"Our method uses a three-layered framework:"})]}),t.jsxs("div",{className:"space-y-6 mt-6",children:[t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:"1. Setting clear goals"}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:"Understand your audience, decide what you want to measure, and define how you'll measure it. Clear objectives shape the direction of all data collection and analysis."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-3",children:"2. Implementing three surveys"}),t.jsx("p",{className:"text-gray-700 font-quicksand mb-3",children:"We deploy a structured set of three surveys at different moments:"}),t.jsxs("ul",{className:"list-disc list-inside text-gray-700 font-quicksand space-y-2",children:[t.jsxs("li",{children:[t.jsx("span",{className:"font-semibold",children:"Initial student profile survey:"})," taken upon course entry to understand the background and expectations of learners before they start."]}),t.jsxs("li",{children:[t.jsx("span",{className:"font-semibold",children:"End-of-course survey:"})," taken upon completion to capture immediate reactions, feedback, and perceived learning outcomes."]}),t.jsxs("li",{children:[t.jsx("span",{className:"font-semibold",children:"Follow-up survey:"})," taken between one month and one year after completion to gauge long-term impact and how learners applied their new knowledge in real-world scenarios."]})]})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:"3. Integrating advanced forms with Open edX analytics"}),t.jsxs("p",{className:"text-gray-700 font-quicksand",children:["To capture rich qualitative data, we integrate LimeSurvey — an open-source forms engine — with"," ",t.jsx(E,{href:"/solutions/openedx/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Open edX platform"}),". These forms include open-ended questions and connect directly to Panorama for comprehensive analysis."]})]})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"A real-world application: Cap-Net UNDP"}),t.jsxs("div",{className:"font-quicksand text-gray-700 space-y-4",children:[t.jsxs("p",{children:["In collaboration with"," ",t.jsx("a",{href:"https://www.cap-net.org",target:"_blank",rel:"noopener noreferrer",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Cap-Net UNDP"}),", a global agency delivering open courses on water management, we put this approach into action:"]}),t.jsx("p",{children:"The initial survey is positioned as a unit in the first section of the course, ensuring learners provide profile data right after registration. The end-of-course survey captures both qualitative and quantitative feedback immediately after completion. The follow-up survey invites students to share their journey through open-ended questions — revealing how knowledge translated into real-world action."})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"Open edX analytics at scale"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsxs("p",{children:["All collected data feeds into custom"," ",t.jsx(E,{href:"/solutions/panorama/",className:"text-[#4e359e] hover:text-[#062b60
676] font-semibold",children:"Panorama"})," ","dashboards: a Student Profile Dashboard, an End-of-Course Dashboard, and a 12-Month Post-Course Dashboard. Together, these give course teams and organizational leaders a 360-degree view of educational impact — from who their learners are, to what they learned, to how it changed their professional practice."]})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("div",{className:"bg-gradient-to-r from-[#062b60] to-[#4e359e] rounded-2xl p-8 md:p-12 text-center",children:[t.jsx("p",{className:"text-xl text-white font-quicksand mb-6",children:"Want to measure the real impact of your Open edX courses?"}),t.jsx(E,{href:"/solutions/panorama/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:"Explore Panorama Analytics"})]}),t.jsx(an,{path:"/open-edx-analytics-impact-open-courses/",lang:"en"})]})})})]})}const wj={"@context":"https://schema.org","@type":"Article",headline:"Analítica Open edX: Evaluando el impacto de cursos abiertos",description:"Cómo Aulasneo usa Panorama para medir el impacto real de cursos abiertos más allá de las matrículas. Presentado en el MIT.",author:tn("Esteban Etcheverry"),publisher:{"@type":"Organization",name:"Aulasneo",url:"https://aulasneo.com"},datePublished:"2023-09-24",dateModified:"2026-04-03",url:"https://aulasneo.com/es/analitica-open-edx-impacto-cursos-abiertos/"};function jj(){return v.useEffect(()=>{const e=(n,a)=>{let s=document.querySelector(`link[hreflang="${n}"]`);s||(s=document.createElement("link"),s.setAttribute("rel","alternate"),s.setAttribute("hreflang",n),document.head.appendChild(s)),s.setAttribute("href",a)};e("en","https://aulasneo.com/open-edx-analytics-impact-open-courses/"),e("es","https://aulasneo.com/es/analitica-open-edx-impacto-cursos-abiertos/"),e("x-default","https://aulasneo.com/open-edx-analytics-impact-open-courses/")},[]),t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Analítica Open edX: Evaluando el impacto de cursos abiertos | Aulasneo",description:"Cómo Aulasneo usa Panorama y la analítica de Open edX para medir el impacto real de cursos abiertos — presentado por Esteban Etcheverry en el MIT.",ogImage:"https://aulasneo.com/images/blog/analitica-open-edx-impacto-cursos-abiertos.jpg",canonical:"https://aulasneo.com/es/analitica-open-edx-impacto-cursos-abiertos/",hreflangEs:"https://aulasneo.com/es/analitica-open-edx-impacto-cursos-abiertos/"}),t.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(wj)}}),t.jsx("div",{className:"pt-24 pb-16 bg-white",children:t.jsx("div",{className:"container mx-auto px-4",children:t.jsxs("div",{className:"max-w-4xl mx-auto",children:[t.jsxs("section",{children:[t.jsx("h1",{className:"text-4xl md:text-5xl font-bold text-[#062b60] font-quicksand mb-6 leading-tight",children:"Analítica Open edX: Evaluando el impacto de cursos abiertos"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsxs("p",{children:["Medir el impacto de la educación online va mucho más allá de contar matrículas y tasas de finalización. En esta presentación en el MIT, Esteban Etcheverry — cofundador de Aulasneo — comparte un framework para evaluar el impacto real de cursos abiertos usando la analítica de Open edX y"," ",t.jsx(E,{href:"/solutions/panorama/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Panorama"}),". El enfoque combina datos cuantitativos y cualitativos para obtener una imagen completa de los resultados educativos."]})}),t.jsx("div",{style:{position:"relative",paddingBottom:"56.25%",height:0,overflow:"hidden",margin:"2rem 0"},className:"rounded-xl",children:t.jsx("iframe",{src:"https://www.youtube.com/embed/hRJokFVrP0Q",title:"Open edX Analytics: Evaluating the Impact of Open Courses — MIT Presentation by Esteban Etcheverry",style:{position:"absolute",top:0,left:0,width:"100%",height:"100%",border:0},allow:"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60
676] font-quicksand mb-4",children:"El enfoque tradicional: solo datos cuantitativos"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsx("p",{children:"Históricamente, los cursos abiertos — especialmente los ofrecidos por ONGs o agencias gubernamentales — se evalúan a través de métricas cuantitativas: cantidad de matrículas, tasas de finalización y puntajes en evaluaciones. Estos números son útiles pero no revelan la historia completa. Les falta la profundidad necesaria para entender la experiencia educativa y su impacto real en la vida de los estudiantes."})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"El enfoque de Aulasneo: cuantitativo + cualitativo"}),t.jsxs("div",{className:"font-quicksand text-gray-700 space-y-4",children:[t.jsxs("p",{children:["Usando"," ",t.jsx(E,{href:"/solutions/panorama/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Panorama"}),", nuestro motor de analítica flexible para Open edX, Aulasneo ha desarrollado un método que combina datos concretos con historias personales y feedback a escala, obteniendo una imagen más rica y matizada de los resultados educativos."]}),t.jsx("p",{children:"Nuestro método usa un framework de tres capas:"})]}),t.jsxs("div",{className:"space-y-6 mt-6",children:[t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:"1. Definir objetivos claros"}),t.jsx("p",{className:"text-gray-700 font-quicksand",children:"Entendé a tu audiencia, decidí qué querés medir y cómo lo vas a medir. Los objetivos claros orientan toda la recolección y el análisis de datos."})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-3",children:"2. Implementar tres encuestas"}),t.jsxs("ul",{className:"list-disc list-inside text-gray-700 font-quicksand space-y-2",children:[t.jsxs("li",{children:[t.jsx("span",{className:"font-semibold",children:"Encuesta de perfil inicial:"})," tomada al ingresar al curso para entender el contexto y las expectativas de los estudiantes."]}),t.jsxs("li",{children:[t.jsx("span",{className:"font-semibold",children:"Encuesta de fin de curso:"})," tomada al finalizar para capturar reacciones inmediatas y feedback sobre los resultados percibidos."]}),t.jsxs("li",{children:[t.jsx("span",{className:"font-semibold",children:"Encuesta de seguimiento:"})," tomada entre un mes y un año después para medir el impacto a largo plazo y cómo los estudiantes aplicaron el conocimiento."]})]})]}),t.jsxs("div",{className:"bg-gray-50 rounded-2xl p-6 border border-gray-100",children:[t.jsx("h3",{className:"text-xl font-bold text-[#062b60] font-quicksand mb-2",children:"3. Integrar formularios avanzados con la analítica de Open edX"}),t.jsxs("p",{className:"text-gray-700 font-quicksand",children:["Integramos LimeSurvey — un motor de formularios open source — con la"," ",t.jsx(E,{href:"/solutions/openedx/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"plataforma Open edX"}),". Estos formularios incluyen preguntas abiertas y se conectan directamente a Panorama para un análisis integral."]})]})]})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60] font-quicksand mb-4",children:"Aplicación real: Cap-Net UNDP"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsxs("p",{children:["En colaboración con"," ",t.jsx("a",{href:"https://www.cap-net.org",target:"_blank",rel:"noopener noreferrer",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Cap-Net UNDP"}),", una agencia global que ofrece cursos abiertos sobre gestión del agua, pusimos este enfoque en práctica. La encuesta inicial se ubica como una unidad en la primera sección del curso. La encuesta de fin de curso captura feedback cualitativo y cuantitativo inmediatamente. La encuesta de seguimiento invita a los estudiantes a compartir su experiencia a través de preguntas abiertas."]})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("section",{children:[t.jsx("h2",{className:"text-3xl font-bold text-[#062b60
676] font-quicksand mb-4",children:"Analítica Open edX a escala"}),t.jsx("div",{className:"font-quicksand text-gray-700 space-y-4",children:t.jsxs("p",{children:["Todos los datos alimentan dashboards personalizados en"," ",t.jsx(E,{href:"/solutions/panorama/",className:"text-[#4e359e] hover:text-[#062b60] font-semibold",children:"Panorama"}),": un Dashboard de Perfil de Estudiantes, un Dashboard de Fin de Curso y un Dashboard de Seguimiento a 12 Meses. Juntos brindan una visión 360° del impacto educativo."]})})]}),t.jsx("hr",{className:"my-10 border-gray-200"}),t.jsxs("div",{className:"bg-gradient-to-r from-[#062b60] to-[#4e359e] rounded-2xl p-8 md:p-12 text-center",children:[t.jsx("p",{className:"text-xl text-white font-quicksand mb-6",children:"¿Querés medir el impacto real de tus cursos Open edX?"}),t.jsx(E,{href:"/solutions/panorama/",className:"inline-block bg-orange text-white px-8 py-3 rounded-lg hover:bg-orange/90 transition-colors font-semibold font-quicksand",children:"Explorá Panorama Analytics"})]}),t.jsx(an,{path:"/es/analitica-open-edx-impacto-cursos-abiertos/",lang:"es"})]})})})]})}function mn({html:e,lang:n}){const a=n==="es";return t.jsxs("div",{className:"pt-20 bg-white",children:[t.jsx("div",{className:"container mx-auto px-4 pt-6",children:t.jsxs(E,{href:a?"/es/case-studies/":"/case-studies/",className:"font-quicksand text-sm font-semibold text-[#24497F] hover:text-[#062b60]",children:["← ",a?"Todos los casos de éxito":"All success stories"]})}),t.jsx("div",{dangerouslySetInnerHTML:{__html:e}})]})}const kj=`<style>
677.an-case{--navy:#062B60;--violet:#4E359E;--violet-400:#6F51B5;--orange:#EF9245;--orange-300:#FAA95B;--blue:#24497F;--gray:#F2F2F2;--line:#E3E8EF;
678    font-family:"Quicksand",ui-sans-serif,system-ui,sans-serif;font-weight:500;color:var(--navy);background:#fff;line-height:1.55;
679    padding:clamp(56px,8vw,112px) clamp(16px,5vw,64px);box-sizing:border-box}
680  .an-case *,.an-case *::before,.an-case *::after{box-sizing:border-box}
681  .an-case .an-wrap{max-width:1160px;margin:0 auto}.an-case h2, .an-case h3, .an-case p, .an-case ul, .an-case ol, .an-case figure, .an-case h1 {margin:0}
682  .an-case .an-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
683  .an-case .an-eyebrow::before{content:"";width:28px;height:4px;border-radius:2px;background:var(--orange)}
684  .an-case .an-head{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;margin-top:18px}.an-case h2, .an-case h1 {font-size:clamp(36px,5.2vw,64px);font-weight:700;line-height:1.08;letter-spacing:-.025em}
685  .an-case .an-pill{display:inline-block;background:var(--orange);color:var(--navy);border-radius:999px;padding:0 .32em;margin-left:-.08em}
686  .an-case .an-client{display:flex;align-items:center;gap:16px;padding:14px 20px;border:1px solid var(--line);border-radius:18px;background:#fff}
687  .an-case .an-client img{width:56px;height:auto;display:block}
688  .an-case .an-client strong{display:block;font-size:16px;font-weight:700}
689  .an-case .an-client span{display:block;font-size:14px;color:var(--blue)}
690  .an-case .an-lede{max-width:760px;margin-top:22px;font-size:clamp(18px,2vw,22px);color:var(--blue)}
691  .an-case .an-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:44px;padding:0;list-style:none}
692  .an-case .an-stat{position:relative;padding:26px 24px 24px;border-radius:22px;background:#fff;box-shadow:0 20px 50px rgba(6,43,96,.10);overflow:hidden}
693  .an-case .an-stat::before{content:"";position:absolute;left:0;top:0;right:0;height:8px;background:var(--c,var(--violet))}
694  .an-case .an-stat b{display:block;font-size:clamp(36px,3.8vw,52px);font-weight:700;line-height:1;letter-spacing:-.03em;white-space:nowrap}
695  .an-case .an-stat span{display:block;margin-top:10px;font-size:16px;font-weight:600;color:var(--blue)}
696  .an-case .an-note{margin-top:18px;font-size:15px;color:var(--blue)}
697  .an-case .an-note b{font-weight:700;color:var(--navy)}
698  .an-case .an-video{margin-top:48px;border-radius:24px;overflow:hidden;background:var(--navy);box-shadow:0 30px 70px rgba(6,43,96,.17);aspect-ratio:16/9}.an-case .an-video video, .an-case .an-video iframe {display:block;width:100%;height:100%;object-fit:cover}
699  .an-case .an-story{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:64px}
700  .an-case .an-card{padding:30px 28px;border-radius:22px;background:var(--gray)}
701  .an-case .an-card h3{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:700;letter-spacing:-.01em}
702  .an-case .an-card h3 i{flex:none;width:12px;height:12px;border-radius:50%;background:var(--c)}
703  .an-case .an-card p{margin-top:12px;font-size:17px}
704  .an-case .an-sub{margin-top:72px;font-size:clamp(26px,3vw,36px);font-weight:700;letter-spacing:-.02em;line-height:1.15}
705  .an-case .an-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px;padding:0;list-style:none}
706  .an-case .an-feat{display:flex;gap:16px;padding:22px;border:1px solid var(--line);border-radius:20px}
707  .an-case .an-ic{flex:none;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--bg,#E6F0FB)}
708  .an-case .an-ic svg{width:28px;height:28px}
709  .an-case .an-feat strong{display:block;font-size:17px;font-weight:700;line-height:1.3}
710  .an-case .an-feat span{display:block;margin-top:4px;font-size:15px;color:var(--blue)}
711  .an-case .an-steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:32px;padding:0;list-style:none}
712  .an-case .an-steps::before{content:"";position:absolute;left:12px;right:12px;top:11px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--violet-400),var(--orange))}
713  .an-case .an-step{position:relative;padding-top:40px}
714  .an-case .an-step::before{content:"";position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:#fff;border:5px solid var(--c,var(--violet))}
715  .an-case .an-step small{display:block;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
716  .an-case .an-step strong{display:block;margin-top:6px;font-size:18px;font-weight:700;line-height:1.3}
717  .an-case .an-step span{display:block;margin-top:6px;font-size:15px;color:var(--blue)}
718  .an-case .an-cta{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;margin-top:80px;padding:clamp(32px,4vw,48px);border-radius:28px;background:var(--navy);color:#fff}
719  .an-case .an-cta p{font-size:clamp(24px,2.8vw,34px);font-weight:700;letter-spacing:-.015em;line-height:1.2}
720  .an-case .an-cta p span{display:block;margin-top:6px;font-size:17px;font-weight:500;color:rgba(244,248,253,.85);letter-spacing:0}
721  .an-case .an-btn{display:inline-block;padding:18px 30px;border-radius:999px;background:var(--orange);color:var(--navy);font-size:18px;font-weight:700;text-decoration:none;white-space:nowrap;transition:background .2s}
722  .an-case .an-btn:hover,.an-case .an-btn:focus-visible{background:var(--orange-300)}
723  .an-case .an-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
724  @media (max-width:960px){
725    .an-case .an-head{grid-template-columns:1fr}
726    .an-case .an-stats{grid-template-columns:repeat(2,1fr)}
727    .an-case .an-story,.an-case .an-feats{grid-template-columns:1fr}
728    .an-case .an-steps{grid-template-columns:1fr 1fr;row-gap:28px}
729    .an-case .an-steps::before{display:none}
730  }
731  @media (max-width:520px){
732    .an-case .an-stats,.an-case .an-steps{grid-template-columns:1fr}
733    .an-case .an-btn{white-space:normal;text-align:center;width:100%}
734  }
735</style>
736<section class="an-case" id="case-icdeba" lang="en" aria-labelledby="an-case-icdeba-title">
737
738
739<div class="an-wrap">
740  <p class="an-eyebrow">Customer story · Postgraduate education</p>
741
742  <div class="an-head">
743    <h1 id="an-case-icdeba-title">ICdeBA: 75 courses. <span class="an-pill">One week.</span></h1>
744    <div class="an-client">
745      <img src="/media/case-studies/icdeba/icdeba-logo.png" alt="ICdeBA" width="56" height="59">
746      <div><strong>Instituto Clínico de Buenos Aires</strong><span>Psychoanalytic training · Buenos Aires, Argentina</span></div>
747    </div>
748  </div>
749
750  <p class="an-lede">When lockdown closed classrooms in March 2020, ICdeBA needed to bring its psychoanalytic training online without losing the academic year. Working with Aulasneo, it launched a virtual campus with all 75 of its courses in one week, and built a foundation for continued growth.</p>
751
752  <ul class="an-stats">
753    <li class="an-stat" style="--c:#EF9245"><b>75</b><span>courses set up on the campus</span></li>
754    <li class="an-stat" style="--c:#4E359E"><b>1 week</b><span>campus implementation</span></li>
755    <li class="an-stat" style="--c:#2B6CC4"><b>500</b><span>students</span></li>
756    <li class="an-stat" style="--c:#062B60"><b>100</b><span>teachers and assistants</span></li>
757  </ul>
758  <p class="an-note">And the academic year <b>started only one week later</b> than originally scheduled.</p>
759
760  <figure class="an-video">
761    <iframe src="https://player.vimeo.com/video/1230367267?dnt=1&amp;title=0&amp;byline=0&amp;portrait=0" title="Video: ICdeBA customer story" loading="lazy" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9"></iframe>
762  </figure>
763
764  <div class="an-story">
765    <article class="an-card">
766      <h3><i style="--c:#EF9245"></i>The challenge</h3>
767      <p>In March 2020, in-person classes stopped overnight. ICdeBA had to support 75 courses, 500 students and a team of 100 teachers and assistants, with the start of the academic year days away and digital tools that were new to much of the team.</p>
768    </article>
769    <article class="an-card">
770      <h3><i style="--c:#4E359E"></i>The solution</h3>
771      <p>Aulasneo combined Open edX, live Zoom classes and organized learning materials in one ICdeBA-branded campus. Students and teachers join each live session directly from the course, with their campus login.</p>
772    </article>
773    <article class="an-card">
774      <h3><i style="--c:#2B6CC4"></i>The result</h3>
775      <p>With the close collaboration of ICdeBA’s academic team, the campus and all 75 courses were set up in one week. Classes began just one week behind schedule, and online enrollment extended the institute’s reach across Argentina and Latin America.</p>
776    </article>
777  </div>
778
779  <h3 class="an-sub">What the project included</h3>
780  <ul class="an-feats">
781    <li class="an-feat"><span class="an-ic" style="--bg:#ECE8F7"><svg viewBox="0 0 48 48" fill="none" stroke="#4E359E" stroke-width="4" stroke-linejoin="round" stroke-linecap="round" aria-hidden="true"><path d="M4 18 24 8l20 10-20 10z"/><path d="M12 22v10c6 6 18 6 24 0V22M44 18v12"/></svg></span><div><strong>Open edX campus</strong><span>ICdeBA-branded, with an organized course catalog.</span></div></li>
782    <li class="an-feat"><span class="an-ic" style="--bg:#FDEBD9"><svg viewBox="0 0 48 48" fill="none" stroke="#C96A1F" stroke-width="4" stroke-linejoin="round" aria-hidden="true"><rect x="4" y="12" width="28" height="24" rx="6"/><path d="M32 21l12-7v20l-12-7z"/></svg></span><div><strong>Integrated live Zoom classes</strong><span>Connected via LTI: learners join from the course, with no separate links, meeting IDs or passcodes.</span></div></li>
783    <li class="an-feat"><span class="an-ic" style="--bg:#E6F0FB"><svg viewBox="0 0 48 48" fill="none" stroke="#2B6CC4" stroke-width="4" stroke-linejoin="round" stroke-linecap="round" aria-hidden="true"><path d="M24 12c-6-4-14-4-19-2v28c5-2 13-2 19 2 6-4 14-4 19-2V10c-5-2-13-2-19 2zM24 12v28"/></svg></span><div><strong>Organized learning materials</strong><span>Each course’s readings, resources and announcements in one place.</span></div></li>
784    <li class="an-feat"><span class="an-ic" style="--bg:#E6F0FB"><svg viewBox="0 0 48 48" fill="none" stroke="#2B6CC4" stroke-width="4" stroke-linejoin="round" aria-hidden="true"><path d="M12 36C4 36 4 25 12 24c0-8 10-12 15-6 4-7 16-4 15 6 6 1 5 12-2 12z"/></svg></span><div><strong>Hosted on AWS</strong><span>The campus runs on Amazon Web Services.</span></div></li>
785    <li class="an-feat"><span class="an-ic" style="--bg:#ECE8F7"><svg viewBox="0 0 48 48" fill="none" stroke="#4E359E" stroke-width="4" stroke-linecap="round" aria-hidden="true"><circle cx="17" cy="16" r="7"/><circle cx="33" cy="18" r="5.5"/><path d="M4 40c0-10 6-13 13-13s13 3 13 13M32 28c7 0 12 3 12 11"/></svg></span><div><strong>Practical training</strong><span>Teachers and assistants learned to run their online classes independently.</span></div></li>
786    <li class="an-feat"><span class="an-ic" style="--bg:#FDEBD9"><svg viewBox="0 0 48 48" fill="none" stroke="#C96A1F" stroke-width="4" stroke-linecap="round" aria-hidden="true"><rect x="4" y="11" width="40" height="28" rx="5"/><path d="M4 20h40M11 31h10"/></svg></span><div><strong>Online enrollment and payment</strong><span>Access to the campus starts with a fully online enrollment.</span></div></li>
787  </ul>
788
789  <h3 class="an-sub">From closed classrooms to a growing campus</h3>
790  <ol class="an-steps">
791    <li class="an-step" style="--c:#6F51B5"><small>March 2020</small><strong>Classrooms close</strong><span>Lockdown halts in-person training.</span></li>
792    <li class="an-step" style="--c:#6F51B5"><small>Week 1</small><strong>Campus and 75 courses set up</strong><span>ICdeBA’s academic team and Aulasneo work side by side.</span></li>
793    <li class="an-step" style="--c:#EF9245"><small>Week 2</small><strong>Online classes begin</strong><span>The academic year starts only one week later than planned.</span></li>
794    <li class="an-step" style="--c:#EF9245"><small>Beyond</small><strong>Greater reach and flexibility</strong><span>Learners from across Argentina and Latin America, with live classes and readings between sessions.</span></li>
795  </ol>
796
797  <div class="an-cta">
798    <p>
798Ready to scale your learning?<span>10 years of learning, built to scale.</span></p>
799    <a class="an-btn" href="/contact/">Let’s build your learning platform</a>
800  </div>
801</div>
802</section>
803`;function Nj(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"ICdeBA Success Story: 75 courses in one week | Aulasneo",description:"When lockdown closed classrooms in March 2020, ICdeBA needed to bring its psychoanalytic training online without losing the academic year.",canonical:"https://aulasneo.com/icdeba-success-stories-with-aulasneo/",hreflangEs:"https://aulasneo.com/es/icdeba-casos-de-exito-con-aulasneo/",ogImage:"https://aulasneo.com/media/case-studies/icdeba/icdeba-video-poster-en.jpg"}),t.jsx(mn,{html:kj,lang:"en"})]})}const Sj=`<style>
804.an-case{--navy:#062B60;--violet:#4E359E;--violet-400:#6F51B5;--orange:#EF9245;--orange-300:#FAA95B;--blue:#24497F;--gray:#F2F2F2;--line:#E3E8EF;
805    font-family:"Quicksand",ui-sans-serif,system-ui,sans-serif;font-weight:500;color:var(--navy);background:#fff;line-height:1.55;
806    padding:clamp(56px,8vw,112px) clamp(16px,5vw,64px);box-sizing:border-box}
807  .an-case *,.an-case *::before,.an-case *::after{box-sizing:border-box}
808  .an-case .an-wrap{max-width:1160px;margin:0 auto}.an-case h2, .an-case h3, .an-case p, .an-case ul, .an-case ol, .an-case figure, .an-case h1 {margin:0}
809  .an-case .an-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
810  .an-case .an-eyebrow::before{content:"";width:28px;height:4px;border-radius:2px;background:var(--orange)}
811  .an-case .an-head{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:end;margin-top:18px}.an-case h2, .an-case h1 {font-size:clamp(36px,5.2vw,64px);font-weight:700;line-height:1.08;letter-spacing:-.025em}
812  .an-case .an-pill{display:inline-block;background:var(--orange);color:var(--navy);border-radius:999px;padding:0 .32em;margin-left:-.08em}
813  .an-case .an-client{display:flex;align-items:center;gap:16px;padding:14px 20px;border:1px solid var(--line);border-radius:18px;background:#fff}
814  .an-case .an-client img{width:56px;height:auto;display:block}
815  .an-case .an-client strong{display:block;font-size:16px;font-weight:700}
816  .an-case .an-client span{display:block;font-size:14px;color:var(--blue)}
817  .an-case .an-lede{max-width:760px;margin-top:22px;font-size:clamp(18px,2vw,22px);color:var(--blue)}
818  .an-case .an-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:44px;padding:0;list-style:none}
819  .an-case .an-stat{position:relative;padding:26px 24px 24px;border-radius:22px;background:#fff;box-shadow:0 20px 50px rgba(6,43,96,.10);overflow:hidden}
820  .an-case .an-stat::before{content:"";position:absolute;left:0;top:0;right:0;height:8px;background:var(--c,var(--violet))}
821  .an-case .an-stat b{display:block;font-size:clamp(36px,3.8vw,52px);font-weight:700;line-height:1;letter-spacing:-.03em;white-space:nowrap}
822  .an-case .an-stat span{display:block;margin-top:10px;font-size:16px;font-weight:600;color:var(--blue)}
823  .an-case .an-note{margin-top:18px;font-size:15px;color:var(--blue)}
824  .an-case .an-note b{font-weight:700;color:var(--navy)}
825  .an-case .an-video{margin-top:48px;border-radius:24px;overflow:hidden;background:var(--navy);box-shadow:0 30px 70px rgba(6,43,96,.17);aspect-ratio:16/9}.an-case .an-video video, .an-case .an-video iframe {display:block;width:100%;height:100%;object-fit:cover}
826  .an-case .an-story{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:64px}
827  .an-case .an-card{padding:30px 28px;border-radius:22px;background:var(--gray)}
828  .an-case .an-card h3{display:flex;align-items:center;gap:12px;font-size:22px;font-weight:700;letter-spacing:-.01em}
829  .an-case .an-card h3 i{flex:none;width:12px;height:12px;border-radius:50%;background:var(--c)}
830  .an-case .an-card p{margin-top:12px;font-size:17px}
831  .an-case .an-sub{margin-top:72px;font-size:clamp(26px,3vw,36px);font-weight:700;letter-spacing:-.02em;line-height:1.15}
832  .an-case .an-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:28px;padding:0;list-style:none}
833  .an-case .an-feat{display:flex;gap:16px;padding:22px;border:1px solid var(--line);border-radius:20px}
834  .an-case .an-ic{flex:none;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--bg,#E6F0FB)}
835  .an-case .an-ic svg{width:28px;height:28px}
836  .an-case .an-feat strong{display:block;font-size:17px;font-weight:700;line-height:1.3}
837  .an-case .an-feat span{display:block;margin-top:4px;font-size:15px;color:var(--blue)}
838  .an-case .an-steps{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:32px;padding:0;list-style:none}
839  .an-case .an-steps::before{content:"";position:absolute;left:12px;right:12px;top:11px;height:4px;border-radius:2px;background:linear-gradient(90deg,var(--violet-400),var(--orange))}
840  .an-case .an-step{position:relative;padding-top:40px}
841  .an-case .an-step::before{content:"";position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;background:#fff;border:5px solid var(--c,var(--violet))}
842  .an-case .an-step small{display:block;font-size:13px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
843  .an-case .an-step strong{display:block;margin-top:6px;font-size:18px;font-weight:700;line-height:1.3}
844  .an-case .an-step span{display:block;margin-top:6px;font-size:15px;color:var(--blue)}
845  .an-case .an-cta{display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;margin-top:80px;padding:clamp(32px,4vw,48px);border-radius:28px;background:var(--navy);color:#fff}
846  .an-case .an-cta p{font-size:clamp(24px,2.8vw,34px);font-weight:700;letter-spacing:-.015em;line-height:1.2}
847  .an-case .an-cta p span{display:block;margin-top:6px;font-size:17px;font-weight:500;color:rgba(244,248,253,.85);letter-spacing:0}
848  .an-case .an-btn{display:inline-block;padding:18px 30px;border-radius:999px;background:var(--orange);color:var(--navy);font-size:18px;font-weight:700;text-decoration:none;white-space:nowrap;transition:background .2s}
849  .an-case .an-btn:hover,.an-case .an-btn:focus-visible{background:var(--orange-300)}
850  .an-case .an-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
851  @media (max-width:960px){
852    .an-case .an-head{grid-template-columns:1fr}
853    .an-case .an-stats{grid-template-columns:repeat(2,1fr)}
854    .an-case .an-story,.an-case .an-feats{grid-template-columns:1fr}
855    .an-case .an-steps{grid-template-columns:1fr 1fr;row-gap:28px}
856    .an-case .an-steps::before{display:none}
857  }
858  @media (max-width:520px){
859    .an-case .an-stats,.an-case .an-steps{grid-template-columns:1fr}
860    .an-case .an-btn{white-space:normal;text-align:center;width:100%}
861  }
862</style>
863<section class="an-case" id="caso-icdeba" lang="es" aria-labelledby="an-case-icdeba-title">
864
865
866<div class="an-wrap">
867  <p class="an-eyebrow">Caso de éxito · Formación de posgrado</p>
868
869  <div class="an-head">
870    <h1 id="an-case-icdeba-title">ICdeBA: 75 cursos. <span class="an-pill">Una semana.</span></h1>
871    <div class="an-client">
872      <img src="/media/case-studies/icdeba/icdeba-logo.png" alt="ICdeBA" width="56" height="59">
873      <div><strong>Instituto Clínico de Buenos Aires</strong><span>Formación en psicoanálisis · Buenos Aires, Argentina</span></div>
874    </div>
875  </div>
876
877  <p class="an-lede">Cuando el confinamiento cerró las aulas en marzo de 2020, ICdeBA necesitaba llevar su formación psicoanalítica a la modalidad virtual, sin perder el año académico. En una semana, junto a Aulasneo, puso en marcha un campus virtual con sus 75 cursos, y sentó las bases para seguir creciendo.</p>
878
879  <ul class="an-stats">
880    <li class="an-stat" style="--c:#EF9245"><b>75</b><span>cursos configurados en el campus</span></li>
881    <li class="an-stat" style="--c:#4E359E"><b>1 semana</b><span>de implementación del campus</span></li>
882    <li class="an-stat" style="--c:#2B6CC4"><b>500</b><span>estudiantes</span></li>
883    <li class="an-stat" style="--c:#062B60"><b>100</b><span>docentes y ayudantes</span></li>
884  </ul>
885  <p class="an-note">Y el ciclo lectivo <b>comenzó solo una semana después</b> de la fecha prevista.</p>
886
887  <figure class="an-video">
888    <iframe src="https://player.vimeo.com/video/1230367269?dnt=1&amp;title=0&amp;byline=0&amp;portrait=0" title="Video: caso de éxito de ICdeBA" loading="lazy" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9"></iframe>
889  </figure>
890
891  <div class="an-story">
892    <article class="an-card">
893      <h3><i style="--c:#EF9245"></i>El desafío</h3>
894      <p>En marzo de 2020 las clases presenciales se detuvieron de un día para otro. ICdeBA tenía que sostener 75 cursos, 500 estudiantes y un equipo de 100 docentes y ayudantes, con el inicio del ciclo lectivo a pocos días y herramientas digitales nuevas para buena parte del equipo.</p>
895    </article>
896    <article class="an-card">
897      <h3><i style="--c:#4E359E"></i>La solución</h3>
898      <p>Aulasneo integró en un solo campus con la identidad de ICdeBA la plataforma Open edX, las clases en vivo por Zoom y los materiales de estudio organizados. Estudiantes y docentes ingresan a cada clase en vivo directamente desde el curso, con su usuario del campus.</p>
899    </article>
900    <article class="an-card">
901      <h3><i style="--c:#2B6CC4"></i>El resultado</h3>
902      <p>Con la estrecha colaboración del equipo académico de ICdeBA, el campus y los 75 cursos quedaron configurados en una semana. Las clases comenzaron con apenas una semana de retraso, y la inscripción online amplió el alcance a toda Argentina y Latinoamérica.</p>
903    </article>
904  </div>
905
906  <h3 class="an-sub">Qué incluyó el proyecto</h3>
907  <ul class="an-feats">
908    <li class="an-feat"><span class="an-ic" style="--bg:#ECE8F7"><svg viewBox="0 0 48 48" fill="none" stroke="#4E359E" stroke-width="4" stroke-linejoin="round" stroke-linecap="round" aria-hidden="true"><path d="M4 18 24 8l20 10-20 10z"/><path d="M12 22v10c6 6 18 6 24 0V22M44 18v12"/></svg></span><div><strong>Campus Open edX</strong><span>Con la identidad de ICdeBA y un catálogo organizado de cursos.</span></div></li>
909    <li class="an-feat"><span class="an-ic" style="--bg:#FDEBD9"><svg viewBox="0 0 48 48" fill="none" stroke="#C96A1F" stroke-width="4" stroke-linejoin="round" aria-hidden="true"><rect x="4" y="12" width="28" height="24" rx="6"/><path d="M32 21l12-7v20l-12-7z"/></svg></span><div><strong>Clases en vivo por Zoom, integradas</strong><span>Integración vía LTI: se ingresa desde el curso, sin intercambiar enlaces, IDs ni contraseñas.</span></div></li>
910    <li class="an-feat"><span class="an-ic" style="--bg:#E6F0FB"><svg viewBox="0 0 48 48" fill="none" stroke="#2B6CC4" stroke-width="4" stroke-linejoin="round" stroke-linecap="round" aria-hidden="true"><path d="M24 12c-6-4-14-4-19-2v28c5-2 13-2 19 2 6-4 14-4 19-2V10c-5-2-13-2-19 2zM24 12v28"/></svg></span><div><strong>Materiales de estudio organizados</strong><span>Lecturas, recursos y novedades de cada curso, en un solo lugar.</span></div></li>
911    <li class="an-feat"><span class="an-ic" style="--bg:#E6F0FB"><svg viewBox="0 0 48 48" fill="none" stroke="#2B6CC4" stroke-width="4" stroke-linejoin="round" aria-hidden="true"><path d="M12 36C4 36 4 25 12 24c0-8 10-12 15-6 4-7 16-4 15 6 6 1 5 12-2 12z"/></svg></span><div><strong>Infraestructura en AWS</strong><span>El campus se aloja en Amazon Web Services.</span></div></li>
912    <li class="an-feat"><span class="an-ic" style="--bg:#ECE8F7"><svg viewBox="0 0 48 48" fill="none" stroke="#4E359E" stroke-width="4" stroke-linecap="round" aria-hidden="true"><circle cx="17" cy="16" r="7"/><circle cx="33" cy="18" r="5.5"/><path d="M4 40c0-10 6-13 13-13s13 3 13 13M32 28c7 0 12 3 12 11"/></svg></span><div><strong>Capacitación práctica</strong><span>
912Docentes y ayudantes aprendieron a dictar sus clases online de forma autónoma.</span></div></li>
913    <li class="an-feat"><span class="an-ic" style="--bg:#FDEBD9"><svg viewBox="0 0 48 48" fill="none" stroke="#C96A1F" stroke-width="4" stroke-linecap="round" aria-hidden="true"><rect x="4" y="11" width="40" height="28" rx="5"/><path d="M4 20h40M11 31h10"/></svg></span><div><strong>Inscripción y pago online</strong><span>El acceso al campus comienza con una inscripción completamente online.</span></div></li>
914  </ul>
915
916  <h3 class="an-sub">Del cierre de las aulas a un campus en crecimiento</h3>
917  <ol class="an-steps">
918    <li class="an-step" style="--c:#6F51B5"><small>Marzo de 2020</small><strong>Cierran las aulas</strong><span>La formación presencial se detiene por el confinamiento.</span></li>
919    <li class="an-step" style="--c:#6F51B5"><small>Semana 1</small><strong>Campus y 75 cursos configurados</strong><span>Trabajo conjunto entre el equipo académico de ICdeBA y Aulasneo.</span></li>
920    <li class="an-step" style="--c:#EF9245"><small>Semana 2</small><strong>Comienzan las clases online</strong><span>El ciclo lectivo arranca solo una semana después de lo previsto.</span></li>
921    <li class="an-step" style="--c:#EF9245"><small>Después</small><strong>Más alcance y flexibilidad</strong><span>Estudiantes de toda Argentina y Latinoamérica, con clases en vivo y lecturas entre sesiones.</span></li>
922  </ol>
923
924  <div class="an-cta">
925    <p>¿Listo para escalar tu aprendizaje?<span>10 años construyendo plataformas de aprendizaje que escalan.</span></p>
926    <a class="an-btn" href="/es/contact/">Construyamos tu plataforma de aprendizaje</a>
927  </div>
928</div>
929</section>
930`;function Aj(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Caso de éxito ICdeBA: 75 cursos en una semana | Aulasneo",description:"Cuando el confinamiento cerró las aulas en marzo de 2020, ICdeBA necesitaba llevar su formación psicoanalítica a la modalidad virtual, sin perder el año…",canonical:"https://aulasneo.com/es/icdeba-casos-de-exito-con-aulasneo/",hreflangEn:"https://aulasneo.com/icdeba-success-stories-with-aulasneo/",ogImage:"https://aulasneo.com/media/case-studies/icdeba/icdeba-video-poster-es.jpg"}),t.jsx(mn,{html:Sj,lang:"es"})]})}const Oj=`<style>
931.an-case {
932      --navy: #062b60; --blue-600: #24497f; --violet: #4e359e; --violet-400: #6f51b5;
933      --orange: #ef9245; --water: #2b6cc4; --water-300: #7fb0e8; --water-100: #e6f0fb;
934      --gray-100: #f2f2f2; --gray-300: #d5dae2; --white: #ffffff;
935      position: relative; overflow: hidden; background: var(--white); color: var(--navy);
936      font-family: "Quicksand", ui-sans-serif, system-ui, sans-serif; font-weight: 500;
937      padding: clamp(64px, 9vw, 120px) 0; line-height: 1.6;
938    }
939    .an-case *, .an-case *::before, .an-case *::after { box-sizing: border-box; }
940    .an-case .an-strokes { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
941    .an-case .an-wrap { position: relative; max-width: 1180px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 48px); }
942
943    /* encabezado */
944    .an-case .an-eyebrow { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
945    .an-case .an-kicker { font-size: 14px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-600); }
946    .an-case .an-logo { height: 44px; width: auto; display: block; }.an-case h2, .an-case h1 { font-size: clamp(34px, 5vw, 58px); line-height: 1.1; letter-spacing: -.02em; font-weight: 700; margin: 0 0 22px; max-width: 900px; }
947    .an-case .an-hl { display: inline-block; background: var(--orange); color: var(--navy); border-radius: 999px; padding: 0 .32em; }
948    .an-case .an-lead { font-size: clamp(18px, 2vw, 22px); color: var(--blue-600); max-width: 760px; margin: 0 0 44px; }/* video + ficha */
949    .an-case .an-hero, /* iframe + ficha */
950    .an-case .an-hero { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 28px; align-items: stretch; margin-bottom: clamp(56px, 7vw, 88px); }
951    .an-case .an-video { border-radius: 22px; overflow: hidden; box-shadow: 0 30px 70px rgba(6,43,96,.17); background: var(--water-100); aspect-ratio: 16 / 9; }.an-case .an-video video, .an-case .an-video iframe { display: block; width: 100%; height: 100%; object-fit: cover; }
952    .an-case .an-facts { border-radius: 22px; background: var(--white); box-shadow: 0 30px 70px rgba(6,43,96,.12); padding: 30px 30px 26px; position: relative; overflow: hidden; }
953    .an-case .an-facts::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 10px; background: var(--water); }
954    .an-case .an-facts dl { margin: 6px 0 0; display: grid; gap: 16px; }
955    .an-case .an-facts dt { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-600); }
956    .an-case .an-facts dd { margin: 2px 0 0; font-size: 17px; font-weight: 700; color: var(--navy); line-height: 1.35; }
957
958    /* bloques narrativos */
959    .an-case .an-block { display: grid; align-items: start; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; padding: 40px 0; border-top: 2px solid var(--gray-100); }
960    .an-case .an-block h3 { margin: 0; padding-top: 8px; font-size: 14px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-600); display: flex; align-items: center; gap: 12px; }
961    .an-case .an-block h3::before { content: ""; width: 28px; height: 6px; border-radius: 3px; background: var(--water); flex: none; }
962    .an-case .an-block p { margin: 0 0 14px; font-size: 18px; max-width: 760px; }
963    .an-case .an-block p strong { font-weight: 700; }
964    .an-case .an-block .an-big { font-size: clamp(22px, 2.4vw, 28px); font-weight: 700; line-height: 1.3; letter-spacing: -.01em; margin-bottom: 16px; }
965
966    /* solución: tres piezas */
967    .an-case .an-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 10px; }
968    .an-case .an-card { border-radius: 22px; background: var(--white); box-shadow: 0 18px 44px rgba(6,43,96,.12); padding: 26px 24px 24px; position: relative; overflow: hidden; }
969    .an-case .an-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 8px; background: var(--c, var(--water)); }
970    .an-case .an-card .an-ic { width: 52px; height: 52px; border-radius: 16px; background: var(--water-100); display: grid; place-items: center; margin-bottom: 16px; }
971    .an-case .an-card h4 { margin: 0 0 8px; font-size: 21px; font-weight: 700; line-height: 1.25; }
972    .an-case .an-card p { margin: 0; font-size: 16px; color: var(--blue-600); }
973
974    /* impacto */
975    .an-case .an-list { list-style: none; padding: 0; margin: 6px 0 22px; display: grid; gap: 12px; }
976    .an-case .an-list li { position: relative; padding-left: 30px; font-size: 18px; }
977    .an-case .an-list li::before { content: ""; position: absolute; left: 0; top: .55em; width: 14px; height: 14px; border-radius: 50%; background: var(--water); box-shadow: 0 0 0 5px var(--water-100); }
978    .an-case .an-orgs { margin-top: 26px;
978 padding: 22px 26px; border-radius: 18px; background: var(--gray-100); }
979    .an-case .an-orgs small { display: block; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-600); margin-bottom: 10px; }
980    .an-case .an-orgs ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 12px; }
981    .an-case .an-orgs li { background: var(--white); border-radius: 999px; padding: 8px 18px; font-weight: 700; font-size: 16px; }
982    .an-case .an-sdg { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; background: var(--orange); color: var(--navy); border-radius: 999px; padding: 8px 20px 8px 14px; font-weight: 700; font-size: 16px; }
983
984    /* testimonio */
985    .an-case .an-quote { margin: clamp(48px, 6vw, 72px) 0; border-radius: 30px; background: var(--white); box-shadow: 0 30px 70px rgba(6,43,96,.15); padding: clamp(32px, 5vw, 64px); position: relative; overflow: hidden; }
986    .an-case .an-quote::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 12px; background: var(--water); }
987    .an-case .an-quote .an-mark { font-size: 120px; line-height: .6; font-weight: 700; color: var(--violet); display: block; height: 52px; }
988    .an-case .an-quote blockquote { margin: 0; }
989    .an-case .an-quote blockquote p { font-size: clamp(21px, 2.6vw, 30px); line-height: 1.45; font-weight: 500; margin: 0 0 14px; max-width: 920px; }
990    .an-case .an-quote .an-orig { font-size: 16px; color: var(--blue-600); font-style: italic; max-width: 920px; margin: 0 0 28px; }
991    .an-case .an-quote mark { white-space: nowrap; background: var(--orange); color: var(--navy); border-radius: 999px; padding: 0 .25em; font-weight: 700; }
992    .an-case .an-quote figcaption { display: flex; align-items: center; gap: 18px; padding-top: 22px; border-top: 2px solid var(--gray-100); }
993    .an-case .an-quote figcaption img { height: 40px; width: auto; }
994    .an-case .an-quote figcaption b { display: block; font-size: 19px; }
995    .an-case .an-quote figcaption span { display: block; font-size: 15px; color: var(--blue-600); }
996    .an-case .an-quote figcaption em { display: block; font-size: 13px; font-style: normal; color: var(--blue-600); margin-top: 2px; }
997
998    /* CTA de cierre */
999    .an-case .an-cta { border-radius: 30px; background: var(--navy); color: var(--white); padding: clamp(36px, 5vw, 60px); display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; position: relative; overflow: hidden; }
1000    .an-case .an-cta::after { content: ""; position: absolute; right: -120px; top: -160px; width: 460px; height: 460px; border-radius: 50%; background: radial-gradient(circle, rgba(111,81,181,.38), rgba(111,81,181,0) 65%); pointer-events: none; }
1001    .an-case .an-cta h3 { margin: 0 0 6px; font-size: clamp(26px, 3.2vw, 38px); line-height: 1.15; font-weight: 700; letter-spacing: -.015em; position: relative; }
1002    .an-case .an-cta p { margin: 0; color: #dbe6f5; font-size: 18px; position: relative; }
1003    .an-case .an-btn { position: relative; display: inline-block; background: var(--orange); color: var(--navy); font-weight: 700; font-size: 18px; text-decoration: none; padding: 16px 32px; border-radius: 999px; transition: transform .2s ease, box-shadow .2s ease; }
1004    .an-case .an-btn:hover, .an-case .an-btn:focus-visible { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(239,146,69,.35); }
1005    .an-case .an-btn:focus-visible { outline: 3px solid var(--water-300); outline-offset: 3px; }
1006
1007    @media (max-width: 900px) {
1008      .an-case .an-hero { grid-template-columns: 1fr; }
1009      .an-case .an-block { grid-template-columns: 1fr; gap: 16px; }
1010      .an-case .an-cards { grid-template-columns: 1fr; }
1011    }
1012    @media (prefers-reduced-motion: reduce) { .an-case .an-btn { transition: none; } }
1013</style>
1014<section class="an-case" id="case-cap-net" aria-labelledby="an-case-title">
1015  
1016
1017  
1018  <svg class="an-strokes" viewBox="0 0 1440 2400" preserveAspectRatio="xMidYMin slice" aria-hidden="true">
1019    <g fill="none" stroke-linecap="round">
1020      <path d="M -160 200 C 240 60, 520 420, 860 260 S 1300 120, 1640 300" stroke="#6f51b5" stroke-width="11" opacity=".10"/>
1021      <path d="M -200 1100 C 180 900, 480 1240, 800 1020 S 1240 760, 1640 880" stroke="#2b6cc4" stroke-width="15" opacity=".10"/>
1022      <path d="M -120 1650 C 260 1540, 460 1780, 760 1660 S 1180 1760, 1600 1620" stroke="#7fb0e8" stroke-width="8" opacity=".18"/>
1023      <path d="M 1640 2250 C 1300 2360, 1060 2060, 760 2200 S 260 2380, -160 2260" stroke="#faa95b" stroke-width="17" opacity=".18"/>
1024    </g>
1025  </svg>
1026
1027  <div class="an-wrap">
1028    <header>
1029      <div class="an-eyebrow">
1030        <span class="an-kicker">Customer story</span>
1031        <img class="an-logo" src="/media/case-studies/cap-net/capnet-logo.png" alt="Cap-Net" width="133" height="44">
1032      </div>
1033      <h1 id="an-case-title">Cap-Net: water knowledge, <span class="an-hl">global reach</span></h1>
1034      <p class="an-lead">How a dedicated Open edX campus, running on AWS infrastructure with Panorama learning analytics, supported the evolution of an established learning initiative and helped bring water-management capacity development to professionals around the world.</p>
1035    </header>
1036
1037    <div class="an-hero">
1038      <div class="an-video">
1039        <iframe src="https://player.vimeo.com/video/1230306719?dnt=1&amp;title=0&amp;byline=0&amp;portrait=0" title="Video" loading="lazy" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9"></iframe>
1040      </div>
1041      <aside class="an-facts" aria-label="Project overview">
1042        <dl>
1043          <div><dt>Client</dt><dd>Cap-Net, an international network for capacity development in sustainable water management</dd></div>
1044          <div><dt>Project</dt><dd>Cap-Net Virtual Campus</dd></div>
1045          <div><dt>Since</dt><dd>2019</dd></div>
1046          <div><dt>Platform</dt><dd>Open edX</dd></div>
1047          <div><dt>Infrastructure</dt><dd>Dedicated AWS</dd></div>
1048          <div><dt>Analytics</dt><dd>Panorama</dd></div>
1049        </dl>
1050      </aside>
1051    </div>
1052
1053    <div class="an-block">
1054      <h3>The challenge</h3>
1055      <div>
1056        <p class="an-big">A growing mission needed a scalable campus.</p>
1057        <p>Cap-Net builds the capacity of water professionals, educators and organizations in water management and sanitation. Its online learning was already under way, but in 2019 it needed to <strong>expand its global reach</strong>, and its WordPress-based campus was limiting that growth.</p>
1058        <p>The goal was to redesign the existing campus, moving from a site it had outgrown to a platform ready to support a growing course portfolio and an international community of learners.</p>
1059      </div>
1060    </div>
1061
1062    <div class="an-block">
1063      <h3>The solution</h3>
1064      <div>
1065        <p>Aulasneo designed and built a <strong>dedicated Open edX campus</strong>, branded for Cap-Net and made for discovering courses, learning and taking part.</p>
1066        <div class="an-cards">
1067          <article class="an-card">
1068            <div class="an-ic" aria-hidden="true"><svg width="28" height="28" viewBox="0 0 48 48"><path d="M24 5 C16 17 10 25 10 31 A14 14 0 0 0 38 31 C38 25 32 17 24 5 Z" fill="none" stroke="#2b6cc4" stroke-width="4" stroke-linejoin="round"/></svg></div>
1069            <h4>Open edX campus</h4>
1070            <p>A clean, organized learning environment in Cap-Net’s brand: course discovery, lessons and learner interaction.</p>
1071          </article>
1072          <article class="an-card" style="--c:#6f51b5">
1073            <div class="an-ic" aria-hidden="true"><svg width="28" height="28" viewBox="0 0 48 48"><path d="M12 36 C4 36 4 25 12 24 C12 16 22 12 27 18 C31 11 43 14 42 24 C48 25 47 36 40 36 Z" fill="none" stroke="#4e359e" stroke-width="4" stroke-linejoin="round"/></svg></div>
1074            <h4>Dedicated AWS infrastructure</h4>
1075            <p>A dedicated cloud foundation, ready to grow with the learning portfolio.</p>
1076          </article>
1077          <article class="an-card" style="--c:#ef9245">
1078            <div class="an-ic" aria-hidden="true"><svg width="28" height="28" viewBox="0 0 48 48"><path d="M8 40 V8 M8 40 H42" stroke="#2b6cc4" stroke-width="4" stroke-linecap="round" fill="none"/><path d="M14 32 L22 22 L30 27 L40 14" stroke="#c96a1f" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></div>
1079            <h4>Panorama analytics</h4>
1080            <p>Learner journeys, course progress and engagement insights to understand how people learn and improve the courses.</p>
1081          </article>
1082        </div>
1083      </div>
1084    </div>
1085
1086    <div class="an-block">
1087      <h3>The impact</h3>
1088      <div>
1089        <p class="an-big">Learning together for sustainable water management.</p>
1090        <ul class="an-list">
1091          <li><strong>Expanded reach:</strong> a campus ready to serve learners across regions.</li>
1092          <li><strong>A growing course portfolio,</strong> supported by a scalable platform.</li>
1093          <li><strong>Collaboration between organizations</strong> around Cap-Net’s courses.</li>
1094          <li><strong>Better understanding of learner engagement</strong> through Panorama.</li>
1095        </ul>
1096        <div class="an-orgs">
1097          <small>Organizations participating in Cap-Net courses</small>
1098          <ul>
1099            <li>UNICEF</li><li>UNDP</li><li>UN-Habitat</li><li>ANSI</li><li>Global Water Partnership</li>
1100          </ul>
1101        </div>
1102        <span class="an-sdg"><svg width="20" height="20" viewBox="0 0 48 48" aria-hidden="true"><path d="M24 5 C16 17 10 25 10 31 A14 14 0 0 0 38 31 C38 25 32 17 24 5 Z" fill="none" stroke="#062b60" stroke-width="5" stroke-linejoin="round"/></svg>Supporting SDG 6 · Clean Water and Sanitation</span>
1103      </div>
1104    </div>
1105
1106    <figure class="an-quote">
1107      <span class="an-mark" aria-hidden="true">“</span>
1108      <blockquote>
1109        <p>The partnership with aulasneo has been an enabler and <mark>game changer</mark> for our online learning activities, helping us strengthen capacity development efforts <mark>around the world</mark>.</p>
1110      </blockquote>
1111      <figcaption>
1112        <img src="/media/case-studies/cap-net/capnet-logo.png" alt="Cap-Net" width="121" height="40">
1113        <div>
1114          <b>Damian Indij</b>
1115          <span>Capacity Development Specialist, Cap&#8209;Net</span>
1116          <em>From a LinkedIn post</em>
1117        </div>
1118      </figcaption>
1119    </figure>
1120
1121    <div class="an-cta">
1122      <div>
1123        <h3>Let’s build your learning platform.</h3>
1124        <p>Ten years helping learning grow. Ready to scale your impact?</p>
1125      </div>
1126      <a class="an-btn" href="/contact/">Contact us</a>
1127    </div>
1128  </div>
1129</section>
1130`;function Cj(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Cap-Net: water knowledge, global reach | Aulasneo",description:"How a dedicated Open edX campus, running on AWS infrastructure with Panorama learning analytics, supported the evolution of an established learning initiative…",canonical:"https://aulasneo.com/cap-net-success-stories-with-aulasneo/",hreflangEs:"https://aulasneo.com/es/cap-net-casos-de-exito-con-aulasneo/",ogImage:"https://aulasneo.com/media/case-studies/cap-net/capnet-video-poster-en.jpg"}),t.jsx(mn,{html:Oj,lang:"en"})]})}const Ej=`<style>
1131.an-case {
1132      --navy: #062b60; --blue-600: #24497f; --violet: #4e359e; --violet-400: #6f51b5;
1133      --orange: #ef9245; --water: #2b6cc4; --water-300: #7fb0e8; --water-100: #e6f0fb;
1134      --gray-100: #f2f2f2; --gray-300: #d5dae2; --white: #ffffff;
1135      position: relative; overflow: hidden; background: var(--white); color: var(--navy);
1136      font-family: "Quicksand", ui-sans-serif, system-ui, sans-serif; font-weight: 500;
1137      padding: clamp(64px, 9vw, 120px) 0; line-height: 1.6;
1138    }
1139    .an-case *, .an-case *::before, .an-case *::after { box-sizing: border-box; }
1140    .an-case .an-strokes { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
1141    .an-case .an-wrap { position: relative; max-width: 1180px; margin: 0 auto; padding: 0 clamp(20px, 5vw, 48px); }
1142
1143    /* encabezado */
1144    .an-case .an-eyebrow { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
1145    .an-case .an-kicker { font-size: 14px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-600); }
1146    .an-case .an-logo { height: 44px; width: auto; display: block; }.an-case h2, .an-case h1 { font-size: clamp(34px, 5vw, 58px); line-height: 1.1; letter-spacing: -.02em; font-weight: 700; margin: 0 0 22px; max-width: 900px; }
1147    .an-case .an-hl { display: inline-block; background: var(--orange); color: var(--navy); border-radius: 999px; padding: 0 .32em; }
1148    .an-case .an-lead { font-size: clamp(18px, 2vw, 22px); color: var(--blue-600); max-width: 760px; margin: 0 0 44px; }/* video + ficha */
1149    .an-case .an-hero, /* iframe + ficha */
1150    .an-case .an-hero { display: grid; grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr); gap: 28px; align-items: stretch; margin-bottom: clamp(56px, 7vw, 88px); }
1151    .an-case .an-video { border-radius: 22px; overflow: hidden; box-shadow: 0 30px 70px rgba(6,43,96,.17); background: var(--water-100); aspect-ratio: 16 / 9; }.an-case .an-video video, .an-case .an-video iframe { display: block; width: 100%; height: 100%; object-fit: cover; }
1152    .an-case .an-facts { border-radius: 22px; background: var(--white); box-shadow: 0 30px 70px rgba(6,43,96,.12); padding: 30px 30px 26px; position: relative; overflow: hidden; }
1153    .an-case .an-facts::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 10px; background: var(--water); }
1154    .an-case .an-facts dl { margin: 6px 0 0; display: grid; gap: 16px; }
1155    .an-case .an-facts dt { font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-600); }
1156    .an-case .an-facts dd { margin: 2px 0 0; font-size: 17px; font-weight: 700; color: var(--navy); line-height: 1.35; }
1157
1158    /* bloques narrativos */
1159    .an-case .an-block { display: grid; align-items: start; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; padding: 40px 0; border-top: 2px solid var(--gray-100); }
1160    .an-case .an-block h3 { margin: 0; padding-top: 8px; font-size: 14px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-600); display: flex; align-items: center; gap: 12px; }
1161    .an-case .an-block h3::before { content: ""; width: 28px; height: 6px; border-radius: 3px; background: var(--water); flex: none; }
1162    .an-case .an-block p { margin: 0 0 14px; font-size: 18px; max-width: 760px; }
1163    .an-case .an-block p strong { font-weight: 700; }
1164    .an-case .an-block .an-big { font-size: clamp(22px, 2.4vw, 28px); font-weight: 700; line-height: 1.3; letter-spacing: -.01em; margin-bottom: 16px; }
1165
1166    /* solución: tres piezas */
1167    .an-case .an-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin-top: 10px; }
1168    .an-case .an-card { border-radius: 22px; background: var(--white); box-shadow: 0 18px 44px rgba(6,43,96,.12); padding: 26px 24px 24px; position: relative; overflow: hidden; }
1169    .an-case .an-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 8px; background: var(--c, var(--water)); }
1170    .an-case .an-card .an-ic { width: 52px; height: 52px; border-radius: 16px; background: var(--water-100); display: grid; place-items: center; margin-bottom: 16px; }
1171    .an-case .an-card h4 { margin: 0 0 8px; font-size: 21px; font-weight: 700; line-height: 1.25; }
1172    .an-case .an-card p { margin: 0; font-size: 16px; color: var(--blue-600); }
1173
1174    /* impacto */
1175    .an-case .an-list { list-style: none; padding: 0; margin: 6px 0 22px; display: grid; gap: 12px; }
1176    .an-case .an-list li { position: relative; padding-left: 30px; font-size: 18px; }
1177    .an-case .an-list li::before { content: ""; position: absolute; left: 0; top: .55em; width: 14px; height: 14px; border-radius: 50%; background: var(--water); box-shadow: 0 0 0 5px var(--water-100); }
1178    .an-case .an-orgs { margin-top: 26px;
1178 padding: 22px 26px; border-radius: 18px; background: var(--gray-100); }
1179    .an-case .an-orgs small { display: block; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--blue-600); margin-bottom: 10px; }
1180    .an-case .an-orgs ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 12px; }
1181    .an-case .an-orgs li { background: var(--white); border-radius: 999px; padding: 8px 18px; font-weight: 700; font-size: 16px; }
1182    .an-case .an-sdg { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; background: var(--orange); color: var(--navy); border-radius: 999px; padding: 8px 20px 8px 14px; font-weight: 700; font-size: 16px; }
1183
1184    /* testimonio */
1185    .an-case .an-quote { margin: clamp(48px, 6vw, 72px) 0; border-radius: 30px; background: var(--white); box-shadow: 0 30px 70px rgba(6,43,96,.15); padding: clamp(32px, 5vw, 64px); position: relative; overflow: hidden; }
1186    .an-case .an-quote::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 12px; background: var(--water); }
1187    .an-case .an-quote .an-mark { font-size: 120px; line-height: .6; font-weight: 700; color: var(--violet); display: block; height: 52px; }
1188    .an-case .an-quote blockquote { margin: 0; }
1189    .an-case .an-quote blockquote p { font-size: clamp(21px, 2.6vw, 30px); line-height: 1.45; font-weight: 500; margin: 0 0 14px; max-width: 920px; }
1190    .an-case .an-quote .an-orig { font-size: 16px; color: var(--blue-600); font-style: italic; max-width: 920px; margin: 0 0 28px; }
1191    .an-case .an-quote mark { white-space: nowrap; background: var(--orange); color: var(--navy); border-radius: 999px; padding: 0 .25em; font-weight: 700; }
1192    .an-case .an-quote figcaption { display: flex; align-items: center; gap: 18px; padding-top: 22px; border-top: 2px solid var(--gray-100); }
1193    .an-case .an-quote figcaption img { height: 40px; width: auto; }
1194    .an-case .an-quote figcaption b { display: block; font-size: 19px; }
1195    .an-case .an-quote figcaption span { display: block; font-size: 15px; color: var(--blue-600); }
1196    .an-case .an-quote figcaption em { display: block; font-size: 13px; font-style: normal; color: var(--blue-600); margin-top: 2px; }
1197
1198    /* CTA de cierre */
1199    .an-case .an-cta { border-radius: 30px; background: var(--navy); color: var(--white); padding: clamp(36px, 5vw, 60px); display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; position: relative; overflow: hidden; }
1200    .an-case .an-cta::after { content: ""; position: absolute; right: -120px; top: -160px; width: 460px; height: 460px; border-radius: 50%; background: radial-gradient(circle, rgba(111,81,181,.38), rgba(111,81,181,0) 65%); pointer-events: none; }
1201    .an-case .an-cta h3 { margin: 0 0 6px; font-size: clamp(26px, 3.2vw, 38px); line-height: 1.15; font-weight: 700; letter-spacing: -.015em; position: relative; }
1202    .an-case .an-cta p { margin: 0; color: #dbe6f5; font-size: 18px; position: relative; }
1203    .an-case .an-btn { position: relative; display: inline-block; background: var(--orange); color: var(--navy); font-weight: 700; font-size: 18px; text-decoration: none; padding: 16px 32px; border-radius: 999px; transition: transform .2s ease, box-shadow .2s ease; }
1204    .an-case .an-btn:hover, .an-case .an-btn:focus-visible { transform: translateY(-2px); box-shadow: 0 14px 30px rgba(239,146,69,.35); }
1205    .an-case .an-btn:focus-visible { outline: 3px solid var(--water-300); outline-offset: 3px; }
1206
1207    @media (max-width: 900px) {
1208      .an-case .an-hero { grid-template-columns: 1fr; }
1209      .an-case .an-block { grid-template-columns: 1fr; gap: 16px; }
1210      .an-case .an-cards { grid-template-columns: 1fr; }
1211    }
1212    @media (prefers-reduced-motion: reduce) { .an-case .an-btn { transition: none; } }
1213</style>
1214<section class="an-case" id="caso-cap-net" aria-labelledby="an-case-title">
1215  
1216
1217  
1218  <svg class="an-strokes" viewBox="0 0 1440 2400" preserveAspectRatio="xMidYMin slice" aria-hidden="true">
1219    <g fill="none" stroke-linecap="round">
1220      <path d="M -160 200 C 240 60, 520 420, 860 260 S 1300 120, 1640 300" stroke="#6f51b5" stroke-width="11" opacity=".10"/>
1221      <path d="M -200 1100 C 180 900, 480 1240, 800 1020 S 1240 760, 1640 880" stroke="#2b6cc4" stroke-width="15" opacity=".10"/>
1222      <path d="M -120 1650 C 260 1540, 460 1780, 760 1660 S 1180 1760, 1600 1620" stroke="#7fb0e8" stroke-width="8" opacity=".18"/>
1223      <path d="M 1640 2250 C 1300 2360, 1060 2060, 760 2200 S 260 2380, -160 2260" stroke="#faa95b" stroke-width="17" opacity=".18"/>
1224    </g>
1225  </svg>
1226
1227  <div class="an-wrap">
1228    <header>
1229      <div class="an-eyebrow">
1230        <span class="an-kicker">Caso de éxito</span>
1231        <img class="an-logo" src="/media/case-studies/cap-net/capnet-logo.png" alt="Cap-Net" width="133" height="44">
1232      </div>
1233      <h1 id="an-case-title">Cap-Net: conocimiento sobre el agua, con <span class="an-hl">alcance global</span></h1>
1234      <p class="an-lead">Cómo un campus Open edX dedicado, sobre infraestructura AWS y con analítica de aprendizaje Panorama, acompañó la evolución de una iniciativa de formación consolidada para llevar el desarrollo de capacidades en gestión del agua a profesionales de todo el mundo.</p>
1235    </header>
1236
1237    <div class="an-hero">
1238      <div class="an-video">
1239        <iframe src="https://player.vimeo.com/video/1230306720?dnt=1&amp;title=0&amp;byline=0&amp;portrait=0" title="Video" loading="lazy" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9"></iframe>
1240      </div>
1241      <aside class="an-facts" aria-label="Ficha del proyecto">
1242        <dl>
1243          <div><dt>Cliente</dt><dd>Cap-Net, red internacional de desarrollo de capacidades para la gestión sostenible del agua</dd></div>
1244          <div><dt>Proyecto</dt><dd>Campus Virtual de Cap-Net</dd></div>
1245          <div><dt>Desde</dt><dd>2019</dd></div>
1246          <div><dt>Plataforma</dt><dd>Open edX</dd></div>
1247          <div><dt>Infraestructura</dt><dd>AWS dedicada</dd></div>
1248          <div><dt>Analítica</dt><dd>Panorama</dd></div>
1249        </dl>
1250      </aside>
1251    </div>
1252
1253    <div class="an-block">
1254      <h3>El desafío</h3>
1255      <div>
1256        <p class="an-big">Una misión en crecimiento necesitaba un campus escalable.</p>
1257        <p>Cap-Net forma a profesionales, educadores y organizaciones en gestión del agua y saneamiento. Su actividad de formación en línea ya estaba en marcha, pero en 2019 necesitaba <strong>ampliar su alcance global</strong>, y su campus basado en WordPress estaba limitando ese crecimiento.</p>
1258        <p>El objetivo era rediseñar el campus existente: pasar de un sitio que se había quedado chico a una plataforma preparada para sostener un portafolio de cursos en crecimiento y una comunidad internacional de participantes.</p>
1259      </div>
1260    </div>
1261
1262    <div class="an-block">
1263      <h3>La solución</h3>
1264      <div>
1265        <p>Aulasneo diseñó e implementó un <strong>campus dedicado sobre Open edX</strong>, con la identidad de Cap-Net, pensado para descubrir cursos, aprender y participar.</p>
1266        <div class="an-cards">
1267          <article class="an-card">
1268            <div class="an-ic" aria-hidden="true"><svg width="28" height="28" viewBox="0 0 48 48"><path d="M24 5 C16 17 10 25 10 31 A14 14 0 0 0 38 31 C38 25 32 17 24 5 Z" fill="none" stroke="#2b6cc4" stroke-width="4" stroke-linejoin="round"/></svg></div>
1269            <h4>Campus Open edX</h4>
1270            <p>Un entorno de aprendizaje claro y organizado, con la marca de Cap-Net: catálogo de cursos, lecciones e interacción entre participantes.</p>
1271          </article>
1272          <article class="an-card" style="--c:#6f51b5">
1273            <div class="an-ic" aria-hidden="true"><svg width="28" height="28" viewBox="0 0 48 48"><path d="M12 36 C4 36 4 25 12 24 C12 16 22 12 27 18 C31 11 43 14 42 24 C48 25 47 36 40 36 Z" fill="none" stroke="#4e359e" stroke-width="4" stroke-linejoin="round"/></svg></div>
1274            <h4>Infraestructura AWS dedicada</h4>
1275            <p>Una base propia en la nube, preparada para acompañar el crecimiento de la oferta formativa.</p>
1276          </article>
1277          <article class="an-card" style="--c:#ef9245">
1278            <div class="an-ic" aria-hidden="true"><svg width="28" height="28" viewBox="0 0 48 48"><path d="M8 40 V8 M8 40 H42" stroke="#2b6cc4" stroke-width="4" stroke-linecap="round" fill="none"/><path d="M14 32 L22 22 L30 27 L40 14" stroke="#c96a1f" stroke-width="4" stroke-linecap="round" stroke-linejoin="round" fill="none"/></svg></div>
1279            <h4>Analítica Panorama</h4>
1280            <p>Trayectorias de aprendizaje, progreso de los cursos y participación, para entender cómo aprenden los participantes y mejorar la formación.</p>
1281          </article>
1282        </div>
1283      </div>
1284    </div>
1285
1286    <div class="an-block">
1287      <h3>El impacto</h3>
1288      <div>
1289        <p class="an-big">Aprender juntos para una gestión sostenible del agua.</p>
1290        <ul class="an-list">
1291          <li><strong>Mayor alcance:</strong> un campus preparado para llegar a participantes de distintas regiones.</li>
1292          <li><strong>Un portafolio de cursos en crecimiento,</strong> sostenido por una plataforma escalable.</li>
1293          <li><strong>Colaboración entre organizaciones</strong> en torno a los cursos de Cap-Net.</li>
1294          <li><strong>Mejor comprensión de la participación</strong> de los estudiantes gracias a Panorama.</li>
1295        </ul>
1296        <div class="an-orgs">
1297          <small>Organizaciones que participan en cursos de Cap-Net</small>
1298          <ul>
1299            <li>UNICEF</li><li>PNUD</li><li>ONU-Hábitat</li><li>ANSI</li><li>Global Water Partnership</li>
1300          </ul>
1301        </div>
1302        <span class="an-sdg"><svg width="20" height="20" viewBox="0 0 48 48" aria-hidden="true"><path d="M24 5 C16 17 10 25 10 31 A14 14 0 0 0 38 31 C38 25 32 17 24 5 Z" fill="none" stroke="#062b60" stroke-width="5" stroke-linejoin="round"/></svg>Apoyo al ODS 6 · Agua limpia y saneamiento</span>
1303      </div>
1304    </div>
1305
1306    <figure class="an-quote">
1307      <span class="an-mark" aria-hidden="true">“</span>
1308      <blockquote>
1309        <p>La alianza con aulasneo ha sido un habilitador y un <mark>cambio decisivo</mark> para nuestras actividades de aprendizaje en línea, y nos ayuda a fortalecer los esfuerzos de desarrollo de capacidades <mark>en todo el mundo</mark>.</p>
1310        <p class="an-orig" lang="en">“The partnership with aulasneo has been an enabler and game changer for our online learning activities, helping us strengthen capacity development efforts around the world.”</p>
1311      </blockquote>
1312      <figcaption>
1313        <img src="/media/case-studies/cap-net/capnet-logo.png" alt="Cap-Net" width="121" height="40">
1314        <div>
1315          <b>Damian Indij</b>
1316          <span>Especialista en Desarrollo de Capacidades, Cap&#8209;Net</span>
1317          <em>Publicación en LinkedIn · traducción del original en inglés</em>
1318        </div>
1319      </figcaption>
1320    </figure>
1321
1322    <div class="an-cta">
1323      <div>
1324        <h3>Construyamos tu plataforma de aprendizaje.</h3>
1325        <p>10 años ayudando a que el aprendizaje crezca. ¿Listo para escalar tu impacto?</p>
1326      </div>
1327      <a class="an-btn" href="/es/contact/">Hablemos</a>
1328    </div>
1329  </div>
1330</section>
1331`;function zj(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Cap-Net: conocimiento sobre el agua, alcance global | Aulasneo",description:"Cómo un campus Open edX dedicado, sobre infraestructura AWS y con analítica de aprendizaje Panorama, acompañó la evolución de una iniciativa de formación…",canonical:"https://aulasneo.com/es/cap-net-casos-de-exito-con-aulasneo/",hreflangEn:"https://aulasneo.com/cap-net-success-stories-with-aulasneo/",ogImage:"https://aulasneo.com/media/case-studies/cap-net/capnet-video-poster-es.jpg"}),t.jsx(mn,{html:Ej,lang:"es"})]})}const qj=`<style>
1332.ancs {
1333    --ancs-navy: #062B60; --ancs-violet: #4E359E; --ancs-violet-400: #6F51B5;
1334    --ancs-orange: #EF9245; --ancs-orange-300: #FAA95B; --ancs-blue-600: #24497F;
1335    --ancs-white: #FFFFFF; --ancs-gray: #F2F2F2; --ancs-gray-300: #D5DAE2;
1336    font-family: "Quicksand", ui-sans-serif, system-ui, sans-serif;
1337    color: var(--ancs-navy); background: var(--ancs-white);
1338    padding: clamp(56px, 8vw, 112px) 0; line-height: 1.6; -webkit-font-smoothing: antialiased;
1339  }
1340  .ancs *, .ancs *::before, .ancs *::after { box-sizing: border-box; }
1341  .ancs-wrap { max-width: 1160px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); }
1342  .ancs-eyebrow {
1343    display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px;
1344    font-size: 14px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ancs-blue-600);
1345  }
1346  .ancs-eyebrow::before { content: ""; width: 28px; height: 4px; border-radius: 2px; background: var(--ancs-orange); }
1347  .ancs-head { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: start; }
1348  .ancs-title { margin: 0; font-size: clamp(36px, 5.4vw, 64px); font-weight: 700; line-height: 1.1; letter-spacing: -0.025em; }
1349  /* Brand emphasis: the word sits ON the orange pill in navy type (never orange text on white). */
1350  .ancs-loz { display: inline-block; padding: 0 0.32em 0.06em; margin-top: 0.12em; border-radius: 999px; background: var(--ancs-orange); color: var(--ancs-navy); }
1351  .ancs-logo { width: 104px; height: auto; flex: none; }
1352  .ancs-lead { max-width: 760px; margin: 24px 0 0; font-size: clamp(18px, 2vw, 21px); font-weight: 500; color: var(--ancs-blue-600); }
1353  .ancs-tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 0; padding: 0; list-style: none; }
1354  .ancs-tags li { padding: 7px 16px; border-radius: 999px; background: var(--ancs-gray); font-size: 14px; font-weight: 600; color: var(--ancs-navy); }
1355
1356  .ancs-video {
1357    position: relative; margin: clamp(36px, 5vw, 56px) 0 0; border-radius: 22px; overflow: hidden;
1358    background: var(--ancs-navy); box-shadow: 0 30px 70px rgba(6, 43, 96, 0.17); aspect-ratio: 16 / 9;
1359  }.ancs-video video, .ancs-video iframe { display: block; width: 100%; height: 100%; object-fit: cover; }
1360  .ancs-video-note { margin: 12px 0 0; font-size: 14px; font-weight: 500; color: var(--ancs-blue-600); text-align: center; }
1361
1362  .ancs-h3 { margin: clamp(56px, 7vw, 88px) 0 8px; font-size: clamp(26px, 3.2vw, 36px); font-weight: 700; line-height: 1.2; letter-spacing: -0.015em; }
1363  .ancs-sub { margin: 0; max-width: 700px; font-weight: 500; color: var(--ancs-blue-600); }
1364
1365  /* Timeline: two milestones */
1366  .ancs-timeline { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 36px 0 0; padding: 0; list-style: none; }
1367  .ancs-timeline::before {
1368    content: ""; position: absolute; left: 24px; right: 24px; top: 23px; height: 6px; border-radius: 3px;
1369    background: linear-gradient(90deg, var(--ancs-orange) 0%, var(--ancs-orange) 50%, var(--ancs-violet-400) 50%, var(--ancs-violet-400) 100%);
1370  }
1371  .ancs-step { position: relative; padding-top: 64px; }
1372  .ancs-node {
1373    position: absolute; left: 0; top: 0; width: 52px; height: 52px; border-radius: 50%;
1374    background: var(--ancs-white); border: 6px solid var(--ancs-orange); display: grid; place-items: center;
1375  }
1376  .ancs-node::after { content: ""; width: 16px; height: 16px; border-radius: 50%; background: var(--ancs-orange); }
1377  .ancs-step--2020 .ancs-node { border-color: var(--ancs-violet); }
1378  .ancs-step--2020 .ancs-node::after { background: var(--ancs-violet); }
1379  .ancs-card { height: 100%; padding: 28px 28px 30px; border-radius: 22px; background: var(--ancs-white); box-shadow: 0 18px 44px rgba(6, 43, 96, 0.12); border-top: 10px solid var(--ancs-orange); }
1380  .ancs-step--2020 .ancs-card { border-top-color: var(--ancs-violet); }
1381  .ancs-date { display: inline-block; margin: 0 0 6px; padding: 4px 14px; border-radius: 999px; font-size: 15px; font-weight: 700; background: var(--ancs-orange); color: var(--ancs-navy); }
1382  .ancs-step--2020 .ancs-date { background: var(--ancs-violet); color: var(--ancs-white); }
1383  .ancs-card h4 { margin: 10px 0 14px; font-size: 22px; font-weight: 700; line-height: 1.25; }
1384  .ancs-label { margin: 16px 0 4px; font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ancs-blue-600); }
1385  .ancs-card p { margin: 0; font-weight: 500; }
1386
1387  /* What we implemented */
1388  .ancs-feats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 32px 0 0; padding: 0; list-style: none; }
1389  .ancs-feat { padding: 26px 22px; border-radius: 22px; background: var(--ancs-gray); }
1390  .ancs-ic { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--ancs-orange); margin-bottom: 16px; }
1391  .ancs-feat:nth-child(4) .ancs-ic { background: var(--ancs-violet); }
1392  .ancs-ic svg { width: 28px; height: 28px; }
1393  .ancs-feat h4 { margin: 0 0 6px; font-size: 19px; font-weight: 700; line-height: 1.25; }
1394  .ancs-feat p { margin: 0; font-size: 15.5px; font-weight: 500; color: var(--ancs-blue-600); }
1395
1396  /* Results */
1397  .ancs-results { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 32px; margin: 28px 0 0; padding: 0; list-style: none; }
1398  .ancs-results li { position: relative; padding-left: 44px; font-size: 18px; font-weight: 600; }
1399  .ancs-results li::before {
1400    content: ""; position: absolute; left: 0; top: 2px; width: 28px; height: 28px; border-radius: 50%; background: var(--ancs-orange)
1401      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23062B60' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat;
1402  }
1403
1404  /* CTA */
1405  .ancs-cta {
1406    position: relative; overflow: hidden; margin: clamp(56px, 7vw, 88px) 0 0; padding: clamp(36px, 5vw, 56px);
1407    border-radius: 28px; background: var(--ancs-navy); color: var(--ancs-white);
1408    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px;
1409  }
1410  .ancs-cta::after {
1411    content: ""; position: absolute; right: -80px; bottom: -120px; width: 420px; height: 260px; border: 14px solid var(--ancs-orange-300);
1412    border-color: var(--ancs-orange-300) transparent transparent transparent; border-radius: 50%; opacity: 0.55; transform: rotate(-14deg); pointer-events: none;
1413  }
1414  .ancs-cta h3 { margin: 0; max-width: 620px; font-size: clamp(24px, 3vw, 34px); font-weight: 700; line-height: 1.2; }
1415  .ancs-cta p { margin: 8px 0 0; font-weight: 500; color: rgba(244, 248, 253, 0.86); }
1416  .ancs-btn {
1417    position: relative; z-index: 1; display: inline-block; padding: 18px 34px; border-radius: 999px;
1418    background: var(--ancs-orange); color: var(--ancs-navy); font-size: 18px; font-weight: 700; text-decoration: none; white-space: nowrap;
1419    transition: transform 0.2s ease, box-shadow 0.2s ease;
1420  }
1421  .ancs-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(239, 146, 69, 0.35); }
1422  .ancs-btn:focus-visible { outline: 3px solid var(--ancs-white); outline-offset: 3px; }
1423
1424  @media (max-width: 900px) {
1425    .ancs-feats { grid-template-columns: repeat(2, 1fr); }
1426  }
1427  @media (max-width: 680px) {
1428    .ancs-head { grid-template-columns: 1fr; }
1429    .ancs-logo { width: 80px; order: -1; }
1430    .ancs-timeline, .ancs-results, .ancs-feats { grid-template-columns: 1fr; }
1431    .ancs-timeline::before { left: 23px; right: auto; top: 24px; bottom: 24px; width: 6px; height: auto;
1432      background: linear-gradient(180deg, var(--ancs-orange) 0%, var(--ancs-orange) 50%, var(--ancs-violet-400) 50%, var(--ancs-violet-400) 100%); }
1433    .ancs-step { padding: 0 0 0 72px; }
1434    .ancs-btn { white-space: normal; text-align: center; width: 100%; }
1435  }
1436  @media (prefers-reduced-motion: reduce) { .ancs-btn { transition: none; } }
1437
1438  /* Holcim-only additions (ancs-hx-*): nothing here redefines a shared .ancs rule. */
1439  .ancs-hx-logo { border-radius: 18px; }
1440  .ancs-step.ancs-hx-alt .ancs-node { border-color: var(--ancs-violet); }
1441  .ancs-step.ancs-hx-alt .ancs-node::after { background: var(--ancs-violet); }
1442  .ancs-step.ancs-hx-alt .ancs-card { border-top-color: var(--ancs-violet); }
1443  .ancs-step.ancs-hx-alt .ancs-date { background: var(--ancs-violet); color: var(--ancs-white); }
1444  .ancs-feats.ancs-hx-feats { grid-template-columns: repeat(3, 1fr); }
1445  .ancs-feats.ancs-hx-feats .ancs-feat:nth-child(6) .ancs-ic { background: var(--ancs-violet); }
1446  .ancs-hx-topics { margin: 28px 0 0; font-weight: 600; }
1447  .ancs-hx-topics + .ancs-tags { margin-top: 12px; }
1448  .ancs-hx-visit { margin: 24px 0 0; font-weight: 500; color: var(--ancs-blue-600); }
1449  .ancs-hx-visit a { color: var(--ancs-violet); font-weight: 700; text-underline-offset: 3px; }
1450  @media (max-width: 900px) { .ancs-feats.ancs-hx-feats { grid-template-columns: repeat(2, 1fr); } }
1451  @media (max-width: 680px) { .ancs-feats.ancs-hx-feats { grid-template-columns: 1fr; } }
1452</style>
1453<section class="ancs" id="holcim-case" aria-labelledby="ancs-title-holcim-en" lang="en">
1454  <div class="ancs-wrap">
1455
1456    <header>
1457      <p class="ancs-eyebrow">Success story · Sustainable construction</p>
1458      <div class="ancs-head">
1459        <h1 class="ancs-title" id="ancs-title-holcim-en">Holcim Academy: one platform,<br><span class="ancs-loz">two audiences</span></h1>
1460        <img class="ancs-logo ancs-hx-logo" src="/media/case-studies/holcim-academy/holcim-academy-logo.png" alt="Holcim Academy logo" width="300" height="300" loading="lazy">
1461      </div>
1462      <p class="ancs-lead">
1463        Holcim, the Swiss building materials leader, wanted to share sustainable construction knowledge
1464        with professionals worldwide. Aulasneo built and runs the Holcim Sustainable Construction Academy on a
1465        managed Open edX platform that serves external professionals and Holcim employees in one place.
1466      </p>
1467      <ul class="ancs-tags" aria-label="Case topics">
1468        <li>Managed Open edX</li><li>Multilingual courses</li><li>Corporate SSO</li><li>Custom analytics</li>
1469      </ul>
1470    </header>
1471
1472    <figure class="ancs-video" style="margin-bottom: 0">
1473      <iframe src="https://player.vimeo.com/video/1230977228?dnt=1&amp;title=0&amp;byline=0&amp;portrait=0" title="Video: Holcim Academy, one platform, two audiences, global learning. An Aulasneo customer story." loading="lazy" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9"></iframe>
1474    </figure>
1475    <p class="ancs-video-note">60-second video with English subtitles.</p>
1476
1477    <h3 class="ancs-h3">Two audiences, one Academy</h3>
1478    <p class="ancs-sub">The Academy had to open sustainable construction learning to the wider industry and reach Holcim’s own global workforce, each audience with its own way in.</p>
1479
1480    <ol class="ancs-timeline">
1481      <li class="ancs-step">
1482        <span class="ancs-node" aria-hidden="true"></span>
1483        <article class="ancs-card">
1484          <span class="ancs-date">Public registration</span>
1485          <h4>Professionals worldwide</h4>
1486          <p>Architects, engineers and other built-environment professionals learning about low-carbon, circular and regenerative construction.</p>
1487          <p class="ancs-label">How they get in</p>
1488          <p>An open course catalogue and a registration form tailored to each learner’s professional role, seniority and sector experience.</p>
1489        </article>
1490      </li>
1491      <li class="ancs-step ancs-hx-alt">
1492        <span class="ancs-node" aria-hidden="true"></span>
1493        <article class="ancs-card">
1494          <span class="ancs-date">Corporate SSO</span>
1495          <h4>Holcim employees</h4>
1496          <p>Holcim’s global workforce, learning in the same Academy as the professional community.</p>
1497          <p class="ancs-label">How they get in</p>
1498          <p>Corporate single sign-on: employees enter with their Holcim accounts, with no separate registration.</p>
1499        </article>
1500      </li>
1501    </ol>
1502
1503    <h3 class="ancs-h3">What we implemented</h3>
1504    <ul class="ancs-feats ancs-hx-feats">
1505      <li class="ancs-feat">
1506        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><path d="M8 44 V10 L26 4 V44 M26 16 H40 V44 M4 44 H44" fill="none" stroke="#062B60" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/></svg></span>
1507        <h4>Managed Open edX</h4>
1508        <p>A dedicated Academy on Open edX, hosted and operated by Aulasneo.</p>
1509      </li>
1510      <li class="ancs-feat">
1511        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><path d="M40 22 A16 16 0 1 0 36 35" fill="none" stroke="#062B60" stroke-width="4" stroke-linecap="round"/><path d="M41 10 V22 H29" fill="none" stroke="#062B60" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg></span>
1512        <h4>Ongoing updates</h4>
1513        <p>Aulasneo manages the infrastructure and keeps the platform current with security updates.</p>
1514      </li>
1515      <li class="ancs-feat">
1516        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><path d="M6 8 H28 V26 H16 L9 32 V26 H6 Z M22 20 H42 V38 H39 V44 L32 38 H22 Z" fill="none" stroke="#062B60" stroke-width="4" stroke-linejoin="round"/></svg></span>
1517        <h4>Multilingual courses</h4>
1518        <p>Learners choose from English, Spanish, German, French and Azerbaijani.</p>
1519      </li>
1520      <li class="ancs-feat">
1521        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><rect x="9" y="21" width="30" height="22" rx="5" fill="none" stroke="#FFFFFF" stroke-width="4"/><path d="M15 21 V15 A9 9 0 0 1 33 15 V21" fill="none" stroke="#FFFFFF" stroke-width="4"/><circle cx="24" cy="32" r="3.5" fill="#FFFFFF"/></svg></span>
1522        <h4>Corporate single sign-on</h4>
1523        <p>Holcim employees enter the Academy with their corporate accounts.</p>
1524      </li>
1525      <li class="ancs-feat">
1526        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><rect x="7" y="5" width="34" height="38" rx="5" fill="none" stroke="#062B60" stroke-width="4"/><path d="M14 15 H34 M14 24 H34 M14 33 H26" stroke="#062B60" stroke-width="3.5" stroke-linecap="round"/></svg></span>
1527        <h4>Tailored registration</h4>
1528        <p>A sign-up form that captures each learner’s role, seniority and sector experience.</p>
1529      </li>
1530      <li class="ancs-feat">
1531        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><path d="M6 6 V42 H44" fill="none" stroke="#FFFFFF" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><rect x="13" y="26" width="7" height="12" rx="2" fill="#FFFFFF"/><rect x="24" y="16" width="7" height="22" rx="2" fill="#FFFFFF"/><rect x="35" y="21" width="7" height="17" rx="2" fill="#FFFFFF"/></svg></span>
1532        <h4>Custom analytics</h4>
1533        <p>Dashboards that help Holcim understand reach, participation and engagement.</p>
1534      </li>
1535    </ul>
1536    <p class="ancs-hx-topics">Course topics include:</p>
1537    <ul class="ancs-tags" aria-label="Course topics">
1538      <li>Sustainable construction</li><li>Low-carbon cement and concrete</li><li>Circular construction</li><li>Life-cycle stages</li><li>Designing with concrete</li><li>Regenerative cities</li>
1539    </ul>
1540
1541    <h3 class="ancs-h3">Results</h3>
1542    <ul class="ancs-results">
1543      <li>Thousands of people worldwide have accessed the Academy.</li>
1544      <li>External professionals and Holcim employees learn in the same environment.</li>
1545      <li>Courses available in five languages.</li>
1546      <li>Custom analytics help Holcim evaluate its initiative.</li>
1547    </ul>
1548    <p class="ancs-hx-visit">Visit the Academy: <a href="https://www.holcimacademy.com/" target="_blank" rel="noopener">holcimacademy.com</a></p>
1549
1550    <aside class="ancs-cta" aria-label="Contact">
1551      <div>
1552        <h3>Build your learning initiative with Aulasneo</h3>
1553        <p>Learning, built to scale. One platform for every audience you need to reach.</p>
1554      </div>
1555      <a class="ancs-btn" href="/contact/">Contact us</a>
1556    </aside>
1557
1558  </div>
1559</section>
1560`;function Pj(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Holcim Academy: one platform, two audiences | Aulasneo",description:"Holcim, the Swiss building materials leader, wanted to share sustainable construction knowledge with professionals worldwide.",canonical:"https://aulasneo.com/holcim-academy-success-stories-with-aulasneo/",hreflangEs:"https://aulasneo.com/es/holcim-academy-casos-de-exito-con-aulasneo/",ogImage:"https://aulasneo.com/media/case-studies/holcim-academy/holcim-case-en-poster.jpg"}),t.jsx(mn,{html:qj,lang:"en"})]})}const Tj=`<style>
1561.ancs {
1562    --ancs-navy: #062B60; --ancs-violet: #4E359E; --ancs-violet-400: #6F51B5;
1563    --ancs-orange: #EF9245; --ancs-orange-300: #FAA95B; --ancs-blue-600: #24497F;
1564    --ancs-white: #FFFFFF; --ancs-gray: #F2F2F2; --ancs-gray-300: #D5DAE2;
1565    font-family: "Quicksand", ui-sans-serif, system-ui, sans-serif;
1566    color: var(--ancs-navy); background: var(--ancs-white);
1567    padding: clamp(56px, 8vw, 112px) 0; line-height: 1.6; -webkit-font-smoothing: antialiased;
1568  }
1569  .ancs *, .ancs *::before, .ancs *::after { box-sizing: border-box; }
1570  .ancs-wrap { max-width: 1160px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); }
1571  .ancs-eyebrow {
1572    display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px;
1573    font-size: 14px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ancs-blue-600);
1574  }
1575  .ancs-eyebrow::before { content: ""; width: 28px; height: 4px; border-radius: 2px; background: var(--ancs-orange); }
1576  .ancs-head { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: start; }
1577  .ancs-title { margin: 0; font-size: clamp(36px, 5.4vw, 64px); font-weight: 700; line-height: 1.1; letter-spacing: -0.025em; }
1578  /* Brand emphasis: the word sits ON the orange pill in navy type (never orange text on white). */
1579  .ancs-loz { display: inline-block; padding: 0 0.32em 0.06em; margin-top: 0.12em; border-radius: 999px; background: var(--ancs-orange); color: var(--ancs-navy); }
1580  .ancs-logo { width: 104px; height: auto; flex: none; }
1581  .ancs-lead { max-width: 760px; margin: 24px 0 0; font-size: clamp(18px, 2vw, 21px); font-weight: 500; color: var(--ancs-blue-600); }
1582  .ancs-tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 0; padding: 0; list-style: none; }
1583  .ancs-tags li { padding: 7px 16px; border-radius: 999px; background: var(--ancs-gray); font-size: 14px; font-weight: 600; color: var(--ancs-navy); }
1584
1585  .ancs-video {
1586    position: relative; margin: clamp(36px, 5vw, 56px) 0 0; border-radius: 22px; overflow: hidden;
1587    background: var(--ancs-navy); box-shadow: 0 30px 70px rgba(6, 43, 96, 0.17); aspect-ratio: 16 / 9;
1588  }.ancs-video video, .ancs-video iframe { display: block; width: 100%; height: 100%; object-fit: cover; }
1589  .ancs-video-note { margin: 12px 0 0; font-size: 14px; font-weight: 500; color: var(--ancs-blue-600); text-align: center; }
1590
1591  .ancs-h3 { margin: clamp(56px, 7vw, 88px) 0 8px; font-size: clamp(26px, 3.2vw, 36px); font-weight: 700; line-height: 1.2; letter-spacing: -0.015em; }
1592  .ancs-sub { margin: 0; max-width: 700px; font-weight: 500; color: var(--ancs-blue-600); }
1593
1594  /* Timeline: two milestones */
1595  .ancs-timeline { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 36px 0 0; padding: 0; list-style: none; }
1596  .ancs-timeline::before {
1597    content: ""; position: absolute; left: 24px; right: 24px; top: 23px; height: 6px; border-radius: 3px;
1598    background: linear-gradient(90deg, var(--ancs-orange) 0%, var(--ancs-orange) 50%, var(--ancs-violet-400) 50%, var(--ancs-violet-400) 100%);
1599  }
1600  .ancs-step { position: relative; padding-top: 64px; }
1601  .ancs-node {
1602    position: absolute; left: 0; top: 0; width: 52px; height: 52px; border-radius: 50%;
1603    background: var(--ancs-white); border: 6px solid var(--ancs-orange); display: grid; place-items: center;
1604  }
1605  .ancs-node::after { content: ""; width: 16px; height: 16px; border-radius: 50%; background: var(--ancs-orange); }
1606  .ancs-step--2020 .ancs-node { border-color: var(--ancs-violet); }
1607  .ancs-step--2020 .ancs-node::after { background: var(--ancs-violet); }
1608  .ancs-card { height: 100%; padding: 28px 28px 30px; border-radius: 22px; background: var(--ancs-white); box-shadow: 0 18px 44px rgba(6, 43, 96, 0.12); border-top: 10px solid var(--ancs-orange); }
1609  .ancs-step--2020 .ancs-card { border-top-color: var(--ancs-violet); }
1610  .ancs-date { display: inline-block; margin: 0 0 6px; padding: 4px 14px; border-radius: 999px; font-size: 15px; font-weight: 700; background: var(--ancs-orange); color: var(--ancs-navy); }
1611  .ancs-step--2020 .ancs-date { background: var(--ancs-violet); color: var(--ancs-white); }
1612  .ancs-card h4 { margin: 10px 0 14px; font-size: 22px; font-weight: 700; line-height: 1.25; }
1613  .ancs-label { margin: 16px 0 4px; font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ancs-blue-600); }
1614  .ancs-card p { margin: 0; font-weight: 500; }
1615
1616  /* What we implemented */
1617  .ancs-feats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 32px 0 0; padding: 0; list-style: none; }
1618  .ancs-feat { padding: 26px 22px; border-radius: 22px; background: var(--ancs-gray); }
1619  .ancs-ic { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--ancs-orange); margin-bottom: 16px; }
1620  .ancs-feat:nth-child(4) .ancs-ic { background: var(--ancs-violet); }
1621  .ancs-ic svg { width: 28px; height: 28px; }
1622  .ancs-feat h4 { margin: 0 0 6px; font-size: 19px; font-weight: 700; line-height: 1.25; }
1623  .ancs-feat p { margin: 0; font-size: 15.5px; font-weight: 500; color: var(--ancs-blue-600); }
1624
1625  /* Results */
1626  .ancs-results { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 32px; margin: 28px 0 0; padding: 0; list-style: none; }
1627  .ancs-results li { position: relative; padding-left: 44px; font-size: 18px; font-weight: 600; }
1628  .ancs-results li::before {
1629    content: ""; position: absolute; left: 0; top: 2px; width: 28px; height: 28px; border-radius: 50%; background: var(--ancs-orange)
1630      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23062B60' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat;
1631  }
1632
1633  /* CTA */
1634  .ancs-cta {
1635    position: relative; overflow: hidden; margin: clamp(56px, 7vw, 88px) 0 0; padding: clamp(36px, 5vw, 56px);
1636    border-radius: 28px; background: var(--ancs-navy); color: var(--ancs-white);
1637    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px;
1638  }
1639  .ancs-cta::after {
1640    content: ""; position: absolute; right: -80px; bottom: -120px; width: 420px; height: 260px; border: 14px solid var(--ancs-orange-300);
1641    border-color: var(--ancs-orange-300) transparent transparent transparent; border-radius: 50%; opacity: 0.55; transform: rotate(-14deg); pointer-events: none;
1642  }
1643  .ancs-cta h3 { margin: 0; max-width: 620px; font-size: clamp(24px, 3vw, 34px); font-weight: 700; line-height: 1.2; }
1644  .ancs-cta p { margin: 8px 0 0; font-weight: 500; color: rgba(244, 248, 253, 0.86); }
1645  .ancs-btn {
1646    position: relative; z-index: 1; display: inline-block; padding: 18px 34px; border-radius: 999px;
1647    background: var(--ancs-orange); color: var(--ancs-navy); font-size: 18px; font-weight: 700; text-decoration: none; white-space: nowrap;
1648    transition: transform 0.2s ease, box-shadow 0.2s ease;
1649  }
1650  .ancs-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(239, 146, 69, 0.35); }
1651  .ancs-btn:focus-visible { outline: 3px solid var(--ancs-white); outline-offset: 3px; }
1652
1653  @media (max-width: 900px) {
1654    .ancs-feats { grid-template-columns: repeat(2, 1fr); }
1655  }
1656  @media (max-width: 680px) {
1657    .ancs-head { grid-template-columns: 1fr; }
1658    .ancs-logo { width: 80px; order: -1; }
1659    .ancs-timeline, .ancs-results, .ancs-feats { grid-template-columns: 1fr; }
1660    .ancs-timeline::before { left: 23px; right: auto; top: 24px; bottom: 24px; width: 6px; height: auto;
1661      background: linear-gradient(180deg, var(--ancs-orange) 0%, var(--ancs-orange) 50%, var(--ancs-violet-400) 50%, var(--ancs-violet-400) 100%); }
1662    .ancs-step { padding: 0 0 0 72px; }
1663    .ancs-btn { white-space: normal; text-align: center; width: 100%; }
1664  }
1665  @media (prefers-reduced-motion: reduce) { .ancs-btn { transition: none; } }
1666
1667  /* Holcim-only additions (ancs-hx-*): nothing here redefines a shared .ancs rule. */
1668  .ancs-hx-logo { border-radius: 18px; }
1669  .ancs-step.ancs-hx-alt .ancs-node { border-color: var(--ancs-violet); }
1670  .ancs-step.ancs-hx-alt .ancs-node::after { background: var(--ancs-violet); }
1671  .ancs-step.ancs-hx-alt .ancs-card { border-top-color: var(--ancs-violet); }
1672  .ancs-step.ancs-hx-alt .ancs-date { background: var(--ancs-violet); color: var(--ancs-white); }
1673  .ancs-feats.ancs-hx-feats { grid-template-columns: repeat(3, 1fr); }
1674  .ancs-feats.ancs-hx-feats .ancs-feat:nth-child(6) .ancs-ic { background: var(--ancs-violet); }
1675  .ancs-hx-topics { margin: 28px 0 0; font-weight: 600; }
1676  .ancs-hx-topics + .ancs-tags { margin-top: 12px; }
1677  .ancs-hx-visit { margin: 24px 0 0; font-weight: 500; color: var(--ancs-blue-600); }
1678  .ancs-hx-visit a { color: var(--ancs-violet); font-weight: 700; text-underline-offset: 3px; }
1679  @media (max-width: 900px) { .ancs-feats.ancs-hx-feats { grid-template-columns: repeat(2, 1fr); } }
1680  @media (max-width: 680px) { .ancs-feats.ancs-hx-feats { grid-template-columns: 1fr; } }
1681</style>
1682<section class="ancs" id="caso-holcim" aria-labelledby="ancs-title-holcim-es" lang="es">
1683  <div class="ancs-wrap">
1684
1685    <header>
1686      <p class="ancs-eyebrow">Caso de éxito · Construcción sostenible</p>
1687      <div class="ancs-head">
1688        <h1 class="ancs-title" id="ancs-title-holcim-es">Holcim Academy: una plataforma,<br><span class="ancs-loz">dos audiencias</span></h1>
1689        <img class="ancs-logo ancs-hx-logo" src="/media/case-studies/holcim-academy/holcim-academy-logo.png" alt="Logo de Holcim Academy" width="300" height="300" loading="lazy">
1690      </div>
1691      <p class="ancs-lead">
1692        Holcim, líder suizo en materiales de construcción, quería compartir conocimiento sobre construcción
1693        sostenible con profesionales de todo el mundo. Aulasneo construyó y opera la Holcim Sustainable Construction
1694        Academy sobre una plataforma Open edX gestionada, que reúne en un mismo lugar a profesionales externos y a
1695        empleados de Holcim.
1696      </p>
1697      <ul class="ancs-tags" aria-label="Temas del caso">
1698        <li>Open edX gestionado</li><li>Cursos multilingües</li><li>SSO corporativo</li><li>Analíticas a medida</li>
1699      </ul>
1700    </header>
1701
1702    <figure class="ancs-video" style="margin-bottom: 0">
1703      <iframe src="https://player.vimeo.com/video/1230367358?dnt=1&amp;title=0&amp;byline=0&amp;portrait=0" title="Video: Holcim Academy, una plataforma, dos audiencias, aprendizaje global. Historia de cliente de Aulasneo." loading="lazy" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9"></iframe>
1704    </figure>
1705    <p class="ancs-video-note">Video de 69 segundos con subtítulos en español.</p>
1706
1707    <h3 class="ancs-h3">Dos audiencias, una Academia</h3>
1708    <p class="ancs-sub">La Academia debía abrir el aprendizaje sobre construcción sostenible a toda la industria y llegar a la fuerza laboral global de Holcim, cada audiencia con su propia forma de ingreso.</p>
1709
1710    <ol class="ancs-timeline">
1711      <li class="ancs-step">
1712        <span class="ancs-node" aria-hidden="true"></span>
1713        <article class="ancs-card">
1714          <span class="ancs-date">Registro público</span>
1715          <h4>
1715Profesionales de todo el mundo</h4>
1716          <p>Arquitectos, ingenieros y otros profesionales del entorno construido que aprenden sobre construcción baja en carbono, circular y regenerativa.</p>
1717          <p class="ancs-label">Cómo ingresan</p>
1718          <p>Un catálogo de cursos abierto y un formulario de registro adaptado al rol profesional, el nivel de experiencia y la experiencia en el sector de cada participante.</p>
1719        </article>
1720      </li>
1721      <li class="ancs-step ancs-hx-alt">
1722        <span class="ancs-node" aria-hidden="true"></span>
1723        <article class="ancs-card">
1724          <span class="ancs-date">SSO corporativo</span>
1725          <h4>Empleados de Holcim</h4>
1726          <p>La fuerza laboral global de Holcim, que aprende en la misma Academia que la comunidad profesional.</p>
1727          <p class="ancs-label">Cómo ingresan</p>
1728          <p>Inicio de sesión único corporativo: los empleados ingresan con sus cuentas de Holcim, sin un registro aparte.</p>
1729        </article>
1730      </li>
1731    </ol>
1732
1733    <h3 class="ancs-h3">Qué implementamos</h3>
1734    <ul class="ancs-feats ancs-hx-feats">
1735      <li class="ancs-feat">
1736        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><path d="M8 44 V10 L26 4 V44 M26 16 H40 V44 M4 44 H44" fill="none" stroke="#062B60" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/></svg></span>
1737        <h4>Open edX gestionado</h4>
1738        <p>Una Academia propia sobre Open edX, alojada y operada por Aulasneo.</p>
1739      </li>
1740      <li class="ancs-feat">
1741        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><path d="M40 22 A16 16 0 1 0 36 35" fill="none" stroke="#062B60" stroke-width="4" stroke-linecap="round"/><path d="M41 10 V22 H29" fill="none" stroke="#062B60" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg></span>
1742        <h4>Actualizaciones continuas</h4>
1743        <p>Aulasneo gestiona la infraestructura y mantiene la plataforma al día con las actualizaciones de seguridad.</p>
1744      </li>
1745      <li class="ancs-feat">
1746        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><path d="M6 8 H28 V26 H16 L9 32 V26 H6 Z M22 20 H42 V38 H39 V44 L32 38 H22 Z" fill="none" stroke="#062B60" stroke-width="4" stroke-linejoin="round"/></svg></span>
1747        <h4>Cursos multilingües</h4>
1748        <p>Los participantes eligen entre inglés, español, alemán, francés y azerí.</p>
1749      </li>
1750      <li class="ancs-feat">
1751        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><rect x="9" y="21" width="30" height="22" rx="5" fill="none" stroke="#FFFFFF" stroke-width="4"/><path d="M15 21 V15 A9 9 0 0 1 33 15 V21" fill="none" stroke="#FFFFFF" stroke-width="4"/><circle cx="24" cy="32" r="3.5" fill="#FFFFFF"/></svg></span>
1752        <h4>Inicio de sesión único corporativo</h4>
1753        <p>Los empleados de Holcim ingresan a la Academia con sus cuentas corporativas.</p>
1754      </li>
1755      <li class="ancs-feat">
1756        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><rect x="7" y="5" width="34" height="38" rx="5" fill="none" stroke="#062B60" stroke-width="4"/><path d="M14 15 H34 M14 24 H34 M14 33 H26" stroke="#062B60" stroke-width="3.5" stroke-linecap="round"/></svg></span>
1757        <h4>Registro a medida</h4>
1758        <p>Un formulario que recoge el rol, el nivel de experiencia y la experiencia en el sector de cada participante.</p>
1759      </li>
1760      <li class="ancs-feat">
1761        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><path d="M6 6 V42 H44" fill="none" stroke="#FFFFFF" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><rect x="13" y="26" width="7" height="12" rx="2" fill="#FFFFFF"/><rect x="24" y="16" width="7" height="22" rx="2" fill="#FFFFFF"/><rect x="35" y="21" width="7" height="17" rx="2" fill="#FFFFFF"/></svg></span>
1762        <h4>Analíticas a medida</h4>
1763        <p>Tableros que ayudan a Holcim a comprender el alcance, la participación y el compromiso.</p>
1764      </li>
1765    </ul>
1766    <p class="ancs-hx-topics">Entre los temas de los cursos:</p>
1767    <ul class="ancs-tags" aria-label="Temas de los cursos">
1768      <li>Construcción sostenible</li><li>Cemento y hormigón bajos en carbono</li><li>Construcción circular</li><li>Etapas del ciclo de vida</li><li>Diseño con hormigón</li><li>Ciudades regenerativas</li>
1769    </ul>
1770
1771    <h3 class="ancs-h3">Resultados</h3>
1772    <ul class="ancs-results">
1773      <li>
1773Miles de personas en todo el mundo han accedido a la Academia.</li>
1774      <li>Profesionales externos y empleados de Holcim aprenden en el mismo entorno.</li>
1775      <li>Cursos disponibles en cinco idiomas.</li>
1776      <li>Analíticas a medida para que Holcim evalúe su iniciativa.</li>
1777    </ul>
1778    <p class="ancs-hx-visit">Visita la Academia: <a href="https://www.holcimacademy.com/" target="_blank" rel="noopener">holcimacademy.com</a></p>
1779
1780    <aside class="ancs-cta" aria-label="Contacto">
1781      <div>
1782        <h3>Construye tu iniciativa de aprendizaje con Aulasneo</h3>
1783        <p>Aprendizaje, hecho para escalar. Una sola plataforma para cada audiencia a la que necesitas llegar.</p>
1784      </div>
1785      <a class="ancs-btn" href="/es/contact/">Contáctanos</a>
1786    </aside>
1787
1788  </div>
1789</section>
1790`;function Mj(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Holcim Academy: una plataforma, dos audiencias | Aulasneo",description:"Holcim, líder suizo en materiales de construcción, quería compartir conocimiento sobre construcción sostenible con profesionales de todo el mund
1790o.",canonical:"https://aulasneo.com/es/holcim-academy-casos-de-exito-con-aulasneo/",hreflangEn:"https://aulasneo.com/holcim-academy-success-stories-with-aulasneo/",ogImage:"https://aulasneo.com/media/case-studies/holcim-academy/holcim-case-es-poster.jpg"}),t.jsx(mn,{html:Tj,lang:"es"})]})}const Ij=`<style>
1791.an-cs {
1792    --an-navy: #062b60; --an-navy-900: #05225c; --an-blue: #2b6cc4; --an-violet: #6f51b5;
1793    --an-orange: #ef9245; --an-orange-300: #faa95b; --an-text: #4b5563; --an-line: #e5e9f0;
1794    --an-soft: #f4f7fb; --hh-cyan: #00d4fc; --hh-cyan-100: #dff8fe;
1795    font-family: "Quicksand", system-ui, sans-serif; color: var(--an-text); background: #fff;
1796    line-height: 1.65; font-size: 18px; -webkit-font-smoothing: antialiased;
1797  }
1798  .an-cs *, .an-cs *::before, .an-cs *::after { box-sizing: border-box; }
1799  .an-cs h1, .an-cs h2, .an-cs h3 { color: var(--an-navy); font-weight: 700; line-height: 1.15; margin: 0; }
1800  .an-cs p { margin: 0 0 1em; }
1801  .an-cs a { color: inherit; }
1802  .an-cs__wrap { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
1803  .an-cs__eyebrow { display: inline-block; font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--an-violet); margin-bottom: 18px; }
1804  .an-cs__hl { background: var(--an-orange-300); color: var(--an-navy); border-radius: 12px; padding: 0 .18em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
1805
1806  /* hero */
1807  .an-cs__hero { padding: 88px 0 56px; }
1808  .an-cs__logos { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; margin-bottom: 36px; }
1809  .an-cs__logos img { height: 64px; width: auto; display: block; }
1810  .an-cs__logos .sep { width: 2px; height: 52px; background: var(--an-line); border-radius: 2px; }
1811  .an-cs__hero h1 { font-size: clamp(36px, 5vw, 58px); letter-spacing: -.02em; max-width: 900px; }
1812  .an-cs__lead { font-size: clamp(19px, 2vw, 22px); font-weight: 500; color: var(--an-navy); opacity: .85; max-width: 820px; margin-top: 24px; }
1813
1814  /* fact strip */
1815  .an-cs__facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 44px; border: 1px solid var(--an-line); border-radius: 16px; overflow: hidden; }
1816  .an-cs__facts div { padding: 20px 22px; border-right: 1px solid var(--an-line); }
1817  .an-cs__facts div:last-child { border-right: 0; }
1818  .an-cs__facts dt { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--an-violet); margin-bottom: 4px; }
1819  .an-cs__facts dd { margin: 0; font-size: 16px; font-weight: 600; color: var(--an-navy); line-height: 1.4; }/* video */
1820  .an-cs__video, /* iframe */
1821  .an-cs__video { margin: 8px 0 72px; }.an-cs__video video, .an-cs__video iframe { width: 100%; display: block; border-radius: 22px; box-shadow: 0 30px 70px rgba(6, 43, 96, .17); background: #fff; }
1822  .an-cs__video figcaption { font-size: 15px; margin-top: 12px; text-align: center; }
1823
1824  /* course figures */
1825  .an-cs__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 88px; }
1826  .an-cs__stat { background: var(--an-soft); border-radius: 16px; padding: 26px 24px; border-top: 6px solid var(--hh-cyan); }
1827  .an-cs__stat b { display: block; font-size: 40px; line-height: 1.1; color: var(--an-navy); letter-spacing: -.02em; }
1828  .an-cs__stat span { display: block; margin-top: 6px; font-size: 16px; font-weight: 600; color: var(--an-navy); opacity: .8; }
1829
1830  /* story blocks */
1831  .an-cs__block { display: grid; grid-template-columns: 300px 1fr; gap: 56px; padding: 56px 0; border-top: 1px solid var(--an-line); }
1832  .an-cs__block h2 { font-size: clamp(28px, 3vw, 36px); letter-spacing: -.015em; }
1833  .an-cs__block .num { display: block; font-size: 14px; font-weight: 700; letter-spacing: .12em; color: var(--an-orange); margin-bottom: 10px; }
1834  .an-cs__list { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 12px; }
1835  .an-cs__list li { position: relative; padding-left: 34px; }
1836  .an-cs__list li::before { content: ""; position: absolute; left: 0; top: .42em; width: 20px; height: 20px; border-radius: 50%; background: var(--an-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23062b60' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat; }
1837
1838  /* solution cards */
1839  .an-cs__cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 8px; }
1840  .an-cs__card { background: #fff; border-radius: 16px; padding: 26px 26px 22px; box-shadow: 0 20px 25px -5px rgba(6, 43, 96, .08), 0 8px 10px -6px rgba(6, 43, 96, .08); border: 1px solid var(--an-line); }
1841  .an-cs__card .ic { width: 52px; height: 52px; border-radius: 50%; background: var(--an-orange); display: grid; place-items: center; margin-bottom: 16px; }
1842  .an-cs__card .ic svg { width: 28px; height: 28px; }
1843  .an-cs__card h3 { font-size: 21px; margin-bottom: 8px; }
1844  .an-cs__card p { font-size: 16.5px; margin: 0; }
1845
1846  /* modules */
1847  .an-cs__modules { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 20px; counter-reset: m; list-style: none; padding: 0; }
1848  .an-cs__modules li { counter-increment: m; display: flex; align-items: center; gap: 14px; background: var(--hh-cyan-100); border-radius: 14px; padding: 14px 16px; font-weight: 600; color: var(--an-navy); font-size: 16px; line-height: 1.35; }
1849  .an-cs__modules li::before { content: counter(m); flex: 0 0 38px; height: 38px; display: grid; place-items: center; background: var(--hh-cyan); color: var(--an-navy); font-weight: 700; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); }
1850
1851  /* tagline band */
1852  .an-cs__band { background: var(--an-navy); border-radius: 22px; padding: 56px 48px; margin: 40px 0 88px; text-align: center; }
1853  .an-cs__band q { display: block; quotes: none; font-size: clamp(28px, 3.4vw, 42px); font-weight: 700; color: #fff; line-height: 1.2; letter-spacing: -.015em; }
1854  .an-cs__band q em { font-style: normal;
1854 color: var(--an-orange-300); }
1855  .an-cs__band cite { display: block; margin-top: 16px; font-style: normal; font-weight: 600; color: rgba(255,255,255,.75); }
1856
1857  /* CTA */
1858  .an-cs__cta { text-align: center; padding: 0 0 104px; }
1859  .an-cs__cta h2 { font-size: clamp(30px, 3.6vw, 44px); letter-spacing: -.02em; }
1860  .an-cs__cta p { max-width: 640px; margin: 16px auto 32px; }
1861  .an-cs__btns { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
1862  .an-cs__btn { display: inline-block; padding: 16px 36px; border-radius: 9999px; font-weight: 700; font-size: 17px; text-decoration: none; }
1863  .an-cs__btn--primary { background: var(--an-orange); color: var(--an-navy); }
1864  .an-cs__btn--ghost { border: 2px solid var(--an-navy); color: var(--an-navy); }
1865  .an-cs__btn:hover { filter: brightness(1.05); }
1866
1867  @media (max-width: 900px) {
1868    .an-cs__facts { grid-template-columns: 1fr 1fr; }
1869    .an-cs__facts div:nth-child(2) { border-right: 0; }
1870    .an-cs__facts div:nth-child(-n+2) { border-bottom: 1px solid var(--an-line); }
1871    .an-cs__stats { grid-template-columns: 1fr 1fr; }
1872    .an-cs__block { grid-template-columns: 1fr; gap: 20px; }
1873    .an-cs__modules { grid-template-columns: 1fr 1fr; }
1874  }
1875  @media (max-width: 600px) {
1876    .an-cs { font-size: 17px; }
1877    .an-cs__hero { padding-top: 56px; }
1878    .an-cs__logos img { height: 48px; }
1879    .an-cs__logos { gap: 20px 24px; }
1880    .an-cs__logos .sep { display: none; }
1881    .an-cs__cards, .an-cs__modules { grid-template-columns: 1fr; }
1882    .an-cs__band { padding: 40px 24px; }
1883  }
1884
1885/* Site fix: on narrow phones the stat figures don't fit two per row. */
1886@media (max-width: 420px) { .an-cs__stats { grid-template-columns: 1fr; } }
1887</style>
1888<article class="an-cs" id="case-the-health-hive" lang="en">
1889  <div class="an-cs__wrap">
1890
1891    <header class="an-cs__hero">
1892      <div class="an-cs__logos">
1893        <img src="/media/case-studies/health-hive/health-hive-logo.svg" alt="The Health Hive" width="223" height="64">
1894        <span class="sep" aria-hidden="true"></span>
1895        <img src="/media/case-studies/health-hive/usyd-logo.svg" alt="The University of Sydney" width="186" height="64">
1896      </div>
1897      <span class="an-cs__eyebrow">Customer story · Higher education &amp; research</span>
1898      <h1>The Health Hive: where <span class="an-cs__hl">young minds</span> shape health research</h1>
1899      <p class="an-cs__lead">How Aulasneo built a free, open-access Open edX platform in The Health Hive’s own identity, so young people can learn to take part in the health research that affects their lives, and researchers can learn from them.</p>
1900
1901      <dl class="an-cs__facts">
1902        <div><dt>Client</dt><dd>The Health Hive, a University of Sydney project</dd></div>
1903        <div><dt>Learners</dt><dd>Young people aged 14–24, anywhere in the world</dd></div>
1904        <div><dt>Platform</dt><dd>Open edX, branded as The Health Hive</dd></div>
1905        <div><dt>Aulasneo delivered</dt><dd>Learning platform, custom surveys &amp; analytics dashboards</dd></div>
1906      </dl>
1907    </header>
1908
1909    <figure class="an-cs__video">
1910      <iframe src="https://player.vimeo.com/video/1230976344?dnt=1&amp;title=0&amp;byline=0&amp;portrait=0" title="Video" loading="lazy" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9"></iframe>
1911      <figcaption>The Health Hive, University of Sydney &amp; Aulasneo, in 60 seconds.</figcaption>
1912    </figure>
1913
1914    <section class="an-cs__stats" aria-label="The course at a glance">
1915      <div class="an-cs__stat"><b>6</b><span>self-paced modules</span></div>
1916      <div class="an-cs__stat"><b>~3 h</b><span>to complete, at your own pace</span></div>
1917      <div class="an-cs__stat"><b>Free</b><span>open access for any young person</span></div>
1918      <div class="an-cs__stat"><b>Co-created</b><span>with young people and research partners</span></div>
1919    </section>
1920
1921    <section class="an-cs__block">
1922      <div><span class="num">01</span><h2>The project</h2></div>
1923      <div>
1924        <p><strong>The Health Hive</strong> is a University of Sydney project that equips young people to play meaningful roles in research about their health and wellbeing: sharing ideas, giving feedback, collaborating on studies, or leading their own projects.</p>
1925        <p>Its foundational course, <em>Foundations in Public Health Research &amp; Advocacy for Young People</em>, was co-created by young people, public health researchers and partners. Young people weren’t an audie
1925nce to present to; they made decisions about the learning experience from the very first workshop.</p>
1926      </div>
1927    </section>
1928
1929    <section class="an-cs__block">
1930      <div><span class="num">02</span><h2>The challenge</h2></div>
1931      <div>
1932        <p>The team needed a home for the course that was as thoughtful as the course itself. It had to:</p>
1933        <ul class="an-cs__list">
1934          <li><strong>Feel like The Health Hive</strong>, not a generic LMS. The project, not the technology, is the brand young learners meet.</li>
1935          <li><strong>Be free and open</strong> to any young person, on a laptop or a phone.</li>
1936          <li><strong>Support self-paced learning</strong> that fits around school, study and work.</li>
1937          <li><strong>Serve the research</strong>, helping the team understand who is learning and how they engage, without exposing any individual learner.</li>
1938        </ul>
1939      </div>
1940    </section>
1941
1942    <section class="an-cs__block">
1943      <div><span class="num">03</span><h2>What Aulasneo built</h2></div>
1944      <div>
1945        <div class="an-cs__cards">
1946          <div class="an-cs__card">
1947            <div class="ic"><svg viewBox="0 0 48 48" aria-hidden="true"><path d="M24 4 L41 14 V34 L24 44 L7 34 V14 Z" fill="none" stroke="#062b60" stroke-width="4" stroke-linejoin="round"/><path d="M17 24 L22 29 L31 19" fill="none" stroke="#062b60" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg></div>
1948            <h3>A campus in the project’s own identity</h3>
1949            <p>An Open edX learning platform tailored to The Health Hive’s visual identity: its logo, colours and hive-inspired feel, from the course home to every lesson.</p>
1950          </div>
1951          <div class="an-cs__card">
1952            <div class="ic"><svg viewBox="0 0 48 48" aria-hidden="true"><rect x="6" y="10" width="26" height="20" rx="3" fill="none" stroke="#062b60" stroke-width="4"/><path d="M2 34 H36" stroke="#062b60" stroke-width="4" stroke-linecap="round"/><rect x="34" y="18" width="12" height="22" rx="3" fill="none" stroke="#062b60" stroke-width="4"/></svg></div>
1953            <h3>Free, open and self-paced</h3>
1954            <p>Open access for young people anywhere, designed for young learners and comfortable on desktop or mobile, so learning continues wherever they are.</p>
1955          </div>
1956          <div class="an-cs__card">
1957            <div class="ic"><svg viewBox="0 0 48 48" aria-hidden="true"><rect x="8" y="5" width="32" height="38" rx="5" fill="none" stroke="#062b60" stroke-width="4"/><path d="M15 16 H33 M15 24 H33 M15 32 H25" stroke="#062b60" stroke-width="4" stroke-linecap="round"/></svg></div>
1958            <h3>Custom in-course surveys</h3>
1959            <p>Short, optional surveys built into the learning flow, so the research team can hear from learners at the right moment in the course.</p>
1960          </div>
1961          <div class="an-cs__card">
1962            <div class="ic"><svg viewBox="0 0 48 48" aria-hidden="true"><path d="M6 6 V42 H44" fill="none" stroke="#062b60" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><rect x="13" y="26" width="7" height="12" rx="2" fill="#062b60"/><rect x="24" y="16" width="7" height="22" rx="2" fill="#062b60"/><rect x="35" y="21" width="7" height="17" rx="2" fill="#062b60"/></svg></div>
1963            <h3>Analytics dashboards</h3>
1964            <p>Aggregated, de-identified views of learner profiles, participation and engagement that show researchers the patterns, never an individual’s answers.</p>
1965          </div>
1966        </div>
1967
1968        <p style="margin-top:32px"><strong>Six modules, one coherent learning path</strong>, from why youth voices matter to taking part safely:</p>
1969        <ol class="an-cs__modules">
1970          <li>Why youth engagement matters</li>
1971          <li>What research is</li>
1972          <li>Understanding ethics</li>
1973          <li>Ways to get involved</li>
1974          <li>Applying what you learn</li>
1975          <li>Mentally safe participation</li>
1976        </ol>
1977      </div>
1978    </section>
1979
1980    <section class="an-cs__block">
1981      <div><span class="num">04</span><h2>The result</h2></div>
1982      <div>
1983        <p>The Health Hive’s course is live and open to young people around the world, in a platform that carries the project’s identity rather than a vendor’s. Learners get a wel
1983coming, self-paced path into public health research, ethics, advocacy and meaningful participation.</p>
1984        <p>For the research team, learning and research now feed each other. Survey responses and aggregated analytics help them understand the learner community, how people take part and how they engage with the course, and they inform the project’s next research steps.</p>
1985      </div>
1986    </section>
1987
1988    <aside class="an-cs__band">
1989      <q>Where <em>young minds</em> shape health research.</q>
1990      <cite>The Health Hive · youthhealthhive.com</cite>
1991    </aside>
1992
1993    <section class="an-cs__cta">
1994      <h2>Building a learning programme <span class="an-cs__hl">with your community</span>?</h2>
1995      <p>From branded Open edX campuses to custom surveys and learning analytics, Aulasneo helps universities and research teams turn learning into insight.</p>
1996      <div class="an-cs__btns">
1997        <a class="an-cs__btn an-cs__btn--primary" href="/contact/">Let’s build your learning platform</a>
1998        <a class="an-cs__btn an-cs__btn--ghost" href="https://www.youthhealthhive.com" target="_blank" rel="noopener">Visit The Health Hive</a>
1999      </div>
2000    </section>
2001
2002  </div>
2003</article>
2004`;function Lj(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"The Health Hive: young minds shape health research | Aulasneo",description:"How Aulasneo built a free, open-access Open edX platform in The Health Hive’s own identity, so young people can learn to take part in the health research that…",canonical:"https://aulasneo.com/health-hive-success-stories-with-aulasneo/",hreflangEs:"https://aulasneo.com/es/health-hive-casos-de-exito-con-aulasneo/",ogImage:"https://aulasneo.com/media/case-studies/health-hive/health-hive-video-poster.jpg"}),t.jsx(mn,{html:Ij,lang:"en"})]})}const Xj=`<style>
2005.an-cs {
2006    --an-navy: #062b60; --an-navy-900: #05225c; --an-blue: #2b6cc4; --an-violet: #6f51b5;
2007    --an-orange: #ef9245; --an-orange-300: #faa95b; --an-text: #4b5563; --an-line: #e5e9f0;
2008    --an-soft: #f4f7fb; --hh-cyan: #00d4fc; --hh-cyan-100: #dff8fe;
2009    font-family: "Quicksand", system-ui, sans-serif; color: var(--an-text); background: #fff;
2010    line-height: 1.65; font-size: 18px; -webkit-font-smoothing: antialiased;
2011  }
2012  .an-cs *, .an-cs *::before, .an-cs *::after { box-sizing: border-box; }
2013  .an-cs h1, .an-cs h2, .an-cs h3 { color: var(--an-navy); font-weight: 700; line-height: 1.15; margin: 0; }
2014  .an-cs p { margin: 0 0 1em; }
2015  .an-cs a { color: inherit; }
2016  .an-cs__wrap { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
2017  .an-cs__eyebrow { display: inline-block; font-size: 14px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--an-violet); margin-bottom: 18px; }
2018  .an-cs__hl { background: var(--an-orange-300); color: var(--an-navy); border-radius: 12px; padding: 0 .18em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
2019
2020  /* hero */
2021  .an-cs__hero { padding: 88px 0 56px; }
2022  .an-cs__logos { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; margin-bottom: 36px; }
2023  .an-cs__logos img { height: 64px; width: auto; display: block; }
2024  .an-cs__logos .sep { width: 2px; height: 52px; background: var(--an-line); border-radius: 2px; }
2025  .an-cs__hero h1 { font-size: clamp(36px, 5vw, 58px); letter-spacing: -.02em; max-width: 900px; }
2026  .an-cs__lead { font-size: clamp(19px, 2vw, 22px); font-weight: 500; color: var(--an-navy); opacity: .85; max-width: 820px; margin-top: 24px; }
2027
2028  /* fact strip */
2029  .an-cs__facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin-top: 44px; border: 1px solid var(--an-line); border-radius: 16px; overflow: hidden; }
2030  .an-cs__facts div { padding: 20px 22px; border-right: 1px solid var(--an-line); }
2031  .an-cs__facts div:last-child { border-right: 0; }
2032  .an-cs__facts dt { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--an-violet); margin-bottom: 4px; }
2033  .an-cs__facts dd { margin: 0; font-size: 16px; font-weight: 600; color: var(--an-navy); line-height: 1.4; }/* video */
2034  .an-cs__video, /* iframe */
2035  .an-cs__video { margin: 8px 0 72px; }.an-cs__video video, .an-cs__video iframe { width: 100%; display: block; border-radius: 22px; box-shadow: 0 30px 70px rgba(6, 43, 96, .17); background: #fff; }
2036  .an-cs__video figcaption { font-size: 15px; margin-top: 12px; text-align: center; }
2037
2038  /* course figures */
2039  .an-cs__stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-bottom: 88px; }
2040  .an-cs__stat { background: var(--an-soft); border-radius: 16px; padding: 26px 24px; border-top: 6px solid var(--hh-cyan); }
2041  .an-cs__stat b { display: block; font-size: 40px; line-height: 1.1; color: var(--an-navy); letter-spacing: -.02em; }
2042  .an-cs__stat span { display: block; margin-top: 6px; font-size: 16px; font-weight: 600; color: var(--an-navy); opacity: .8; }
2043
2044  /* story blocks */
2045  .an-cs__block { display: grid; grid-template-columns: 300px 1fr; gap: 56px; padding: 56px 0; border-top: 1px solid var(--an-line); }
2046  .an-cs__block h2 { font-size: clamp(28px, 3vw, 36px); letter-spacing: -.015em; }
2047  .an-cs__block .num { display: block; font-size: 14px; font-weight: 700; letter-spacing: .12em; color: var(--an-orange); margin-bottom: 10px; }
2048  .an-cs__list { list-style: none; padding: 0; margin: 8px 0 0; display: grid; gap: 12px; }
2049  .an-cs__list li { position: relative; padding-left: 34px; }
2050  .an-cs__list li::before { content: ""; position: absolute; left: 0; top: .42em;
2050 width: 20px; height: 20px; border-radius: 50%; background: var(--an-orange) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3 3 7-7' fill='none' stroke='%23062b60' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat; }
2051
2052  /* solution cards */
2053  .an-cs__cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; margin-top: 8px; }
2054  .an-cs__card { background: #fff; border-radius: 16px; padding: 26px 26px 22px; box-shadow: 0 20px 25px -5px rgba(6, 43, 96, .08), 0 8px 10px -6px rgba(6, 43, 96, .08); border: 1px solid var(--an-line); }
2055  .an-cs__card .ic { width: 52px; height: 52px; border-radius: 50%; background: var(--an-orange); display: grid; place-items: center; margin-bottom: 16px; }
2056  .an-cs__card .ic svg { width: 28px; height: 28px; }
2057  .an-cs__card h3 { font-size: 21px; margin-bottom: 8px; }
2058  .an-cs__card p { font-size: 16.5px; margin: 0; }
2059
2060  /* modules */
2061  .an-cs__modules { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 20px; counter-reset: m; list-style: none; padding: 0; }
2062  .an-cs__modules li { counter-increment: m; display: flex; align-items: center; gap: 14px; background: var(--hh-cyan-100); border-radius: 14px; padding: 14px 16px; font-weight: 600; color: var(--an-navy); font-size: 16px; line-height: 1.35; }
2063  .an-cs__modules li::before { content: counter(m); flex: 0 0 38px; height: 38px; display: grid; place-items: center; background: var(--hh-cyan); color: var(--an-navy); font-weight: 700; clip-path: polygon(50% 0, 100% 25%, 100% 75%, 50% 100%, 0 75%, 0 25%); }
2064
2065  /* tagline band */
2066  .an-cs__band { background: var(--an-navy); border-radius: 22px; padding: 56px 48px; margin: 40px 0 88px; text-align: center; }
2067  .an-cs__band q { display: block; quotes: none; font-size: clamp(28px, 3.4vw, 42px); font-weight: 700; color: #fff; line-height: 1.2; letter-spacing: -.015em; }
2068  .an-cs__band q em { font-style: normal; color: var(--an-orange-300); }
2069  .an-cs__band cite { display: block; margin-top: 16px; font-style: normal; font-weight: 600; color: rgba(255,255,255,.75); }
2070
2071  /* CTA */
2072  .an-cs__cta { text-align: center; padding: 0 0 104px; }
2073  .an-cs__cta h2 { font-size: clamp(30px, 3.6vw, 44px); letter-spacing: -.02em; }
2074  .an-cs__cta p { max-width: 640px; margin: 16px auto 32px; }
2075  .an-cs__btns { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
2076  .an-cs__btn { display: inline-block; padding: 16px 36px; border-radius: 9999px; font-weight: 700; font-size: 17px; text-decoration: none; }
2077  .an-cs__btn--primary { background: var(--an-orange); color: var(--an-navy); }
2078  .an-cs__btn--ghost { border: 2px solid var(--an-navy); color: var(--an-navy); }
2079  .an-cs__btn:hover { filter: brightness(1.05); }
2080
2081  @media (max-width: 900px) {
2082    .an-cs__facts { grid-template-columns: 1fr 1fr; }
2083    .an-cs__facts div:nth-child(2) { border-right: 0; }
2084    .an-cs__facts div:nth-child(-n+2) { border-bottom: 1px solid var(--an-line); }
2085    .an-cs__stats { grid-template-columns: 1fr 1fr; }
2086    .an-cs__block { grid-template-columns: 1fr; gap: 20px; }
2087    .an-cs__modules { grid-template-columns: 1fr 1fr; }
2088  }
2089  @media (max-width: 600px) {
2090    .an-cs { font-size: 17px; }
2091    .an-cs__hero { padding-top: 56px; }
2092    .an-cs__logos img { height: 48px; }
2093    .an-cs__logos { gap: 20px 24px; }
2094    .an-cs__logos .sep { display: none; }
2095    .an-cs__cards, .an-cs__modules { grid-template-columns: 1fr; }
2096    .an-cs__band { padding: 40px 24px; }
2097  }
2098
2099/* Site fix: on narrow phones the stat figures don't fit two per row. */
2100@media (max-width: 420px) { .an-cs__stats { grid-template-columns: 1fr; } }
2101</style>
2102<article class="an-cs" id="caso-the-health-hive" lang="es">
2103  <div class="an-cs__wrap">
2104
2105    <header class="an-cs__hero">
2106      <div class="an-cs__logos">
2107        <img src="/media/case-studies/health-hive/health-hive-logo.svg" alt="The Health Hive" width="223" height="64">
2108        <span class="sep" aria-hidden="true"></span>
2109        <img src="/media/case-studies/health-hive/usyd-logo.svg" alt="Universidad de Sídney (The University of Sydney)" width="186" height="64">
2110      </div>
2111      <span class="an-cs__eyebrow">Caso de éxito · Educación superior e investigación</span>
2112      <h1>The Health Hive: donde las <span class="an-cs__hl">mentes jóvenes</span> dan forma a la investigación en salud</h1>
2113      <p class="an-cs__lead">Cómo Aulasneo desarrolló una plataforma Open edX gratuita y de acceso abierto, con la propia identidad de The Health Hive, para que los jóvenes aprendan a participar en la investigación en salud que afecta sus vidas, y para que los investigadores aprendan de ellos.</p>
2114
2115      <dl class="an-cs__facts">
2116        <div><dt>Cliente</dt><dd>The Health Hive, un proyecto de la Universidad de Sídney</dd></div>
2117        <div><dt>Estudiantes</dt><dd>Jóvenes de 14 a 24 años, en cualquier parte del mundo</dd></div>
2118        <div><dt>Plataforma</dt><dd>Open edX, con la marca The Health Hive</dd></div>
2119        <div><dt>Aporte de Aulasneo</dt><dd>Plataforma de aprendizaje, encuestas a medida y tableros de analítica</dd></div>
2120      </dl>
2121    </header>
2122
2123    <figure class="an-cs__video">
2124      <iframe src="https://player.vimeo.com/video/1230976024?dnt=1&amp;title=0&amp;byline=0&amp;portrait=0" title="Video" loading="lazy" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9"></iframe>
2125      <figcaption>The Health Hive, la Universidad de Sídney y Aulasneo, en poco más de un minuto.</figcaption>
2126    </figure>
2127
2128    <section class="an-cs__stats" aria-label="El curso en cifras">
2129      <div class="an-cs__stat"><b>6</b><span>módulos autogestionados</span></div>
2130      <div class="an-cs__stat"><b>~3 h</b><span>para completarlo, a tu propio ritmo</span></div>
2131      <div class="an-cs__stat"><b>Gratis</b><span>acceso abierto para cualquier joven</span></div>
2132      <div class="an-cs__stat"><b>Co-creado</b><span>con jóvenes y socios de investigación</span></div>
2133    </section>
2134
2135    <section class="an-cs__block">
2136      <div><span class="num">01</span><h2>El proyecto</h2></div>
2137      <div>
2138        <p><strong>The Health Hive</strong> es un proyecto de la Universidad de Sídney que prepara a los jóvenes para tener un rol significativo en la investigación sobre su salud y su bienestar: compartir ideas, dar su opinión, colaborar en estudios o liderar sus propios proyectos.</p>
2139        <p>Su curso fundacional, <em>Foundations in Public Health Research &amp; Advocacy for Young People</em>, fue co-creado por jóvenes, investigadores en salud pública y socios del proyecto. Los jóvenes no fueron un público al que presentarle algo: tomaron decisiones sobre la experiencia de aprendizaje desde el primer taller.</p>
2140      </div>
2141    </section>
2142
2143    <section class="an-cs__block">
2144      <div><span class="num">02</span><h2>El desafío</h2></div>
2145      <div>
2146        <p>El equipo necesitaba un hogar para el curso tan cuidado como el curso mismo. La plataforma tenía que:</p>
2147        <ul class="an-cs__list">
2148          <li><strong>Sentirse como The Health Hive</strong>, no como un LMS genérico. La marca que ven los jóvenes es el proyecto, no la tecnología.</li>
2149          <li><strong>Ser gratuita y abierta</strong> para cualquier joven, desde una computadora o un celular.</li>
2150          <li><strong>Permitir aprender a su propio ritmo</strong>, en paralelo con la escuela, los estudios o el trabajo.</li>
2151          <li><strong>Estar al servicio de la investigación</strong>, ayudando al equipo a entender quiénes aprenden y cómo participan, sin exponer a ningún estudiante en particular.</li>
2152        </ul>
2153      </div>
2154    </section>
2155
2156    <section class="an-cs__block">
2157      <div><span class="num">03</span><h2>Qué desarrolló Aulasneo</h2></div>
2158      <div>
2159        <div class="an-cs__cards">
2160          <div class="an-cs__card">
2161            <div class="ic"><svg viewBox="0 0 48 48" aria-hidden="true"><path d="M24 4 L41 14 V34 L24 44 L7 34 V14 Z" fill="none" stroke="#062b60" stroke-width="4" stroke-linejoin="round"/><path d="M17 24 L22 29 L31 19" fill="none" stroke="#062b60" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg></div>
2162            <h3>Un campus con la identidad del proyecto</h3>
2163            <p>Una plataforma de aprendizaje Open edX adaptada a la identidad visual de The Health Hive: su logo, sus colores y su estética inspirada en la colmena, desde la portada del curso hasta cada lección.</p>
2164          </div>
2165          <div class="an-cs__card">
2166            <div class="ic"><svg viewBox="0 0 48 48" aria-hidden="true"><rect x="6" y="10" width="26" height="20" rx="3" fill="none" stroke="#062b60" stroke-width="4"/><path d="M2 34 H36" stroke="#062b60" stroke-width="4" stroke-linecap="round"/><rect x="34" y="18" width="12" height="22" rx="3" fill="none" stroke="#062b60" stroke-width="4"/></svg></div>
2167            <h3>Gratuita, abierta y a tu ritmo</h3>
2168            <p>Acceso abierto para jóvenes de cualquier lugar, pensada para ellos y cómoda tanto en computadora como en celular, para que el aprendizaje siga donde estén.</p>
2169          </div>
2170          <div class="an-cs__card">
2171            <div class="ic"><svg viewBox="0 0 48 48" aria-hidden="true"><rect x="8" y="5" width="32" height="38" rx="5" fill="none" stroke="#062b60" stroke-width="4"/><path d="M15 16 H33 M15 24 H33 M15 32 H25" stroke="#062b60" stroke-width="4" stroke-linecap="round"/></svg></div>
2172            <h3>Encuestas a medida dentro del curso</h3>
2173            <p>Encuestas breves y opcionales, integradas en el recorrido de aprendizaje, para que el equipo de investigación escuche a los estudiantes en el momento justo del curso.</p>
2174          </div>
2175          <div class="an-cs__card">
2176            <div class="ic"><svg viewBox="0 0 48 48" aria-hidden="true"><path d="M6 6 V42 H44" fill="none" stroke="#062b60" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><rect x="13" y="26" width="7" height="12" rx="2" fill="#062b60"/><rect x="24" y="16" width="7" height="22" rx="2" fill="#062b60"/><rect x="35" y="21" width="7" height="17" rx="2" fill="#062b60"/></svg></div>
2177            <h3>Tableros de analítica</h3>
2178            <p>Vistas agregadas y sin datos identificatorios sobre perfiles, participación y compromiso de los estudiantes, que muestran patrones a los investigadores, nunca las respuestas de una persona.</p>
2179          </div>
2180        </div>
2181
2182        <p style="margin-top:32px"><strong>Seis módulos, un recorrido de aprendizaje coherente</strong>: desde por qué importa la voz de los jóvenes hasta cómo participar de forma segura.</p>
2183        <ol class="an-cs__modules">
2184          <li>Por qué importa la participación juvenil</li>
2185          <li>Qué es la investigación</li>
2186          <li>Comprender la ética</li>
2187          <li>Formas de participar</li>
2188          <li>Aplicar lo aprendido</li>
2189          <li>Participación segura para la salud mental</li>
2190        </ol>
2191      </div>
2192    </section>
2193
2194    <section class="an-cs__block">
2195      <div><span class="num">04</span><h2>El resultado</h2></div>
2196      <div>
2197        <p>El curso de The Health Hive está en línea y abierto a jóvenes de todo el mund
2197o, en una plataforma que lleva la identidad del proyecto y no la de un proveedor. Los estudiantes encuentran un recorrido amigable y a su propio ritmo hacia la investigación en salud pública, la ética, la incidencia y la participación significativa.</p>
2198        <p>Para el equipo de investigación, aprendizaje e investigación ahora se retroalimentan. Las respuestas a las encuestas y la analítica agregada les ayudan a entender a la comunidad de estudiantes, cómo participan y cómo se involucran con el curso, y orientan los próximos pasos de la investigación.</p>
2199      </div>
2200    </section>
2201
2202    <aside class="an-cs__band">
2203      <q>Donde las <em>mentes jóvenes</em> dan forma a la investigación en salud.</q>
2204      <cite>The Health Hive · youthhealthhive.com</cite>
2205    </aside>
2206
2207    <section class="an-cs__cta">
2208      <h2>¿Estás creando un programa de aprendizaje <span class="an-cs__hl">con tu comunidad</span>?</h2>
2209      <p>Desde campus Open edX con tu propia marca hasta encuestas a medida y analítica de aprendizaje, Aulasneo ayuda a universidades y equipos de investigación a convertir el aprendizaje en conocimiento.</p>
2210      <div class="an-cs__btns">
2211        <a class="an-cs__btn an-cs__btn--primary" href="/es/contact/">Construyamos tu plataforma de aprendizaje</a>
2212        <a class="an-cs__btn an-cs__btn--ghost" href="https://www.youthhealthhive.com" target="_blank" rel="noopener">Conoce The Health Hive</a>
2213      </div>
2214    </section>
2215
2216  </div>
2217</article>
2218`;function _j(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"The Health Hive: jóvenes en la investigación en salud | Aulasneo",description:"Cómo Aulasneo desarrolló una plataforma Open edX gratuita y de acceso abierto, con la propia identidad de The Health Hive, para que los jóvenes aprendan a…",canonical:"https://aulasneo.com/es/health-hive-casos-de-exito-con-aulasneo/",hreflangEn:"https://aulasneo.com/health-hive-success-stories-with-aulasneo/",ogImage:"https://aulasneo.com/media/case-studies/health-hive/health-hive-video-poster.jpg"}),t.jsx(mn,{html:Xj,lang:"es"})]})}const Fj=`<style>
2219.anc {
2220    --anc-navy: #062b60;
2221    --anc-navy-2: #24497f;
2222    --anc-violet: #4e359e;
2223    --anc-violet-soft: #efe9f8;
2224    --anc-orange: #ef9245;
2225    --anc-orange-soft: #fdebd9;
2226    --anc-blue-soft: #e6f0fb;
2227    --anc-gray: #f4f6f9;
2228    --anc-line: #e3e8ef;
2229    --anc-white: #ffffff;
2230    font-family: "Quicksand", ui-sans-serif, system-ui, sans-serif;
2231    color: var(--anc-navy);
2232    background: var(--anc-white);
2233    line-height: 1.6;
2234    padding: clamp(56px, 8vw, 112px) 0;
2235  }
2236  .anc *, .anc *::before, .anc *::after { box-sizing: border-box; }
2237  .anc-wrap { max-width: 1160px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); }
2238
2239  /* Header */
2240  .anc-eyebrow {
2241    display: inline-flex; align-items: center; gap: 10px; margin: 0 0 20px;
2242    font-size: 14px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--anc-navy-2);
2243  }
2244  .anc-eyebrow::before { content: ""; width: 28px; height: 4px; border-radius: 2px; background: var(--anc-orange); }
2245  .anc-title {
2246    margin: 0 0 20px; max-width: 860px;
2247    font-size: clamp(32px, 4.6vw, 54px); font-weight: 700; line-height: 1.12; letter-spacing: -0.02em;
2248  }
2249  /* Brand emphasis: navy text on an orange lozenge (orange text on white is not legible) */
2250  .anc-mark { background: var(--anc-orange); color: var(--anc-navy); padding: 0 .28em; border-radius: .6em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
2251  @media (min-width: 700px) { .anc-mark { white-space: nowrap; } }
2252  .anc-lead { margin: 0; max-width: 760px; font-size: clamp(18px, 2vw, 21px); font-weight: 500; color: var(--anc-navy-2); }
2253
2254  /* Client facts */
2255  .anc-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 40px 0 0; padding: 0; list-style: none; }
2256  .anc-facts li { background: var(--anc-gray); border-radius: 18px; padding: 18px 20px; }
2257  .anc-facts span { display: block; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--anc-violet); margin-bottom: 4px; }
2258  .anc-facts strong { font-size: 16px; font-weight: 600; line-height: 1.4; }
2259
2260  /* Video */
2261  .anc-video {
2262    position: relative; margin: 48px 0 0; border-radius: 26px; overflow: hidden; aspect-ratio: 16 / 9;
2263    background: var(--anc-navy); box-shadow: 0 30px 70px rgba(6, 43, 96, .17);
2264  }
2265  .anc-video video, .anc-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
2266
2267  /* Challenge · Solution · Result */
2268  .anc-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 72px 0 0; }
2269  .anc-card { position: relative; background: var(--anc-white); border: 2px solid var(--anc-line); border-radius: 22px; padding: 34px 28px 30px; overflow: hidden; }
2270  .anc-card::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 8px; background: var(--anc-navy); }
2271  .anc-card--solution::before { background: var(--anc-violet); }
2272  .anc-card--result::before { background: var(--anc-orange); }
2273  .anc-card h3 { margin: 0 0 12px; font-size: 22px; font-weight: 700; letter-spacing: -0.01em; }
2274  .anc-card p { margin: 0; font-size: 16.5px; color: var(--anc-navy-2); }
2275
2276  /* Timeline */
2277  .anc-h2 { margin: 88px 0 28px; font-size: clamp(26px, 3.2vw, 36px); font-weight: 700; letter-spacing: -0.015em; line-height: 1.2; }
2278  .anc-timeline { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin: 0; padding: 0; list-style: none; }
2279  .anc-timeline::before { content: ""; position: absolute; left: 12px; right: 12px; top: 13px; height: 4px; border-radius: 2px; background: linear-gradient(90deg, var(--anc-navy), var(--anc-violet) 55%, var(--anc-orange)); }
2280  .anc-timeline li { position: relative; padding-top: 44px; }
2281  .anc-timeline li::before { content: ""; position: absolute; left: 0; top: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--anc-white); border: 6px solid var(--anc-navy); }
2282  .anc-timeline li:nth-child(2)::before { border-color: var(--anc-violet); }
2283  .anc-timeline li:nth-child(3)::before { border-color: var(--anc-violet); }
2284  .anc-timeline li:nth-child(4)::before { border-color: var(--anc-orange); }
2285  .anc-when { display: inline-block; margin-bottom: 8px; padding: 2px 12px; border-radius: 14px; background: var(--anc-blue-soft); font-size: 14px; font-weight: 700; }
2286  .anc-timeline h4 { margin: 0 0 6px; font-size: 18px; font-weight: 700; }
2287  .anc-timeline p { margin: 0; font-size: 15.5px; color: var(--anc-navy-2); }
2288
2289  /* Highlighted result */
2290  .anc-highlight {
2291    display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: center; margin: 72px 0 0;
2292    padding: clamp(28px, 4vw, 44px); border-radius: 26px; background: var(--anc-violet-soft);
2293  }
2294  .anc-highlight-icon { width: 76px; height: 76px; border-radius: 50%; background: var(--anc-orange); display: grid; place-items: center; }
2295  .anc-highlight p { margin: 0; font-size: clamp(20px, 2.4vw, 27px); font-weight: 700; line-height: 1.35; letter-spacing: -0.01em; }
2296  .anc-highlight small { display: block; margin-top: 8px; font-size: 15px; font-weight: 600; color: var(--anc-violet); letter-spacing: 0; }
2297
2298  /* What the campus includes */
2299  .anc-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 0; padding: 0; list-style: none; }
2300  .anc-features li { display: flex; gap: 14px; align-items: flex-start; padding: 20px; border-radius: 18px; background: var(--anc-gray); }
2301  .anc-features svg { flex: none; width: 40px; height: 40px; padding: 8px; border-radius: 50%; background: var(--anc-white); color: var(--anc-violet); }
2302  .anc-features strong { display: block; font-size: 17px; font-weight: 700; }
2303  .anc-features span { font-size: 15px; color: var(--anc-navy-2); }
2304
2305  /* Lessons */
2306  .anc-lessons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 0; padding: 0; list-style: none; counter-reset: anc; }
2307  .anc-lessons li { counter-increment: anc; }
2308  .anc-lessons li::before { content: counter(anc, decimal-leading-zero); display: block; margin-bottom: 8px; font-size: 15px; font-weight: 700; color: var(--anc-violet); letter-spacing: .08em; }
2309  .anc-lessons strong { display: block; margin-bottom: 6px; font-size: 18px; font-weight: 700; }
2310  .anc-lessons p { margin: 0; font-size: 16px; color: var(--anc-navy-2); }
2311
2312  /* CTA */
2313  .anc-cta {
2314    display: flex; flex-wrap: wrap; gap: 24px 40px; align-items: center; justify-content: space-between;
2315    margin: 88px 0 0; padding: clamp(32px, 5vw, 56px); border-radius: 28px; background: var(--anc-navy); color: var(--anc-white);
2316  }.anc-cta h2, .anc-cta h1 { margin: 0 0 8px; font-size: clamp(26px, 3.4vw, 38px); font-weight: 700; letter-spacing: -0.015em; line-height: 1.15; }
2317  .anc-cta p { margin: 0; max-width: 560px; font-size: 18px; color: rgba(244, 248, 253, .88); }
2318  .anc-btn {
2319    display: inline-flex; align-items: center; gap: 10px; padding: 18px 34px; border-radius: 40px;
2320    background: var(--anc-orange); color: var(--anc-navy); font-size: 19px; font-weight: 700; text-decoration: none; white-space: nowrap;
2321    box-shadow: 0 14px 30px rgba(239, 146, 69, .32); transition: transform .2s ease, box-shadow .2s ease;
2322  }
2323  .anc-btn:hover, .anc-btn:focus-visible { transform: translateY(-2px); box-shadow: 0 18px 36px rgba(239, 146, 69, .42); }
2324  .anc-btn:focus-visible { outline: 3px solid var(--anc-white); outline-offset: 3px; }
2325
2326  @media (max-width: 960px) {
2327    .anc-facts { grid-template-columns: repeat(2, 1fr); }
2328    .anc-trio, .anc-features, .anc-lessons { grid-template-columns: 1fr; }
2329    .anc-timeline { grid-template-columns: 1fr; gap: 28px; padding-left: 4px; }
2330    .anc-timeline::before { left: 13px; right: auto; top: 12px; bottom: 12px; width: 4px; height: auto; background: linear-gradient(180deg, var(--anc-navy), var(--anc-violet) 55%, var(--anc-orange)); }
2331    .anc-timeline li { padding: 0 0 0 52px; }
2332  }
2333  @media (max-width: 560px) {
2334    .anc-facts { grid-template-columns: 1fr; }
2335    .anc-highlight { grid-template-columns: 1fr; }
2336  }
2337  @media (prefers-reduced-motion: reduce) { .anc-btn { transition: none; } }
2338</style>
2339<section class="anc" id="case-aie-arg" lang="en" aria-labelledby="anc-title-en">
2340  <div class="anc-wrap">
2341
2342    <p class="anc-eyebrow">Success story · Professional associations</p>
2343    <h1 class="anc-title" id="anc-title-en">From one auditorium in Buenos Aires <span class="anc-mark">to learners across Argentina</span></h1>
2344    <p class="anc-lead">
2345      For years, AIE ARG (Asociación de Ingenieros Estructurales de la Argentina) brought structural engineers
2346      together for two-day, in-person training in Buenos Aires. With a dedicated virtual campus built by Aulasneo, it
2347      kept the in-person sessions and brought live training to colleagues across the country. When COVID-19 arrived,
2348      the campus was already there, ready to adapt.
2349    </p>
2350
2351    <ul class="anc-facts" aria-label="Case facts">
2352      <li><span>Client</span><strong>AIE ARG, the Argentine association of structural engineers</strong></li>
2353      <li><span>Sector</span><strong>Professional association · Continuing engineering education</strong></li>
2354      <li><span>Since</span><strong>2018</strong></li>
2355      <li><span>Solution</span><strong>Blended virtual campus, self-paced courses and e-commerce</strong></li>
2356    </ul>
2357
2358    
2359    <div class="anc-video">
2360      <iframe src="https://player.vimeo.com/video/1230975172?dnt=1&amp;title=0&amp;byline=0&amp;portrait=0" title="Video" loading="lazy" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9"></iframe>
2361    </div>
2362
2363    <div class="anc-trio">
2364      <article class="anc-card anc-card--challenge">
2365        <h3>The challenge</h3>
2366        <p>
2367          AIE ARG's training sessions were a valuable meeting point, but only for those who could travel to Buenos
2368          Aires. In 2018, young engineers championed a new idea: keep the in-person sessions and, at the same time,
2369          bring live training to colleagues across Argentina.
2370        </p>
2371      </article>
2372      <article class="anc-card anc-card--solution">
2373        <h3>The solution</h3>
2374        <p>
2375          Aulasneo built a dedicated virtual campus for the association that links the auditorium to remote learners:
2376          live sessions by videoconference, online exams and more ways to engage, all in one place. The in-person event
2377          and remote access happen together.
2378        </p>
2379      </article>
2380      <article class="anc-card anc-card--result">
2381        <h3>The result</h3>
2382        <p>
2383          By the end of the first year, remote enrollments had surpassed in-person enrollments. And when COVID-19
2384          arrived, AIE ARG already had its campus: it added self-paced courses and e-commerce, and began offering and
2385          selling courses remotely within days.
2386        </p>
2387      </article>
2388    </div>
2389
2390    <h2 class="anc-h2">The journey</h2>
2391    <ol class="anc-timeline">
2392      <li>
2393        <span class="anc-when">Before 2018</span>
2394        <h4>Learning together in Buenos Aires</h4>
2395        <p>Two-day, in-person training that brought structural engineers together in one auditorium.</p>
2396      </li>
2397      <li>
2398        <span class="anc-when">2018</span>
2399        <h4>A new idea</h4>
2400        <p>Keep the connection, expand the reach: the blended virtual campus, built by Aulasneo, is launched.</p>
2401      </li>
2402      <li>
2403        <span class="anc-when">Year one</span>
2404        <h4>Learning without distance</h4>
2405        <p>Remote enrollments surpass in-person enrollments.</p>
2406      </li>
2407      <li>
2408        <span class="anc-when">2020 · COVID-19</span>
2409        <h4>Ready to adapt</h4>
2410        <p>Self-paced courses and online enrollment are added to the same campus. Remote course sales begin within days.</p>
2411      </li>
2412    </ol>
2413
2414    <div class="anc-highlight" role="note">
2415      <div class="anc-highlight-icon" aria-hidden="true">
2416        <svg width="40" height="40" viewBox="0 0 48 48" fill="none"><path d="M24 36V12M14 21l10-10 10 10" stroke="#062b60" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/></svg>
2417      </div>
2418      <p>
2419        Remote enrollments surpassed in-person enrollments.
2420        <small>By the end of the virtual campus's first year.</small>
2421      </p>
2422    </div>
2423
2424    <h2 class="anc-h2">What the AIE ARG campus includes</h2>
2425    <ul class="anc-features">
2426      <li>
2427        <svg viewBox="0 0 48 48" fill="none" aria-hidden="true"><rect x="4" y="12" width="28" height="24" rx="6" stroke="currentColor" stroke-width="4"/><path d="M32 21l12-7v20l-12-7z" stroke="currentColor" stroke-width="4" stroke-linejoin="round"/></svg>
2428        <div><strong>Live sessions</strong><span>The auditorium and remote learners, in the same class.</span></div>
2429      </li>
2430      <li>
2431        <svg viewBox="0 0 48 48" fill="none" aria-hidden="true"><rect x="7" y="5" width="34" height="38" rx="5" stroke="currentColor" stroke-width="4"/><path d="M14 16l4 4 8-8M14 30h20M14 37h12" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>
2432        <div><strong>Online exams</strong><span>
2432Assessments built into each course.</span></div>
2433      </li>
2434      <li>
2435        <svg viewBox="0 0 48 48" fill="none" aria-hidden="true"><path d="M6 8h22v18H16l-7 6v-6H6zM22 20h20v18h-3v6l-7-6H22z" stroke="currentColor" stroke-width="4" stroke-linejoin="round"/></svg>
2436        <div><strong>Engagement</strong><span>More ways to take part and interact in every course.</span></div>
2437      </li>
2438      <li>
2439        <svg viewBox="0 0 48 48" fill="none" aria-hidden="true"><circle cx="24" cy="24" r="18" stroke="currentColor" stroke-width="4"/><path d="M24 13v11l7 5" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>
2440        <div><strong>Self-paced courses</strong><span>Each engineer learns at their own pace, from anywhere.</span></div>
2441      </li>
2442      <li>
2443        <svg viewBox="0 0 48 48" fill="none" aria-hidden="true"><path d="M4 8h7l5 24h22l5-17H13" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><circle cx="19" cy="40" r="3.5" fill="currentColor"/><circle cx="35" cy="40" r="3.5" fill="currentColor"/></svg>
2444        <div><strong>Online enrollment</strong><span>An e-commerce module to offer and sell courses.</span></div>
2445      </li>
2446      <li>
2447        <svg viewBox="0 0 48 48" fill="none" aria-hidden="true"><path d="M4 18L24 8l20 10-20 10z" stroke="currentColor" stroke-width="4" stroke-linejoin="round"/><path d="M12 22v10c6 6 18 6 24 0V22" stroke="currentColor" stroke-width="4" stroke-linecap="round"/></svg>
2448        <div><strong>A dedicated campus</strong><span>A virtual campus built exclusively for the association.</span></div>
2449      </li>
2450    </ul>
2451
2452    <h2 class="anc-h2">Why it worked</h2>
2453    <ol class="anc-lessons">
2454      <li><strong>Add, don't replace</strong><p>The in-person event stayed at the center. The campus extended it to those who couldn't travel.</p></li>
2455      <li><strong>A foundation ready for change</strong><p>Because the campus already existed, adding new formats and selling courses online took only days.</p></li>
2456      <li><strong>Training as a service to members</strong><p>Colleagues across the country can take the same training delivered in the auditorium.</p></li>
2457    </ol>
2458
2459    <div class="anc-cta">
2460      <div>
2461        <h2>Ready to grow?</h2>
2462        <p>We build virtual campuses for professional associations, education institutions and training teams.</p>
2463      </div>
2464      <a class="anc-btn" href="/contact/">Let’s talk
2465        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/></svg>
2466      </a>
2467    </div>
2468
2469  </div>
2470</section>
2471`;function Rj(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"AIE ARG: from Buenos Aires to learners across Argentina | Aulasneo",description:"For years, AIE ARG (Asociación de Ingenieros Estructurales de la Argentina) brought structural engineers together for two-day, in-person training in Buenos…",canonical:"https://aulasneo.com/aie-arg-success-stories-with-aulasneo/",hreflangEs:"https://aulasneo.com/es/aie-arg-casos-de-exito-con-aulasneo/",ogImage:"https://aulasneo.com/media/case-studies/aie-arg/aie-arg-poster-en.jpg"}),t.jsx(mn,{html:Fj,lang:"en"})]})}const Dj=`<style>
2472.anc {
2473    --anc-navy: #062b60;
2474    --anc-navy-2: #24497f;
2475    --anc-violet: #4e359e;
2476    --anc-violet-soft: #efe9f8;
2477    --anc-orange: #ef9245;
2478    --anc-orange-soft: #fdebd9;
2479    --anc-blue-soft: #e6f0fb;
2480    --anc-gray: #f4f6f9;
2481    --anc-line: #e3e8ef;
2482    --anc-white: #ffffff;
2483    font-family: "Quicksand", ui-sans-serif, system-ui, sans-serif;
2484    color: var(--anc-navy);
2485    background: var(--anc-white);
2486    line-height: 1.6;
2487    padding: clamp(56px, 8vw, 112px) 0;
2488  }
2489  .anc *, .anc *::before, .anc *::after { box-sizing: border-box; }
2490  .anc-wrap { max-width: 1160px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); }
2491
2492  /* Encabezado */
2493  .anc-eyebrow {
2494    display: inline-flex; align-items: center; gap: 10px; margin: 0 0 20px;
2495    font-size: 14px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--anc-navy-2);
2496  }
2497  .anc-eyebrow::before { content: ""; width: 28px; height: 4px; border-radius: 2px; background: var(--anc-orange); }
2498  .anc-title {
2499    margin: 0 0 20px; max-width: 860px;
2500    font-size: clamp(32px, 4.6vw, 54px); font-weight: 700; line-height: 1.12; letter-spacing: -0.02em;
2501  }
2502  /* Énfasis de marca: texto navy sobre una pastilla naranja (el naranja sobre blanco no es legible) */
2503  .anc-mark { background: var(--anc-orange); color: var(--anc-navy); padding: 0 .28em; border-radius: .6em; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
2504  @media (min-width: 700px) { .anc-mark { white-space: nowrap; } }
2505  .anc-lead { margin: 0; max-width: 760px; font-size: clamp(18px, 2vw, 21px); font-weight: 500; color: var(--anc-navy-2); }
2506
2507  /* Ficha del cliente */
2508  .anc-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 40px 0 0; padding: 0; list-style: none; }
2509  .anc-facts li { background: var(--anc-gray); border-radius: 18px; padding: 18px 20px; }
2510  .anc-facts span { display: block; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--anc-violet); margin-bottom: 4px; }
2511  .anc-facts strong { font-size: 16px; font-weight: 600; line-height: 1.4; }
2512
2513  /* Video */
2514  .anc-video {
2515    position: relative; margin: 48px 0 0; border-radius: 26px; overflow: hidden; aspect-ratio: 16 / 9;
2516    background: var(--anc-navy); box-shadow: 0 30px 70px rgba(6, 43, 96, .17);
2517  }
2518  .anc-video video, .anc-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }
2519
2520  /* Desafío · Solución · Resultado */
2521  .anc-trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 72px 0 0; }
2522  .anc-card { position: relative; background: var(--anc-white); border: 2px solid var(--anc-line); border-radius: 22px; padding: 34px 28px 30px; overflow: hidden; }
2523  .anc-card::before { content: ""; position: absolute; left: 0; top: 0; right: 0; height: 8px; background: var(--anc-navy); }
2524  .anc-card--solution::before { background: var(--anc-violet); }
2525  .anc-card--result::before { background: var(--anc-orange); }
2526  .anc-card h3 { margin: 0 0 12px; font-size: 22px; font-weight: 700; letter-spacing: -0.01em; }
2527  .anc-card p { margin: 0; font-size: 16.5px; color: var(--anc-navy-2); }
2528
2529  /* Línea de tiempo */
2530  .anc-h2 { margin: 88px 0 28px; font-size: clamp(26px, 3.2vw, 36px); font-weight: 700; letter-spacing: -0.015em; line-height: 1.2; }
2531  .anc-timeline { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; margin: 0; padding: 0; list-style: none; }
2532  .anc-timeline::before { content: ""; position: absolute; left: 12px; right: 12px; top: 13px; height: 4px; border-radius: 2px; background: linear-gradient(90deg, var(--anc-navy), var(--anc-violet) 55%, var(--anc-orange)); }
2533  .anc-timeline li { position: relative; padding-top: 44px; }
2534  .anc-timeline li::before { content: ""; position: absolute; left: 0; top: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--anc-white); border: 6px solid var(--anc-navy); }
2535  .anc-timeline li:nth-child(2)::before { border-color: var(--anc-violet); }
2536  .anc-timeline li:nth-child(3)::before { border-color: var(--anc-violet); }
2537  .anc-timeline li:nth-child(4)::before { border-color: var(--anc-orange); }
2538  .anc-when { display: inline-block; margin-bottom: 8px; padding: 2px 12px; border-radius: 14px; background: var(--anc-blue-soft); font-size: 14px; font-weight: 700; }
2539  .anc-timeline h4 { margin: 0 0 6px; font-size: 18px; font-weight: 700; }
2540  .anc-timeline p { margin: 0; font-size: 15.5px; color: var(--anc-navy-2); }
2541
2542  /* Resultado destacado */
2543  .anc-highlight {
2544    display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: center; margin: 72px 0 0;
2545    padding: clamp(28px, 4vw, 44px); border-radius: 26px; background: var(--anc-violet-soft);
2546  }
2547  .anc-highlight-icon { width: 76px; height: 76px; border-radius: 50%; background: var(--anc-orange); display: grid; place-items: center; }
2548  .anc-highlight p { margin: 0; font-size: clamp(20px, 2.4vw, 27px); font-weight: 700; line-height: 1.35; letter-spacing: -0.01em; }
2549  .anc-highlight small { display: block; margin-top: 8px; font-size: 15px; font-weight: 600; color: var(--anc-violet); letter-spacing: 0; }
2550
2551  /* Qué incluye el campus */
2552  .anc-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 0; padding: 0; list-style: none; }
2553  .anc-features li { display: flex; gap: 14px; align-items: flex-start; padding: 20px; border-radius: 18px; background: var(--anc-gray); }
2554  .anc-features svg { flex: none; width: 40px; height: 40px; padding: 8px; border-radius: 50%; background: var(--anc-white); color: var(--anc-violet); }
2555  .anc-features strong { display: block; font-size: 17px; font-weight: 700; }
2556  .anc-features span { font-size: 15px; color: var(--anc-navy-2); }
2557
2558  /* Lecciones */
2559  .anc-lessons { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 0; padding: 0; list-style: none; counter-reset: anc; }
2560  .anc-lessons li { counter-increment: anc; }
2561  .anc-lessons li::before { content: counter(anc, decimal-leading-zero); display: block; margin-bottom: 8px; font-size: 15px; font-weight: 700; color: var(--anc-violet); letter-spacing: .08em; }
2562  .anc-lessons strong { display: block; margin-bottom: 6px; font-size: 18px; font-weight: 700; }
2563  .anc-lessons p { margin: 0; font-size: 16px; color: var(--anc-navy-2); }
2564
2565  /* CTA */
2566  .anc-cta {
2567    display: flex; flex-wrap: wrap; gap: 24px 40px; align-items: center; justify-content: space-between;
2568    margin: 88px 0 0; padding: clamp(32px, 5vw, 56px); border-radius: 28px; background: var(--anc-navy); color: var(--anc-white);
2569  }.anc-cta h2, .anc-cta h1 { margin: 0 0 8px; font-size: clamp(26px, 3.4vw, 38px); font-weight: 700; letter-spacing: -0.015em; line-height: 1.15; }
2570  .anc-cta p { margin: 0; max-width: 560px; font-size: 18px; color: rgba(244, 248, 253, .88); }
2571  .anc-btn {
2572    display: inline-flex; align-items: center; gap: 10px; padding: 18px 34px; border-radius: 40px;
2573    background: var(--anc-orange); color: var(--anc-navy); font-size: 19px; font-weight: 700; text-decoration: none; white-space: nowrap;
2574    box-shadow: 0 14px 30px rgba(239, 146, 69, .32); transition: transform .2s ease, box-shadow .2s ease;
2575  }
2576  .anc-btn:hover, .anc-btn:focus-visible { transform: translateY(-2px); box-shadow: 0 18px 36px rgba(239, 146, 69, .42); }
2577  .anc-btn:focus-visible { outline: 3px solid var(--anc-white); outline-offset: 3px; }
2578
2579  @media (max-width: 960px) {
2580    .anc-facts { grid-template-columns: repeat(2, 1fr); }
2581    .anc-trio, .anc-features, .anc-lessons { grid-template-columns: 1fr; }
2582    .anc-timeline { grid-template-columns: 1fr; gap: 28px; padding-left: 4px; }
2583    .anc-timeline::before { left: 13px; right: auto; top: 12px; bottom: 12px; width: 4px; height: auto; background: linear-gradient(180deg, var(--anc-navy), var(--anc-violet) 55%, var(--anc-orange)); }
2584    .anc-timeline li { padding: 0 0 0 52px; }
2585  }
2586  @media (max-width: 560px) {
2587    .anc-facts { grid-template-columns: 1fr; }
2588    .anc-highlight { grid-template-columns: 1fr; }
2589  }
2590  @media (prefers-reduced-motion: reduce) { .anc-btn { transition: none; } }
2591</style>
2592<section class="anc" id="caso-aie-arg" lang="es" aria-labelledby="anc-title-es">
2593  <div class="anc-wrap">
2594
2595    <p class="anc-eyebrow">Caso de éxito · Asociaciones profesionales</p>
2596    <h1 class="anc-title" id="anc-title-es">De un auditorio en Buenos Aires <span class="anc-mark">a toda la Argentina</span></h1>
2597    <p class="anc-lead">
2598      Durante años, la Asociación de Ingenieros Estructurales de la Argentina (AIE ARG) reunió a ingenieros en
2599      capacitaciones presenciales de dos días en Buenos Aires. Con un campus virtual propio, desarrollado por Aulasneo,
2600      mantuvo el encuentro presencial y llevó la formación en vivo a colegas de todo el país. Cuando llegó el COVID-19,
2601      el campus ya estaba listo para adaptarse.
2602    </p>
2603
2604    <ul class="anc-facts" aria-label="Ficha del caso">
2605      <li><span>Cliente</span><strong>Asociación de Ingenieros Estructurales de la Argentina</strong></li>
2606      <li><span>Sector</span><strong>Asociación profesional · Formación continua en ingeniería</strong></li>
2607      <li><span>Desde</span><strong>2018</strong></li>
2608      <li><span>Solución</span><strong>Campus virtual blended, cursos autogestionados y e-commerce</strong></li>
2609    </ul>
2610
2611    
2612    <div class="anc-video">
2613      <iframe src="https://player.vimeo.com/video/1230975057?dnt=1&amp;title=0&amp;byline=0&amp;portrait=0" title="Video" loading="lazy" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9"></iframe>
2614    </div>
2615
2616    <div class="anc-trio">
2617      <article class="anc-card anc-card--challenge">
2618        <h3>El desafío</h3>
2619        <p>
2620          Las capacitaciones de AIE ARG eran un punto de encuentro valioso, pero solo podían aprovecharlas quienes
2621          viajaban a Buenos Aires. En 2018, un grupo de ingenieros jóvenes impulsó una idea: mantener las jornadas
2622          presenciales y, al mismo tiempo, llevar la capacitación en vivo a colegas de todo el país.
2623        </p>
2624      </article>
2625      <article class="anc-card anc-card--solution">
2626        <h3>La solución</h3>
2627        <p>
2628          Aulasneo creó un campus virtual dedicado para la Asociación que conecta el auditorio con quienes participan a
2629          distancia: sesiones en vivo por videoconferencia, exámenes en línea y más formas de participar, todo en un mismo
2630          lugar. El evento presencial y el acceso remoto suceden a la vez.
2631        </p>
2632      </article>
2633      <article class="anc-card anc-card--result">
2634        <h3>El resultado</h3>
2635        <p>
2636          Al terminar el primer año, las inscripciones remotas y
2636a superaban a las presenciales. Y cuando llegó el
2637          COVID-19, la Asociación ya tenía su campus: sumó cursos autogestionados y comercio electrónico, y en pocos días
2638          empezó a ofrecer y vender cursos a distancia.
2639        </p>
2640      </article>
2641    </div>
2642
2643    <h2 class="anc-h2">El recorrido</h2>
2644    <ol class="anc-timeline">
2645      <li>
2646        <span class="anc-when">Antes de 2018</span>
2647        <h4>Aprender juntos en Buenos Aires</h4>
2648        <p>Capacitaciones presenciales de dos días que reunían a ingenieros estructurales en un auditorio.</p>
2649      </li>
2650      <li>
2651        <span class="anc-when">2018</span>
2652        <h4>Una nueva idea</h4>
2653        <p>Mantener el vínculo presencial y ampliar el alcance: nace el campus virtual blended, desarrollado por Aulasneo.</p>
2654      </li>
2655      <li>
2656        <span class="anc-when">Primer año</span>
2657        <h4>Aprendizaje sin distancias</h4>
2658        <p>Las inscripciones remotas superan a las presenciales.</p>
2659      </li>
2660      <li>
2661        <span class="anc-when">2020 · COVID-19</span>
2662        <h4>Lista para adaptarse</h4>
2663        <p>Sobre el mismo campus se suman cursos autogestionados e inscripción online. La venta de cursos a distancia arranca en pocos días.</p>
2664      </li>
2665    </ol>
2666
2667    <div class="anc-highlight" role="note">
2668      <div class="anc-highlight-icon" aria-hidden="true">
2669        <svg width="40" height="40" viewBox="0 0 48 48" fill="none"><path d="M24 36V12M14 21l10-10 10 10" stroke="#062b60" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/></svg>
2670      </div>
2671      <p>
2672        Las inscripciones remotas superaron a las presenciales.
2673        <small>Al final del primer año del campus virtual.</small>
2674      </p>
2675    </div>
2676
2677    <h2 class="anc-h2">Qué incluye el campus de AIE ARG</h2>
2678    <ul class="anc-features">
2679      <li>
2680        <svg viewBox="0 0 48 48" fill="none" aria-hidden="true"><rect x="4" y="12" width="28" height="24" rx="6" stroke="currentColor" stroke-width="4"/><path d="M32 21l12-7v20l-12-7z" stroke="currentColor" stroke-width="4" stroke-linejoin="round"/></svg>
2681        <div><strong>Sesiones en vivo</strong><span>El auditorio y los participantes remotos, en la misma clase.</span></div>
2682      </li>
2683      <li>
2684        <svg viewBox="0 0 48 48" fill="none" aria-hidden="true"><rect x="7" y="5" width="34" height="38" rx="5" stroke="currentColor" stroke-width="4"/><path d="M14 16l4 4 8-8M14 30h20M14 37h12" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>
2685        <div><strong>Exámenes en línea</strong><span>Evaluaciones integradas al recorrido de cada curso.</span></div>
2686      </li>
2687      <li>
2688        <svg viewBox="0 0 48 48" fill="none" aria-hidden="true"><path d="M6 8h22v18H16l-7 6v-6H6zM22 20h20v18h-3v6l-7-6H22z" stroke="currentColor" stroke-width="4" stroke-linejoin="round"/></svg>
2689        <div><strong>Participación</strong><span>Más formas de participar e interactuar en cada curso.</span></div>
2690      </li>
2691      <li>
2692        <svg viewBox="0 0 48 48" fill="none" aria-hidden="true"><circle cx="24" cy="24" r="18" stroke="currentColor" stroke-width="4"/><path d="M24 13v11l7 5" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg>
2693        <div><strong>Cursos autogestionados</strong><span>Cada ingeniero aprende a su ritmo, desde cualquier lugar.</span></div>
2694      </li>
2695      <li>
2696        <svg viewBox="0 0 48 48" fill="none" aria-hidden="true"><path d="M4 8h7l5 24h22l5-17H13" stroke="currentColor" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/><circle cx="19" cy="40" r="3.5" fill="currentColor"/><circle cx="35" cy="40" r="3.5" fill="currentColor"/></svg>
2697        <div><strong>Inscripción online</strong><span>Módulo de e-commerce para ofrecer y vender cursos.</span></div>
2698      </li>
2699      <li>
2700        <svg viewBox="0 0 48 48" fill="none" aria-hidden="true"><path d="M4 18L24 8l20 10-20 10z" stroke="currentColor" stroke-width="4" stroke-linejoin="round"/><path d="M12 22v10c6 6 18 6 24 0V22" stroke="currentColor" stroke-width="4" stroke-linecap="round"/></svg>
2701        <div><strong>Campus propio</strong><span>Un campus virtual dedicado exclusivamente a la Asociación.</span></div>
2702      </li>
2703    </ul>
2704
2705    <h2 class="anc-h2">Por qué funcionó</h2>
2706    <ol class="anc-lessons">
2707      <li><strong>Sumar, no reemplazar</strong><p>El encuentro presencial siguió siendo el centro. El campus lo amplió a quienes no podían viajar.</p></li>
2708      <li><strong>Una base preparada para cambiar</strong><p>Como el campus ya existía, sumar nuevos formatos y vender cursos online fue cuestión de días.</p></li>
2709      <li><strong>La formación como servicio a los socios</strong><p>Colegas de todo el país acceden a la misma capacitación que se dicta en el auditorio.</p></li>
2710    </ol>
2711
2712    <div class="anc-cta">
2713      <div>
2714        <h2>¿Tu organización está lista para crecer?</h2>
2715        <p>Diseñamos campus virtuales para asociaciones profesionales, instituciones educativas y equipos de capacitación.</p>
2716      </div>
2717      <a class="anc-btn" href="/es/contact/">Hablemos
2718        <svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><path d="M5 12h14M13 6l6 6-6 6" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/></svg>
2719      </a>
2720    </div>
2721
2722  </div>
2723</section>
2724`;function Hj(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"AIE ARG: de un auditorio en Buenos Aires a toda la Argentina | Aulasneo",description:"Durante años, la Asociación de Ingenieros Estructurales de la Argentina (AIE ARG) reunió a ingenieros en capacitaciones presenciales de dos días en Buenos…",canonical:"https://aulasneo.com/es/aie-arg-casos-de-exito-con-aulasneo/",hreflangEn:"https://aulasneo.com/aie-arg-success-stories-with-aulasneo/",ogImage:"https://aulasneo.com/media/case-studies/aie-arg/aie-arg-poster-es.jpg"}),t.jsx(mn,{html:Dj,lang:"es"})]})}const Uj=`<style>
2725.ancs {
2726    --ancs-navy: #062B60; --ancs-violet: #4E359E; --ancs-violet-400: #6F51B5;
2727    --ancs-orange: #EF9245; --ancs-orange-300: #FAA95B; --ancs-blue-600: #24497F;
2728    --ancs-white: #FFFFFF; --ancs-gray: #F2F2F2; --ancs-gray-300: #D5DAE2;
2729    font-family: "Quicksand", ui-sans-serif, system-ui, sans-serif;
2730    color: var(--ancs-navy); background: var(--ancs-white);
2731    padding: clamp(56px, 8vw, 112px) 0; line-height: 1.6; -webkit-font-smoothing: antialiased;
2732  }
2733  .ancs *, .ancs *::before, .ancs *::after { box-sizing: border-box; }
2734  .ancs-wrap { max-width: 1160px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); }
2735  .ancs-eyebrow {
2736    display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px;
2737    font-size: 14px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ancs-blue-600);
2738  }
2739  .ancs-eyebrow::before { content: ""; width: 28px; height: 4px; border-radius: 2px; background: var(--ancs-orange); }
2740  .ancs-head { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: start; }
2741  .ancs-title { margin: 0; font-size: clamp(36px, 5.4vw, 64px); font-weight: 700; line-height: 1.1; letter-spacing: -0.025em; }
2742  /* Brand emphasis: the word sits ON the orange pill in navy type (never orange text on white). */
2743  .ancs-loz { display: inline-block; padding: 0 0.32em 0.06em; margin-top: 0.12em; border-radius: 999px; background: var(--ancs-orange); color: var(--ancs-navy); }
2744  .ancs-logo { width: 104px; height: auto; flex: none; }
2745  .ancs-lead { max-width: 760px; margin: 24px 0 0; font-size: clamp(18px, 2vw, 21px); font-weight: 500; color: var(--ancs-blue-600); }
2746  .ancs-tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 0; padding: 0; list-style: none; }
2747  .ancs-tags li { padding: 7px 16px; border-radius: 999px; background: var(--ancs-gray); font-size: 14px; font-weight: 600; color: var(--ancs-navy); }
2748
2749  .ancs-video {
2750    position: relative; margin: clamp(36px, 5vw, 56px) 0 0; border-radius: 22px; overflow: hidden;
2751    background: var(--ancs-navy); box-shadow: 0 30px 70px rgba(6, 43, 96, 0.17); aspect-ratio: 16 / 9;
2752  }.ancs-video video, .ancs-video iframe { display: block; width: 100%; height: 100%; object-fit: cover; }
2753  .ancs-video-note { margin: 12px 0 0; font-size: 14px; font-weight: 500; color: var(--ancs-blue-600); text-align: center; }
2754
2755  .ancs-h3 { margin: clamp(56px, 7vw, 88px) 0 8px; font-size: clamp(26px, 3.2vw, 36px); font-weight: 700; line-height: 1.2; letter-spacing: -0.015em; }
2756  .ancs-sub { margin: 0; max-width: 700px; font-weight: 500; color: var(--ancs-blue-600); }
2757
2758  /* Timeline: two milestones */
2759  .ancs-timeline { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 36px 0 0; padding: 0; list-style: none; }
2760  .ancs-timeline::before {
2761    content: ""; position: absolute; left: 24px; right: 24px; top: 23px; height: 6px; border-radius: 3px;
2762    background: linear-gradient(90deg, var(--ancs-orange) 0%, var(--ancs-orange) 50%, var(--ancs-violet-400) 50%, var(--ancs-violet-400) 100%);
2763  }
2764  .ancs-step { position: relative; padding-top: 64px; }
2765  .ancs-node {
2766    position: absolute; left: 0; top: 0; width: 52px; height: 52px; border-radius: 50%;
2767    background: var(--ancs-white); border: 6px solid var(--ancs-orange); display: grid; place-items: center;
2768  }
2769  .ancs-node::after { content: ""; width: 16px; height: 16px; border-radius: 50%; background: var(--ancs-orange); }
2770  .ancs-step--2020 .ancs-node { border-color: var(--ancs-violet); }
2771  .ancs-step--2020 .ancs-node::after { background: var(--ancs-violet); }
2772  .ancs-card { height: 100%; padding: 28px 28px 30px; border-radius: 22px; background: var(--ancs-white); box-shadow: 0 18px 44px rgba(6, 43, 96, 0.12); border-top: 10px solid var(--ancs-orange); }
2773  .ancs-step--2020 .ancs-card { border-top-color: var(--ancs-violet); }
2774  .ancs-date { display: inline-block; margin: 0 0 6px; padding: 4px 14px; border-radius: 999px; font-size: 15px; font-weight: 700; background: var(--ancs-orange); color: var(--ancs-navy); }
2775  .ancs-step--2020 .ancs-date { background: var(--ancs-violet); color: var(--ancs-white); }
2776  .ancs-card h4 { margin: 10px 0 14px; font-size: 22px; font-weight: 700; line-height: 1.25; }
2777  .ancs-label { margin: 16px 0 4px; font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ancs-blue-600); }
2778  .ancs-card p { margin: 0; font-weight: 500; }
2779
2780  /* What we implemented */
2781  .ancs-feats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 32px 0 0; padding: 0; list-style: none; }
2782  .ancs-feat { padding: 26px 22px; border-radius: 22px; background: var(--ancs-gray); }
2783  .ancs-ic { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--ancs-orange); margin-bottom: 16px; }
2784  .ancs-feat:nth-child(4) .ancs-ic { background: var(--ancs-violet); }
2785  .ancs-ic svg { width: 28px; height: 28px; }
2786  .ancs-feat h4 { margin: 0 0 6px; font-size: 19px; font-weight: 700; line-height: 1.25; }
2787  .ancs-feat p { margin: 0; font-size: 15.5px; font-weight: 500; color: var(--ancs-blue-600); }
2788
2789  /* Results */
2790  .ancs-results { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 32px; margin: 28px 0 0; padding: 0; list-style: none; }
2791  .ancs-results li { position: relative; padding-left: 44px; font-size: 18px; font-weight: 600; }
2792  .ancs-results li::before {
2793    content: ""; position: absolute; left: 0; top: 2px; width: 28px; height: 28px; border-radius: 50%; background: var(--ancs-orange)
2794      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23062B60' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat;
2795  }
2796
2797  /* CTA */
2798  .ancs-cta {
2799    position: relative; overflow: hidden; margin: clamp(56px, 7vw, 88px) 0 0; padding: clamp(36px, 5vw, 56px);
2800    border-radius: 28px; background: var(--ancs-navy); color: var(--ancs-white);
2801    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px;
2802  }
2803  .ancs-cta::after {
2804    content: ""; position: absolute; right: -80px; bottom: -120px; width: 420px; height: 260px; border: 14px solid var(--ancs-orange-300);
2805    border-color: var(--ancs-orange-300) transparent transparent transparent; border-radius: 50%; opacity: 0.55; transform: rotate(-14deg); pointer-events: none;
2806  }
2807  .ancs-cta h3 { margin: 0; max-width: 620px; font-size: clamp(24px, 3vw, 34px); font-weight: 700; line-height: 1.2; }
2808  .ancs-cta p { margin: 8px 0 0; font-weight: 500; color: rgba(244, 248, 253, 0.86); }
2809  .ancs-btn {
2810    position: relative; z-index: 1; display: inline-block; padding: 18px 34px; border-radius: 999px;
2811    background: var(--ancs-orange); color: var(--ancs-navy); font-size: 18px; font-weight: 700; text-decoration: none; white-space: nowrap;
2812    transition: transform 0.2s ease, box-shadow 0.2s ease;
2813  }
2814  .ancs-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(239, 146, 69, 0.35); }
2815  .ancs-btn:focus-visible { outline: 3px solid var(--ancs-white); outline-offset: 3px; }
2816
2817  @media (max-width: 900px) {
2818    .ancs-feats { grid-template-columns: repeat(2, 1fr); }
2819  }
2820  @media (max-width: 680px) {
2821    .ancs-head { grid-template-columns: 1fr; }
2822    .ancs-logo { width: 80px; order: -1; }
2823    .ancs-timeline, .ancs-results, .ancs-feats { grid-template-columns: 1fr; }
2824    .ancs-timeline::before { left: 23px; right: auto; top: 24px; bottom: 24px; width: 6px; height: auto;
2825      background: linear-gradient(180deg, var(--ancs-orange) 0%, var(--ancs-orange) 50%, var(--ancs-violet-400) 50%, var(--ancs-violet-400) 100%); }
2826    .ancs-step { padding: 0 0 0 72px; }
2827    .ancs-btn { white-space: normal; text-align: center; width: 100%; }
2828  }
2829  @media (prefers-reduced-motion: reduce) { .ancs-btn { transition: none; } }
2830</style>
2831<section class="ancs" id="ceef-case" aria-labelledby="ancs-title-en" lang="en">
2832  <div class="ancs-wrap">
2833
2834    <header>
2835      <p class="ancs-eyebrow">Success story · Physical education and sports training</p>
2836      <div class="ancs-head">
2837        <h1 class="ancs-title" id="ancs-title-en">CEEF: learning that<br><span class="ancs-loz">keeps moving</span></h1>
2838        <img class="ancs-logo" src="/media/case-studies/ceef/ceef-logo.png" alt="CEEF logo" width="444" height="600" loading="lazy">
2839      </div>
2840      <p class="ancs-lead">
2841        CEEF provides professional education in physical education and sports training. It first moved from mailed
2842        textbooks to a virtual campus powered by Open edX; then, when the March 2020 lockdown closed classrooms, it
2843        added live classes on the same campus. Teaching never stopped.
2844      </p>
2845      <ul class="ancs-tags" aria-label="Case topics">
2846        <li>Open edX</li><li>Self-paced learning</li><li>Automated grading</li><li>Live classes</li>
2847      </ul>
2848    </header>
2849
2850    <figure class="ancs-video" style="margin-bottom: 0">
2851      <iframe src="https://player.vimeo.com/video/1230492539?dnt=1&amp;title=0&amp;byline=0&amp;portrait=0" title="Video: CEEF, learning that keeps moving. An Aulasneo customer story." loading="lazy" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9"></iframe>
2852    </figure>
2853    <p class="ancs-video-note">60-second video with English subtitles.</p>
2854
2855    <h3 class="ancs-h3">Two milestones, one campus</h3>
2856    <p class="ancs-sub">CEEF’s story with Aulasneo has two milestones: the arrival of the virtual campus and the addition of live classes.</p>
2857
2858    <ol class="ancs-timeline">
2859      <li class="ancs-step">
2860        <span class="ancs-node" aria-hidden="true"></span>
2861        <article class="ancs-card">
2862          <span class="ancs-date">2017</span>
2863          <h4>From mailed books to an online campus</h4>
2864          <p class="ancs-label">The challenge</p>
2865          <p>Distance learners received printed books by mail. Exam answers came back by post or email, for
2866            instructors to grade manually.</p>
2867          <p class="ancs-label">The solution</p>
2868          <p>Aulasneo implemented a virtual campus powered by Open edX. CEEF gradually moved its distance courses
2869            online, introducing self-paced learning and automated exam grading.</p>
2870        </article>
2871      </li>
2872      <li class="ancs-step ancs-step--2020">
2873        <span class="ancs-node" aria-hidden="true"></span>
2874        <article class="ancs-card">
2875          <span class="ancs-date">March 2020</span>
2876          <h4>When classrooms closed, teaching continued</h4>
2877          <p class="ancs-label">The challenge</p>
2878          <p>Lockdown closed classrooms. CEEF needed to bring its live teaching online, too, in real
2879            time.</p>
2880          <p class="ancs-label">The solution</p>
2881          <p>Aulasneo enabled live sessions within the campus, helping CEEF continue teaching during lockdown and
2882            combining independent study with real-time classes.</p>
2883        </article>
2884      </li>
2885    </ol>
2886
2887    <h3 class="ancs-h3">What we implemented</h3>
2888    <ul class="ancs-feats">
2889      <li class="ancs-feat">
2890        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><path d="M4 18 L24 8 L44 18 L24 28 Z M12 22 V32 C18 38 30 38 36 32 V22" fill="none" stroke="#062B60" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/></svg></span>
2891        <h4>Open edX virtual campus</h4>
2892        <p>A dedicated campus to organize and publish CEEF’s courses.</p>
2893      </li>
2894      <li class="ancs-feat">
2895        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><circle cx="24" cy="24" r="18" fill="none" stroke="#062B60" stroke-width="4"/><path d="M24 13 V24 L31 29" fill="none" stroke="#062B60" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg></span>
2896        <h4>Self-paced courses</h4>
2897        <p>Each learner progresses at their own pace, from wherever they are.</p>
2898      </li>
2899      <li class="ancs-feat">
2900        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><path d="M10 25 L20 35 L38 14" fill="none" stroke="#062B60" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/></svg></span>
2901        <h4>Automated exam grading</h4>
2902        <p>Multiple-choice assessments with instant feedback.</p>
2903      </li>
2904      <li class="ancs-feat">
2905        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><rect x="4" y="12" width="28" height="24" rx="6" fill="none" stroke="#FFFFFF" stroke-width="4"/><path d="M32 21 L44 14 V34 L32 27 Z" fill="none" stroke="#FFFFFF" stroke-width="4" stroke-linejoin="round"/></svg></span>
2906        <h4>Live classes</h4>
2907        <p>Real-time sessions built into the same campus.</p>
2908      </li>
2909    </ul>
2910
2911    <h3 class="ancs-h3">Results</h3>
2912    <ul class="ancs-results">
2913      <li>Distance courses gradually moved online.</li>
2914      <li>Exams graded automatically, without manual processes.</li>
2915      <li>Teaching continuity through the 2020 lockdown.</li>
2916      <li>One campus for both independent study and real-time classes.</li>
2917    </ul>
2918
2919    <aside class="ancs-cta" aria-label="Contact">
2920      <div>
2921        <h3>Are your learning needs evolving?</h3>
2922        <p>Aulasneo helps you move forward. Let’s build your learning platform.</p>
2923      </div>
2924      <a class="ancs-btn" href="/contact/">Contact us</a>
2925    </aside>
2926
2927  </div>
2928</section>
2929`;function Bj(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"CEEF Success Story: learning that keeps moving | Aulasneo",description:"CEEF provides professional education in physical education and sports training.",canonical:"https://aulasneo.com/ceef-success-stories-with-aulasneo/",hreflangEs:"https://aulasneo.com/es/ceef-casos-de-exito-con-aulasneo/",ogImage:"https://aulasneo.com/media/case-studies/ceef/ceef-case-en-poster.jpg"}),t.jsx(mn,{html:Uj,lang:"en"})]})}const Wj=`<style>
2930.ancs {
2931    --ancs-navy: #062B60; --ancs-violet: #4E359E; --ancs-violet-400: #6F51B5;
2932    --ancs-orange: #EF9245; --ancs-orange-300: #FAA95B; --ancs-blue-600: #24497F;
2933    --ancs-white: #FFFFFF; --ancs-gray: #F2F2F2; --ancs-gray-300: #D5DAE2;
2934    font-family: "Quicksand", ui-sans-serif, system-ui, sans-serif;
2935    color: var(--ancs-navy); background: var(--ancs-white);
2936    padding: clamp(56px, 8vw, 112px) 0; line-height: 1.6; -webkit-font-smoothing: antialiased;
2937  }
2938  .ancs *, .ancs *::before, .ancs *::after { box-sizing: border-box; }
2939  .ancs-wrap { max-width: 1160px; margin: 0 auto; padding: 0 clamp(20px, 4vw, 40px); }
2940  .ancs-eyebrow {
2941    display: inline-flex; align-items: center; gap: 10px; margin: 0 0 18px;
2942    font-size: 14px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ancs-blue-600);
2943  }
2944  .ancs-eyebrow::before { content: ""; width: 28px; height: 4px; border-radius: 2px; background: var(--ancs-orange); }
2945  .ancs-head { display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: start; }
2946  .ancs-title { margin: 0; font-size: clamp(36px, 5.4vw, 64px); font-weight: 700; line-height: 1.1; letter-spacing: -0.025em; }
2947  /* Énfasis de marca: la palabra va SOBRE la píldora naranja con texto navy (nunca texto naranja sobre blanco). */
2948  .ancs-loz { display: inline-block; padding: 0 0.32em 0.06em; margin-top: 0.12em; border-radius: 999px; background: var(--ancs-orange); color: var(--ancs-navy); }
2949  .ancs-logo { width: 104px; height: auto; flex: none; }
2950  .ancs-lead { max-width: 760px; margin: 24px 0 0; font-size: clamp(18px, 2vw, 21px); font-weight: 500; color: var(--ancs-blue-600); }
2951  .ancs-tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 28px 0 0; padding: 0; list-style: none; }
2952  .ancs-tags li { padding: 7px 16px; border-radius: 999px; background: var(--ancs-gray); font-size: 14px; font-weight: 600; color: var(--ancs-navy); }
2953
2954  .ancs-video {
2955    position: relative; margin: clamp(36px, 5vw, 56px) 0 0; border-radius: 22px; overflow: hidden;
2956    background: var(--ancs-navy); box-shadow: 0 30px 70px rgba(6, 43, 96, 0.17); aspect-ratio: 16 / 9;
2957  }.ancs-video video, .ancs-video iframe { display: block; width: 100%; height: 100%; object-fit: cover; }
2958  .ancs-video-note { margin: 12px 0 0; font-size: 14px; font-weight: 500; color: var(--ancs-blue-600); text-align: center; }
2959
2960  .ancs-h3 { margin: clamp(56px, 7vw, 88px) 0 8px; font-size: clamp(26px, 3.2vw, 36px); font-weight: 700; line-height: 1.2; letter-spacing: -0.015em; }
2961  .ancs-sub { margin: 0; max-width: 700px; font-weight: 500; color: var(--ancs-blue-600); }
2962
2963  /* Línea de tiempo: dos hitos */
2964  .ancs-timeline { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin: 36px 0 0; padding: 0; list-style: none; }
2965  .ancs-timeline::before {
2966    content: ""; position: absolute; left: 24px; right: 24px; top: 23px; height: 6px; border-radius: 3px;
2967    background: linear-gradient(90deg, var(--ancs-orange) 0%, var(--ancs-orange) 50%, var(--ancs-violet-400) 50%, var(--ancs-violet-400) 100%);
2968  }
2969  .ancs-step { position: relative; padding-top: 64px; }
2970  .ancs-node {
2971    position: absolute; left: 0; top: 0; width: 52px; height: 52px; border-radius: 50%;
2972    background: var(--ancs-white); border: 6px solid var(--ancs-orange); display: grid; place-items: center;
2973  }
2974  .ancs-node::after { content: ""; width: 16px; height: 16px; border-radius: 50%; background: var(--ancs-orange); }
2975  .ancs-step--2020 .ancs-node { border-color: var(--ancs-violet); }
2976  .ancs-step--2020 .ancs-node::after { background: var(--ancs-violet); }
2977  .ancs-card { height: 100%; padding: 28px 28px 30px; border-radius: 22px; background: var(--ancs-white); box-shadow: 0 18px 44px rgba(6, 43, 96, 0.12); border-top: 10px solid var(--ancs-orange); }
2978  .ancs-step--2020 .ancs-card { border-top-color: var(--ancs-violet); }
2979  .ancs-date { display: inline-block; margin: 0 0 6px; padding: 4px 14px; border-radius: 999px; font-size: 15px; font-weight: 700; background: var(--ancs-orange); color: var(--ancs-navy); }
2980  .ancs-step--2020 .ancs-date { background: var(--ancs-violet); color: var(--ancs-white); }
2981  .ancs-card h4 { margin: 10px 0 14px; font-size: 22px; font-weight: 700; line-height: 1.25; }
2982  .ancs-label { margin: 16px 0 4px; font-size: 13px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ancs-blue-600); }
2983  .ancs-card p { margin: 0; font-weight: 500; }
2984
2985  /* Qué implementamos */
2986  .ancs-feats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin: 32px 0 0; padding: 0; list-style: none; }
2987  .ancs-feat { padding: 26px 22px; border-radius: 22px; background: var(--ancs-gray); }
2988  .ancs-ic { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--ancs-orange); margin-bottom: 16px; }
2989  .ancs-feat:nth-child(4) .ancs-ic { background: var(--ancs-violet); }
2990  .ancs-ic svg { width: 28px; height: 28px; }
2991  .ancs-feat h4 { margin: 0 0 6px; font-size: 19px; font-weight: 700; line-height: 1.25; }
2992  .ancs-feat p { margin: 0; font-size: 15.5px; font-weight: 500; color: var(--ancs-blue-600); }
2993
2994  /* Resultados */
2995  .ancs-results { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 32px; margin: 28px 0 0; padding: 0; list-style: none; }
2996  .ancs-results li { position: relative; padding-left: 44px; font-size: 18px; font-weight: 600; }
2997  .ancs-results li::before {
2998    content: ""; position: absolute; left: 0; top: 2px; width: 28px; height: 28px; border-radius: 50%; background: var(--ancs-orange)
2999      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%23062B60' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 18px no-repeat;
3000  }
3001
3002  /* CTA */
3003  .ancs-cta {
3004    position: relative; overflow: hidden; margin: clamp(56px, 7vw, 88px) 0 0; padding: clamp(36px, 5vw, 56px);
3005    border-radius: 28px; background: var(--ancs-navy); color: var(--ancs-white);
3006    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 28px;
3007  }
3008  .ancs-cta::after {
3009    content: ""; position: absolute; right: -80px; bottom: -120px; width: 420px; height: 260px; border: 14px solid var(--ancs-orange-300);
3010    border-color: var(--ancs-orange-300) transparent transparent transparent; border-radius: 50%; opacity: 0.55; transform: rotate(-14deg); pointer-events: none;
3011  }
3012  .ancs-cta h3 { margin: 0; max-width: 620px; font-size: clamp(24px, 3vw, 34px); font-weight: 700; line-height: 1.2; }
3013  .ancs-cta p { margin: 8px 0 0; font-weight: 500; color: rgba(244, 248, 253, 0.86); }
3014  .ancs-btn {
3015    position: relative; z-index: 1; display: inline-block; padding: 18px 34px; border-radius: 999px;
3016    background: var(--ancs-orange); color: var(--ancs-navy); font-size: 18px; font-weight: 700; text-decoration: none; white-space: nowrap;
3017    transition: transform 0.2s ease, box-shadow 0.2s ease;
3018  }
3019  .ancs-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(239, 146, 69, 0.35); }
3020  .ancs-btn:focus-visible { outline: 3px solid var(--ancs-white); outline-offset: 3px; }
3021
3022  @media (max-width: 900px) {
3023    .ancs-feats { grid-template-columns: repeat(2, 1fr); }
3024  }
3025  @media (max-width: 680px) {
3026    .ancs-head { grid-template-columns: 1fr; }
3027    .ancs-logo { width: 80px; order: -1; }
3028    .ancs-timeline, .ancs-results, .ancs-feats { grid-template-columns: 1fr; }
3029    .ancs-timeline::before { left: 23px; right: auto; top: 24px; bottom: 24px; width: 6px; height: auto;
3030      background: linear-gradient(180deg, var(--ancs-orange) 0%, var(--ancs-orange) 50%, var(--ancs-violet-400) 50%, var(--ancs-violet-400) 100%); }
3031    .ancs-step { padding: 0 0 0 72px; }
3032    .ancs-btn { white-space: normal; text-align: center; width: 100%; }
3033  }
3034  @media (prefers-reduced-motion: reduce) { .ancs-btn { transition: none; } }
3035</style>
3036<section class="ancs" id="caso-ceef" aria-labelledby="ancs-title-es" lang="es">
3037  <div class="ancs-wrap">
3038
3039    <header>
3040      <p class="ancs-eyebrow">Caso de éxito · Educación física y entrenamiento deportivo</p>
3041      <div class="ancs-head">
3042        <h1 class="ancs-title" id="ancs-title-es">CEEF: aprendizaje<br><span class="ancs-loz">en movimiento</span></h1>
3043        <img class="ancs-logo" src="/media/case-studies/ceef/ceef-logo.png" alt="Logo de CEEF" width="444" height="600" loading="lazy">
3044      </div>
3045      <p class="ancs-lead">
3046        CEEF forma profesionales en educación física y entrenamiento deportivo. Primero pasó de los libros enviados
3047        por correo a un campus virtual con Open edX; después, cuando el confinamiento de marzo de 2020 cerró las aulas,
3048        sumó clases en vivo en el mismo campus. La enseñanza nunca se detuvo.
3049      </p>
3050      <ul class="ancs-tags" aria-label="Temas del caso">
3051        <li>Open edX</li><li>Aprendizaje autogestionado</li><li>Corrección automática</li><li>Clases en vivo</li>
3052      </ul>
3053    </header>
3054
3055    <figure class="ancs-video" style="margin-bottom: 0">
3056      <iframe src="https://player.vimeo.com/video/1230492538?dnt=1&amp;title=0&amp;byline=0&amp;portrait=0" title="Video: CEEF, aprendizaje en movimiento. Historia de cliente de Aulasneo." loading="lazy" allow="autoplay; fullscreen; picture-in-picture" allowfullscreen style="border:0;width:100%;aspect-ratio:16/9"></iframe>
3057    </figure>
3058    <p class="ancs-video-note">Video de 70 segundos con subtítulos en español.</p>
3059
3060    <h3 class="ancs-h3">Dos momentos, un mismo campus</h3>
3061    <p class="ancs-sub">La historia de CEEF con Aulasneo tiene dos hitos: la llegada del campus virtual y la incorporación de las clases en vivo.</p>
3062
3063    <ol class="ancs-timeline">
3064      <li class="ancs-step">
3065        <span class="ancs-node" aria-hidden="true"></span>
3066        <article class="ancs-card">
3067          <span class="ancs-date">2017</span>
3068          <h4>De los libros por correo a un campus online</h4>
3069          <p class="ancs-label">El desafío</p>
3070          <p>Los estudiantes a distancia recibían libros impresos por correo. Las respuestas de los exámenes volvían por
3071            correo postal o electrónico, y los docentes las corregían a mano.</p>
3072          <p class="ancs-label">La solución</p>
3073          <p>Aulasneo implementó un campus virtual basado en Open edX. CEEF fue llevando sus cursos a distancia al
3074            entorno online de forma gradual, con aprendizaje autogestionado y corrección automática de exámenes.</p>
3075        </article>
3076      </li>
3077      <li class="ancs-step ancs-step--2020">
3078        <span class="ancs-node" aria-hidden="true"></span>
3079        <article class="ancs-card">
3080          <span class="ancs-date">Marzo de 2020</span>
3081          <h4>Cuando las aulas cerraron, la enseñanza siguió</h4>
3082          <p class="ancs-label">El desafío</p>
3083          <p>El confinamiento cerró las aulas. CEEF necesitaba llevar también sus clases presenciales al entorno online,
3084            en tiempo real.</p>
3085          <p class="ancs-label">La solución</p>
3086          <p>Aulasneo habilitó sesiones en vivo dentro del campus. Así CEEF pudo seguir enseñando durante el
3087            confinamiento, combinando el estudio independiente con clases en tiempo real.</p>
3088        </article>
3089      </li>
3090    </ol>
3091
3092    <h3 class="ancs-h3">Qué implementamos</h3>
3093    <ul class="ancs-feats">
3094      <li class="ancs-feat">
3095        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><path d="M4 18 L24 8 L44 18 L24 28 Z M12 22 V32 C18 38 30 38 36 32 V22" fill="none" stroke="#062B60" stroke-width="4" stroke-linejoin="round" stroke-linecap="round"/></svg></span>
3096        <h4>Campus virtual con Open edX</h4>
3097        <p>Un campus propio para organizar y publicar los cursos de CEEF.</p>
3098      </li>
3099      <li class="ancs-feat">
3100        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><circle cx="24" cy="24" r="18" fill="none" stroke="#062B60" stroke-width="4"/><path d="M24 13 V24 L31 29" fill="none" stroke="#062B60" stroke-width="4" stroke-linecap="round" stroke-linejoin="round"/></svg></span>
3101        <h4>Cursos autogestionados</h4>
3102        <p>Cada estudiante avanza a su propio ritmo, desde donde esté.</p>
3103      </li>
3104      <li class="ancs-feat">
3105        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><path d="M10 25 L20 35 L38 14" fill="none" stroke="#062B60" stroke-width="5" stroke-linecap="round" stroke-linejoin="round"/></svg></span>
3106        <h4>Corrección automática de exámenes</h4>
3107        <p>Evaluaciones de opción múltiple con devolución inmediata.</p>
3108      </li>
3109      <li class="ancs-feat">
3110        <span class="ancs-ic" aria-hidden="true"><svg viewBox="0 0 48 48"><rect x="4" y="12" width="28" height="24" rx="6" fill="none" stroke="#FFFFFF" stroke-width="4"/><path d="M32 21 L44 14 V34 L32 27 Z" fill="none" stroke="#FFFFFF" stroke-width="4" stroke-linejoin="round"/></svg></span>
3111        <h4>Clases en vivo</h4>
3112        <p>Sesiones en tiempo real integradas al mismo campus.</p>
3113      </li>
3114    </ul>
3115
3116    <h3 class="ancs-h3">Resultados</h3>
3117    <ul class="ancs-results">
3118      <li>Migración gradual de los cursos a distancia al entorno online.</li>
3119      <li>Exámenes corregidos automáticamente, sin procesos manuales.</li>
3120      <li>Continuidad de la enseñanza durante el confinamiento de 2020.</li>
3121      <li>Un solo campus para el estudio independiente y las clases en tiempo real.</li>
3122    </ul>
3123
3124    <aside class="ancs-cta" aria-label="Contacto">
3125      <div>
3126        <h3>¿Tus necesidades de aprendizaje están cambiando?</h3>
3127        <p>Aulasneo te ayuda a avanzar. Construyamos tu plataforma de aprendizaje.</p>
3128      </div>
3129      <a class="ancs-btn" href="/es/contact/">Contáctanos</a>
3130    </aside>
3131
3132  </div>
3133</section>
3134`;function Gj(){return t.jsxs(t.Fragment,{children:[t.jsx(D,{title:"Caso de éxito CEEF: aprendizaje en movimiento | Aulasneo",description:"CEEF forma profesionales en educación física y entrenamiento deportivo.",canonical:"https://aulasneo.com/es/ceef-casos-de-exito-con-aulasneo/",hreflangEn:"https://aulasneo.com/ceef-success-stories-with-aulasneo/",ogImage:"https://aulasneo.com/media/case-studies/ceef/ceef-case-es-poster.jpg"}),t.jsx(mn,{html:Wj,lang:"es"})]})}const Pi=768;function Vj(){const[e,n]=v.useState(void 0);return v.useEffect(()=>{const a=window.matchMedia(`(max-width: ${Pi-1}px)`),s=()=>{n(window.innerWidth<Pi)};return a.addEventListener("change",s),n(window.innerWidth<Pi),()=>a.removeEventListener("change",s)},[]),!!e}function Op(){const[e,n]=v.useState(!1),{language:a,setLanguage:s}=J(),[o,r]=Jt(),i=[{code:"en",name:"English",flag:"🇺🇸"},{code:"es",name:"Español",flag:"🇪🇸"}],l=i.find(c=>c.code===a);return t.jsxs("div",{className:"relative",children:[t.jsxs("button",{onClick:()=>n(!e),className:"flex items-center space-x-2 px-3 py-2 rounded-lg hover:bg-gray-100 transition-colors",children:[t.jsx(Wf,{className:"w-4 h-4 text-gray-600"}),t.jsxs("span",{className:"text-sm font-medium text-gray-700 font-quicksand",children:[l==null?void 0:l.flag," ",l==null?void 0:l.name]}),t.jsx(qb,{className:"w-4 h-4 text-gray-600"})]}),e&&t.jsx("div",{className:"absolute right-0 mt-2 w-48 bg-white rounded-lg shadow-lg border border-gray-200 py-2 z-10",children:i.map(c=>t.jsxs("button",{onClick:()=>{const d=c.code,u=Pg(o,d);u&&r(u),s(d),n(!1)},className:`w-full text-left px-4 py-2 hover:bg-gray-100 transition-colors flex items-center space-x-2 ${a===c.code?"bg-orange/10 text-orange":"text-gray-700"}`,children:[t.jsx("span",{className:"text-lg",children:c.flag}),t.jsx("span",{className:"font-quicksand",children:c.name})]},c.code))})]})}const $j="/assets/logo-estandar-bicolor%20ajustado_1752437269404-DV3TzubE.png";function Qj(){const[e,n]=v.useState(!1),[a,s]=v.useState(!1),[o]=Jt(),r=Vj(),{t:i,language:l}=J(),c=p=>Tg(p,l);v.useEffect(()=>{const p=()=>{n(window.scrollY>50)};return window.addEventListener("scroll",p),()=>window.removeEventListener("scroll",p)},[]),v.useEffect(()=>{s(!1)},[o]);const d=[{href:c("/solutions/"),label:i("nav.solutions"),hasDropdown:!0},{href:c("/pricing/"),label:i("nav.pricing")},{href:c("/case-studies/"),label:i("nav.caseStudies")},{href:c("/blog/"),label:i("nav.blog")},{href:c("/contact/"),label:i("nav.contact")}],u=[{href:c("/solutions/owly/"),label:i("solutions.owly")},{href:c("/solutions/openedx/"),label:i("solutions.openedx")},{href:c("/solutions/panorama/"),label:i("solutions.panorama")},{href:c("/open-edx-pricing/"),label:"Open edX Pricing"}];return t.jsx("header",{className:`fixed w-full top-0 z-50 transition-all duration-300 ${e?"bg-white/95 backdrop-blur-md shadow-lg":"bg-white/90 backdrop-blur-md"}`,children:t.jsxs("nav",{className:"container mx-auto px-4 py-4",children:[t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx(E,{href:c("/"),className:"flex items-center",children:t.jsx("img",{src:$j,alt:"Aulasneo",className:"h-8 w-auto"})}),t.jsxs("div",{className:"hidden md:flex items-center space-x-8",children:[d.map(p=>t.jsxs("div",{className:"relative group",children:[t.jsxs(E,{href:p.href,className:`text-gray-600 hover:text-orange transition-colors flex items-center font-quicksand ${o===p.href?"text-orange font-medium":""}`,children:[p.label,p.hasDropdown&&t.jsx("i",{className:"fas fa-chevron-down ml-1 text-xs"})]}),p.hasDropdown&&t.jsx("div",{className:"absolute top-full left-0 mt-2 w-48 bg-white rounded-lg shadow-lg op
3134acity-0 invisible group-hover:opacity-100 group-hover:visible transition-all duration-300 border border-gray-200",children:u.map(m=>t.jsx(E,{href:m.href,className:"block px-4 py-3 text-sm text-gray-600 hover:text-orange hover:bg-gray-50 first:rounded-t-lg last:rounded-b-lg font-quicksand",children:m.label},m.href))})]},p.href)),t.jsx(Op,{}),t.jsx(E,{href:c("/contact/"),className:"bg-orange text-white px-6 py-2 rounded-lg hover:bg-orange/90 transition-colors font-medium font-quicksand",children:i("common.contact.us")})]}),t.jsx("button",{onClick:()=>s(!a),className:"md:hidden text-neutral-600 hover:text-primary transition-colors",children:t.jsx("i",{className:`fas ${a?"fa-times":"fa-bars"} text-xl`})})]}),r&&t.jsx("div",{className:`md:hidden transition-all duration-300 overflow-hidden ${a?"max-h-96 opacity-100":"max-h-0 opacity-0"}`,children:t.jsxs("div",{className:"pt-4 pb-4 space-y-4",children:[d.map(p=>t.jsxs("div",{children:[t.jsx(E,{href:p.href,className:`block text-neutral-600 hover:text-primary transition-colors ${o===p.href?"text-primary font-medium":""}`,children:p.label}),p.hasDropdown&&t.jsx("div",{className:"ml-4 mt-2 space-y-2",children:u.map(m=>t.jsx(E,{href:m.href,className:"block text-sm text-neutral-500 hover:text-primary transition-colors",children:m.label},m.href))})]},p.href)),t.jsx("div",{className:"pt-2",children:t.jsx(Op,{})}),t.jsx(E,{href:c("/contact/"),className:"bg-orange text-white px-6 py-2 rounded-lg hover:bg-orange/90 transition-colors font-medium text-center block font-quicksand",children:i("common.contact.us")})]})})]})})}const Yj="/assets/aulasneo-white-logo_1752437403756-5IJBqJEx.png";function Kj(){const{t:e,language:n}=J(),a=s=>Tg(s,n);return t.jsx("footer",{className:"text-white py-12",style:{backgroundColor:"#062b60"},children:t.jsxs("div",{className:"container mx-auto px-4",children:[t.jsxs("div",{className:"grid md:grid-cols-4 gap-8",children:[t.jsxs("div",{children:[t.jsx("div",{className:"mb-4",children:t.jsx("img",{src:Yj,alt:"Aulasneo",className:"h-10 w-auto"})}),t.jsx("p",{className:"text-white/70 mb-4 font-quicksand",children:e("footer.company")}),t.jsxs("div",{className:"flex space-x-4",children:[t.jsx("a",{href:"https://www.linkedin.com/company/aulasneo",target:"_blank",rel:"noopener noreferrer",className:"text-white/70 hover:text-white transition-colors","data-testid":"link-linkedin",children:t.jsx("i",{className:"fab fa-linkedin text-xl"})}),t.jsx("a",{href:"https://x.com/aulasneo1",target:"_blank",rel:"noopener noreferrer",className:"text-white/70 hover:text-white transition-colors","data-testid":"link-x-twitter",children:t.jsx("i",{className:"fab fa-x-twitter text-xl"})}),t.jsx("a",{href:"https://github.com/aulasneo",target:"_blank",rel:"noopener noreferrer",className:"text-white/70 hover:text-white transition-colors","data-testid":"link-github",children:t.jsx("i",{className:"fab fa-github text-xl"})})]})]}),t.jsxs("div",{children:[t.jsx("h4",{className:"text-lg font-semibold mb-4 font-quicksand",children:e("footer.solutions")}),t.jsxs("ul",{className:"space-y-2",children:[t.jsx("li",{children:t.jsx(E,{href:a("/solutions/owly/"),className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:e("solutions.owly")})}),t.jsx("li",{children:t.jsx(E,{href:a("/solutions/openedx/"),className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:e("solutions.openedx")})}),t.jsx("li",{children:t.jsx(E,{href:a("/solutions/panorama/"),className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:e("solutions.panorama")})}),t.jsx("li",{children:t.jsx(E,{href:a("/solutions/"),className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:"Custom Services"})})]})]}),t.jsxs("div",{children:[t.jsx("h4",{className:"text-lg font-semibold mb-4 font-quicksand",children:e("footer.resources")}),t.jsxs("ul",{className:"space-y-2",children:[t.jsx("li",{children:t.jsx(E,{href:a("/blog/"),className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:e("footer.blog")})}),t.jsx("li",{children:t.jsx(E,{href:a("/case-studies/"),className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:e("footer.caseStudies")})}),t.jsx("li",{children:t.jsx("a",{href:"https://docs.aulasneo.com/",target:"_blank",rel:"noopener noreferrer",className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:e("footer.documentation")})}),t.jsx("li",{children:t.jsx(E,{href:a("/support/"),className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:e("footer.support")})}),t.jsx("li",{children:t.jsx(E,{href:a("/pricing/"),className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:e("footer.pricing")})})]})]}),t.jsxs("div",{children:[t.jsx("h4",{className:"text-lg font-semibold mb-4 font-quicksand",children:e("footer.company.title")}),t.jsxs("ul",{className:"space-y-2",children:[t.jsx("li",{children:t.jsx(E,{href:a("/about/"),className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:e("footer.aboutUs")})}
3134),t.jsx("li",{children:t.jsx(E,{href:a("/contact/"),className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:e("footer.contact")})}),t.jsx("li",{children:t.jsx(E,{href:a("/privacy-policy/"),className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:e("footer.privacy")})}),t.jsx("li",{children:t.jsx(E,{href:a("/terms-of-service/"),className:"text-white/70 hover:text-orange transition-colors font-quicksand",children:e("footer.terms")})})]})]})]}),t.jsx("div",{className:"border-t border-white/20 mt-8 pt-8 text-center",children:t.jsx("p",{className:"text-white/70 font-quicksand",children:e("footer.copyright")})})]})})}function Zj(){const[e,n]=v.useState(!1);v.useEffect(()=>{const s=()=>{n(window.scrollY>500)};return window.addEventListener("scroll",s),()=>window.removeEventListener("scroll",s)},[]);const a=()=>{window.scrollTo({top:0,behavior:"smooth"})};return t.jsx(wr,{onClick:a,className:`fixed bottom-8 right-8 w-12 h-12 rounded-full shadow-lg bg-primary hover:bg-primary/90 transition-all duration-300 p-0 ${e?"opacity-100 translate-y-0":"opacity-0 translate-y-2 pointer-events-none"}`,"aria-label":"Back to top",children:t.jsx("i",{className:"fas fa-arrow-up text-white"})})}function Jj(){return v.useEffect(()=>{const e=document.querySelector('script[id="organization-schema"]');e&&e.remove();const n={"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://aulasneo.com/#organization",name:"Aulasneo",url:"https://aulasneo.com",logo:"https://aulasneo.com/images/logo-color.png",description:"Aulasneo is a global EdTech company specializing in AI-powered LMS solutions, including managed Open edX hosting, the Owly AI agent, and Panorama cross-platform learning analytics.",foundingDate:"2016",foundingLocation:{"@type":"Place",name:"Buenos Aires, Argentina"},address:{"@type":"PostalAddress",addressLocality:"Buenos Aires",addressCountry:"AR"},founder:[{"@type":"Person",name:"Esteban Etcheverry",jobTitle:"Executive Director & Cofounder",sameAs:"https://www.linkedin.com/in/estebanetcheverry/"},{"@type":"Person",name:"Andrés González",jobTitle:"CTO & Cofounder",sameAs:"https://www.linkedin.com/in/gonzalezandres/"}],sameAs:["https://www.linkedin.com/company/aulasneo/","https://openedx.org/marketplace/aulasneo/","https://aws.amazon.com/marketplace/pp/prodview-o62kw32otnjom"],contactPoint:[{"@type":"ContactPoint",contactType:"sales",email:"[email protected]",areaServed:"Worldwide",availableLanguage:["en","es"]}]},{"@type":"WebSite","@id":"https://aulasneo.com/#website",name:"Aulasneo",url:"https://aulasneo.com",inLanguage:["es","en"],publisher:{"@id":"https://aulasneo.com/#organization"}}]},a=document.createElement("script");return a.id="organization-schema",a.type="application/ld+json",a.textContent=JSON.stringify(n,null,2),document.head.appendChild(a),()=>{const s=document.querySelector('script[id="organization-schema"]');s&&s.remove()}},[]),null}const ek={"/":{en:"Home",es:"Inicio"},"/about":{en:"About",es:"Acerca de"},"/solutions":{en:"Solutions",es:"Soluciones"},"/solutions/owly":{en:"Owly AI Agent",es:"Owly AI Agent"},"/solutions/openedx":{en:"Open edX LMS",es:"Open edX LMS"},"/solutions/panorama":{en:"Panorama Analytics",es:"Panorama Analytics"},"/blog":{en:"Blog",es:"Blog"},"/contact":{en:"Contact",es:"Contacto"},"/thank-you":{en:"Thank You",es:"Gracias"},"/pricing":{en:"Pricing",es:"Precios"},"/case-studies":{en:"Success Stories",es:"Casos de éxito"},"/support":{en:"Support",es:"Soporte"},"/faq/open-edx":{en:"Open edX FAQ",es:"FAQ Open edX"},"/faq/ai-agent-education":{en:"AI Agent Education FAQ",es:"FAQ Agente IA Educación"},"/awsomecampus-udesa":{en:"AWSome Campus at UDESA",es:"AWSome Campus en UDESA"},"/newsletter":{en:"Newsletter",es:"Newsletter"},"/privacy-policy":{en:"Privacy Policy",es:"Política de Privacidad"},"/terms-of-service":{en:"Terms of Service",es:"Términos de Servicio"},"/open-edx-pricing":{en:"Open edX Pricing",es:"Precios de Open edX"},"/open-edx-hosting":{en:"Open edX Hosting",es:"Hosting de Open edX"},"/blog/what-is-open-edx-overview-features-benefits":{en:"What is Open edX?",es:"¿Qué es Open edX?"},"/lms-customization-a-successful-approach":{en:"LMS Customization: A Successful Approach",es:"Personalización de LMS: Un Enfoque Exitoso"},"/whats-the-difference-between-edx-and-open-edx":{en:"edX vs Open edX — What's the Difference?",es:"Cuál es la Diferencia entre edX y Open edX"},"/tips-to-choose-the-right-lms-for-your-organization":{en:"Tips to Choose the Right LMS for Your Organization",es:"Consejos para Elegir el LMS Correcto"},"/elevate-your-course-design-in-open-edx-studio":{en:"Elevate Your Course Design in Open edX Studio",es:"Mejora el Diseño de tus Cursos en Open edX Studio"},"/open-edx-analytics-impact-open-courses":{en:"Open edX Analytics: Evaluating the Impact of Open Courses",es:"Analítica Open edX: Impacto de Cursos Abiertos"},"/icdeba-success-stories-with-aulasneo":{en:"ICdeBA: Open edX Implementation Success Story",es:"ICdeBA: Casos de Éxito con Aulasneo"}
3134,"/cap-net-success-stories-with-aulasneo":{en:"Cap-Net UNDP Success Story",es:"Cap-Net: Casos de Éxito con Aulasneo"},"/es/about":{en:"About",es:"Acerca de"},"/es/solutions":{en:"Solutions",es:"Soluciones"},"/es/solutions/openedx":{en:"Open edX LMS",es:"Open edX LMS"},"/es/contact":{en:"Contact",es:"Contacto"},"/es/pricing":{en:"Pricing",es:"Precios"},"/es/open-edx-hosting":{en:"Open edX Hosting",es:"Hosting de Open edX"},"/es/open-edx-pricing":{en:"Open edX Pricing",es:"Precios de Open edX"},"/es/lo-que-es-open-edx-y-cuales-son-las-ventajas-de-open-edx":{en:"What is Open edX and What Are the Advantages of Open edX?",es:"Lo que es Open edX y Cuáles son las Ventajas de Open edX"},"/es/personalizacion-lms-un-enfoque-exitoso":{en:"LMS Customization: A Successful Approach",es:"Personalización de LMS: Un Enfoque Exitoso"},"/es/cual-es-la-diferencia-entre-edx-y-open-edx":{en:"edX vs Open edX — What's the Difference?",es:"Cuál es la Diferencia entre edX y Open edX"},"/es/consejos-para-elegir-el-lms-correcto":{en:"Tips to Choose the Right LMS for Your Organization",es:"Consejos para Elegir el LMS Correcto"},"/es/mejora-el-diseno-de-tus-cursos-en-open-edx-studio":{en:"Elevate Your Course Design in Open edX Studio",es:"Mejora el Diseño de tus Cursos en Open edX Studio"},"/es/analitica-open-edx-impacto-cursos-abiertos":{en:"Open edX Analytics: Evaluating the Impact of Open Courses",es:"Analítica Open edX: Impacto de Cursos Abiertos"},"/es/icdeba-casos-de-exito-con-aulasneo":{en:"ICdeBA: Open edX Implementation Success Story",es:"ICdeBA: Casos de Éxito con Aulasneo"},"/es/cap-net-casos-de-exito-con-aulasneo":{en:"Cap-Net UNDP Success Story",es:"Cap-Net: Casos de Éxito con Aulasneo"}},nk={"/es/blog":{en:"Blog",es:"Blog"},"/es/case-studies":{en:"Success Stories",es:"Casos de éxito"},"/es/solutions/owly":{en:"Owly AI Agent",es:"Owly AI Agent"},"/es/solutions/panorama":{en:"Panorama Analytics",es:"Panorama Analytics"},"/es/faq/open-edx":{en:"Open edX FAQ",es:"FAQ Open edX"},"/es/faq/ai-agent-education":{en:"AI Agent Education FAQ",es:"FAQ Agente IA Educación"},"/es/support":{en:"Support",es:"Soporte"},"/es/privacy-policy":{en:"Privacy Policy",es:"Política de Privacidad"},"/es/terms-of-service":{en:"Terms of Service",es:"Términos de Servicio"}},tk=Object.fromEntries(Ll.flatMap(e=>[[e.path.en.replace(/\/$/,""),e.title.en],[e.path.es.replace(/\/$/,""),e.title.es]]));function ak(e,n){const a=ek[e]??nk[e];return a?n==="es"?a.es:a.en:tk[e]}function sk(){const[e]=Jt(),{language:n}=J(),a=e.split("?")[0].replace(/\/+$/,"")||"/";if(a==="/"||a==="/es")return null;const s=[{"@type":"ListItem",position:1,name:n==="es"?"Inicio":"Home",item:"https://aulasneo.com/"}],o=a.split("/").filter(Boolean);let r="";if(o.forEach((l,c)=>{var u;r+="/"+l;let d=ak(r,n);!d&&o[c-1]==="blog"&&(d=(u=ed.find(p=>p.slug===l))==null?void 0:u.title),d&&s.push({"@type":"ListItem",position:s.length+1,name:d,item:`https://aulasneo.com${r}/`})}),s.length<2)return null;const i={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:s};return t.jsx("script",{id:"breadcrumb-schema",type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(i)}})}function Ti({to:e}){const[,n]=Jt();return v.useEffect(()=>{const a=window.location.search,s=e+a;n(s)},[e,n]),null}function ok(){return n1(),t.jsxs("div",{className:"min-h-screen flex flex-col",children:[t.jsx(Qj,{}),t.jsx("main",{className:"flex-1",children:t.jsxs(e0,{children:[t.jsx(X,{path:"/",component:ap}),t.jsx(X,{path:"/es/lo-que-es-open-edx-y-cuales-son-las-ventajas-de-open-edx",component:ej}),t.jsx(X,{path:"/es/personalizacion-lms-un-enfoque-exitoso",component:sj}),t.jsx(X,{path:"/es/cual-es-la-diferencia-entre-edx-y-open-edx",component:dj}),t.jsx(X,{path:"/es/consejos-para-elegir-el-lms-correcto",component:hj}),t.jsx(X,{path:"/es/mejora-el-diseno-de-tus-cursos-en-open-edx-studio",component:yj}),t.jsx(X,{path:"/es/analitica-open-edx-impacto-cursos-abiertos",component:jj}),t.jsx(X,{path:"/es/icdeba-casos-de-exito-con-aulasneo",component:Aj}),t.jsx(X,{path:"/es/cap-net-casos-de-exito-con-aulasneo",component:zj}),t.jsx(X,{path:"/es/holcim-academy-casos-de-exito-con-aulasneo",component:Mj}),t.jsx(X,{path:"/es/health-hive-casos-de-exito-con-aulasneo",component:_j}),t.jsx(X,{path:"/es/aie-arg-casos-de-exito-con-aulasneo",component:Hj}),t.jsx(X,{path:"/es/ceef-casos-de-exito-con-aulasneo",component:Gj}),t.jsx(X,{path:"/es",component:ap}),t.jsx(X,{path:"/es/about",component:sp}),t.jsx(X,{path:"/es/solutions",component:op}),t.jsx(X,{path:"/es/solutions/openedx",component:cp}),t.jsx(X,{path:"/es/solutions/owly",component:lp}),t.jsx(X,{path:"/es/solutions/panorama",component:dp}),t.jsx(X,{path:"/es/contact",component:mp}),t.jsx(X,{path:"/es/pricing",component:hp}),t.jsx(X,{path:"/es/open-edx-hosting",component:jp}),t.jsx(X,{path:"/es/open-edx-pricing",component:wp}),t.jsx(X,{path:"/es/blog",component:up}),t.jsx(X,{path:"/es/blog/:slug",component:pp}),t.jsx(X,{path:"/es/case-studies",component:fp}
3134),t.jsx(X,{path:"/es/faq/open-edx",component:xp}),t.jsx(X,{path:"/es/faq/ai-agent-education",component:yp}),t.jsx(X,{path:"/es/support",component:gp}),t.jsx(X,{path:"/es/privacy-policy",component:vp}),t.jsx(X,{path:"/es/terms-of-service",component:bp}),t.jsx(X,{path:"/owly",children:t.jsx(Ti,{to:"/solutions/owly/"})}),t.jsx(X,{path:"/panorama",children:t.jsx(Ti,{to:"/solutions/panorama/"})}),t.jsx(X,{path:"/pricing-plans",children:t.jsx(Ti,{to:"/pricing/"})}),t.jsx(X,{path:"/about",component:sp}),t.jsx(X,{path:"/solutions",component:op}),t.jsx(X,{path:"/solutions/owly",component:lp}),t.jsx(X,{path:"/solutions/openedx",component:cp}),t.jsx(X,{path:"/solutions/panorama",component:dp}),t.jsx(X,{path:"/blog",component:up}),t.jsx(X,{path:"/blog/what-is-open-edx-overview-features-benefits",component:K1}),t.jsx(X,{path:"/blog/:slug",component:pp}),t.jsx(X,{path:"/contact",component:mp}),t.jsx(X,{path:"/thank-you",component:_1}),t.jsx(X,{path:"/pricing",component:hp}),t.jsx(X,{path:"/case-studies",component:fp}),t.jsx(X,{path:"/support",component:gp}),t.jsx(X,{path:"/faq/open-edx",component:xp}),t.jsx(X,{path:"/faq/ai-agent-education",component:yp}),t.jsx(X,{path:"/awsomecampus-udesa",component:D1}),t.jsx(X,{path:"/newsletter",component:H1}),t.jsx(X,{path:"/privacy-policy",component:vp}),t.jsx(X,{path:"/terms-of-service",component:bp}),t.jsx(X,{path:"/open-edx-pricing",component:wp}),t.jsx(X,{path:"/open-edx-hosting",component:jp}),t.jsx(X,{path:"/lms-customization-a-successful-approach",component:tj}),t.jsx(X,{path:"/whats-the-difference-between-edx-and-open-edx",component:ij}),t.jsx(X,{path:"/tips-to-choose-the-right-lms-for-your-organization",component:pj}),t.jsx(X,{path:"/elevate-your-course-design-in-open-edx-studio",component:gj}),t.jsx(X,{path:"/open-edx-analytics-impact-open-courses",component:bj}),t.jsx(X,{path:"/icdeba-success-stories-with-aulasneo",component:Nj}),t.jsx(X,{path:"/cap-net-success-stories-with-aulasneo",component:Cj}),t.jsx(X,{path:"/holcim-academy-success-stories-with-aulasneo",component:Pj}),t.jsx(X,{path:"/health-hive-success-stories-with-aulasneo",component:Lj}),t.jsx(X,{path:"/aie-arg-success-stories-with-aulasneo",component:Rj}),t.jsx(X,{path:"/ceef-success-stories-with-aulasneo",component:Bj}),t.jsx(X,{component:Ug})]})}),t.jsx(Kj,{}),t.jsx(Zj,{})]})}function rk({ssrPath:e}){return v.useEffect(()=>{J2()},[]),t.jsx(of,{ssrPath:e,children:t.jsx(Z2,{initialLanguage:e!=null&&e.startsWith("/es")?"es":"en",children:t.jsx(N0,{client:O0,children:t.jsxs(Q2,{children:[t.jsx(Jj,{}),t.jsx(sk,{}),t.jsx(kw,{}),t.jsx(ok,{})]})})})})}Qh(document.getElementById("root")).render(t.jsx(rk,{}));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.