PageSourceSearch

https://modulya.lovable.app/assets/index-Du1pBtwO.js

js modulya.lovable.app collected 2026-10-03 03:33:12 UTC 1,043,600 bytes, 870 lines download raw bytes

vendor: 6,285 bytes, lines 1-9
1var ay=Object.defineProperty;var gh=e=>{throw TypeError(e)};var ry=(e,t,n)=>t in e?ay(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var wn=(e,t,n)=>ry(e,typeof t!="symbol"?t+"":t,n),Yc=(e,t,n)=>t.has(e)||gh("Cannot "+n);var $=(e,t,n)=>(Yc(e,t,"read from private field"),n?n.call(e):t.get(e)),re=(e,t,n)=>t.has(e)?gh("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),G=(e,t,n,s)=>(Yc(e,t,"write to private field"),s?s.call(e,n):t.set(e,n),n),Ge=(e,t,n)=>(Yc(e,t,"access private method"),n);var No=(e,t,n,s)=>({set _(r){G(e,t,r,n)},get _(){return $(e,t,s)}});function iy(e,t){for(var n=0;n<t.length;n++){const s=t[n];if(typeof s!="string"&&!Array.isArray(s)){for(const r in s)if(r!=="default"&&!(r in e)){const i=Object.getOwnPropertyDescriptor(s,r);i&&Object.defineProperty(e,r,i.get?i:{enumerable:!0,get:()=>s[r]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))s(r);new MutationObserver(r=>{for(const i of r)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&s(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const i={};return r.integrity&&(i.integrity=r.integrity),r.referrerPolicy&&(i.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?i.credentials="include":r.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function s(r){if(r.ep)return;r.ep=!0;const i=n(r);fetch(r.href,i)}})();function lo(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var wg={exports:{}},uc={},jg={exports:{}},ee={};/**
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 co=Symbol.for("react.element"),oy=Symbol.for("react.portal"),ly=Symbol.for("react.fragment"),cy=Symbol.for("react.strict_mode"),dy=Symbol.for("react.profiler"),uy=Symbol.for("react.provider"),fy=Symbol.for("react.context"),py=Symbol.for("react.forward_ref"),hy=Symbol.for("react.suspense"),my=Symbol.for("react.memo"),gy=Symbol.for("react.lazy"),bh=Symbol.iterator;function by(e){return e===null||typeof e!="object"?null:(e=bh&&e[bh]||e["@@iterator"],typeof e=="function"?e:null)}var kg={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Ng=Object.assign,$g={};function Or(e,t,n){this.props=e,this.context=t,this.refs=$g,this.updater=n||kg}Or.prototype.isReactComponent={};Or.prototype.setState=function(e,t){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,t,"setState")};Or.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function Sg(){}Sg.prototype=Or.prototype;function Nf(e,t,n){this.props=e,this.context=t,this.refs=$g,this.updater=n||kg}var $f=Nf.prototype=new Sg;$f.constructor=Nf;Ng($f,Or.prototype);$f.isPureReactComponent=!0;var xh=Array.isArray,Eg=Object.prototype.hasOwnProperty,Sf={current:null},Cg={key:!0,ref:!0,__self:!0,__source:!0};function Tg(e,t,n){var s,r={},i=null,o=null;if(t!=null)for(s in t.ref!==void 0&&(o=t.ref),t.key!==void 0&&(i=""+t.key),t)Eg.call(t,s)&&!Cg.hasOwnProperty(s)&&(r[s]=t[s]);var l=arguments.length-2;if(l===1)r.children=n;else if(1<l){for(var c=Array(l),d=0;d<l;d++)c[d]=arguments[d+2];r.children=c}if(e&&e.defaultProps)for(s in l=e.defaultProps,l)r[s]===void 0&&(r[s]=l[s]);return{$$typeof:co,type:e,key:i,ref:o,props:r,_owner:Sf.current}}function xy(e,t){return{$$typeof:co,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function Ef(e){return typeof e=="object"&&e!==null&&e.$$typeof===co}function vy(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var vh=/\/+/g;function Qc(e,t){return typeof e=="object"&&e!==null&&e.key!=null?vy(""+e.key):t.toString(36)}function al(e,t,n,s,r){var i=typeof e;(i==="undefined"||i==="boolean")&&(e=null);var o=!1;if(e===null)o=!0;else switch(i){case"string":case"number":o=!0;break;case"object":switch(e.$$typeof){case co:case oy:o=!0}}if(o)return o=e,r=r(o),e=s===""?"."+Qc(o,0):s,xh(r)?(n="",e!=null&&(n=e.replace(vh,"$&/")+"/"),al(r,t,n,"",function(d){return d})):r!=null&&(Ef(r)&&(r=xy(r,n+(!r.key||o&&o.key===r.key?"":(""+r.key).replace(vh,"$&/")+"/")+e)),t.push(r)),1;if(o=0,s=s===""?".":s+":",xh(e))for(var l=0;l<e.length;l++){i=e[l];var c=s+Qc(i,l);o+=al(i,t,n,c,r)}else if(c=by(e),typeof c=="function")for(e=c.call(e),l=0;!(i=e.next()).done;)i=i.value,c=s+Qc(i,l++),o+=al(i,t,n,c,r);else if(i==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return o}function $o(e,t,n){if(e==null)return e;var s=[],r=0;return al(e,s,"","",function(i){return t.call(n,i,r++)}),s}function yy(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var ot={current:null},rl={transition:null},_y={ReactCurrentDispatcher:ot,ReactCurrentBatchConfig:rl,ReactCurrentOwner:Sf};function Ag(){throw Error("act(...) is not supported in production builds of React.")}ee.Children={map:$o,forEach:function(e,t,n){$o(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return $o(e,function(){t++}),t},toArray:function(e){return $o(e,function(t){return t})||[]},only:function(e){if(!Ef(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};ee.Component=Or;ee.Fragment=ly;ee.Profiler=dy;ee.PureComponent=Nf;ee.StrictMode=cy;ee.Suspense=hy;
vendor: 7,412 bytes, lines 9-25
9ee.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=_y;ee.act=Ag;ee.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var s=Ng({},e.props),r=e.key,i=e.ref,o=e._owner;if(t!=null){if(t.ref!==void 0&&(i=t.ref,o=Sf.current),t.key!==void 0&&(r=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)Eg.call(t,c)&&!Cg.hasOwnProperty(c)&&(s[c]=t[c]===void 0&&l!==void 0?l[c]:t[c])}var c=arguments.length-2;if(c===1)s.children=n;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];s.children=l}return{$$typeof:co,type:e.type,key:r,ref:i,props:s,_owner:o}};ee.createContext=function(e){return e={$$typeof:fy,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:uy,_context:e},e.Consumer=e};ee.createElement=Tg;ee.createFactory=function(e){var t=Tg.bind(null,e);return t.type=e,t};ee.createRef=function(){return{current:null}};ee.forwardRef=function(e){return{$$typeof:py,render:e}};ee.isValidElement=Ef;ee.lazy=function(e){return{$$typeof:gy,_payload:{_status:-1,_result:e},_init:yy}};ee.memo=function(e,t){return{$$typeof:my,type:e,compare:t===void 0?null:t}};ee.startTransition=function(e){var t=rl.transition;rl.transition={};try{e()}finally{rl.transition=t}};ee.unstable_act=Ag;ee.useCallback=function(e,t){return ot.current.useCallback(e,t)};ee.useContext=function(e){return ot.current.useContext(e)};ee.useDebugValue=function(){};ee.useDeferredValue=function(e){return ot.current.useDeferredValue(e)};ee.useEffect=function(e,t){return ot.current.useEffect(e,t)};ee.useId=function(){return ot.current.useId()};ee.useImperativeHandle=function(e,t,n){return ot.current.useImperativeHandle(e,t,n)};ee.useInsertionEffect=function(e,t){return ot.current.useInsertionEffect(e,t)};ee.useLayoutEffect=function(e,t){return ot.current.useLayoutEffect(e,t)};ee.useMemo=function(e,t){return ot.current.useMemo(e,t)};ee.useReducer=function(e,t,n){return ot.current.useReducer(e,t,n)};ee.useRef=function(e){return ot.current.useRef(e)};ee.useState=function(e){return ot.current.useState(e)};ee.useSyncExternalStore=function(e,t,n){return ot.current.useSyncExternalStore(e,t,n)};ee.useTransition=function(){return ot.current.useTransition()};ee.version="18.3.1";jg.exports=ee;var g=jg.exports;const E=lo(g),Rg=iy({__proto__:null,default:E},[g]);/**
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 wy=g,jy=Symbol.for("react.element"),ky=Symbol.for("react.fragment"),Ny=Object.prototype.hasOwnProperty,$y=wy.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Sy={key:!0,ref:!0,__self:!0,__source:!0};function Pg(e,t,n){var s,r={},i=null,o=null;n!==void 0&&(i=""+n),t.key!==void 0&&(i=""+t.key),t.ref!==void 0&&(o=t.ref);for(s in t)Ny.call(t,s)&&!Sy.hasOwnProperty(s)&&(r[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps,t)r[s]===void 0&&(r[s]=t[s]);return{$$typeof:jy,type:e,key:i,ref:o,props:r,_owner:$y.current}}uc.Fragment=ky;uc.jsx=Pg;uc.jsxs=Pg;wg.exports=uc;var a=wg.exports,Og={exports:{}},kt={},zg={exports:{}},Ig={};/**
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 t(S,T){var I=S.length;S.push(T);e:for(;0<I;){var J=I-1>>>1,q=S[J];if(0<r(q,T))S[J]=T,S[I]=q,I=J;else break e}}function n(S){return S.length===0?null:S[0]}function s(S){if(S.length===0)return null;var T=S[0],I=S.pop();if(I!==T){S[0]=I;e:for(var J=0,q=S.length,X=q>>>1;J<X;){var ne=2*(J+1)-1,Re=S[ne],Ze=ne+1,ie=S[Ze];if(0>r(Re,I))Ze<q&&0>r(ie,Re)?(S[J]=ie,S[Ze]=I,J=Ze):(S[J]=Re,S[ne]=I,J=ne);else if(Ze<q&&0>r(ie,I))S[J]=ie,S[Ze]=I,J=Ze;else break e}}return T}function r(S,T){var I=S.sortIndex-T.sortIndex;return I!==0?I:S.id-T.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var c=[],d=[],u=1,f=null,h=3,p=!1,y=!1,v=!1,_=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,b=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function m(S){for(var T=n(d);T!==null;){if(T.callback===null)s(d);else if(T.startTime<=S)s(d),T.sortIndex=T.expirationTime,t(c,T);else break;T=n(d)}}function w(S){if(v=!1,m(S),!y)if(n(c)!==null)y=!0,W(j);else{var T=n(d);T!==null&&K(w,T.startTime-S)}}function j(S,T){y=!1,v&&(v=!1,x(C),C=-1),p=!0;var I=h;try{for(m(T),f=n(c);f!==null&&(!(f.expirationTime>T)||S&&!H());){var J=f.callback;if(typeof J=="function"){f.callback=null,h=f.priorityLevel;var q=J(f.expirationTime<=T);T=e.unstable_now(),typeof q=="function"?f.callback=q:f===n(c)&&s(c),m(T)}else s(c);f=n(c)}if(f!==null)var X=!0;else{var ne=n(d);ne!==null&&K(w,ne.startTime-T),X=!1}return X}finally{f=null,h=I,p=!1}}var k=!1,N=null,C=-1,R=5,O=-1;function H(){return!(e.unstable_now()-O<R)}function M(){if(N!==null){var S=e.unstable_now();O=S;var T=!0;try{T=N(!0,S)}finally{T?Q():(k=!1,N=null)}}else k=!1}var Q;if(typeof b=="function")Q=function(){b(M)};else if(typeof MessageChannel<"u"){var z=new MessageChannel,te=z.port2;z.port1.onmessage=M,Q=function(){te.postMessage(null)}}else Q=function(){_(M,0)};function W(S){N=S,k||(k=!0,Q())}function K(S,T){C=_(function(){S(e.unstable_now())},T)}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(S){S.callback=null},e.unstable_continueExecution=function(){y||p||(y=!0,W(j))},e.unstable_forceFrameRate=function(S){0>S||125<S?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):R=0<S?Math.floor(1e3/S):5},e.unstable_getCurrentPriorityLevel=function(){return h},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(S){switch(h){case 1:case 2:case 3:var T=3;break;default:T=h}var I=h;h=T;try{return S()}finally{h=I}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(S,T){switch(S){case 1:case 2:case 3:case 4:case 5:break;default:S=3}var I=h;h=S;try{return T()}finally{h=I}},e.unstable_scheduleCallback=function(S,T,I){var J=e.unstable_now();switch(typeof I=="object"&&I!==null?(I=I.delay,I=typeof I=="number"&&0<I?J+I:J):I=J,S){case 1:var q=-1;break;case 2:q=250;break;case 5:q=1073741823;break;case 4:q=1e4;break;default:q=5e3}return q=I+q,S={id:u++,callback:T,priorityLevel:S,startTime:I,expirationTime:q,sortIndex:-1},I>J?(S.sortIndex=I,t(d,S),n(c)===null&&S===n(d)&&(v?(x(C),C=-1):v=!0,K(w,I-J))):(S.sortIndex=q,t(c,S),y||p||(y=!0,W(j))),S},e.unstable_shouldYield=H,e.unstable_wrapCallback=function(S){var T=h;return function(){var I=h;h=T;try{return S.apply(this,arguments)}finally{h=I}}}})(Ig);zg.exports=Ig;
vendor: 4,228 bytes, lines 25-33
25var Ey=zg.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 Cy=g,jt=Ey;function P(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var Lg=new Set,Ci={};function ja(e,t){Nr(e,t),Nr(e+"Capture",t)}function Nr(e,t){for(Ci[e]=t,e=0;e<t.length;e++)Lg.add(t[e])}var Pn=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Gd=Object.prototype.hasOwnProperty,Ty=/^[: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]*$/,yh={},_h={};function Ay(e){return Gd.call(_h,e)?!0:Gd.call(yh,e)?!1:Ty.test(e)?_h[e]=!0:(yh[e]=!0,!1)}function Ry(e,t,n,s){if(n!==null&&n.type===0)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return s?!1:n!==null?!n.acceptsBooleans:(e=e.toLowerCase().slice(0,5),e!=="data-"&&e!=="aria-");default:return!1}}function Py(e,t,n,s){if(t===null||typeof t>"u"||Ry(e,t,n,s))return!0;if(s)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return t===!1;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function lt(e,t,n,s,r,i,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=s,this.attributeNamespace=r,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=i,this.removeEmptyString=o}var We={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){We[e]=new lt(e,0,!1,e,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];We[t]=new lt(t,1,!1,e[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(e){We[e]=new lt(e,2,!1,e.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){We[e]=new lt(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){We[e]=new lt(e,3,!1,e.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(e){We[e]=new lt(e,3,!0,e,null,!1,!1)});["capture","download"].forEach(function(e){We[e]=new lt(e,4,!1,e,null,!1,!1)});["cols","rows","size","span"].forEach(function(e){We[e]=new lt(e,6,!1,e,null,!1,!1)});["rowSpan","start"].forEach(function(e){We[e]=new lt(e,5,!1,e.toLowerCase(),null,!1,!1)});var Cf=/[\-:]([a-z])/g;function Tf(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
33-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 t=e.replace(Cf,Tf);We[t]=new lt(t,1,!1,e,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(Cf,Tf);We[t]=new lt(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(Cf,Tf);We[t]=new lt(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(e){We[e]=new lt(e,1,!1,e.toLowerCase(),null,!1,!1)});We.xlinkHref=new lt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(e){We[e]=new lt(e,1,!1,e.toLowerCase(),null,!0,!0)});function Af(e,t,n,s){var r=We.hasOwnProperty(t)?We[t]:null;(r!==null?r.type!==0:s||!(2<t.length)||t[0]!=="o"&&t[0]!=="O"||t[1]!=="n"&&t[1]!=="N")&&(Py(t,n,r,s)&&(n=null),s||r===null?Ay(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,""+n)):r.mustUseProperty?e[r.propertyName]=n===null?r.type===3?!1:"":n:(t=r.attributeName,s=r.attributeNamespace,n===null?e.removeAttribute(t):(r=r.type,n=r===3||r===4&&n===!0?"":""+n,s?e.setAttributeNS(s,t,n):e.setAttribute(t,n))))}var Dn=Cy.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,So=Symbol.for("react.element"),Wa=Symbol.for("react.portal"),Za=Symbol.for("react.fragment"),Rf=Symbol.for("react.strict_mode"),Kd=Symbol.for("react.profiler"),Mg=Symbol.for("react.provider"),Dg=Symbol.for("react.context"),Pf=Symbol.for("react.forward_ref"),Jd=Symbol.for("react.suspense"),Yd=Symbol.for("react.suspense_list"),Of=Symbol.for("react.memo"),as=Symbol.for("react.lazy"),Ug=Symbol.for("react.offscreen"),wh=Symbol.iterator;function Wr(e){return e===null||typeof e!="object"?null:(e=wh&&e[wh]||e["@@iterator"],typeof e=="function"?e:null)}var we=Object.assign,Xc;function oi(e){if(Xc===void 0)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);Xc=t&&t[1]||""}return`
34`+Xc+e}var ed=!1;function td(e,t){if(!e||ed)return"";ed=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(t,[])}catch(d){var s=d}Reflect.construct(e,[],t)}else{try{t.call()}catch(d){s=d}e.call(t.prototype)}else{try{throw Error()}catch(d){s=d}e()}}catch(d){if(d&&s&&typeof d.stack=="string"){for(var r=d.stack.split(`
35`),i=s.stack.split(`
36`),o=r.length-1,l=i.length-1;1<=o&&0<=l&&r[o]!==i[l];)l--;for(;1<=o&&0<=l;o--,l--)if(r[o]!==i[l]){if(o!==1||l!==1)do if(o--,l--,0>l||r[o]!==i[l]){var c=`
37`+r[o].replace(" at new "," at ");return e.displayName&&c.includes("<anonymous>")&&(c=c.replace("<anonymous>",e.displayName)),c}while(1<=o&&0<=l);break}}}finally{ed=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?oi(e):""}function Oy(e){switch(e.tag){case 5:return oi(e.type);case 16:return oi("Lazy");case 13:return oi("Suspense");case 19:return oi("SuspenseList");case 0:case 2:case 15:return e=td(e.type,!1),e;case 11:return e=td(e.type.render,!1),e;case 1:return e=td(e.type,!0),e;default:return""}}function Qd(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 Za:return"Fragment";case Wa:return"Portal";case Kd:return"Profiler";case Rf:return"StrictMode";case Jd:return"Suspense";case Yd:return"SuspenseList"}if(typeof e=="object")switch(e.$$typeof){case Dg:return(e.displayName||"Context")+".Consumer";case Mg:return(e._context.displayName||"Context")+".Provider";case Pf:var t=e.render;return e=e.displayName,e||(e=t.displayName||t.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case Of:return t=e.displayName||null,t!==null?t:Qd(e.type)||"Memo";case as:t=e._payload,e=e._init;try{return Qd(e(t))}catch{}}return null}function zy(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=t.render,e=e.displayName||e.name||"",t.displayName||(e!==""?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Qd(t);case 8:return t===Rf?"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 t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t}return null}function Cs(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function Fg(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(t==="checkbox"||t==="radio")}function Iy(e){var t=Fg(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),s=""+e[t];if(!e.hasOwnProperty(t)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var r=n.get,i=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return r.call(this)},set:function(o){s=""+o,i.call(this,o)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return s},setValue:function(o){s=""+o},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function Eo(e){e._valueTracker||(e._valueTracker=Iy(e))}function Bg(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),s="";return e&&(s=Fg(e)?e.checked?"true":"false":e.value),e=s,e!==n?(t.setValue(e),!0):!1}function kl(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 Xd(e,t){var n=t.checked;return we({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function jh(e,t){var n=t.defaultValue==null?"":t.defaultValue,s=t.checked!=null?t.checked:t.defaultChecked;n=Cs(t.value!=null?t.value:n),e._wrapperState={initialChecked:s,initialValue:n,controlled:t.type==="checkbox"||t.type==="radio"?t.checked!=null:t.value!=null}}function qg(e,t){t=t.checked,t!=null&&Af(e,"checked",t,!1)}function eu(e,t){qg(e,t);var n=Cs(t.value),s=t.type;if(n!=null)s==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if(s==="submit"||s==="reset"){e.removeAttribute("value");return}t.hasOwnProperty("value")?tu(e,t.type,n):t.hasOwnProperty("defaultValue")&&tu(e,t.type,Cs(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}
vendor: 4,180 bytes, line 37
37function kh(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var s=t.type;if(!(s!=="submit"&&s!=="reset"||t.value!==void 0&&t.value!==null))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==""&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,n!==""&&(e.name=n)}function tu(e,t,n){(t!=="number"||kl(e.ownerDocument)!==e)&&(n==null?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var li=Array.isArray;function rr(e,t,n,s){if(e=e.options,t){t={};for(var r=0;r<n.length;r++)t["$"+n[r]]=!0;for(n=0;n<e.length;n++)r=t.hasOwnProperty("$"+e[n].value),e[n].selected!==r&&(e[n].selected=r),r&&s&&(e[n].defaultSelected=!0)}else{for(n=""+Cs(n),t=null,r=0;r<e.length;r++){if(e[r].value===n){e[r].selected=!0,s&&(e[r].defaultSelected=!0);return}t!==null||e[r].disabled||(t=e[r])}t!==null&&(t.selected=!0)}}function nu(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(P(91));return we({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function Nh(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(P(92));if(li(n)){if(1<n.length)throw Error(P(93));n=n[0]}t=n}t==null&&(t=""),n=t}e._wrapperState={initialValue:Cs(n)}}function Vg(e,t){var n=Cs(t.value),s=Cs(t.defaultValue);n!=null&&(n=""+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),s!=null&&(e.defaultValue=""+s)}function $h(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==""&&t!==null&&(e.value=t)}function Hg(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 su(e,t){return e==null||e==="http://www.w3.org/1999/xhtml"?Hg(t):e==="http://www.w3.org/2000/svg"&&t==="foreignObject"?"http://www.w3.org/1999/xhtml":e}var Co,Wg=function(e){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(t,n,s,r){MSApp.execUnsafeLocalFunction(function(){return e(t,n,s,r)})}:e}(function(e,t){if(e.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in e)e.innerHTML=t;else{for(Co=Co||document.createElement("div"),Co.innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=Co.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Ti(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var pi={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},Ly=["Webkit","ms","Moz","O"];Object.keys(pi).forEach(function(e){Ly.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),pi[t]=pi[e]})});function Zg(e,t,n){return t==null||typeof t=="boolean"||t===""?"":n||typeof t!="number"||t===0||pi.hasOwnProperty(e)&&pi[e]?(""+t).trim():t+"px"}function Gg(e,t){e=e.style;for(var n in t)if(t.hasOwnProperty(n)){var s=n.indexOf("--")===0,r=Zg(n,t[n],s);n==="float"&&(n="cssFloat"),s?e.setProperty(n,r):e[n]=r}}var My=we({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 au(e,t){if(t){if(My[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(P(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(P(60));if(typeof t.dangerouslySetInnerHTML!="object"||!("__html"in t.dangerouslySetInnerHTML))throw Error(P(61))}if(t.style!=null&&typeof t.style!="object")throw Error(P(62))}}function ru(e,t){if(e.indexOf("-")===-1)return typeof t.is=="str
37ing";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 iu=null;function zf(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var ou=null,ir=null,or=null;function Sh(e){if(e=po(e)){if(typeof ou!="function")throw Error(P(280));var t=e.stateNode;t&&(t=gc(t),ou(e.stateNode,e.type,t))}}function Kg(e){ir?or?or.push(e):or=[e]:ir=e}function Jg(){if(ir){var e=ir,t=or;if(or=ir=null,Sh(e),t)for(e=0;e<t.length;e++)Sh(t[e])}}function Yg(e,t){return e(t)}function Qg(){}var nd=!1;function Xg(e,t,n){if(nd)return e(t,n);nd=!0;try{return Yg(e,t,n)}finally{nd=!1,(ir!==null||or!==null)&&(Qg(),Jg())}}function Ai(e,t){var n=e.stateNode;if(n===null)return null;var s=gc(n);if(s===null)return null;n=s[t];e:switch(t){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(n&&typeof n!="function")throw Error(P(231,t,typeof n));return n}var lu=!1;if(Pn)try{var Zr={};Object.defineProperty(Zr,"passive",{get:function(){lu=!0}}),window.addEventListener("test",Zr,Zr),window.removeEventListener("test",Zr,Zr)}catch{lu=!1}function Dy(e,t,n,s,r,i,o,l,c){var d=Array.prototype.slice.call(arguments,3);try{t.apply(n,d)}catch(u){this.onError(u)}}var hi=!1,Nl=null,$l=!1,cu=null,Uy={onError:function(e){hi=!0,Nl=e}};function Fy(e,t,n,s,r,i,o,l,c){hi=!1,Nl=null,Dy.apply(Uy,arguments)}function By(e,t,n,s,r,i,o,l,c){if(Fy.apply(this,arguments),hi){if(hi){var d=Nl;hi=!1,Nl=null}else throw Error(P(198));$l||($l=!0,cu=d)}}function ka(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function eb(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function Eh(e){if(ka(e)!==e)throw Error(P(188))}function qy(e){var t=e.alternate;if(!t){if(t=ka(e),t===null)throw Error(P(188));return t!==e?null:e}for(var n=e,s=t;;){var r=n.return;if(r===null)break;var i=r.alternate;if(i===null){if(s=r.return,s!==null){n=s;continue}break}if(r.child===i.child){for(i=r.child;i;){if(i===n)return Eh(r),e;if(i===s)return Eh(r),t;i=i.sibling}throw Error(P(188))}if(n.return!==s.return)n=r,s=i;else{for(var o=!1,l=r.child;l;){if(l===n){o=!0,n=r,s=i;break}if(l===s){o=!0,s=r,n=i;break}l=l.sibling}if(!o){for(l=i.child;l;){if(l===n){o=!0,n=i,s=r;break}if(l===s){o=!0,s=i,n=r;break}l=l.sibling}if(!o)throw Error(P(189))}}if(n.alternate!==s)throw Error(P(190))}if(n.tag!==3)throw Error(P(188));return n.stateNode.current===n?e:t}function tb(e){return e=qy(e),e!==null?nb(e):null}function nb(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=nb(e);if(t!==null)return t;e=e.sibling}return null}var sb=jt.unstable_scheduleCallback,Ch=jt.unstable_cancelCallback,Vy=jt.unstable_shouldYield,Hy=jt.unstable_requestPaint,Ae=jt.unstable_now,Wy=jt.unstable_getCurrentPriorityLevel,If=jt.unstable_ImmediatePriority,ab=jt.unstable_UserBlockingPriority,Sl=jt.unstable_NormalPriority,Zy=jt.unstable_LowPriority,rb=jt.unstable_IdlePriority,fc=null,bn=null;function Gy(e){if(bn&&typeof bn.onCommitFiberRoot=="function")try{bn.onCommitFiberRoot(fc,e,void 0,(e.current.flags&128)===128)}catch{}}var tn=Math.clz32?Math.clz32:Yy,Ky=Math.log,Jy=Math.LN2;function Yy(e){return e>>>=0,e===0?32:31-(Ky(e)/Jy|0)|0}var To=64,Ao=4194304;function ci(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 El(e,t){var n=e.pendingLanes;if(n===0)return 0;var s=0,r=e.suspendedLanes,i=e.pingedLanes,o=n&268435455;if(o!==0){var l=o&~r;l!==0?s=ci(l):(i&=o,i!==0&&(s=ci(i)))}else o=n&~r,o!==0?s=ci(o):i!==0&&(s=ci(i));if(s===0)return 0;if(t!==0&&t!==s&&!(t&r)&&(r=s&-s,i=t&-t,r>=i||r===16&&(i&4194240)!==0))return t;if(s&4&&(s|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=s;0<t;)n=31-tn(t),r=1<<n,s|=e[n],t&=~r;return s}function Qy(e,t){switch(e){case 1:case 2:case 4:return t+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 t+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 Xy(e,t){for(var n=e.suspendedLanes,s=e.pingedLanes,r=e.expirationTimes,i=e.pendingLanes;0<i;){var o=31-tn(i),l=1<<o,c=r[o];c===-1?(!(l&n)||l&s)&&(r[o]=Qy(l,t)):c<=t&&(e.expiredLanes|=l),i&=~l}}function du(e){return e=e.pendingLanes&-1073741825,e!==0?e:e&1073741824?1073741824:0}function ib(){var e=To;return To<<=1,!(To&4194240)&&(To=64),e}function sd(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function uo(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-tn(t),e[t]=n}function e_(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var s=e.eventTimes;for(e=e.expirationTimes;0<n;){var r=31-tn(n),i=1<<r;t[r]=0,s[r]=-1,e[r]=-1,n&=~i}}function Lf(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var s=31-tn(n),r=1<<s;r&t|e[s]&t&&(e[s]|=t),n&=~r}}var le=0;function ob(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var lb,Mf,cb,db,ub,uu=!1,Ro=[],xs=null,vs=null,ys=null,Ri=new Map,Pi=new Map,is=[],t_="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(" ");function Th(e,t){switch(e){case"focusin":case"focusout":xs=null;break;case"dragenter":case"dragleave":vs=null;break;case"mouseover":case"mouseout":ys=null;break;case"pointerover":case"pointerout":Ri.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Pi.delete(t.pointerId)}}function Gr(e,t,n,s,r,i){return e===null||e.nativeEvent!==i?(e={blockedOn:t,domEventName:n,eventSystemFlags:s,nativeEvent:i,targetContainers:[r]},t!==null&&(t=po(t),t!==null&&Mf(t)),e):(e.eventSystemFlags|=s,t=e.targetContainers,r!==null&&t.indexOf(r)===-1&&t.push(r),e)}function n_(e,t,n,s,r){switch(t){case"focusin":return xs=Gr(xs,e,t,n,s,r),!0;case"dragenter":return vs=Gr(vs,e,t,n,s,r),!0;case"mouseover":return ys=Gr(ys,e,t,n,s,r),!0;case"pointerover":var i=r.pointerId;return Ri.set(i,Gr(Ri.get(i)||null,e,t,n,s,r)),!0;case"gotpointercapture":return i=r.pointerId,Pi.set(i,Gr(Pi.get(i)||null,e,t,n,s,r)),!0}return!1}function fb(e){var t=sa(e.target);if(t!==null){var n=ka(t);if(n!==null){if(t=n.tag,t===13){if(t=eb(n),t!==null){e.blockedOn=t,ub(e.priority,function(){cb(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function il(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=fu(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var s=new n.constructor(n.type,n);iu=s,n.target.dispatchEvent(s),iu=null}else return t=po(n),t!==null&&Mf(t),e.blockedOn=n,!1;t.shift()}return!0}function Ah(e,t,n){il(e)&&n.delete(t)}function s_(){uu=!1,xs!==null&&il(xs)&&(xs=null),vs!==null&&il(vs)&&(vs=null),ys!==null&&il(ys)&&(ys=null),Ri.forEach(Ah),Pi.forEac
vendor: 9,276 bytes, line 37
37h(Ah)}function Kr(e,t){e.blockedOn===t&&(e.blockedOn=null,uu||(uu=!0,jt.unstable_scheduleCallback(jt.unstable_NormalPriority,s_)))}function Oi(e){function t(r){return Kr(r,e)}if(0<Ro.length){Kr(Ro[0],e);for(var n=1;n<Ro.length;n++){var s=Ro[n];s.blockedOn===e&&(s.blockedOn=null)}}for(xs!==null&&Kr(xs,e),vs!==null&&Kr(vs,e),ys!==null&&Kr(ys,e),Ri.forEach(t),Pi.forEach(t),n=0;n<is.length;n++)s=is[n],s.blockedOn===e&&(s.blockedOn=null);for(;0<is.length&&(n=is[0],n.blockedOn===null);)fb(n),n.blockedOn===null&&is.shift()}var lr=Dn.ReactCurrentBatchConfig,Cl=!0;function a_(e,t,n,s){var r=le,i=lr.transition;lr.transition=null;try{le=1,Df(e,t,n,s)}finally{le=r,lr.transition=i}}function r_(e,t,n,s){var r=le,i=lr.transition;lr.transition=null;try{le=4,Df(e,t,n,s)}finally{le=r,lr.transition=i}}function Df(e,t,n,s){if(Cl){var r=fu(e,t,n,s);if(r===null)pd(e,t,s,Tl,n),Th(e,s);else if(n_(r,e,t,n,s))s.stopPropagation();else if(Th(e,s),t&4&&-1<t_.indexOf(e)){for(;r!==null;){var i=po(r);if(i!==null&&lb(i),i=fu(e,t,n,s),i===null&&pd(e,t,s,Tl,n),i===r)break;r=i}r!==null&&s.stopPropagation()}else pd(e,t,s,null,n)}}var Tl=null;function fu(e,t,n,s){if(Tl=null,e=zf(s),e=sa(e),e!==null)if(t=ka(e),t===null)e=null;else if(n=t.tag,n===13){if(e=eb(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Tl=e,null}function pb(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(Wy()){case If:return 1;case ab:return 4;case Sl:case Zy:return 16;case rb:return 536870912;default:return 16}default:return 16}}var ms=null,Uf=null,ol=null;function hb(){if(ol)return ol;var e,t=Uf,n=t.length,s,r="value"in ms?ms.value:ms.textContent,i=r.length;for(e=0;e<n&&t[e]===r[e];e++);var o=n-e;for(s=1;s<=o&&t[n-s]===r[i-s];s++);return ol=r.slice(e,1<s?1-s:void 0)}function ll(e){var t=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Po(){return!0}function Rh(){return!1}function Nt(e){function t(n,s,r,i,o){this._reactName=n,this._targetInst=r,this.type=s,this.nativeEvent=i,this.target=o,this.currentTarget=null;for(var l in e)e.hasOwnProperty(l)&&(n=e[l],this[l]=n?n(i):i[l]);return this.isDefaultPrevented=(i.defaultPrevented!=null?i.defaultPrevented:i.returnValue===!1)?Po:Rh,this.isPropagationStopped=Rh,this}return we(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=Po)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=Po)},persist:function(){},isPersistent:Po}),t}var zr={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Ff=Nt(zr),fo=we({},zr,{view:0,detail:0}),i_=Nt(fo),ad,rd,Jr,pc=we({},fo,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Bf,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!==Jr&&(Jr&&e.type==="mousemove"?(ad=e.screenX-Jr.screenX,rd=e.screenY-Jr.screenY):rd=ad=0,Jr=e),ad)},movementY:function(e){return"movementY"in e?e.movementY:rd}}),Ph=Nt(pc),o_=we({},pc,{dataTransfer:0}),l_=Nt(o_),c_=we({},fo,{relatedTarget:0}),id=Nt(c_),d_=we({},zr,{animationName:0,elapsedTime:0,pseudoElement:0}),u_=Nt(d_),f_=we({},zr,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),p_=Nt(f_),h_=we({},zr,{data:0}),Oh=Nt(h_),m_={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},g_={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"},b_={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function x_(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=b_[e])?!!t[e]:!1}function Bf(){return x_}var v_=we({},fo,{key:function(e){if(e.key){var t=m_[e.key]||e.key;if(t!=="Unidentified")return t}return e.type==="keypress"?(e=ll(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?g_[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Bf,charCode:function(e){return e.type==="keypress"?ll(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?ll(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),y_=Nt(v_),__=we({},pc,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),zh=Nt(__),w_=we({},fo,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Bf}),j_=Nt(w_),k_=we({},zr,{propertyName:0,elapsedTime:0,pseudoElement:0}),N_=Nt(k_),$_=we({},pc,{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}),S_=Nt($_),E_=[9,13,27,32],qf=Pn&&"CompositionEvent"in window,mi=null;Pn&&"documentMode"in document&&(mi=document.documentMode);var C_=Pn&&"TextEvent"in window&&!mi,mb=Pn&&(!qf||mi&&8<mi&&11>=mi),Ih=" ",Lh=!1;function gb(e,t){switch(e){case"keyup":return E_.indexOf(t.keyCode)!==-1;case"keydown":return t.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function bb(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var Ga=!1;function T_(e,t){switch(e){case"compositionend":return bb(t);case"keypress":return t.which!==32?null:(Lh=!0,Ih);case"textInput":return e=t.data,e===Ih&&Lh?null:e;default:return null}}function A_(e,t){if(Ga)return e==="compositionend"||!qf&&gb(e,t)?(e=hb(),ol=Uf=ms=null,Ga=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return mb&&t.locale!=="ko"?null:t.data;default:return null}}var R_={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 Mh(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t==="input"?!!R_[e.type]:t==="textarea"}function xb(e,t,n,s){Kg(s),t=Al(t,"onChange"),0<t.length&&(n=new Ff("onChange","change",null,n,s),e.push({event:n,listeners:t}))}var gi=null,zi=null;function P_(e){Cb(e,0)}function hc(e){var t=Ya(e);if(Bg(t))return e}function O_(e,t){if(e==="change")return t}var vb=!1;if(Pn){var od;if(Pn){var ld="oninput"in document;if(!ld){var Dh=document.createElement("div");Dh.setAttribute("oninput","return;"),ld=typeof Dh.oninput=="function"}od=ld}else od=!1;vb=od&&(!document.documentMode||9<document.documentMode)}function Uh(){gi&&(gi.detachEvent("onpropertychange",yb),zi=gi=null)}function yb(e){if(e.propertyName==="value"&&hc(zi)){var t=[];xb(t,zi,e,zf(e)),Xg(P_,t)}}function z_(e,t,n){e==="focusin"?(Uh(),gi=t,zi=n,gi.attachEvent("onpropertychange",yb)):e==="focusout"&&Uh()}function I_(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return hc(zi)}function L_(e,t){if(e==="click")return hc(t)}function M_(e,t){if(e==="input"||e==="change")return hc(t)}function D_(e,t){return e===t&&(e!==0||1/e===1/t)||e!==e&&t!==t}var sn=typeof Object.is=="function"?Object.is:D_;function Ii(e,t){if(sn(e,t))return!0;
vendor: 4,808 bytes, line 37
37if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;var n=Object.keys(e),s=Object.keys(t);if(n.length!==s.length)return!1;for(s=0;s<n.length;s++){var r=n[s];if(!Gd.call(t,r)||!sn(e[r],t[r]))return!1}return!0}function Fh(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Bh(e,t){var n=Fh(e);e=0;for(var s;n;){if(n.nodeType===3){if(s=e+n.textContent.length,e<=t&&s>=t)return{node:n,offset:t-e};e=s}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=Fh(n)}}function _b(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?_b(e,t.parentNode):"contains"in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function wb(){for(var e=window,t=kl();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href=="string"}catch{n=!1}if(n)e=t.contentWindow;else break;t=kl(e.document)}return t}function Vf(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||t==="textarea"||e.contentEditable==="true")}function U_(e){var t=wb(),n=e.focusedElem,s=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&_b(n.ownerDocument.documentElement,n)){if(s!==null&&Vf(n)){if(t=s.start,e=s.end,e===void 0&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var r=n.textContent.length,i=Math.min(s.start,r);s=s.end===void 0?i:Math.min(s.end,r),!e.extend&&i>s&&(r=s,s=i,i=r),r=Bh(n,i);var o=Bh(n,s);r&&o&&(e.rangeCount!==1||e.anchorNode!==r.node||e.anchorOffset!==r.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(r.node,r.offset),e.removeAllRanges(),i>s?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var F_=Pn&&"documentMode"in document&&11>=document.documentMode,Ka=null,pu=null,bi=null,hu=!1;function qh(e,t,n){var s=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;hu||Ka==null||Ka!==kl(s)||(s=Ka,"selectionStart"in s&&Vf(s)?s={start:s.selectionStart,end:s.selectionEnd}:(s=(s.ownerDocument&&s.ownerDocument.defaultView||window).getSelection(),s={anchorNode:s.anchorNode,anchorOffset:s.anchorOffset,focusNode:s.focusNode,focusOffset:s.focusOffset}),bi&&Ii(bi,s)||(bi=s,s=Al(pu,"onSelect"),0<s.length&&(t=new Ff("onSelect","select",null,t,n),e.push({event:t,listeners:s}),t.target=Ka)))}function Oo(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Ja={animationend:Oo("Animation","AnimationEnd"),animationiteration:Oo("Animation","AnimationIteration"),animationstart:Oo("Animation","AnimationStart"),transitionend:Oo("Transition","TransitionEnd")},cd={},jb={};Pn&&(jb=document.createElement("div").style,"AnimationEvent"in window||(delete Ja.animationend.animation,delete Ja.animationiteration.animation,delete Ja.animationstart.animation),"TransitionEvent"in window||delete Ja.transitionend.transition);function mc(e){if(cd[e])return cd[e];if(!Ja[e])return e;var t=Ja[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in jb)return cd[e]=t[n];return e}var kb=mc("animationend"),Nb=mc("animationiteration"),$b=mc("animationstart"),Sb=mc("transitionend"),Eb=new Map,Vh="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 zs(e,t){Eb.set(e,t),ja(t,[e])}for(var dd=0;dd<Vh.length;dd++){var ud=Vh[dd],B_=ud.toLowerCase(),q_=ud[0].toUpperCase()+ud.slice(1);zs(B_,"on"+q_)}zs(kb,"onAnimationEnd");zs(Nb,"onAnimationIteration");zs($b,"onAnimationStart");zs("dblclick","onDoubleClick");zs("focusin","onFocus");zs("focusout","onBlur");zs(Sb,"onTransitionEnd");Nr("onMouseEnter",["mouseout","mouseover"]);Nr("onMouseLeave",["mouseout","mouseover"]);Nr("onPointerEnter",["pointerout","pointerover"]);Nr("onPointerLeave",["pointerout","pointerover"]);ja("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));
vendor: 4,426 bytes, line 37
37ja("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));ja("onBeforeInput",["compositionend","keypress","textInput","paste"]);ja("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));ja("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));ja("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var di="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(" "),V_=new Set("cancel close invalid load scroll toggle".split(" ").concat(di));function Hh(e,t,n){var s=e.type||"unknown-event";e.currentTarget=n,By(s,t,void 0,e),e.currentTarget=null}function Cb(e,t){t=(t&4)!==0;for(var n=0;n<e.length;n++){var s=e[n],r=s.event;s=s.listeners;e:{var i=void 0;if(t)for(var o=s.length-1;0<=o;o--){var l=s[o],c=l.instance,d=l.currentTarget;if(l=l.listener,c!==i&&r.isPropagationStopped())break e;Hh(r,l,d),i=c}else for(o=0;o<s.length;o++){if(l=s[o],c=l.instance,d=l.currentTarget,l=l.listener,c!==i&&r.isPropagationStopped())break e;Hh(r,l,d),i=c}}}if($l)throw e=cu,$l=!1,cu=null,e}function ge(e,t){var n=t[vu];n===void 0&&(n=t[vu]=new Set);var s=e+"__bubble";n.has(s)||(Tb(t,e,2,!1),n.add(s))}function fd(e,t,n){var s=0;t&&(s|=4),Tb(n,e,s,t)}var zo="_reactListening"+Math.random().toString(36).slice(2);function Li(e){if(!e[zo]){e[zo]=!0,Lg.forEach(function(n){n!=="selectionchange"&&(V_.has(n)||fd(n,!1,e),fd(n,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[zo]||(t[zo]=!0,fd("selectionchange",!1,t))}}function Tb(e,t,n,s){switch(pb(t)){case 1:var r=a_;break;case 4:r=r_;break;default:r=Df}n=r.bind(null,t,n,e),r=void 0,!lu||t!=="touchstart"&&t!=="touchmove"&&t!=="wheel"||(r=!0),s?r!==void 0?e.addEventListener(t,n,{capture:!0,passive:r}):e.addEventListener(t,n,!0):r!==void 0?e.addEventListener(t,n,{passive:r}):e.addEventListener(t,n,!1)}function pd(e,t,n,s,r){var i=s;if(!(t&1)&&!(t&2)&&s!==null)e:for(;;){if(s===null)return;var o=s.tag;if(o===3||o===4){var l=s.stateNode.containerInfo;if(l===r||l.nodeType===8&&l.parentNode===r)break;if(o===4)for(o=s.return;o!==null;){var c=o.tag;if((c===3||c===4)&&(c=o.stateNode.containerInfo,c===r||c.nodeType===8&&c.parentNode===r))return;o=o.return}for(;l!==null;){if(o=sa(l),o===null)return;if(c=o.tag,c===5||c===6){s=i=o;continue e}l=l.parentNode}}s=s.return}Xg(function(){var d=i,u=zf(n),f=[];e:{var h=Eb.get(e);if(h!==void 0){var p=Ff,y=e;switch(e){case"keypress":if(ll(n)===0)break e;case"keydown":case"keyup":p=y_;break;case"focusin":y="focus",p=id;break;case"focusout":y="blur",p=id;break;case"beforeblur":case"afterblur":p=id;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":p=Ph;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":p=l_;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":p=j_;break;case kb:case Nb:case $b:p=u_;break;case Sb:p=N_;break;case"scroll":p=i_;break;case"wheel":p=S_;break;case"copy":case"cut":case"paste":p=p_;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":p=zh}var v=(t&4)!==0,_=!v&&e==="scroll",x=v?h!==null?h+"Capture":null:h;v=[];for(var b=d,m;b!==null;){m=b;var w=m.stateNode;if(m.tag===5&&w!==null&&(m=w,x!==null&&(w=Ai(b,x),w!=null&&v.push(Mi(b,w,m)))),_)break;b=b.return}0<v.length&&(h=new p(h,y,null,n,u),f.push({event:h,listeners:v}))}}if(!(t&7)){e:{if(h=e==="mouseover"||e==="pointerover",p=e==="mouseout"||e==="pointerout",h&&n!==iu&&(y=n.relatedTarget||n.fromElement)&&(sa(y)||y[On]))break e;if((p||h)&&(h=u.window===u?u:(h=u.ownerDocument)?h.defaultView||h.parentWindow:window,p?(y=n.relatedTarget||n.toElement,p=d,y=y?sa(y):null,y!==null&&(_=ka(y),y!==_||y.tag!==5&&y.tag!==6)&&(y=null)):(p=null,y=d),p!==y)){if(v=Ph,w="onMouseLeave",x="onMouseEnter",b="mouse",(e==="pointerout"||e==="pointerover")&&(v=zh,w="onPointerLeave",x="onPointerEnter",b="pointer"),_=p==null?h:Ya(p),m=y==null?h:Ya(y),h=new v(w,b+"leave",p,n,u),h.target=_,h.relatedTarget=m,w=null,
vendor: 4,457 bytes, lines 37-38
37sa(u)===d&&(v=new v(x,b+"enter",y,n,u),v.target=m,v.relatedTarget=_,w=v),_=w,p&&y)t:{for(v=p,x=y,b=0,m=v;m;m=Pa(m))b++;for(m=0,w=x;w;w=Pa(w))m++;for(;0<b-m;)v=Pa(v),b--;for(;0<m-b;)x=Pa(x),m--;for(;b--;){if(v===x||x!==null&&v===x.alternate)break t;v=Pa(v),x=Pa(x)}v=null}else v=null;p!==null&&Wh(f,h,p,v,!1),y!==null&&_!==null&&Wh(f,_,y,v,!0)}}e:{if(h=d?Ya(d):window,p=h.nodeName&&h.nodeName.toLowerCase(),p==="select"||p==="input"&&h.type==="file")var j=O_;else if(Mh(h))if(vb)j=M_;else{j=I_;var k=z_}else(p=h.nodeName)&&p.toLowerCase()==="input"&&(h.type==="checkbox"||h.type==="radio")&&(j=L_);if(j&&(j=j(e,d))){xb(f,j,n,u);break e}k&&k(e,h,d),e==="focusout"&&(k=h._wrapperState)&&k.controlled&&h.type==="number"&&tu(h,"number",h.value)}switch(k=d?Ya(d):window,e){case"focusin":(Mh(k)||k.contentEditable==="true")&&(Ka=k,pu=d,bi=null);break;case"focusout":bi=pu=Ka=null;break;case"mousedown":hu=!0;break;case"contextmenu":case"mouseup":case"dragend":hu=!1,qh(f,n,u);break;case"selectionchange":if(F_)break;case"keydown":case"keyup":qh(f,n,u)}var N;if(qf)e:{switch(e){case"compositionstart":var C="onCompositionStart";break e;case"compositionend":C="onCompositionEnd";break e;case"compositionupdate":C="onCompositionUpdate";break e}C=void 0}else Ga?gb(e,n)&&(C="onCompositionEnd"):e==="keydown"&&n.keyCode===229&&(C="onCompositionStart");C&&(mb&&n.locale!=="ko"&&(Ga||C!=="onCompositionStart"?C==="onCompositionEnd"&&Ga&&(N=hb()):(ms=u,Uf="value"in ms?ms.value:ms.textContent,Ga=!0)),k=Al(d,C),0<k.length&&(C=new Oh(C,e,null,n,u),f.push({event:C,listeners:k}),N?C.data=N:(N=bb(n),N!==null&&(C.data=N)))),(N=C_?T_(e,n):A_(e,n))&&(d=Al(d,"onBeforeInput"),0<d.length&&(u=new Oh("onBeforeInput","beforeinput",null,n,u),f.push({event:u,listeners:d}),u.data=N))}Cb(f,t)})}function Mi(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Al(e,t){for(var n=t+"Capture",s=[];e!==null;){var r=e,i=r.stateNode;r.tag===5&&i!==null&&(r=i,i=Ai(e,n),i!=null&&s.unshift(Mi(e,i,r)),i=Ai(e,t),i!=null&&s.push(Mi(e,i,r))),e=e.return}return s}function Pa(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function Wh(e,t,n,s,r){for(var i=t._reactName,o=[];n!==null&&n!==s;){var l=n,c=l.alternate,d=l.stateNode;if(c!==null&&c===s)break;l.tag===5&&d!==null&&(l=d,r?(c=Ai(n,i),c!=null&&o.unshift(Mi(n,c,l))):r||(c=Ai(n,i),c!=null&&o.push(Mi(n,c,l)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var H_=/\r\n?/g,W_=/\u0000|\uFFFD/g;function Zh(e){return(typeof e=="string"?e:""+e).replace(H_,`
38`).replace(W_,"")}function Io(e,t,n){if(t=Zh(t),Zh(e)!==t&&n)throw Error(P(425))}function Rl(){}var mu=null,gu=null;function bu(e,t){return e==="textarea"||e==="noscript"||typeof t.children=="string"||typeof t.children=="number"||typeof t.dangerouslySetInnerHTML=="object"&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var xu=typeof setTimeout=="function"?setTimeout:void 0,Z_=typeof clearTimeout=="function"?clearTimeout:void 0,Gh=typeof Promise=="function"?Promise:void 0,G_=typeof queueMicrotask=="function"?queueMicrotask:typeof Gh<"u"?function(e){return Gh.resolve(null).then(e).catch(K_)}:xu;function K_(e){setTimeout(function(){throw e})}function hd(e,t){var n=t,s=0;do{var r=n.nextSibling;if(e.removeChild(n),r&&r.nodeType===8)if(n=r.data,n==="/$"){if(s===0){e.removeChild(r),Oi(t);return}s--}else n!=="$"&&n!=="$?"&&n!=="$!"||s++;n=r}while(n);Oi(t)}function _s(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t==="$"||t==="$!"||t==="$?")break;if(t==="/$")return null}}return e}function Kh(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="$"||n==="$!"||n==="$?"){if(t===0)return e;t--}else n==="/$"&&t++}e=e.previousSibling}return null}var Ir=Math.random().toString(36).slice(2),mn="__reactFiber$"+Ir,Di="__reactProps$"+Ir,On="__reactContainer$"+Ir,vu="__reactEvents$"+Ir,J_="__reactListeners$"+Ir,Y_="__reactHandles$"+Ir;function sa(e){var t=e[mn];if(t)return t;for(var n=e.parentNode;n;){if(t=n[On]||n[mn]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Kh(e);e!==null;){if(n=e[mn])return n;e=Kh(e)}return t}e=n,n=e.parentNode}return null}function po(e){return e=e[mn]||e[On],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Ya(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(P(33))}function gc(e){return e[Di]||null}var yu=[],Qa=-1;function Is(e){return{current:e}}function be(e){0>
vendor: 4,512 bytes, line 38
38Qa||(e.current=yu[Qa],yu[Qa]=null,Qa--)}function he(e,t){Qa++,yu[Qa]=e.current,e.current=t}var Ts={},Xe=Is(Ts),pt=Is(!1),ba=Ts;function $r(e,t){var n=e.type.contextTypes;if(!n)return Ts;var s=e.stateNode;if(s&&s.__reactInternalMemoizedUnmaskedChildContext===t)return s.__reactInternalMemoizedMaskedChildContext;var r={},i;for(i in n)r[i]=t[i];return s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=r),r}function ht(e){return e=e.childContextTypes,e!=null}function Pl(){be(pt),be(Xe)}function Jh(e,t,n){if(Xe.current!==Ts)throw Error(P(168));he(Xe,t),he(pt,n)}function Ab(e,t,n){var s=e.stateNode;if(t=t.childContextTypes,typeof s.getChildContext!="function")return n;s=s.getChildContext();for(var r in s)if(!(r in t))throw Error(P(108,zy(e)||"Unknown",r));return we({},n,s)}function Ol(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ts,ba=Xe.current,he(Xe,e),he(pt,pt.current),!0}function Yh(e,t,n){var s=e.stateNode;if(!s)throw Error(P(169));n?(e=Ab(e,t,ba),s.__reactInternalMemoizedMergedChildContext=e,be(pt),be(Xe),he(Xe,e)):be(pt),he(pt,n)}var En=null,bc=!1,md=!1;function Rb(e){En===null?En=[e]:En.push(e)}function Q_(e){bc=!0,Rb(e)}function Ls(){if(!md&&En!==null){md=!0;var e=0,t=le;try{var n=En;for(le=1;e<n.length;e++){var s=n[e];do s=s(!0);while(s!==null)}En=null,bc=!1}catch(r){throw En!==null&&(En=En.slice(e+1)),sb(If,Ls),r}finally{le=t,md=!1}}return null}var Xa=[],er=0,zl=null,Il=0,Ct=[],Tt=0,xa=null,Tn=1,An="";function Qs(e,t){Xa[er++]=Il,Xa[er++]=zl,zl=e,Il=t}function Pb(e,t,n){Ct[Tt++]=Tn,Ct[Tt++]=An,Ct[Tt++]=xa,xa=e;var s=Tn;e=An;var r=32-tn(s)-1;s&=~(1<<r),n+=1;var i=32-tn(t)+r;if(30<i){var o=r-r%5;i=(s&(1<<o)-1).toString(32),s>>=o,r-=o,Tn=1<<32-tn(t)+r|n<<r|s,An=i+e}else Tn=1<<i|n<<r|s,An=e}function Hf(e){e.return!==null&&(Qs(e,1),Pb(e,1,0))}function Wf(e){for(;e===zl;)zl=Xa[--er],Xa[er]=null,Il=Xa[--er],Xa[er]=null;for(;e===xa;)xa=Ct[--Tt],Ct[Tt]=null,An=Ct[--Tt],Ct[Tt]=null,Tn=Ct[--Tt],Ct[Tt]=null}var _t=null,yt=null,ve=!1,Xt=null;function Ob(e,t){var n=At(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Qh(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null?(e.stateNode=t,_t=e,yt=_s(t.firstChild),!0):!1;case 6:return t=e.pendingProps===""||t.nodeType!==3?null:t,t!==null?(e.stateNode=t,_t=e,yt=null,!0):!1;case 13:return t=t.nodeType!==8?null:t,t!==null?(n=xa!==null?{id:Tn,overflow:An}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=At(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,_t=e,yt=null,!0):!1;default:return!1}}function _u(e){return(e.mode&1)!==0&&(e.flags&128)===0}function wu(e){if(ve){var t=yt;if(t){var n=t;if(!Qh(e,t)){if(_u(e))throw Error(P(418));t=_s(n.nextSibling);var s=_t;t&&Qh(e,t)?Ob(s,n):(e.flags=e.flags&-4097|2,ve=!1,_t=e)}}else{if(_u(e))throw Error(P(418));e.flags=e.flags&-4097|2,ve=!1,_t=e}}}function Xh(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;_t=e}function Lo(e){if(e!==_t)return!1;if(!ve)return Xh(e),ve=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!=="head"&&t!=="body"&&!bu(e.type,e.memoizedProps)),t&&(t=yt)){if(_u(e))throw zb(),Error(P(418));for(;t;)Ob(e,t),t=_s(t.nextSibling)}if(Xh(e),e.tag===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(P(317));e:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n==="/$"){if(t===0){yt=_s(e.nextSibling);break e}t--}else n!=="$"&&n!=="$!"&&n!=="$?"||t++}e=e.nextSibling}yt=null}}else yt=_t?_s(e.stateNode.nextSibling):null;return!0}function zb(){for(var e=yt;e;)e=_s(e.nextSibling)}function Sr(){yt=_t=null,ve=!1}function Zf(e){Xt===null?Xt=[e]:Xt.push(e)}var X_=Dn.ReactCurrentBatchConfig;function Yr(e,t,n){if(e=n.ref,e!==null&&typeof e!="function"&&typeof e!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(P(309));var s=n.stateNode}if(!s)throw Error(P(147,e));var r=s,i=""+e;return t!==null&&t.ref!==null&&typeof t.ref=="function"&&t.ref._stringRef===i?t.ref:(t=function(o){var l=r.refs;o===null?delete l[i]:l[i]=o},t._stringRef=i,t)}if(typeof e!="string")throw Error(P(284));if(!n._owner)throw Error(P(290,e))}return e}function Mo(e,t){throw e=Object.prototype.toString.call(t),Error(P(31,e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function em(e){var t=e._init;return t(e._payload)}
vendor: 5,111 bytes, line 38
38function Ib(e){function t(x,b){if(e){var m=x.deletions;m===null?(x.deletions=[b],x.flags|=16):m.push(b)}}function n(x,b){if(!e)return null;for(;b!==null;)t(x,b),b=b.sibling;return null}function s(x,b){for(x=new Map;b!==null;)b.key!==null?x.set(b.key,b):x.set(b.index,b),b=b.sibling;return x}function r(x,b){return x=Ns(x,b),x.index=0,x.sibling=null,x}function i(x,b,m){return x.index=m,e?(m=x.alternate,m!==null?(m=m.index,m<b?(x.flags|=2,b):m):(x.flags|=2,b)):(x.flags|=1048576,b)}function o(x){return e&&x.alternate===null&&(x.flags|=2),x}function l(x,b,m,w){return b===null||b.tag!==6?(b=wd(m,x.mode,w),b.return=x,b):(b=r(b,m),b.return=x,b)}function c(x,b,m,w){var j=m.type;return j===Za?u(x,b,m.props.children,w,m.key):b!==null&&(b.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===as&&em(j)===b.type)?(w=r(b,m.props),w.ref=Yr(x,b,m),w.return=x,w):(w=ml(m.type,m.key,m.props,null,x.mode,w),w.ref=Yr(x,b,m),w.return=x,w)}function d(x,b,m,w){return b===null||b.tag!==4||b.stateNode.containerInfo!==m.containerInfo||b.stateNode.implementation!==m.implementation?(b=jd(m,x.mode,w),b.return=x,b):(b=r(b,m.children||[]),b.return=x,b)}function u(x,b,m,w,j){return b===null||b.tag!==7?(b=ga(m,x.mode,w,j),b.return=x,b):(b=r(b,m),b.return=x,b)}function f(x,b,m){if(typeof b=="string"&&b!==""||typeof b=="number")return b=wd(""+b,x.mode,m),b.return=x,b;if(typeof b=="object"&&b!==null){switch(b.$$typeof){case So:return m=ml(b.type,b.key,b.props,null,x.mode,m),m.ref=Yr(x,null,b),m.return=x,m;case Wa:return b=jd(b,x.mode,m),b.return=x,b;case as:var w=b._init;return f(x,w(b._payload),m)}if(li(b)||Wr(b))return b=ga(b,x.mode,m,null),b.return=x,b;Mo(x,b)}return null}function h(x,b,m,w){var j=b!==null?b.key:null;if(typeof m=="string"&&m!==""||typeof m=="number")return j!==null?null:l(x,b,""+m,w);if(typeof m=="object"&&m!==null){switch(m.$$typeof){case So:return m.key===j?c(x,b,m,w):null;case Wa:return m.key===j?d(x,b,m,w):null;case as:return j=m._init,h(x,b,j(m._payload),w)}if(li(m)||Wr(m))return j!==null?null:u(x,b,m,w,null);Mo(x,m)}return null}function p(x,b,m,w,j){if(typeof w=="string"&&w!==""||typeof w=="number")return x=x.get(m)||null,l(b,x,""+w,j);if(typeof w=="object"&&w!==null){switch(w.$$typeof){case So:return x=x.get(w.key===null?m:w.key)||null,c(b,x,w,j);case Wa:return x=x.get(w.key===null?m:w.key)||null,d(b,x,w,j);case as:var k=w._init;return p(x,b,m,k(w._payload),j)}if(li(w)||Wr(w))return x=x.get(m)||null,u(b,x,w,j,null);Mo(b,w)}return null}function y(x,b,m,w){for(var j=null,k=null,N=b,C=b=0,R=null;N!==null&&C<m.length;C++){N.index>C?(R=N,N=null):R=N.sibling;var O=h(x,N,m[C],w);if(O===null){N===null&&(N=R);break}e&&N&&O.alternate===null&&t(x,N),b=i(O,b,C),k===null?j=O:k.sibling=O,k=O,N=R}if(C===m.length)return n(x,N),ve&&Qs(x,C),j;if(N===null){for(;C<m.length;C++)N=f(x,m[C],w),N!==null&&(b=i(N,b,C),k===null?j=N:k.sibling=N,k=N);return ve&&Qs(x,C),j}for(N=s(x,N);C<m.length;C++)R=p(N,x,C,m[C],w),R!==null&&(e&&R.alternate!==null&&N.delete(R.key===null?C:R.key),b=i(R,b,C),k===null?j=R:k.sibling=R,k=R);return e&&N.forEach(function(H){return t(x,H)}),ve&&Qs(x,C),j}function v(x,b,m,w){var j=Wr(m);if(typeof j!="function")throw Error(P(150));if(m=j.call(m),m==null)throw Error(P(151));for(var k=j=null,N=b,C=b=0,R=null,O=m.next();N!==null&&!O.done;C++,O=m.next()){N.index>C?(R=N,N=null):R=N.sibling;var H=h(x,N,O.value,w);if(H===null){N===null&&(N=R);break}e&&N&&H.alternate===null&&t(x,N),b=i(H,b,C),k===null?j=H:k.sibling=H,k=H,N=R}if(O.done)return n(x,N),ve&&Qs(x,C),j;if(N===null){for(;!O.done;C++,O=m.next())O=f(x,O.value,w),O!==null&&(b=i(O,b,C),k===null?j=O:k.sibling=O,k=O);return ve&&Qs(x,C),j}for(N=s(x,N);!O.done;C++,O=m.next())O=p(N,x,C,O.value,w),O!==null&&(e&&O.alternate!==null&&N.delete(O.key===null?C:O.key),b=i(O,b,C),k===null?j=O:k.sibling=O,k=O);return e&&N.forEach(function(M){return t(x,M)}),ve&&Qs(x,C),j}function _(x,b,m,w){if(typeof m=="object"&&m!==null&&m.type===Za&&m.key===null&&(m=m.props.children),typeof m=="object"&&m!==null){switch(m.$$typeof){case So:e:{for(var j=m.key,k=b;k!==null;){if(k.key===j){if(j=m.type,j===Za){if(k.tag===7){n(x,k.sibling),b=r(k,m.props.children),b.return=x,x=b;break e}}else if(k.elementType===j||typeof j=="object"&&j!==null&&j.$$typeof===as&&em(j)===k.type){n(x,k.sibling),b=r(k,m.props),b.ref=Yr(x,k,m),b.return=x,x=b;break e}n(x,k);break}else t(x,k);k=k.sibling}m.type===Za?(b=ga(m.props.children,x.mode,w,m.key),b.return=x,x=b):(w=ml(m.type,m.key,m.props,null,x.mode,w),w.ref=Yr(x,b,m),w.return=x,x=w)}return o(x);case Wa:e:{for(k=m.key;b!==null;){if(b.key===k)if(b.tag===4&&b.stateNode.containerInfo===m.containerInfo&&b.stateNode.implementation===m.implementation){n(x,b.sibling),b=r(b,m.children||[]),b.return=x,x=b;break e}else{n(x,b);break}else t(x,b);b=b.sibling}b=jd(m,x.mode,w),b.return=x,x=b}return o(x);case as:return k=m._init,_(x,b,k(m._payload),w)}if(li(m))return y(x,b,m,w);if(Wr(m))return v(x,b,m,w);Mo(x,m)}return typeof m=="string"&&m!==""||typeof m=="number"?(m=""+m,b!==null&&b.tag===6?(n(x,b.sibling),b=r(b,m),b.return=x,x=b):(n(x,b),b=wd(m,x.mode,w),b.return=x,x=b),o(x)):n(x,b)}return _}
vendor: 5,561 bytes, line 38
38var Er=Ib(!0),Lb=Ib(!1),Ll=Is(null),Ml=null,tr=null,Gf=null;function Kf(){Gf=tr=Ml=null}function Jf(e){var t=Ll.current;be(Ll),e._currentValue=t}function ju(e,t,n){for(;e!==null;){var s=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,s!==null&&(s.childLanes|=t)):s!==null&&(s.childLanes&t)!==t&&(s.childLanes|=t),e===n)break;e=e.return}}function cr(e,t){Ml=e,Gf=tr=null,e=e.dependencies,e!==null&&e.firstContext!==null&&(e.lanes&t&&(ft=!0),e.firstContext=null)}function Pt(e){var t=e._currentValue;if(Gf!==e)if(e={context:e,memoizedValue:t,next:null},tr===null){if(Ml===null)throw Error(P(308));tr=e,Ml.dependencies={lanes:0,firstContext:e}}else tr=tr.next=e;return t}var aa=null;function Yf(e){aa===null?aa=[e]:aa.push(e)}function Mb(e,t,n,s){var r=t.interleaved;return r===null?(n.next=n,Yf(t)):(n.next=r.next,r.next=n),t.interleaved=n,zn(e,s)}function zn(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var rs=!1;function Qf(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Db(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Rn(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function ws(e,t,n){var s=e.updateQueue;if(s===null)return null;if(s=s.shared,se&2){var r=s.pending;return r===null?t.next=t:(t.next=r.next,r.next=t),s.pending=t,zn(e,n)}return r=s.interleaved,r===null?(t.next=t,Yf(s)):(t.next=r.next,r.next=t),s.interleaved=t,zn(e,n)}function cl(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,(n&4194240)!==0)){var s=t.lanes;s&=e.pendingLanes,n|=s,t.lanes=n,Lf(e,n)}}function tm(e,t){var n=e.updateQueue,s=e.alternate;if(s!==null&&(s=s.updateQueue,n===s)){var r=null,i=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};i===null?r=i=o:i=i.next=o,n=n.next}while(n!==null);i===null?r=i=t:i=i.next=t}else r=i=t;n={baseState:s.baseState,firstBaseUpdate:r,lastBaseUpdate:i,shared:s.shared,effects:s.effects},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Dl(e,t,n,s){var r=e.updateQueue;rs=!1;var i=r.firstBaseUpdate,o=r.lastBaseUpdate,l=r.shared.pending;if(l!==null){r.shared.pending=null;var c=l,d=c.next;c.next=null,o===null?i=d:o.next=d,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,l=u.lastBaseUpdate,l!==o&&(l===null?u.firstBaseUpdate=d:l.next=d,u.lastBaseUpdate=c))}if(i!==null){var f=r.baseState;o=0,u=d=c=null,l=i;do{var h=l.lane,p=l.eventTime;if((s&h)===h){u!==null&&(u=u.next={eventTime:p,lane:0,tag:l.tag,payload:l.payload,callback:l.callback,next:null});e:{var y=e,v=l;switch(h=t,p=n,v.tag){case 1:if(y=v.payload,typeof y=="function"){f=y.call(p,f,h);break e}f=y;break e;case 3:y.flags=y.flags&-65537|128;case 0:if(y=v.payload,h=typeof y=="function"?y.call(p,f,h):y,h==null)break e;f=we({},f,h);break e;case 2:rs=!0}}l.callback!==null&&l.lane!==0&&(e.flags|=64,h=r.effects,h===null?r.effects=[l]:h.push(l))}else p={eventTime:p,lane:h,tag:l.tag,payload:l.payload,callback:l.callback,next:null},u===null?(d=u=p,c=f):u=u.next=p,o|=h;if(l=l.next,l===null){if(l=r.shared.pending,l===null)break;h=l,l=h.next,h.next=null,r.lastBaseUpdate=h,r.shared.pending=null}}while(!0);if(u===null&&(c=f),r.baseState=c,r.firstBaseUpdate=d,r.lastBaseUpdate=u,t=r.shared.interleaved,t!==null){r=t;do o|=r.lane,r=r.next;while(r!==t)}else i===null&&(r.shared.lanes=0);ya|=o,e.lanes=o,e.memoizedState=f}}function nm(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var s=e[t],r=s.callback;if(r!==null){if(s.callback=null,s=n,typeof r!="function")throw Error(P(191,r));r.call(s)}}}var ho={},xn=Is(ho),Ui=Is(ho),Fi=Is(ho);function ra(e){if(e===ho)throw Error(P(174));return e}function Xf(e,t){switch(he(Fi,t),he(Ui,e),he(xn,ho),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:su(null,"");break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=su(t,e)}be(xn),he(xn,t)}function Cr(){be(xn),be(Ui),be(Fi)}function Ub(e){ra(Fi.current);var t=ra(xn.current),n=su(t,e.type);t!==n&&(he(Ui,e),he(xn,n))}function ep(e){Ui.current===e&&(be(xn),be(Ui))}var ye=Is(0);function Ul(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var gd=[];function tp(){for(var e=0;e<gd.length;e++)gd[e]._workInProgressVersionPrimary=null;gd.length=0}var dl=Dn.ReactCurrentDispatcher,bd=Dn.ReactCurrentBatchConfig,va=0,_e=null,Ie=null,Me=null,Fl=!1,xi=!1,Bi=0,e4=0;function Ke(){throw Error(P(321))}function np(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sn(e[n],t[n]))return!1;return!0}function sp(e,t,n,s,r,i){if(va=i,_e=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,dl.current=e===null||e.memoizedState===null?a4:r4,e=n(s,r),xi){i=0;do{if(xi=!1,Bi=0,25<=i)throw Error(P(301));i+=1,Me=Ie=null,t.updateQueue=null,dl.current=i4,e=n(s,r)}while(xi)}
vendor: 6,481 bytes, line 38
38if(dl.current=Bl,t=Ie!==null&&Ie.next!==null,va=0,Me=Ie=_e=null,Fl=!1,t)throw Error(P(300));return e}function ap(){var e=Bi!==0;return Bi=0,e}function cn(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Me===null?_e.memoizedState=Me=e:Me=Me.next=e,Me}function Ot(){if(Ie===null){var e=_e.alternate;e=e!==null?e.memoizedState:null}else e=Ie.next;var t=Me===null?_e.memoizedState:Me.next;if(t!==null)Me=t,Ie=e;else{if(e===null)throw Error(P(310));Ie=e,e={memoizedState:Ie.memoizedState,baseState:Ie.baseState,baseQueue:Ie.baseQueue,queue:Ie.queue,next:null},Me===null?_e.memoizedState=Me=e:Me=Me.next=e}return Me}function qi(e,t){return typeof t=="function"?t(e):t}function xd(e){var t=Ot(),n=t.queue;if(n===null)throw Error(P(311));n.lastRenderedReducer=e;var s=Ie,r=s.baseQueue,i=n.pending;if(i!==null){if(r!==null){var o=r.next;r.next=i.next,i.next=o}s.baseQueue=r=i,n.pending=null}if(r!==null){i=r.next,s=s.baseState;var l=o=null,c=null,d=i;do{var u=d.lane;if((va&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 f={lane:u,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};c===null?(l=c=f,o=s):c=c.next=f,_e.lanes|=u,ya|=u}d=d.next}while(d!==null&&d!==i);c===null?o=s:c.next=l,sn(s,t.memoizedState)||(ft=!0),t.memoizedState=s,t.baseState=o,t.baseQueue=c,n.lastRenderedState=s}if(e=n.interleaved,e!==null){r=e;do i=r.lane,_e.lanes|=i,ya|=i,r=r.next;while(r!==e)}else r===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function vd(e){var t=Ot(),n=t.queue;if(n===null)throw Error(P(311));n.lastRenderedReducer=e;var s=n.dispatch,r=n.pending,i=t.memoizedState;if(r!==null){n.pending=null;var o=r=r.next;do i=e(i,o.action),o=o.next;while(o!==r);sn(i,t.memoizedState)||(ft=!0),t.memoizedState=i,t.baseQueue===null&&(t.baseState=i),n.lastRenderedState=i}return[i,s]}function Fb(){}function Bb(e,t){var n=_e,s=Ot(),r=t(),i=!sn(s.memoizedState,r);if(i&&(s.memoizedState=r,ft=!0),s=s.queue,rp(Hb.bind(null,n,s,e),[e]),s.getSnapshot!==t||i||Me!==null&&Me.memoizedState.tag&1){if(n.flags|=2048,Vi(9,Vb.bind(null,n,s,r,t),void 0,null),De===null)throw Error(P(349));va&30||qb(n,t,r)}return r}function qb(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=_e.updateQueue,t===null?(t={lastEffect:null,stores:null},_e.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Vb(e,t,n,s){t.value=n,t.getSnapshot=s,Wb(t)&&Zb(e)}function Hb(e,t,n){return n(function(){Wb(t)&&Zb(e)})}function Wb(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sn(e,n)}catch{return!0}}function Zb(e){var t=zn(e,1);t!==null&&nn(t,e,1,-1)}function sm(e){var t=cn();return typeof e=="function"&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:qi,lastRenderedState:e},t.queue=e,e=e.dispatch=s4.bind(null,_e,e),[t.memoizedState,e]}function Vi(e,t,n,s){return e={tag:e,create:t,destroy:n,deps:s,next:null},t=_e.updateQueue,t===null?(t={lastEffect:null,stores:null},_e.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(s=n.next,n.next=e,e.next=s,t.lastEffect=e)),e}function Gb(){return Ot().memoizedState}function ul(e,t,n,s){var r=cn();_e.flags|=e,r.memoizedState=Vi(1|t,n,void 0,s===void 0?null:s)}function xc(e,t,n,s){var r=Ot();s=s===void 0?null:s;var i=void 0;if(Ie!==null){var o=Ie.memoizedState;if(i=o.destroy,s!==null&&np(s,o.deps)){r.memoizedState=Vi(t,n,i,s);return}}_e.flags|=e,r.memoizedState=Vi(1|t,n,i,s)}function am(e,t){return ul(8390656,8,e,t)}function rp(e,t){return xc(2048,8,e,t)}function Kb(e,t){return xc(4,2,e,t)}function Jb(e,t){return xc(4,4,e,t)}function Yb(e,t){if(typeof t=="function")return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function Qb(e,t,n){return n=n!=null?n.concat([e]):null,xc(4,4,Yb.bind(null,t,e),n)}function ip(){}function Xb(e,t){var n=Ot();t=t===void 0?null:t;var s=n.memoizedState;return s!==null&&t!==null&&np(t,s[1])?s[0]:(n.memoizedState=[e,t],e)}function ex(e,t){var n=Ot();t=t===void 0?null:t;var s=n.memoizedState;return s!==null&&t!==null&&np(t,s[1])?s[0]:(e=e(),n.memoizedState=[e,t],e)}function tx(e,t,n){return va&21?(sn(n,t)||(n=ib(),_e.lanes|=n,ya|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,ft=!0),e.memoizedState=n)}function t4(e,t){var n=le;le=n!==0&&4>n?n:4,e(!0);var s=bd.transition;bd.transition={};try{e(!1),t()}finally{le=n,bd.transition=s}}function nx(){return Ot().memoizedState}function n4(e,t,n){var s=ks(e);if(n={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null},sx(e))ax(t,n);else if(n=Mb(e,t,n,s),n!==null){var r=at();nn(n,e,s,r),rx(n,t,s)}}function s4(e,t,n){var s=ks(e),r={lane:s,action:n,hasEagerState:!1,eagerState:null,next:null};if(sx(e))ax(t,r);else{var i=e.alternate;if(e.lanes===0&&(i===null||i.lanes===0)&&(i=t.lastRenderedReducer,i!==null))try{var o=t.lastRenderedState,l=i(o,n);if(r.hasEagerState=!0,r.eagerState=l,sn(l,o)){var c=t.interleaved;c===null?(r.next=r,Yf(t)):(r.next=c.next,c.next=r),t.interleaved=r;return}}catch{}finally{}n=Mb(e,t,r,s),n!==null&&(r=at(),nn(n,e,s,r),rx(n,t,s))}}function sx(e){var t=e.alternate;return e===_e||t!==null&&t===_e}function ax(e,t){xi=Fl=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function rx(e,t,n){if(n&4194240){var s=t.lanes;s&=e.pendingLanes,n|=s,t.lanes=n,Lf(e,n)}}var Bl={readContext:Pt,useCallback:Ke,useContext:Ke,useEffect:Ke,useImperativeHandle:Ke,useInsertionEffect:Ke,useLayoutEffect:Ke,useMemo:Ke,useReducer:Ke,useRef:Ke,useState:Ke,useDebugValue:Ke,useDeferredValue:Ke,useTransition:Ke,useMutableSource:Ke,useSyncExternalStore:Ke,useId:Ke,unstable_isNewReconciler:!1},a4={readContext:Pt,useCallback:function(e,t){return cn().memoizedState=[e,t===void 0?null:t],e},useContext:Pt,useEffect:am,useImperativeHandle:function(e,t,n){return n=n!=null?n.concat([e]):null,ul(4194308,4,Yb.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ul(4194308,4,e,t)},useInsertionEffect:function(e,t){return ul(4,2,e,t)},useMemo:function(e,t){var n=cn();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var s=cn();return t=n!==void 0?n(t):t,s.memoizedState=s.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},s.queue=e,e=e.dispatch=n4.bind(null,_e,e),[s.memoizedState,e]}
vendor: 4,632 bytes, lines 38-40
38,useRef:function(e){var t=cn();return e={current:e},t.memoizedState=e},useState:sm,useDebugValue:ip,useDeferredValue:function(e){return cn().memoizedState=e},useTransition:function(){var e=sm(!1),t=e[0];return e=t4.bind(null,e[1]),cn().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var s=_e,r=cn();if(ve){if(n===void 0)throw Error(P(407));n=n()}else{if(n=t(),De===null)throw Error(P(349));va&30||qb(s,t,n)}r.memoizedState=n;var i={value:n,getSnapshot:t};return r.queue=i,am(Hb.bind(null,s,i,e),[e]),s.flags|=2048,Vi(9,Vb.bind(null,s,i,n,t),void 0,null),n},useId:function(){var e=cn(),t=De.identifierPrefix;if(ve){var n=An,s=Tn;n=(s&~(1<<32-tn(s)-1)).toString(32)+n,t=":"+t+"R"+n,n=Bi++,0<n&&(t+="H"+n.toString(32)),t+=":"}else n=e4++,t=":"+t+"r"+n.toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},r4={readContext:Pt,useCallback:Xb,useContext:Pt,useEffect:rp,useImperativeHandle:Qb,useInsertionEffect:Kb,useLayoutEffect:Jb,useMemo:ex,useReducer:xd,useRef:Gb,useState:function(){return xd(qi)},useDebugValue:ip,useDeferredValue:function(e){var t=Ot();return tx(t,Ie.memoizedState,e)},useTransition:function(){var e=xd(qi)[0],t=Ot().memoizedState;return[e,t]},useMutableSource:Fb,useSyncExternalStore:Bb,useId:nx,unstable_isNewReconciler:!1},i4={readContext:Pt,useCallback:Xb,useContext:Pt,useEffect:rp,useImperativeHandle:Qb,useInsertionEffect:Kb,useLayoutEffect:Jb,useMemo:ex,useReducer:vd,useRef:Gb,useState:function(){return vd(qi)},useDebugValue:ip,useDeferredValue:function(e){var t=Ot();return Ie===null?t.memoizedState=e:tx(t,Ie.memoizedState,e)},useTransition:function(){var e=vd(qi)[0],t=Ot().memoizedState;return[e,t]},useMutableSource:Fb,useSyncExternalStore:Bb,useId:nx,unstable_isNewReconciler:!1};function Zt(e,t){if(e&&e.defaultProps){t=we({},t),e=e.defaultProps;for(var n in e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function ku(e,t,n,s){t=e.memoizedState,n=n(s,t),n=n==null?t:we({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var vc={isMounted:function(e){return(e=e._reactInternals)?ka(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var s=at(),r=ks(e),i=Rn(s,r);i.payload=t,n!=null&&(i.callback=n),t=ws(e,i,r),t!==null&&(nn(t,e,r,s),cl(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var s=at(),r=ks(e),i=Rn(s,r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=ws(e,i,r),t!==null&&(nn(t,e,r,s),cl(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=at(),s=ks(e),r=Rn(n,s);r.tag=2,t!=null&&(r.callback=t),t=ws(e,r,s),t!==null&&(nn(t,e,s,n),cl(t,e,s))}};function rm(e,t,n,s,r,i,o){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(s,i,o):t.prototype&&t.prototype.isPureReactComponent?!Ii(n,s)||!Ii(r,i):!0}function ix(e,t,n){var s=!1,r=Ts,i=t.contextType;return typeof i=="object"&&i!==null?i=Pt(i):(r=ht(t)?ba:Xe.current,s=t.contextTypes,i=(s=s!=null)?$r(e,r):Ts),t=new t(n,i),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=vc,e.stateNode=t,t._reactInternals=e,s&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=r,e.__reactInternalMemoizedMaskedChildContext=i),t}function im(e,t,n,s){e=t.state,typeof t.componentWillReceiveProps=="function"&&t.componentWillReceiveProps(n,s),typeof t.UNSAFE_componentWillReceiveProps=="function"&&t.UNSAFE_componentWillReceiveProps(n,s),t.state!==e&&vc.enqueueReplaceState(t,t.state,null)}function Nu(e,t,n,s){var r=e.stateNode;r.props=n,r.state=e.memoizedState,r.refs={},Qf(e);var i=t.contextType;typeof i=="object"&&i!==null?r.context=Pt(i):(i=ht(t)?ba:Xe.current,r.context=$r(e,i)),r.state=e.memoizedState,i=t.getDerivedStateFromProps,typeof i=="function"&&(ku(e,t,i,n),r.state=e.memoizedState),typeof t.getDerivedStateFromProps=="function"||typeof r.getSnapshotBeforeUpdate=="function"||typeof r.UNSAFE_componentWillMount!="function"&&typeof r.componentWillMount!="function"||(t=r.state,typeof r.componentWillMount=="function"&&r.componentWillMount(),typeof r.UNSAFE_componentWillMount=="function"&&r.UNSAFE_componentWillMount(),t!==r.state&&vc.enqueueReplaceState(r,r.state,null),Dl(e,n,r,s),r.state=e.memoizedState),typeof r.componentDidMount=="function"&&(e.flags|=4194308)}function Tr(e,t){try{var n="",s=t;do n+=Oy(s),s=s.return;while(s);var r=n}catch(i){r=`
39Error generating stack: `+i.message+`
40`+i.stack}return{value:e,source:t,stack:r,digest:null}}function yd(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function $u(e,t){try{console.error(t.value)}catch(n){setTimeout(function(){throw n})}}var o4=typeof WeakMap=="function"?WeakMap:Map;
vendor: 9,403 bytes, line 40
40function ox(e,t,n){n=Rn(-1,n),n.tag=3,n.payload={element:null};var s=t.value;return n.callback=function(){Vl||(Vl=!0,Iu=s),$u(e,t)},n}function lx(e,t,n){n=Rn(-1,n),n.tag=3;var s=e.type.getDerivedStateFromError;if(typeof s=="function"){var r=t.value;n.payload=function(){return s(r)},n.callback=function(){$u(e,t)}}var i=e.stateNode;return i!==null&&typeof i.componentDidCatch=="function"&&(n.callback=function(){$u(e,t),typeof s!="function"&&(js===null?js=new Set([this]):js.add(this));var o=t.stack;this.componentDidCatch(t.value,{componentStack:o!==null?o:""})}),n}function om(e,t,n){var s=e.pingCache;if(s===null){s=e.pingCache=new o4;var r=new Set;s.set(t,r)}else r=s.get(t),r===void 0&&(r=new Set,s.set(t,r));r.has(n)||(r.add(n),e=_4.bind(null,e,t,n),t.then(e,e))}function lm(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t!==null?t.dehydrated!==null:!0),t)return e;e=e.return}while(e!==null);return null}function cm(e,t,n,s,r){return e.mode&1?(e.flags|=65536,e.lanes=r,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=Rn(-1,1),t.tag=2,ws(n,t,1))),n.lanes|=1),e)}var l4=Dn.ReactCurrentOwner,ft=!1;function tt(e,t,n,s){t.child=e===null?Lb(t,null,n,s):Er(t,e.child,n,s)}function dm(e,t,n,s,r){n=n.render;var i=t.ref;return cr(t,r),s=sp(e,t,n,s,i,r),n=ap(),e!==null&&!ft?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~r,In(e,t,r)):(ve&&n&&Hf(t),t.flags|=1,tt(e,t,s,r),t.child)}function um(e,t,n,s,r){if(e===null){var i=n.type;return typeof i=="function"&&!hp(i)&&i.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=i,cx(e,t,i,s,r)):(e=ml(n.type,null,s,t,t.mode,r),e.ref=t.ref,e.return=t,t.child=e)}if(i=e.child,!(e.lanes&r)){var o=i.memoizedProps;if(n=n.compare,n=n!==null?n:Ii,n(o,s)&&e.ref===t.ref)return In(e,t,r)}return t.flags|=1,e=Ns(i,s),e.ref=t.ref,e.return=t,t.child=e}function cx(e,t,n,s,r){if(e!==null){var i=e.memoizedProps;if(Ii(i,s)&&e.ref===t.ref)if(ft=!1,t.pendingProps=s=i,(e.lanes&r)!==0)e.flags&131072&&(ft=!0);else return t.lanes=e.lanes,In(e,t,r)}return Su(e,t,n,s,r)}function dx(e,t,n){var s=t.pendingProps,r=s.children,i=e!==null?e.memoizedState:null;if(s.mode==="hidden")if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},he(sr,bt),bt|=n;else{if(!(n&1073741824))return e=i!==null?i.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,he(sr,bt),bt|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},s=i!==null?i.baseLanes:n,he(sr,bt),bt|=s}else i!==null?(s=i.baseLanes|n,t.memoizedState=null):s=n,he(sr,bt),bt|=s;return tt(e,t,r,n),t.child}function ux(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Su(e,t,n,s,r){var i=ht(n)?ba:Xe.current;return i=$r(t,i),cr(t,r),n=sp(e,t,n,s,i,r),s=ap(),e!==null&&!ft?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~r,In(e,t,r)):(ve&&s&&Hf(t),t.flags|=1,tt(e,t,n,r),t.child)}function fm(e,t,n,s,r){if(ht(n)){var i=!0;Ol(t)}else i=!1;if(cr(t,r),t.stateNode===null)fl(e,t),ix(t,n,s),Nu(t,n,s,r),s=!0;else if(e===null){var o=t.stateNode,l=t.memoizedProps;o.props=l;var c=o.context,d=n.contextType;typeof d=="object"&&d!==null?d=Pt(d):(d=ht(n)?ba:Xe.current,d=$r(t,d));var u=n.getDerivedStateFromProps,f=typeof u=="function"||typeof o.getSnapshotBeforeUpdate=="function";f||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(l!==s||c!==d)&&im(t,o,s,d),rs=!1;var h=t.memoizedState;o.state=h,Dl(t,s,o,r),c=t.memoizedState,l!==s||h!==c||pt.current||rs?(typeof u=="function"&&(ku(t,n,u,s),c=t.memoizedState),(l=rs||rm(t,n,l,s,h,c,d))?(f||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(t.flags|=4194308)):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),t.memoizedProps=s,t.memoizedState=c),o.props=s,o.state=c,o.context=d,s=l):(typeof o.componentDidMount=="function"&&(t.flags|=4194308),s=!1)}else{o=t.stateNode,Db(e,t),l=t.memoizedProps,d=t.type===t.elementType?l:Zt(t.type,l),o.props=d,f=t.pendingProps,h=o.context,c=n.contextType,typeof c=="object"&&c!==null?c=Pt(c):(c=ht(n)?ba:Xe.current,c=$r(t,c));var p=n.getDerivedStateFromProps;(u=typeof p=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(l!==f||h!==c)&&im(t,o,s,c),rs=!1,h=t.memoizedState,o.state=h,Dl(t,s,o,r);var y=t.memoizedState;l!==f||h!==y||pt.current||rs?(typeof p=="function"&&(ku(t,n,p,s),y=t.memoizedState),(d=rs||rm(t,n,d,s,h,y,c)||!1)?(u||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(s,y,c),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(s,y,c)),typeof o.componentDidUpdate=="function"&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(t.flags|=1024)):(typeof o.componentDidUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=s,t.memoizedState=y),o.props=s,o.state=y,o.context=c,s=d):(typeof o.componentDidUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||l===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),s=!1)}return Eu(e,t,n,s,i,r)}function Eu(e,t,n,s,r,i){ux(e,t);var o=(t.flags&128)!==0;if(!s&&!o)return r&&Yh(t,n,!1),In(e,t,i);s=t.stateNode,l4.current=t;var l=o&&typeof n.getDerivedStateFromError!="function"?null:s.render();return t.flags|=1,e!==null&&o?(t.child=Er(t,e.child,null,i),t.child=Er(t,null,l,i)):tt(e,t,l,i),t.memoizedState=s.state,r&&Yh(t,n,!0),t.child}function fx(e){var t=e.stateNode;t.pendingContext?Jh(e,t.pendingContext,t.pendingContext!==t.context):t.context&&Jh(e,t.context,!1),Xf(e,t.containerInfo)}function pm(e,t,n,s,r){return Sr(),Zf(r),t.flags|=256,tt(e,t,n,s),t.child}var Cu={dehydrated:null,treeContext:null,retryLane:0};function Tu(e){return{baseLanes:e,cachePool:null,transitions:null}}function px(e,t,n){var s=t.pendingProps,r=ye.current,i=!1,o=(t.flags&128)!==0,l;if((l=o)||(l=e!==null&&e.memoizedState===null?!1:(r&2)!==0),l?(i=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(r|=1),he(ye,r&1),e===null)return wu(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.mode&1?e.data==="$!"?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(o=s.children,e=s.fallback,i?(s=t.mode,i=t.child,o={mode:"hidden",children:o},!(s&1)&&i!==null?(i.childLanes=0,i.pendingProps=o):i=wc(o,s,0,null),e=ga(e,s,n,null),i.return=t,e.return=t,i.sibling=e,t.child=i,t.child.memoizedState=Tu(n),t.memoizedState=Cu,e):op(t,o));if(r=e.memoizedState,r!==null&&(l=r.dehydrated,l!==null))return c4(e,t,o,s,l,r,n);if(i){i=s.fallback,o=t.mode,r=e.child,l=r.sibling;var c={mode:"hidden",children:s.children};return!(o&1)&&t.child!==r?(s=t.child,s.childLanes=0,s.pendingProps=c,t.deletions=null):(s=Ns(r,c),s.subtreeFlags=r.subtreeFlags&14680064),l!==null?i=Ns(l,i):(i=ga(i,o,n,null),i.flags|=2),i.return=t,s.return=t,s.sibling=i,t.child=s,s=i,i=t.child,o=e.child.memoizedState,o=o===null?Tu(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},i.memoizedState=o,i.childLanes=e.childLanes&~n,t.memoizedState=Cu,s}return i=e.child,e=i.sibling,s=Ns(i,{mode:"visible",children:s.children}),!(t.mode&1)&&(s.lanes=n),s.return=t,s.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=s,t.memoizedState=null,s}function op(e,t){return t=wc({mode:"visible",children:t},e.mode,0,null),t.return=e,e.child=t}function Do(e,t,n,s){return s!==null&&Zf(s),Er(t,e.child,null,n),e=op(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function c4(e,t,n,s,r,i,o){if(n)return t.flags&256?(t.flags&=-257,s=yd(Error(P(422))),Do(e,t,o,s)):t.memoizedState!==null?(t.child=e.child,t.flags|=128,null):(i=s.fallback,r=t.mode,s=wc({mode:"visible",children:s.children},r,0,null),i=ga(i,r,o,null),i.flags|=2,s.return=t,i.return=t,s.sibling=i,t.child=s,t.mode&1&&Er(t,e.child,null,o),t.child.memoizedState=Tu(o),t.memoizedState=Cu,i);if(!(t.mode&1))return Do(e,t,o,null);if(r.data==="$!"){if(s=r.nextSibling&&r.nextSibling.dataset,s)var l=s.dgst;return s=l,i=Error(P(419)),s=yd(i,s,void 0),Do(e,t,o,s)}if(l=(o&e.childLanes)!==0,ft||l){if(s=De,s!==null){switch(o&-o){case 4:r=2;break;case 16:r=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:r=32;break;case 536870912:r=268435456;break;default:r=0}r=r&(s.suspendedLanes|o)?0:r,r!==0&&r!==i.retryLane&&(i.retryLane=r,zn(e,r),nn(s,e,r,-1))}return pp(),s=yd(Error(P(421))),Do(e,t,o,s)}return r.data==="$?"?(t.flags|=128,t.child=e.child,t=w4.bind(null,e),r._reactRetry=t,null):(e=i.treeContext,yt=_s(r.nextSibling),_t=t,ve=!0,Xt=null,e!==null&&(Ct[Tt++]=Tn,Ct[Tt++]=An,Ct[Tt++]=xa,Tn=e.id,An=e.overflow,xa=t),t=
vendor: 5,604 bytes, line 40
40op(t,s.children),t.flags|=4096,t)}function hm(e,t,n){e.lanes|=t;var s=e.alternate;s!==null&&(s.lanes|=t),ju(e.return,t,n)}function _d(e,t,n,s,r){var i=e.memoizedState;i===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:s,tail:n,tailMode:r}:(i.isBackwards=t,i.rendering=null,i.renderingStartTime=0,i.last=s,i.tail=n,i.tailMode=r)}function hx(e,t,n){var s=t.pendingProps,r=s.revealOrder,i=s.tail;if(tt(e,t,s.children,n),s=ye.current,s&2)s=s&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)e:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&hm(e,n,t);else if(e.tag===19)hm(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;e.sibling===null;){if(e.return===null||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}s&=1}if(he(ye,s),!(t.mode&1))t.memoizedState=null;else switch(r){case"forwards":for(n=t.child,r=null;n!==null;)e=n.alternate,e!==null&&Ul(e)===null&&(r=n),n=n.sibling;n=r,n===null?(r=t.child,t.child=null):(r=n.sibling,n.sibling=null),_d(t,!1,r,n,i);break;case"backwards":for(n=null,r=t.child,t.child=null;r!==null;){if(e=r.alternate,e!==null&&Ul(e)===null){t.child=r;break}e=r.sibling,r.sibling=n,n=r,r=e}_d(t,!0,n,null,i);break;case"together":_d(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function fl(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function In(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),ya|=t.lanes,!(n&t.childLanes))return null;if(e!==null&&t.child!==e.child)throw Error(P(153));if(t.child!==null){for(e=t.child,n=Ns(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Ns(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function d4(e,t,n){switch(t.tag){case 3:fx(t),Sr();break;case 5:Ub(t);break;case 1:ht(t.type)&&Ol(t);break;case 4:Xf(t,t.stateNode.containerInfo);break;case 10:var s=t.type._context,r=t.memoizedProps.value;he(Ll,s._currentValue),s._currentValue=r;break;case 13:if(s=t.memoizedState,s!==null)return s.dehydrated!==null?(he(ye,ye.current&1),t.flags|=128,null):n&t.child.childLanes?px(e,t,n):(he(ye,ye.current&1),e=In(e,t,n),e!==null?e.sibling:null);he(ye,ye.current&1);break;case 19:if(s=(n&t.childLanes)!==0,e.flags&128){if(s)return hx(e,t,n);t.flags|=128}if(r=t.memoizedState,r!==null&&(r.rendering=null,r.tail=null,r.lastEffect=null),he(ye,ye.current),s)break;return null;case 22:case 23:return t.lanes=0,dx(e,t,n)}return In(e,t,n)}var mx,Au,gx,bx;mx=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Au=function(){};gx=function(e,t,n,s){var r=e.memoizedProps;if(r!==s){e=t.stateNode,ra(xn.current);var i=null;switch(n){case"input":r=Xd(e,r),s=Xd(e,s),i=[];break;case"select":r=we({},r,{value:void 0}),s=we({},s,{value:void 0}),i=[];break;case"textarea":r=nu(e,r),s=nu(e,s),i=[];break;default:typeof r.onClick!="function"&&typeof s.onClick=="function"&&(e.onclick=Rl)}au(n,s);var o;n=null;for(d in r)if(!s.hasOwnProperty(d)&&r.hasOwnProperty(d)&&r[d]!=null)if(d==="style"){var l=r[d];for(o in l)l.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else d!=="dangerouslySetInnerHTML"&&d!=="children"&&d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&d!=="autoFocus"&&(Ci.hasOwnProperty(d)?i||(i=[]):(i=i||[]).push(d,null));for(d in s){var c=s[d];if(l=r!=null?r[d]:void 0,s.hasOwnProperty(d)&&c!==l&&(c!=null||l!=null))if(d==="style")if(l){for(o in l)!l.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in c)c.hasOwnProperty(o)&&l[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(i||(i=[]),i.push(d,n)),n=c;else d==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,l=l?l.__html:void 0,c!=null&&l!==c&&(i=i||[]).push(d,c)):d==="children"?typeof c!="string"&&typeof c!="number"||(i=i||[]).push(d,""+c):d!=="suppressContentEditableWarning"&&d!=="suppressHydrationWarning"&&(Ci.hasOwnProperty(d)?(c!=null&&d==="onScroll"&&ge("scroll",e),i||l===c||(i=[])):(i=i||[]).push(d,c))}n&&(i=i||[]).push("style",n);var d=i;(t.updateQueue=d)&&(t.flags|=4)}};bx=function(e,t,n,s){n!==s&&(t.flags|=4)};function Qr(e,t){if(!ve)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var s=null;n!==null;)n.alternate!==null&&(s=n),n=n.sibling;s===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:s.sibling=null}}function Je(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,s=0;if(t)for(var r=e.child;r!==null;)n|=r.lanes|r.childLanes,s|=r.subtreeFlags&14680064,s|=r.flags&14680064,r.return=e,r=r.sibling;else for(r=e.child;r!==null;)n|=r.lanes|r.childLanes,s|=r.subtreeFlags,s|=r.flags,r.return=e,r=r.sibling;return e.subtreeFlags|=s,e.childLanes=n,t}function u4(e,t,n){var s=t.pendingProps;switch(Wf(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Je(t),null;case 1:return ht(t.type)&&Pl(),Je(t),null;case 3:return s=t.stateNode,Cr(),be(pt),be(Xe),tp(),s.pendingContext&&(s.context=s.pendingContext,s.pendingContext=null),(e===null||e.child===null)&&(Lo(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Xt!==null&&(Du(Xt),Xt=null))),Au(e,t),Je(t),null;case 5:ep(t);var r=ra(Fi.current);if(n=t.type,e!==null&&t.stateNode!=null)gx(e,t,n,s,r),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);
vendor: 29,396 bytes, line 40
40else{if(!s){if(t.stateNode===null)throw Error(P(166));return Je(t),null}if(e=ra(xn.current),Lo(t)){s=t.stateNode,n=t.type;var i=t.memoizedProps;switch(s[mn]=t,s[Di]=i,e=(t.mode&1)!==0,n){case"dialog":ge("cancel",s),ge("close",s);break;case"iframe":case"object":case"embed":ge("load",s);break;case"video":case"audio":for(r=0;r<di.length;r++)ge(di[r],s);break;case"source":ge("error",s);break;case"img":case"image":case"link":ge("error",s),ge("load",s);break;case"details":ge("toggle",s);break;case"input":jh(s,i),ge("invalid",s);break;case"select":s._wrapperState={wasMultiple:!!i.multiple},ge("invalid",s);break;case"textarea":Nh(s,i),ge("invalid",s)}au(n,i),r=null;for(var o in i)if(i.hasOwnProperty(o)){var l=i[o];o==="children"?typeof l=="string"?s.textContent!==l&&(i.suppressHydrationWarning!==!0&&Io(s.textContent,l,e),r=["children",l]):typeof l=="number"&&s.textContent!==""+l&&(i.suppressHydrationWarning!==!0&&Io(s.textContent,l,e),r=["children",""+l]):Ci.hasOwnProperty(o)&&l!=null&&o==="onScroll"&&ge("scroll",s)}switch(n){case"input":Eo(s),kh(s,i,!0);break;case"textarea":Eo(s),$h(s);break;case"select":case"option":break;default:typeof i.onClick=="function"&&(s.onclick=Rl)}s=r,t.updateQueue=s,s!==null&&(t.flags|=4)}else{o=r.nodeType===9?r:r.ownerDocument,e==="http://www.w3.org/1999/xhtml"&&(e=Hg(n)),e==="http://www.w3.org/1999/xhtml"?n==="script"?(e=o.createElement("div"),e.innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):typeof s.is=="string"?e=o.createElement(n,{is:s.is}):(e=o.createElement(n),n==="select"&&(o=e,s.multiple?o.multiple=!0:s.size&&(o.size=s.size))):e=o.createElementNS(e,n),e[mn]=t,e[Di]=s,mx(e,t,!1,!1),t.stateNode=e;e:{switch(o=ru(n,s),n){case"dialog":ge("cancel",e),ge("close",e),r=s;break;case"iframe":case"object":case"embed":ge("load",e),r=s;break;case"video":case"audio":for(r=0;r<di.length;r++)ge(di[r],e);r=s;break;case"source":ge("error",e),r=s;break;case"img":case"image":case"link":ge("error",e),ge("load",e),r=s;break;case"details":ge("toggle",e),r=s;break;case"input":jh(e,s),r=Xd(e,s),ge("invalid",e);break;case"option":r=s;break;case"select":e._wrapperState={wasMultiple:!!s.multiple},r=we({},s,{value:void 0}),ge("invalid",e);break;case"textarea":Nh(e,s),r=nu(e,s),ge("invalid",e);break;default:r=s}au(n,r),l=r;for(i in l)if(l.hasOwnProperty(i)){var c=l[i];i==="style"?Gg(e,c):i==="dangerouslySetInnerHTML"?(c=c?c.__html:void 0,c!=null&&Wg(e,c)):i==="children"?typeof c=="string"?(n!=="textarea"||c!=="")&&Ti(e,c):typeof c=="number"&&Ti(e,""+c):i!=="suppressContentEditableWarning"&&i!=="suppressHydrationWarning"&&i!=="autoFocus"&&(Ci.hasOwnProperty(i)?c!=null&&i==="onScroll"&&ge("scroll",e):c!=null&&Af(e,i,c,o))}switch(n){case"input":Eo(e),kh(e,s,!1);break;case"textarea":Eo(e),$h(e);break;case"option":s.value!=null&&e.setAttribute("value",""+Cs(s.value));break;case"select":e.multiple=!!s.multiple,i=s.value,i!=null?rr(e,!!s.multiple,i,!1):s.defaultValue!=null&&rr(e,!!s.multiple,s.defaultValue,!0);break;default:typeof r.onClick=="function"&&(e.onclick=Rl)}switch(n){case"button":case"input":case"select":case"textarea":s=!!s.autoFocus;break e;case"img":s=!0;break e;default:s=!1}}s&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return Je(t),null;case 6:if(e&&t.stateNode!=null)bx(e,t,e.memoizedProps,s);else{if(typeof s!="string"&&t.stateNode===null)throw Error(P(166));if(n=ra(Fi.current),ra(xn.current),Lo(t)){if(s=t.stateNode,n=t.memoizedProps,s[mn]=t,(i=s.nodeValue!==n)&&(e=_t,e!==null))switch(e.tag){case 3:Io(s.nodeValue,n,(e.mode&1)!==0);break;case 5:e.memoizedProps.suppressHydrationWarning!==!0&&Io(s.nodeValue,n,(e.mode&1)!==0)}i&&(t.flags|=4)}else s=(n.nodeType===9?n:n.ownerDocument).createTextNode(s),s[mn]=t,t.stateNode=s}return Je(t),null;case 13:if(be(ye),s=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ve&&yt!==null&&t.mode&1&&!(t.flags&128))zb(),Sr(),t.flags|=98560,i=!1;else if(i=Lo(t),s!==null&&s.dehydrated!==null){if(e===null){if(!i)throw Error(P(318));if(i=t.memoizedState,i=i!==null?i.dehydrated:null,!i)throw Error(P(317));i[mn]=t}else Sr(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Je(t),i=!1}else Xt!==null&&(Du(Xt),Xt=null),i=!0;if(!i)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(s=s!==null,s!==(e!==null&&e.memoizedState!==null)&&s&&(t.child.flags|=8192,t.mode&1&&(e===null||ye.current&1?Le===0&&(Le=3):pp())),t.updateQueue!==null&&(t.flags|=4),Je(t),null);case 4:return Cr(),Au(e,t),e===null&&Li(t.stateNode.containerInfo),Je(t),null;case 10:return Jf(t.type._context),Je(t),null;case 17:return ht(t.type)&&Pl(),Je(t),null;case 19:if(be(ye),i=t.memoizedState,i===null)return Je(t),null;if(s=(t.flags&128)!==0,o=i.rendering,o===null)if(s)Qr(i,!1);else{if(Le!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Ul(e),o!==null){for(t.flags|=128,Qr(i,!1),s=o.updateQueue,s!==null&&(t.updateQueue=s,t.flags|=4),t.subtreeFlags=0,s=n,n=t.child;n!==null;)i=n,e=s,i.flags&=14680066,o=i.alternate,o===null?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=o.childLanes,i.lanes=o.lanes,i.child=o.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=o.memoizedProps,i.memoizedState=o.memoizedState,i.updateQueue=o.updateQueue,i.type=o.type,e=o.dependencies,i.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return he(ye,ye.current&1|2),t.child}e=e.sibling}i.tail!==null&&Ae()>Ar&&(t.flags|=128,s=!0,Qr(i,!1),t.lanes=4194304)}else{if(!s)if(e=Ul(o),e!==null){if(t.flags|=128,s=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),Qr(i,!0),i.tail===null&&i.tailMode==="hidden"&&!o.alternate&&!ve)return Je(t),null}else 2*Ae()-i.renderingStartTime>Ar&&n!==1073741824&&(t.flags|=128,s=!0,Qr(i,!1),t.lanes=4194304);i.isBackwards?(o.sibling=t.child,t.child=o):(n=i.last,n!==null?n.sibling=o:t.child=o,i.last=o)}return i.tail!==null?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ae(),t.sibling=null,n=ye.current,he(ye,s?n&1|2:n&1),t):(Je(t),null);case 22:case 23:return fp(),s=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==s&&(t.flags|=8192),s&&t.mode&1?bt&1073741824&&(Je(t),t.subtreeFlags&6&&(t.flags|=8192)):Je(t),null;case 24:return null;case 25:return null}throw Error(P(156,t.tag))}function f4(e,t){switch(Wf(t),t.tag){case 1:return ht(t.type)&&Pl(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Cr(),be(pt),be(Xe),tp(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return ep(t),null;case 13:if(be(ye),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(P(340));Sr()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return be(ye),null;case 4:return Cr(),null;case 10:return Jf(t.type._context),null;case 22:case 23:return fp(),null;case 24:return null;default:return null}}var Uo=!1,Qe=!1,p4=typeof WeakSet=="function"?WeakSet:Set,L=null;function nr(e,t){var n=e.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(s){Ne(e,t,s)}else n.current=null}function Ru(e,t,n){try{n()}catch(s){Ne(e,t,s)}}var mm=!1;function h4(e,t){if(mu=Cl,e=wb(),Vf(e)){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{n=(n=e.ownerDocument)&&n.defaultView||window;var s=n.getSelection&&n.getSelection();if(s&&s.rangeCount!==0){n=s.anchorNode;var r=s.anchorOffset,i=s.focusNode;s=s.focusOffset;try{n.nodeType,i.nodeType}catch{n=null;break e}var o=0,l=-1,c=-1,d=0,u=0,f=e,h=null;t:for(;;){for(var p;f!==n||r!==0&&f.nodeType!==3||(l=o+r),f!==i||s!==0&&f.nodeType!==3||(c=o+s),f.nodeType===3&&(o+=f.nodeValue.length),(p=f.firstChild)!==null;)h=f,f=p;for(;;){if(f===e)break t;if(h===n&&++d===r&&(l=o),h===i&&++u===s&&(c=o),(p=f.nextSibling)!==null)break;f=h,h=f.parentNode}f=p}n=l===-1||c===-1?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(gu={focusedElem:e,selectionRange:n},Cl=!1,L=t;L!==null;)if(t=L,e=t.child,(t.subtreeFlags&1028)!==0&&e!==null)e.return=t,L=e;else for(;L!==null;){t=L;try{var y=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(y!==null){var v=y.memoizedProps,_=y.memoizedState,x=t.stateNode,b=x.getSnapshotBeforeUpdate(t.elementType===t.type?v:Zt(t.type,v),_);x.__reactInternalSnapshotBeforeUpdate=b}break;case 3:var m=t.stateNode.containerInfo;m.nodeType===1?m.textContent="":m.nodeType===9&&m.documentElement&&m.removeChild(m.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(P(163))}}catch(w){Ne(t,t.return,w)}if(e=t.sibling,e!==null){e.return=t.return,L=e;break}L=t.return}return y=mm,mm=!1,y}function vi(e,t,n){var s=t.updateQueue;if(s=s!==null?s.lastEffect:null,s!==null){var r=s=s.next;do{if((r.tag&e)===e){var i=r.destroy;r.destroy=void 0,i!==void 0&&Ru(t,n,i)}r=r.next}while(r!==s)}}function yc(e,t){if(t=t.updateQueue,t=t!==null?t.lastEffect:null,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var s=n.create;n.destroy=s()}n=n.next}while(n!==t)}}function Pu(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t=="function"?t(e):t.current=e}}function xx(e){var t=e.alternate;t!==null&&(e.alternate=null,xx(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[mn],delete t[Di],delete t[vu],delete t[J_],delete t[Y_])),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 vx(e){return e.tag===5||e.tag===3||e.tag===4}function gm(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||vx(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 Ou(e,t,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Rl));else if(s!==4&&(e=e.child,e!==null))for(Ou(e,t,n),e=e.sibling;e!==null;)Ou(e,t,n),e=e.sibling}function zu(e,t,n){var s=e.tag;if(s===5||s===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(s!==4&&(e=e.child,e!==null))for(zu(e,t,n),e=e.sibling;e!==null;)zu(e,t,n),e=e.sibling}var Ve=null,Qt=!1;function Zn(e,t,n){for(n=n.child;n!==null;)yx(e,t,n),n=n.sibling}function yx(e,t,n){if(bn&&typeof bn.onCommitFiberUnmount=="function")try{bn.onCommitFiberUnmount(fc,n)}catch{}switch(n.tag){case 5:Qe||nr(n,t);case 6:var s=Ve,r=Qt;Ve=null,Zn(e,t,n),Ve=s,Qt=r,Ve!==null&&(Qt?(e=Ve,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Ve.removeChild(n.stateNode));break;case 18:Ve!==null&&(Qt?(e=Ve,n=n.stateNode,e.nodeType===8?hd(e.parentNode,n):e.nodeType===1&&hd(e,n),Oi(e)):hd(Ve,n.stateNode));break;case 4:s=Ve,r=Qt,Ve=n.stateNode.containerInfo,Qt=!0,Zn(e,t,n),Ve=s,Qt=r;break;case 0:case 11:case 14:case 15:if(!Qe&&(s=n.updateQueue,s!==null&&(s=s.lastEffect,s!==null))){r=s=s.next;do{var i=r,o=i.destroy;i=i.tag,o!==void 0&&(i&2||i&4)&&Ru(n,t,o),r=r.next}while(r!==s)}Zn(e,t,n);break;case 1:if(!Qe&&(nr(n,t),s=n.stateNode,typeof s.componentWillUnmount=="function"))try{s.props=n.memoizedProps,s.state=n.memoizedState,s.componentWillUnmount()}catch(l){Ne(n,t,l)}Zn(e,t,n);break;case 21:Zn(e,t,n);break;case 22:n.mode&1?(Qe=(s=Qe)||n.memoizedState!==null,Zn(e,t,n),Qe=s):Zn(e,t,n);break;default:Zn(e,t,n)}}function bm(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new p4),t.forEach(function(s){var r=j4.bind(null,e,s);n.has(s)||(n.add(s),s.then(r,r))})}}function Ft(e,t){var n=t.deletions;if(n!==null)for(var s=0;s<n.length;s++){var r=n[s];try{var i=e,o=t,l=o;e:for(;l!==null;){switch(l.tag){case 5:Ve=l.stateNode,Qt=!1;break e;case 3:Ve=l.stateNode.containerInfo,Qt=!0;break e;case 4:Ve=l.stateNode.containerInfo,Qt=!0;break e}l=l.return}if(Ve===null)throw Error(P(160));yx(i,o,r),Ve=null,Qt=!1;var c=r.alternate;c!==null&&(c.return=null),r.return=null}catch(d){Ne(r,t,d)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)_x(t,e),t=t.sibling}function _x(e,t){var n=e.alternate,s=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Ft(t,e),on(e),s&4){try{vi(3,e,e.return),yc(3,e)}catch(v){Ne(e,e.return,v)}try{vi(5,e,e.return)}catch(v){Ne(e,e.return,v)}}break;case 1:Ft(t,e),on(e),s&512&&n!==null&&nr(n,n.return);break;case 5:if(Ft(t,e),on(e),s&512&&n!==null&&nr(n,n.return),e.flags&32){var r=e.stateNode;try{Ti(r,"")}catch(v){Ne(e,e.return,v)}}if(s&4&&(r=e.stateNode,r!=null)){var i=e.memoizedProps,o=n!==null?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,c!==null)try{l==="input"&&i.type==="radio"&&i.name!=null&&qg(r,i),ru(l,o);var d=ru(l,i);for(o=0;o<c.length;o+=2){var u=c[o],f=c[o+1];u==="style"?Gg(r,f):u==="dangerouslySetInnerHTML"?Wg(r,f):u==="children"?Ti(r,f):Af(r,u,f,d)}switch(l){case"input":eu(r,i);break;case"textarea":Vg(r,i);break;case"select":var h=r._wrapperState.wasMultiple;r._wrapperState.wasMultiple=!!i.multiple;var p=i.value;p!=null?rr(r,!!i.multiple,p,!1):h!==!!i.multiple&&(i.defaultValue!=null?rr(r,!!i.multiple,i.defaultValue,!0):rr(r,!!i.multiple,i.multiple?[]:"",!1))}r[Di]=i}catch(v){Ne(e,e.return,v)}}break;case 6:if(Ft(t,e),on(e),s&4){if(e.stateNode===null)throw Error(P(162));r=e.stateNode,i=e.memoizedProps;try{r.nodeValue=i}catch(v){Ne(e,e.return,v)}}break;case 3:if(Ft(t,e),on(e),s&4&&n!==null&&n.memoizedState.isDehydrated)try{Oi(t.containerInfo)}catch(v){Ne(e,e.return,v)}break;case 4:Ft(t,e),on(e);break;case 13:Ft(t,e),on(e),r=e.child,r.flags&8192&&(i=r.memoizedState!==null,r.stateNode.isHidden=i,!i||r.alternate!==null&&r.alternate.memoizedState!==null||(dp=Ae())),s&4&&bm(e);break;case 22:if(u=n!==null&&n.memoizedState!==null,e.mode&1?(Qe=(d=Qe)||u,Ft(t,e),Qe=d):Ft(t,e),on(e),s&8192){if(d=e.memoizedState!==null,(e.stateNode.isHidden=d)&&!u&&e.mode&1)for(L=e,u=e.child;u!==null;){for(f=L=u;L!==null;){switch(h=L,p=h.child,h.tag){case 0:case 11:case 14:case 15:vi(4,h,h.return);break;case 1:nr(h,h.return);var y=h.stateNode;if(typeof y.componentWillUnmount=="function"){s=h,n=h.return;try{t=s,y.props=t.memoizedProps,y.state=t.memoizedState,y.componentWillUnmount()}catch(v){Ne(s,n,v)}}break;case 5:nr(h,h.return);break;case 22:if(h.memoizedState!==null){vm(f);continue}}p!==null?(p.return=h,L=p):vm(f)}u=u.sibling}e:for(u=null,f=e;;){if(f.tag===5){if(u===null){u=f;try{r=f.stateNode,d?(i=r.style,typeof i.setProperty=="function"?i.setProperty("display","none","important"):i.display="none"):(l=f.stateNode,c=f.memoizedProps.style,o=c!=null&&c.hasOwnProperty("display")?c.display:null,l.style.display=Zg("display",o))}catch(v){Ne(e,e.return,v)}}}else if(f.tag===6){if(u===null)try{f.stateNode.nodeValue=d?"":f.memoizedProps}catch(v){Ne(e,e.return,v)}}else if((f.tag!==22&&f.tag!==23||f.memoizedState===null||f===e)&&f.child!==null){f.child.return=f,f=f.child;continue}if(f===e)break e;for(;f.sibling===null;){if(f.return===null||f.return===e)break e;u===f&&(u=null),f=f.return}u===f&&(u=null),f.sibling.return=f.return,f=f.sibling}}break;case 19:Ft(t,e),on(e),s&4&&bm(e);break;case 21:break;default:Ft(t,e),on(e)}}function on(e){var t=e.flags;if(t&2){try{e:{for(var n=e.return;n!==null;){if(vx(n)){var s=n;break e}n=n.return}throw Error(P(160))}switch(s.tag){case 5:var r=s.stateNode;s.flags&32&&(Ti(r,""),s.flags&=-33);var i=gm(e);zu(e,i,r);break;case 3:case 4:var o=s.stateNode.containerInfo,l=gm(e);Ou(e,l,o);break;default:throw Error(P(161))}}catch(c){Ne(e,e.return,c)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function m4(e,t,n){L=e,wx(e)}function wx(e,t,n){for(var s=(e.mode&1)!==0;L!==null;){var r=L,i=r.child;if(r.tag===22&&s){var o=r.memoizedState!==null||Uo;if(!o){var l=r.alternate,c=l!==null&&l.memoizedState!==null||Qe;l=Uo;var d=Qe;if(Uo=o,(Qe=c)&&!d)for(L=r;L!==null;)o=L,c=o.child,o.tag===22&&o.memoizedState!==null?ym(r):c!==null?(c.return=o,L=c):ym(r);for(;i!==null;)L=i,wx(i),i=i.sibling;L=r,Uo=l,Qe=d}xm(e)}else r.subtreeFlags&8772&&i!==null?(i.return=r,L=i):xm(e)}}function xm(e){for(;L!==null;){var t=L;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:Qe||yc(5,t);break;case 1:var s=t.stateNode;if(t.flags&4&&!Qe)if(n===null)s.componentDidMount();else{var r=t.elementType===t.type?n.memoizedProps:Zt(t.type,n.memoizedProps);s.componentDidUpdate(r,n.memoizedState,s.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;i!==null&&nm(t,i,s);break;case 3:var o=t.updateQueue;if(o!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}nm(t,o,n)}break;case 5:var l=t.stateNode;if(n===null&&t.flags&4){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var d=t.alternate;if(d!==null){var u=d.memoizedState;if(u!==null){var f=u.dehydrated;f!==null&&Oi(f)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(P(163))}Qe||t.flags&512&&Pu(t)}catch(h){Ne(t,t.return,h)}}if(t===e){L=null;break}if(n=t.sibling,n!==null){n.return=t.return,L=n;break}L=t.return}}function vm(e){for(;L!==null;){var t=L;if(t===e){L=null;break}var n=t.sibling;if(n!==null){n.return=t.return,L=n;break}L=t.return}}function ym(e){for(;L!==null;){var t=L;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{yc(4,t)}catch(c){Ne(t,n,c)}break;case 1:var s=t.stateNode;if(typeof s.componentDidMount=="function"){var r=t.return;try{s.componentDidMount()}catch(c){Ne(t,r,c)}}var i=t.return;try{Pu(t)}catch(c){Ne(t,i,c)}break;case 5:var o=t.return;try{Pu(t)}catch(c){Ne(t,o,c)}}}catch(c){Ne(t,t.return,c)}if(t===e){L=null;break}var l=t.sibling;if(l!==null){l.return=t.return,L=l;break}L=t.return}}var g4=Math.ceil,ql=Dn.ReactCurrentDispatcher,lp=Dn.ReactCurrentOwner,Rt=Dn.ReactCurrentBatchConfig,se=0,De=null,Oe=null,He=0,bt=0,sr=Is(0),Le=0,Hi=null,ya=0,_c=0,cp=0,yi=null,ut=null,dp=0,Ar=1/0,Nn=null,Vl=!1,Iu=null,js=null,Fo=!1,gs=null,Hl=0,_i=0,Lu=null,pl=-1,hl=0;function at(){return se&6?Ae():pl!==-1?pl:pl=Ae()}function ks(e){return e.mode&1?se&2&&He!==0?He&-He:X_.transition!==null?(hl===0&&(hl=ib()),hl):(e=le,e!==0||(e=window.event,e=e===void 0?16:pb(e.type)),e):1}function nn(e,t,n,s){if(50<_i)throw _i=0,Lu=null,Error(P(185));uo(e,n,s),(!(se&2)||e!==De)&&(e===De&&(!(se&2)&&(_c|=n),Le===4&&os(e,He)),mt(e,s),n===1&&se===0&&!(t.mode&1)&&(Ar=Ae()+500,bc&&Ls()))}function mt(e,t){var n=e.callbackNode;Xy(e,t);var s=El(e,e===De?He:0);if(s===0)n!==null&&Ch(n),e.callbackNode=null,e.callbackPriority=0;else if(t=s&-s,e.callbackPriority!==t){if(n!=null&&Ch(n),t===1)e.tag===0?Q_(_m.bind(null,e)):Rb(_m.bind(null,e)),G_(function(){!(se&6)&&Ls()}),n=null;else{switch(ob(s)){case 1:n=If;break;case 4:n=ab;break;case 16:n=Sl;break;case 536870912:n=rb;break;default:n=Sl}n=Tx(n,jx.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function jx(e,t){if(pl=-1,hl=0,se&6)throw Error(P(327));var n=e.callbackNode;if(dr()&&e.callbackNode!==n)return null;var s=El(e,e===De?He:0);if(s===0)return null;if(s&30||s&e.expiredLanes||t)t=Wl(e,s);else{t=s;var r=se;se|=2;var i=Nx();(De!==e||He!==t)&&(Nn=null,Ar=Ae()+500,ma(e,t));do try{v4();break}catch(l){kx(e,l)}while(!0);Kf(),ql.current=i,se=r,Oe!==null?t=0:(De=null,He=0,t=Le)}if(t!==0){if(t===2&&(r=du(e),r!==0&&(s=r,t=Mu(e,r))),t===1)throw n=Hi,ma(e,0),os(e,s),mt(e,Ae()),n;if(t===6)os(e,s);else{if(r=e.current.alternate,!(s&30)&&!b4(r)&&(t=Wl(e,s),t===2&&(i=du(e),i!==0&&(s=i,t=Mu(e,i))),t===1))throw n=Hi,ma(e,0),os(e,s),mt(e,Ae()),n;switch(e.finishedWork=r,e.finishedLanes=s,t){case 0:case 1:throw Error(P(345));case 2:Xs(e,ut,Nn);break;case 3:if(os(e,s),(s&130023424)===s&&(t=dp+500-Ae(),10<t)){if(El(e,0)!==0)break;if(r=e.suspendedLanes,(r&s)!==s){at(),e.pingedLanes|=e.suspendedLanes&r;break}e.timeoutHandle=xu(Xs.bind(null,e,ut,Nn),t);break}Xs(e,ut,Nn);break;case 4:if(os(e,s),(s&4194240)===s)break;for(t=e.eventTimes,r=-1;0<s;){var o=31-tn(s);i=1<<o,o=t[o],o>r&&(r=o),s&=~i}if(s=r,s=Ae()-s,s=(120>s?120:480>s?480:1080>s?1080:1920>s?1920:3e3>s?3e3:4320>s?4320:1960*g4(s/1960))-s,10<s){e.timeoutHandle=xu(Xs.bind(null,e,ut,Nn),s);break}Xs(e,ut,Nn);break;case 5:Xs(e,ut,Nn);break;default:throw Error(P(329))}}}return mt(e,Ae()),e.callbackNode===n?jx.bind(null,e):null}function Mu(e,t){var n=yi;return e.current.memoizedState.isDehydrated&&(ma(e,t).flags|=256),e=Wl(e,t),e!==2&&(t=ut,ut=n,t!==null&&Du(t)),e}function Du(e){ut===null?ut=e:ut.push.apply(ut,e)}function b4(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var s=0;s<n.length;s++){var r=n[s],i=r.getSnapshot;r=r.value;try{if(!sn(i(),r))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function os(e,t){for(t&=~cp,t&=~_c,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-tn(t),s=1<<n;e[n]=-1,t&=~s}}function _m(e){if(se&6)throw Error(P(327));dr();var t=El(e,0);if(!(t&1))return mt(e,Ae()),null;var n=Wl(e,t);if(e.tag!==0&&n===2){var s=du(e);s!==0&&(t=s,n=Mu(e,s))}if(n===1)throw n=Hi,ma(e,0),os(e,t),mt(e,Ae()),n;if(n===6)throw Error(P(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Xs(e,ut,Nn),mt(e,Ae()),null}function up(e,t){var n=se;se|=1;try{return e(t)}finally{se=n,se===0&&(Ar=Ae()+500,bc&&Ls())}}function _a(e){gs!==null&&gs.tag===0&&!(se&6)&&dr();var t=se;se|=1;var n=Rt.transition,s=le;try{if(Rt.transition=null,le=1,e)return e()}finally{le=s,Rt.transition=n,se=t,!(se&6)&&Ls()}}function fp(){bt=sr.current,be(sr)}function ma(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,Z_(n)),Oe!==null)for(n=Oe.return;n!==null;){var s=n;switch(Wf(s),s.tag){case 1:s=s.type.childContextTypes,s!=null&&Pl();break;case 3:Cr(),be(pt),be(Xe),tp();break;case 5:ep(s);break;case 4:Cr();break;case 13:be(ye);break;case 19:be(ye);break;case 10:Jf(s.type._context);break;case 22:case 23:fp()}n=n.return}if(De=e,Oe=e=Ns(e.current,null),He=bt=t,Le=0,Hi=null,cp=_c=ya=0,ut=yi=null,aa!==null){for(t=0;t<aa.length;t++)if(n=aa[t],s=n.interleaved,s!==null){n.interleaved=null;var r=s.next,i=n.pending;if(i!==null){var o=i.next;i.next=r,s.next=o}n.pending=s}aa=null}return e}function kx(e,t){do{var n=Oe;try{if(Kf(),dl.current=Bl,Fl){for(var s=_e.memoizedState;s!==null;){var r=s.queue;r!==null&&(r.pending=null),s=s.next}Fl=!1}if(va=0,Me=Ie=_e=null,xi=!1,Bi=0,lp.current=null,n===null||n.return===null){Le=1,Hi=t,Oe=null;break}e:{var i=e,o=n.return,l=n,c=t;if(t=He,l.flags|=32768,c!==null&&typeof c=="object"&&typeof c.then=="function"){var d=c,u=l,f=u.tag;if(!(u.mode&1)&&(f===0||f===11||f===15)){var h=u.alternate;h?(u.updateQueue=h.updateQueue,u.memoizedState=h.memoizedState,u.lanes=h.lanes):(u.updateQueue=null,u.memoizedState=null)}var p=lm(o);if(p!==null){p.flags&=-257,cm(p,o,l,i,t),p.mode&1&&om(i,d,t),t=p,c=d;var y=t.updateQueue;if(y===null){var v=new Set;v.add(c),t.updateQueue=v}else y.add(c);break e}else{if(!(t&1)){om(i,d,t),pp();break e}c=Error(P(426))}}else if(ve&&l.mode&1){var _=lm(o);if(_!==null){!(_.flags&65536)&&(_.flags|=256),cm(_,o,l,i,t),Zf(Tr(c,l));break e}}i=c=Tr(c,l),Le!==4&&(Le=2),yi===null?yi=[i]:yi.push(i),i=o;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t;var x=ox(i,c,t);tm(i,x);break e;case 1:l=c;var b=i.type,m=i.stateNode;if(!(i.flags&128)&&(typeof b.getDerivedStateFromError=="function"||m!==null&&typeof m.componentDidCatch=="function"&&(js===null||!js.has(m)))){i.flags|=65536,t&=-t,i.lanes|=t;var w=lx(i,l,t);tm(i,w);break e}}i=i.return}while(i!==null)}Sx(n)}catch(j){t=j,Oe===n&&n!==null&&(Oe=n=n.return);continue}break}while(!0)}function Nx(){var e=ql.current;return ql.current=Bl,e===null?Bl:e}function pp(){(Le===0||Le===3||Le===2)&&(Le=4),De===null||!(ya&268435455)&&!(_c&268435455)||os(De,He)}function Wl(e,t){var n=se;se|=2;var s=Nx();(De!==e||He!==t)&&(Nn=null,ma(e,t));do try{x4();break}catch(r){kx(e,r)}while(!0);if(Kf(),se=n,ql.current=s,Oe!==null)throw Error(P(261));return De=null,He=0,Le}function x4(){for(;Oe!==null;)$x(Oe)}function v4(){for(;Oe!==null&&!Vy();)$x(Oe)}function $x(e){var t=Cx(e.alternate,e,bt);e.memoizedProps=e.pendingProps,t===null?Sx(e):Oe=t,lp.current=null}function Sx(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=f4(n,t),n!==null){n.flags&=32767,Oe=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{Le=6,Oe=null;return}}else if(n=u4(n,t,bt),n!==null){Oe=n;return}if(t=t.sibling,t!==null){Oe=t;return}Oe=t=e}while(t!==null);Le===0&&(Le=5)}function Xs(e,t,n){var s=le,r=Rt.transition;try{Rt.transition=null,le=1,y4(e,t,n,s)}finally{Rt.transition=r,le=s}return null}function y4(e,t,n,s){do dr();while(gs!==null);if(se&6)throw Error(P(327));n=e.finishedWork;var r=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(P(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(e_(e,i),e===De&&(Oe=De=null,He=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||Fo||(Fo=!0,Tx(Sl,function(){return dr(),null})),i=(n.flags&15990)!==0,n.subtreeFlags&15990||i){i=Rt.transition,Rt.transition=null;var o=le;le=1;var l=se;se|=4,lp.current=null,h4(e,n),_x(n,e),U_(gu),Cl=!!mu,gu=mu=null,e.current=n,m4(n),Hy(),se=l,le=o,Rt.transition=i}else e.current=n;if(Fo&&(Fo=!1,gs=e,Hl=r),i=e.pendingLanes,i===0&&(js=null),Gy(n.stateNode),mt(e,Ae()),t!==null)for(s=e.onRecoverableError,n=0;n<t.length;n++)r=t[n],s(r.value,{componentStack:r.stack,digest:r.digest});if(Vl)throw Vl=!1,e=Iu,Iu=null,e;return Hl&1&&e.tag!==0&&dr(),i=e.pendingLanes,i&1?e===Lu?_i++:(_i=0,Lu=e):_i=0,Ls(),null}function dr(){if(gs!==null){var e=ob(Hl),t=Rt.transition,n=le;try{if(Rt.transition=null,le=16>e?16:e,gs===null)var s=!1;else{if(e=gs,gs=null,Hl=0,se&6)throw Error(P(331));var r=se;for(se|=4,L=e.current;L!==null;){var i=L,o=i.child;if(L.flags&16){var l=i.deletions;if(l!==null){for(var c=0;c<l.length;c++){var d=l[c];for(L=d;L!==null;){var u=L;switch(u.tag){case 0:case 11:case 15:vi(8,u,i)}var f=u.child;if(f!==null)f.return=u,L=f;else for(;L!==null;){u=L;var h=u.sibling,p=u.return;if(xx(u),u===d){L=null;break}if(h!==null){h.return=p,L=h;break}L=p}}}var y=i.alternate;if(y!==null){var v=y.child;if(v!==null){y.child=null;do{var _=v.sibling;v.sibling=null,v=_}while(v!==null)}}L=i}}if(i.subtreeFlags&2064&&o!==null)o.return=i,L=o;else e:for(;L!==null;){if(i=L,i.flags&2048)switch(i.tag){case 0:case 11:case 15:vi(9,i,i.return)}var x=i.sibling;if(x!==null){x.return=i.return,L=x;break e}L=i.return}}var b=e.current;for(L=b;L!==null;){o=L;var m=o.child;if(o.subtreeFlags&2064&&m!==null)m.return=o,L=m;else e:for(o=b;L!==null;){if(l=L,l.flags&2048)try{switch(l.tag){case 0:case 11:case 15:yc(9,l)}}catch(j){Ne(l,l.return,j)}if(l===o){L=null;break e}var w=l.sibling;if(w!==null){w.return=l.return,L=w;break e}L=l.return}}if(se=r,Ls(),bn&&typeof bn.onPostCommitFiberRoot=="function")try{bn.onPostCommitFiberRoot(fc,e)}catch{}s=!0}return s}finally{le=n,Rt.transition=t}}return!1}function wm(e,t,n){t=Tr(n,t),t=ox(e,t,1),e=ws(e,t,1),t=at(),e!==null&&(uo(e,1,t),mt(e,t))}function Ne(e,t,n){if(e.tag===3)wm(e,e,n);else for(;t!==null;){if(t.tag===3){wm(t,e,n);break}else if(t.tag===1){var s=t.stateNode;if(typeof t.type.getDerivedStateFromError=="function"||typeof s.componentDidCatch=="function"&&(js===null||!js.has(s))){e=Tr(n,e),e=lx(t,e,1),t=ws(t,e,1),e=at(),t!==null&&(uo(t,1,e),mt(t,e));break}}t=t.return}}function _4(e,t,n){var s=e.pingCache;s!==null&&s.delete(t),t=at(),e.pingedLanes|=e.suspendedLanes&n,De===e&&(He&n)===n&&(Le===4||Le===3&&(He&130023424)===He&&500>Ae()-dp?ma(e,0):cp|=n),mt(e,t)}function Ex(e,t){t===0&&(e.mode&1?(t=Ao,Ao<<=1,!(Ao&130023424)&&(Ao=4194304)):t=1);var n=at();e=zn(e,t),e!==null&&(uo(e,t,n),mt(e,n))}function w4(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ex(e,n)}function j4(e,t){var n=0;switch(e.tag){case 13:var s=e.stateNode,r=e.memoizedState;r!==null&&(n=r.retryLane);break;case 19:s=e.stateNode;break;default:throw Error(P(314))}s!==null&&s.delete(t),Ex(e,n)}var Cx;Cx=function(e,t,n){if(e!==null)if(e.memoizedProps!==t.pendingProps||pt.current)ft=!0;else{if(!(e.lanes&n)&&!(t.flags&128))return ft=!1,d4(e,t,n);ft=!!(e.flags&131072)}else ft=!1,ve&&t.flags&1048576&&Pb(t,Il,t.index);switch(t.lanes=0,t.tag){case 2:var s=t.type;fl(e,t),e=t.pendingProps;var r=$r(t,Xe.current);cr(t,n),r=sp(null,t,s,e,r,n);var i=ap();return t.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ht(s)?(i=!0,Ol(t)):i=!1,t.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,Qf(t),r.updater=vc,t.stateNode=r,r._reactInternals=t,Nu(t,s,e,n),t=Eu(null,t,s,!0,i,n)):(t.tag=0,ve&&i&&Hf(t),tt(null,t,r,n),t=t.child),t;case 16:s=t.elementType;e:{switch(fl(e,t),e=t.pendingProps,r=s._init,s=r(s._payload),t.type=s,r=t.tag=N4(s),e=Zt(s,e),r){case 0:t=Su(null,t,s,e,n);break e;case 1:t=fm(null,t,s,e,n);break e;case 11:t=dm(null,t,s,e,n);break e;case 14:t=um(null,t,s,Zt(s.type,e),n);break e}throw Error(P(306,s,""))}return t;
vendor: 4,945 bytes, line 40
40case 0:return s=t.type,r=t.pendingProps,r=t.elementType===s?r:Zt(s,r),Su(e,t,s,r,n);case 1:return s=t.type,r=t.pendingProps,r=t.elementType===s?r:Zt(s,r),fm(e,t,s,r,n);case 3:e:{if(fx(t),e===null)throw Error(P(387));s=t.pendingProps,i=t.memoizedState,r=i.element,Db(e,t),Dl(t,s,null,n);var o=t.memoizedState;if(s=o.element,i.isDehydrated)if(i={element:s,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},t.updateQueue.baseState=i,t.memoizedState=i,t.flags&256){r=Tr(Error(P(423)),t),t=pm(e,t,s,n,r);break e}else if(s!==r){r=Tr(Error(P(424)),t),t=pm(e,t,s,n,r);break e}else for(yt=_s(t.stateNode.containerInfo.firstChild),_t=t,ve=!0,Xt=null,n=Lb(t,null,s,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(Sr(),s===r){t=In(e,t,n);break e}tt(e,t,s,n)}t=t.child}return t;case 5:return Ub(t),e===null&&wu(t),s=t.type,r=t.pendingProps,i=e!==null?e.memoizedProps:null,o=r.children,bu(s,r)?o=null:i!==null&&bu(s,i)&&(t.flags|=32),ux(e,t),tt(e,t,o,n),t.child;case 6:return e===null&&wu(t),null;case 13:return px(e,t,n);case 4:return Xf(t,t.stateNode.containerInfo),s=t.pendingProps,e===null?t.child=Er(t,null,s,n):tt(e,t,s,n),t.child;case 11:return s=t.type,r=t.pendingProps,r=t.elementType===s?r:Zt(s,r),dm(e,t,s,r,n);case 7:return tt(e,t,t.pendingProps,n),t.child;case 8:return tt(e,t,t.pendingProps.children,n),t.child;case 12:return tt(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(s=t.type._context,r=t.pendingProps,i=t.memoizedProps,o=r.value,he(Ll,s._currentValue),s._currentValue=o,i!==null)if(sn(i.value,o)){if(i.children===r.children&&!pt.current){t=In(e,t,n);break e}}else for(i=t.child,i!==null&&(i.return=t);i!==null;){var l=i.dependencies;if(l!==null){o=i.child;for(var c=l.firstContext;c!==null;){if(c.context===s){if(i.tag===1){c=Rn(-1,n&-n),c.tag=2;var d=i.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}}i.lanes|=n,c=i.alternate,c!==null&&(c.lanes|=n),ju(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(i.tag===10)o=i.type===t.type?null:i.child;else if(i.tag===18){if(o=i.return,o===null)throw Error(P(341));o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),ju(o,n,t),o=i.sibling}else o=i.child;if(o!==null)o.return=i;else for(o=i;o!==null;){if(o===t){o=null;break}if(i=o.sibling,i!==null){i.return=o.return,o=i;break}o=o.return}i=o}tt(e,t,r.children,n),t=t.child}return t;case 9:return r=t.type,s=t.pendingProps.children,cr(t,n),r=Pt(r),s=s(r),t.flags|=1,tt(e,t,s,n),t.child;case 14:return s=t.type,r=Zt(s,t.pendingProps),r=Zt(s.type,r),um(e,t,s,r,n);case 15:return cx(e,t,t.type,t.pendingProps,n);case 17:return s=t.type,r=t.pendingProps,r=t.elementType===s?r:Zt(s,r),fl(e,t),t.tag=1,ht(s)?(e=!0,Ol(t)):e=!1,cr(t,n),ix(t,s,r),Nu(t,s,r,n),Eu(null,t,s,!0,e,n);case 19:return hx(e,t,n);case 22:return dx(e,t,n)}throw Error(P(156,t.tag))};function Tx(e,t){return sb(e,t)}function k4(e,t,n,s){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,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 At(e,t,n,s){return new k4(e,t,n,s)}function hp(e){return e=e.prototype,!(!e||!e.isReactComponent)}function N4(e){if(typeof e=="function")return hp(e)?1:0;if(e!=null){if(e=e.$$typeof,e===Pf)return 11;if(e===Of)return 14}return 2}function Ns(e,t){var n=e.alternate;return n===null?(n=At(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function ml(e,t,n,s,r,i){var o=2;if(s=e,typeof e=="function")hp(e)&&(o=1);else if(typeof e=="string")o=5;else e:switch(e){case Za:return ga(n.children,r,i,t);case Rf:o=8,r|=8;break;case Kd:return e=At(12,n,t,r|2),e.elementType=Kd,e.lanes=i,e;case Jd:return e=At(13,n,t,r),e.elementType=Jd,e.lanes=i,e;case Yd:return e=At(19,n,t,r),e.elementType=Yd,e.lanes=i,e;case Ug:return wc(n,r,i,t);default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case Mg:o=10;break e;case Dg:o=9;break e;case Pf:o=11;break e;case Of:o=14;break e;case as:o=16,s=null;break e}throw Error(P(130,e==null?e:typeof e,""))}return t=At(o,n,t,r),t.elementType=e,t.type=s,t.lanes=i,t}function ga(e,t,n,s){return e=At(7,e,s,t),e.lanes=n,e}function wc(e,t,n,s){return e=At(22,e,s,t),e.elementType=Ug,e.lanes=n,e.stateNode={isHidden:!1},e}function wd(e,t,n){return e=At(6,e,null,t),e.lanes=n,e}
vendor: 5,636 bytes, line 40
40function jd(e,t,n){return t=At(4,e.children!==null?e.children:[],e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function $4(e,t,n,s,r){this.tag=t,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=sd(0),this.expirationTimes=sd(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=sd(0),this.identifierPrefix=s,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function mp(e,t,n,s,r,i,o,l,c){return e=new $4(e,t,n,l,c),t===1?(t=1,i===!0&&(t|=8)):t=0,i=At(3,null,null,t),e.current=i,i.stateNode=e,i.memoizedState={element:s,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Qf(i),e}function S4(e,t,n){var s=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Wa,key:s==null?null:""+s,children:e,containerInfo:t,implementation:n}}function Ax(e){if(!e)return Ts;e=e._reactInternals;e:{if(ka(e)!==e||e.tag!==1)throw Error(P(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(ht(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(t!==null);throw Error(P(171))}if(e.tag===1){var n=e.type;if(ht(n))return Ab(e,n,t)}return t}function Rx(e,t,n,s,r,i,o,l,c){return e=mp(n,s,!0,e,r,i,o,l,c),e.context=Ax(null),n=e.current,s=at(),r=ks(n),i=Rn(s,r),i.callback=t??null,ws(n,i,r),e.current.lanes=r,uo(e,r,s),mt(e,s),e}function jc(e,t,n,s){var r=t.current,i=at(),o=ks(r);return n=Ax(n),t.context===null?t.context=n:t.pendingContext=n,t=Rn(i,o),t.payload={element:e},s=s===void 0?null:s,s!==null&&(t.callback=s),e=ws(r,t,o),e!==null&&(nn(e,r,o,i),cl(e,r,o)),o}function Zl(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 jm(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function gp(e,t){jm(e,t),(e=e.alternate)&&jm(e,t)}function E4(){return null}var Px=typeof reportError=="function"?reportError:function(e){console.error(e)};function bp(e){this._internalRoot=e}kc.prototype.render=bp.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(P(409));jc(e,t,null,null)};kc.prototype.unmount=bp.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;_a(function(){jc(null,e,null,null)}),t[On]=null}};function kc(e){this._internalRoot=e}kc.prototype.unstable_scheduleHydration=function(e){if(e){var t=db();e={blockedOn:null,target:e,priority:t};for(var n=0;n<is.length&&t!==0&&t<is[n].priority;n++);is.splice(n,0,e),n===0&&fb(e)}};function xp(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function Nc(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==" react-mount-point-unstable "))}function km(){}function C4(e,t,n,s,r){if(r){if(typeof s=="function"){var i=s;s=function(){var d=Zl(o);i.call(d)}}var o=Rx(t,s,e,0,null,!1,!1,"",km);return e._reactRootContainer=o,e[On]=o.current,Li(e.nodeType===8?e.parentNode:e),_a(),o}for(;r=e.lastChild;)e.removeChild(r);if(typeof s=="function"){var l=s;s=function(){var d=Zl(c);l.call(d)}}var c=mp(e,0,!1,null,null,!1,!1,"",km);return e._reactRootContainer=c,e[On]=c.current,Li(e.nodeType===8?e.parentNode:e),_a(function(){jc(t,c,n,s)}),c}function $c(e,t,n,s,r){var i=n._reactRootContainer;if(i){var o=i;if(typeof r=="function"){var l=r;r=function(){var c=Zl(o);l.call(c)}}jc(t,o,e,r)}else o=C4(n,t,e,r,s);return Zl(o)}lb=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=ci(t.pendingLanes);n!==0&&(Lf(t,n|1),mt(t,Ae()),!(se&6)&&(Ar=Ae()+500,Ls()))}break;case 13:_a(function(){var s=zn(e,1);if(s!==null){var r=at();nn(s,e,1,r)}}),gp(e,1)}};Mf=function(e){if(e.tag===13){var t=zn(e,134217728);if(t!==null){var n=at();nn(t,e,134217728,n)}gp(e,134217728)}};cb=function(e){if(e.tag===13){var t=ks(e),n=zn(e,t);if(n!==null){var s=at();nn(n,e,t,s)}gp(e,t)}};db=function(){return le};ub=function(e,t){var n=le;try{return le=e,t()}finally{le=n}};ou=function(e,t,n){switch(t){case"input":if(eu(e,n),t=n.name,n.type==="radio"&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var s=n[t];if(s!==e&&s.form===e.form){var r=gc(s);if(!r)throw Error(P(90));Bg(s),eu(s,r)}}}break;case"textarea":Vg(e,n);break;case"select":t=n.value,t!=null&&rr(e,!!n.multiple,t,!1)}};Yg=up;Qg=_a;var T4={usingClientEntryPoint:!1,Events:[po,Ya,gc,Kg,Jg,up]},Xr={findFiberByHostInstance:sa,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},A4={bundleType:Xr.bundleType,version:Xr.version,rendererPackageName:Xr.rendererPackageName,rendererConfig:Xr.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:Dn.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=tb(e),e===null?null:e.stateNode},findFiberByHostInstance:Xr.findFiberByHostInstance||E4,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};
40if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Bo=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Bo.isDisabled&&Bo.supportsFiber)try{fc=Bo.inject(A4),bn=Bo}catch{}}kt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=T4;kt.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!xp(t))throw Error(P(200));return S4(e,t,null,n)};kt.createRoot=function(e,t){if(!xp(e))throw Error(P(299));var n=!1,s="",r=Px;return t!=null&&(t.unstable_strictMode===!0&&(n=!0),t.identifierPrefix!==void 0&&(s=t.identifierPrefix),t.onRecoverableError!==void 0&&(r=t.onRecoverableError)),t=mp(e,1,!1,null,null,n,!1,s,r),e[On]=t.current,Li(e.nodeType===8?e.parentNode:e),new bp(t)};kt.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render=="function"?Error(P(188)):(e=Object.keys(e).join(","),Error(P(268,e)));return e=tb(t),e=e===null?null:e.stateNode,e};kt.flushSync=function(e){return _a(e)};kt.hydrate=function(e,t,n){if(!Nc(t))throw Error(P(200));return $c(null,e,t,!0,n)};kt.hydrateRoot=function(e,t,n){if(!xp(e))throw Error(P(405));var s=n!=null&&n.hydratedSources||null,r=!1,i="",o=Px;if(n!=null&&(n.unstable_strictMode===!0&&(r=!0),n.identifierPrefix!==void 0&&(i=n.identifierPrefix),n.onRecoverableError!==void 0&&(o=n.onRecoverableError)),t=Rx(t,null,e,1,n??null,r,!1,i,o),e[On]=t.current,Li(e),s)for(e=0;e<s.length;e++)n=s[e],r=n._getVersion,r=r(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,r]:t.mutableSourceEagerHydrationData.push(n,r);return new kc(t)};kt.render=function(e,t,n){if(!Nc(t))throw Error(P(200));return $c(null,e,t,!1,n)};kt.unmountComponentAtNode=function(e){if(!Nc(e))throw Error(P(40));return e._reactRootContainer?(_a(function(){$c(null,null,e,!1,function(){e._reactRootContainer=null,e[On]=null})}),!0):!1};kt.unstable_batchedUpdates=up;kt.unstable_renderSubtreeIntoContainer=function(e,t,n,s){if(!Nc(n))throw Error(P(200));if(e==null||e._reactInternals===void 0)throw Error(P(38));return $c(e,t,n,!1,s)};kt.version="18.3.1-next-f1338f8080-20240426";function Ox(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(Ox)}catch(e){console.error(e)}}Ox(),Og.exports=kt;var Lr=Og.exports;const zx=lo(Lr);var Ix,Nm=Lr;Ix=Nm.createRoot,Nm.hydrateRoot;var R4=typeof Element<"u",P4=typeof Map=="function",O4=typeof Set=="function",z4=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function gl(e,t){if(e===t)return!0;if(e&&t&&typeof e=="object"&&typeof t=="object"){if(e.constructor!==t.constructor)return!1;var n,s,r;if(Array.isArray(e)){if(n=e.length,n!=t.length)return!1;for(s=n;s--!==0;)if(!gl(e[s],t[s]))return!1;return!0}var i;if(P4&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(i=e.entries();!(s=i.next()).done;)if(!t.has(s.value[0]))return!1;for(i=e.entries();!(s=i.next()).done;)if(!gl(s.value[1],t.get(s.value[0])))return!1;return!0}if(O4&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(i=e.entries();!(s=i.next()).done;)if(!t.has(s.value[0]))return!1;return!0}if(z4&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(n=e.length,n!=t.length)return!1;for(s=n;s--!==0;)if(e[s]!==t[s])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf=="function"&&typeof t.valueOf=="function")return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString=="function"&&typeof t.toString=="function")return e.toString()===t.toString();if(r=Object.keys(e),n=r.length,n!==Object.keys(t).length)return!1;for(s=n;s--!==0;)if(!Object.prototype.hasOwnProperty.call(t,r[s]))return!1;if(R4&&e instanceof Element)return!1;for(s=n;s--!==0;)if(!((r[s]==="_owner"||r[s]==="__v"||r[s]==="__o")&&e.$$typeof)&&!gl(e[r[s]],t[r[s]]))return!1;return!0}return e!==e&&t!==t}var I4=function(t,n){try{return gl(t,n)}catch(s){if((s.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw s}};const L4=lo(I4);var M4=function(e,t,n,s,r,i,o,l){if(!e){var c;if(t===void 0)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var d=[n,s,r,i,o,l],u=0;c=new Error(t.replace(/%s/g,function(){return d[u++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}},D4=M4;const $m=lo(D4);var U4=function(t,n,s,r){var i=s?s.call(r,t,n):void 0;if(i!==void 0)return!!i;if(t===n)return!0;
40if(typeof t!="object"||!t||typeof n!="object"||!n)return!1;var o=Object.keys(t),l=Object.keys(n);if(o.length!==l.length)return!1;for(var c=Object.prototype.hasOwnProperty.bind(n),d=0;d<o.length;d++){var u=o[d];if(!c(u))return!1;var f=t[u],h=n[u];if(i=s?s.call(r,f,h,u):void 0,i===!1||i===void 0&&f!==h)return!1}return!0};const F4=lo(U4);var Lx=(e=>(e.BASE="base",e.BODY="body",e.HEAD="head",e.HTML="html",e.LINK="link",e.META="meta",e.NOSCRIPT="noscript",e.SCRIPT="script",e.STYLE="style",e.TITLE="title",e.FRAGMENT="Symbol(react.fragment)",e))(Lx||{}),kd={link:{rel:["amphtml","canonical","alternate"]},script:{type:["application/ld+json"]},meta:{charset:"",name:["generator","robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]}},Sm=Object.values(Lx),Sc={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},Mx=Object.entries(Sc).reduce((e,[t,n])=>(e[n]=t,e),{}),en="data-rh",ur={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate",PRIORITIZE_SEO_TAGS:"prioritizeSeoTags"},fr=(e,t)=>{for(let n=e.length-1;n>=0;n-=1){const s=e[n];if(Object.prototype.hasOwnProperty.call(s,t))return s[t]}return null},B4=e=>{let t=fr(e,"title");const n=fr(e,ur.TITLE_TEMPLATE);if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,()=>t);const s=fr(e,ur.DEFAULT_TITLE);return t||s||void 0},q4=e=>fr(e,ur.ON_CHANGE_CLIENT_STATE)||(()=>{}),Nd=(e,t)=>t.filter(n=>typeof n[e]<"u").map(n=>n[e]).reduce((n,s)=>({...n,...s}),{}),V4=(e,t)=>t.filter(n=>typeof n.base<"u").map(n=>n.base).reverse().reduce((n,s)=>{if(!n.length){const r=Object.keys(s);for(let i=0;i<r.length;i+=1){const l=r[i].toLowerCase();if(e.indexOf(l)!==-1&&s[l])return n.concat(s)}}return n},[]),H4=e=>console&&typeof console.warn=="function"&&console.warn(e),ei=(e,t,n)=>{const s={};return n.filter(r=>Array.isArray(r[e])?!0:(typeof r[e]<"u"&&H4(`Helmet: ${e} should be of type "Array". Instead found type "${typeof r[e]}"`),!1)).map(r=>r[e]).reverse().reduce((r,i)=>{const o={};i.filter(c=>{let d;const u=Object.keys(c);for(let h=0;h<u.length;h+=1){const p=u[h],y=p.toLowerCase();t.indexOf(y)!==-1&&!(d==="rel"&&c[d].toLowerCase()==="canonical")&&!(y==="rel"&&c[y].toLowerCase()==="stylesheet")&&(d=y),t.indexOf(p)!==-1&&(p==="innerHTML"||p==="cssText"||p==="itemprop")&&(d=p)}if(!d||!c[d])return!1;const f=c[d].toLowerCase();return s[d]||(s[d]={}),o[d]||(o[d]={}),s[d][f]?!1:(o[d][f]=!0,!0)}).reverse().forEach(c=>r.push(c));const l=Object.keys(o);for(let c=0;c<l.length;c+=1){const d=l[c],u={...s[d],...o[d]};s[d]=u}return r},[]).reverse()},W4=(e,t)=>{if(Array.isArray(e)&&e.length){for(let n=0;n<e.length;n+=1)if(e[n][t])return!0}return!1},Z4=e=>({baseTag:V4(["href"],e),bodyAttributes:Nd("bodyAttributes",e),defer:fr(e,ur.DEFER),encode:fr(e,ur.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:Nd("htmlAttributes",e),linkTags:ei("link",["rel","href"],e),metaTags:ei("meta",["name","charset","http-equiv","property","itemprop"],e),noscriptTags:ei("noscript",["innerHTML"],e),onChangeClientState:q4(e),scriptTags:ei("script",["src","innerHTML"],e),styleTags:ei("style",["cssText"],e),title:B4(e),titleAttributes:Nd("titleAttributes",e),prioritizeSeoTags:W4(e,ur.PRIORITIZE_SEO_TAGS)}),Dx=e=>Array.isArray(e)?e.join(""):e,G4=(e,t)=>{const n=Object.keys(e);for(let s=0;s<n.length;s+=1)if(t[n[s]]&&t[n[s]].includes(e[n[s]]))return!0;return!1},$d=(e,t)=>Array.isArray(e)?e.reduce((n,s)=>(G4(s,t)?n.priority.push(s):n.default.push(s),n),{priority:[],default:[]}):{default:e,priority:[]},Em=(e,t)=>({...e,[t]:void 0}),K4=["noscript","script","style"],Uu=(e,t=!0)=>t===!1?String(e):String(e).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;"),Ux=e=>Object.keys(e).reduce((t,n)=>{const s=typeof e[n]<"u"?`${n}="${e[n]}"`:`${n}`;return t?`${t} ${s}`:s},""),J4=(e,t,n,s)=>{const r=Ux(n),i=Dx(t);return r?`<${e} ${en}="true" ${r}>${Uu(i,s)}</${e}>`:`<${e} ${en}="true">${Uu(i,s)}</${e}>`}
40,Y4=(e,t,n=!0)=>t.reduce((s,r)=>{const i=r,o=Object.keys(i).filter(d=>!(d==="innerHTML"||d==="cssText")).reduce((d,u)=>{const f=typeof i[u]>"u"?u:`${u}="${Uu(i[u],n)}"`;return d?`${d} ${f}`:f},""),l=i.innerHTML||i.cssText||"",c=K4.indexOf(e)===-1;return`${s}<${e} ${en}="true" ${o}${c?"/>":`>${l}</${e}>`}`},""),Fx=(e,t={})=>Object.keys(e).reduce((n,s)=>{const r=Sc[s];return n[r||s]=e[s],n},t),Q4=(e,t,n)=>{const s={key:t,[en]:!0},r=Fx(n,s);return[E.createElement("title",r,t)]},bl=(e,t)=>t.map((n,s)=>{const r={key:s,[en]:!0};return Object.keys(n).forEach(i=>{const l=Sc[i]||i;if(l==="innerHTML"||l==="cssText"){const c=n.innerHTML||n.cssText;r.dangerouslySetInnerHTML={__html:c}}else r[l]=n[i]}),E.createElement(e,r)}),St=(e,t,n=!0)=>{switch(e){case"title":return{toComponent:()=>Q4(e,t.title,t.titleAttributes),toString:()=>J4(e,t.title,t.titleAttributes,n)};case"bodyAttributes":case"htmlAttributes":return{toComponent:()=>Fx(t),toString:()=>Ux(t)};default:return{toComponent:()=>bl(e,t),toString:()=>Y4(e,t,n)}}},X4=({metaTags:e,linkTags:t,scriptTags:n,encode:s})=>{const r=$d(e,kd.meta),i=$d(t,kd.link),o=$d(n,kd.script);return{priorityMethods:{toComponent:()=>[...bl("meta",r.priority),...bl("link",i.priority),...bl("script",o.priority)],toString:()=>`${St("meta",r.priority,s)} ${St("link",i.priority,s)} ${St("script",o.priority,s)}`},metaTags:r.default,linkTags:i.default,scriptTags:o.default}},e5=e=>{const{baseTag:t,bodyAttributes:n,encode:s=!0,htmlAttributes:r,noscriptTags:i,styleTags:o,title:l="",titleAttributes:c,prioritizeSeoTags:d}=e;let{linkTags:u,metaTags:f,scriptTags:h}=e,p={toComponent:()=>[],toString:()=>""};return d&&({priorityMethods:p,linkTags:u,metaTags:f,scriptTags:h}=X4(e)),{priority:p,base:St("base",t,s),bodyAttributes:St("bodyAttributes",n,s),htmlAttributes:St("htmlAttributes",r,s),link:St("link",u,s),meta:St("meta",f,s),noscript:St("noscript",i,s),script:St("script",h,s),style:St("style",o,s),title:St("title",{title:l,titleAttributes:c},s)}},Fu=e5,qo=[],vp=!!(typeof window<"u"&&window.document&&window.document.createElement),Bu=class{constructor(e,t){wn(this,"instances",[]);wn(this,"canUseDOM",vp);wn(this,"context");wn(this,"value",{setHelmet:e=>{this.context.helmet=e},helmetInstances:{get:()=>this.canUseDOM?qo:this.instances,add:e=>{(this.canUseDOM?qo:this.instances).push(e)},remove:e=>{const t=(this.canUseDOM?qo:this.instances).indexOf(e);(this.canUseDOM?qo:this.instances).splice(t,1)}}});this.context=e,this.canUseDOM=t||!1,t||(e.helmet=Fu({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))}},t5=parseInt(E.version.split(".")[0],10),qu=t5>=19,n5={},Bx=E.createContext(n5),la,qx=(la=class extends g.Component{constructor(n){super(n);wn(this,"helmetData");qu?this.helmetData=null:this.helmetData=new Bu(this.props.context||{},la.canUseDOM)}render(){return qu?E.createElement(E.Fragment,null,this.props.children):E.createElement(Bx.Provider,{value:this.helmetData.value},this.props.children)}},wn(la,"canUseDOM",vp),la),Oa=(e,t)=>{const n=document.head||document.querySelector("head"),s=n.querySelectorAll(`${e}[${en}]`),r=[].slice.call(s),i=[];let o;return t&&t.length&&t.forEach(l=>{const c=document.createElement(e);for(const d in l)if(Object.prototype.hasOwnProperty.call(l,d))if(d==="innerHTML")c.innerHTML=l.innerHTML;else if(d==="cssText"){const u=l.cssText;c.appendChild(document.createTextNode(u))}else{const u=d,f=typeof l[u]>"u"?"":l[u];c.setAttribute(d,f)}c.setAttribute(en,"true"),r.some((d,u)=>(o=u,c.isEqualNode(d)))?r.splice(o,1):i.push(c)}),r.forEach(l=>{var c;return(c=l.parentNode)==null?void 0:c.removeChild(l)}),i.forEach(l=>n.appendChild(l)),{oldTags:r,newTags:i}},Vu=(e,t)=>{const n=document.getElementsByTagName(e)[0];if(!n)return;const s=n.getAttribute(en),r=s?s.split(","):[],i=[...r],o=Object.keys(t);for(const l of o){const c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),r.indexOf(l)===-1&&r.push(l);const d=i.indexOf(l);d!==-1&&i.splice(d,1)}for(let l=i.length-1;l>=0;l-=1)n.removeAttribute(i[l]);r.length===i.length?n.removeAttribute(en):n.getAttribute(en)!==o.join(",")&&n.setAttribute(en,o.join(","))},s5=(e,t)=>{typeof e<"u"&&document.title!==e&&(document.title=Dx(e)),Vu("title",t)},Cm=(e,t)=>{const{baseTag:n,bodyAttributes:s,htmlAttributes:r,linkTags:i,metaTags:o,noscriptTags:l,onChangeClientState:c,scriptTags:d,styleTags:u,title:f,titleAttributes:h}=e;
40Vu("body",s),Vu("html",r),s5(f,h);const p={baseTag:Oa("base",n),linkTags:Oa("link",i),metaTags:Oa("meta",o),noscriptTags:Oa("noscript",l),scriptTags:Oa("script",d),styleTags:Oa("style",u)},y={},v={};Object.keys(p).forEach(_=>{const{newTags:x,oldTags:b}=p[_];x.length&&(y[_]=x),b.length&&(v[_]=p[_].oldTags)}),t&&t(),c(e,y,v)},ti=null,a5=e=>{ti&&cancelAnimationFrame(ti),e.defer?ti=requestAnimationFrame(()=>{Cm(e,()=>{ti=null})}):(Cm(e),ti=null)},r5=a5,Tm=class extends g.Component{constructor(){super(...arguments);wn(this,"rendered",!1)}shouldComponentUpdate(t){return!F4(t,this.props)}componentDidUpdate(){this.emitChange()}componentWillUnmount(){const{helmetInstances:t}=this.props.context;t.remove(this),this.emitChange()}emitChange(){const{helmetInstances:t,setHelmet:n}=this.props.context;let s=null;const r=Z4(t.get().map(i=>{const{context:o,...l}=i.props;return l}));qx.canUseDOM?r5(r):Fu&&(s=Fu(r)),n(s)}init(){if(this.rendered)return;this.rendered=!0;const{helmetInstances:t}=this.props.context;t.add(this),this.emitChange()}render(){return this.init(),null}},xl=[],Am=e=>{const t={};for(const n of Object.keys(e))t[Mx[n]||n]=e[n];return t},qs=e=>{const t={};for(const n of Object.keys(e)){const s=Sc[n];t[s||n]=e[n]}return t},Rm=(e,t)=>{if(!vp)return;const n=document.getElementsByTagName(e)[0];if(!n)return;const s="data-rh-managed",r=n.getAttribute(s),i=r?r.split(","):[],o=Object.keys(t);for(const l of i)o.includes(l)||n.removeAttribute(l);for(const l of o){const c=t[l];c==null||c===!1?n.removeAttribute(l):c===!0?n.setAttribute(l,""):n.setAttribute(l,String(c))}o.length>0?n.setAttribute(s,o.join(",")):n.removeAttribute(s)},Sd=()=>{const e={},t={};for(const n of xl){const{htmlAttributes:s,bodyAttributes:r}=n.props;s&&Object.assign(e,Am(s)),r&&Object.assign(t,Am(r))}Rm("html",e),Rm("body",t)},i5=class extends g.Component{componentDidMount(){xl.push(this),Sd()}componentDidUpdate(){Sd()}componentWillUnmount(){const e=xl.indexOf(this);e!==-1&&xl.splice(e,1),Sd()}resolveTitle(){const{title:e,titleTemplate:t,defaultTitle:n}=this.props;return e&&t?t.replace(/%s/g,()=>Array.isArray(e)?e.join(""):e):e||n||void 0}renderTitle(){const e=this.resolveTitle();if(e===void 0)return null;const t=this.props.titleAttributes||{};return E.createElement("title",qs(t),e)}renderBase(){const{base:e}=this.props;return e?E.createElement("base",qs(e)):null}renderMeta(){const{meta:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>E.createElement("meta",{key:n,...qs(t)}))}renderLink(){const{link:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>E.createElement("link",{key:n,...qs(t)}))}renderScript(){const{script:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>{const{innerHTML:s,...r}=t,i=qs(r);return s&&(i.dangerouslySetInnerHTML={__html:s}),E.createElement("script",{key:n,...i})})}renderStyle(){const{style:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>{const{cssText:s,...r}=t,i=qs(r);return s&&(i.dangerouslySetInnerHTML={__html:s}),E.createElement("style",{key:n,...i})})}renderNoscript(){const{noscript:e}=this.props;return!e||!Array.isArray(e)?null:e.map((t,n)=>{const{innerHTML:s,...r}=t,i=qs(r);return s&&(i.dangerouslySetInnerHTML={__html:s}),E.createElement("noscript",{key:n,...i})})}render(){return E.createElement(E.Fragment,null,this.renderTitle(),this.renderBase(),this.renderMeta(),this.renderLink(),this.renderScript(),this.renderStyle(),this.renderNoscript())}},Zd,o5=(Zd=class extends g.Component{shouldComponentUpdate(e){return!L4(Em(this.props,"helmetData"),Em(e,"helmetData"))}mapNestedChildrenToProps(e,t){if(!t)return null;switch(e.type){case"script":case"noscript":return{innerHTML:t};case"style":return{cssText:t};default:throw new Error(`<${e.type} /> elements are self-closing and can not contain children. Refer to our API for more information.`)}}flattenArrayTypeChildren(e,t,n,s){return{...t,[e.type]:[...t[e.type]||[],{...n,...this.mapNestedChildrenToProps(e,s)}]}}mapObjectTypeChildren(e,t,n,s){switch(e.type){case"title":return{...t,[e.type]:s,titleAttributes:{...n}};case"body":return{...t,bodyAttributes:{...n}};case"html":return{...t,htmlAttributes:{...n}};default:return{...t,[e.type]:{...n}}}}mapArrayTypeChildrenToProps(e,t){let n={...t};return Object.keys(e).forEach(s=>
40{n={...n,[s]:e[s]}}),n}warnOnInvalidChildren(e,t){return $m(Sm.some(n=>e.type===n),typeof e.type=="function"?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":`Only elements types ${Sm.join(", ")} are allowed. Helmet does not support rendering <${e.type}> elements. Refer to our API for more information.`),$m(!t||typeof t=="string"||Array.isArray(t)&&!t.some(n=>typeof n!="string"),`Helmet expects a string as a child of <${e.type}>. Did you forget to wrap your children in braces? ( <${e.type}>{\`\`}</${e.type}> ) Refer to our API for more information.`),!0}mapChildrenToProps(e,t){let n={};return E.Children.forEach(e,s=>{if(!s||!s.props)return;const{children:r,...i}=s.props,o=Object.keys(i).reduce((c,d)=>(c[Mx[d]||d]=i[d],c),{});let{type:l}=s;switch(typeof l=="symbol"?l=l.toString():this.warnOnInvalidChildren(s,r),l){case"Symbol(react.fragment)":t=this.mapChildrenToProps(r,t);break;case"link":case"meta":case"noscript":case"script":case"style":n=this.flattenArrayTypeChildren(s,n,o,r);break;default:t=this.mapObjectTypeChildren(s,t,o,r);break}}),this.mapArrayTypeChildrenToProps(n,t)}render(){const{children:e,...t}=this.props;let n={...t},{helmetData:s}=t;if(e&&(n=this.mapChildrenToProps(e,n)),s&&!(s instanceof Bu)){const r=s;s=new Bu(r.context,!0),delete n.helmetData}return qu?E.createElement(i5,{...n}):s?E.createElement(Tm,{...n,context:s.value}):E.createElement(Bx.Consumer,null,r=>E.createElement(Tm,{...n,context:r}))}},wn(Zd,"defaultProps",{defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1}),Zd);const l5=1,c5=1e6;let Ed=0;function d5(){return Ed=(Ed+1)%Number.MAX_SAFE_INTEGER,Ed.toString()}const Cd=new Map,Pm=e=>{if(Cd.has(e))return;const t=setTimeout(()=>{Cd.delete(e),wi({type:"REMOVE_TOAST",toastId:e})},c5);Cd.set(e,t)},u5=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,l5)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?Pm(n):e.toasts.forEach(s=>{Pm(s.id)}),{...e,toasts:e.toasts.map(s=>s.id===n||n===void 0?{...s,open:!1}:s)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},vl=[];let yl={toasts:[]};function wi(e){yl=u5(yl,e),vl.forEach(t=>{t(yl)})}function f5({...e}){const t=d5(),n=r=>wi({type:"UPDATE_TOAST",toast:{...r,id:t}}),s=()=>wi({type:"DISMISS_TOAST",toastId:t});return wi({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:r=>{r||s()}}}),{id:t,dismiss:s,update:n}}function p5(){const[e,t]=g.useState(yl);return g.useEffect(()=>(vl.push(t),()=>{const n=vl.indexOf(t);n>-1&&vl.splice(n,1)}),[e]),{...e,toast:f5,dismiss:n=>wi({type:"DISMISS_TOAST",toastId:n})}}function $e(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e==null||e(r),n===!1||!r.defaultPrevented)return t==null?void 0:t(r)}}function Om(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function Vx(...e){return t=>{let n=!1;const s=e.map(r=>{const i=Om(r,t);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let r=0;r<s.length;r++){const i=s[r];typeof i=="function"?i():Om(e[r],null)}}}}function rt(...e){return g.useCallback(Vx(...e),e)}function Na(e,t=[]){let n=[];function s(i,o){const l=g.createContext(o),c=n.length;n=[...n,o];const d=f=>{var x;const{scope:h,children:p,...y}=f,v=((x=h==null?void 0:h[e])==null?void 0:x[c])||l,_=g.useMemo(()=>y,Object.values(y));return a.jsx(v.Provider,{value:_,children:p})};d.displayName=i+"Provider";function u(f,h){var v;const p=((v=h==null?void 0:h[e])==null?void 0:v[c])||l,y=g.useContext(p);if(y)return y;if(o!==void 0)return o;throw new Error(`\`${f}\` must be used within \`${i}\``)}return[d,u]}const r=()=>{const i=n.map(o=>g.createContext(o));return function(l){const c=(l==null?void 0:l[e])||i;return g.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return r.scopeName=e,[s,h5(r,...t)]}function h5(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const s=e.map(r=>({useScope:r(),scopeName:r.scopeName}));
vendor: 10,698 bytes, line 40
40return function(i){const o=s.reduce((l,{useScope:c,scopeName:d})=>{const f=c(i)[`__scope${d}`];return{...l,...f}},{});return g.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return n.scopeName=t.scopeName,n}function Gl(e){const t=g5(e),n=g.forwardRef((s,r)=>{const{children:i,...o}=s,l=g.Children.toArray(i),c=l.find(x5);if(c){const d=c.props.children,u=l.map(f=>f===c?g.Children.count(d)>1?g.Children.only(null):g.isValidElement(d)?d.props.children:null:f);return a.jsx(t,{...o,ref:r,children:g.isValidElement(d)?g.cloneElement(d,void 0,u):null})}return a.jsx(t,{...o,ref:r,children:i})});return n.displayName=`${e}.Slot`,n}var m5=Gl("Slot");function g5(e){const t=g.forwardRef((n,s)=>{const{children:r,...i}=n;if(g.isValidElement(r)){const o=y5(r),l=v5(i,r.props);return r.type!==g.Fragment&&(l.ref=s?Vx(s,o):o),g.cloneElement(r,l)}return g.Children.count(r)>1?g.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var Hx=Symbol("radix.slottable");function b5(e){const t=({children:n})=>a.jsx(a.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=Hx,t}function x5(e){return g.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===Hx}function v5(e,t){const n={...t};for(const s in t){const r=e[s],i=t[s];/^on[A-Z]/.test(s)?r&&i?n[s]=(...l)=>{const c=i(...l);return r(...l),c}:r&&(n[s]=r):s==="style"?n[s]={...r,...i}:s==="className"&&(n[s]=[r,i].filter(Boolean).join(" "))}return{...e,...n}}function y5(e){var s,r;let t=(s=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(r=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function _5(e){const t=e+"CollectionProvider",[n,s]=Na(t),[r,i]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=v=>{const{scope:_,children:x}=v,b=E.useRef(null),m=E.useRef(new Map).current;return a.jsx(r,{scope:_,itemMap:m,collectionRef:b,children:x})};o.displayName=t;const l=e+"CollectionSlot",c=Gl(l),d=E.forwardRef((v,_)=>{const{scope:x,children:b}=v,m=i(l,x),w=rt(_,m.collectionRef);return a.jsx(c,{ref:w,children:b})});d.displayName=l;const u=e+"CollectionItemSlot",f="data-radix-collection-item",h=Gl(u),p=E.forwardRef((v,_)=>{const{scope:x,children:b,...m}=v,w=E.useRef(null),j=rt(_,w),k=i(u,x);return E.useEffect(()=>(k.itemMap.set(w,{ref:w,...m}),()=>void k.itemMap.delete(w))),a.jsx(h,{[f]:"",ref:j,children:b})});p.displayName=u;function y(v){const _=i(e+"CollectionConsumer",v);return E.useCallback(()=>{const b=_.collectionRef.current;if(!b)return[];const m=Array.from(b.querySelectorAll(`[${f}]`));return Array.from(_.itemMap.values()).sort((k,N)=>m.indexOf(k.ref.current)-m.indexOf(N.ref.current))},[_.collectionRef,_.itemMap])}return[{Provider:o,Slot:d,ItemSlot:p},y,s]}var w5=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Ee=w5.reduce((e,t)=>{const n=Gl(`Primitive.${t}`),s=g.forwardRef((r,i)=>{const{asChild:o,...l}=r,c=o?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),a.jsx(c,{...l,ref:i})});return s.displayName=`Primitive.${t}`,{...e,[t]:s}},{});function Wx(e,t){e&&Lr.flushSync(()=>e.dispatchEvent(t))}function As(e){const t=g.useRef(e);return g.useEffect(()=>{t.current=e}),g.useMemo(()=>(...n)=>{var s;return(s=t.current)==null?void 0:s.call(t,...n)},[])}function j5(e,t=globalThis==null?void 0:globalThis.document){const n=As(e);g.useEffect(()=>{const s=r=>{r.key==="Escape"&&n(r)};return t.addEventListener("keydown",s,{capture:!0}),()=>t.removeEventListener("keydown",s,{capture:!0})},[n,t])}var k5="DismissableLayer",Hu="dismissableLayer.update",N5="dismissableLayer.pointerDownOutside",$5="dismissableLayer.focusOutside",zm,Zx=g.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),yp=g.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:s,onPointerDownOutside:r,onFocusOutside:i,onInteractOutside:o,onDismiss:l,...c}=e,d=g.useContext(Zx),[u,f]=g.useState(null),h=(u==null?void 0:u.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,p]=g.useState({}),y=rt(t,N=>f(N)),v=Array.from(d.layers),[_]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),x=v.indexOf(_),b=u?v.indexOf(u):-1,m=d.layersWithOutsidePointerEventsDisabled.size>0,w=b>=x,j=E5(N=>{const C=N.target,R=[...d.branches].some(O=>O.contains(C));!w||R||(r==null||r(N),o==null||o(N),N.defaultPrevented||l==null||l())},h),k=C5(N=>{const C=N.target;[...d.branches].some(O=>O.contains(C))||(i==null||i(N),o==null||o(N),N.defaultPrevented||l==null||l())},h);return j5(N=>{b===d.layers.size-1&&(s==null||s(N),!N.defaultPrevented&&l&&(N.preventDefault(),l()))},h),g.useEffect(()=>{if(u)return n&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(zm=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),d.layersWithOutsidePointerEventsDisabled.add(u)),d.layers.add(u),Im(),()=>{n&&d.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=zm)}},[u,h,n,d]),g.useEffect(()=>()=>{u&&(d.layers.delete(u),d.layersWithOutsidePointerEventsDisabled.delete(u),Im())},[u,d]),g.useEffect(()=>{const N=()=>p({});return document.addEventListener(Hu,N),()=>document.removeEventListener(Hu,N)},[]),a.jsx(Ee.div,{...c,ref:y,style:{pointerEvents:m?w?"auto":"none":void 0,...e.style},onFocusCapture:$e(e.onFocusCapture,k.onFocusCapture),onBlurCapture:$e(e.onBlurCapture,k.onBlurCapture),onPointerDownCapture:$e(e.onPointerDownCapture,j.onPointerDownCapture)})});yp.displayName=k5;var S5="DismissableLayerBranch",Gx=g.forwardRef((e,t)=>{const n=g.useContext(Zx),s=g.useRef(null),r=rt(t,s);return g.useEffect(()=>{const i=s.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),a.jsx(Ee.div,{...e,ref:r})});Gx.displayName=S5;function E5(e,t=globalThis==null?void 0:globalThis.document){const n=As(e),s=g.useRef(!1),r=g.useRef(()=>{});return g.useEffect(()=>{const i=l=>{if(l.target&&!s.current){let c=function(){Kx(N5,n,d,{discrete:!0})};const d={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",r.current),r.current=c,t.addEventListener("click",r.current,{once:!0})):c()}else t.removeEventListener("click",r.current);s.current=!1},o=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(o),t.removeEventListener("pointerdown",i),t.removeEventListener("click",r.current)}},[t,n]),{onPointerDownCapture:()=>s.current=!0}}function C5(e,t=globalThis==null?void 0:globalThis.document){const n=As(e),s=g.useRef(!1);return g.useEffect(()=>{const r=i=>{i.target&&!s.current&&Kx($5,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",r),()=>t.removeEventListener("focusin",r)},[t,n]),{onFocusCapture:()=>s.current=!0,onBlurCapture:()=>s.current=!1}}function Im(){const e=new CustomEvent(Hu);document.dispatchEvent(e)}function Kx(e,t,n,{discrete:s}){const r=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),s?Wx(r,i):r.dispatchEvent(i)}var T5=yp,A5=Gx,Rs=globalThis!=null&&globalThis.document?g.useLayoutEffect:()=>{},R5="Portal",Jx=g.forwardRef((e,t)=>{var l;const{container:n,...s}=e,[r,i]=g.useState(!1);Rs(()=>i(!0),[]);const o=n||r&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return o?zx.createPortal(a.jsx(Ee.div,{...s,ref:t}),o):null});Jx.displayName=R5;function P5(e,t){return g.useReducer((n,s)=>t[n][s]??n,e)}var Ec=e=>{const{present:t,children:n}=e,s=O5(t),r=typeof n=="function"?n({present:s.isPresent}):g.Children.only(n),i=rt(s.ref,z5(r));return typeof n=="function"||s.isPresent?g.cloneElement(r,{ref:i}):null};Ec.displayName="Presence";function O5(e){const[t,n]=g.useState(),s=g.useRef(null),r=g.useRef(e),i=g.useRef("none"),o=e?"mounted":"unmounted",[l,c]=P5(o,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return g.useEffect(()=>{const d=Vo(s.current);i.current=l==="mounted"?d:"none"},[l]),Rs(()=>{const d=s.current,u=r.current;if(u!==e){const h=i.current,p=Vo(d);e?c("MOUNT"):p==="none"||(d==null?void 0:d.display)==="none"?c("UNMOUNT"):c(u&&h!==p?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,c]),Rs(()=>{if(t){let d;const u=t.ownerDocument.defaultView??window,f=p=>{const v=Vo(s.current).includes(p.animationName);if(p.target===t&&v&&(c("ANIMATION_END"),!r.current)){const _=t.style.animationFillMode;t.style.animationFillMode="forwards",d=u.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=_)})}},h=p=>{p.target===t&&(i.current=Vo(s.current))};return t.addEventListener("animationstart",h),t.addEventListener("animationcancel",f),t.addEventListener("animationend",f),()=>{u.clearTimeout(d),t.removeEventListener("animationstart",h),t.removeEventListener("animationcancel",f),t.removeEventListener("animationend",f)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:g.useCallback(d=>{s.current=d?getComputedStyle(d):null,n(d)},[])}}function Vo(e){return(e==null?void 0:e.animationName)||"none"}function z5(e){var s,r;let t=(s=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:s.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(r=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var I5=Rg[" useInsertionEffect ".trim().toString()]||Rs;function _p({prop:e,defaultProp:t,onChange:n=()=>{},caller:s}){const[r,i,o]=L5({defaultProp:t,onChange:n}),l=e!==void 0,c=l?e:r;{const u=g.useRef(e!==void 0);g.useEffect(()=>{const f=u.current;f!==l&&console.warn(`${s} is changing from ${f?"controlled":"uncontrolled"} to ${l?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),u.current=l},[l,s])}const d=g.useCallback(u=>{var f;if(l){const h=M5(u)?u(e):u;h!==e&&((f=o.current)==null||f.call(o,h))}else i(u)},[l,e,i,o]);return[c,d]}function L5({defaultProp:e,onChange:t}){const[n,s]=g.useState(e),r=g.useRef(n),i=g.useRef(t);return I5(()=>{i.current=t},[t]),g.useEffect(()=>{var o;r.current!==n&&((o=i.current)==null||o.call(i,n),r.current=n)},[n,r]),[n,s,i]}function M5(e){return typeof e=="function"}var D5=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),U5="VisuallyHidden",Cc=g.forwardRef((e,t)=>
40a.jsx(Ee.span,{...e,ref:t,style:{...D5,...e.style}}));Cc.displayName=U5;var F5=Cc,wp="ToastProvider",[jp,B5,q5]=_5("Toast"),[Yx,Rve]=Na("Toast",[q5]),[V5,Tc]=Yx(wp),Qx=e=>{const{__scopeToast:t,label:n="Notification",duration:s=5e3,swipeDirection:r="right",swipeThreshold:i=50,children:o}=e,[l,c]=g.useState(null),[d,u]=g.useState(0),f=g.useRef(!1),h=g.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${wp}\`. Expected non-empty \`string\`.`),a.jsx(jp.Provider,{scope:t,children:a.jsx(V5,{scope:t,label:n,duration:s,swipeDirection:r,swipeThreshold:i,toastCount:d,viewport:l,onViewportChange:c,onToastAdd:g.useCallback(()=>u(p=>p+1),[]),onToastRemove:g.useCallback(()=>u(p=>p-1),[]),isFocusedToastEscapeKeyDownRef:f,isClosePausedRef:h,children:o})})};Qx.displayName=wp;var Xx="ToastViewport",H5=["F8"],Wu="toast.viewportPause",Zu="toast.viewportResume",ev=g.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:s=H5,label:r="Notifications ({hotkey})",...i}=e,o=Tc(Xx,n),l=B5(n),c=g.useRef(null),d=g.useRef(null),u=g.useRef(null),f=g.useRef(null),h=rt(t,f,o.onViewportChange),p=s.join("+").replace(/Key/g,"").replace(/Digit/g,""),y=o.toastCount>0;g.useEffect(()=>{const _=x=>{var m;s.length!==0&&s.every(w=>x[w]||x.code===w)&&((m=f.current)==null||m.focus())};return document.addEventListener("keydown",_),()=>document.removeEventListener("keydown",_)},[s]),g.useEffect(()=>{const _=c.current,x=f.current;if(y&&_&&x){const b=()=>{if(!o.isClosePausedRef.current){const k=new CustomEvent(Wu);x.dispatchEvent(k),o.isClosePausedRef.current=!0}},m=()=>{if(o.isClosePausedRef.current){const k=new CustomEvent(Zu);x.dispatchEvent(k),o.isClosePausedRef.current=!1}},w=k=>{!_.contains(k.relatedTarget)&&m()},j=()=>{_.contains(document.activeElement)||m()};return _.addEventListener("focusin",b),_.addEventListener("focusout",w),_.addEventListener("pointermove",b),_.addEventListener("pointerleave",j),window.addEventListener("blur",b),window.addEventListener("focus",m),()=>{_.removeEventListener("focusin",b),_.removeEventListener("focusout",w),_.removeEventListener("pointermove",b),_.removeEventListener("pointerleave",j),window.removeEventListener("blur",b),window.removeEventListener("focus",m)}}},[y,o.isClosePausedRef]);const v=g.useCallback(({tabbingDirection:_})=>{const b=l().map(m=>{const w=m.ref.current,j=[w,...aw(w)];return _==="forwards"?j:j.reverse()});return(_==="forwards"?b.reverse():b).flat()},[l]);return g.useEffect(()=>{const _=f.current;if(_){const x=b=>{var j,k,N;const m=b.altKey||b.ctrlKey||b.metaKey;if(b.key==="Tab"&&!m){const C=document.activeElement,R=b.shiftKey;if(b.target===_&&R){(j=d.current)==null||j.focus();return}const M=v({tabbingDirection:R?"backwards":"forwards"}),Q=M.findIndex(z=>z===C);Td(M.slice(Q+1))?b.preventDefault():R?(k=d.current)==null||k.focus():(N=u.current)==null||N.focus()}};return _.addEventListener("keydown",x),()=>_.removeEventListener("keydown",x)}},[l,v]),a.jsxs(A5,{ref:c,role:"region","aria-label":r.replace("{hotkey}",p),tabIndex:-1,style:{pointerEvents:y?void 0:"none"},children:[y&&a.jsx(Gu,{ref:d,onFocusFromOutsideViewport:()=>{const _=v({tabbingDirection:"forwards"});Td(_)}}),a.jsx(jp.Slot,{scope:n,children:a.jsx(Ee.ol,{tabIndex:-1,...i,ref:h})}),y&&a.jsx(Gu,{ref:u,onFocusFromOutsideViewport:()=>{const _=v({tabbingDirection:"backwards"});Td(_)}})]})});ev.displayName=Xx;var tv="ToastFocusProxy",Gu=g.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:s,...r}=e,i=Tc(tv,n);return a.jsx(Cc,{"aria-hidden":!0,tabIndex:0,...r,ref:t,style:{position:"fixed"},onFocus:o=>{var d;const l=o.relatedTarget;!((d=i.viewport)!=null&&d.contains(l))&&s()}})});Gu.displayName=tv;var mo="Toast",W5="toast.swipeStart",Z5="toast.swipeMove",G5="toast.swipeCancel",K5="toast.swipeEnd",nv=g.forwardRef((e,t)=>{const{forceMount:n,open:s,defaultOpen:r,onOpenChange:i,...o}=e,[l,c]=_p({prop:s,defaultProp:r??!0,onChange:i,caller:mo});return a.jsx(Ec,{present:n||l,children:a.jsx(Q5,{open:l,...o,ref:t,onClose:()=>c(!1),onPause:As(e.onPause),onResume:As(e.onResume),onSwipeStart:$e(e.onSwipeStart,d=>{d.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:$e(e.onSwipeMove,d=>{const{x:u,y:f}=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",`${f}px`)}),onSwipeCancel:$e(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:$e(e.onSwipeEnd,d=>{const{x:u,y:f}=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",`${f}px`),c(!1)})})})});
40nv.displayName=mo;var[J5,Y5]=Yx(mo,{onClose(){}}),Q5=g.forwardRef((e,t)=>{const{__scopeToast:n,type:s="foreground",duration:r,open:i,onClose:o,onEscapeKeyDown:l,onPause:c,onResume:d,onSwipeStart:u,onSwipeMove:f,onSwipeCancel:h,onSwipeEnd:p,...y}=e,v=Tc(mo,n),[_,x]=g.useState(null),b=rt(t,z=>x(z)),m=g.useRef(null),w=g.useRef(null),j=r||v.duration,k=g.useRef(0),N=g.useRef(j),C=g.useRef(0),{onToastAdd:R,onToastRemove:O}=v,H=As(()=>{var te;(_==null?void 0:_.contains(document.activeElement))&&((te=v.viewport)==null||te.focus()),o()}),M=g.useCallback(z=>{!z||z===1/0||(window.clearTimeout(C.current),k.current=new Date().getTime(),C.current=window.setTimeout(H,z))},[H]);g.useEffect(()=>{const z=v.viewport;if(z){const te=()=>{M(N.current),d==null||d()},W=()=>{const K=new Date().getTime()-k.current;N.current=N.current-K,window.clearTimeout(C.current),c==null||c()};return z.addEventListener(Wu,W),z.addEventListener(Zu,te),()=>{z.removeEventListener(Wu,W),z.removeEventListener(Zu,te)}}},[v.viewport,j,c,d,M]),g.useEffect(()=>{i&&!v.isClosePausedRef.current&&M(j)},[i,j,v.isClosePausedRef,M]),g.useEffect(()=>(R(),()=>O()),[R,O]);const Q=g.useMemo(()=>_?cv(_):null,[_]);return v.viewport?a.jsxs(a.Fragment,{children:[Q&&a.jsx(X5,{__scopeToast:n,role:"status","aria-live":s==="foreground"?"assertive":"polite","aria-atomic":!0,children:Q}),a.jsx(J5,{scope:n,onClose:H,children:Lr.createPortal(a.jsx(jp.ItemSlot,{scope:n,children:a.jsx(T5,{asChild:!0,onEscapeKeyDown:$e(l,()=>{v.isFocusedToastEscapeKeyDownRef.current||H(),v.isFocusedToastEscapeKeyDownRef.current=!1}),children:a.jsx(Ee.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":i?"open":"closed","data-swipe-direction":v.swipeDirection,...y,ref:b,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:$e(e.onKeyDown,z=>{z.key==="Escape"&&(l==null||l(z.nativeEvent),z.nativeEvent.defaultPrevented||(v.isFocusedToastEscapeKeyDownRef.current=!0,H()))}),onPointerDown:$e(e.onPointerDown,z=>{z.button===0&&(m.current={x:z.clientX,y:z.clientY})}),onPointerMove:$e(e.onPointerMove,z=>{if(!m.current)return;const te=z.clientX-m.current.x,W=z.clientY-m.current.y,K=!!w.current,S=["left","right"].includes(v.swipeDirection),T=["left","up"].includes(v.swipeDirection)?Math.min:Math.max,I=S?T(0,te):0,J=S?0:T(0,W),q=z.pointerType==="touch"?10:2,X={x:I,y:J},ne={originalEvent:z,delta:X};K?(w.current=X,Ho(Z5,f,ne,{discrete:!1})):Lm(X,v.swipeDirection,q)?(w.current=X,Ho(W5,u,ne,{discrete:!1}),z.target.setPointerCapture(z.pointerId)):(Math.abs(te)>q||Math.abs(W)>q)&&(m.current=null)}),onPointerUp:$e(e.onPointerUp,z=>{const te=w.current,W=z.target;if(W.hasPointerCapture(z.pointerId)&&W.releasePointerCapture(z.pointerId),w.current=null,m.current=null,te){const K=z.currentTarget,S={originalEvent:z,delta:te};Lm(te,v.swipeDirection,v.swipeThreshold)?Ho(K5,p,S,{discrete:!0}):Ho(G5,h,S,{discrete:!0}),K.addEventListener("click",T=>T.preventDefault(),{once:!0})}})})})}),v.viewport)})]}):null}),X5=e=>{const{__scopeToast:t,children:n,...s}=e,r=Tc(mo,t),[i,o]=g.useState(!1),[l,c]=g.useState(!1);return nw(()=>o(!0)),g.useEffect(()=>{const d=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(d)},[]),l?null:a.jsx(Jx,{asChild:!0,children:a.jsx(Cc,{...s,children:i&&a.jsxs(a.Fragment,{children:[r.label," ",n]})})})},ew="ToastTitle",sv=g.forwardRef((e,t)=>{const{__scopeToast:n,...s}=e;return a.jsx(Ee.div,{...s,ref:t})});sv.displayName=ew;var tw="ToastDescription",av=g.forwardRef((e,t)=>{const{__scopeToast:n,...s}=e;return a.jsx(Ee.div,{...s,ref:t})});av.displayName=tw;var rv="ToastAction",iv=g.forwardRef((e,t)=>{const{altText:n,...s}=e;return n.trim()?a.jsx(lv,{altText:n,asChild:!0,children:a.jsx(kp,{...s,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${rv}\`. Expected non-empty \`string\`.`),null)});iv.displayName=rv;var ov="ToastClose",kp=g.forwardRef((e,t)=>{const{__scopeToast:n,...s}=e,r=Y5(ov,n);return a.jsx(lv,{asChild:!0,children:a.jsx(Ee.button,{type:"button",...s,ref:t,onClick:$e(e.onClick,r.onClose)})})});kp.displayName=ov;var lv=g.forwardRef((e,t)=>{const{__scopeToast:n,altText:s,...r}=e;return a.jsx(Ee.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":s||void 0,...r,ref:t})});function cv(e){const t=[];
vendor: 8,614 bytes, lines 40-125
40return Array.from(e.childNodes).forEach(s=>{if(s.nodeType===s.TEXT_NODE&&s.textContent&&t.push(s.textContent),sw(s)){const r=s.ariaHidden||s.hidden||s.style.display==="none",i=s.dataset.radixToastAnnounceExclude==="";if(!r)if(i){const o=s.dataset.radixToastAnnounceAlt;o&&t.push(o)}else t.push(...cv(s))}}),t}function Ho(e,t,n,{discrete:s}){const r=n.originalEvent.currentTarget,i=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&r.addEventListener(e,t,{once:!0}),s?Wx(r,i):r.dispatchEvent(i)}var Lm=(e,t,n=0)=>{const s=Math.abs(e.x),r=Math.abs(e.y),i=s>r;return t==="left"||t==="right"?i&&s>n:!i&&r>n};function nw(e=()=>{}){const t=As(e);Rs(()=>{let n=0,s=0;return n=window.requestAnimationFrame(()=>s=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(s)}},[t])}function sw(e){return e.nodeType===e.ELEMENT_NODE}function aw(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:s=>{const r=s.tagName==="INPUT"&&s.type==="hidden";return s.disabled||s.hidden||r?NodeFilter.FILTER_SKIP:s.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Td(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var rw=Qx,dv=ev,uv=nv,fv=sv,pv=av,hv=iv,mv=kp;function gv(e){var t,n,s="";if(typeof e=="string"||typeof e=="number")s+=e;else if(typeof e=="object")if(Array.isArray(e)){var r=e.length;for(t=0;t<r;t++)e[t]&&(n=gv(e[t]))&&(s&&(s+=" "),s+=n)}else for(n in e)e[n]&&(s&&(s+=" "),s+=n);return s}function bv(){for(var e,t,n=0,s="",r=arguments.length;n<r;n++)(e=arguments[n])&&(t=gv(e))&&(s&&(s+=" "),s+=t);return s}const Mm=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Dm=bv,Np=(e,t)=>n=>{var s;if((t==null?void 0:t.variants)==null)return Dm(e,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:r,defaultVariants:i}=t,o=Object.keys(r).map(d=>{const u=n==null?void 0:n[d],f=i==null?void 0:i[d];if(u===null)return null;const h=Mm(u)||Mm(f);return r[d][h]}),l=n&&Object.entries(n).reduce((d,u)=>{let[f,h]=u;return h===void 0||(d[f]=h),d},{}),c=t==null||(s=t.compoundVariants)===null||s===void 0?void 0:s.reduce((d,u)=>{let{class:f,className:h,...p}=u;return Object.entries(p).every(y=>{let[v,_]=y;return Array.isArray(_)?_.includes({...i,...l}[v]):{...i,...l}[v]===_})?[...d,f,h]:d},[]);return Dm(e,o,c,n==null?void 0:n.class,n==null?void 0:n.className)};/**
41 * @license lucide-react v0.462.0 - ISC
42 *
43 * This source code is licensed under the ISC license.
44 * See the LICENSE file in the root directory of this source tree.
45 */const iw=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),xv=(...e)=>e.filter((t,n,s)=>!!t&&t.trim()!==""&&s.indexOf(t)===n).join(" ").trim();/**
46 * @license lucide-react v0.462.0 - ISC
47 *
48 * This source code is licensed under the ISC license.
49 * See the LICENSE file in the root directory of this source tree.
50 */var ow={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"};/**
51 * @license lucide-react v0.462.0 - ISC
52 *
53 * This source code is licensed under the ISC license.
54 * See the LICENSE file in the root directory of this source tree.
55 */const lw=g.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:s,className:r="",children:i,iconNode:o,...l},c)=>g.createElement("svg",{ref:c,...ow,width:t,height:t,stroke:e,strokeWidth:s?Number(n)*24/Number(t):n,className:xv("lucide",r),...l},[...o.map(([d,u])=>g.createElement(d,u)),...Array.isArray(i)?i:[i]]));/**
56 * @license lucide-react v0.462.0 - ISC
57 *
58 * This source code is licensed under the ISC license.
59 * See the LICENSE file in the root directory of this source tree.
60 */const U=(e,t)=>{const n=g.forwardRef(({className:s,...r},i)=>g.createElement(lw,{ref:i,iconNode:t,className:xv(`lucide-${iw(e)}`,s),...r}));return n.displayName=`${e}`,n};/**
61 * @license lucide-react v0.462.0 - ISC
62 *
63 * This source code is licensed under the ISC license.
64 * See the LICENSE file in the root directory of this source tree.
65 */const cw=U("Accessibility",[["circle",{cx:"16",cy:"4",r:"1",key:"1grugj"}],["path",{d:"m18 19 1-7-6 1",key:"r0i19z"}],["path",{d:"m5 8 3-3 5.5 3-2.36 3.5",key:"9ptxx2"}],["path",{d:"M4.24 14.5a5 5 0 0 0 6.88 6",key:"10kmtu"}],["path",{d:"M13.76 17.5a5 5 0 0 0-6.88-6",key:"2qq6rc"}]]);/**
66 * @license lucide-react v0.462.0 - ISC
67 *
68 * This source code is licensed under the ISC license.
69 * See the LICENSE file in the root directory of this source tree.
70 */const dw=U("AlignJustify",[["path",{d:"M3 12h18",key:"1i2n21"}],["path",{d:"M3 18h18",key:"1h113x"}],["path",{d:"M3 6h18",key:"d0wm0j"}]]);/**
71 * @license lucide-react v0.462.0 - ISC
72 *
73 * This source code is licensed under the ISC license.
74 * See the LICENSE file in the root directory of this source tree.
75 */const ae=U("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);/**
76 * @license lucide-react v0.462.0 - ISC
77 *
78 * This source code is licensed under the ISC license.
79 * See the LICENSE file in the root directory of this source tree.
80 */const it=U("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
81 * @license lucide-react v0.462.0 - ISC
82 *
83 * This source code is licensed under the ISC license.
84 * See the LICENSE file in the root directory of this source tree.
85 */const vv=U("Brain",[["path",{d:"M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z",key:"l5xja"}],["path",{d:"M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z",key:"ep3f8r"}],["path",{d:"M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4",key:"1p4c4q"}],["path",{d:"M17.599 6.5a3 3 0 0 0 .399-1.375",key:"tmeiqw"}],["path",{d:"M6.003 5.125A3 3 0 0 0 6.401 6.5",key:"105sqy"}],["path",{d:"M3.477 10.896a4 4 0 0 1 .585-.396",key:"ql3yin"}],["path",{d:"M19.938 10.5a4 4 0 0 1 .585.396",key:"1qfode"}],["path",{d:"M6 18a4 4 0 0 1-1.967-.516",key:"2e4loj"}],["path",{d:"M19.967 17.484A4 4 0 0 1 18 18",key:"159ez6"}]]);/**
86 * @license lucide-react v0.462.0 - ISC
87 *
88 * This source code is licensed under the ISC license.
89 * See the LICENSE file in the root directory of this source tree.
90 */const Wi=U("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"}]]);/**
91 * @license lucide-react v0.462.0 - ISC
92 *
93 * This source code is licensed under the ISC license.
94 * See the LICENSE file in the root directory of this source tree.
95 */const uw=U("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
96 * @license lucide-react v0.462.0 - ISC
97 *
98 * This source code is licensed under the ISC license.
99 * See the LICENSE file in the root directory of this source tree.
100 */const zt=U("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/**
101 * @license lucide-react v0.462.0 - ISC
102 *
103 * This source code is licensed under the ISC license.
104 * See the LICENSE file in the root directory of this source tree.
105 */const It=U("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
106 * @license lucide-react v0.462.0 - ISC
107 *
108 * This source code is licensed under the ISC license.
109 * See the LICENSE file in the root directory of this source tree.
110 */const Ad=U("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);/**
111 * @license lucide-react v0.462.0 - ISC
112 *
113 * This source code is licensed under the ISC license.
114 * See the LICENSE file in the root directory of this source tree.
115 */const yv=U("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
116 * @license lucide-react v0.462.0 - ISC
117 *
118 * This source code is licensed under the ISC license.
119 * See the LICENSE file in the root directory of this source tree.
120 */const $p=U("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
121 * @license lucide-react v0.462.0 - ISC
122 *
123 * This source code is licensed under the ISC license.
124 * See the LICENSE file in the root directory of this source tree.
125 */const fw=U("Cog",[["path",{d:"M12 20a8 8 0 1 0 0-16 8 8 0 0 0 0 16Z",key:"sobvz5"}],["path",{d:"M12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4Z",key:"11i496"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 22v-2",key:"1osdcq"}],["path",{d:"m17 20.66-1-1.73",key:"eq3orb"}],["path",{d:"M11 10.27 7 3.34",key:"16pf9h"}
125],["path",{d:"m20.66 17-1.73-1",key:"sg0v6f"}],["path",{d:"m3.34 7 1.73 1",key:"1ulond"}],["path",{d:"M14 12h8",key:"4f43i9"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"m20.66 7-1.73 1",key:"1ow05n"}],["path",{d:"m3.34 17 1.73-1",key:"nuk764"}],["path",{d:"m17 3.34-1 1.73",key:"2wel8s"}],["path",{d:"m11 13.73-4 6.93",key:"794ttg"}]]);/**
126 * @license lucide-react v0.462.0 - ISC
127 *
128 * This source code is licensed under the ISC license.
129 * See the LICENSE file in the root directory of this source tree.
130 */const $s=U("Compass",[["path",{d:"m16.24 7.76-1.804 5.411a2 2 0 0 1-1.265 1.265L7.76 16.24l1.804-5.411a2 2 0 0 1 1.265-1.265z",key:"9ktpf1"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/**
131 * @license lucide-react v0.462.0 - ISC
132 *
133 * This source code is licensed under the ISC license.
134 * See the LICENSE file in the root directory of this source tree.
135 */const pw=U("Contrast",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 18a6 6 0 0 0 0-12v12z",key:"j4l70d"}]]);/**
136 * @license lucide-react v0.462.0 - ISC
137 *
138 * This source code is licensed under the ISC license.
139 * See the LICENSE file in the root directory of this source tree.
140 */const hw=U("Cpu",[["rect",{width:"16",height:"16",x:"4",y:"4",rx:"2",key:"14l7u7"}],["rect",{width:"6",height:"6",x:"9",y:"9",rx:"1",key:"5aljv4"}],["path",{d:"M15 2v2",key:"13l42r"}],["path",{d:"M15 20v2",key:"15mkzm"}],["path",{d:"M2 15h2",key:"1gxd5l"}],["path",{d:"M2 9h2",key:"1bbxkp"}],["path",{d:"M20 15h2",key:"19e6y8"}],["path",{d:"M20 9h2",key:"19tzq7"}
140],["path",{d:"M9 2v2",key:"165o2o"}],["path",{d:"M9 20v2",key:"i2bqo8"}]]);/**
141 * @license lucide-react v0.462.0 - ISC
142 *
143 * This source code is licensed under the ISC license.
144 * See the LICENSE file in the root directory of this source tree.
145 */const Lt=U("Download",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"7 10 12 15 17 10",key:"2ggqvy"}],["line",{x1:"12",x2:"12",y1:"15",y2:"3",key:"1vk2je"}]]);/**
146 * @license lucide-react v0.462.0 - ISC
147 *
148 * This source code is licensed under the ISC license.
149 * See the LICENSE file in the root directory of this source tree.
150 */const Kl=U("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"}]]);/**
151 * @license lucide-react v0.462.0 - ISC
152 *
153 * This source code is licensed under the ISC license.
154 * See the LICENSE file in the root directory of this source tree.
155 */const _v=U("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
156 * @license lucide-react v0.462.0 - ISC
157 *
158 * This source code is licensed under the ISC license.
159 * See the LICENSE file in the root directory of this source tree.
160 */const Ac=U("Factory",[["path",{d:"M2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V8l-7 5V8l-7 5V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2Z",key:"159hny"}],["path",{d:"M17 18h1",key:"uldtlt"}],["path",{d:"M12 18h1",key:"s9uhes"}],["path",{d:"M7 18h1",key:"1neino"}]]);/**
161 * @license lucide-react v0.462.0 - ISC
162 *
163 * This source code is licensed under the ISC license.
164 * See the LICENSE file in the root directory of this source tree.
165 */const mw=U("FileCheck",[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"m9 15 2 2 4-4",key:"1grp1n"}]]);/**
166 * @license lucide-react v0.462.0 - ISC
167 *
168 * This source code is licensed under the ISC license.
169 * See the LICENSE file in the root directory of this source tree.
170 */const gw=U("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);/**
171 * @license lucide-react v0.462.0 - ISC
172 *
173 * This source code is licensed under the ISC license.
174 * See the LICENSE file in the root directory of this source tree.
175 */const wv=U("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"}]]);/**
176 * @license lucide-react v0.462.0 - ISC
177 *
178 * This source code is licensed under the ISC license.
179 * See the LICENSE file in the root directory of this source tree.
180 */const jv=U("HeartHandshake",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}],["path",{d:"M12 5 9.04 7.96a2.17 2.17 0 0 0 0 3.08c.82.82 2.13.85 3 .07l2.07-1.9a2.82 2.82 0 0 1 3.79 0l2.96 2.66",key:"4oyue0"}],["path",{d:"m18 15-2-2",key:"60u0ii"}],["path",{d:"m15 18-2-2",key:"6p76be"}]]);/**
181 * @license lucide-react v0.462.0 - ISC
182 *
183 * This source code is licensed under the ISC license.
184 * See the LICENSE file in the root directory of this source tree.
185 */const go=U("Heart",[["path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z",key:"c3ymky"}]]);/**
186 * @license lucide-react v0.462.0 - ISC
187 *
188 * This source code is licensed under the ISC license.
189 * See the LICENSE file in the root directory of this source tree.
190 */const bo=U("House",[["path",{d:"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8",key:"5wwlr5"}],["path",{d:"M3 10a2 2 0 0 1 .709-1.528l7-5.999a2 2 0 0 1 2.582 0l7 5.999A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z",key:"1d0kgt"}]]);/**
191 * @license lucide-react v0.462.0 - ISC
192 *
193 * This source code is licensed under the ISC license.
194 * See the LICENSE file in the root directory of this source tree.
195 */const Sp=U("Layers",[["path",{d:"m12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83Z",key:"8b97xw"}],["path",{d:"m22 17.65-9.17 4.16a2 2 0 0 1-1.66 0L2 17.65",key:"dd6zsq"}],["path",{d:"m22 12.65-9.17 4.16a2 2 0 0 1-1.66 0L2 12.65",key:"ep9fru"}]]);/**
196 * @license lucide-react v0.462.0 - ISC
197 *
198 * This source code is licensed under the ISC license.
199 * See the LICENSE file in the root directory of this source tree.
200 */const xo=U("Leaf",[["path",{d:"M11 20A7 7 0 0 1 9.8 6.1C15.5 5 17 4.48 19 2c1 2 2 4.18 2 8 0 5.5-4.78 10-10 10Z",key:"nnexq3"}],["path",{d:"M2 21c0-3 1.85-5.36 5.08-6C9.5 14.52 12 13 13 12",key:"mt58a7"}]]);/**
201 * @license lucide-react v0.462.0 - ISC
202 *
203 * This source code is licensed under the ISC license.
204 * See the LICENSE file in the root directory of this source tree.
205 */const bw=U("Lightbulb",[["path",{d:"M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5",key:"1gvzjb"}],["path",{d:"M9 18h6",key:"x1upvd"}],["path",{d:"M10 22h4",key:"ceow96"}]]);/**
206 * @license lucide-react v0.462.0 - ISC
207 *
208 * This source code is licensed under the ISC license.
209 * See the LICENSE file in the root directory of this source tree.
210 */const xw=U("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"}]]);/**
211 * @license lucide-react v0.462.0 - ISC
212 *
213 * This source code is licensed under the ISC license.
214 * See the LICENSE file in the root directory of this source tree.
215 */const vw=U("Linkedin",[["path",{d:"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z",key:"c2jq9f"}],["rect",{width:"4",height:"12",x:"2",y:"9",key:"mk3on5"}],["circle",{cx:"4",cy:"4",r:"2",key:"bt5ra8"}]]);/**
216 * @license lucide-react v0.462.0 - ISC
217 *
218 * This source code is licensed under the ISC license.
219 * See the LICENSE file in the root directory of this source tree.
220 */const yw=U("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/**
221 * @license lucide-react v0.462.0 - ISC
222 *
223 * This source code is licensed under the ISC license.
224 * See the LICENSE file in the root directory of this source tree.
225 */const _w=U("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/**
226 * @license lucide-react v0.462.0 - ISC
227 *
228 * This source code is licensed under the ISC license.
229 * See the LICENSE file in the root directory of this source tree.
230 */const kv=U("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"}]]);/**
231 * @license lucide-react v0.462.0 - ISC
232 *
233 * This source code is licensed under the ISC license.
234 * See the LICENSE file in the root directory of this source tree.
235 */const Um=U("Maximize2",[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/**
236 * @license lucide-react v0.462.0 - ISC
237 *
238 * This source code is licensed under the ISC license.
239 * See the LICENSE file in the root directory of this source tree.
240 */const ww=U("Moon",[["path",{d:"M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z",key:"a7tn18"}]]);/**
241 * @license lucide-react v0.462.0 - ISC
242 *
243 * This source code is licensed under the ISC license.
244 * See the LICENSE file in the root directory of this source tree.
245 */const jw=U("Network",[["rect",{x:"16",y:"16",width:"6",height:"6",rx:"1",key:"4q2zg0"}],["rect",{x:"2",y:"16",width:"6",height:"6",rx:"1",key:"8cvhb9"}],["rect",{x:"9",y:"2",width:"6",height:"6",rx:"1",key:"1egb70"}],["path",{d:"M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3",key:"1jsf9p"}],["path",{d:"M12 12V8",key:"2874zd"}]]);/**
246 * @license lucide-react v0.462.0 - ISC
247 *
248 * This source code is licensed under the ISC license.
249 * See the LICENSE file in the root directory of this source tree.
250 */const kw=U("PenTool",[["path",{d:"M15.707 21.293a1 1 0 0 1-1.414 0l-1.586-1.586a1 1 0 0 1 0-1.414l5.586-5.586a1 1 0 0 1 1.414 0l1.586 1.586a1 1 0 0 1 0 1.414z",key:"nt11vn"}],["path",{d:"m18 13-1.375-6.874a1 1 0 0 0-.746-.776L3.235 2.028a1 1 0 0 0-1.207 1.207L5.35 15.879a1 1 0 0 0 .776.746L13 18",key:"15qc1e"}],["path",{d:"m2.3 2.3 7.286 7.286",key:"1wuzzi"}],["circle",{cx:"11",cy:"11",r:"2",key:"xmgehs"}]]);/**
251 * @license lucide-react v0.462.0 - ISC
252 *
253 * This source code is licensed under the ISC license.
254 * See the LICENSE file in the root directory of this source tree.
255 */const Nv=U("Phone",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}]]);/**
256 * @license lucide-react v0.462.0 - ISC
257 *
258 * This source code is licensed under the ISC license.
259 * See the LICENSE file in the root directory of this source tree.
260 */const Nw=U("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/**
261 * @license lucide-react v0.462.0 - ISC
262 *
263 * This source code is licensed under the ISC license.
264 * See the LICENSE file in the root directory of this source tree.
265 */const $w=U("Rocket",[["path",{d:"M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09z",key:"m3
265kijz"}],["path",{d:"m12 15-3-3a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.35 22.35 0 0 1-4 2z",key:"1fmvmk"}],["path",{d:"M9 12H4s.55-3.03 2-4c1.62-1.08 5 0 5 0",key:"1f8sc4"}],["path",{d:"M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5",key:"qeys4"}]]);/**
266 * @license lucide-react v0.462.0 - ISC
267 *
268 * This source code is licensed under the ISC license.
269 * See the LICENSE file in the root directory of this source tree.
270 */const Sw=U("RotateCcw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]]);/**
271 * @license lucide-react v0.462.0 - ISC
272 *
273 * This source code is licensed under the ISC license.
274 * See the LICENSE file in the root directory of this source tree.
275 */const Ew=U("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
276 * @license lucide-react v0.462.0 - ISC
277 *
278 * This source code is licensed under the ISC license.
279 * See the LICENSE file in the root directory of this source tree.
280 */const $v=U("Settings",[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);/**
281 * @license lucide-react v0.462.0 - ISC
282 *
283 * This source code is licensed under the ISC license.
284 * See the LICENSE file in the root directory of this source tree.
285 */const pr=U("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",key:"oel41y"}]]);/**
286 * @license lucide-react v0.462.0 - ISC
287 *
288 * This source code is licensed under the ISC license.
289 * See the LICENSE file in the root directory of this source tree.
290 */const Cw=U("Sparkles",[["path",{d:"M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z",key:"4pj2yx"}],["path",{d:"M20 3v4",key:"1olli1"}],["path",{d:"M22 5h-4",key:"1gvqau"}],["path",{d:"M4 17v2",key:"vumght"}],["path",{d:"M5 18H3",key:"zchphs"}]]);/**
291 * @license lucide-react v0.462.0 - ISC
292 *
293 * This source code is licensed under the ISC license.
294 * See the LICENSE file in the root directory of this source tree.
295 */const Tw=U("Sun",[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]]);/**
296 * @license lucide-react v0.462.0 - ISC
297 *
298 * This source code is licensed under the ISC license.
299 * See the LICENSE file in the root directory of this source tree.
300 */const Sv=U("Target",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"6",key:"1vlfrh"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}]]);/**
301 * @license lucide-react v0.462.0 - ISC
302 *
303 * This source code is licensed under the ISC license.
304 * See the LICENSE file in the root directory of this source tree.
305 */const Ev=U("Tent",[["path",{d:"M3.5 21 14 3",key:"1szst5"}],["path",{d:"M20.5 21 10 3",key:"1310c3"}],["path",{d:"M15.5 21 12 15l-3.5 6",key:"1ddtfw"}],["path",{d:"M2 21h20",key:"1nyx9w"}]]);/**
306 * @license lucide-react v0.462.0 - ISC
307 *
308 * This source code is licensed under the ISC license.
309 * See the LICENSE file in the root directory of this source tree.
310 */const Jl=U("TrendingUp",[["polyline",{points:"22 7 13.5 15.5 8.5 10.5 2 17",key:"126l90"}],["polyline",{points:"16 7 22 7 22 13",key:"kwv8wd"}]]);/**
311 * @license lucide-react v0.462.0 - ISC
312 *
313 * This source code is licensed under the ISC license.
314 * See the LICENSE file in the root directory of this source tree.
315 */const Cv=U("Truck",[["path",{d:"M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2",key:"wrbu53"}],["path",{d:"M15 18H9",key:"1lyqi6"}],["path",{d:"M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14",key:"lysw3i"}],["circle",{cx:"17",cy:"18",r:"2",key:"332jqn"}],["circle",{cx:"7",cy:"18",r:"2",key:"19iecd"}]]);/**
316 * @license lucide-react v0.462.0 - ISC
317 *
318 * This source code is licensed under the ISC license.
319 * See the LICENSE file in the root directory of this source tree.
320 */const Aw=U("Type",[["polyline",{points:"4 7 4 4 20 4 20 7",key:"1nosan"}],["line",{x1:"9",x2:"15",y1:"20",y2:"20",key:"swin9y"}],["line",{x1:"12",x2:"12",y1:"4",y2:"20",key:"1tx1rr"}]]);/**
321 * @license lucide-react v0.462.0 - ISC
322 *
323 * This source code is licensed under the ISC license.
324 * See the LICENSE file in the root directory of this source tree.
325 */const Rw=U("Upload",[["path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4",key:"ih7n3h"}],["polyline",{points:"17 8 12 3 7 8",key:"t8dd8p"}],["line",{x1:"12",x2:"12",y1:"3",y2:"15",key:"widbto"}]]);/**
326 * @license lucide-react v0.462.0 - ISC
327 *
328 * This source code is licensed under the ISC license.
329 * See the LICENSE file in the root directory of this source tree.
330 */const Tv=U("UserCog",[["circle",{cx:"18",cy:"15",r:"3",key:"gjjjvw"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M10 15H6a4 4 0 0 0-4 4v2",key:"1nfge6"}],["path",{d:"m21.7 16.4-.9-.3",key:"12j9ji"}],["path",{d:"m15.2 13.9-.9-.3",key:"1fdjdi"}],["path",{d:"m16.6 18.7.3-.9",key:"heedtr"}],["path",{d:"m19.1 12.2.3-.9",key:"1af3ki"}],["path",{d:"m19.6 18.7-.4-1",key:"1x9vze"}],["path",{d:"m16.8 12.3-.4-1",key:"vqeiwj"}],["path",{d:"m14.3 16.6 1-.4",key:"1qlj63"}],["path",{d:"m20.7 13.8 1-.4",key:"1v5t8k"}]]);/**
331 * @license lucide-react v0.462.0 - ISC
332 *
333 * This source code is licensed under the ISC license.
334 * See the LICENSE file in the root directory of this source tree.
335 */const Mr=U("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"}]]);/**
336 * @license lucide-react v0.462.0 - ISC
337 *
338 * This source code is licensed under the ISC license.
339 * See the LICENSE file in the root directory of this source tree.
340 */const Pw=U("Volume2",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]]);/**
341 * @license lucide-react v0.462.0 - ISC
342 *
343 * This source code is licensed under the ISC license.
344 * See the LICENSE file in the root directory of this source tree.
345 */const Ow=U("VolumeX",[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["line",{x1:"22",x2:"16",y1:"9",y2:"15",key:"1ewh16"}],["line",{x1:"16",x2:"22",y1:"9",y2:"15",key:"5ykzw1"}]]);/**
346 * @license lucide-react v0.462.0 - ISC
347 *
348 * This source code is licensed under the ISC license.
349 * See the LICENSE file in the root directory of this source tree.
vendor: 14,189 bytes, lines 350-375
350 */const Rc=U("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);/**
351 * @license lucide-react v0.462.0 - ISC
352 *
353 * This source code is licensed under the ISC license.
354 * See the LICENSE file in the root directory of this source tree.
355 */const zw=U("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);/**
356 * @license lucide-react v0.462.0 - ISC
357 *
358 * This source code is licensed under the ISC license.
359 * See the LICENSE file in the root directory of this source tree.
360 */const Ue=U("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/**
361 * @license lucide-react v0.462.0 - ISC
362 *
363 * This source code is licensed under the ISC license.
364 * See the LICENSE file in the root directory of this source tree.
365 */const Ep=U("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);/**
366 * @license lucide-react v0.462.0 - ISC
367 *
368 * This source code is licensed under the ISC license.
369 * See the LICENSE file in the root directory of this source tree.
370 */const Iw=U("ZoomIn",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"11",x2:"11",y1:"8",y2:"14",key:"1vmskp"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]);/**
371 * @license lucide-react v0.462.0 - ISC
372 *
373 * This source code is licensed under the ISC license.
374 * See the LICENSE file in the root directory of this source tree.
375 */const Lw=U("ZoomOut",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["line",{x1:"21",x2:"16.65",y1:"21",y2:"16.65",key:"13gj7c"}],["line",{x1:"8",x2:"14",y1:"11",y2:"11",key:"durymu"}]]),Cp="-",Mw=e=>{const t=Uw(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:s}=e;return{getClassGroupId:o=>{const l=o.split(Cp);return l[0]===""&&l.length!==1&&l.shift(),Av(l,t)||Dw(o)},getConflictingClassGroupIds:(o,l)=>{const c=n[o]||[];return l&&s[o]?[...c,...s[o]]:c}}},Av=(e,t)=>{var o;if(e.length===0)return t.classGroupId;const n=e[0],s=t.nextPart.get(n),r=s?Av(e.slice(1),s):void 0;if(r)return r;if(t.validators.length===0)return;const i=e.join(Cp);return(o=t.validators.find(({validator:l})=>l(i)))==null?void 0:o.classGroupId},Fm=/^\[(.+)\]$/,Dw=e=>{if(Fm.test(e)){const t=Fm.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},Uw=e=>{const{theme:t,prefix:n}=e,s={nextPart:new Map,validators:[]};return Bw(Object.entries(e.classGroups),n).forEach(([i,o])=>{Ku(o,s,i,t)}),s},Ku=(e,t,n,s)=>{e.forEach(r=>{if(typeof r=="string"){const i=r===""?t:Bm(t,r);i.classGroupId=n;return}if(typeof r=="function"){if(Fw(r)){Ku(r(s),t,n,s);return}t.validators.push({validator:r,classGroupId:n});return}Object.entries(r).forEach(([i,o])=>{Ku(o,Bm(t,i),n,s)})})},Bm=(e,t)=>{let n=e;return t.split(Cp).forEach(s=>{n.nextPart.has(s)||n.nextPart.set(s,{nextPart:new Map,validators:[]}),n=n.nextPart.get(s)}),n},Fw=e=>e.isThemeGetter,Bw=(e,t)=>t?e.map(([n,s])=>{const r=s.map(i=>typeof i=="string"?t+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([o,l])=>[t+o,l])):i);return[n,r]}):e,qw=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,s=new Map;const r=(i,o)=>{n.set(i,o),t++,t>e&&(t=0,s=n,n=new Map)};return{get(i){let o=n.get(i);if(o!==void 0)return o;if((o=s.get(i))!==void 0)return r(i,o),o},set(i,o){n.has(i)?n.set(i,o):r(i,o)}}},Rv="!",Vw=e=>{const{separator:t,experimentalParseClassName:n}=e,s=t.length===1,r=t[0],i=t.length,o=l=>{const c=[];let d=0,u=0,f;for(let _=0;_<l.length;_++){let x=l[_];if(d===0){if(x===r&&(s||l.slice(_,_+i)===t)){c.push(l.slice(u,_)),u=_+i;continue}if(x==="/"){f=_;continue}}x==="["?d++:x==="]"&&d--}const h=c.length===0?l:l.substring(u),p=h.startsWith(Rv),y=p?h.substring(1):h,v=f&&f>u?f-u:void 0;return{modifiers:c,hasImportantModifier:p,baseClassName:y,maybePostfixModifierPosition:v}};return n?l=>n({className:l,parseClassName:o}):o},Hw=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(s=>{s[0]==="["?(t.push(...n.sort(),s),n=[]):n.push(s)}),t.push(...n.sort()),t},Ww=e=>({cache:qw(e.cacheSize),parseClassName:Vw(e),...Mw(e)}),Zw=/\s+/,Gw=(e,t)=>{const{parseClassName:n,getClassGroupId:s,getConflictingClassGroupIds:r}=t,i=[],o=e.trim().split(Zw);let l="";for(let c=o.length-1;c>=0;c-=1){const d=o[c],{modifiers:u,hasImportantModifier:f,baseClassName:h,maybePostfixModifierPosition:p}=n(d);let y=!!p,v=s(y?h.substring(0,p):h);if(!v){if(!y){l=d+(l.length>0?" "+l:l);continue}if(v=s(h),!v){l=d+(l.length>0?" "+l:l);continue}y=!1}const _=Hw(u).join(":"),x=f?_+Rv:_,b=x+v;if(i.includes(b))continue;i.push(b);const m=r(v,y);for(let w=0;w<m.length;++w){const j=m[w];i.push(x+j)}l=d+(l.length>0?" "+l:l)}return l};function Kw(){let e=0,t,n,s="";for(;e<arguments.length;)(t=arguments[e++])&&(n=Pv(t))&&(s&&(s+=" "),s+=n);return s}const Pv=e=>{if(typeof e=="string")return e;let t,n="";for(let s=0;s<e.length;s++)e[s]&&(t=Pv(e[s]))&&(n&&(n+=" "),n+=t);return n};function Jw(e,...t){let n,s,r,i=o;function o(c){const d=t.reduce((u,f)=>f(u),e());return n=Ww(d),s=n.cache.get,r=n.cache.set,i=l,l(c)}function l(c){const d=s(c);if(d)return d;const u=Gw(c,n);return r(c,u),u}return function(){return i(Kw.apply(null,arguments))}}const me=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},Ov=/^\[(?:([a-z-]+):)?(.+)\]$/i,Yw=/^\d+\/\d+$/,Qw=new Set(["px","full","screen"]),Xw=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,e7=/\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$/,t7=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,n7=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,s7=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,jn=e=>hr(e)||Qw.has(e)||Yw.test(e),Gn=e=>Dr(e,"length",u7),hr=e=>!!e&&!Number.isNaN(Number(e)),Rd=e=>Dr(e,"number",hr),ni=e=>!!e&&Number.isInteger(Number(e)),a7=e=>e.endsWith("%")&&hr(e.slice(0,-1)),Y=e=>Ov.test(e),Kn=e=>Xw.test(e),r7=new Set(["length","size","percentage"]),i7=e=>Dr(e,r7,zv),o7=e=>Dr(e,"position",zv),l7=new Set(["image","url"]),c7=e=>Dr(e,l7,p7),d7=e=>Dr(e,"",f7),si=()=>!0,Dr=(e,t,n)=>{const s=Ov.exec(e);return s?s[1]?typeof t=="string"?s[1]===t:t.has(s[1]):n(s[2]):!1},u7=e=>e7.test(e)&&!t7.test(e),zv=()=>!1,f7=e=>n7.test(e),p7=e=>s7.test(e),h7=()=>{const e=me("colors"),t=me("spacing"),n=me("blur"),s=me("brightness"),r=me("borderColor"),i=me("borderRadius"),o=me("borderSpacing"),l=me("borderWidth"),c=me("contrast"),d=me("grayscale"),u=me("hueRotate"),f=me("invert"),h=me("gap"),p=me("gradientColorStops"),y=me("gradientColorStopPositions"),v=me("inset"),_=me("margin"),x=me("opacity"),b=me("padding"),m=me("saturate"),w=me("scale"),j=me("sepia"),k=me("skew"),N=me("space"),C=me("translate"),R=()=>["auto","contain","none"],O=()=>["auto","hidden","clip","visible","scroll"],H=()=>["auto",Y,t],M=()=>[Y,t],Q=()=>["",jn,Gn],z=()=>["auto",hr,Y],te=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],W=()=>["solid","dashed","dotted","double","none"],K=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],S=()=>["start","end","center","between","around","evenly","stretch"],T=()=>["","0",Y],I=()=>["auto","avoid","all","avoid-page","page","left","right","column"],J=()=>[hr,Y];return{cacheSize:500,separator:":",theme:{colors:[si],spacing:[jn,Gn],blur:["none","",Kn,Y],brightness:J(),borderColor:[e],borderRadius:["none","","full",Kn,Y],borderSpacing:M(),borderWidth:Q(),contrast:J(),grayscale:T(),hueRotate:J(),invert:T(),gap:M(),gradientColorStops:[e],gradientColorStopPositions:[a7,Gn],inset:H(),margin:H(),opacity:J(),padding:M(),saturate:J(),scale:J(),sepia:T(),skew:J(),space:M(),translate:M()},classGroups:{aspect:[{aspect:["auto","square","video",Y]}],container:["container"],columns:[{columns:[Kn]}],"break-after":[{"break-after":I()}],"break-before":[{"break-before":I()}],"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:[...te(),Y]}],overflow:[{overflow:O()}],"overflow-x":[{"overflow-x":O()}],"overflow-y":[{"overflow-y":O()}],overscroll:[{overscroll:R()}],"overscroll-x":[{"overscroll-x":R()}],"overscroll-y":[{"overscroll-y":R()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[v]}],"inset-x":[{"inset-x":[v]}],"inset-y":[{"inset-y":[v]}],start:[{start:[v]}],end:[{end:[v]}],top:[{top:[v]}],right:[{right:[v]}],bottom:[{bottom:[v]}],left:[{left:[v]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",ni,Y]}],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",Y]}],grow:[{grow:T()}],shrink:[{shrink:T()}],order:[{order:["first","last","none",ni,Y]}],"grid-cols":[{"grid-cols":[si]}],"col-start-end":[{col:["auto",{span:["full",ni,Y]},Y]}],"col-start":[{"col-start":z()}],"col-end":[{"col-end":z()}],"grid-rows":[{"grid-rows":[si]}],"row-start-end":[{row:["auto",{span:[ni,Y]},Y]}],"row-start":[{"row-start":z()}],"row-end":[{"row-end":z()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Y]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Y]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...S()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...S(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...S(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[b]}],px:[{px:[b]}],py:[{py:[b]}],ps:[{ps:[b]}],pe:[{pe:[b]}],pt:[{pt:[b]}],pr:[{pr:[b]}],pb:[{pb:[b]}],pl:[{pl:[b]}],m:[{m:[_]}],mx:[{mx:[_]}],my:[{my:[_]}],ms:[{ms:[_]}],me:[{me:[_]}],mt:[{mt:[_]}],mr:[{mr:[_]}],mb:[{mb:[_]}],ml:[{ml:[_]}],"space-x":[{"space-x":[N]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[N]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Y,t]}],"min-w":[{"min-w":[Y,t,"min","max","fit"]}],"max-w":[{"max-w":[Y,t,"none","full","min","max","fit","prose",{screen:[Kn]},Kn]}],h:[{h:[Y,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Y,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Y,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Y,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Kn,Gn]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Rd]}],"font-family":[{font:[si]}],"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",Y]}],"line-clamp":[{"line-clamp":["none",hr,Rd]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",jn,Y]}],"list-image":[{"list-image":["none",Y]}],"list-style-type":[{list:["none","disc","decimal",Y]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[x]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[x]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...W(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",jn,Gn]}],"underline-offset":[{"underline-offset":["auto",jn,Y]}],"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",Y]}],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",Y]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[x]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...te(),o7]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",i7]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},c7]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[y]}
vendor: 5,172 bytes, line 375
375],"gradient-via-pos":[{via:[y]}],"gradient-to-pos":[{to:[y]}],"gradient-from":[{from:[p]}],"gradient-via":[{via:[p]}],"gradient-to":[{to:[p]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"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":[x]}],"border-style":[{border:[...W(),"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":[x]}],"divide-style":[{divide:W()}],"border-color":[{border:[r]}],"border-color-x":[{"border-x":[r]}],"border-color-y":[{"border-y":[r]}],"border-color-s":[{"border-s":[r]}],"border-color-e":[{"border-e":[r]}],"border-color-t":[{"border-t":[r]}],"border-color-r":[{"border-r":[r]}],"border-color-b":[{"border-b":[r]}],"border-color-l":[{"border-l":[r]}],"divide-color":[{divide:[r]}],"outline-style":[{outline:["",...W()]}],"outline-offset":[{"outline-offset":[jn,Y]}],"outline-w":[{outline:[jn,Gn]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:Q()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[x]}],"ring-offset-w":[{"ring-offset":[jn,Gn]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Kn,d7]}],"shadow-color":[{shadow:[si]}],opacity:[{opacity:[x]}],"mix-blend":[{"mix-blend":[...K(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":K()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[s]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",Kn,Y]}],grayscale:[{grayscale:[d]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[f]}],saturate:[{saturate:[m]}],sepia:[{sepia:[j]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"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":[f]}],"backdrop-opacity":[{"backdrop-opacity":[x]}],"backdrop-saturate":[{"backdrop-saturate":[m]}],"backdrop-sepia":[{"backdrop-sepia":[j]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Y]}],duration:[{duration:J()}],ease:[{ease:["linear","in","out","in-out",Y]}],delay:[{delay:J()}],animate:[{animate:["none","spin","ping","pulse","bounce",Y]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[w]}],"scale-x":[{"scale-x":[w]}],"scale-y":[{"scale-y":[w]}],rotate:[{rotate:[ni,Y]}],"translate-x":[{"translate-x":[C]}],"translate-y":[{"translate-y":[C]}],"skew-x":[{"skew-x":[k]}],"skew-y":[{"skew-y":[k]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Y]}],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",Y]}],"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 375
375],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",Y]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[jn,Gn,Rd]}],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"]}}},m7=Jw(h7);function Se(...e){return m7(bv(e))}const g7=rw,Iv=g.forwardRef(({className:e,...t},n)=>a.jsx(dv,{ref:n,className:Se("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),...t}));Iv.displayName=dv.displayName;const b7=Np("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"}}),Lv=g.forwardRef(({className:e,variant:t,...n},s)=>a.jsx(uv,{ref:s,className:Se(b7({variant:t}),e),...n}));Lv.displayName=uv.displayName;const x7=g.forwardRef(({className:e,...t},n)=>a.jsx(hv,{ref:n,className:Se("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 group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",e),...t}));x7.displayName=hv.displayName;const Mv=g.forwardRef(({className:e,...t},n)=>a.jsx(mv,{ref:n,className:Se("absolute right-2 top-2 rounded-md p-1 text-foreground
375/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:a.jsx(Ue,{className:"h-4 w-4"})}));Mv.displayName=mv.displayName;const Dv=g.forwardRef(({className:e,...t},n)=>a.jsx(fv,{ref:n,className:Se("text-sm font-semibold",e),...t}));Dv.displayName=fv.displayName;const Uv=g.forwardRef(({className:e,...t},n)=>a.jsx(pv,{ref:n,className:Se("text-sm opacity-90",e),...t}));Uv.displayName=pv.displayName;function v7(){const{toasts:e}=p5();return a.jsxs(g7,{children:[e.map(function({id:t,title:n,description:s,action:r,...i}){return a.jsxs(Lv,{...i,children:[a.jsxs("div",{className:"grid gap-1",children:[n&&a.jsx(Dv,{children:n}),s&&a.jsx(Uv,{children:s})]}),r,a.jsx(Mv,{})]},t)}),a.jsx(Iv,{})]})}var qm=["light","dark"],y7="(prefers-color-scheme: dark)",_7=g.createContext(void 0),w7={setTheme:e=>{},themes:[]},j7=()=>{var e;return(e=g.useContext(_7))!=null?e:w7};g.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:s,enableColorScheme:r,defaultTheme:i,value:o,attrs:l,nonce:c})=>{let d=i==="system",u=n==="class"?`var d=document.documentElement,c=d.classList;${`c.remove(${l.map(y=>`'${y}'`).join(",")})`};`:`var d=document.documentElement,n='${n}',s='setAttribute';`,f=r?qm.includes(i)&&i?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${i}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",h=(y,v=!1,_=!0)=>{let x=o?o[y]:y,b=v?y+"|| ''":`'${x}'`,m="";return r&&_&&!v&&qm.includes(y)&&(m+=`d.style.colorScheme = '${y}';`),n==="class"?v||x?m+=`c.add(${b})`:m+="null":x&&(m+=`d[s](n,${b})`),m},p=e?`!function(){${u}${h(e)}}()`:s?`!function(){try{${u}var e=localStorage.getItem('${t}');if('system'===e||(!e&&${d})){var t='${y7}',m=window.matchMedia(t);if(m.media!==t||m.matches){${h("dark")}}else{${h("light")}}}else if(e){${o?`var x=${JSON.stringify(o)};`:""}${h(o?"x[e]":"e",!0)}}${d?"":"else{"+h(i,!1,!1)+"}"}${f}}catch(e){}}()`:`!function(){try{${u}var e=localStorage.getItem('${t}');if(e){${o?`var x=${JSON.stringify(o)};`:""}${h(o?"x[e]":"e",!0)}}else{${h(i,!1,!1)};}${f}}catch(t){}}();`;return g.createElement("script",{nonce:c,dangerouslySetInnerHTML:{__html:p}})});var k7=e=>{switch(e){case"success":return S7;case"info":return C7;case"warning":return E7;case"error":return T7;default:return null}},N7=Array(12).fill(0),$7=({visible:e,className:t})=>E.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},E.createElement("div",{className:"sonner-spinner"},N7.map((n,s)=>E.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${s}`})))),S7=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),E7=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),C7=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),T7=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},E.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),A7=E.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},E.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),E.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),R7=()=>{let[e,t]=E.useState(document.hidden);return E.useEffect(()=>{let n=()=>{t(document.hidden)};
375return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e},Ju=1,P7=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:n,...s}=e,r=typeof(e==null?void 0:e.id)=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:Ju++,i=this.toasts.find(l=>l.id===r),o=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),i?this.toasts=this.toasts.map(l=>l.id===r?(this.publish({...l,...e,id:r,title:n}),{...l,...e,id:r,dismissible:o,title:n}):l):this.addToast({title:n,...s,dismissible:o,id:r}),r},this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(t=>{this.subscribers.forEach(n=>n({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>
375this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let s=e instanceof Promise?e:e(),r=n!==void 0,i,o=s.then(async c=>{if(i=["resolve",c],E.isValidElement(c))r=!1,this.create({id:n,type:"default",message:c});else if(z7(c)&&!c.ok){r=!1;let d=typeof t.error=="function"?await t.error(`HTTP error! status: ${c.status}`):t.error,u=typeof t.description=="function"?await t.description(`HTTP error! status: ${c.status}`):t.description;this.create({id:n,type:"error",message:d,description:u})}else if(t.success!==void 0){r=!1;let d=typeof t.success=="function"?await t.success(c):t.success,u=typeof t.description=="function"?await t.description(c):t.description;this.create({id:n,type:"success",message:d,description:u})}}).catch(async c=>{if(i=["reject",c],t.error!==void 0){r=!1;let d=typeof t.error=="function"?await t.error(c):t.error,u=typeof t.description=="function"?await t.description(c):t.description;this.create({id:n,type:"error",message:d,description:u})}}).finally(()=>{var c;r&&(this.dismiss(n),n=void 0),(c=t.finally)==null||c.call(t)}),l=()=>new Promise((c,d)=>o.then(()=>i[0]==="reject"?d(i[1]):c(i[1])).catch(d));return typeof n!="string"&&typeof n!="number"?{unwrap:l}:Object.assign(n,{unwrap:l})},this.custom=(e,t)=>{let n=(t==null?void 0:t.id)||Ju++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},dt=new P7,O7=(e,t)=>{let n=(t==null?void 0:t.id)||Ju++;return dt.addToast({title:e,...t,id:n}),n},z7=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",I7=O7,L7=()=>dt.toasts,M7=()=>dt.getActiveToasts(),ai=Object.assign(I7,{success:dt.success,info:dt.info,warning:dt.warning,error:dt.error,custom:dt.custom,message:dt.message,promise:dt.promise,dismiss:dt.dismiss,loading:dt.loading},{getHistory:L7,getToasts:M7});function D7(e,{insertAt:t}={}){if(typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],s=document.createElement("style");s.type="text/css",t==="top"&&n.firstChild?n.insertBefore(s,n.firstChild):n.appendChild(s),s.styleSheet?s.styleSheet.cssText=e:s.appendChild(document.createTextNode(e))}D7(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
375left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
375:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
375--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)}
376`);function Wo(e){return e.label!==void 0}var U7=3,F7="32px",B7="16px",Vm=4e3,q7=356,V7=14,H7=20,W7=200;function Bt(...e){return e.filter(Boolean).join(" ")}function Z7(e){let[t,n]=e.split("-"),s=[];return t&&s.push(t),n&&s.push(n),s}var G7=e=>{var t,n,s,r,i,o,l,c,d,u,f;let{invert:h,toast:p,unstyled:y,interacting:v,setHeights:_,visibleToasts:x,heights:b,index:m,toasts:w,expanded:j,removeToast:k,defaultRichColors:N,closeButton:C,style:R,cancelButtonStyle:O,actionButtonStyle:H,className:M="",descriptionClassName:Q="",duration:z,position:te,gap:W,loadingIcon:K,expandByDefault:S,classNames:T,icons:I,closeButtonAriaLabel:J="Close toast",pauseWhenPageIsHidden:q}=e,[X,ne]=E.useState(null),[Re,Ze]=E.useState(null),[ie,Sa]=E.useState(!1),[Fn,Us]=E.useState(!1),[Bn,Ea]=E.useState(!1),[qn,wo]=E.useState(!1),[Zc,jo]=E.useState(!1),[Gc,Vr]=E.useState(0),[Ca,dh]=E.useState(0),Hr=E.useRef(p.duration||z||Vm),uh=E.useRef(null),Fs=E.useRef(null),K2=m===0,J2=m+1<=x,$t=p.type,Ta=p.dism
376issible!==!1,Y2=p.className||"",Q2=p.descriptionClassName||"",ko=E.useMemo(()=>b.findIndex(Z=>Z.toastId===p.id)||0,[b,p.id]),X2=E.useMemo(()=>{var Z;return(Z=p.closeButton)!=null?Z:C},[p.closeButton,C]),fh=E.useMemo(()=>p.duration||z||Vm,[p.duration,z]),Kc=E.useRef(0),Aa=E.useRef(0),ph=E.useRef(0),Ra=E.useRef(null),[ey,ty]=te.split("-"),hh=E.useMemo(()=>b.reduce((Z,ce,xe)=>xe>=ko?Z:Z+ce.height,0),[b,ko]),mh=R7(),ny=p.invert||h,Jc=$t==="loading";Aa.current=E.useMemo(()=>ko*W+hh,[ko,hh]),E.useEffect(()=>{Hr.current=fh},[fh]),E.useEffect(()=>{Sa(!0)},[]),E.useEffect(()=>{let Z=Fs.current;if(Z){let ce=Z.getBoundingClientRect().height;return dh(ce),_(xe=>[{toastId:p.id,height:ce,position:p.position},...xe]),()=>_(xe=>xe.filter(Mt=>Mt.toastId!==p.id))}},[_,p.id]),E.useLayoutEffect(()=>{if(!ie)return;let Z=Fs.current,ce=Z.style.height;Z.style.height="auto";let xe=Z.getBoundingClientRect().height;Z.style.height=ce,dh(xe),_(Mt=>Mt.find(Dt=>Dt.toastId===p.id)?Mt.map(Dt=>Dt.toastId===p.id?{...Dt,height:xe}:Dt):[{toastId:p.id,height:xe,position:p.position},...Mt])},[ie,p.title,p.description,_,p.id]);let Vn=E.useCallback(()=>{Us(!0),Vr(Aa.current),_(Z=>Z.filter(ce=>ce.toastId!==p.id)),setTimeout(()=>{k(p)},W7)},[p,k,_,Aa]);E.useEffect(()=>{if(p.promise&&$t==="loading"||p.duration===1/0||p.type==="loading")return;let Z;return j||v||q&&mh?(()=>{if(ph.current<Kc.current){let ce=new Date().getTime()-Kc.current;Hr.current=Hr.current-ce}ph.current=new Date().getTime()})():Hr.current!==1/0&&(Kc.current=new Date().getTime(),Z=setTimeout(()=>{var ce;(ce=p.onAutoClose)==null||ce.call(p,p),Vn()},Hr.current)),()=>clearTimeout(Z)},[j,v,p,$t,q,mh,Vn]),E.useEffect(()=>{p.delete&&Vn()},[Vn,p.delete]);function sy(){var Z,ce,xe;return I!=null&&I.loading?E.createElement("div",{className:Bt(T==null?void 0:T.loader,(Z=p==null?void 0:p.classNames)==null?void 0:Z.loader,"sonner-loader"),"data-visible":$t==="loading"},I.loading):K?E.createElement("div",{className:Bt(T==null?void 0:T.loader,(ce=p==null?void 0:p.classNames)==null?void 0:ce.loader,"sonner-loader"),"data-visible":$t==="loading"},K):E.createElement($7,{className:Bt(T==null?void 0:T.loader,(xe=p==null?void 0:p.classNames)==null?void 0:xe.loader),visible:$t==="loading"})}return E.createElement("li",{tabIndex:0,ref:Fs,className:Bt(M,Y2,T==null?void 0:T.toast,(t=p==null?void 0:p.classNames)==null?void 0:t.toast,T==null?void 0:T.default,T==null?void 0:T[$t],(n=p==null?void 0:p.classNames)==null?void 0:n[$t]),"data-sonner-toast":"","data-rich-colors":(s=p.richColors)!=null?s:N,"data-styled":!(p.jsx||p.unstyled||y),"data-mounted":ie,"data-promise":!!p.promise,"data-swiped":Zc,"data-removed":Fn,"data-visible":J2,"data-y-position":ey,"data-x-position":ty,"data-index":m,"data-front":K2,"data-swiping":Bn,"data-dismissible":Ta,"data-type":$t,"data-invert":ny,"data-swipe-out":qn,"data-swipe-direction":Re,"data-expanded":!!(j||S&&ie),style:{"--index":m,"--toasts-before":m,"--z-index":w.length-m,"--offset":`${Fn?Gc:Aa.current}px`,"--initial-height":S?"auto":`${Ca}px`,...R,...p.style},onDragEnd:()=>{Ea(!1),ne(null),Ra.current=null},onPointerDown:Z=>{Jc||!Ta||(uh.current=new Date,Vr(Aa.current),Z.target.setPointerCapture(Z.pointerId),Z.target.tagName!=="BUTTON"&&(Ea(!0),Ra.current={x:Z.clientX,y:Z.clientY}))},onPointerUp:()=>{var Z,ce,xe,Mt;if(qn||!Ta)return;Ra.current=null;let Dt=Number(((Z=Fs.current)==null?void 0:Z.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Hn=Number(((ce=Fs.current)==null?void 0:ce.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Bs=new Date().getTime()-((xe=uh.current)==null?void 0:xe.getTime()),Ut=X==="x"?Dt:Hn,Wn=Math.abs(Ut)/Bs;if(Math.abs(Ut)>=H7||Wn>.11){Vr(Aa.current),(Mt=p.onDismiss)==null||Mt.call(p,p),Ze(X==="x"?Dt>0?"right":"left":Hn>0?"down":"up"),Vn(),wo(!0),jo(!1);return}Ea(!1),ne(null)},onPointerMove:Z=>{var ce,xe,Mt,Dt;if(!Ra.current||!Ta||((ce=window.getSelection())==null?void 0:ce.toString().length)>0)return;let Hn=Z.clientY-Ra.current.y,Bs=Z.clientX-Ra.current.x,Ut=(xe=e.swipeDirections)!=null?xe:Z7(te);!X&&(Math.abs(Bs)>1||Math.abs(Hn)>1)&&ne(Math.abs(Bs)>Math.abs(Hn)?"x":"y");let Wn={x:0,y:0};X==="y"?(Ut.includes("top")||Ut.includes("bottom"))&&(Ut.includes("top")&&Hn<0||Ut.includes("bottom")&&Hn>0)&&(Wn.y=Hn):X==="x"&&(Ut.includes("left")||Ut.includes("right"))&&(Ut.includes("left")&&Bs<0||Ut.includes("right")&&Bs>0)&&(Wn.x=Bs),(Math.abs(Wn.x)>0||Math.abs(Wn.y)>0)&&jo(!0),(Mt=Fs.current)==null||Mt.style.setProperty("--swipe-amount-x",`${Wn.x}px`),(Dt=Fs.current)==null||Dt.style.setProperty("--swipe-amount-y",`${Wn.y}px`)}},X2&&!p.jsx?E.createElement("button",{"aria-label":J,"data-disabled":Jc,"data-close-button":!0,onClick:Jc||!Ta?()=>{}:()=>{var Z;Vn(),(Z=p.onDismiss)==null||Z.call(p,p)},className:Bt(T==null?void 0:T.closeButton,(r=p==null?void 0:p.classNames)==null?void 0:r.closeButton)},(i=I==null?void 0:I.close)!=null?i:A7):null,p.jsx||g.isValidElement(p.title)?p.jsx?p.jsx:typeof p.title=="function"?p.title():p.title:E.createElement(E.Fragment,null,$t||p.icon||p.promise?E.createElement("div",{"data-icon":"",className:Bt(T==null?void 0:T.icon,(o=p==null?void 0:p.classNames)==null?void 0:o.icon)}
vendor: 5,893 bytes, line 376
376,p.promise||p.type==="loading"&&!p.icon?p.icon||sy():null,p.type!=="loading"?p.icon||(I==null?void 0:I[$t])||k7($t):null):null,E.createElement("div",{"data-content":"",className:Bt(T==null?void 0:T.content,(l=p==null?void 0:p.classNames)==null?void 0:l.content)},E.createElement("div",{"data-title":"",className:Bt(T==null?void 0:T.title,(c=p==null?void 0:p.classNames)==null?void 0:c.title)},typeof p.title=="function"?p.title():p.title),p.description?E.createElement("div",{"data-description":"",className:Bt(Q,Q2,T==null?void 0:T.description,(d=p==null?void 0:p.classNames)==null?void 0:d.description)},typeof p.description=="function"?p.description():p.description):null),g.isValidElement(p.cancel)?p.cancel:p.cancel&&Wo(p.cancel)?E.createElement("button",{"data-button":!0,"data-cancel":!0,style:p.cancelButtonStyle||O,onClick:Z=>{var ce,xe;Wo(p.cancel)&&Ta&&((xe=(ce=p.cancel).onClick)==null||xe.call(ce,Z),Vn())},className:Bt(T==null?void 0:T.cancelButton,(u=p==null?void 0:p.classNames)==null?void 0:u.cancelButton)},p.cancel.label):null,g.isValidElement(p.action)?p.action:p.action&&Wo(p.action)?E.createElement("button",{"data-button":!0,"data-action":!0,style:p.actionButtonStyle||H,onClick:Z=>{var ce,xe;Wo(p.action)&&((xe=(ce=p.action).onClick)==null||xe.call(ce,Z),!Z.defaultPrevented&&Vn())},className:Bt(T==null?void 0:T.actionButton,(f=p==null?void 0:p.classNames)==null?void 0:f.actionButton)},p.action.label):null))};function Hm(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function K7(e,t){let n={};return[e,t].forEach((s,r)=>{let i=r===1,o=i?"--mobile-offset":"--offset",l=i?B7:F7;function c(d){["top","right","bottom","left"].forEach(u=>{n[`${o}-${u}`]=typeof d=="number"?`${d}px`:d})}typeof s=="number"||typeof s=="string"?c(s):typeof s=="object"?["top","right","bottom","left"].forEach(d=>{s[d]===void 0?n[`${o}-${d}`]=l:n[`${o}-${d}`]=typeof s[d]=="number"?`${s[d]}px`:s[d]}):c(l)}),n}var J7=g.forwardRef(function(e,t){let{invert:n,position:s="bottom-right",hotkey:r=["altKey","KeyT"],expand:i,closeButton:o,className:l,offset:c,mobileOffset:d,theme:u="light",richColors:f,duration:h,style:p,visibleToasts:y=U7,toastOptions:v,dir:_=Hm(),gap:x=V7,loadingIcon:b,icons:m,containerAriaLabel:w="Notifications",pauseWhenPageIsHidden:j}=e,[k,N]=E.useState([]),C=E.useMemo(()=>Array.from(new Set([s].concat(k.filter(q=>q.position).map(q=>q.position)))),[k,s]),[R,O]=E.useState([]),[H,M]=E.useState(!1),[Q,z]=E.useState(!1),[te,W]=E.useState(u!=="system"?u:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),K=E.useRef(null),S=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),T=E.useRef(null),I=E.useRef(!1),J=E.useCallback(q=>{N(X=>{var ne;return(ne=X.find(Re=>Re.id===q.id))!=null&&ne.delete||dt.dismiss(q.id),X.filter(({id:Re})=>Re!==q.id)})},[]);return E.useEffect(()=>dt.subscribe(q=>{if(q.dismiss){N(X=>X.map(ne=>ne.id===q.id?{...ne,delete:!0}:ne));return}setTimeout(()=>{zx.flushSync(()=>{N(X=>{let ne=X.findIndex(Re=>Re.id===q.id);return ne!==-1?[...X.slice(0,ne),{...X[ne],...q},...X.slice(ne+1)]:[q,...X]})})})}),[]),E.useEffect(()=>{if(u!=="system"){W(u);return}if(u==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?W("dark"):W("light")),typeof window>"u")return;let q=window.matchMedia("(prefers-color-scheme: dark)");try{q.addEventListener("change",({matches:X})=>{W(X?"dark":"light")})}catch{q.addListener(({matches:ne})=>{try{W(ne?"dark":"light")}catch(Re){console.error(Re)}})}},[u]),E.useEffect(()=>{k.length<=1&&M(!1)},[k]),E.useEffect(()=>{let q=X=>{var ne,Re;r.every(Ze=>X[Ze]||X.code===Ze)&&(M(!0),(ne=K.current)==null||ne.focus()),X.code==="Escape"&&(document.activeElement===K.current||(Re=K.current)!=null&&Re.contains(document.activeElement))&&M(!1)};return document.addEventListener("keydown",q),()=>document.removeEventListener("keydown",q)},[r]),E.useEffect(()=>{if(K.current)return()=>{T.current&&(T.current.focus({preventScroll:!0}),T.current=null,I.current=!1)}},[K.current]),E.createElement("section",{ref:t,"aria-label":`${w} ${S}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},C.map((q,X)=>{var ne;let[Re,Ze]=q.split("-");return k.length?E.createElement("ol",{key:q,dir:_==="auto"?Hm():_,tabIndex:-1,ref:K,className:l,"data-sonner-toaster":!0,"data-theme":te,"data-y-position":Re,"data-lifted":H&&k.length>1&&!i,"data-x-position":Ze,style:{"--front-toast-height":`${((ne=R[0])==null?void 0:ne.height)||0}px`,"--width":`${q7}px`,"--gap":`${x}px`,...p,...K7(c,d)},onBlur:ie=>{I.current&&!ie.currentTarget.contains(ie.relatedTarget)&&(I.current=!1,T.current&&(T.current.focus({preventScroll:!0}),T.current=null))},onFocus:ie=>{ie.target instanceof HTMLElement&&ie.target.dataset.dismissible==="false"||I.current||(I.current=!0,T.current=ie.relatedTarget)},onMouseEnter:()=>M(!0),onMouseMove:()=>M(!0),onMouseLeave:()=>{Q||M(!1)},onDragEnd:()=>M(!1),onPointerDown:ie=>{ie.target instanceof HTMLElement&&ie.target.dataset.dismissible==="false"||z(!0)},onPointerUp:()=>z(!1)},k.filter(ie=>!ie.position&&X===0||ie.position===q).map((ie,Sa)=>{var Fn,Us;return E.createElement(G7,{key:ie.id,icons:m,index:Sa,toast:ie,defaultRichColors:f,duration:(Fn=v==null?void 0:v.duration)!=null?Fn:h,className:v==null?void 0:v.className,descriptionClassName:v==null?void 0:v.descriptionClassName,invert:n,visibleToasts:y,closeButton:(Us=v==null?void 0:v.closeButton)!=null?Us:o,interacting:Q,position:q,style:v==null?void 0:v.style,unstyled:v==null?void 0:v.unstyled,classNames:v==null?void 0:v.classNames,cancelButtonStyle:v==null?void 0:v.cancelButtonStyle,actionButtonStyle:v==null?void 0:v.actionButtonStyle,removeToast:J,toasts:k.filter(
vendor: 6,693 bytes, line 376
376Bn=>Bn.position==ie.position),heights:R.filter(Bn=>Bn.position==ie.position),setHeights:O,expandByDefault:i,gap:x,loadingIcon:b,expanded:H,pauseWhenPageIsHidden:j,swipeDirections:e.swipeDirections})})):null}))});const Y7=({...e})=>{const{theme:t="system"}=j7();return a.jsx(J7,{theme:t,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e})},Q7=["top","right","bottom","left"],Ps=Math.min,xt=Math.max,Yl=Math.round,Zo=Math.floor,vn=e=>({x:e,y:e}),X7={left:"right",right:"left",bottom:"top",top:"bottom"},ej={start:"end",end:"start"};function Yu(e,t,n){return xt(e,Ps(t,n))}function Ln(e,t){return typeof e=="function"?e(t):e}function Mn(e){return e.split("-")[0]}function Ur(e){return e.split("-")[1]}function Tp(e){return e==="x"?"y":"x"}function Ap(e){return e==="y"?"height":"width"}const tj=new Set(["top","bottom"]);function gn(e){return tj.has(Mn(e))?"y":"x"}function Rp(e){return Tp(gn(e))}function nj(e,t,n){n===void 0&&(n=!1);const s=Ur(e),r=Rp(e),i=Ap(r);let o=r==="x"?s===(n?"end":"start")?"right":"left":s==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(o=Ql(o)),[o,Ql(o)]}function sj(e){const t=Ql(e);return[Qu(e),t,Qu(t)]}function Qu(e){return e.replace(/start|end/g,t=>ej[t])}const Wm=["left","right"],Zm=["right","left"],aj=["top","bottom"],rj=["bottom","top"];function ij(e,t,n){switch(e){case"top":case"bottom":return n?t?Zm:Wm:t?Wm:Zm;case"left":case"right":return t?aj:rj;default:return[]}}function oj(e,t,n,s){const r=Ur(e);let i=ij(Mn(e),n==="start",s);return r&&(i=i.map(o=>o+"-"+r),t&&(i=i.concat(i.map(Qu)))),i}function Ql(e){return e.replace(/left|right|bottom|top/g,t=>X7[t])}function lj(e){return{top:0,right:0,bottom:0,left:0,...e}}function Fv(e){return typeof e!="number"?lj(e):{top:e,right:e,bottom:e,left:e}}function Xl(e){const{x:t,y:n,width:s,height:r}=e;return{width:s,height:r,top:n,left:t,right:t+s,bottom:n+r,x:t,y:n}}function Gm(e,t,n){let{reference:s,floating:r}=e;const i=gn(t),o=Rp(t),l=Ap(o),c=Mn(t),d=i==="y",u=s.x+s.width/2-r.width/2,f=s.y+s.height/2-r.height/2,h=s[l]/2-r[l]/2;let p;switch(c){case"top":p={x:u,y:s.y-r.height};break;case"bottom":p={x:u,y:s.y+s.height};break;case"right":p={x:s.x+s.width,y:f};break;case"left":p={x:s.x-r.width,y:f};break;default:p={x:s.x,y:s.y}}switch(Ur(t)){case"start":p[o]-=h*(n&&d?-1:1);break;case"end":p[o]+=h*(n&&d?-1:1);break}return p}const cj=async(e,t,n)=>{const{placement:s="bottom",strategy:r="absolute",middleware:i=[],platform:o}=n,l=i.filter(Boolean),c=await(o.isRTL==null?void 0:o.isRTL(t));let d=await o.getElementRects({reference:e,floating:t,strategy:r}),{x:u,y:f}=Gm(d,s,c),h=s,p={},y=0;for(let v=0;v<l.length;v++){const{name:_,fn:x}=l[v],{x:b,y:m,data:w,reset:j}=await x({x:u,y:f,initialPlacement:s,placement:h,strategy:r,middlewareData:p,rects:d,platform:o,elements:{reference:e,floating:t}});u=b??u,f=m??f,p={...p,[_]:{...p[_],...w}},j&&y<=50&&(y++,typeof j=="object"&&(j.placement&&(h=j.placement),j.rects&&(d=j.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:r}):j.rects),{x:u,y:f}=Gm(d,h,c)),v=-1)}return{x:u,y:f,placement:h,strategy:r,middlewareData:p}};async function Zi(e,t){var n;t===void 0&&(t={});const{x:s,y:r,platform:i,rects:o,elements:l,strategy:c}=e,{boundary:d="clippingAncestors",rootBoundary:u="viewport",elementContext:f="floating",altBoundary:h=!1,padding:p=0}=Ln(t,e),y=Fv(p),_=l[h?f==="floating"?"reference":"floating":f],x=Xl(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(_)))==null||n?_:_.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:d,rootBoundary:u,strategy:c})),b=f==="floating"?{x:s,y:r,width:o.floating.width,height:o.floating.height}:o.reference,m=await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),w=await(i.isElement==null?void 0:i.isElement(m))?await(i.getScale==null?void 0:i.getScale(m))||{x:1,y:1}:{x:1,y:1},j=Xl(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:b,offsetParent:m,strategy:c}):b);return{top:(x.top-j.top+y.top)/w.y,bottom:(j.bottom-x.bottom+y.bottom)/w.y,left:(x.left-j.left+y.left)/w.x,right:(j.right-x.right+y.right)/w.x}}const dj=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:s,placement:r,rects:i,platform:o,elements:l,middlewareData:c}=t,{element:d,padding:u=0}=Ln(e,t)||{};if(d==null)return{};const f=Fv(u),h={x:n,y:s},p=Rp(r),y=Ap(p),v=await o.getDimensions(d),_=p==="y",x=_?"top":"left",b=_?"bottom":"right",m=_?"clientHeight":"clientWidth",w=i.reference[y]+i.reference[p]-h[p]-i.floating[y],j=h[p]-i.reference[p],k=await(o.getOffsetParent==null?void 0:o.getOffsetParent(d));let N=k?k[m]:0;(!N||!await(o.isElement==null?void 0:o.isElement(k)))&&(N=l.floating[m]||i.floating[y]);const C=w/2-j/2,R=N/2-v[y]/2-1,O=Ps(f[x],R),H=Ps(f[b],R),M=O,Q=N-v[y]-H,z=N/2-v[y]/2+C,te=Yu(M,z,Q),W=!c.arrow&&Ur(r)!=null&&z!==te&&i.reference[y]/2-(z<M?O:H)-v[y]/2<0,K=W?z<M?z-M:z-Q:0;return{[p]:h[p]+K,data:{[p]:te,centerOffset:z-te-K,...W&&{alignmentOffset:K}},reset:W}}}),uj=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,s;const{placement:r,middlewareData:i,rects:o,initialPlacement:l,platform:c,elements:d}=t,{mainAxis:u=!0,crossAxis:f=!0,fallbackPlacements:h,fallbackStrategy:p="bestFit",fallbackAxisSideDirection:y="none",flipAlignment:v=!0,..._}=Ln(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const x=Mn(r),b=gn(l),m=Mn(l)===l,w=await(c.isRTL==null?void 0:c.isRTL(d.floating)),j=h||(m||!v?[Ql(l)]:sj(l)),k=y!=="none";!h&&k&&j.push(...oj(l,v,y,w));const N=[l,...j],C=await Zi(t,_),R=[];let O=((s=i.flip)==null?void 0:s.overflows)||[];if(u&&R.push(C[x]),f){const z=nj(r,o,w);R.push(C[z[0]],C[z[1]])}if(O=[...O,{placement:r,overflows:R}],!R.every(z=>z<=0)){var H,M;const z=(((H=i.flip)==null?void 0:H.index)||0)+1,te=N[z];if(te&&(!(f==="alignment"?b!==gn(te):!1)||O.every(S=>S.overflows[0]>0&&gn(S.placement)===b)))return{data:{index:z,overflows:O},reset:{placement:te}};let W=(M=O.filter(K=>K.overflows[0]<=0).sort((K,S)=>K.overflows[1]-S.overflows[1])[0])==null?void 0:M.placement;if(!W)switch(p){case"bestFit":{var Q;const K=(Q=O.filter(S=>{if(k){const T=gn(S.placement);return T===b||T==="y"}return!0}).map(S=>[S.placement,S.overflows.filter(T=>T>0).reduce((T,I)=>T+I,0)]).sort((S,T)=>S[1]-T[1])[0])==null?void 0:Q[0];
vendor: 17,978 bytes, line 376
376K&&(W=K);break}case"initialPlacement":W=l;break}if(r!==W)return{reset:{placement:W}}}return{}}}};function Km(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function Jm(e){return Q7.some(t=>e[t]>=0)}const fj=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:s="referenceHidden",...r}=Ln(e,t);switch(s){case"referenceHidden":{const i=await Zi(t,{...r,elementContext:"reference"}),o=Km(i,n.reference);return{data:{referenceHiddenOffsets:o,referenceHidden:Jm(o)}}}case"escaped":{const i=await Zi(t,{...r,altBoundary:!0}),o=Km(i,n.floating);return{data:{escapedOffsets:o,escaped:Jm(o)}}}default:return{}}}}},Bv=new Set(["left","top"]);async function pj(e,t){const{placement:n,platform:s,elements:r}=e,i=await(s.isRTL==null?void 0:s.isRTL(r.floating)),o=Mn(n),l=Ur(n),c=gn(n)==="y",d=Bv.has(o)?-1:1,u=i&&c?-1:1,f=Ln(t,e);let{mainAxis:h,crossAxis:p,alignmentAxis:y}=typeof f=="number"?{mainAxis:f,crossAxis:0,alignmentAxis:null}:{mainAxis:f.mainAxis||0,crossAxis:f.crossAxis||0,alignmentAxis:f.alignmentAxis};return l&&typeof y=="number"&&(p=l==="end"?y*-1:y),c?{x:p*u,y:h*d}:{x:h*d,y:p*u}}const hj=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,s;const{x:r,y:i,placement:o,middlewareData:l}=t,c=await pj(t,e);return o===((n=l.offset)==null?void 0:n.placement)&&(s=l.arrow)!=null&&s.alignmentOffset?{}:{x:r+c.x,y:i+c.y,data:{...c,placement:o}}}}},mj=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:s,placement:r}=t,{mainAxis:i=!0,crossAxis:o=!1,limiter:l={fn:_=>{let{x,y:b}=_;return{x,y:b}}},...c}=Ln(e,t),d={x:n,y:s},u=await Zi(t,c),f=gn(Mn(r)),h=Tp(f);let p=d[h],y=d[f];if(i){const _=h==="y"?"top":"left",x=h==="y"?"bottom":"right",b=p+u[_],m=p-u[x];p=Yu(b,p,m)}if(o){const _=f==="y"?"top":"left",x=f==="y"?"bottom":"right",b=y+u[_],m=y-u[x];y=Yu(b,y,m)}const v=l.fn({...t,[h]:p,[f]:y});return{...v,data:{x:v.x-n,y:v.y-s,enabled:{[h]:i,[f]:o}}}}}},gj=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:s,placement:r,rects:i,middlewareData:o}=t,{offset:l=0,mainAxis:c=!0,crossAxis:d=!0}=Ln(e,t),u={x:n,y:s},f=gn(r),h=Tp(f);let p=u[h],y=u[f];const v=Ln(l,t),_=typeof v=="number"?{mainAxis:v,crossAxis:0}:{mainAxis:0,crossAxis:0,...v};if(c){const m=h==="y"?"height":"width",w=i.reference[h]-i.floating[m]+_.mainAxis,j=i.reference[h]+i.reference[m]-_.mainAxis;p<w?p=w:p>j&&(p=j)}if(d){var x,b;const m=h==="y"?"width":"height",w=Bv.has(Mn(r)),j=i.reference[f]-i.floating[m]+(w&&((x=o.offset)==null?void 0:x[f])||0)+(w?0:_.crossAxis),k=i.reference[f]+i.reference[m]+(w?0:((b=o.offset)==null?void 0:b[f])||0)-(w?_.crossAxis:0);y<j?y=j:y>k&&(y=k)}return{[h]:p,[f]:y}}}},bj=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,s;const{placement:r,rects:i,platform:o,elements:l}=t,{apply:c=()=>{},...d}=Ln(e,t),u=await Zi(t,d),f=Mn(r),h=Ur(r),p=gn(r)==="y",{width:y,height:v}=i.floating;let _,x;f==="top"||f==="bottom"?(_=f,x=h===(await(o.isRTL==null?void 0:o.isRTL(l.floating))?"start":"end")?"left":"right"):(x=f,_=h==="end"?"top":"bottom");const b=v-u.top-u.bottom,m=y-u.left-u.right,w=Ps(v-u[_],b),j=Ps(y-u[x],m),k=!t.middlewareData.shift;let N=w,C=j;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(C=m),(s=t.middlewareData.shift)!=null&&s.enabled.y&&(N=b),k&&!h){const O=xt(u.left,0),H=xt(u.right,0),M=xt(u.top,0),Q=xt(u.bottom,0);p?C=y-2*(O!==0||H!==0?O+H:xt(u.left,u.right)):N=v-2*(M!==0||Q!==0?M+Q:xt(u.top,u.bottom))}await c({...t,availableWidth:C,availableHeight:N});const R=await o.getDimensions(l.floating);return y!==R.width||v!==R.height?{reset:{rects:!0}}:{}}}};function Pc(){return typeof window<"u"}function Fr(e){return qv(e)?(e.nodeName||"").toLowerCase():"#document"}function wt(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function _n(e){var t;return(t=(qv(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function qv(e){return Pc()?e instanceof Node||e instanceof wt(e).Node:!1}function an(e){return Pc()?e instanceof Element||e instanceof wt(e).Element:!1}function yn(e){return Pc()?e instanceof HTMLElement||e instanceof wt(e).HTMLElement:!1}function Ym(e){return!Pc()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof wt(e).ShadowRoot}const xj=new Set(["inline","contents"]);function vo(e){const{overflow:t,overflowX:n,overflowY:s,display:r}=rn(e);return/auto|scroll|overlay|hidden|clip/.test(t+s+n)&&!xj.has(r)}const vj=new Set(["table","td","th"]);function yj(e){return vj.has(Fr(e))}const _j=[":popover-open",":modal"];function Oc(e){return _j.some(t=>{try{return e.matches(t)}catch{return!1}})}const wj=["transform","translate","scale","rotate","perspective"],jj=["transform","translate","scale","rotate","perspective","filter"],kj=["paint","layout","strict","content"];function Pp(e){const t=Op(),n=an(e)?rn(e):e;return wj.some(s=>n[s]?n[s]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||jj.some(s=>(n.willChange||"").includes(s))||kj.some(s=>(n.contain||"").includes(s))}function Nj(e){let t=Os(e);for(;yn(t)&&!Rr(t);){if(Pp(t))return t;if(Oc(t))return null;t=Os(t)}return null}function Op(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const $j=new Set(["html","body","#document"]);function Rr(e){return $j.has(Fr(e))}function rn(e){return wt(e).getComputedStyle(e)}function zc(e){return an(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Os(e){if(Fr(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Ym(e)&&e.host||_n(e);return Ym(t)?t.host:t}function Vv(e){const t=Os(e);return Rr(t)?e.ownerDocument?e.ownerDocument.body:e.body:yn(t)&&vo(t)?t:Vv(t)}function Gi(e,t,n){var s;t===void 0&&(t=[]),n===void 0&&(n=!0);const r=Vv(e),i=r===((s=e.ownerDocument)==null?void 0:s.body),o=wt(r);if(i){const l=Xu(o);return t.concat(o,o.visualViewport||[],vo(r)?r:[],l&&n?Gi(l):[])}return t.concat(r,Gi(r,[],n))}function Xu(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Hv(e){const t=rn(e);let n=parseFloat(t.width)||0,s=parseFloat(t.height)||0;const r=yn(e),i=r?e.offsetWidth:n,o=r?e.offsetHeight:s,l=Yl(n)!==i||Yl(s)!==o;return l&&(n=i,s=o),{width:n,height:s,$:l}}function zp(e){return an(e)?e:e.contextElement}function mr(e){const t=zp(e);if(!yn(t))return vn(1);const n=t.getBoundingClientRect(),{width:s,height:r,$:i}=Hv(t);let o=(i?Yl(n.width):n.width)/s,l=(i?Yl(n.height):n.height)/r;return(!o||!Number.isFinite(o))&&(o=1),(!l||!Number.isFinite(l))&&(l=1),{x:o,y:l}}const Sj=vn(0);function Wv(e){const t=wt(e);return!Op()||!t.visualViewport?Sj:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function Ej(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==wt(e)?!1:t}function wa(e,t,n,s){t===void 0&&(t=!1),n===void 0&&(n=!1);const r=e.getBoundingClientRect(),i=zp(e);let o=vn(1);t&&(s?an(s)&&(o=mr(s)):o=mr(e));const l=Ej(i,n,s)?Wv(i):vn(0);let c=(r.left+l.x)/o.x,d=(r.top+l.y)/o.y,u=r.width/o.x,f=r.height/o.y;if(i){const h=wt(i),p=s&&an(s)?wt(s):s;let y=h,v=Xu(y);for(;v&&s&&p!==y;){const _=mr(v),x=v.getBoundingClientRect(),b=rn(v),m=x.left+(v.clientLeft+parseFloat(b.paddingLeft))*_.x,w=x.top+(v.clientTop+parseFloat(b.paddingTop))*_.y;c*=_.x,d*=_.y,u*=_.x,f*=_.y,c+=m,d+=w,y=wt(v),v=Xu(y)}}return Xl({width:u,height:f,x:c,y:d})}function Ip(e,t){const n=zc(e).scrollLeft;return t?t.left+n:wa(_n(e)).left+n}function Zv(e,t,n){n===void 0&&(n=!1);const s=e.getBoundingClientRect(),r=s.left+t.scrollLeft-(n?0:Ip(e,s)),i=s.top+t.scrollTop;return{x:r,y:i}}function Cj(e){let{elements:t,rect:n,offsetParent:s,strategy:r}=e;const i=r==="fixed",o=_n(s),l=t?Oc(t.floating):!1;if(s===o||l&&i)return n;let c={scrollLeft:0,scrollTop:0},d=vn(1);const u=vn(0),f=yn(s);if((f||!f&&!i)&&((Fr(s)!=="body"||vo(o))&&(c=zc(s)),yn(s))){const p=wa(s);d=mr(s),u.x=p.x+s.clientLeft,u.y=p.y+s.clientTop}const h=o&&!f&&!i?Zv(o,c,!0):vn(0);return{width:n.width*d.x,height:n.height*d.y,x:n.x*d.x-c.scrollLeft*d.x+u.x+h.x,y:n.y*d.y-c.scrollTop*d.y+u.y+h.y}}function Tj(e){return Array.from(e.getClientRects())}function Aj(e){const t=_n(e),n=zc(e),s=e.ownerDocument.body,r=xt(t.scrollWidth,t.clientWidth,s.scrollWidth,s.clientWidth),i=xt(t.scrollHeight,t.clientHeight,s.scrollHeight,s.clientHeight);let o=-n.scrollLeft+Ip(e);const l=-n.scrollTop;return rn(s).direction==="rtl"&&(o+=xt(t.clientWidth,s.clientWidth)-r),{width:r,height:i,x:o,y:l}}function Rj(e,t){const n=wt(e),s=_n(e),r=n.visualViewport;let i=s.clientWidth,o=s.clientHeight,l=0,c=0;if(r){i=r.width,o=r.height;const d=Op();(!d||d&&t==="fixed")&&(l=r.offsetLeft,c=r.offsetTop)}return{width:i,height:o,x:l,y:c}}const Pj=new Set(["absolute","fixed"]);function Oj(e,t){const n=wa(e,!0,t==="fixed"),s=n.top+e.clientTop,r=n.left+e.clientLeft,i=yn(e)?mr(e):vn(1),o=e.clientWidth*i.x,l=e.clientHeight*i.y,c=r*i.x,d=s*i.y;return{width:o,height:l,x:c,y:d}}function Qm(e,t,n){let s;if(t==="viewport")s=Rj(e,n);else if(t==="document")s=Aj(_n(e));else if(an(t))s=Oj(t,n);else{const r=Wv(e);s={x:t.x-r.x,y:t.y-r.y,width:t.width,height:t.height}}return Xl(s)}function Gv(e,t){const n=Os(e);return n===t||!an(n)||Rr(n)?!1:rn(n).position==="fixed"||Gv(n,t)}function zj(e,t){const n=t.get(e);if(n)return n;let s=Gi(e,[],!1).filter(l=>an(l)&&Fr(l)!=="body"),r=null;const i=rn(e).position==="fixed";let o=i?Os(e):e;for(;an(o)&&!Rr(o);){const l=rn(o),c=Pp(o);!c&&l.position==="fixed"&&(r=null),(i?!c&&!r:!c&&l.position==="static"&&!!r&&Pj.has(r.position)||vo(o)&&!c&&Gv(e,o))?s=s.filter(u=>u!==o):r=l,o=Os(o)}return t.set(e,s),s}function Ij(e){let{element:t,boundary:n,rootBoundary:s,strategy:r}=e;const o=[...n==="clippingAncestors"?Oc(t)?[]:zj(t,this._c):[].concat(n),s],l=o[0],c=o.reduce((d,u)=>{const f=Qm(t,u,r);return d.top=xt(f.top,d.top),d.right=Ps(f.right,d.right),d.bottom=Ps(f.bottom,d.bottom),d.left=xt(f.left,d.left),d},Qm(t,l,r));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function Lj(e){const{width:t,height:n}=Hv(e);return{width:t,height:n}}function Mj(e,t,n){const s=yn(t),r=_n(t),i=n==="fixed",o=wa(e,!0,i,t);let l={scrollLeft:0,scrollTop:0};const c=vn(0);function d(){c.x=Ip(r)}if(s||!s&&!i)if((Fr(t)!=="body"||vo(r))&&(l=zc(t)),s){const p=wa(t,!0,i,t);c.x=p.x+t.clientLeft,c.y=p.y+t.clientTop}else r&&d();i&&!s&&r&&d();const u=r&&!s&&!i?Zv(r,l):vn(0),f=o.left+l.scrollLeft-c.x-u.x,h=o.top+l.scrollTop-c.y-u.y;return{x:f,y:h,width:o.width,height:o.height}}function Pd(e){return rn(e).position==="static"}function Xm(e,t){if(!yn(e)||rn(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return _n(e)===n&&(n=n.ownerDocument.body),n}function Kv(e,t){const n=wt(e);if(Oc(e))return n;if(!yn(e)){let r=Os(e);for(;r&&!Rr(r);){if(an(r)&&!Pd(r))return r;r=Os(r)}return n}let s=Xm(e,t);for(;s&&yj(s)&&Pd(s);)s=Xm(s,t);return s&&Rr(s)&&Pd(s)&&!Pp(s)?n:s||Nj(e)||n}const Dj=async function(e){const t=this.getOffsetParent||Kv,n=this.getDimensions,s=await n(e.floating);return{reference:Mj(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:s.width,height:s.height}}};function Uj(e){return rn(e).direction==="rtl"}const Fj={convertOffsetParentRelativeRectToViewportRelativeRect:Cj,getDocumentElement:_n,getClippingRect:Ij,getOffsetParent:Kv,getElementRects:Dj,getClientRects:Tj,getDimensions:Lj,getScale:mr,isElement:an,isRTL:Uj};function Jv(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Bj(e,t){let n=null,s;const r=_n(e);function i(){var l;clearTimeout(s),(l=n)==null||l.disconnect(),n=null}function o(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),i();const d=e.getBoundingClientRect(),{left:u,top:f,width:h,height:p}=d;if(l||t(),!h||!p)return;const y=Zo(f),v=Zo(r.clientWidth-(u+h)),_=Zo(r.clientHeight-(f+p)),x=Zo(u),m={rootMargin:-y+"px "+-v+"px "+-_+"px "+-x+"px",threshold:xt(0,Ps(1,c))||1};let w=!0;function j(k){const N=k[0].intersectionRatio;if(N!==c){if(!w)return o();N?o(!1,N):s=setTimeout(()=>{o(!1,1e-7)},1e3)}N===1&&!Jv(d,e.getBoundingClientRect())&&o(),w=!1}try{n=new IntersectionObserver(j,{...m,root:r.ownerDocument})}catch{n=new IntersectionObserver(j,m)}n.observe(e)}return o(!0),i}function qj(e,t,n,s){s===void 0&&(s={});const{ancestorScroll:r=!0,ancestorResize:i=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=s,d=zp(e),u=r||i?[...d?Gi(d):[],...Gi(t)]:[];u.forEach(x=>{r&&x.addEventListener("scroll",n,{passive:!0}),i&&x.addEventListener("resize",n)});const f=d&&l?Bj(d,n):null;let h=-1,p=null;o&&(p=new ResizeObserver(x=>{let[b]=x;b&&b.target===d&&p&&(p.unobserve(t),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var m;(m=p)==null||m.observe(t)})),n()}),d&&!c&&p.observe(d),p.observe(t));let y,v=c?wa(e):null;c&&_();function _(){const x=wa(e);v&&!Jv(v,x)&&n(),v=x,y=requestAnimationFrame(_)}return n(),()=>{var x;u.forEach(b=>{r&&b.removeEventListener("scroll",n),i&&b.removeEventListener("resize",n)}),f==null||f(),(x=p)==null||x.disconnect(),p=null,c&&cancelAnimationFrame(y)}}const Vj=hj,Hj=mj,Wj=uj,Zj=bj,Gj=fj,e0=dj,Kj=gj,Jj=(e,t,n)=>{const s=new Map,r={platform:Fj,...n},i={...r.platform,_c:s};return cj(e,t,{...r,platform:i})};var Yj=typeof document<"u",Qj=function(){},_l=Yj?g.useLayoutEffect:Qj;function ec(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,s,r;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(s=n;s--!==0;)if(!ec(e[s],t[s]))return!1;return!0}if(r=Object.keys(e),n=r.length,n!==Object.keys(t).length)return!1;for(s=n;s--!==0;)if(!{}.hasOwnProperty.call(t,r[s]))return!1;for(s=n;s--!==0;){const i=r[s];if(!(i==="_owner"&&e.$$typeof)&&!ec(e[i],t[i]))return!1}return!0}return e!==e&&t!==t}function Yv(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function t0(e,t){const n=Yv(e);return Math.round(t*n)/n}function Od(e){const t=g.useRef(e);return _l(()=>{t.current=e}),t}function Xj(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:s=[],platform:r,elements:{reference:i,floating:o}={},transform:l=!0,whileElementsMounted:c,open:d}=e,[u,f]=g.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[h,p]=g.useState(s);ec(h,s)||p(s);const[y,v]=g.useState(null),[_,x]=g.useState(null),b=g.useCallback(S=>{S!==k.current&&(k.current=S,v(S))},[]),m=g.useCallback(S=>{S!==N.current&&(N.current=S,x(S))},[]),w=i||y,j=o||_,k=g.useRef(null),N=g.useRef(null),C=g.useRef(u),R=c!=null,O=Od(c),H=Od(r),M=Od(d),Q=g.useCallback(()=>{if(!k.current||!N.current)return;const S={placement:t,strategy:n,middleware:h};H.current&&(S.platform=H.current),Jj(k.current,N.current,S).then(T=>{const I={...T,isPositioned:M.current!==!1};z.current&&!ec(C.current,I)&&(C.current=I,Lr.flushSync(()=>{f(I)}))})},[h,t,n,H,M]);_l(()=>{d===!1&&C.current.isPositioned&&(C.current.isPositioned=!1,f(S=>({...S,isPositioned:!1})))},[d]);const z=g.useRef(!1);_l(()=>(z.current=!0,()=>{z.current=!1}),[]),_l(()=>{if(w&&(k.current=w),j&&(N.current=j),w&&j){if(O.current)return O.current(w,j,Q);Q()}},[w,j,Q,O,R]);const te=g.useMemo(()=>({reference:k,floating:N,setReference:b,setFloating:m}),[b,m]),W=g.useMemo(()=>({reference:w,floating:j}),[w,j]),K=g.useMemo(()=>{const S={position:n,left:0,top:0};if(!W.floating)return S;const T=t0(W.floating,u.x),I=t0(W.floating,u.y);return l?{...S,transform:"translate("+T+"px, "+I+"px)",...Yv(W.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:T,top:I}},[n,l,W.floating,u.x,u.y]);return g.useMemo(()=>({...u,update:Q,refs:te,elements:W,floatingStyles:K}),[u,Q,te,W,K])}const e3=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:s,padding:r}=typeof e=="function"?e(n):e;return s&&t(s)?s.current!=null?e0({element:s.current,padding:r}).fn(n):{}:s?e0({element:s,padding:r}).fn(n):{}}}},t3=(e,t)=>({...Vj(e),options:[e,t]}),n3=(e,t)=>({...Hj(e),options:[e,t]}),s3=(e,t)=>({...Kj(e),options:[e,t]}),a3=(e,t)=>({...Wj(e),options:[e,t]}),r3=(e,t)=>({...Zj(e),options:[e,t]}),i3=(e,t)=>({...Gj(e),options:[e,t]}),o3=(e,t)=>({...e3(e),options:[e,t]});var l3="Arrow",Qv=g.forwardRef((e,t)=>{const{children:n,width:s=10,height:r=5,...i}=e;return a.jsx(Ee.svg,{...i,ref:t,width:s,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:a.jsx("polygon",{points:"0,0 30,0 15,10"})})});Qv.displayName=l3;var c3=Qv;function Lp(e){const[t,n]=g.useState(void 0);return Rs(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const s=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const i=r[0];let o,l;if("borderBoxSize"in i){const c=i.borderBoxSize,d=Array.isArray(c)?c[0]:c;o=d.inlineSize,l=d.blockSize}else o=e.offsetWidth,l=e.offsetHeight;n({width:o,height:l})});return s.observe(e,{box:"border-box"}),()=>s.unobserve(e)}else n(void 0)},[e]),t}var Xv="Popper",[e1,t1]=Na(Xv),[Pve,n1]=e1(Xv),s1="PopperAnchor",a1=g.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:s,...r}=e,i=n1(s1,n),o=g.useRef(null),l=rt(t,o);return g.useEffect(()=>{i.onAnchorChange((s==null?void 0:s.current)||o.current)}),s?null:a.jsx(Ee.div,{...r,ref:l})});a1.displayName=s1;var Mp="PopperContent",[d3,u3]=e1(Mp),r1=g.forwardRef((e,t)=>{var ie,Sa,Fn,Us,Bn,Ea;const{__scopePopper:n,side:s="bottom",sideOffset:r=0,align:i="center",alignOffset:o=0,arrowPadding:l=0,avoidCollisions:c=!0,collisionBoundary:d=[],collisionPadding:u=0,sticky:f="partial",hideWhenDetached:h=!1,updatePositionStrategy:p="optimized",onPlaced:y,...v}=e,_=n1(Mp,n),[x,b]=g.useState(null),m=rt(t,qn=>b(qn)),[w,j]=g.useState(null),k=Lp(w),N=(k==null?void 0:k.width)??0,C=(k==null?void 0:k.height)??0,R=s+(i!=="center"?"-"+i:""),O=typeof u=="number"?u:{top:0,right:0,bottom:0,left:0,...u},H=Array.isArray(d)?d:[d],M=H.length>
vendor: 4,866 bytes, line 376
3760,Q={padding:O,boundary:H.filter(p3),altBoundary:M},{refs:z,floatingStyles:te,placement:W,isPositioned:K,middlewareData:S}=Xj({strategy:"fixed",placement:R,whileElementsMounted:(...qn)=>qj(...qn,{animationFrame:p==="always"}),elements:{reference:_.anchor},middleware:[t3({mainAxis:r+C,alignmentAxis:o}),c&&n3({mainAxis:!0,crossAxis:!1,limiter:f==="partial"?s3():void 0,...Q}),c&&a3({...Q}),r3({...Q,apply:({elements:qn,rects:wo,availableWidth:Zc,availableHeight:jo})=>{const{width:Gc,height:Vr}=wo.reference,Ca=qn.floating.style;Ca.setProperty("--radix-popper-available-width",`${Zc}px`),Ca.setProperty("--radix-popper-available-height",`${jo}px`),Ca.setProperty("--radix-popper-anchor-width",`${Gc}px`),Ca.setProperty("--radix-popper-anchor-height",`${Vr}px`)}}),w&&o3({element:w,padding:l}),h3({arrowWidth:N,arrowHeight:C}),h&&i3({strategy:"referenceHidden",...Q})]}),[T,I]=l1(W),J=As(y);Rs(()=>{K&&(J==null||J())},[K,J]);const q=(ie=S.arrow)==null?void 0:ie.x,X=(Sa=S.arrow)==null?void 0:Sa.y,ne=((Fn=S.arrow)==null?void 0:Fn.centerOffset)!==0,[Re,Ze]=g.useState();return Rs(()=>{x&&Ze(window.getComputedStyle(x).zIndex)},[x]),a.jsx("div",{ref:z.setFloating,"data-radix-popper-content-wrapper":"",style:{...te,transform:K?te.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Re,"--radix-popper-transform-origin":[(Us=S.transformOrigin)==null?void 0:Us.x,(Bn=S.transformOrigin)==null?void 0:Bn.y].join(" "),...((Ea=S.hide)==null?void 0:Ea.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:a.jsx(d3,{scope:n,placedSide:T,onArrowChange:j,arrowX:q,arrowY:X,shouldHideArrow:ne,children:a.jsx(Ee.div,{"data-side":T,"data-align":I,...v,ref:m,style:{...v.style,animation:K?void 0:"none"}})})})});r1.displayName=Mp;var i1="PopperArrow",f3={top:"bottom",right:"left",bottom:"top",left:"right"},o1=g.forwardRef(function(t,n){const{__scopePopper:s,...r}=t,i=u3(i1,s),o=f3[i.placedSide];return a.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:a.jsx(c3,{...r,ref:n,style:{...r.style,display:"block"}})})});o1.displayName=i1;function p3(e){return e!==null}var h3=e=>({name:"transformOrigin",options:e,fn(t){var _,x,b;const{placement:n,rects:s,middlewareData:r}=t,o=((_=r.arrow)==null?void 0:_.centerOffset)!==0,l=o?0:e.arrowWidth,c=o?0:e.arrowHeight,[d,u]=l1(n),f={start:"0%",center:"50%",end:"100%"}[u],h=(((x=r.arrow)==null?void 0:x.x)??0)+l/2,p=(((b=r.arrow)==null?void 0:b.y)??0)+c/2;let y="",v="";return d==="bottom"?(y=o?f:`${h}px`,v=`${-c}px`):d==="top"?(y=o?f:`${h}px`,v=`${s.floating.height+c}px`):d==="right"?(y=`${-c}px`,v=o?f:`${p}px`):d==="left"&&(y=`${s.floating.width+c}px`,v=o?f:`${p}px`),{data:{x:y,y:v}}}});function l1(e){const[t,n="center"]=e.split("-");return[t,n]}var m3=a1,g3=r1,b3=o1,[Ic,Ove]=Na("Tooltip",[t1]),Dp=t1(),c1="TooltipProvider",x3=700,n0="tooltip.open",[v3,d1]=Ic(c1),u1=e=>{const{__scopeTooltip:t,delayDuration:n=x3,skipDelayDuration:s=300,disableHoverableContent:r=!1,children:i}=e,o=g.useRef(!0),l=g.useRef(!1),c=g.useRef(0);return g.useEffect(()=>{const d=c.current;return()=>window.clearTimeout(d)},[]),a.jsx(v3,{scope:t,isOpenDelayedRef:o,delayDuration:n,onOpen:g.useCallback(()=>{window.clearTimeout(c.current),o.current=!1},[]),onClose:g.useCallback(()=>{window.clearTimeout(c.current),c.current=window.setTimeout(()=>o.current=!0,s)},[s]),isPointerInTransitRef:l,onPointerInTransitChange:g.useCallback(d=>{l.current=d},[]),disableHoverableContent:r,children:i})};u1.displayName=c1;var f1="Tooltip",[zve,Lc]=Ic(f1),ef="TooltipTrigger",y3=g.forwardRef((e,t)=>{const{__scopeTooltip:n,...s}=e,r=Lc(ef,n),i=d1(ef,n),o=Dp(n),l=g.useRef(null),c=rt(t,l,r.onTriggerChange),d=g.useRef(!1),u=g.useRef(!1),f=g.useCallback(()=>d.current=!1,[]);return g.useEffect(()=>()=>document.removeEventListener("pointerup",f),[f]),a.jsx(m3,{asChild:!0,...o,children:a.jsx(Ee.button,{"aria-describedby":r.open?r.contentId:void 0,"data-state":r.stateAttribute,...s,ref:c,onPointerMove:$e(e.onPointerMove,h=>{h.pointerType!=="touch"&&!u.current&&!i.isPointerInTransitRef.current&&(r.onTriggerEnter(),u.current=!0)}),onPointerLeave:$e(e.onPointerLeave,()=>{r.onTriggerLeave(),u.current=!1}),onPointerDown:$e(e.onPointerDown,()=>{r.open&&r.onClose(),d.current=!0,document.addEventListener("pointerup",f,{once:!0})}),onFocus:$e(e.onFocus,()=>{d.current||r.onOpen()}),onBlur:$e(e.onBlur,r.onClose),onClick:$e(e.onClick,r.onClose)})})});y3.displayName=ef;var _3="TooltipPortal",[Ive,w3]=Ic(_3,{forceMount:void 0}),Pr="TooltipContent",p1=g.forwardRef((e,t)=>
vendor: 3,013 bytes, line 376
376{const n=w3(Pr,e.__scopeTooltip),{forceMount:s=n.forceMount,side:r="top",...i}=e,o=Lc(Pr,e.__scopeTooltip);return a.jsx(Ec,{present:s||o.open,children:o.disableHoverableContent?a.jsx(h1,{side:r,...i,ref:t}):a.jsx(j3,{side:r,...i,ref:t})})}),j3=g.forwardRef((e,t)=>{const n=Lc(Pr,e.__scopeTooltip),s=d1(Pr,e.__scopeTooltip),r=g.useRef(null),i=rt(t,r),[o,l]=g.useState(null),{trigger:c,onClose:d}=n,u=r.current,{onPointerInTransitChange:f}=s,h=g.useCallback(()=>{l(null),f(!1)},[f]),p=g.useCallback((y,v)=>{const _=y.currentTarget,x={x:y.clientX,y:y.clientY},b=E3(x,_.getBoundingClientRect()),m=C3(x,b),w=T3(v.getBoundingClientRect()),j=R3([...m,...w]);l(j),f(!0)},[f]);return g.useEffect(()=>()=>h(),[h]),g.useEffect(()=>{if(c&&u){const y=_=>p(_,u),v=_=>p(_,c);return c.addEventListener("pointerleave",y),u.addEventListener("pointerleave",v),()=>{c.removeEventListener("pointerleave",y),u.removeEventListener("pointerleave",v)}}},[c,u,p,h]),g.useEffect(()=>{if(o){const y=v=>{const _=v.target,x={x:v.clientX,y:v.clientY},b=(c==null?void 0:c.contains(_))||(u==null?void 0:u.contains(_)),m=!A3(x,o);b?h():m&&(h(),d())};return document.addEventListener("pointermove",y),()=>document.removeEventListener("pointermove",y)}},[c,u,o,d,h]),a.jsx(h1,{...e,ref:i})}),[k3,N3]=Ic(f1,{isInside:!1}),$3=b5("TooltipContent"),h1=g.forwardRef((e,t)=>{const{__scopeTooltip:n,children:s,"aria-label":r,onEscapeKeyDown:i,onPointerDownOutside:o,...l}=e,c=Lc(Pr,n),d=Dp(n),{onClose:u}=c;return g.useEffect(()=>(document.addEventListener(n0,u),()=>document.removeEventListener(n0,u)),[u]),g.useEffect(()=>{if(c.trigger){const f=h=>{const p=h.target;p!=null&&p.contains(c.trigger)&&u()};return window.addEventListener("scroll",f,{capture:!0}),()=>window.removeEventListener("scroll",f,{capture:!0})}},[c.trigger,u]),a.jsx(yp,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:o,onFocusOutside:f=>f.preventDefault(),onDismiss:u,children:a.jsxs(g3,{"data-state":c.stateAttribute,...d,...l,ref:t,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:[a.jsx($3,{children:s}),a.jsx(k3,{scope:n,isInside:!0,children:a.jsx(F5,{id:c.contentId,role:"tooltip",children:r||s})})]})})});p1.displayName=Pr;var m1="TooltipArrow",S3=g.forwardRef((e,t)=>{const{__scopeTooltip:n,...s}=e,r=Dp(n);return N3(m1,n).isInside?null:a.jsx(b3,{...r,...s,ref:t})});S3.displayName=m1;function E3(e,t){const n=Math.abs(t.top-e.y),s=Math.abs(t.bottom-e.y),r=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(n,s,r,i)){case i:return"left";case r:return"right";case n:return"top";case s:return"bottom";default:throw new Error("unreachable")}}function C3(e,t,n=5){const s=[];
376switch(t){case"top":s.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":s.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":s.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":s.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return s}function T3(e){const{top:t,right:n,bottom:s,left:r}=e;return[{x:r,y:t},{x:n,y:t},{x:n,y:s},{x:r,y:s}]}function A3(e,t){const{x:n,y:s}=e;let r=!1;for(let i=0,o=t.length-1;i<t.length;o=i++){const l=t[i],c=t[o],d=l.x,u=l.y,f=c.x,h=c.y;u>s!=h>s&&n<(f-d)*(s-u)/(h-u)+d&&(r=!r)}return r}function R3(e){const t=e.slice();return t.sort((n,s)=>n.x<s.x?-1:n.x>s.x?1:n.y<s.y?-1:n.y>s.y?1:0),P3(t)}function P3(e){if(e.length<=1)return e.slice();const t=[];for(let s=0;s<e.length;s++){const r=e[s];for(;t.length>=2;){const i=t[t.length-1],o=t[t.length-2];if((i.x-o.x)*(r.y-o.y)>=(i.y-o.y)*(r.x-o.x))t.pop();else break}t.push(r)}t.pop();const n=[];for(let s=e.length-1;s>=0;s--){const r=e[s];for(;n.length>=2;){const i=n[n.length-1],o=n[n.length-2];if((i.x-o.x)*(r.y-o.y)>=(i.y-o.y)*(r.x-o.x))n.pop();else break}n.push(r)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var O3=u1,g1=p1;const z3=O3,I3=g.forwardRef(({className:e,sideOffset:t=4,...n},s)=>a.jsx(g1,{ref:s,sideOffset:t,className:Se("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",e),...n}));I3.displayName=g1.displayName;var Mc=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(){}},Dc=typeof window>"u"||"Deno"in globalThis;function Gt(){}function L3(e,t){return typeof e=="function"?e(t):e}function M3(e){return typeof e=="number"&&e>=0&&e!==1/0}function D3(e,t){return Math.max(e+(t||0)-Date.now(),0)}function tf(e,t){return typeof e=="function"?e(t):e}function U3(e,t){return typeof e=="function"?e(t):e}function s0(e,t){const{type:n="all",exact:s,fetchStatus:r,predicate:i,queryKey:o,stale:l}=e;if(o){if(s){if(t.queryHash!==Up(o,t.options))return!1}else if(!Ji(t.queryKey,o))return!1}if(n!=="all"){const c=t.isActive();if(n==="active"&&!c||n==="inactive"&&c)return!1}return!(typeof l=="boolean"&&t.isStale()!==l||r&&r!==t.state.fetchStatus||i&&!i(t))}function a0(e,t){const{exact:n,status:s,predicate:r,mutationKey:i}=e;if(i){if(!t.options.mutationKey)return!1;if(n){if(Ki(t.options.mutationKey)!==Ki(i))return!1}else if(!Ji(t.options.mutationKey,i))return!1}return!(s&&t.state.status!==s||r&&!r(t))}function Up(e,t){return((t==null?void 0:t.queryKeyHashFn)||Ki)(e)}function Ki(e){return JSON.stringify(e,(t,n)=>nf(n)?Object.keys(n).sort().reduce((s,r)=>(s[r]=n[r],s),{}):n)}function Ji(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>Ji(e[n],t[n])):!1}function b1(e,t){if(e===t)return e;const n=r0(e)&&r0(t);if(n||nf(e)&&nf(t)){const s=n?e:Object.keys(e),r=s.length,i=n?t:Object.keys(t),o=i.length,l=n?[]:{},c=new Set(s);let d=0;for(let u=0;u<o;u++){const f=n?u:i[u];(!n&&c.has(f)||n)&&e[f]===void 0&&t[f]===void 0?(l[f]=void 0,d++):(l[f]=b1(e[f],t[f]),l[f]===e[f]&&e[f]!==void 0&&d++)}return r===o&&d===r?e:l}return t}function r0(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function nf(e){if(!i0(e))return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(!i0(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function i0(e){return Object.prototype.toString.call(e)==="[object Object]"}function F3(e){return new Promise(t=>{setTimeout(t,e)})}function B3(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?b1(e,t):t}function q3(e,t,n=0){const s=[...e,t];return n&&s.length>n?s.slice(1):s}function V3(e,t,n=0){const s=[t,...e];return n&&s.length>n?s.slice(0,-1):s}var Fp=Symbol();function x1(e,t){return!e.queryFn&&(t!=null&&t.initialPromise)?()=>t.initialPromise:!e.queryFn||e.queryFn===Fp?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var ca,ds,br,hg,H3=(hg=class extends Mc{constructor(){super();re(this,ca);re(this,ds);re(this,br);G(this,br,t=>{if(!Dc&&window.addEventListener){const n=()=>t();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){$(this,ds)||this.setEventListener($(this,br))}onUnsubscribe(){var t;this.hasListeners()||((t=$(this,ds))==null||t.call(this),G(this,ds,void 0))}setEventListener(t){var n;G(this,br,t),(n=$(this,ds))==null||n.call(this),G(this,ds,t(s=>{typeof s=="boolean"?this.setFocused(s):this.onFocus()}))}setFocused(t){$(this,ca)!==t&&(G(this,ca,t),this.onFocus())}onFocus(){const t=this.isFocused();
vendor: 4,912 bytes, line 376
376this.listeners.forEach(n=>{n(t)})}isFocused(){var t;return typeof $(this,ca)=="boolean"?$(this,ca):((t=globalThis.document)==null?void 0:t.visibilityState)!=="hidden"}},ca=new WeakMap,ds=new WeakMap,br=new WeakMap,hg),v1=new H3,xr,us,vr,mg,W3=(mg=class extends Mc{constructor(){super();re(this,xr,!0);re(this,us);re(this,vr);G(this,vr,t=>{if(!Dc&&window.addEventListener){const n=()=>t(!0),s=()=>t(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",s,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",s)}}})}onSubscribe(){$(this,us)||this.setEventListener($(this,vr))}onUnsubscribe(){var t;this.hasListeners()||((t=$(this,us))==null||t.call(this),G(this,us,void 0))}setEventListener(t){var n;G(this,vr,t),(n=$(this,us))==null||n.call(this),G(this,us,t(this.setOnline.bind(this)))}setOnline(t){$(this,xr)!==t&&(G(this,xr,t),this.listeners.forEach(s=>{s(t)}))}isOnline(){return $(this,xr)}},xr=new WeakMap,us=new WeakMap,vr=new WeakMap,mg),tc=new W3;function Z3(){let e,t;const n=new Promise((r,i)=>{e=r,t=i});n.status="pending",n.catch(()=>{});function s(r){Object.assign(n,r),delete n.resolve,delete n.reject}return n.resolve=r=>{s({status:"fulfilled",value:r}),e(r)},n.reject=r=>{s({status:"rejected",reason:r}),t(r)},n}function G3(e){return Math.min(1e3*2**e,3e4)}function y1(e){return(e??"online")==="online"?tc.isOnline():!0}var _1=class extends Error{constructor(e){super("CancelledError"),this.revert=e==null?void 0:e.revert,this.silent=e==null?void 0:e.silent}};function zd(e){return e instanceof _1}function w1(e){let t=!1,n=0,s=!1,r;const i=Z3(),o=v=>{var _;s||(h(new _1(v)),(_=e.abort)==null||_.call(e))},l=()=>{t=!0},c=()=>{t=!1},d=()=>v1.isFocused()&&(e.networkMode==="always"||tc.isOnline())&&e.canRun(),u=()=>y1(e.networkMode)&&e.canRun(),f=v=>{var _;s||(s=!0,(_=e.onSuccess)==null||_.call(e,v),r==null||r(),i.resolve(v))},h=v=>{var _;s||(s=!0,(_=e.onError)==null||_.call(e,v),r==null||r(),i.reject(v))},p=()=>new Promise(v=>{var _;r=x=>{(s||d())&&v(x)},(_=e.onPause)==null||_.call(e)}).then(()=>{var v;r=void 0,s||(v=e.onContinue)==null||v.call(e)}),y=()=>{if(s)return;let v;const _=n===0?e.initialPromise:void 0;try{v=_??e.fn()}catch(x){v=Promise.reject(x)}Promise.resolve(v).then(f).catch(x=>{var k;if(s)return;const b=e.retry??(Dc?0:3),m=e.retryDelay??G3,w=typeof m=="function"?m(n,x):m,j=b===!0||typeof b=="number"&&n<b||typeof b=="function"&&b(n,x);if(t||!j){h(x);return}n++,(k=e.onFail)==null||k.call(e,n,x),F3(w).then(()=>d()?void 0:p()).then(()=>{t?h(x):y()})})};return{promise:i,cancel:o,continue:()=>(r==null||r(),i),cancelRetry:l,continueRetry:c,canStart:u,start:()=>(u()?y():p().then(y),i)}}var K3=e=>setTimeout(e,0);function J3(){let e=[],t=0,n=l=>{l()},s=l=>{l()},r=K3;const i=l=>{t?e.push(l):r(()=>{n(l)})},o=()=>{const l=e;e=[],l.length&&r(()=>{s(()=>{l.forEach(c=>{n(c)})})})};return{batch:l=>{let c;t++;try{c=l()}finally{t--,t||o()}return c},batchCalls:l=>(...c)=>{i(()=>{l(...c)})},schedule:i,setNotifyFunction:l=>{n=l},setBatchNotifyFunction:l=>{s=l},setScheduler:l=>{r=l}}}var nt=J3(),da,gg,j1=(gg=class{constructor(){re(this,da)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),M3(this.gcTime)&&G(this,da,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Dc?1/0:5*60*1e3))}clearGcTimeout(){$(this,da)&&(clearTimeout($(this,da)),G(this,da,void 0))}},da=new WeakMap,gg),yr,ua,Et,fa,Ye,io,pa,Jt,kn,bg,Y3=(bg=class extends j1{constructor(t){super();re(this,Jt);re(this,yr);re(this,ua);re(this,Et);re(this,fa);re(this,Ye);re(this,io);re(this,pa);G(this,pa,!1),G(this,io,t.defaultOptions),this.setOptions(t.options),this.observers=[],G(this,fa,t.client),G(this,Et,$(this,fa).getQueryCache()),this.queryKey=t.queryKey,this.queryHash=t.queryHash,G(this,yr,X3(this.options)),this.state=t.state??$(this,yr),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var t;return(t=$(this,Ye))==null?void 0:t.promise}setOptions(t){this.options={...$(this,io),...t},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&$(this,Et).remove(this)}setData(t,n){const s=B3(this.state.data,t,this.options);return Ge(this,Jt,kn).call(this,{data:s,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),s}setState(t,n){Ge(this,Jt,kn).call(this,{type:"setState",state:t,setStateOptions:n})}cancel(t){var s,r;const n=(s=$(this,Ye))==null?void 0:s.promise;return(r=$(this,Ye))==null||r.cancel(t),n?n.then(Gt).catch(Gt):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState($(this,yr))}isActive(){return this.observers.some(t=>U3(t.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Fp||this.state.dataUpdateCount+this.state.errorUpdate
vendor: 1,274 bytes, line 376
376Count===0}isStatic(){return this.getObserversCount()>0?this.observers.some(t=>tf(t.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(t=>t.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(t=0){return this.state.data===void 0?!0:t==="static"?!1:this.state.isInvalidated?!0:!D3(this.state.dataUpdatedAt,t)}onFocus(){var n;const t=this.observers.find(s=>s.shouldFetchOnWindowFocus());t==null||t.refetch({cancelRefetch:!1}),(n=$(this,Ye))==null||n.continue()}onOnline(){var n;const t=this.observers.find(s=>s.shouldFetchOnReconnect());t==null||t.refetch({cancelRefetch:!1}),(n=$(this,Ye))==null||n.continue()}addObserver(t){this.observers.includes(t)||(this.observers.push(t),this.clearGcTimeout(),$(this,Et).notify({type:"observerAdded",query:this,observer:t}))}removeObserver(t){this.observers.includes(t)&&(this.observers=this.observers.filter(n=>n!==t),this.observers.length||($(this,Ye)&&($(this,pa)?$(this,Ye).cancel({revert:!0}):$(this,Ye).cancelRetry()),this.scheduleGc()),$(this,Et).notify({type:"observerRemoved",query:this,observer:t}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Ge(this,Jt,kn).call(this,{type:"invalidate"})}
vendor: 14,124 bytes, line 376
376fetch(t,n){var d,u,f;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if($(this,Ye))return $(this,Ye).continueRetry(),$(this,Ye).promise}if(t&&this.setOptions(t),!this.options.queryFn){const h=this.observers.find(p=>p.options.queryFn);h&&this.setOptions(h.options)}const s=new AbortController,r=h=>{Object.defineProperty(h,"signal",{enumerable:!0,get:()=>(G(this,pa,!0),s.signal)})},i=()=>{const h=x1(this.options,n),y=(()=>{const v={client:$(this,fa),queryKey:this.queryKey,meta:this.meta};return r(v),v})();return G(this,pa,!1),this.options.persister?this.options.persister(h,y,this):h(y)},l=(()=>{const h={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:$(this,fa),state:this.state,fetchFn:i};return r(h),h})();(d=this.options.behavior)==null||d.onFetch(l,this),G(this,ua,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((u=l.fetchOptions)==null?void 0:u.meta))&&Ge(this,Jt,kn).call(this,{type:"fetch",meta:(f=l.fetchOptions)==null?void 0:f.meta});const c=h=>{var p,y,v,_;zd(h)&&h.silent||Ge(this,Jt,kn).call(this,{type:"error",error:h}),zd(h)||((y=(p=$(this,Et).config).onError)==null||y.call(p,h,this),(_=(v=$(this,Et).config).onSettled)==null||_.call(v,this.state.data,h,this)),this.scheduleGc()};return G(this,Ye,w1({initialPromise:n==null?void 0:n.initialPromise,fn:l.fetchFn,abort:s.abort.bind(s),onSuccess:h=>{var p,y,v,_;if(h===void 0){c(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(h)}catch(x){c(x);return}(y=(p=$(this,Et).config).onSuccess)==null||y.call(p,h,this),(_=(v=$(this,Et).config).onSettled)==null||_.call(v,h,this.state.error,this),this.scheduleGc()},onError:c,onFail:(h,p)=>{Ge(this,Jt,kn).call(this,{type:"failed",failureCount:h,error:p})},onPause:()=>{Ge(this,Jt,kn).call(this,{type:"pause"})},onContinue:()=>{Ge(this,Jt,kn).call(this,{type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode,canRun:()=>!0})),$(this,Ye).start()}},yr=new WeakMap,ua=new WeakMap,Et=new WeakMap,fa=new WeakMap,Ye=new WeakMap,io=new WeakMap,pa=new WeakMap,Jt=new WeakSet,kn=function(t){const n=s=>{switch(t.type){case"failed":return{...s,fetchFailureCount:t.failureCount,fetchFailureReason:t.error};case"pause":return{...s,fetchStatus:"paused"};case"continue":return{...s,fetchStatus:"fetching"};case"fetch":return{...s,...Q3(s.data,this.options),fetchMeta:t.meta??null};case"success":return G(this,ua,void 0),{...s,data:t.data,dataUpdateCount:s.dataUpdateCount+1,dataUpdatedAt:t.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!t.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const r=t.error;return zd(r)&&r.revert&&$(this,ua)?{...$(this,ua),fetchStatus:"idle"}:{...s,error:r,errorUpdateCount:s.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:s.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:"idle",status:"error"};case"invalidate":return{...s,isInvalidated:!0};case"setState":return{...s,...t.state}}};this.state=n(this.state),nt.batch(()=>{this.observers.forEach(s=>{s.onQueryUpdate()}),$(this,Et).notify({query:this,type:"updated",action:t})})},bg);function Q3(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:y1(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function X3(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,s=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?s??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var un,xg,e8=(xg=class extends Mc{constructor(t={}){super();re(this,un);this.config=t,G(this,un,new Map)}build(t,n,s){const r=n.queryKey,i=n.queryHash??Up(r,n);let o=this.get(i);return o||(o=new Y3({client:t,queryKey:r,queryHash:i,options:t.defaultQueryOptions(n),state:s,defaultOptions:t.getQueryDefaults(r)}),this.add(o)),o}add(t){$(this,un).has(t.queryHash)||($(this,un).set(t.queryHash,t),this.notify({type:"added",query:t}))}remove(t){const n=$(this,un).get(t.queryHash);n&&(t.destroy(),n===t&&$(this,un).delete(t.queryHash),this.notify({type:"removed",query:t}))}clear(){nt.batch(()=>{this.getAll().forEach(t=>{this.remove(t)})})}get(t){return $(this,un).get(t)}getAll(){return[...$(this,un).values()]}find(t){const n={exact:!0,...t};return this.getAll().find(s=>s0(n,s))}findAll(t={}){const n=this.getAll();return Object.keys(t).length>0?n.filter(s=>s0(t,s)):n}notify(t){nt.batch(()=>{this.listeners.forEach(n=>{n(t)})})}onFocus(){nt.batch(()=>{this.getAll().forEach(t=>{t.onFocus()})})}onOnline(){nt.batch(()=>{this.getAll().forEach(t=>{t.onOnline()})})}},un=new WeakMap,xg),fn,et,ha,pn,ss,vg,t8=(vg=class extends j1{constructor(t){super();re(this,pn);re(this,fn);re(this,et);re(this,ha);this.mutationId=t.mutationId,G(this,et,t.mutationCache),G(this,fn,[]),this.state=t.state||n8(),this.setOptions(t.options),this.scheduleGc()}setOptions(t){this.options=t,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(t){$(this,fn).includes(t)||($(this,fn).push(t),this.clearGcTimeout(),$(this,et).notify({type:"observerAdded",mutation:this,observer:t}))}removeObserver(t){G(this,fn,$(this,fn).filter(n=>n!==t)),this.scheduleGc(),$(this,et).notify({type:"observerRemoved",mutation:this,observer:t})}optionalRemove(){$(this,fn).length||(this.state.status==="pending"?this.scheduleGc():$(this,et).remove(this))}continue(){var t;return((t=$(this,ha))==null?void 0:t.continue())??this.execute(this.state.variables)}async execute(t){var i,o,l,c,d,u,f,h,p,y,v,_,x,b,m,w,j,k,N,C;const n=()=>{Ge(this,pn,ss).call(this,{type:"continue"})};G(this,ha,w1({fn:()=>this.options.mutationFn?this.options.mutationFn(t):Promise.reject(new Error("No mutationFn found")),onFail:(R,O)=>{Ge(this,pn,ss).call(this,{type:"failed",failureCount:R,error:O})},onPause:()=>{Ge(this,pn,ss).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>$(this,et).canRun(this)}));const s=this.state.status==="pending",r=!$(this,ha).canStart();try{if(s)n();else{Ge(this,pn,ss).call(this,{type:"pending",variables:t,isPaused:r}),await((o=(i=$(this,et).config).onMutate)==null?void 0:o.call(i,t,this));const O=await((c=(l=this.options).onMutate)==null?void 0:c.call(l,t));O!==this.state.context&&Ge(this,pn,ss).call(this,{type:"pending",context:O,variables:t,isPaused:r})}const R=await $(this,ha).start();return await((u=(d=$(this,et).config).onSuccess)==null?void 0:u.call(d,R,t,this.state.context,this)),await((h=(f=this.options).onSuccess)==null?void 0:h.call(f,R,t,this.state.context)),await((y=(p=$(this,et).config).onSettled)==null?void 0:y.call(p,R,null,this.state.variables,this.state.context,this)),await((_=(v=this.options).onSettled)==null?void 0:_.call(v,R,null,t,this.state.context)),Ge(this,pn,ss).call(this,{type:"success",data:R}),R}catch(R){try{throw await((b=(x=$(this,et).config).onError)==null?void 0:b.call(x,R,t,this.state.context,this)),await((w=(m=this.options).onError)==null?void 0:w.call(m,R,t,this.state.context)),await((k=(j=$(this,et).config).onSettled)==null?void 0:k.call(j,void 0,R,this.state.variables,this.state.context,this)),await((C=(N=this.options).onSettled)==null?void 0:C.call(N,void 0,R,t,this.state.context)),R}finally{Ge(this,pn,ss).call(this,{type:"error",error:R})}}finally{$(this,et).runNext(this)}}},fn=new WeakMap,et=new WeakMap,ha=new WeakMap,pn=new WeakSet,ss=function(t){const n=s=>{switch(t.type){case"failed":return{...s,failureCount:t.failureCount,failureReason:t.error};case"pause":return{...s,isPaused:!0};case"continue":return{...s,isPaused:!1};case"pending":return{...s,context:t.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:t.isPaused,status:"pending",variables:t.variables,submittedAt:Date.now()};case"success":return{...s,data:t.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...s,data:void 0,error:t.error,failureCount:s.failureCount+1,failureReason:t.error,isPaused:!1,status:"error"}}};this.state=n(this.state),nt.batch(()=>{$(this,fn).forEach(s=>{s.onMutationUpdate(t)}),$(this,et).notify({mutation:this,type:"updated",action:t})})},vg);function n8(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Cn,Yt,oo,yg,s8=(yg=class extends Mc{constructor(t={}){super();re(this,Cn);re(this,Yt);re(this,oo);this.config=t,G(this,Cn,new Set),G(this,Yt,new Map),G(this,oo,0)}build(t,n,s){const r=new t8({mutationCache:this,mutationId:++No(this,oo)._,options:t.defaultMutationOptions(n),state:s});return this.add(r),r}add(t){$(this,Cn).add(t);const n=Go(t);if(typeof n=="string"){const s=$(this,Yt).get(n);s?s.push(t):$(this,Yt).set(n,[t])}this.notify({type:"added",mutation:t})}remove(t){if($(this,Cn).delete(t)){const n=Go(t);if(typeof n=="string"){const s=$(this,Yt).get(n);if(s)if(s.length>1){const r=s.indexOf(t);r!==-1&&s.splice(r,1)}else s[0]===t&&$(this,Yt).delete(n)}}this.notify({type:"removed",mutation:t})}canRun(t){const n=Go(t);if(typeof n=="string"){const s=$(this,Yt).get(n),r=s==null?void 0:s.find(i=>i.state.status==="pending");return!r||r===t}else return!0}runNext(t){var s;const n=Go(t);if(typeof n=="string"){const r=(s=$(this,Yt).get(n))==null?void 0:s.find(i=>i!==t&&i.state.isPaused);return(r==null?void 0:r.continue())??Promise.resolve()}else return Promise.resolve()}clear(){nt.batch(()=>{$(this,Cn).forEach(t=>{this.notify({type:"removed",mutation:t})}),$(this,Cn).clear(),$(this,Yt).clear()})}getAll(){return Array.from($(this,Cn))}find(t){const n={exact:!0,...t};return this.getAll().find(s=>a0(n,s))}findAll(t={}){return this.getAll().filter(n=>a0(t,n))}notify(t){nt.batch(()=>{this.listeners.forEach(n=>{n(t)})})}resumePausedMutations(){const t=this.getAll().filter(n=>n.state.isPaused);return nt.batch(()=>Promise.all(t.map(n=>n.continue().catch(Gt))))}},Cn=new WeakMap,Yt=new WeakMap,oo=new WeakMap,yg);function Go(e){var t;return(t=e.options.scope)==null?void 0:t.id}function o0(e){return{onFetch:(t,n)=>{var u,f,h,p,y;const s=t.options,r=(h=(f=(u=t.fetchOptions)==null?void 0:u.meta)==null?void 0:f.fetchMore)==null?void 0:h.direction,i=((p=t.state.data)==null?void 0:p.pages)||[],o=((y=t.state.data)==null?void 0:y.pageParams)||[];let l={pages:[],pageParams:[]},c=0;const d=async()=>{let v=!1;const _=m=>{Object.defineProperty(m,"signal",{enumerable:!0,get:()=>(t.signal.aborted?v=!0:t.signal.addEventListener("abort",()=>{v=!0}),t.signal)})},x=x1(t.options,t.fetchOptions),b=async(m,w,j)=>{if(v)return Promise.reject();if(w==null&&m.pages.length)return Promise.resolve(m);const N=(()=>{const H={client:t.client,queryKey:t.queryKey,pageParam:w,direction:j?"backward":"forward",meta:t.options.meta};return _(H),H})(),C=await x(N),{maxPages:R}=t.options,O=j?V3:q3;return{pages:O(m.pages,C,R),pageParams:O(m.pageParams,w,R)}};if(r&&i.length){const m=r==="backward",w=m?a8:l0,j={pages:i,pageParams:o},k=w(s,j);l=await b(j,k,m)}else{const m=e??i.length;do{const w=c===0?o[0]??s.initialPageParam:l0(s,l);if(c>0&&w==null)break;l=await b(l,w),c++}while(c<m)}return l};t.options.persister?t.fetchFn=()=>{var v,_;return(_=(v=t.options).persister)==null?void 0:_.call(v,d,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n)}:t.fetchFn=d}}}function l0(e,{pages:t,pageParams:n}){const s=t.length-1;return t.length>0?e.getNextPageParam(t[s],t,n[s],n):void 0}function a8(e,{pages:t,pageParams:n}){var s;return t.length>0?(s=e.getPreviousPageParam)==null?void 0:s.call(e,t[0],t,n[0],n):void 0}var je,fs,ps,_r,wr,hs,jr,kr,_g,r8=(_g=class{constructor(e={}){re(this,je);re(this,fs);re(this,ps);re(this,_r);re(this,wr);re(this,hs);re(this,jr);re(this,kr);G(this,je,e.queryCache||new e8),G(this,fs,e.mutationCache||new s8),G(this,ps,e.defaultOptions||{}),G(this,_r,new Map),G(this,wr,new Map),G(this,hs,0)}mount(){No(this,hs)._++,$(this,hs)===1&&(G(this,jr,v1.subscribe(async e=>{e&&(await this.resumePausedMutations(),$(this,je).onFocus())})),G(this,kr,tc.subscribe(async e=>{e&&(await this.resumePausedMutations(),$(this,je).onOnline())})))}unmount(){var e,t;No(this,hs)._--,$(this,hs)===0&&((e=$(this,jr))==null||e.call(this),G(this,jr,void 0),(t=$(this,kr))==null||t.call(this),G(this,kr,void 0))}isFetching(e){return $(this,je).findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return $(this,fs).findAll({...e,status:"pending"}).length}getQueryData(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=$(this,je).get(t.queryHash))==null?void 0:n.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=$(this,je).build(this,t),s=n.state.data;return s===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(tf(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(s))}getQueriesData(e){return $(this,je).findAll(e).map(({queryKey:t,state:n})=>{const s=n.data;return[t,s]})}setQueryData(e,t,n){const s=this.defaultQueryOptions({queryKey:e}),r=$(this,je).get(s.queryHash),i=r==null?void 0:r.state.data,o=L3(t,i);if(o!==void 0)return $(this,je).build(this,s).setData(o,{...n,manual:!0})}setQueriesData(e,t,n){return nt.batch(()=>$(this,je).findAll(e).map(({queryKey:s})=>[s,this.setQueryData(s,t,n)]))}getQueryState(e){var n;const t=this.defaultQueryOptions({queryKey:e});return(n=$(this,je).get(t.queryHash))==null?void 0:n.state}removeQueries(e){const t=$(this,je);nt.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=$(this,je);return nt.batch(()=>(n.findAll(e).forEach(s=>{s.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},s=nt.batch(()=>$(this,je).findAll(e).map(r=>r.cancel(n)));return Promise.all(s).then(Gt).catch(Gt)}invalidateQueries(e,t={}){return nt.batch(()=>($(this,je).findAll(e).forEach(n=>
376{n.invalidate()}),(e==null?void 0:e.refetchType)==="none"?Promise.resolve():this.refetchQueries({...e,type:(e==null?void 0:e.refetchType)??(e==null?void 0:e.type)??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},s=nt.batch(()=>$(this,je).findAll(e).filter(r=>!r.isDisabled()&&!r.isStatic()).map(r=>{let i=r.fetch(void 0,n);return n.throwOnError||(i=i.catch(Gt)),r.state.fetchStatus==="paused"?Promise.resolve():i}));return Promise.all(s).then(Gt)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=$(this,je).build(this,t);return n.isStaleByTime(tf(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Gt).catch(Gt)}fetchInfiniteQuery(e){return e.behavior=o0(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Gt).catch(Gt)}ensureInfiniteQueryData(e){return e.behavior=o0(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return tc.isOnline()?$(this,fs).resumePausedMutations():Promise.resolve()}getQueryCache(){return $(this,je)}getMutationCache(){return $(this,fs)}getDefaultOptions(){return $(this,ps)}setDefaultOptions(e){G(this,ps,e)}setQueryDefaults(e,t){$(this,_r).set(Ki(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...$(this,_r).values()],n={};return t.forEach(s=>{Ji(e,s.queryKey)&&Object.assign(n,s.defaultOptions)}),n}setMutationDefaults(e,t){$(this,wr).set(Ki(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...$(this,wr).values()],n={};return t.forEach(s=>{Ji(e,s.mutationKey)&&Object.assign(n,s.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...$(this,ps).queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Up(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===Fp&&(t.enabled=!1),t}defaultMutationOptions(e){return e!=null&&e._defaulted?e:{...$(this,ps).mutations,...(e==null?void 0:e.mutationKey)&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){$(this,je).clear(),$(this,fs).clear()}},je=new WeakMap,fs=new WeakMap,ps=new WeakMap,_r=new WeakMap,wr=new WeakMap,hs=new WeakMap,jr=new WeakMap,kr=new WeakMap,_g),i8=g.createContext(void 0),o8=({client:e,children:t})=>(g.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),a.jsx(i8.Provider,{value:e,children:t}));/**
377 * @remix-run/router v1.23.0
378 *
379 * Copyright (c) Remix Software Inc.
380 *
381 * This source code is licensed under the MIT license found in the
382 * LICENSE.md file in the root directory of this source tree.
383 *
384 * @license MIT
385 */function Yi(){return Yi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},Yi.apply(this,arguments)}var bs;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(bs||(bs={}));const c0="popstate";function l8(e){e===void 0&&(e={});function t(s,r){let{pathname:i,search:o,hash:l}=s.location;return sf("",{pathname:i,search:o,hash:l},r.state&&r.state.usr||null,r.state&&r.state.key||"default")}function n(s,r){return typeof r=="string"?r:nc(r)}return d8(t,n,null,e)}function ze(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function k1(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function c8(){return Math.random().toString(36).substr(2,8)}function d0(e,t){return{usr:e.state,key:e.key,idx:t}}function sf(e,t,n,s){return n===void 0&&(n=null),Yi({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?Br(t):t,{state:n,key:t&&t.key||s||c8()})}function nc(e){let{pathname:t="/",search:n="",hash:s=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),s&&s!=="#"&&(t+=s.charAt(0)==="#"?s:"#"+s),t}function Br(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let s=e.indexOf("?");s>=0&&(t.search=e.substr(s),e=e.substr(0,s)),e&&(t.pathname=e)}return t}function d8(e,t,n,s){s===void 0&&(s={});let{window:r=document.defaultView,v5Compat:i=!1}=s,o=r.history,l=bs.Pop,c=null,d=u();d==null&&(d=0,o.replaceState(Yi({},o.state,{idx:d}),""));function u(){return(o.state||{idx:null}).idx}function f(){l=bs.Pop;let _=u(),x=_==null?null:_-d;d=_,c&&c({action:l,location:v.location,delta:x})}function h(_,x){l=bs.Push;let b=sf(v.location,_,x);d=u()+1;let m=d0(b,d),w=v.createHref(b);try{o.pushState(m,"",w)}catch(j){if(j instanceof DOMException&&j.name==="DataCloneError")throw j;r.location.assign(w)}i&&c&&c({action:l,location:v.location,delta:1})}function p(_,x){l=bs.Replace;let b=sf(v.location,_,x);d=u();let m=d0(b,d),w=v.createHref(b);o.replaceState(m,"",w),i&&c&&c({action:l,location:v.location,delta:0})}function y(_){let x=r.location.origin!=="null"?r.location.origin:r.location.href,b=typeof _=="string"?_:nc(_);return b=b.replace(/ $/,"%20"),ze(x,"No window.location.(origin|href) available to create URL for href: "+b),new URL(b,x)}let v={get action(){return l},get location(){return e(r,o)},listen(_){if(c)throw new Error("A history only accepts one active listener");return r.addEventListener(c0,f),c=_,()=>{r.removeEventListener(c0,f),c=null}},createHref(_){return t(r,_)},createURL:y,encodeLocation(_){let x=y(_);return{pathname:x.pathname,search:x.search,hash:x.hash}},push:h,replace:p,go(_){return o.go(_)}};return v}var u0;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(u0||(u0={}));function u8(e,t,n){return n===void 0&&(n="/"),f8(e,t,n,!1)}function f8(e,t,n,s){let r=typeof t=="string"?Br(t):t,i=Bp(r.pathname||"/",n);if(i==null)return null;let o=N1(e);p8(o);let l=null;for(let c=0;l==null&&c<o.length;++c){let d=k8(i);l=w8(o[c],d,s)}return l}function N1(e,t,n,s){t===void 0&&(t=[]),n===void 0&&(n=[]),s===void 0&&(s="");let r=(i,o,l)=>{let c={relativePath:l===void 0?i.path||"":l,caseSensitive:i.caseSensitive===!0,childrenIndex:o,route:i};c.relativePath.startsWith("/")&&(ze(c.relativePath.startsWith(s),'Absolute route path "'+c.relativePath+'" nested under path '+('"'+s+'" is not val
385id. An absolute child route path ')+"must start with the combined path of all its parent routes."),c.relativePath=c.relativePath.slice(s.length));let d=Ss([s,c.relativePath]),u=n.concat(c);i.children&&i.children.length>0&&(ze(i.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+d+'".')),N1(i.children,t,u,d)),!(i.path==null&&!i.index)&&t.push({path:d,score:y8(d,i.index),routesMeta:u})};return e.forEach((i,o)=>{var l;if(i.path===""||!((l=i.path)!=null&&l.includes("?")))r(i,o);else for(let c of $1(i.path))r(i,o,c)}),t}function $1(e){let t=e.split("/");if(t.length===0)return[];let[n,...s]=t,r=n.endsWith("?"),i=n.replace(/\?$/,"");if(s.length===0)return r?[i,""]:[i];let o=$1(s.join("/")),l=[];return l.push(...o.map(c=>c===""?i:[i,c].join("/"))),r&&l.push(...o),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function p8(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:_8(t.routesMeta.map(s=>s.childrenIndex),n.routesMeta.map(s=>s.childrenIndex)))}const h8=/^:[\w-]+$/,m8=3,g8=2,b8=1,x8=10,v8=-2,f0=e=>e==="*";function y8(e,t){let n=e.split("/"),s=n.length;return n.some(f0)&&(s+=v8),t&&(s+=g8),n.filter(r=>!f0(r)).reduce((r,i)=>r+(h8.test(i)?m8:i===""?b8:x8),s)}function _8(e,t){return e.length===t.length&&e.slice(0,-1).every((s,r)=>s===t[r])?e[e.length-1]-t[t.length-1]:0}function w8(e,t,n){let{routesMeta:s}=e,r={},i="/",o=[];for(let l=0;l<s.length;++l){let c=s[l],d=l===s.length-1,u=i==="/"?t:t.slice(i.length)||"/",f=p0({path:c.relativePath,caseSensitive:c.caseSensitive,end:d},u),h=c.route;if(!f&&d&&n&&!s[s.length-1].route.index&&(f=p0({path:c.relativePath,caseSensitive:c.caseSensitive,end:!1},u)),!f)return null;
vendor: 6,917 bytes, lines 385-394
385Object.assign(r,f.params),o.push({params:r,pathname:Ss([i,f.pathname]),pathnameBase:E8(Ss([i,f.pathnameBase])),route:h}),f.pathnameBase!=="/"&&(i=Ss([i,f.pathnameBase]))}return o}function p0(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,s]=j8(e.path,e.caseSensitive,e.end),r=t.match(n);if(!r)return null;let i=r[0],o=i.replace(/(.)\/+$/,"$1"),l=r.slice(1);return{params:s.reduce((d,u,f)=>{let{paramName:h,isOptional:p}=u;if(h==="*"){let v=l[f]||"";o=i.slice(0,i.length-v.length).replace(/(.)\/+$/,"$1")}const y=l[f];return p&&!y?d[h]=void 0:d[h]=(y||"").replace(/%2F/g,"/"),d},{}),pathname:i,pathnameBase:o,pattern:e}}function j8(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),k1(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let s=[],r="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(s.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(s.push({paramName:"*"}),r+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?r+="\\/*$":e!==""&&e!=="/"&&(r+="(?:(?=\\/|$))"),[new RegExp(r,t?void 0:"i"),s]}function k8(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return k1(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Bp(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,s=e.charAt(n);return s&&s!=="/"?null:e.slice(n)||"/"}function N8(e,t){t===void 0&&(t="/");let{pathname:n,search:s="",hash:r=""}=typeof e=="string"?Br(e):e;return{pathname:n?n.startsWith("/")?n:$8(n,t):t,search:C8(s),hash:T8(r)}}function $8(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(r=>{r===".."?n.length>1&&n.pop():r!=="."&&n.push(r)}),n.length>1?n.join("/"):"/"}function Id(e,t,n,s){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(s)+"].  Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function S8(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function S1(e,t){let n=S8(e);return t?n.map((s,r)=>r===n.length-1?s.pathname:s.pathnameBase):n.map(s=>s.pathnameBase)}function E1(e,t,n,s){s===void 0&&(s=!1);let r;typeof e=="string"?r=Br(e):(r=Yi({},e),ze(!r.pathname||!r.pathname.includes("?"),Id("?","pathname","search",r)),ze(!r.pathname||!r.pathname.includes("#"),Id("#","pathname","hash",r)),ze(!r.search||!r.search.includes("#"),Id("#","search","hash",r)));let i=e===""||r.pathname==="",o=i?"/":r.pathname,l;if(o==null)l=n;else{let f=t.length-1;if(!s&&o.startsWith("..")){let h=o.split("/");for(;h[0]==="..";)h.shift(),f-=1;r.pathname=h.join("/")}l=f>=0?t[f]:"/"}let c=N8(r,l),d=o&&o!=="/"&&o.endsWith("/"),u=(i||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(d||u)&&(c.pathname+="/"),c}const Ss=e=>e.join("/").replace(/\/\/+/g,"/"),E8=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),C8=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,T8=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;function A8(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const C1=["post","put","patch","delete"];new Set(C1);const R8=["get",...C1];new Set(R8);/**
386 * React Router v6.30.1
387 *
388 * Copyright (c) Remix Software Inc.
389 *
390 * This source code is licensed under the MIT license found in the
391 * LICENSE.md file in the root directory of this source tree.
392 *
393 * @license MIT
394 */function Qi(){return Qi=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},Qi.apply(this,arguments)}const qp=g.createContext(null),P8=g.createContext(null),$a=g.createContext(null),Uc=g.createContext(null),Ms=g.createContext({outlet:null,matches:[],isDataRoute:!1}),T1=g.createContext(null);function O8(e,t){let{relative:n}=t===void 0?{}:t;yo()||ze(!1);let{basename:s,navigator:r}=g.useContext($a),{hash:i,pathname:o,search:l}=R1(e,{relative:n}),c=o;return s!=="/"&&(c=o==="/"?s:Ss([s,o])),r.createHref({pathname:c,search:l,hash:i})}function yo(){return g.useContext(Uc)!=null}function Ds(){return yo()||ze(!1),g.useContext(Uc).location}function A1(e){g.useContext($a).static||g.useLayoutEffect(e)}function Vp(){let{isDataRoute:e}=g.useContext(Ms);return e?G8():z8()}function z8(){yo()||ze(!1);let e=g.useContext(qp),{basename:t,future:n,navigator:s}=g.useContext($a),{matches:r}=g.useContext(Ms),{pathname:i}=Ds(),o=JSON.stringify(S1(r,n.v7_relativeSplatPath)),l=g.useRef(!1);return A1(()=>{l.current=!0}),g.useCallback(function(d,u){if(u===void 0&&(u={}),!l.current)return;if(typeof d=="number"){s.go(d);return}let f=E1(d,JSON.parse(o),i,u.relative==="path");e==null&&t!=="/"&&(f.pathname=f.pathname==="/"?t:Ss([t,f.pathname])),(u.replace?s.replace:s.push)(f,u.state,u)},[t,s,o,i,e])}function I8(){let{matches:e}=g.useContext(Ms),t=e[e.length-1];return t?t.params:{}}function R1(e,t){let{relative:n}=t===void 0?{}:t,{future:s}=g.useContext($a),{matches:r}=g.useContext(Ms),{pathname:i}=Ds(),o=JSON.stringify(S1(r,s.v7_relativeSplatPath));return g.useMemo(()=>E1(e,JSON.parse(o),i,n==="path"),[e,o,i,n])}function L8(e,t){return M8(e,t)}function M8(e,t,n,s){yo()||ze(!1);let{navigator:r}=g.useContext($a),{matches:i}=g.useContext(Ms),o=i[i.length-1],l=o?o.params:{};o&&o.pathname;let c=o?o.pathnameBase:"/";o&&o.route;let d=Ds(),u;if(t){var f;let _=typeof t=="string"?Br(t):t;c==="/"||(f=_.pathname)!=null&&f.startsWith(c)||ze(!1),u=_}else u=d;let h=u.pathname||"/",p=h;if(c!=="/"){let _=c.replace(/^\//,"").split("/");p="/"+h.replace(/^\//,"").split("/").slice(_.length).join("/")}let y=u8(e,{pathname:p}),v=q8(y&&y.map(_=>Object.assign({},_,{params:Object.assign({},l,_.params),pathname:Ss([c,r.encodeLocation?r.encodeLocation(_.pathname).pathname:_.pathname]),pathnameBase:_.pathnameBase==="/"?c:Ss([c,r.encodeLocation?r.encodeLocation(_.pathnameBase).pathname:_.pathnameBase])})),i,n,s);return t&&v?g.createElement(Uc.Provider,{value:{location:Qi({pathname:"/",search:"",hash:"",state:null,key:"default"},u),navigationType:bs.Pop}},v):v}function D8(){let e=Z8(),t=A8(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return g.createElement(g.Fragment,null,g.createElement("h2",null,"Unexpected Application 
394Error!"),g.createElement("h3",{style:{fontStyle:"italic"}},t),n?g.createElement("pre",{style:r},n):null,null)}const U8=g.createElement(D8,null);class F8 extends g.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?g.createElement(Ms.Provider,{value:this.props.routeContext},g.createElement(T1.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function B8(e){let{routeContext:t,match:n,children:s}=e,r=g.useContext(qp);return r&&r.static&&r.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=n.route.id),g.createElement(Ms.Provider,{value:t},s)}function q8(e,t,n,s){var r;if(t===void 0&&(t=[]),n===void 0&&(n=null),s===void 0&&(s=null),e==null){var i;if(!n)return null;if(n.errors)e=n.matches;else if((i=s)!=null&&i.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let o=e,l=(r=n)==null?void 0:r.errors;if(l!=null){let u=o.findIndex(f=>f.route.id&&(l==null?void 0:l[f.route.id])!==void 0);u>=0||ze(!1),o=o.slice(0,Math.min(o.length,u+1))}let c=!1,d=-1;if(n&&s&&s.v7_partialHydration)for(let u=0;u<o.length;u++){let f=o[u];if((f.route.HydrateFallback||f.route.hydrateFallbackElement)&&(d=u),f.route.id){let{loaderData:h,errors:p}=n,y=f.route.loader&&h[f.route.id]===void 0&&(!p||p[f.route.id]===void 0);if(f.route.lazy||y){c=!0,d>=0?o=o.slice(0,d+1):o=[o[0]];break}}}return o.reduceRight((u,f,h)=>{let p,y=!1,v=null,_=null;n&&(p=l&&f.route.id?l[f.route.id]:void 0,v=f.route.errorElement||U8,c&&(d<0&&h===0?(y=!0,_=null):d===h&&(y=!0,_=f.route.hydrateFallbackElement||null)));let x=t.concat(o.slice(0,h+1)),b=()=>{let m;return p?m=v:y?m=_:f.route.Component?m=g.createElement(f.route.Component,null):f.route.element?m=f.route.element:m=u,g.createElement(B8,{match:f,routeContext:{outlet:u,matches:x,isDataRoute:n!=null},children:m})};return n&&(f.route.ErrorBoundary||f.route.errorElement||h===0)?g.createElement(F8,{location:n.location,revalidation:n.revalidation,component:v,error:p,children:b(),routeContext:{outlet:null,matches:x,isDataRoute:!0}}):b()},null)}var P1=function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e}(P1||{}),sc=function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e}(sc||{});function V8(e){let t=g.useContext(qp);return t||ze(!1),t}function H8(e){let t=g.useContext(P8);return t||ze(!1),t}function W8(e){let t=g.useContext(Ms);return t||ze(!1),t}function O1(e){let t=W8(),n=t.matches[t.matches.length-1];return n.route.id||ze(!1),n.route.id}function Z8(){var e;let t=g.useContext(T1),n=H8(sc.UseRouteError),s=O1(sc.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[s]}function G8(){let{router:e}=V8(P1.UseNavigateStable),t=O1(sc.UseNavigateStable),n=g.useRef(!1);return A1(()=>{n.current=!0}),g.useCallback(function(r,i){i===void 0&&(i={}),n.current&&(typeof r=="number"?e.navigate(r):e.navigate(r,Qi({fromRouteId:t},i)))},[e,t])}function K8(e,t){e==null||e.v7_startTransition,e==null||e.v7_relativeSplatPath}function oe(e){ze(!1)}function J8(e){let{basename:t="/",children:n=null,location:s,navigationType:r=bs.Pop,navigator:i,static:o=!1,future:l}=e;yo()&&ze(!1);let c=t.replace(/^\/*/,"/"),d=g.useMemo(()=>({basename:c,navigator:i,static:o,future:Qi({v7_relativeSplatPath:!1},l)}),[c,l,i,o]);typeof s=="string"&&(s=Br(s));
394let{pathname:u="/",search:f="",hash:h="",state:p=null,key:y="default"}=s,v=g.useMemo(()=>{let _=Bp(u,c);return _==null?null:{location:{pathname:_,search:f,hash:h,state:p,key:y},navigationType:r}},[c,u,f,h,p,y,r]);return v==null?null:g.createElement($a.Provider,{value:d},g.createElement(Uc.Provider,{children:n,value:v}))}function Y8(e){let{children:t,location:n}=e;return L8(af(t),n)}new Promise(()=>{});function af(e,t){t===void 0&&(t=[]);let n=[];return g.Children.forEach(e,(s,r)=>{if(!g.isValidElement(s))return;let i=[...t,r];if(s.type===g.Fragment){n.push.apply(n,af(s.props.children,i));return}s.type!==oe&&ze(!1),!s.props.index||!s.props.children||ze(!1);let o={id:s.props.id||i.join("-"),caseSensitive:s.props.caseSensitive,element:s.props.element,Component:s.props.Component,index:s.props.index,path:s.props.path,loader:s.props.loader,action:s.props.action,errorElement:s.props.errorElement,ErrorBoundary:s.props.ErrorBoundary,hasErrorBoundary:s.props.ErrorBoundary!=null||s.props.errorElement!=null,shouldRevalidate:s.props.shouldRevalidate,handle:s.props.handle,lazy:s.props.lazy};s.props.children&&(o.children=af(s.props.children,i)),n.push(o)}),n}/**
395 * React Router DOM v6.30.1
396 *
397 * Copyright (c) Remix Software Inc.
398 *
399 * This source code is licensed under the MIT license found in the
400 * LICENSE.md file in the root directory of this source tree.
401 *
402 * @license MIT
403 */function rf(){return rf=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},rf.apply(this,arguments)}function Q8(e,t){if(e==null)return{};var n={},s=Object.keys(e),r,i;for(i=0;i<s.length;i++)r=s[i],!(t.indexOf(r)>=0)&&(n[r]=e[r]);return n}function X8(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function e6(e,t){return e.button===0&&(!t||t==="_self")&&!X8(e)}const t6=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],n6="6";try{window.__reactRouterVersion=n6}catch{}const s6="startTransition",h0=Rg[s6];function a6(e){let{basename:t,children:n,future:s,window:r}=e,i=g.useRef();i.current==null&&(i.current=l8({window:r,v5Compat:!0}));let o=i.current,[l,c]=g.useState({action:o.action,location:o.location}),{v7_startTransition:d}=s||{},u=g.useCallback(f=>{d&&h0?h0(()=>c(f)):c(f)},[c,d]);return g.useLayoutEffect(()=>o.listen(u),[o,u]),g.useEffect(()=>K8(s),[s]),g.createElement(J8,{basename:t,children:n,location:l.location,navigationType:l.action,navigator:o,future:s})}const r6=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",i6=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,F=g.forwardRef(function(t,n){let{onClick:s,relative:r,reloadDocument:i,replace:o,state:l,target:c,to:d,preventScrollReset:u,viewTransition:f}=t,h=Q8(t,t6),{basename:p}=g.useContext($a),y,v=!1;if(typeof d=="string"&&i6.test(d)&&(y=d,r6))try{let m=new URL(window.location.href),w=d.startsWith("//")?new URL(m.protocol+d):new URL(d),j=Bp(w.pathname,p);w.origin===m.origin&&j!=null?d=j+w.search+w.hash:v=!0}catch{}let _=O8(d,{relative:r}),x=o6(d,{replace:o,state:l,target:c,preventScrollReset:u,relative:r,viewTransition:f});function b(m){s&&s(m),m.defaultPrevented||x(m)}return g.createElement("a",rf({},h,{href:y||_,onClick:v||i?s:b,ref:n,target:c}))});var m0;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(m0||(m0={}));var g0;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(g0||(g0={}));function o6(e,t){let{target:n,replace:s,state:r,preventScrollReset:i,relative:o,viewTransition:l}=t===void 0?{}:t,c=Vp(),d=Ds(),u=R1(e,{relative:o});return g.useCallback(f=>{if(e6(f,n)){f.preventDefault();let h=s!==void 0?s:nc(d)===nc(u);c(e,{replace:h,state:r,preventScrollReset:i,relative:o,viewTransition:l})}},[d,c,u,s,r,n,e,i,o,l])}function l6(){const{pathname:e}=Ds();return g.useEffect(()=>{window.scrollTo(0,0)},[e]),null}function z1(e){const t=g.useRef({value:e,previous:e});return g.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var Fc="Switch",[c6,Lve]=Na(Fc),[d6,u6]=c6(Fc),I1=g.forwardRef((e,t)=>
403{const{__scopeSwitch:n,name:s,checked:r,defaultChecked:i,required:o,disabled:l,value:c="on",onCheckedChange:d,form:u,...f}=e,[h,p]=g.useState(null),y=rt(t,m=>p(m)),v=g.useRef(!1),_=h?u||!!h.closest("form"):!0,[x,b]=_p({prop:r,defaultProp:i??!1,onChange:d,caller:Fc});return a.jsxs(d6,{scope:n,checked:x,disabled:l,children:[a.jsx(Ee.button,{type:"button",role:"switch","aria-checked":x,"aria-required":o,"data-state":U1(x),"data-disabled":l?"":void 0,disabled:l,value:c,...f,ref:y,onClick:$e(e.onClick,m=>{b(w=>!w),_&&(v.current=m.isPropagationStopped(),v.current||m.stopPropagation())})}),_&&a.jsx(D1,{control:h,bubbles:!v.current,name:s,value:c,checked:x,required:o,disabled:l,form:u,style:{transform:"translateX(-100%)"}})]})});I1.displayName=Fc;var L1="SwitchThumb",M1=g.forwardRef((e,t)=>{const{__scopeSwitch:n,...s}=e,r=u6(L1,n);return a.jsx(Ee.span,{"data-state":U1(r.checked),"data-disabled":r.disabled?"":void 0,...s,ref:t})});M1.displayName=L1;var f6="SwitchBubbleInput",D1=g.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:s=!0,...r},i)=>{const o=g.useRef(null),l=rt(o,i),c=z1(n),d=Lp(t);return g.useEffect(()=>{const u=o.current;if(!u)return;const f=window.HTMLInputElement.prototype,p=Object.getOwnPropertyDescriptor(f,"checked").set;if(c!==n&&p){const y=new Event("click",{bubbles:s});p.call(u,n),u.dispatchEvent(y)}},[c,n,s]),a.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...r,tabIndex:-1,ref:l,style:{...r.style,...d,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});D1.displayName=f6;function U1(e){return e?"checked":"unchecked"}var F1=I1,p6=M1;const B1=g.forwardRef(({className:e,...t},n)=>a.jsx(F1,{className:Se("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50",e),...t,ref:n,children:a.jsx(p6,{className:Se("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));B1.displayName=F1.displayName;const h6=Np("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"}}),st=g.forwardRef(({className:e,variant:t,size:n,asChild:s=!1,...r},i)=>{const o=s?m5:"button";return a.jsx(o,{className:Se(h6({variant:t,size:n,className:e})),ref:i,...r})});st.displayName="Button";const q1="modulya.cookie-consent.v1",of="modulya:open-cookie-preferences",b0={necessary:!0,preferences:!1,analytics:!1,marketing:!1},x0=()=>{try{const e=localStorage.getItem(q1);return e?JSON.parse(e):null}catch{return null}},Ld=e=>{const t={categories:e,timestamp:new Date().toISOString(),version:1};localStorage.setItem(q1,JSON.stringify(t)),window.dispatchEvent(new CustomEvent("modulya:cookie-consent",{detail:t}))},m6=()=>{window.dispatchEvent(new CustomEvent(of))},g6=()=>{const[e,t]=g.useState(!1),[n,s]=g.useState(!1),[r,i]=g.useState(!1),[o,l]=g.useState(b0);g.useEffect(()=>{const p=x0();p?l(p.categories):t(!0);const y=()=>{const v=x0();v&&l(v.categories),i(!0),t(!0),s(!1)};return window.addEventListener(of,y),()=>window.removeEventListener(of,y)},[]);const c=()=>{Ld({necessary:!0,preferences:!0,analytics:!0,marketing:!0}),t(!1),i(!1),s(!1)},d=()=>{Ld(b0),t(!1),i(!1),s(!1)},u=()=>{Ld({...o,necessary:!0}),t(!1),i(!1),s(!1)},f=()=>{s(!0)},h=()=>{s(!1)};return e?n?a.jsx("button",{onClick:h,className:"fixed bottom-6 right-6 z-[100] pointer-events-auto rounded-full border border-border bg-background/95 backdrop-blur-md shadow-2xl p-3 hover:scale-105 transition-transform cursor-pointer","aria-label":"Abrir preferencias de cookies",title:"Cookies",children:a.jsxs("svg",{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",className:"text-foreground",children:[a.jsx("path",{d:"M12 2a10 10 0 1 0 10 10 4 4 0 0 1-5-5 4 4 0 0 1-5-5"}),a.jsx("path",{d:"M8.5 8.5v.01"}),a.jsx("path",{d:"M16 15v.01"}),a.jsx("path",{d:"M12 12v.01"}),a.jsx("path",{d:"M11 17v.01"}),a.jsx("path",{d:"M7 13v.01"})]})}):a.jsx("div",{role:"dialog","aria-modal":"false","aria-label":"Política de cookies",className:"fixed bottom-6 right-6 z-[100] pointer-events-none",children:a.jsx("div",{className:`pointer-events-auto rounded-2xl border border-border bg-background/95 backdrop-blur-md shadow-2xl ${r?"w-[22rem] sm:w-[28rem]":"w-[20rem] sm:w-[24rem]"}`,children:r?a.jsxs("div",{className:"p-4 space-y-4 max-h-[70vh] overflow-y-auto",children:[a.jsxs("div",{className:"flex items-center justify-between",children:[a.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"Preferencias de cookies"}),a.jsx("button",{onClick:f,className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer p-1","aria-label":"Cerrar banner de cookies",children:a.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[a.jsx("path",{d:"M18 6 6 18"}),a.jsx("path",{d:"m6 6 12 12"})]})})]}),a.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:"Las cookies técnicas son necesarias y no pueden desactivarse."}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(Ko,{title:"Técnicas (necesarias)",description:"Funcionamiento básico, seguridad y accesibilidad.",checked:!0,disabled:!0}),a.jsx(Ko,{title:"Preferencias",description:"Idioma, tema visual y personalización.",checked:o.preferences,onChange:p=>l(y=>({...y,preferences:p}))}),a.jsx(Ko,{title:"Analíticas",description:"Entender el uso del sitio para mejorarlo.",checked:o.analytics,onChange:p=>l(y=>({...y,analytics:p}))}),a.jsx(Ko,{title:"Marketing",description:"Contenido relevante y medición de campañas.",checked:o.marketing,onChange:p=>l(y=>({...y,marketing:p}))})]}),a.jsxs("div",{className:"flex flex-wrap gap-2 pt-1",children:[a.jsx(st,{variant:"outline",size:"sm",onClick:d,children:"Rechazar todas"}),a.jsx(st,{variant:"outline",size:"sm",onClick:u,children:"Guardar"}),a.jsx(st,{size:"sm",onClick:c,children:"Aceptar todas"})]})]}):a.jsxs("div",{className:"overflow-hidden rounded-2xl",children:[a.jsxs("div",{className:"flex items-center justify-between px-4 pt-3",children:[a.jsx("h2",{className:"text-sm font-semibold text-foreground",children:"Cookies"}),a.jsx("button",{onClick:f,className:"text-muted-foreground hover:text-foreground transition-colors cursor-pointer p-1","aria-label":"Cerrar banner de cookies",children:a.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[a.jsx("path",{d:"M18 6 6 18"}),a.jsx("path",{d:"m6 6 12 12"})]})})]}),a.jsxs("div",{className:"px-4 pb-4 pt-1 space-y-3",children:[a.jsxs("p",{className:"text-xs text-muted-foreground leading-relaxed",children:["Utilizamos cookies para fines técnicos, analíticos y de marketing."," ",a.jsx(F,{to:"/cookies",className:"underline underline-offset-2 hover:text-foreground",children:"Más info"})]}),a.jsxs("div",{className:"flex flex-wrap gap-2",children:[a.jsx(st,{variant:"outline",size:"sm",onClick:d,children:"Rechazar"}),a.jsx(st,{variant:"outline",size:"sm",onClick:()=>i(!0),children:"Configurar"}),a.jsx(st,{size:"sm",onClick:c,children:"Aceptar"})]})]})]})})}):null},Ko=({title:e,description:t,checked:n,disabled:s,onChange:r})=>a.jsxs("div",{className:"flex items-start justify-between gap-4 roun
403ded-lg border border-border bg-muted/30 p-4",children:[a.jsxs("div",{className:"space-y-1",children:[a.jsx("p",{className:"text-sm font-medium text-foreground",children:e}),a.jsx("p",{className:"text-xs text-muted-foreground leading-relaxed",children:t})]}),a.jsx(B1,{checked:n,disabled:s,onCheckedChange:i=>r==null?void 0:r(!!i),"aria-label":e})]}),ia={fontScale:1,grayscale:!1,highContrast:!1,negativeContrast:!1,lightBackground:!1,underlineLinks:!1,legibleFont:!1},lf="modulya-a11y",b6=.85,x6=1.5,v0=.1;function v6(){if(typeof window>"u")return ia;try{const e=localStorage.getItem(lf);return e?{...ia,...JSON.parse(e)}:ia}catch{return ia}}function Md(e){const t=document.documentElement;t.style.setProperty("--a11y-font-scale",String(e.fontScale)),t.classList.toggle("a11y-grayscale",e.grayscale),t.classList.toggle("a11y-high-contrast",e.highContrast),t.classList.toggle("a11y-negative",e.negativeContrast),t.classList.toggle("a11y-light-bg",e.lightBackground),t.classList.toggle("a11y-underline-links",e.underlineLinks),t.classList.toggle("a11y-legible-font",e.legibleFont)}function y6(){const[e,t]=g.useState(!1),[n,s]=g.useState(ia);g.useEffect(()=>{const l=v6();s(l),Md(l)},[]);const r=g.useCallback(l=>{s(c=>{const d={...c,...l};Md(d);try{localStorage.setItem(lf,JSON.stringify(d))}catch{}return d})},[]),i=g.useCallback(()=>{Md(ia),s(ia);try{localStorage.removeItem(lf)}catch{}},[]),o=[{label:"Aumentar texto",icon:Iw,onClick:()=>r({fontScale:Math.min(x6,+(n.fontScale+v0).toFixed(2))}),active:n.fontScale>1},{label:"Disminuir texto",icon:Lw,onClick:()=>r({fontScale:Math.max(b6,+(n.fontScale-v0).toFixed(2))}),active:n.fontScale<1},{label:"Escala de grises",icon:dw,onClick:()=>r({grayscale:!n.grayscale}),active:n.grayscale},{label:"Alto contraste",icon:pw,onClick:()=>r({highContrast:!n.highContrast,negativeContrast:!1}),active:n.highContrast},{label:"Contraste negativo",icon:_v,onClick:()=>r({negativeContrast:!n.negativeContrast,highContrast:!1}),active:n.negativeContrast},{label:"Fondo claro",icon:bw,onClick:()=>
403r({lightBackground:!n.lightBackground}),active:n.lightBackground},{label:"Subrayar enlaces",icon:xw,onClick:()=>r({underlineLinks:!n.underlineLinks}),active:n.underlineLinks},{label:"Fuente legible",icon:Aw,onClick:()=>r({legibleFont:!n.legibleFont}),active:n.legibleFont}];return a.jsxs("div",{className:"notranslate fixed right-4 top-1/2 -translate-y-1/2 z-[60] flex flex-row-reverse items-start gap-2",translate:"no",children:[a.jsx("button",{type:"button",onClick:()=>t(l=>!l),"aria-label":e?"Cerrar herramientas de accesibilidad":"Abrir herramientas de accesibilidad","aria-expanded":e,className:"flex h-12 w-12 items-center justify-center rounded-md bg-primary text-primary-foreground shadow-lg hover:opacity-90 transition-opacity focus:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",children:a.jsx(cw,{className:"h-6 w-6","aria-hidden":"true"})}),e&&a.jsxs("div",{role:"dialog","aria-label":"Herramientas de accesibilidad",className:"w-64 rounded-md border border-border bg-background text-foreground shadow-xl overflow-hidden",children:[a.jsxs("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border",children:[a.jsxs("h2",{className:"text-sm font-semibold leading-tight",children:["Herramientas de",a.jsx("br",{}),"accesibilidad"]}),a.jsx("button",{type:"button",onClick:()=>t(!1),"aria-label":"Cerrar",className:"text-muted-foreground hover:text-foreground",children:a.jsx(Ue,{className:"h-4 w-4"})})]}),a.jsxs("ul",{className:"py-1",children:[o.map(l=>{const c=l.icon;return a.jsx("li",{children:a.jsxs("button",{type:"button",onClick:l.onClick,"aria-pressed":l.active,className:`flex w-full items-center gap-3 px-4 py-2.5 text-sm text-left hover:bg-muted transition-colors ${l.active?"bg-muted font-medium":""}`,children:[a.jsx(c,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}),a.jsx("span",{children:l.label})]})},l.label)}),a.jsx("li",{className:"border-t border-border mt-1 pt-1",children:a.jsxs("button",{type:"button",onClick:i,className:"flex w-full items-center gap-3 px-4 py-2.5 text-sm text-left hover:bg-muted transition-colors",children:[a.jsx(Sw,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}),a.jsx("span",{children:"Restablecer"})]})})]})]})]})}const V1="/assets/logo-modulya-CayL-ZsM.png",Dd="/assets/logo-moduss-CZfdqdil.png",_6={theme:"system",setTheme:()=>null},H1=g.createContext(_6);function w6({children:e,defaultTheme:t="system",storageKey:n="vite-ui-theme",...s}){const[r,i]=g.useState(()=>localStorage.getItem(n)||t);g.useEffect(()=>{const l=window.document.documentElement;if(l.classList.remove("light","dark"),r==="system"){const c=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";l.classList.add(c);return}l.classList.add(r)},[r]);const o={theme:r,setTheme:l=>{localStorage.setItem(n,l),i(l)}};return a.jsx(H1.Provider,{...s,value:o,children:e})}const j6=()=>{const e=g.useContext(H1);if(e===void 0)throw new Error("useTheme must be used within a ThemeProvider");return e};function y0({heroStyle:e=!1}){const{theme:t,setTheme:n}=j6(),s=()=>{n(t==="light"?"dark":"light")};return a.jsxs(st,{variant:"ghost",size:"icon",onClick:s,"aria-label":`Switch to ${t==="light"?"dark":"light"} mode`,className:`w-12 h-12 transition-colors duration-300 ${e?"text-white hover:bg-white/10":"text-foreground hover:bg-muted"}`,children:[a.jsx(Tw,{className:"h-10 w-10 rotate-0 scale-100 transition-all dark:-rotate-90 dark:scale-0"}),a.jsx(ww,{className:"absolute h-10 w-10 rotate-90 scale-0 transition-all dark:rotate-0 dark:scale-100"}),a.jsx("span",{className:"sr-only",children:"Toggle theme"})]})}const ac="googtrans",W1="modulya-language";function _0(){if(typeof document>"u")return"es";const e=window.localStorage.getItem(W1);if(e==="en"||e==="es")return e;const t=document.cookie.match(/googtrans=\/[a-z]{2}\/([a-z]{2})/i);return(t==null?void 0:t[1])==="en"?"en":"es"}function k6(e){window.localStorage.setItem(W1,e)}function Z1(){return document.querySelector("select.goog-te-combo")}function N6(e){const t=window.location.hostname,n=t.split("."),s=new Set([t]);n.length>
403=2&&s.add("."+n.slice(-2).join(".")),s.forEach(r=>{document.cookie=`${ac}=${e};path=/;domain=${r}`}),document.cookie=`${ac}=${e};path=/`}function $6(){const e=window.location.hostname,t=e.split("."),n=new Set([e]);t.length>=2&&n.add("."+t.slice(-2).join(".")),n.forEach(s=>{document.cookie=`${ac}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/;domain=${s}`}),document.cookie=`${ac}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/`}function S6(){var n,s;const e=document.getElementById("google_translate_element"),t=window;if(!(!e||Z1()||!((s=(n=t.google)==null?void 0:n.translate)!=null&&s.TranslateElement)))try{e.innerHTML="",new t.google.translate.TranslateElement({pageLanguage:"es",includedLanguages:"es,en",autoDisplay:!1},"google_translate_element")}catch{}}function w0(e=2500){return new Promise(t=>{const n=Date.now(),s=()=>{S6();const r=Z1();if(r)return t(r);if(Date.now()-n>e)return t(null);setTimeout(s,80)};s()})}function Ud(e,t){return Array.from(e.options).some(s=>s.value===t)?(e.value=t,e.dispatchEvent(new Event("input",{bubbles:!0})),e.dispatchEvent(new Event("change",{bubbles:!0})),!0):!1}function E6(){const e=Array.from(document.querySelectorAll("iframe"));for(const t of e)try{const n=t.contentDocument;if(!n)continue;const s=n.querySelector('button[id$="restore"]'),r=Array.from(n.querySelectorAll("button, a")).find(o=>/show original|mostrar original|original/i.test(o.textContent??"")),i=s??r;if(i)return i.click(),!0}catch{}return!1}async function j0(e){if(e==="es"){if($6(),E6())return!0;const n=await w0(900);return n?Ud(n,"")||Ud(n,"es"):!0}N6(`/es/${e}`);const t=await w0();return t?Ud(t,e):!1}function k0({heroStyle:e=!1}){const[t,n]=g.useState("es"),s=g.useRef(0),r=Ds();g.useEffect(()=>{n(_0())},[]),g.useEffect(()=>{const d=_0();if(n(d),d!=="en")return;const u=window.setTimeout(()=>{j0("en")},120);return()=>window.clearTimeout(u)},[r.pathname]);const i=async d=>{const u=s.current+1;s.current=u,k6(d),n(d),!(!await j0(d)||s.current!==u)&&n(d)},o="text-[11px] uppercase tracking-wider font-semibold px-2 py-1 rounded-full transition-all duration-300",l=e?"bg-white text-black shadow-[0_2px_8px_rgba(255,255,255,0.35)]":"bg-foreground text-background shadow-sm",c=e?"text-white/70 hover:text-white hover:bg-white/10":"text-muted-foreground hover:text-foreground hover:bg-muted";return a.jsxs("div",{className:`notranslate inline-flex items-center gap-1 rounded-full border px-1.5 py-1 shadow-sm backdrop-blur-md transition-all ${e?"border-white/40 bg-white/10":"border-border bg-background/60 dark:border-white/40"}`,translate:"no",children:[a.jsx("button",{type:"button",onClick:()=>i("es"),"aria-label":"Cambiar a español","aria-pressed":t==="es",className:`${o} ${t==="es"?l:c}`,children:"ES"}),a.jsx("button",{type:"button",onClick:()=>i("en"),"aria-label":"Switch to English","aria-pressed":t==="en",className:`${o} ${t==="en"?l:c}`,children:"EN"})]})}const C6=1150,N0=["#1e9eb1","#1e9eb1","#1e9eb1","#15becf","#0d7a8a","#25c4d9"],T6=({active:e,origin:t,bounds:n,imageSrc:s,onComplete:r})=>{const i=g.useRef(null),o=g.useRef(0),l=g.useRef(0),c=g.useRef([]),d=g.useRef(null),u=g.useCallback(f=>{const h=[],p=Math.max(12,Math.min(20,n.height/3)),y=Math.max(4,Math.ceil(n.width/p)),v=Math.max(4,Math.ceil(n.height/p));for(let _=0;_<v;_++)for(let x=0;x<y;x++){const b=n.x+x/y*n.width,m=n.y+_/v*n.height,w=n.width/y,j=n.height/v,k=b+w/2,N=m+j/2,C=Math.atan2(N-t.y,k-t.x)+(Math.random()-.5)*.9,R=5+Math.random()*14;h.push({x:k,y:N,vx:Math.cos(C)*R,vy:Math.sin(C)*R-Math.random()*2,width:w,height:j,sx:x/y*(f.naturalWidth||n.width),sy:_/v*(f.naturalHeight||n.height),sw:(f.naturalWidth||n.width)/y,sh:(f.naturalHeight||n.height)/v,rotation:Math.random()*Math.PI*2,rotationSpeed:(Math.random()-.5)*.45,color:N0[Math.floor(Math.random()*N0.length)],alpha:1,decay:.007+Math.random()*.01})}c.current=h},[n,t]);return g.useEffect(()=>{if(!e)return;const f=i.current;if(!f)return;const h=f.getContext("2d");if(!h)return;f.width=window.innerWidth,f.height=window.innerHeight;const p=new Image,y=_=>{const x=_-l.current,b=Math.min(x/C6,1);if(h.clearRect(0,0,f.width,f.height),b<.3){const m=(1-b/.3)*6;f.style.transform=`translate(${(Math.random()-.5)*m}px, ${(Math.random()-.5)*m}px)`}else f.style.transform="none";if(b<.5){const m=Math.max(0,b*2*Math.max(f.width,f.height)*.5),w=1-b*2;h.beginPath(),h.arc(t.x,t.y,m,0,Math.PI*2),h.strokeStyle=`rgba(177, 200, 84, ${w*.6})`,h.lineWidth=3+(1-b*2)*8,h.stroke()}for(const m of c.current)m.x+=m.vx,m.y+=m.vy,m.vx*=.97,m.vy*=.97,m.vy+=.1,m.rotation+=m.rotationSpeed,m.alpha=Math.max(0,m.alpha-m.decay),!(m.alpha<=0)&&(h.save(),h.translate(m.x,m.y),h.rotate(m.rotation),h.globalAlpha=m.alpha,p.complete&&p.naturalWi
403dth>0?h.drawImage(p,m.sx,m.sy,m.sw,m.sh,-m.width/2,-m.height/2,m.width,m.height):(h.fillStyle=m.color,h.fillRect(-m.width/2,-m.height/2,m.width,m.height)),h.restore());if(d.current){const m=Math.max(0,(b-.4)/.6);d.current.style.backgroundColor=`rgba(0, 0, 0, ${m*.85})`}b<1?o.current=requestAnimationFrame(y):r()},v=()=>{u(p),l.current=performance.now(),o.current=requestAnimationFrame(y)};return p.onload=v,p.src=s,p.complete&&p.naturalWidth>0&&v(),()=>{p.onload=null,cancelAnimationFrame(o.current)}},[e,s,u,r,t]),e?Lr.createPortal(a.jsxs("div",{className:"fixed inset-0 z-[9999] pointer-events-auto",children:[a.jsx("div",{ref:d,className:"absolute inset-0"}),a.jsx("canvas",{ref:i,className:"absolute inset-0"})]}),document.body):null},A6="https://modusshub.lovable.app/auth",de=()=>{const[e,t]=g.useState(!1),[n,s]=g.useState(!1),[r,i]=g.useState(!1),[o,l]=g.useState(!1),[c,d]=g.useState("dark"),[u,f]=g.useState({active:!1,origin:{x:0,y:0},bounds:{x:0,y:0,width:0,height:0}}),h=Ds(),y=["/","/work/senior-living-mazagon"].includes(h.pathname);g.useEffect(()=>{const m=()=>{s(window.scrollY>50)};return window.addEventListener("scroll",m),()=>window.removeEventListener("scroll",m)},[]),g.useEffect(()=>{const m=setTimeout(()=>i(!0),100);return()=>clearTimeout(m)},[]),g.useEffect(()=>{const m=w=>{var k;l(!!((k=w.detail)!=null&&k.active))};return window.addEventListener("hero-interact",m),()=>window.removeEventListener("hero-interact",m)},[]),g.useEffect(()=>{const m=w=>{var k;const j=w;(k=j.detail)!=null&&k.tone&&d(j.detail.tone)};return window.addEventListener("hero-tone",m),()=>window.removeEventListener("hero-tone",m)},[]);const _=y&&!n&&c==="dark",x=g.useCallback(m=>{m.preventDefault();const w=m.currentTarget,k=(w.querySelector("img")??w).getBoundingClientRect();f({active:!0,origin:{x:k.left+k.width/2,y:k.top+k.height/2},bounds:{x:k.left,y:k.top,width:k.width,height:k.height}})},[]),b=g.useCallback(()=>{f({active:!1,origin:{x:0,y:0},bounds:{x:0,y:0,width:0,height:0}}),window.open(A6,"_blank")},[]);return a.jsxs(a.Fragment,{children:[a.jsxs("nav",{className:`fixed top-0 left-0 right-0 z-50 transition-all duration-500 ${n?"bg-background/80 backdrop-blur-md border-b border-border":"bg-transparent border-b border-transparent"}`,children:[a.jsxs("div",{className:"container mx-auto px-4 md:px-6 py-3 md:py-4 flex items-center justify-between gap-3",children:[a.jsx(F,{to:"/",className:"transition-opacity duration-500 hover:opacity-80 overflow-visible shrink-0",children:a.jsx("img",{src:V1,alt:"Logo de Modulya",className:`h-14 md:h-16 lg:h-20 transition-all duration-1000 ease-out ${_?"brightness-0 invert":"brightness-0 dark:brightness-0 dark:invert"}`,style:{transform:r?"translateY(0)":"translateY(-120px)",opacity:r?1:0}})}),a.jsxs("div",{className:"hidden xl:flex items-center gap-8 xl:gap-12",children:[a.jsx(F,{to:"/",className:`text-minimal transition-colors duration-500 ${h.pathname==="/"?"":_?"text-white/70 hover:text-white":"text-muted-foreground hover:text-foreground"}`,style:h.pathname==="/"?{color:"#b1c854"}:void 0,children:"INICIO"}),[{label:"NOSOTROS",href:"/about"},{label:"WORK",href:"/work"},{label:"E2E",href:"/e2e"},{label:"FÁBRICA",href:"/fabrica"},{label:"IA",href:"/ia"}].map(m=>a.jsx(F,{to:m.href,className:`text-minimal transition-colors duration-500 ${h.pathname===m.href?"":_?"text-white/70 hover:text-white":"text-muted-foreground hover:text-foreground"}`,style:h.pathname===m.href?{color:"#b1c854"}:void 0,children:m.label},m.label)),a.jsxs("button",{onClick:x,className:"flex flex-col items-center gap-0.5 transition-opacity duration-500 hover:opacity-70 cursor-pointer bg-transparent border-none p-0",children:[a.jsx("img",{src:Dd,alt:"Universo Moduss",className:`h-10 xl:h-12 transition-all duration-500 ${_?"brightness-0 invert":"brightness-0 dark:brightness-0 dark:invert"}`}),a.jsx("span",{className:`text-[10px] uppercase tracking-wider font-medium transition-colors duration-500 ${_?"text-white/70":"text-muted-foreground"}`,children:"Plataforma"})]}),[{label:"SERVICIOS",href:"/services"},{label:"CONTACTO",href:"/contact"}].map(m=>a.jsx(F,{to:m.href,className:`text-minimal transition-colors duration-500 ${h.pathname===m.href?"":_?"text-white/70 hover:text-white":"text-muted-foreground hover:text-foreground"}`,style:h.pathname===m.href?{color:"#b1c854"}:void 0,children:m.label},m.label))]}),a.jsxs("div",{className:"hidden xl:flex items-center gap-3 xl:gap-4 shrink-0",children:[a.jsx(k0,{heroStyle:_}),a.jsx(y0,{heroStyle:_})]}),a.jsxs("div",{className:"flex xl:hidden items-center gap-2 sm:gap-3 shrink-0",children:[a.jsx(k0,{heroStyle:_}),a.jsx(y0,{heroStyle:_}),a.jsx(st,{variant:"ghost",size:"sm","aria-label":e?"Cerrar menú":"Abrir menú",className:`px-2 text-xl transition-colors duration-500 ${_?"text-white hover:bg-white/10 hover:text-white":"text-foreground"}`,onClick:()=>t(!e),children:e?"✕":"☰"})]})]}),e&&a.jsx("div",{className:"xl:hidden bg-background/95 backdrop-blur-md border-b border-border max-h-[calc(100vh-4.5rem)] overflow-y-auto",children:a.jsxs("div",{className:"container mx-auto px-6 py-6 flex flex-col gap-1",children:[[{label:"INICIO",href:"/"},{label:"NOSOTROS",href:"/about"},{label:"WORK",href:"/work"},{label:"E2E",href:"/e2e"},{label:"FÁBRICA",href:"/fabrica"},{label:"IA",href:"/ia"}].map(m=>a.jsx(F,{to:m.href,onClick:()=>t(!1),className:`block text-minimal py-2 transition-colors duration-300 ${h.pathname===m.href?"":"text-muted-foreground hover:text-foreground"}`,style:h.pathname===m.href?{color:"#b1c854"}:void 0,children:m.label},m.label)),a.jsx("div",{className:"my-3 h-px bg-border"}),a.jsxs("button",{onClick:m=>{t(!1),x(m)},className:"flex items-center gap-3 py-2 bg-transparent border-none cursor-pointer",children:[a.jsx("img",{src:Dd,alt:"Universo Moduss",className:"h-9 brightness-0 dark:brightness-0 dark:invert"}),a.jsx("span",{className:"text-[10px] uppercase tracking-wider font-medium text-muted-foreground",children:"Plataforma"})]}),a.jsx("div",{className:"my-3 h-px bg-border"}),[{label:"SERVICIOS",href:"/services"},{label:"CONTACTO",href:"/contact"}].map(m=>a.jsx(F,{to:m.href,onClick:()=>t(!1),className:`block text-minimal py-2 transition-colors duration-300 ${h.pathname===m.href?"":"text-muted-foreground hover:text-foreground"}`,style:h.pathname===m.href?{color:"#b1c854"}:void 0,children:m.label},m.label))]})})]}),a.jsx(T6,{active:u.active,origin:u.origin,bounds:u.bounds,imageSrc:Dd,onComplete:b})]})},$0="https://modulya.lovable.app",ue=({title:e,description:t,path:n,type:s="website",image:r})=>{const i=`${$0}${n}
403`,o=r!=null&&r.startsWith("/")?`${$0}${r}`:r;return a.jsxs(o5,{children:[a.jsx("title",{children:e}),a.jsx("meta",{name:"description",content:t}),a.jsx("link",{rel:"canonical",href:i}),a.jsx("meta",{property:"og:title",content:e}),a.jsx("meta",{property:"og:description",content:t}),a.jsx("meta",{property:"og:url",content:i}),a.jsx("meta",{property:"og:type",content:s}),o&&a.jsx("meta",{property:"og:image",content:o}),a.jsx("meta",{name:"twitter:title",content:e}),a.jsx("meta",{name:"twitter:description",content:t}),o&&a.jsx("meta",{name:"twitter:image",content:o})]})},R6="/assets/logo-aeci-BvBRXhKO.png",P6=1,O6="1b52baf7-5bc9-41b8-9e82-f1e4157581e8",z6="22885900-7753-4d74-9e2f-5cb1776d4f5d",I6="/__l5e/assets-v1/1b52baf7-5bc9-41b8-9e82-f1e4157581e8/proveedores-sostenibles.png",L6="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/1b52baf7-5bc9-41b8-9e82-f1e4157581e8/proveedores-sostenibles.png",M6="proveedores-sostenibles.png",D6=107370,U6="image/png",F6="2026-06-18T04:34:42Z",B6={version:P6,asset_id:O6,project_id:z6,url:I6,r2_key:L6,original_filename:M6,size:D6,content_type:U6,created_at:F6},q6=1,V6="bdb8399c-c24b-4e47-ba58-ee20c753509d",H6="22885900-7753-4d74-9e2f-5cb1776d4f5d",W6="/__l5e/assets-v1/bdb8399c-c24b-4e47-ba58-ee20c753509d/eurocert-iso-9001-white.png",Z6="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/bdb8399c-c24b-4e47-ba58-ee20c753509d/eurocert-iso-9001-white.png",G6="eurocert-iso-9001-white.png",K6=121905,J6="image/png",Y6="2026-07-01T10:50:21Z",Q6={version:q6,asset_id:V6,project_id:H6,url:W6,r2_key:Z6,original_filename:G6,size:K6,content_type:J6,created_at:Y6},X6=1,ek="050bbe35-c43e-40fb-883d-eb7d1d30c989",tk="22885900-7753-4d74-9e2f-5cb1776d4f5d",nk="/__l5e/assets-v1/050bbe35-c43e-40fb-883d-eb7d1d30c989/eurocert-iso-14001-white.png",sk="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/050bbe35-c43e-40fb-883d-eb7d1d30c989/eurocert-iso-14001-white.png",ak="eurocert-iso-14001-white.png",rk=121595,ik="image/png",ok="2026-07-01T10:50:23Z",lk={version:X6,asset_id:ek,project_id:tk,url:nk,r2_key:sk,original_filename:ak,size:rk,content_type:ik,created_at:ok},ck=1,dk="ea42a868-2944-49dc-a7af-00f7b7b527a5",uk="22885900-7753-4d74-9e2f-5cb1776d4f5d",fk="/__l5e/assets-v1/ea42a868-2944-49dc-a7af-00f7b7b527a5/eurocert-iso-45001-white.png",pk="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/ea42a868-2944-49dc-a7af-00f7b7b527a5/eurocert-iso-45001-white.png",hk="eurocert-iso-45001-white.png",mk=121650,gk="image/png",bk="2026-07-01T10:50:26Z",xk={version:ck,asset_id:dk,project_id:uk,url:fk,r2_key:pk,original_filename:hk,size:mk,content_type:gk,created_at:bk},vk=[{label:"INICIO",href:"/"},{label:"NOSOTROS",href:"/about"},{label:"WORK",href:"/work"},{label:"E2E",href:"/e2e"},{label:"FÁBRICA",href:"/fabrica"},{label:"IA",href:"/ia"},{label:"SERVICIOS",href:"/services"},{label:"CONTACTO",href:"/contact"}],S0=[{src:R6,alt:"Asociación Española de Construcción Industrializada",invert:!0},{src:Q6.url,alt:"EuroCert · EN ISO 9001:2015",invert:!0},{src:lk.url,alt:"EuroCert · EN ISO 14001:2015",invert:!0},{src:xk.url,alt:"EuroCert · EN ISO 45001:2018",invert:!0},{src:B6.url,alt:"Programa de Capacitación Proveedores Sostenibles",invert:!0}],fe=()=>{const[e,t]=g.useState(null),n=g.useCallback(()=>t(null),[]);return g.useEffect(()=>{if(!e)return;const s=r=>{r.key==="Escape"&&n()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[e,n]),a.jsxs("footer",{className:"bg-foreground text-background mt-24",children:[a.jsx("div",{className:"border-b border-background/10",children:a.jsxs("div",{className:"container mx-auto px-6 pt-10 pb-6",children:[a.jsx("h3",{className:"text-minimal text-background/50 mb-4 text-center",children:"Certificaciones"}),a.jsx("div",{className:"group relative overflow-hidden",style:{maskImage:"linear-gradient(to right, transparent 0, black 8%, black 92%, transparent 100%)",WebkitMaskImage:"linear-gradient(to right, transparent 0, black 8%, black 92%, transparent 100%)"},children:a.jsx("div",{className:"flex w-max animate-marquee group-hover:[animation-play-state:paused]",children:[...S0,...S0].map((s,r)=>a.jsx("button",{onClick:()=>t(s),className:"flex items-center justify-center px-10 shrink-0 bg-transparent border-none cursor-pointer","aria-label":`Ampliar ${s.alt}`,children:a.jsx("img",{src:s.src,alt:s.alt,className:`h-14 w-auto opacity-90 ${s.invert?"brightness-0 invert dark:invert-0":""}`})},r))})})]})}),e&&a.jsx("div",{className:"cert-modal fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm p-6",onClick:n,role:"dialog","aria-modal":"true","aria-label":e.alt,children:a.jsxs("div",{className:"relative max-w-4xl w-full flex flex-col items-center",onClick:s=>s.stopPropagation(),children:[a.jsx("img",{src:e.src,alt:e.alt,className:`max-h-[80vh] w-auto object-contain rounded ${e.invert?"brightness-0 invert":""}`}),a.jsx("p",{className:"mt-4 text-center text-sm text-white/80",children:e.alt}),a.jsx("button",{onClick:n,className:"absolute -top-10 right-0 text-white/80 hover:text-white text-2xl leading-none","aria-label":"Cerrar",children:"×"})]})}),a.jsxs("div",{className:"container mx-auto px-6 py-16",children:[a.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-12",children:[a.jsxs("div",{className:"md:col-span-1",children:[a.jsx(F,{to:"/",className:"inline-block",children:a.jsx("img",{src:V1,alt:"modulya",className:"h-16 brightness-0 invert dark:invert-0"})}),a.jsx("p",{className:"mt-6 text-sm text-background/60 leading-relaxed",children:"Construcción industrializada y arquitectura modular."}),a.jsxs("p",{className:"mt-4 text-xs text-background/50 leading-relaxed",children:["Calle El Cerro nº 23 bajo",a.jsx("br",{}),"21730, Almonte (Huelva)"]})]}),a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("h3",{className:"text-minimal text-background/50 mb-6",children:"Navegación"}),a.jsx("nav",{className:"grid grid-cols-2 gap-x-6 gap-y-3",children:vk.map(s=>a.jsx(F,{to:s.href,className:"text-sm tracking-wide text-background/80 hover:text-background transition-colors",children:s.label},s.label))})]})]}),a.jsxs("div",{className:"mt-16 pt-8 border-t border-background/15 flex flex-col md:flex-row items-center justify-between gap-4",children:[a.jsxs("p",{className:"text-xs text-background/50",children:["© ",new Date().getFullYear()," Modulya S.L. — CIF B21595285. Todos los derechos reservados."]}),a.jsxs("div",{className:"flex flex-wrap items-center gap-x-6 gap-y-2",children:[a.jsx(F,{to:"/privacidad",className:"text-xs text-background/70 hover:text-background underline underline-offset-4 transition-colors",children:"Política de privacidad y aviso legal"}),a.jsx(F,{to:"/cookies",className:"text-xs text-background/70 hover:text-background underline underline-offset-4 transition-colors",children:"Política de cookies"})]})]})]})]})},E0=[{start:0,end:5,title:"Espacios para la vida",subtitle:"Luz, naturaleza y materiales nobles para reconectar con tu yo, con el entorno, y con los demás."},{start:5,end:10,title:"Universo MODUSS",subtitle:"ModussHub, ModussApp, IA, BIM y Lean convierten MODUSS en una plataforma replicable para capturar valor en diseño, en la producción a través de ModussFab, ejecución/instalación/ensamblaje en el sitio y postventa."},{start:10,end:15,title:"ModussFab.",subtitle:"La fábrica acelera y escala la construcción modular. Automatización, precisión y escalabilidad para convert
403ir innovación en capacidad productiva real."},{start:15,end:19,title:"Construimos espacios que DIGNIFICAN.",subtitle:"Porque cuando el espacio se adapta a la vida, la vida florece."},{start:19,end:26,title:"Imaginar y hacer posible espacios extraordinarios que dignifiquen la vida de las personas y generen entornos más sostenibles, humanos y prósperos.",subtitle:""},{start:26,end:31,title:"Vivir sin límites",subtitle:"Espacios flexibles y versátiles que se adaptan a distintas formas de hogares, ciclos vitales, trabajos y lugares de convivencia comunitaria."},{start:31,end:999,title:"El Futuro se construye hoy, SOSTENIBLE",subtitle:"Naturaleza integrada, arquitectura contemporánea y un lenguaje de sostenibilidad visible para construir hoy espacios mejores."}],yk=()=>{const e=g.useRef(null),[t,n]=g.useState(0),[s,r]=g.useState(!0),[i,o]=g.useState(!1),[l,c]=g.useState(!0);g.useEffect(()=>{const u=e.current;if(!u)return;const f=document.createElement("canvas");f.width=32,f.height=8;const h=f.getContext("2d",{willReadFrequently:!0});if(!h)return;let p=0,y=null;const v=()=>{if(u.readyState>=2&&u.videoWidth>0)try{const b=u.videoWidth,m=Math.max(1,Math.floor(u.videoHeight*.18));h.drawImage(u,0,0,b,m,0,0,f.width,f.height);const w=h.getImageData(0,0,f.width,f.height).data;let j=0;const k=w.length/4;for(let R=0;R<w.length;R+=4)j+=.2126*w[R]+.7152*w[R+1]+.0722*w[R+2];const C=j/k>140?"light":"dark";C!==y&&(y=C,window.dispatchEvent(new CustomEvent("hero-tone",{detail:{tone:C}})))}catch{}p=window.setTimeout(v,350)};return v(),()=>{window.clearTimeout(p)}},[]),g.useEffect(()=>{const u=e.current;if(u&&(u.muted=l,!l)){const f=u.play();f&&typeof f.catch=="function"&&f.catch(()=>{})}},[l]),g.useEffect(()=>{window.dispatchEvent(new CustomEvent("hero-interact",{detail:{active:i}}))},[i]),g.useEffect(()=>{const u=e.current;if(!u)return;const f=()=>{const h=u.currentTime,p=E0.findIndex(y=>h>=y.start&&h<y.end);p===-1||p===t||(r(!1),window.setTimeout(()=>{n(p),r(!0)},400))};return u.addEventListener("timeupdate",f),u.addEventListener("seeked",f),()=>{u.removeEventListener("timeupdate",f),u.removeEventListener("seeked",f)}},[t]);const d=E0[t];return a.jsxs("section",{className:"relative h-screen flex items-center justify-center overflow-hidden",onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),onTouchStart:()=>o(!0),onTouchEnd:()=>o(!1),onTouchCancel:()=>o(!1),children:[a.jsx("video",{ref:e,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"auto",poster:"/videos/hero-poster.jpg",width:1920,height:1080,className:"absolute inset-0 w-full h-full object-cover transition-[filter] duration-700",style:{filter:i?"grayscale(0) contrast(0.97) saturate(0.95)":"grayscale(1) contrast(0.92) brightness(1.02)"},onLoadedMetadata:u=>{u.currentTarget.playbackRate=.8},children:a.jsx("source",{src:"/videos/hero.mp4",type:"video/mp4"})}),a.jsxs("div",{className:"relative z-10 text-center max-w-5xl mx-auto px-6",children:[a.jsx("h1",{className:"text-3xl md:text-4xl lg:text-5xl font-bold text-white mb-6 leading-tight [text-shadow:_0_2px_12px_rgb(0_0_0_/_0.45)] transition-all duration-500",style:{opacity:s?1:0,transform:s?"translateY(0)":"translateY(15px)"},children:d.title}),a.jsx("p",{className:"text-lg md:text-xl lg:text-2xl text-white/80 font-light max-w-3xl mx-auto [text-shadow:_0_2px_10px_rgb(0_0_0_/_0.4)] transition-all duration-500",style:{opacity:s?1:0,transform:s?"translateY(0)":"translateY(10px)",transitionDelay:s?"100ms":"0ms"},children:d.subtitle})]}),a.jsxs("div",{className:"absolute bottom-28 md:bottom-12 left-1/2 transform -translate-x-1/2 z-30 animate-scroll-bounce",children:[a.jsx("div",{className:"w-px h-16 bg-black/50 dark:bg-white/50"}),a.jsx("div",{className:"text-minimal text-black/70 dark:text-white/70 mt-4 rotate-90 origin-center",children:"DESLIZA"})]}),a.jsx("button",{type:"button",onClick:u=>{u.stopPropagation(),c(f=>!f)},"aria-label":l?"Activar música":"Silenciar música",title:l?"Activar música":"Silenciar música",className:l?"absolute bottom-28 md:bottom-12 right-8 z-30 w-11 h-11 rounded-full bg-black/10 hover:bg-black/20 dark:bg-white/10 dark:hover:bg-white/20 backdrop-blur-sm border border-black/30 dark:border-white/30 text-black dark:text-white flex items-center justify-center transition-colors":"fixed bottom-6 right-6 z-50 w-12 h-12 rounded-full bg-foreground text-background shadow-2xl hover:scale-105 backdrop-blur-sm border border-foreground
403/20 flex items-center justify-center transition-all animate-fade-in",children:l?a.jsx(Ow,{size:20}):a.jsx(Pw,{size:20})}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-[70vh] z-20 pointer-events-none",style:{background:"linear-gradient(to bottom, hsl(var(--background) / 0) 0%, hsl(var(--background) / 0.02) 30%, hsl(var(--background) / 0.06) 50%, hsl(var(--background) / 0.14) 65%, hsl(var(--background) / 0.28) 78%, hsl(var(--background) / 0.5) 88%, hsl(var(--background) / 0.78) 95%, hsl(var(--background)) 100%)"}})]})};function A({children:e,className:t="",delay:n=0}){const s=g.useRef(null),[r,i]=g.useState(!1);return g.useEffect(()=>{const o=s.current;if(!o)return;const l=new IntersectionObserver(([c])=>{c.isIntersecting&&(setTimeout(()=>i(!0),n),l.unobserve(o))},{threshold:.1});return l.observe(o),()=>l.disconnect()},[n]),a.jsx("div",{ref:s,className:`transition-all duration-1000 ease-out ${r?"opacity-100 translate-y-0":"opacity-0 translate-y-16"} ${t}`,children:e})}const C0="#b1c854",T0="#1e9eb1",_k=[{number:"01",title:"RESIDENCIAL",icon:bo,headline:"Edificios modulares nZEB con altos estándares de confort, reduciendo plazos y costes.",tags:["nZEB","MODUSS","Confort térmico"],color:C0,video:"/videos/services/residencial.mp4"},{number:"02",title:"INDUSTRIAL",icon:Ac,headline:"Construcción modular para naves y oficinas, optimizando seguridad y productividad.",tags:["Lean","Llave en mano","IA"],color:T0,video:"/videos/services/industrial.mp4"},{number:"03",title:"ALOJAMIENTOS",icon:Ev,headline:"Módulos reubicables y desmontables para reducir impacto ambiental y huella logística.",tags:["Reubicable","Escalable","Sostenible"],color:T0,video:"/videos/services/alojamientos.mp4"},{number:"04",title:"SENIOR LIVING",icon:jv,headline:"Neuroarquitectura, biofilia y accesibilidad para viviendas centradas en autonomía y cuidado.",tags:["Neuroarquitectura","Biofilia","Accesibilidad"],color:C0,video:"/videos/services/senior.mp4"}],wk=()=>a.jsxs("section",{id:"services",className:"py-24 md:py-32 bg-background",children:[a.jsx("style",{children:`
404        .services-card:hover .services-card-icon { background-color: var(--svc-color) !important; }
405        .services-card:hover .services-card-icon-svg { color: hsl(var(--background)) !important; }
406        .services-card-veil { background: linear-gradient(135deg, hsl(var(--background) / 0.62), var(--svc-color)1a); }
407        @media (min-width: 768px) { .services-card-veil { background: linear-gradient(135deg, hsl(var(--background) / 0.75), var(--svc-color)1a); } }
408      `}),a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsx(A,{children:a.jsxs("div",{className:"mb-14 md:mb-20",children:[a.jsx("p",{className:"text-minimal mb-4 text-xl",style:{color:"#5d7a20"},children:"SERVICIOS"}),a.jsx("h2",{className:"text-4xl md:text-6xl lg:text-7xl font-light text-architectural max-w-3xl",children:"Qué Hacemos"})]})}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6 lg:gap-8",children:_k.map((e,t)=>{const n=e.icon;return a.jsx(A,{delay:t*80,children:a.jsxs("div",{className:"services-card group relative overflow-hidden rounded-2xl border border-border bg-muted/20 md:bg-muted/30 hover:bg-muted/40 md:hover:bg-muted/60 p-8 md:p-10 transition-all duration-500 hover:-translate-y-1 hover:shadow-elegant min-h-[280px]",style:{"--svc-color":e.color},children:[a.jsx("video",{src:e.video,autoPlay:!0,loop:!0,muted:!0,playsInline:!0,preload:"metadata","aria-hidden":!0,className:"pointer-events-none absolute inset-0 w-full h-full object-cover opacity-[0.40] md:opacity-[0.12] md:grayscale group-hover:opacity-25 group-hover:grayscale-0 transition-all duration-700 motion-reduce:hidden"}),a.jsx("div",{"aria-hidden":!0,className:"services-card-veil pointer-events-none absolute inset-0"}),a.jsx("span",{"aria-hidden":!0,className:"pointer-events-none select-none absolute -right-2 -top-6 text-[120px] md:text-[150px] leading-none font-bold transition-all duration-500 group-hover:-translate-y-2",style:{color:`${e.color}1a`},children:e.number}),a.jsxs("div",{className:"relative z-10",children:[a.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[a.jsx("div",{className:"services-card-icon p-3 rounded-lg transition-colors duration-300",style:{backgroundColor:`${e.color}1a`},children:a.jsx(n,{className:"services-card-icon-svg w-8 h-8 transition-colors duration-300",style:{color:e.color}})}),a.jsx("h3",{className:"text-2xl font-bold text-architectural tracking-tight",children:e.title})]}),a.jsx("p",{className:"text-muted-foreground text-base md:text-lg leading-relaxed mb-6 max-w-md",children:e.headline}),a.jsx("div",{className:"flex flex-wrap gap-2",children:e.tags.map(s=>a.jsx("span",{className:"px-3 py-1 text-xs font-semibold rounded-full border",style:{color:e.color,borderColor:`${e.color}4d`,backgroundColor:`${e.color}0d`},children:s},s))})]}),a.jsx("div",{className:"absolute bottom-0 left-0 w-full h-px opacity-0 group-hover:opacity-100 transition-opacity duration-500",style:{background:`linear-gradient(90deg, transparent, ${e.color}, transparent)`}})]})},e.number)})}),a.jsx(A,{delay:300,children:a.jsx("div",{className:"mt-14 text-center",children:a.jsxs(F,{to:"/services",className:"inline-flex items-center gap-2 bg-foreground text-background rounded-xl px-8 py-4 font-semibold text-lg hover:bg-foreground
408/90 transition-colors",children:["Ver todos los servicios",a.jsx(it,{className:"w-5 h-5"})]})})})]})})]}),jk=[{number:"01",label:"MODELO OPERATIVO",title:"End-to-End",description:"De la idea al handover, sin perder el control. Un modelo operativo gobernado por eventos, planificación Lean y una sola verdad del dato — conectando diseño, fábrica, logística y postventa en un flujo continuo y trazable.",highlights:["Plazo fiable y cumplimiento OTIF","Menos retrabajo y menos sorpresas","Costes y cambios bajo control"],href:"/e2e",icon:Rc},{number:"02",label:"INTELIGENCIA ARTIFICIAL",title:"IA modulya",description:"Transformamos nuestra organización con IA. Una plataforma lista para escalar que integra agentes inteligentes en cada proceso, centrada en las personas y la ética.",highlights:["Agentes IA integrados en operaciones","Decisiones basadas en datos reales","Escalable y centrada en personas"],href:"/ia",icon:vv},{number:"03",label:"INDUSTRIALIZACIÓN",title:"Fábrica Modular",description:"De taller a fábrica modular escalable. ModussFab crece por fases — de módulos 3D a pods, fachadas y estructura — con un layout flow-first y decisiones de escalado gobernadas por gates industriales.",highlights:["Capacidad que crece con la demanda","Flujo seguro, controlado y trazable","Margen protegido por diseño de planta"],href:"/fabrica",icon:Ac}],kk=()=>a.jsx("section",{className:"py-32 bg-muted/20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsx(A,{children:a.jsxs("div",{className:"mb-20",children:[a.jsx("h2",{className:"text-minimal mb-4 text-xl",style:{color:"#5d7a20"},children:"PLATAFORMA"}),a.jsx("h3",{className:"text-4xl md:text-6xl font-light text-architectural",children:"Nuestro Ecosistema"})]})}),a.jsx("div",{className:"space-y-24",children:jk.map((e,t)=>a.jsx(A,{delay:t*100,children:a.jsxs("div",{className:"grid md:grid-cols-2 gap-12 items-start group",children:[a.jsxs("div",{children:[a.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[a.jsx("span",{className:"text-minimal text-muted-foreground font-medium text-4xl",children:e.number}),a.jsx("span",{className:"text-minimal text-lg text-[#1e9fb3]",children:e.label})]}),a.jsx("h4",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6 group-hover:text-muted-foreground transition-colors duration-500",children:e.title}),a.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed mb-8",children:e.description}),a.jsx(st,{asChild:!0,className:"rounded-xl px-8 font-semibold bg-primary text-primary-foreground hover:bg-primary/90",children:a.jsxs(F,{to:e.href,children:["Saber Más ",a.jsx(it,{className:"ml-2 h-4 w-4"})]})})]}),a.jsx("div",{className:"flex flex-col justify-center",children:a.jsxs("div",{className:"bg-background border border-border rounded-lg p-8 shadow-elegant",children:[a.jsx(e.icon,{className:"w-10 h-10 text-foreground mb-6"}),a.jsx("ul",{className:"space-y-4",children:e.highlights.map((n,s)=>a.jsxs("li",{className:"flex items-start gap-3 text-muted-foreground",children:[a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-foreground mt-2 flex-shrink-0"}),a.jsx("span",{className:"text-base",children:n})]},s))})]})})]})},t))})]})})}),Nk=()=>a.jsx("section",{id:"about",className:"py-32 bg-muted/20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"grid md:grid-cols-2 gap-20 items-center",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-4 text-xl",style:{color:"#5d7a20"},children:"NOSOTROS"}),a.jsx("h3",{className:"text-4xl md:text-6xl font-light text-architectural mb-12",children:"Quiénes somos"}),a.jsxs("div",{className:"space-y-8",children:[a.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed",children:"modulya es la primera constructora industrializada de nueva generación en Andalucía. Imaginamos y hacemos posible espacios extraordinarios que dignifican la vida de las personas y generan entornos más sostenibles, humanos y prósperos."}),a.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed",children:"Unimos diseño centrado en las personas, el sistema constructivo MODUSS, industrialización Lean y sostenibilidad real en un sistema integrado único — para crear espacios con más valor para todos."})]})]}),a.jsxs("div",{className:"space-y-12",children:[a.jsxs("div",{children:[a.jsx("h4",{className:"text-minimal text-muted-foreground mb-6",children:"PILARES"}),a.jsxs("div",{className:"space-y-6",children:[a.jsxs("div",{className:"border-l-2 border-architectural pl-6",children:[a.jsx("h5",{className:"text-lg font-medium mb-2",children:"Personas"}),a.jsx("p",{className:"text-muted-foreground",children:"El espacio debe cuidar, elevar y dignificar la vida de quien lo habita."})]}),a.jsxs("div",{className:"border-l-2 border-architectural pl-6",children:[a.jsx("h5",{className:"text-lg font-medium mb-2",children:"Sistema"}),a.jsx("p",{className:"text-muted-foreground",children:"MODUSS + industrialización Lean para certidumbre en calidad, coste y plazo."})]}),a.jsxs("div",{className:"border-l-2 border-architectural pl-6",children:[a.jsx("h5",{className:"text-lg font-medium mb-2",children:"Entorno"}),a.jsx("p",{className:"text-muted-foreground",children:"Valor más allá del perímetro: economía local, menor huella y coherencia ESG."})]})]})]}),a.jsx("div",{className:"pt-8 border-t border-border",children:a.jsxs("div",{className:"grid grid-cols-2 gap-8",children:[a.jsxs("div",{children:[a.jsx("h4",{className:"text-minimal text-muted-foreground mb-2",children:"FUNDADA"}),a.jsx("p",{className:"text-xl",children:"2018"})]}),a.jsxs("div",{children:[a.jsx("h4",{className:"text-minimal text-muted-foreground mb-2",children:"PROYECTOS"}),a.jsx("p",{className:"text-xl",children:"+50"})]})]})})]})]})})})}),$k=1,Sk="9ec980e5-8661-49f8-b378-094ed611f6d8",Ek="22885900-7753-4d74-9e2f-5cb1776d4f5d",Ck="/__l5e/assets-v1/9ec980e5-8661-49f8-b378-094ed611f6d8/casa_vista_exterior_final.webp",Tk="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/9ec980e5-8661-49f8-b378-094ed611f6d8/casa_vista_exterior_final.webp",Ak="casa_vista_exterior_final.webp",Rk=98772,Pk="image/webp",Ok="2026-07-07T05:30:34Z",Hp={version:$k,asset_id:Sk,project_id:Ek,url:Ck,r2_key:Tk,original_filename:Ak,size:Rk,content_type:Pk,created_at:Ok},G1="/assets/work-senior-living-1-Bt6p4fyo.png",zk=1,Ik="3a07d80f-88b3-40bb-9920-57f7e91c9023",Lk="22885900-7753-4d74-9e2f-5cb1776d4f5d",Mk="/__l5e/assets-v1/3a07d80f-88b3-40bb-9920-57f7e91c9023/frescapricho_cover.webp",Dk="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/3a07d80f-88b3-40bb-9920-57f7e91c9023/frescapricho_cover.webp",Uk="frescapricho_cover.webp",Fk=509228,Bk="image/webp",qk="2026-07-07T05:27:20Z",Wp={version:zk,asset_id:Ik,project_id:Lk,url:Mk,r2_key:Dk,original_filename:Uk,size:Fk,content_type:Bk,created_at:qk},Vk=Hp.url,Hk=()=>{const e=Vp(),t=[{image:Vk,title:"CASA DEL GUARDA",category:"RESIDENCIAL",description:"",url:void 0,route:"/work/casa-del-guarda",details:{location:"San Bartolomé de la Torre, Huelva",method:"MODUSS",typology:"T2 & T3 (Quality and Basic)",deadline:"2 meses",area:"197,85 m²"}},{image:G1,title:"SENIOR LIVING",category:"SENIOR LIVING",description:"Moduss Senior Living es el sistema modular industrializado de Modulya para crear centros residenciales para seniors más humanos, sostenibles y eficientes, con diseño centrado en la persona, biofili
408a y comunidad.",url:"https://moduss.modulya.com/",route:void 0,details:void 0},{image:Wp.url,title:"ALOJAMIENTOS FRESCAPRICHO",category:"ALOJAMIENTOS",description:"",url:void 0,route:"/work/frescapricho",details:{location:"San Bartolomé de la Torre, Huelva",method:"MODUSS",typology:"T2 & T3 (Quality and Basic)",deadline:"6 meses",area:"4.520,94 m²"}}];return a.jsx("section",{id:"work",className:"py-32 bg-muted",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-20",children:[a.jsx("h2",{className:"text-minimal mb-4 text-xl",style:{color:"#5d7a20"},children:"TRABAJO SELECCIONADO"}),a.jsx("h3",{className:"text-4xl md:text-6xl font-light text-architectural",children:"Nuestros Proyectos"})]}),a.jsx("div",{className:"space-y-32",children:t.map((n,s)=>a.jsxs("div",{className:`group ${n.url||n.route?"cursor-pointer":""}`,onClick:()=>{n.route?e(n.route):n.url&&window.open(n.url,"_blank","noopener,noreferrer")},children:[a.jsxs("div",{className:"relative overflow-hidden",children:[a.jsx("img",{src:n.image,alt:n.title,className:"w-full h-[70vh] object-cover transition-transform duration-700 group-hover:scale-105"}),a.jsx("div",{className:"absolute inset-0 bg-black/20 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute top-6 left-6 bg-background/90 backdrop-blur-sm px-4 py-2",children:a.jsx("span",{className:"text-minimal text-foreground",children:n.category})})]}),a.jsxs("div",{className:"mt-8 grid md:grid-cols-3 gap-8",children:[a.jsx("div",{children:a.jsx("h4",{className:"text-2xl font-light text-architectural mb-2",children:n.title})}),a.jsxs("div",{className:"md:col-span-2 space-y-4",children:[n.description&&a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:n.description}),n.details&&a.jsxs("div",{className:"pt-4 border-t border-border space-y-2",children:[a.jsx("p",{className:"text-architectural font-medium",children:n.details.location}),a.jsxs("p",{className:"text-muted-foreground",children:["Método Constructivo: ",n.details.method]}),a.jsxs("p",{className:"text-muted-foreground",children:["Tipología: ",n.details.typology]}),a.jsxs("p",{className:"text-muted-foreground",children:["Plazo de ejecución: ",n.details.deadline]}),a.jsxs("p",{className:"text-muted-foreground",children:["Sup Construida: ",n.details.area]})]})]})]})]},s))})]})})})},Wk=()=>a.jsx("section",{id:"contact",className:"py-32 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"grid md:grid-cols-2 gap-20",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-4",style:{color:"#5d7a20"},children:"CONTACTO"}),a.jsxs("h3",{className:"text-4xl md:text-6xl font-light text-architectural mb-12",children:["Creemos Algo",a.jsx("br",{}),"Extraordinario"]}),a.jsxs("div",{className:"space-y-8",children:[a.jsxs("div",{children:[a.jsx("h4",{className:"text-minimal text-muted-foreground mb-2",children:"EMAIL"}),a.jsx("a",{href:"mailto:[email protected]",className:"text-xl hover:text-muted-foreground transition-colors duration-300",children:"[email protected]"})]}),a.jsxs("div",{children:[a.jsx("h4",{className:"text-minimal mb-2",style:{color:"#5d7a20"},children:"TELÉFONO"}),a.jsx("a",{href:"tel:+34959406664",className:"text-xl hover:text-muted-foreground transition-colors duration-300",children:"+34 959 40 66 64"})]}),a.jsxs("div",{children:[a.jsx("h4",{className:"text-minimal mb-2",style:{color:"#5d7a20"},children:"ESTUDIO"}),a.jsxs("address",{className:"text-xl not-italic",children:["Calle El Cerro nº  23",a.jsx("br",{}),"21730, Almonte (Huelva)"]})]})]})]}),a.jsxs("div",{className:"space-y-8",children:[a.jsxs("div",{children:[a.jsx("h4",{className:"text-minimal mb-6",style:{color:"#5d7a20"},children:"SÍGUENOS"}),a.jsx("div",{className:"space-y-4",children:a.jsx("a",{href:"https://www.linkedin.com/company/modulya-sistemas-y-accesorios-modulares/",target:"_blank",rel:"noopener noreferrer",className:"block text-xl hover:text-muted-foreground transition-colors duration-300",children:"LinkedIn"})})]}),a.jsx("div",{className:"pt-12 border-t border-border",children:a.jsx("p",{className:"text-muted-foreground",children:"Abordamos cada proyecto con curiosidad, rigor y un compromiso con la excelencia. Nuestro proceso comienza escuchando, comprendiendo tu visión y traduciéndola en espacios que superan las expectativas."})})]})]})})})}),Zk=1,Gk="6e9fd01c-0005-4a58-b0fc-782d5d129e43",Kk="22885900-7753-4d74-9e2f-5cb1776d4f5d",Jk="/__l5e/assets-v1/6e9fd01c-0005-4a58-b0fc-782d5d129e43/faysol.png",Yk="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6e9fd01c-0005-4a58-b0fc-782d5d129e43/faysol.png",Qk="faysol.png",Xk=19979,e9="image/png",t9="2026-07-03T14:21:03Z",n9={version:Zk,asset_id:Gk,project_id:Kk,url:Jk,r2_key:Yk,original_filename:Qk,size:Xk,content_type:e9,created_at:t9},s9=1,a9="716ba7e9-ab43-40fb-919b-65a94d6fe511",r9="22885900-7753-4d74-9e2f-5cb1776d4f5d",i9="/__l5e/assets-v1/716ba7e9-ab43-40fb-919b-65a94d6fe511/gdm.png",o9="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/716ba7e9-ab43-40fb-919b-65a94d6fe511/gdm.png",l9="gdm.png",c9=39971,d9="image/png",u9="2026-07-03T14:37:46Z",f9={version:s9,asset_id:a9,project_id:r9,url:i9,r2_key:o9,original_filename:l9,size:c9,content_type:d9,created_at:u9},p9=1,h9="4511a776-0568-42b4-98d0-e83b8bb94a77",m9="22885900-7753-4d74-9e2f-5cb1776d4f5d",g9="/__l5e/assets-v1/4511a776-0568-42b4-98d0-e83b8bb94a77/moeve-full.png",b9="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/4511a776-0568-42b4-98d0-e83b8bb94a77/moeve-full.png",x9="moeve-full.png",v9=25580,y9="image/png",_9="2026-07-03T14:23:37Z",w9={version:p9,asset_id:h9,project_id:m9,url:g9,r2_key:b9,original_filename:x9,size:v9,content_type:y9,created_at:_9},j9=1,k9="e6577ed9-e8cc-4bea-adc7-6fe968162770",N9="22885900-7753-4d74-9e2f-5cb1776d4f5d",$9="/__l5e/assets-v1/e6577ed9-e8cc-4bea-adc7-6fe968162770/iberdrola.svg",S9="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e6577ed9-e8cc-4bea-adc7-6fe968162770/iberdrola.svg",E9="iberdrola.svg",C9=9264,T9="image/svg+xml",A9="2026-07-03T14:21:16Z",R9={version:j9,asset_id:k9,project_id:N9,url:$9,r2_key:S9,original_filename:E9,size:C9,content_type:T9,created_at:A9},P9=1,O9="4b68b1b7-68b8-431c-8dae-dff8b1b8a5a8",z9="22885900-7753-4d74-9e2f-5cb1776d4f5d",I9="/__l5e/assets-v1/4b68b1b7-68b8-431c-8dae-dff8b1b8a5a8/frescapricho.png",L9="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/4b68b1b7-68b8-431c-8dae-dff8b1b8a5a8/frescapricho.png",M9="frescapricho.png",D9=5386,U9="image/png",F9="2026-07-03T14:21:20Z",B9={version:P9,asset_id:O9,project_id:z9,url:I9,r2_key:L9,original_filename:M9,size:D9,content_type:U9,created_at:F9}
408,q9=1,V9="08341c91-3ef0-40da-9a23-8434918e64e9",H9="22885900-7753-4d74-9e2f-5cb1776d4f5d",W9="/__l5e/assets-v1/08341c91-3ef0-40da-9a23-8434918e64e9/naturgy.svg",Z9="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/08341c91-3ef0-40da-9a23-8434918e64e9/naturgy.svg",G9="naturgy.svg",K9=10123,J9="image/svg+xml",Y9="2026-07-03T14:23:21Z",Q9={version:q9,asset_id:V9,project_id:H9,url:W9,r2_key:Z9,original_filename:G9,size:K9,content_type:J9,created_at:Y9},X9=1,eN="1457b3b3-a698-4d83-a6e4-f6b96dd7e073",tN="22885900-7753-4d74-9e2f-5cb1776d4f5d",nN="/__l5e/assets-v1/1457b3b3-a698-4d83-a6e4-f6b96dd7e073/balat.png",sN="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/1457b3b3-a698-4d83-a6e4-f6b96dd7e073/balat.png",aN="balat.png",rN=5382,iN="image/png",oN="2026-07-03T14:23:24Z",lN={version:X9,asset_id:eN,project_id:tN,url:nN,r2_key:sN,original_filename:aN,size:rN,content_type:iN,created_at:oN},cN=1,dN="6f5f0dc8-ab88-4a37-b338-6a336585592c",uN="22885900-7753-4d74-9e2f-5cb1776d4f5d",fN="/__l5e/assets-v1/6f5f0dc8-ab88-4a37-b338-6a336585592c/ecomining.png",pN="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6f5f0dc8-ab88-4a37-b338-6a336585592c/ecomining.png",hN="ecomining.png",mN=128351,gN="image/png",bN="2026-07-03T14:44:04Z",xN={version:cN,asset_id:dN,project_id:uN,url:fN,r2_key:pN,original_filename:hN,size:mN,content_type:gN,created_at:bN},vN=1,yN="4a4a5755-cd49-40c6-989c-ee9f81d75bac",_N="22885900-7753-4d74-9e2f-5cb1776d4f5d",wN="/__l5e/assets-v1/4a4a5755-cd49-40c6-989c-ee9f81d75bac/metalia.png",jN="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/4a4a5755-cd49-40c6-989c-ee9f81d75bac/metalia.png",kN="metalia.png",NN=12824,$N="image/png",SN="2026-07-03T14:45:51Z",EN={version:vN,asset_id:yN,project_id:_N,url:wN,r2_key:jN,original_filename:kN,size:NN,content_type:$N,created_at:SN},CN=1,TN="abe751ad-5012-43c0-822d-d3201554dbc1",AN="22885900-7753-4d74-9e2f-5cb1776d4f5d",RN="/__l5e/assets-v1/abe751ad-5012-43c0-822d-d3201554dbc1/oinse.png",PN="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/abe751ad-5012-43c0-822d-d3201554dbc1/oinse.png",ON="oinse.png",zN=45820,IN="image/png",LN="2026-07-03T14:23:41Z",MN={version:CN,asset_id:TN,project_id:AN,url:RN,r2_key:PN,original_filename:ON,size:zN,content_type:IN,created_at:LN},DN=1,UN="5235159f-13ce-463f-89aa-dbb4e0ed74f6",FN="22885900-7753-4d74-9e2f-5cb1776d4f5d",BN="/__l5e/assets-v1/5235159f-13ce-463f-89aa-dbb4e0ed74f6/donana-1998.svg",qN="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/5235159f-13ce-463f-89aa-dbb4e0ed74f6/donana-1998.svg",VN="donana-1998.svg",HN=16642,WN="image/svg+xml",ZN="2026-07-03T14:23:45Z",GN={version:DN,asset_id:UN,project_id:FN,url:BN,r2_key:qN,original_filename:VN,size:HN,content_type:WN,created_at:ZN},KN=1,JN="7f2884be-44d5-4388-9744-7a0255958974",YN="22885900-7753-4d74-9e2f-5cb1776d4f5d",QN="/__l5e/assets-v1/7f2884be-44d5-4388-9744-7a0255958974/tecnicas-reunidas.png",XN="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/7f2884be-44d5-4388-9744-7a0255958974/tecnicas-reunidas.png",e$="tecnicas-reunidas.png",t$=8045,n$="image/png",s$="2026-07-03T14:40:21Z",a$={version:KN,asset_id:JN,project_id:YN,url:QN,r2_key:XN,original_filename:e$,size:t$,content_type:n$,created_at:s$},r$=1,i$="f08bb448-007a-400e-b2d6-6015497ece63",o$="22885900-7753-4d74-9e2f-5cb1776d4f5d",l$="/__l5e/assets-v1/f08bb448-007a-400e-b2d6-6015497ece63/venator.svg",c$="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/f08bb448-007a-400e-b2d6-6015497ece63/venator.svg",d$="venator.svg",u$=9775,f$="image/svg+xml",p$="2026-07-03T14:23:53Z",h$={version:r$,asset_id:i$,project_id:o$,url:l$,r2_key:c$,original_filename:d$,size:u$,content_type:f$,created_at:p$},m$=1,g$="9eed0fc2-e331-43b2-af84-082fe791cc60",b$="22885900-7753-4d74-9e2f-5cb1776d4f5d",x$="/__l5e/assets-v1/9eed0fc2-e331-43b2-af84-082fe791cc60/humanis-care.png",v$="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/9eed0fc2-e331-43b2-af84-082fe791cc60/humanis-care.png",y$="humanis-care.png",_$=86396,w$="image/png",j$="2026-07-03T14:29:43Z",k$={version:m$,asset_id:g$,project_id:b$,url:x$,r2_key:v$,original_filename:y$,size:_$,content_type:w$,created_at:j$},N$=1,$$="c29badec-e03d-402c-8002-4f99e7357cd8",S$="22885900-7753-4d74-9e2f-5cb1776d4f5d",
408E$="/__l5e/assets-v1/c29badec-e03d-402c-8002-4f99e7357cd8/sgs.png",C$="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/c29badec-e03d-402c-8002-4f99e7357cd8/sgs.png",T$="sgs.png",A$=96058,R$="image/png",P$="2026-07-06T11:45:11Z",O$={version:N$,asset_id:$$,project_id:S$,url:E$,r2_key:C$,original_filename:T$,size:A$,content_type:R$,created_at:P$},z$=1,I$="099c0c93-70de-494d-b8da-13c2288cef46",L$="22885900-7753-4d74-9e2f-5cb1776d4f5d",M$="/__l5e/assets-v1/099c0c93-70de-494d-b8da-13c2288cef46/wood-sidara.svg",D$="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/099c0c93-70de-494d-b8da-13c2288cef46/wood-sidara.svg",U$="wood-sidara.svg",F$=7853,B$="image/svg+xml",q$="2026-07-06T11:49:19Z",V$={version:z$,asset_id:I$,project_id:L$,url:M$,r2_key:D$,original_filename:U$,size:F$,content_type:B$,created_at:q$},H$=1,W$="41c54f27-2b98-4425-a354-b20941d2efdf",Z$="22885900-7753-4d74-9e2f-5cb1776d4f5d",G$="/__l5e/assets-v1/41c54f27-2b98-4425-a354-b20941d2efdf/exolum.png",K$="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/41c54f27-2b98-4425-a354-b20941d2efdf/exolum.png",J$="exolum.png",Y$=3762,Q$="image/png",X$="2026-07-06T11:52:03Z",eS={version:H$,asset_id:W$,project_id:Z$,url:G$,r2_key:K$,original_filename:J$,size:Y$,content_type:Q$,created_at:X$},tS=1,nS="a782eae0-c5db-44a7-bb6f-b489ef945449",sS="22885900-7753-4d74-9e2f-5cb1776d4f5d",aS="/__l5e/assets-v1/a782eae0-c5db-44a7-bb6f-b489ef945449/alco.svg",rS="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/a782eae0-c5db-44a7-bb6f-b489ef945449/alco.svg",iS="alco.svg",oS=9761,lS="image/svg+xml",cS="2026-07-06T11:53:48Z",dS={version:tS,asset_id:nS,project_id:sS,url:aS,r2_key:rS,original_filename:iS,size:oS,content_type:lS,created_at:cS},uS=1,fS="956b4e45-9c18-4c25-a958-ebfda8405112",pS="22885900-7753-4d74-9e2f-5cb1776d4f5d",hS="/__l5e/assets-v1/956b4e45-9c18-4c25-a958-ebfda8405112/worly.png",mS="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/956b4e45-9c18-4c25-a958-ebfda8405112/worly.png",gS="worly.png",bS=32630,xS="image/png",vS="2026-07-06T11:56:21Z",yS={version:uS,asset_id:fS,project_id:pS,url:hS,r2_key:mS,original_filename:gS,size:bS,content_type:xS,created_at:vS},K1=[{src:GN.url,alt:"Doñana 1998",heightClass:"h-12 md:h-16"},{src:n9.url,alt:"Faysol S.A.L."},{src:f9.url,alt:"Gil Domínguez y Muñoz — Construcciones y Mantenimiento"},{src:w9.url,alt:"Moeve",heightClass:"h-16 md:h-24"},{src:R9.url,alt:"Iberdrola"},{src:B9.url,alt:"Frescapricho"},{src:Q9.url,alt:"Naturgy"},{src:lN.url,alt:"Balat"},{src:xN.url,alt:"Ecomining — Construcción y Medioambiente"},{src:EN.url,alt:"Metalia Alianza Empresarial",heightClass:"h-8 md:h-10"},{src:MN.url,alt:"Oinse"},{src:a$.url,alt:"Técnicas Reunidas"},{src:h$.url,alt:"Venator",heightClass:"h-8 md:h-10"},{src:k$.url,alt:"Humanis Care",heightClass:"h-12 md:h-16"},{src:O$.url,alt:"SGS",heightClass:"h-10 md:h-14"},{src:V$.url,alt:"Wood Sidara",heightClass:"h-10 md:h-14"},{src:eS.url,alt:"Exolum",heightClass:"h-8 md:h-10"},{src:dS.url,alt:"Alco",heightClass:"h-10 md:h-14"},{src:yS.url,alt:"Worly",heightClass:"h-8 md:h-10"}],_S=K1.filter((e,t)=>t%2===0),wS=K1.filter((e,t)=>t%2===1),jS={maskImage:"linear-gradient(to right, transparent 0, black 8%, black 92%, transparent 100%)",WebkitMaskImage:"linear-gradient(to right, transparent 0, black 8%, black 92%, transparent 100%)"},A0=({items:e,animationClass:t})=>a.jsx("div",{className:"group relative overflow-hidden",style:jS,children:a.jsx("div",{className:`flex w-max ${t} group-hover:[animation-play-state:paused] motion-reduce:animate-none`,children:[...e,...e].map((n,s)=>a.jsx("div",{className:"flex items-center justify-center px-10 md:px-14 shrink-0",children:a.jsx("img",{src:n.src,alt:n.alt,loading:"lazy",className:`${n.heightClass??"h-10 md:h-14"} w-auto object-contain opacity-60 hover:opacity-100 transition-opacity duration-300 ${n.preserveColors?"":"brightness-0 dark:brightness-0 dark:invert"}`})},s))})}),J1=({variant:e="default"})=>{const t=e==="muted"?"bg-muted/30":"bg-background";return a.jsxs("section",{className:`${t} py-20 md:py-28`,"aria-label":"Empresas e instituciones que confían en Modulya",children:[a.jsxs("div",{className:"container mx-auto px-6 mb-12 text-center",children:[a.jsx("p",{className:"text-minimal text-lg mb-4 text-[#5d7a20]",children:"CONFIANZA"}),a.jsx("h2",{className:"text-3xl md:text-4xl font-light text-architectural max-w-2xl mx-auto",children:"Confían en nosotros"}),a.jsx("p",{className:"mt-4 text-muted-foreground max-w-xl mx-auto",children:"Clientes, partners industriales y colaboradores que respaldan cada proyecto."})]}),a.jsxs("div",{className:"space-y-8",children:[a.jsx(A0,{items:_S,animationClass:"animate-marquee"}),a.jsx(A0,{items:wS,animationClass:"animate-marquee-reverse"})]})]})},kS=()=>a.jsxs("div",{className:"min-h-screen",children:[a.jsx(ue,{title:"Modulya — Construimos espacios que dignifican la vida",description:"Modulya imagina y construye espacios modulares extraordinarios combinando diseño, fabricación industrializada (ModussFab), IA, BIM y Lean.",path:"/"}),a.jsx(de,{}),a.jsx(yk,{}),a.jsx(wk,{}),a.jsx(Nk,{}),a.jsx(kk,{}),a.jsx(Hk,{}),a.jsx(J1,{}),a.jsx(Wk,{}),a.jsx(fe,{})]}),Y1="/assets/work-industrial-2-pPYC8otR.png",NS=1,$S="64331657-fbe0-445b-acf3-a424dbdbf5d8",SS="22885900-7753-4d74-9e2f-5cb1776d4f5d",
408ES="/__l5e/assets-v1/64331657-fbe0-445b-acf3-a424dbdbf5d8/alojamientos_5.webp",CS="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/64331657-fbe0-445b-acf3-a424dbdbf5d8/alojamientos_5.webp",TS="alojamientos_5.webp",AS=174556,RS="image/webp",PS="2026-07-07T05:28:18Z",Zp={version:NS,asset_id:$S,project_id:SS,url:ES,r2_key:CS,original_filename:TS,size:AS,content_type:RS,created_at:PS},OS=1,zS="6ec1f6f2-1fc3-4e3a-bb8b-59e58d7dc4ae",IS="22885900-7753-4d74-9e2f-5cb1776d4f5d",LS="/__l5e/assets-v1/6ec1f6f2-1fc3-4e3a-bb8b-59e58d7dc4ae/cc_1.webp",MS="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6ec1f6f2-1fc3-4e3a-bb8b-59e58d7dc4ae/cc_1.webp",DS="cc_1.webp",US=33084,FS="image/webp",BS="2026-07-07T05:32:49Z",qS={version:OS,asset_id:zS,project_id:IS,url:LS,r2_key:MS,original_filename:DS,size:US,content_type:FS,created_at:BS},VS=1,HS="b8d155cc-8aa3-41e9-8e72-e29e9fab8b70",WS="22885900-7753-4d74-9e2f-5cb1776d4f5d",ZS="/__l5e/assets-v1/b8d155cc-8aa3-41e9-8e72-e29e9fab8b70/loft_1.webp",GS="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/b8d155cc-8aa3-41e9-8e72-e29e9fab8b70/loft_1.webp",KS="loft_1.webp",JS=103076,YS="image/webp",QS="2026-07-07T05:29:19Z",Gp={version:VS,asset_id:HS,project_id:WS,url:ZS,r2_key:GS,original_filename:KS,size:JS,content_type:YS,created_at:QS},XS=1,eE="e922eead-365a-44d9-801e-e76dd9de2418",tE="22885900-7753-4d74-9e2f-5cb1776d4f5d",nE="/__l5e/assets-v1/e922eead-365a-44d9-801e-e76dd9de2418/modulya-moeve.mp4",sE="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e922eead-365a-44d9-801e-e76dd9de2418/modulya-moeve.mp4",aE="modulya-moeve.mp4",rE=40443732,iE="video/mp4",oE="2026-07-07T05:41:09Z",Q1={version:XS,asset_id:eE,project_id:tE,url:nE,r2_key:sE,original_filename:aE,size:rE,content_type:iE,created_at:oE},lE=1,cE="508e9c56-2dd6-44c3-a035-0709b229abe8",dE="22885900-7753-4d74-9e2f-5cb1776d4f5d",uE="/__l5e/assets-v1/508e9c56-2dd6-44c3-a035-0709b229abe8/villa_exterior_1.webp",fE="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/508e9c56-2dd6-44c3-a035-0709b229abe8/villa_exterior_1.webp",pE="villa_exterior_1.webp",hE=418426,mE="image/webp",gE="2026-07-07T05:31:39Z",X1={version:lE,asset_id:cE,project_id:dE,url:uE,r2_key:fE,original_filename:pE,size:hE,content_type:mE,created_at:gE},bE=1,xE="97ac3629-6855-4e80-a93c-875027f236b9",vE="22885900-7753-4d74-9e2f-5cb1776d4f5d",yE="/__l5e/assets-v1/97ac3629-6855-4e80-a93c-875027f236b9/bormujos_escena_2.webp",_E="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/97ac3629-6855-4e80-a93c-875027f236b9/bormujos_escena_2.webp",wE="bormujos_escena_2.webp",jE=118928,kE="image/webp",NE="2026-06-12T04:40:18Z",Kp={version:bE,asset_id:xE,project_id:vE,url:yE,r2_key:_E,original_filename:wE,size:jE,content_type:kE,created_at:NE},$E=1,SE="4e32d061-ef6e-4f04-a9f1-a9af36edf15b",EE="22885900-7753-4d74-9e2f-5cb1776d4f5d",CE="/__l5e/assets-v1/4e32d061-ef6e-4f04-a9f1-a9af36edf15b/villarrasa_1.webp",TE="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/4e32d061-ef6e-4f04-a9f1-a9af36edf15b/villarrasa_1.webp",AE="villarrasa_1.webp",RE=115008,PE="image/webp",OE="2026-07-01T11:09:09Z",Jp={version:$E,asset_id:SE,project_id:EE,url:CE,r2_key:TE,original_filename:AE,size:RE,content_type:PE,created_at:OE},zE=1,IE="5871d7b2-0764-47bf-bcc7-74525889b31c",LE="22885900-7753-4d74-9e2f-5cb1776d4f5d",ME="/__l5e/assets-v1/5871d7b2-0764-47bf-bcc7-74525889b31c/cuatrovitas_aerea.webp",DE="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/5871d7b2-0764-47bf-bcc7-74525889b31c/cuatrovitas_aerea.webp",UE="cuatrovitas_aerea.webp",FE=320502,BE="image/webp",qE="2026-07-07T05:27:37Z",Yp={version:zE,asset_id:IE,project_id:LE,url:ME,r2_key:DE,original_filename:UE,size:FE,content_type:BE,created_at:qE},VE=1,HE="32d2a4cb-a0bc-4bd3-b4c0-3e9462bb7a70",WE="22885900-7753-4d74-9e2f-5cb1776d4f5d",ZE="/__l5e/assets-v1/32d2a4cb-a0bc-4bd3-b4c0-3e9462bb7a70/sl_7.webp",GE="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/32d2a4cb-a0bc-4bd3-b4c0-3e9462bb7a70/sl_7.webp",KE="sl_7.webp",JE=315348,YE="image/webp",QE="2026-07-07T05:27:54Z",Qp={version:VE,asset_id:HE,project_id:WE,url:ZE,r2_key:GE,original_filename:KE,size:JE,content_type:YE,created_at:QE},XE=1,eC="eb408ba0-c92b-4b18-9cb9-b3fb20d4b9ee",tC="22885900-7753-4d74-9e2f-5cb1776d4f5d",nC="/__l5e/assets-v1/eb408ba0-c92b-4b18-9cb9-b3fb20d4b9ee/mazagon_2.png",sC="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/eb408ba0-c92b-4b18-9cb9-b3fb20d4b9ee/mazagon_2.png",aC="mazagon_2.png",rC=1973275,iC="image/png",oC="2026-07-09T19:09:33Z",e2={version:XE,asset_id:eC,project_id:tC,url:nC,r2_key:sC,original_filename:aC,size:rC,content_type:iC,created_at:oC},lC=1,cC="d25a7c81-09f8-4e7a-aa7d-41061cd10cce",dC="22885900-7753-4d74-9e2f-5cb1776d4f5d",uC="/__l5e/assets-v1/d25a7c81-09f8-4e7a-aa7d-41061cd10cce/rota_1.webp",fC="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/d25a7c81-09f8-4e7a-aa7d-41061cd10cce/rota_1.webp",pC="rota_1.webp",hC=59694,mC="image/webp",gC="2026-07-07T05:31:08Z",t2={version:lC,asset_id:cC,project_id:dC,url:uC,r2_key:fC,original_filename:pC,size:hC,content_type:mC,created_at:gC},bC=1,xC="40bcb3ec-3e5f-4d04-87ca-12fc65255fc8",vC="22885900-7753-4d74-9e2f-5cb1776d4f5d",yC="/__l5e/assets-v1/40bcb3ec-3e5f-4d04-87ca-12fc65255fc8/san_rafael_1.webp",_C="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/40bcb3ec-3e5f-4d04-87ca-12fc65255fc8/san_rafael_1.webp",wC="san_rafael_1.webp",jC=194470,kC="image/webp",NC="2026-07-07T05:29:14Z",Xp={version:bC,asset_id:xC,project_id:vC,url:yC,r2_key:_C,original_filename:wC,size:jC,content_type:kC,created_at:NC},$C=1,SC="1bb4b46b-f7d1-4bc6-bad3-f8676fabc32f",EC="22885900-7753-4d74-9e2f-5cb1776d4f5d",CC="/__l5e/assets-v1/1bb4b46b-f7d1-4bc6-bad3-f8676fabc32f/usuri_6.webp",TC="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/1bb4b46b-f7d1-4bc6-bad3-f8676fabc32f/usuri_6.webp",AC="usuri_6.webp",RC=177738,PC="image/webp",OC="2026-07-07T05:29:29Z",eh={version:$C,asset_id:SC,project_id:EC,url:CC,r2_key:TC,original_filename:AC,size:RC,content_type:PC,created_at:OC},zC=Hp.url,IC=()=>{const e=Vp(),[t,n]=g.useState("TODOS"),s=[{image:zC,title:"CASA DEL GUARDA",location:"",category:"RESIDENCIAL",description:"",area:"",year:"",route:"/work/casa-del-guarda",details:{location:"San Bartolomé de la Torre, Huelva",method:"MODUSS",typology:"T2 & T3 (Quality and Basic)",deadline:"2 meses",area:"197,85 m²"}},{image:Xp.url,title:"ASTER DISTRICT",location:"Los Ángeles de San Rafael, Segovia",category:"RESIDENCIAL",description:"Propuesta de viviendas modulares pareadas y aisladas integradas en un paisaje de pinar y ladera.",area:"",year:"",route:"/work/aster-district",details:{location:"El Espinar, Segovia",method:"MODUSS",typology:"Viviendas pareadas y aisladas",deadline:"Propuesta tipológica",area:"2 a 5 dormitorios · 1 y 2 plantas"}},{image:eh.url,title:"VIVIENDAS COSTA ESURI",location:"Ayamonte, Huelva",category:"RESIDENCIAL",description:"Vivienda modular aislada de tres plantas con piscina privada, integrada en el conjunto residencial de Costa Esuri.",area:"",year:"",route:"/work/costa-esuri",details:{location:"Costa Esuri · Ayamonte, Huelva",method:"MODUSS",typology:"Vivienda unifamiliar aislada",deadline:"Proyecto Abril 2024",area:"131,00 m² construidos"}}
408,{image:X1.url,title:"VILLAS DE LA JULIANA",location:"",category:"RESIDENCIAL",description:"",area:"",year:"",route:"/work/villas-juliana",details:{location:"La Juliana, Sevilla",method:"MODUSS PLUS",typology:"Villas unifamiliares",deadline:"Personalizable",area:"Acabado PLUS"}},{image:Y1,video:Q1.url,title:"EDIFICIO INDUSTRIAL",location:"",category:"INDUSTRIAL",description:"",subtitle:["Video de proceso de montaje modular","Fabricación en CAMPA","Logística y transporte","Implantación en obra"],area:"",year:"",route:"/work/edificio-industrial"},{image:G1,title:"SENIOR LIVING",location:"",category:"SENIOR LIVING",description:"",area:"",year:"",url:"https://moduss.modulya.com/"},{image:Yp.url,title:"SENIOR LIVING CLUB · CUATROVITAS",location:"Bollullos de la Mitación, Sevilla",category:"SENIOR LIVING",description:"Anteproyecto de residencia modular con tour virtual 360º",area:"",year:"",route:"/work/senior-living-cuatrovitas",details:{location:"Finca Cuatrovitas · La Juliana (Sevilla)",method:"MODUSS Senior Living",typology:"Senior Living Club & Cohousing",deadline:"Anteproyecto",area:"Passivhaus · Modelo ACP"}},{image:Qp.url,title:"SENIOR LIVING · ALMONTE",location:"Almonte, Huelva",category:"SENIOR LIVING",description:"Centro residencial para personas mayores con patios biofílicos, cubiertas verdes y tour virtual 360º.",area:"",year:"",route:"/work/senior-living-almonte",details:{location:"Av. Cumbre Hermosa · Almonte (Huelva)",method:"MODUSS Senior Living",typology:"Centro residencial para mayores",deadline:"Proyecto básico",area:"Patios biofílicos · Cubiertas verdes"}},{image:e2.url,title:"SENIOR LIVING CLUB · MAZAGÓN",location:"Mazagón, Huelva",category:"SENIOR LIVING",description:"Anteproyecto de residencia modular para la tercera edad frente al mar, entre pinos y dunas.",area:"",year:"",route:"/work/senior-living-mazagon",details:{location:"Av. del Vigía 79 · Mazagón (Huelva)",method:"MODUSS Senior Living",typology:"Residencia modular · Senior Living Club",deadline:"Anteproyecto",area:"Passivhaus · Modelo ACP"}},{image:qS.url,title:"OFICINAS DOÑANA 1998",location:"",category:"OFICINAS",description:"",area:"",year:"",route:"/work/centro-cultural",details:{location:"Almonte, Huelva",method:"MODUSS",typology:"Oficinas industrializadas",deadline:"5 meses",area:"2.000 m² (Fase 1)"}},{image:t2.url,title:"OFICINAS ROTA",location:"Rota, Cádiz",category:"OFICINAS",description:"Edificio de oficinas industrializado ejecutado con sistema MODUSS.",area:"",year:"",route:"/work/oficinas-rota",details:{location:"Rota, Cádiz",method:"MODUSS",typology:"Oficinas industrializadas",deadline:"Fabricación + montaje",area:"Llave en mano"}},{image:Gp.url,title:"EDIFICIO DE VESTUARIOS Y SALA DE CONTROL · MTA",location:"MUELLE TORRE ARENILLAS",category:"INDUSTRIAL",description:"Cliente: Moeve",area:"",year:"",route:"/work/loft-urbano"},{image:Kp.url,title:"VIVIENDAS BORMUJOS ",location:"",category:"RESIDENCIAL",description:"",area:"",year:"",route:"/work/bormujos-village",details:{location:"Bormujos, Sevilla",method:"MODUSS",typology:"24 viviendas modulares",deadline:"Proyecto residencial",area:"1.881,36 m²"}},{image:Jp.url,title:"VIVIENDAS VILLARRASA",location:"",category:"RESIDENCIAL",description:"",area:"",year:"",route:"/work/viviendas-villarrasa",details:{location:"Villarrasa, Huelva",method:"MODUSS",typology:"Viviendas unifamiliares en hilera",deadline:"En desarrollo",area:"Planta baja + primera"}},{image:Wp.url,title:"ALOJAMIENTOS FRESCAPRICHO",location:"",category:"ALOJAMIENTOS",description:"",area:"",year:"",route:"/work/frescapricho",details:{location:"San Bartolomé de la Torre, Huelva",method:"MODUSS",typology:"T2 & T3 (Quality and Basic)",deadline:"6 meses",area:"4.520,94 m²"}},{image:Zp.url,title:"ALOJAMIENTOS DOÑANA 1998",location:"",category:"ALOJAMIENTOS",description:"",area:"",year:"",route:"/work/alojamientos-donana",details:{location:"Almonte, Huelva",method:"MODUSS",typology:"60 apartamentos · Residencial temporal",deadline:"5 meses",area:"2.000 m² (Fase 1)"}}],r=["TODOS","RESIDENCIAL","INDUSTRIAL","OFICINAS","ALOJAMIENTOS","SENIOR LIVING"],i=t==="TODOS"?s:s.filter(o=>o.category===t);return a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Proyectos — Modulya",description:"Proyectos de arquitectura modular industrializada de Modulya: residencial, dotacional, industrial y rehabilitación con enfoque sostenible.",path:"/work"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"mb-12",children:[a.jsx("h1",{className:"text-6xl font-light text-architectural mb-8 md:text-7xl",children:"NUESTRO TRABAJO"}),a.jsx("p",{className:"text-xl text-muted-foreground max-w-3xl",children:"Una selección de nuestros proyectos arquitectónicos, cada uno contando una historia única a través de un diseño cuidado y una atención meticulosa al detalle."})]})})})}),a.jsx("section",{className:"pb-16",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsx("div",{className:"flex flex-wrap gap-8 justify-center md:justify-start",children:r.map(o=>a.jsxs("button",{onClick:()=>n(o),className:"text-minimal transition-colors duration-300 relative group",style:{color:t===o?"#b1c854":void 0},children:[o,a.jsx("span",{className:`absolute bottom-0 left-0 w-full h-px transition-transform duration-300 origin-left ${t===o?"scale-x-100":"scale-x-0 group-hover:scale-x-100"}`,style:{backgroundColor:t===o?"#b1c854":void 0}})]},o))})})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsx("div",{className:"grid md:grid-cols-2 gap-16 lg:gap-20",children:i.map((o,l)=>a.jsxs("div",{className:"group cursor-pointer",onClick:()=>{o.route?e(o.route):o.url&&window.open(o.url,"_blank","noopener,noreferrer")},children:[a.jsxs("div",{className:"relative overflow-hidden mb-8",children:[o.video?a.jsx("video",{src:o.video,poster:o.image,autoPlay:!0,muted:!0,loop:!0,playsInl
408ine:!0,className:"w-full h-[60vh] object-cover transition-transform duration-700 group-hover:scale-105"}):a.jsx("img",{src:o.image,alt:o.title,className:"w-full h-[60vh] object-cover transition-transform duration-700 group-hover:scale-105"}),a.jsx("div",{className:"absolute inset-0 bg-black/20 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute top-6 left-6 bg-background/90 backdrop-blur-sm px-4 py-2",children:a.jsx("span",{className:"text-minimal text-foreground",children:o.category})})]}),a.jsxs("div",{className:"space-y-6",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-2xl lg:text-3xl font-light text-architectural mb-2 group-hover:text-muted-foreground transition-colors duration-500",children:o.title}),a.jsx("p",{className:"text-minimal text-muted-foreground",children:o.location}),o.subtitle&&a.jsx("div",{className:"mt-2 space-y-1",children:o.subtitle.map((c,d)=>a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:c},d))})]}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:o.description}),o.category==="SENIOR LIVING"&&a.jsx("div",{className:"pt-4 border-t border-border",children:a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"Moduss Senior Living es el sistema modular industrializado de Modulya para crear centros residenciales para seniors más humanos, sostenibles y eficientes, con diseño centrado en la persona, biofili
408a y comunidad."})}),o.details&&a.jsxs("div",{className:"pt-4 border-t border-border space-y-2",children:[a.jsx("p",{className:"text-architectural font-medium",children:o.details.location}),a.jsxs("p",{className:"text-muted-foreground",children:["Método Constructivo: ",o.details.method]}),a.jsxs("p",{className:"text-muted-foreground",children:["Tipología: ",o.details.typology]}),a.jsxs("p",{className:"text-muted-foreground",children:["Plazo de ejecución: ",o.details.deadline]}),a.jsxs("p",{className:"text-muted-foreground",children:["Sup Construida: ",o.details.area]})]})]})]},l))})})})}),a.jsx("section",{className:"py-32 bg-muted",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[a.jsxs("h2",{className:"text-4xl md:text-6xl font-light text-architectural mb-8",children:["¿Listo para Comenzar",a.jsx("br",{}),"Tu Proyecto?"]}),a.jsx("p",{className:"text-xl text-muted-foreground mb-12",children:"Hablemos sobre cómo podemos dar vida a tu visión arquitectónica"}),a.jsxs("a",{href:"/contact",className:"inline-block text-minimal text-foreground hover:text-muted-foreground transition-colors duration-300 relative group",children:["CONTÁCTANOS",a.jsx("span",{className:"absolute bottom-0 left-0 w-full h-px bg-foreground group-hover:bg-muted-foreground transition-colors duration-300"})]})]})})}),a.jsx(fe,{})]})},LC=()=>a.jsxs("div",{className:"min-h-screen",children:[a.jsx(ue,{title:"E2E — Modelo End-to-End de Modulya",description:"El modelo End-to-End de Modulya cubre todo el ciclo del proyecto modular: diseño, ingeniería, fabricación industrializada e instalación.",path:"/e2e"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-20 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-lg md:text-xl tracking-widest mb-6",style:{color:"#b1c854"},children:"MODELO OPERATIVO E2E"}),a.jsxs("h1",{className:"text-4xl md:text-6xl lg:text-7xl text-architectural mb-8",children:[a.jsx("span",{className:"font-light uppercase text-7xl",children:"De la idea al handover,"}),a.jsx("br",{}),a.jsx("span",{className:"text-6xl font-semibold",style:{color:"#1e9eb1"},children:"sin perder el control."})]})]}),a.jsx(A,{delay:150,children:a.jsx("p",{className:"text-xl md:text-2xl text-muted-foreground font-light leading-relaxed max-w-3xl mb-8",children:"modulya opera con un modelo end-to-end gobernado por eventos, planificación Lean y una sola verdad del dato — conectando diseño, fábrica, logística y postventa en un flujo continuo y trazable."})}),a.jsx(A,{delay:300,children:a.jsx("div",{className:"space-y-4 max-w-2xl",children:[{icon:$p,text:"Plazo fiable y cumplimiento OTIF."},{icon:pr,text:"Menos retrabajo, menos caos, menos sorpresas."},{icon:Wi,text:"Costes y cambios siempre bajo control."}].map((e,t)=>a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsx(e.icon,{className:"w-7 h-7 flex-shrink-0",style:{color:"#1e9eb1"}}),a.jsx("p",{className:"text-lg text-muted-foreground",children:e.text})]},t))})})]})})}),a.jsx("section",{className:"py-24 bg-muted/20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"PRINCIPIOS"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"Nuestro modelo operativo E2E, en 5 reglas"}),a.jsx("p",{className:"text-lg text-muted-foreground max-w-3xl mb-12",children:"No son buenas prácticas opcionales. Son reglas operativas no negociables que protegen plazo, calidad y seguridad en cada proyecto."})]}),a.jsx("div",{className:"space-y-8",children:[{number:"01",title:"E2E real",text:"Todo conectado desde que el cliente define la necesidad hasta el cierre y handover. Sin islas de información, sin excels paralelos, sin agujeros negros entre fases."},{number:"02",title:"Eventos, no emails",text:"Cada avance genera un evento estándar que dispara automáticamente las tareas, compras, fabricación, logística y pagos que correspondan. Lo que no es evento, no existe en el sistema."},{number:"03",title:"Gates obligatorios",text:"No se avanza si falta calidad, PRL, documentación, dinero o un plan ejecutable. Los gates protegen al proyecto de sí mismo y al equipo de decisiones prematuras."},{number:"04",title:"Solo lo planificado y liberado se ejecuta",text:"Regla Lean fundamental: si una actividad no está Make Ready, no entra en el plan semanal ni genera tareas diarias. Sin atajos, sin improvisación."},{number:"05",title:"Todo cuelga de la tarea",text:"La tarea es la unidad mínima donde se unen planificación, ejecución real, costes, evidencias, PPC y certificación. Sin tarea vinculada, el dato no cuenta."}].map((e,t)=>a.jsx(A,{delay:t*100,children:a.jsxs("div",{className:"flex gap-6 md:gap-10 border-l-2 border-foreground
408/20 pl-6 md:pl-10 py-2",children:[a.jsx("span",{className:"text-3xl md:text-4xl font-bold text-muted-foreground flex-shrink-0",children:e.number}),a.jsxs("div",{children:[a.jsx("h3",{className:"text-xl md:text-2xl font-semibold mb-2",children:e.title}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e.text})]})]})},t))})]})})}),a.jsx("section",{className:"py-24 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"FLUJO E2E"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"Un flujo end-to-end gobernado por eventos"}),a.jsx("p",{className:"text-lg text-muted-foreground max-w-3xl mb-16",children:"Los proyectos se mueven a través de eventos estándar, no correos ni hojas de cálculo. Cada evento deja un registro inmutable y dispara las acciones del siguiente paso."})]}),a.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:[{letter:"A",title:"Descubrimiento",events:"NeedDefined → SolutionConfigured → CompatibilityValidated",description:"Nos aseguramos de que lo que se ha configurado se puede fabricar y montar sin sorpresas."},{letter:"B",title:"Ingeniería ejecutable",events:"ExecutablePackageDrafted → SolutionRevalidated → SolutionFrozen",description:"La solución se traduce en paquetes de ejecución concretos, validados y congelados antes de producir."},{letter:"C",title:"Setup de proyecto",events:"ProjectInitialized → BaselineApproved",description:"El proyecto arranca con una baseline aprobada: alcance, plazo, coste y recursos comprometidos."},{letter:"D",title:"Planificación Lean",events:"LookaheadPublished → ConstraintCommitted → WorkMadeReady",description:"Solo se libera trabajo cuando todas las restricciones están resueltas. Si no está ready, no se ejecuta."},{letter:"E",title:"Supply & partners",events:"PurchaseAwarded → OrderConfirmed → SupplyMilestoneUpdated",description:"Compras, adjudicaciones y hitos de suministro trazados dentro del mismo flujo, no en paralelo."},{letter:"F",title:"Fábrica",events:"WorkOrderReleased → TaskCompleted → QAReleased / NCRRaised",description:"Cada estación produce, valida calidad y libera — o levanta una no conformidad antes de avanzar."},{letter:"G",title:"Logística + montaje",events:"ShipmentDispatched → Recepción → Montaje → Aceptación",description:"Paquetización, carga, envío, recepción en obra y handover final, todo bajo el mismo estándar."}].map((e,t)=>a.jsx(A,{delay:t*80,children:a.jsxs("div",{className:"border border-border rounded-lg p-6 md:p-8 h-full hover:border-foreground
408/30 transition-colors duration-300",children:[a.jsxs("div",{className:"flex items-start gap-4 mb-4",children:[a.jsx("span",{className:"text-2xl font-bold text-muted-foreground",children:e.letter}),a.jsx("h3",{className:"text-xl font-semibold",children:e.title})]}),a.jsx("p",{className:"text-minimal text-muted-foreground mb-3 normal-case tracking-normal",children:e.events}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e.description})]})},t))})]})})}),a.jsx("section",{className:"py-24 bg-muted/20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"LEAN INTEGRADO"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"Lean que vive en la herramienta, no en la pared"}),a.jsx("p",{className:"text-lg text-muted-foreground max-w-3xl mb-12",children:"La planificación no es un Gantt decorativo: es un sistema de permisos operativos. Cada nivel filtra, libera y protege al siguiente."})]}),a.jsx(A,{delay:100,children:a.jsx("div",{className:"grid sm:grid-cols-2 md:grid-cols-3 gap-4 mb-16",children:[{name:"Masterplan",desc:"Hitos clave y estructura del proyecto."},{name:"Pull Planning",desc:"Secuencia lógica tirando desde la entrega."},{name:"Lookahead",desc:"Ventana de 4–6 semanas con restricciones visibles."},{name:"Make Ready",desc:"Resolución de restricciones antes de liberar."},{name:"Weekly Work Plan",desc:"Compromisos semanales firmes del equipo."},{name:"Daily Plan",desc:"Tareas del día con evidencia y checklist."}].map((e,t)=>a.jsxs("div",{className:"border border-border rounded-lg p-5",children:[a.jsx("h4",{className:"font-semibold mb-1",children:e.name}),a.jsx("p",{className:"text-sm text-muted-foreground",children:e.desc})]},t))})}),a.jsx(A,{delay:200,children:a.jsxs("div",{className:"border-l-2 border-foreground
408/20 pl-6 md:pl-10 max-w-3xl",children:[a.jsx("h3",{className:"text-xl md:text-2xl font-semibold mb-4",children:"La tarea Daily: unidad mínima de trabajo oficial"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed mb-4",children:"Cada tarea diaria lleva identificadores únicos, responsable asignado, horas previstas y reales, zona o módulo asociado, checklist de calidad y PRL, y las evidencias fotográficas o documentales que demuestran su ejecución."}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"Es donde se unen planificación y realidad. Si no hay tarea Daily, no hay registro, no hay certificación y no hay coste imputado. Todo lo que importa pasa por aquí."})]})})]})})}),a.jsx("section",{className:"py-24 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"FÁBRICA + LOGÍSTICA + QA"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"Fabricación, calidad y logística integradas en el modelo E2E"}),a.jsx("p",{className:"text-lg text-muted-foreground max-w-3xl mb-12",children:"La fábrica no es un proveedor externo: es parte del sistema. Cada pieza sigue un flujo trazable desde la entrada de material hasta la expedición y montaje final."})]}),a.jsx(A,{delay:100,children:a.jsx("div",{className:"flex flex-wrap gap-3 mb-12",children:["Inbound","Supermarket + Kitting","Producción","QA / QC","Expedición","Staging"].map((e,t)=>a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("span",{className:"bg-foreground text-background text-sm font-medium px-4 py-2 rounded-md",children:e}),t<5&&a.jsx(it,{className:"w-5 h-5",style:{color:"#1e9eb1"}})]},t))})}),a.jsx(A,{delay:200,children:a.jsxs("div",{className:"grid md:grid-cols-3 gap-8",children:[a.jsxs("div",{className:"space-y-3",children:[a.jsx(Ac,{className:"w-8 h-8",style:{color:"#1e9eb1"}}),a.jsx("h3",{className:"text-lg font-semibold",children:"Kitting completo"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"No entra a estación sin kit completo. El supermarket prepara y verifica cada kit antes de liberar a producción."})]}),a.jsxs("div",{className:"space-y-3",children:[a.jsx(mw,{className:"w-8 h-8",style:{color:"#1e9eb1"}}),a.jsx("h3",{className:"text-lg font-semibold",children:"QA por gates"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"Gate 0, G1, puntos ocultos, funcional final y preexpedición. Cada gate bloquea el avance si la calidad no cumple."})]}),a.jsxs("div",{className:"space-y-3",children:[a.jsx(Cv,{className:"w-8 h-8",style:{color:"#1e9eb1"}}),a.jsx("h3",{className:"text-lg font-semibold",children:"Logística paquetizada"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"Packaging plan, plan de carga, expedición, recepción en obra y handover estándar. Sin margen para la improvisación."})]})]})})]})})}),a.jsx("section",{className:"py-24 bg-muted/20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"CONTROL Y TRAZABILIDAD"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"Cambios, costes y postventa con trazabilidad"}),a.jsx("p",{className:"text-lg text-muted-foreground max-w-3xl mb-12",children:'El modelo evita la "ingeniería infinita" y los costes huérfanos. Cada euro, cada cambio y cada incidencia quedan vinculados a su tarea, su decisión y su responsable.'})]}),a.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:[{icon:Sp,title:"Control del cambio",text:"Los cambios siempre se revalidan. Si afectan a la ejecución, se rebaselinea el proyecto. La negociación queda trazada en la plataforma, con impacto calculado antes de aprobar."},{icon:Wi,title:"Coste vinculado a tarea",text:"Si un coste no tiene tarea asociada, es un coste huérfano y no entra en la analítica. Plan vs Real, 3-way match y forecast (EAC) en tiempo real."},{icon:zw,title:"Postventa integrada",text:"Tickets, diagnóstico, intervención, cierre y lecciones aprendidas que vuelven al catálogo de soluciones y a las reglas del sistema."}].map((e,t)=>a.jsx(A,{delay:t*100,children:a.jsxs("div",{className:"space-y-3",children:[a.jsx(e.icon,{className:"w-8 h-8",style:{color:"#1e9eb1"}}),a.jsx("h3",{className:"text-lg font-semibold",children:e.title}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e.text})]})},t))})]})})}),a.jsx("section",{className:"py-24 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"CADENCIA"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"Ritmo de gestión que sostiene el sistema"}),a.jsx("p",{className:"text-lg text-muted-foreground max-w-3xl mb-12",children:"Sin rituales claros, cualquier modelo operativo se degrada. Estos son los ciclos mínimos que mantienen el E2E vivo y útil."})]}),a.jsx("div",{className:"grid sm:grid-cols-2 md:grid-cols-4 gap-6",children:[{freq:"Daily",text:"Tablero de tareas, bloqueos y evidencias. Lo que no se registra hoy, mañana no existe."},{freq:"Weekly",text:"WWP, capacidad vs carga, PPC y análisis de causas. Compromisos firmes para la semana."},{freq:"Mensual",text:"OTIF, NCR, retrabajo, margen, caja y mapa de riesgos. Visión consolidada del proyecto."}
408,{freq:"Trimestral",text:"Gates estratégicos para decidir si se escala, se ajusta o se frena. Revisión del sistema."}].map((e,t)=>a.jsx(A,{delay:t*100,children:a.jsxs("div",{className:"border border-border rounded-lg p-6 h-full",children:[a.jsx("h3",{className:"text-2xl font-bold mb-3",children:e.freq}),a.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed",children:e.text})]})},t))})]})})}),a.jsx("section",{className:"py-24 bg-foreground text-background",children:a.jsx("div",{className:"container mx-auto px-6 text-center",children:a.jsxs(A,{children:[a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"¿Listo para construir con certeza?"}),a.jsx("p",{className:"text-lg text-background/70 max-w-2xl mx-auto mb-10",children:"Descubre cómo el modelo E2E de modulya puede transformar tu próximo proyecto en una operación predecible, trazable y escalable."}),a.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[a.jsxs(F,{to:"/contact",className:"inline-flex items-center gap-2 bg-background text-foreground px-8 py-3 rounded-xl font-semibold hover:opacity-90 transition-opacity",children:["Hablemos ",a.jsx(it,{className:"w-4 h-4"})]}),a.jsx(F,{to:"/work",className:"inline-flex items-center gap-2 border-2 border-background/40 text-background px-8 py-3 rounded-xl font-semibold hover:bg-background/10 transition-colors",children:"Ver proyectos"})]})]})})}),a.jsx(fe,{})]}),MC=()=>a.jsxs("div",{className:"min-h-screen",children:[a.jsx(ue,{title:"ModussFab — Fábrica de construcción industrializada | Modulya",description:"ModussFab, la fábrica de Modulya dedicada a la construcción modular industrializada con BIM, Lean e IA aplicada al proceso productivo.",path:"/fabrica"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-20 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-lg md:text-xl tracking-widest mb-6",style:{color:"#b1c854"},children:"INDUSTRIALIZACIÓN modulya"}),a.jsxs("h1",{className:"text-4xl md:text-6xl lg:text-7xl text-architectural mb-8",children:[a.jsx("span",{className:"font-light uppercase text-7xl",children:"De taller a fábrica"}),a.jsx("br",{}),a.jsx("span",{className:"text-3xl md:text-5xl font-semibold",style:{color:"#1e9eb1"},children:"modular escalable."})]})]}),a.jsx(A,{delay:150,children:a.jsx("p",{className:"text-xl md:text-2xl text-muted-foreground font-light leading-relaxed max-w-3xl mb-8",children:"ModussFab crece por fases — de módulos 3D a pods, fachadas y estructura — con un layout flow-first y decisiones de escalado gobernadas por gates industriales, no por intuición."})}),a.jsx(A,{delay:300,children:a.jsx("div",{className:"space-y-4 max-w-2xl",children:[{icon:Jl,text:"Capacidad que crece con la demanda, sin saltos bruscos."},{icon:pr,text:"Flujo seguro, controlado y trazable en cada estación."},{icon:Wi,text:"Margen protegido gracias a diseño de planta y KPIs."}].map((e,t)=>a.jsxs("div",{className:"flex items-center gap-4",children:[a.jsx(e.icon,{className:"w-7 h-7 flex-shrink-0",style:{color:"#1e9eb1"}}),a.jsx("p",{className:"text-lg text-muted-foreground",children:e.text})]},t))})})]})})}),a.jsx("section",{className:"py-24 bg-muted/20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"FASES"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"Un modelo industrial por fases"}),a.jsx("p",{className:"text-lg text-muted-foreground max-w-3xl mb-12",children:"modulya escala su capacidad industrial de forma progresiva, evitando saltos bruscos que comprometan calidad, flujo o margen. Cada fase se activa solo cuando los gates industriales lo permiten."})]}),a.jsx("div",{className:"space-y-8",children:[{number:"01",title:"ModussFab — Volumétrico 3D",text:"La línea base: módulos volumétricos completos con flujo continuo, kitting por supermarket y calidad gobernada por gates. La fábrica arranca aquí, con estaciones diseña
408das para takt y WIP controlado."},{number:"02",title:"ModussPods + Fachadas 2D + Multitrade Racks",text:"La planta incorpora líneas paralelas de pods (baños, cocinas), fachadas 2D y racks/skids de instalaciones. Aumenta la capacidad, la variedad de producto y la complejidad logística interna — todo dentro del mismo sistema."},{number:"03",title:"ModussSteel + ModussPlack — Verticalización parcial",text:"Integración de estructura metálica y paneles propios para ganar control dimensional, resiliencia de suministro y margen. Se activa solo cuando la demanda, el CAPEX y los KPIs de planta están en verde."}].map((e,t)=>a.jsx(A,{delay:t*100,children:a.jsxs("div",{className:"flex gap-6 md:gap-10 border-l-2 border-foreground/20 pl-6 md:pl-10 py-2",children:[a.jsx("span",{className:"text-3xl md:text-4xl font-bold text-muted-foreground flex-shrink-0",children:e.number}),a.jsxs("div",{children:[a.jsx("h3",{className:"text-xl md:text-2xl font-semibold mb-2",children:e.title}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e.text})]})]})},t))})]})})}),a.jsx("section",{className:"py-24 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"ESCALADO"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"Del primer layout S0 a una fábrica multi-site"}),a.jsx("p",{className:"text-lg text-muted-foreground max-w-3xl mb-12",children:"S0 es la planta inicial — aproximadamente 5.500 m²/año de capacidad en 2026, con nave y campa dimensionadas para soportar la rampa de producción. No es un piloto: es el primer nodo de un modelo industrial diseñado para replicarse."})]}),a.jsx(A,{delay:100,children:a.jsxs("div",{className:"grid md:grid-cols-2 gap-8 mb-16",children:[a.jsxs("div",{className:"border border-border rounded-lg p-6 md:p-8",children:[a.jsx("h3",{className:"text-xl font-semibold mb-4",children:"Condicionantes reales de implantación"}),a.jsx("ul",{className:"space-y-3",children:["Urbanismo y licencias industriales compatibles.","Accesos y radios de giro para transporte especial.","Potencia eléctrica y suministros industriales.","Compatibilidad con vecinos: ruido, emisiones, horarios.","Superficie para campa, staging y maniobra."].map((e,t)=>a.jsxs("li",{className:"flex items-start gap-3 text-muted-foreground",children:[a.jsx(Ad,{className:"w-4 h-4 mt-1 flex-shrink-0"}),a.jsx("span",{children:e})]},t))})]}),a.jsxs("div",{className:"border border-border rounded-lg p-6 md:p-8",children:[a.jsx("h3",{className:"text-xl font-semibold mb-4",children:"Estado final de referencia"}),a.jsx("div",{className:"space-y-6",children:[{label:"Vivienda industrializada",value:"≈ 30.000 m²/año"},{label:"Fachadas 2D",value:"450–500 viviendas/año"},{label:"Pods y multitrades",value:"Dimensionados por catálogo y ritmos"}].map((e,t)=>a.jsxs("div",{children:[a.jsx("p",{className:"text-sm text-muted-foreground mb-1",children:e.label}),a.jsx("p",{className:"text-2xl font-bold",children:e.value})]},t))})]})]})})]})})}),a.jsx("section",{className:"py-24 bg-muted/20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"LAYOUT"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"Layout diseñado para fluir y escalar"}),a.jsx("p",{className:"text-lg text-muted-foreground max-w-3xl mb-12",children:"Cada metro cuadrado de planta responde a cuatro principios: flujo continuo, seguridad de personas, calidad en cada estación y capacidad de escalar sin rediseñar."})]}),a.jsx(A,{delay:100,children:a.jsx("div",{className:"grid sm:grid-cols-2 md:grid-cols-4 gap-4 mb-12",children:[{icon:Ep,name:"Flow-first",desc:"Material y producto avanzan sin retrocesos ni cruces."},{icon:pr,name:"Seguridad",desc:"Zonas segregadas, rutas peatonales y PCI integrado."},{icon:Ad,name:"Calidad",desc:"QA/QC en cada gate, no solo al final."},{icon:Jl,name:"Escalabilidad",desc:"Zonas reservadas para fases 2 y 3 sin parar."}].map((e,t)=>a.jsxs("div",{className:"border border-border rounded-lg p-5",children:[a.jsx(e.icon,{className:"w-7 h-7 mb-3",style:{color:"#1e9eb1"}}),a.jsx("h4",{className:"font-semibold mb-1",children:e.name}),a.jsx("p",{className:"text-sm text-muted-foreground",children:e.desc})]},t))})}),a.jsxs(A,{delay:200,children:[a.jsx("div",{className:"flex flex-wrap gap-3 mb-8",children:["Inbound","Supermarket + Kitting","Líneas 3D","Pods / Fachadas","QA / QC","Expedición","Staging / Campa"].map((e,t)=>a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsx("span",{className:"bg-foreground text-background text-sm font-medium px-4 py-2 rounded-md",children:e}),t<6&&a.jsx(it,{className:"w-5 h-5",style:{color:"#1e9eb1"}})]},t))}),a.jsx("p",{className:"text-muted-foreground italic",children:'"Menos pasillos, más flujo. Menos cruces, más seguridad."'})]})]})})}),a.jsx("section",{className:"py-24 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"OPERACIONES"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"De la estructura al módulo terminado, listo para expedición"}),a.jsx("p",{className:"text-lg text-muted-foreground max-w-3xl mb-12",children:"El macroflujo de Fase 1 recorre estructura, suelos, envolvente, MEP y acabados hasta QA final y preexpedición — con WIP controlado y tiempos objetivo por estación para mantener el takt de planta."})]}),a.jsx(A,{delay:100,children:a.jsxs("div",{className:"grid md:grid-cols-2 gap-8 mb-16",children:[a.jsxs("div",{className:"space-y-3",children:[a.jsx($v,{className:"w-8 h-8",style:{color:"#1e9eb1"}}),a.jsx("h3",{className:"text-lg font-semibold",children:"Equipos y utilidades"}),a.jsx("ul",{className:"space-y-2 text-muted-foreground",children:["Puentes grúa y carretillas para movimiento de módulos.","Utillajes y bancadas específicos por estación.","Aire comprimido, potencia eléctrica y extracción.","Protección contra incendios (PCI) y red de datos."].map((e,t)=>a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"text-muted-foreground mt-1",children:"—"}),a.jsx("span",{children:e})]},t))})]}),a.jsxs("div",{className:"space-y-3",children:[a.jsx(Sp,{className:"w-8 h-8",style:{color:"#1e9eb1"}}),a.jsx("h3",{className:"text-lg font-semibold",children:"Qué añade la Fase 2"}),a.jsx("ul",{className:"space-y-2 text-muted-foreground",children:["Línea dedicada de pods (baños, cocinas, espacios técnicos).","Área de fachadas 2D con producción en serie.","Zona de racks/skids de instalaciones (multitrade).","Mayor exigencia logística interna y gestión de campa."].map((e,t)=>a.jsxs("li",{className:"flex items-start gap-2",children:[a.jsx("span",{className:"text-muted-foreground mt-1",children:"—"}),a.jsx("span",{children:e})]},t))})]})]})})]})})}),a.jsx("section",{className:"py-24 bg-muted/20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"FASE 3"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"Steel & Panel: verticalizar lo justo"})]}),a.jsx(A,{delay:100,children:a.jsxs("div",{className:"border-l-2 border-foreground
408/20 pl-6 md:pl-10 max-w-3xl space-y-6",children:[a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"ModussSteel integra la fabricación de estructura metálica ligera; ModussPlack añade la producción propia de paneles. Juntos aportan control dimensional milimétrico, resiliencia frente a la cadena de suministro externa y un margen que se queda dentro de la operación."}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:"Esta fase exige más superficie, más potencia instalada y protocolos de seguridad reforzados — por eso no se activa por ambición, sino cuando los gates industriales, la demanda confirmada y los KPIs de planta están en verde. Verticalizar lo justo significa integrar solo lo que mejora el flujo y protege el margen."})]})})]})})}),a.jsx("section",{className:"py-24 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"GATES & KPIs"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"Escalar solo cuando la fábrica está lista"}),a.jsx("p",{className:"text-lg text-muted-foreground max-w-3xl mb-12",children:"Las decisiones de ampliar capacidad se toman con gates industriales y datos, no con corazonadas. Cada gate verifica que la planta, el equipo y la demanda están alineados antes de dar el siguiente paso."})]}),a.jsx(A,{delay:100,children:a.jsxs("div",{className:"border border-border rounded-lg p-6 md:p-8 mb-12",children:[a.jsx("h3",{className:"text-xl font-semibold mb-6",children:"Elementos del gate de escalado"}),a.jsx("div",{className:"grid sm:grid-cols-2 gap-4",children:["Layout S0 validado a escala real.","CAPEX Fase 1 cerrado por paquetes con contingencia.","Pipeline mínimo para alcanzar break-even.","Equipo núcleo contratado y formado.","Rutinas daily/weekly de QA y PPC activas.","Proveedores críticos homologados y con acuerdo marco."].map((e,t)=>a.jsxs("div",{className:"flex items-start gap-3 text-muted-foreground",children:[a.jsx(Ad,{className:"w-4 h-4 mt-1 flex-shrink-0"}),a.jsx("span",{children:e})]},t))})]})}),a.jsxs(A,{delay:200,children:[a.jsx("h3",{className:"text-2xl font-semibold mb-8",children:"KPIs de planta"}),a.jsx("div",{className:"grid sm:grid-cols-2 md:grid-cols-4 gap-6",children:[{icon:gw,title:"Flujo / productividad",items:["Takt time (ritmo de producción por estación)","WIP (trabajo en curso)","OEE (eficiencia global del equipo)","Horas por unidad producida"]},{icon:Wi,title:"Lean",items:["PPC (% de plan completado)","% tareas Make Ready","Causas de no cumplimiento"]},{icon:pr,title:"Calidad",items:["NCR por 1.000 h o por unidad","Retrabajo (%)","Incidencias en preexpedición","First pass yield"]},{icon:Cv,title:"Logística",items:["Dock-to-stock time","Incidencias inbound / expedición","Cumplimiento de ventanas de carga"]}].map((e,t)=>a.jsxs("div",{className:"border border-border rounded-lg p-6 h-full",children:[a.jsx(e.icon,{className:"w-7 h-7 mb-3",style:{color:"#1e9eb1"}}),a.jsx("h4",{className:"font-semibold mb-3",children:e.title}),a.jsx("ul",{className:"space-y-2 text-sm text-muted-foreground",children:e.items.map((n,s)=>a.jsxs("li",{children:["· ",n]},s))})]},t))})]})]})})}),a.jsx("section",{className:"py-24 bg-foreground text-background",children:a.jsx("div",{className:"container mx-auto px-6 text-center",children:a.jsxs(A,{children:[a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-architectural mb-6",children:"¿Quieres ver cómo funciona por dentro?"}),a.jsx("p",{className:"text-lg text-background/70 max-w-2xl mx-auto mb-10",children:"Descubre cómo ModussFab y su modelo por fases pueden dar certeza industrial a tu próximo proyecto — con flujo, calidad y margen desde el primer día."}),a.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 justify-center",children:[a.jsxs(F,{to:"/contact",className:"inline-flex items-center gap-2 bg-background text-foreground px-8 py-3 rounded-xl font-semibold hover:opacity-90 transition-opacity",children:["Hablemos ",a.jsx(it,{className:"w-4 h-4"})]}),a.jsx(F,{to:"/e2e",className:"inline-flex items-center gap-2 border-2 border-background/40 text-background px-8 py-3 rounded-xl font-semibold hover:bg-background/10 transition-colors",children:"Ver modelo E2E"})]})]})})}),a.jsx(fe,{})]}),DC="/assets/service-residential-BK4Z55ze.jpg",UC="/assets/service-industrial-CqSMkeB4.jpg",FC="/assets/service-accommodation-DKPl0c0c.jpg",BC="/assets/service-senior-D6lTigwm.jpg",qC=[{number:"01",title:"RESIDENCIAL",icon:bo,image:DC,headline:"Creamos hogares que reflejan estilos de vida individuales, manteniendo la integridad arquitectónica.",bullets:["Diseñamos y fabricamos edificios modulares nZEB con altos estándares de confort térmico y acústico, reduciendo plazos y costes frente a la obra tradicional.","Nuestro sistema MODUSS permite combinar módulos 2D y 3D para generar viviendas flexibles, ampliables y adaptables a distintas etapas de la vida."],tags:["nZEB","MODUSS","Confort térmico"]},{number:"02",title:"INDUSTRIAL",icon:Ac,image:UC,headline:"Diseñamos espacios funcionales que mejoran entornos empresariales y experiencia del usuario.",bullets:["Aplicamos construcción modular industrializada para naves, oficinas y equipamientos de apoyo, optimizando tiempos de parada, seguridad y productividad en planta.","Integramos soluciones llave en mano, desde diseño hasta montaje, con planificación Lean e IA para minimizar riesgos y desviaciones de plazo y coste."],tags:["Lean","Llave en mano","IA"]},{number:"03",title:"ALOJAMIENTOS",icon:Ev,image:FC,headline:"Transformamos estructuras con sensibilidades contemporáneas y prácticas sostenibles.",bullets:["Desarrollamos alojamientos temporales y campamentos de trabajo con módulos reubicables y desmontables, pensados para reducir impacto ambiental y huella logística.","Nuestros sistemas permiten escalar capacidad en poco tiempo, mantener estándares de confort elevados y deconstruir o reutilizar módulos al finalizar la operación."],tags:["Reubicable","Escalable","Sostenible"]},{number:"04",title:"SENIOR LIVING",icon:jv,image:BC,headline:"Proporcionamos orientación experta en dirección de diseño, planificación y soluciones arquitectónicas.",bullets:["Moduss Senior Living combina neuroarquitectura, biofili
408a y accesibilidad universal para crear viviendas y residencias para mayores centradas en autonomía, comunidad y cuidado.","Integramos tecnología discreta, eficiencia energética y programas sociales para ofrecer entornos seguros, saludables y económicamente sostenibles a largo plazo."],tags:["Neuroarquitectura","Biofilia","Accesibilidad"]}],VC=()=>a.jsx("section",{id:"services",className:"py-24 md:py-32 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsx(A,{children:a.jsxs("div",{className:"mb-16 md:mb-24",children:[a.jsx("p",{className:"text-lg tracking-widest mb-4",style:{color:"#b1c854"},children:"SERVICIOS"}),a.jsx("h1",{className:"text-4xl md:text-6xl lg:text-7xl font-light text-architectural max-w-3xl uppercase",children:"QUÉ HACEMOS"}),a.jsx("p",{className:"mt-6 text-muted-foreground text-lg max-w-2xl leading-relaxed",children:"Construcción modular industrializada de alto rendimiento. Ahorro de tiempo, coste y huella ambiental en cada proyecto."})]})}),a.jsx("div",{className:"space-y-20 md:space-y-32",children:qC.map((e,t)=>{const n=e.icon,s=t%2===1;return a.jsx(A,{delay:t*100,children:a.jsxs("div",{className:`group grid grid-cols-1 lg:grid-cols-2 gap-8 lg:gap-16 items-center ${s?"lg:direction-rtl":""}`,children:[a.jsxs("div",{className:`relative overflow-hidden rounded-2xl ${s?"lg:order-2":""}`,children:[a.jsx("div",{className:"aspect-[4/3] overflow-hidden rounded-2xl",children:a.jsx("img",{src:e.image,alt:e.title,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105 dark:invert",loading:"lazy"})}),a.jsx("span",{className:"absolute top-4 left-4 text-7xl md:text-8xl font-extralight text-background/30 leading-none select-none pointer-events-none",children:e.number})]}),a.jsxs("div",{className:`flex flex-col justify-center ${s?"lg:order-1":""}`,children:[a.jsxs("div",{className:"flex items-center gap-3 mb-4",children:[a.jsx("div",{className:"w-14 h-14 rounded-xl bg-foreground
408/5 flex items-center justify-center",children:a.jsx(n,{className:"w-8 h-8",style:{color:"#1e9eb1"}})}),a.jsx("span",{className:"text-2xl font-light text-muted-foreground tracking-widest",children:e.number})]}),a.jsx("h3",{className:"text-3xl md:text-4xl font-light text-architectural mb-4",children:e.title}),a.jsx("p",{className:"text-foreground/80 text-lg leading-relaxed mb-6",children:e.headline}),a.jsx("ul",{className:"space-y-4 mb-6",children:e.bullets.map((r,i)=>a.jsxs("li",{className:"flex gap-3 text-muted-foreground leading-relaxed",children:[a.jsx("span",{className:"mt-1.5 w-1.5 h-1.5 rounded-full bg-foreground/40 shrink-0"}),r]},i))}),a.jsx("div",{className:"flex flex-wrap gap-2",children:e.tags.map(r=>a.jsx("span",{className:"px-3 py-1 text-xs font-medium tracking-wide rounded-lg bg-foreground/5 text-foreground/70 border border-border",children:r},r))})]})]})},e.number)})}),a.jsx(A,{delay:200,children:a.jsx("div",{className:"mt-24 md:mt-32 grid grid-cols-1 sm:grid-cols-3 gap-8",children:[{icon:$p,label:"Reducción de plazos",value:"Hasta 50%"},{icon:xo,label:"Menos residuos en obra",value:"Hasta 80%"},{icon:pr,label:"Control de calidad",value:"100% en fábrica"}].map(e=>a.jsxs("div",{className:"text-center p-8 rounded-2xl bg-muted/50 border border-border",children:[a.jsx(e.icon,{className:"w-8 h-8 mx-auto mb-3",style:{color:"#1e9eb1"}}),a.jsx("p",{className:"text-3xl md:text-4xl font-light text-architectural mb-1",children:e.value}),a.jsx("p",{className:"text-sm text-muted-foreground",children:e.label})]},e.label))})}),a.jsx(A,{delay:300,children:a.jsx("div",{className:"mt-20 md:mt-28 text-center",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 bg-foreground text-background rounded-xl px-8 py-4 font-semibold text-lg hover:bg-foreground
408/90 transition-colors",children:["Descubre nuestros proyectos",a.jsx(it,{className:"w-5 h-5"})]})})})]})})}),HC=()=>a.jsxs("div",{className:"min-h-screen",children:[a.jsx(ue,{title:"Servicios — Diseño, ingeniería y fabricación modular | Modulya",description:"Servicios de Modulya: diseño arquitectónico, ingeniería, fabricación industrializada e instalación de espacios modulares sostenibles y replicables.",path:"/services"}),a.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify({"@context":"https://schema.org","@graph":[{"@type":"Service","@id":"https://modulya.lovable.app/services#residential",serviceType:"Construcción modular residencial",name:"Construcción modular residencial",description:"Diseño y fabricación industrializada de viviendas modulares: villas, lofts y desarrollos residenciales llave en mano con metodología BIM y Lean.",provider:{"@type":"Organization",name:"Modulya",url:"https://modulya.lovable.app"},areaServed:"ES",url:"https://modulya.lovable.app/services"},{"@type":"Service","@id":"https://modulya.lovable.app/services#industrial",serviceType:"Construcción modular industrial",name:"Construcción modular industrial",description:"Edificios industriales modulares, naves y espacios productivos fabricados en ModussFab con plazos reducidos y máxima eficiencia.",provider:{"@type":"Organization",name:"Modulya",url:"https://modulya.lovable.app"},areaServed:"ES",url:"https://modulya.lovable.app/services"},{"@type":"Service","@id":"https://modulya.lovable.app/services#specialized",serviceType:"Soluciones modulares especializadas",name:"Soluciones modulares especializadas",description:"Equipamientos culturales, sanitarios y educativos modulares, así como soluciones a medida apoyadas en IA, BIM y fabricación industrializada.",provider:{"@type":"Organization",name:"Modulya",url:"https://modulya.lovable.app"},areaServed:"ES",url:"https://modulya.lovable.app/services"}]})}}),a.jsx(de,{}),a.jsx("div",{className:"pt-20",children:a.jsx(VC,{})}),a.jsx(fe,{})]}),WC="/assets/team-jose-victor-nobg-Cj8J-yFU.png",ZC="/assets/team-jose-maria-nobg-DI1WScI3.png",GC="/assets/team-marce-aragones-nobg-CuapuO7E.png",KC="/assets/team-manuel-jesus-nobg-CzxMDL8G.png",JC="/assets/team-juan-jose-nobg-DgQHYOY4.png",YC="/assets/team-antonio-abad-nobg-CDTs0wSL.png",QC=[{name:"José Víctor Jiménez Báñez",role:"CEO & Co-founder",description:"+25 años liderando proyectos de construcción singular y activos renovables. Impulsor de la industrialización como palanca de impacto social y medioambiental.",quote:"Cada módulo es una promesa: espacios que elevan vidas y regeneran ciudades.",initials:"JV",image:WC},{name:"Juan José Medero Feria",role:"COO & Co-founder",description:"Arquitecto con +20 años ejecutando proyectos sanitarios, industriales y de alojamientos. Garantiza que cada módulo cumpla plazos, costes y calidad.",quote:"La excelencia operativa es el puente entre una idea brillante y un edificio real.",initials:"JJ",image:JC},{name:"Manuel Jesús Maestre Romero",role:"CFO",description:"+15 años en dirección financiera de proyectos de infraestructura. Diseña modelos de financiación y asegura la viabilidad económica a largo plazo.",quote:"Las finanzas sólidas hacen posible que el propósito llegue lejos.",initials:"MJ",image:KC}],XC=[{name:"Antonio Abad Jiménez",role:"Estrategia y Desarrollo de Negocio",description:"Identifica oportunidades de mercado y articula alianzas estratég
408icas para escalar el modelo industrial modular.",initials:"AA",image:YC},{name:"Marce Aragonés",role:"CAIO & CMO — Sistemas & IA",description:"Lidera la transformación digital, integrando inteligencia artificial en diseño, producción y comunicación de marca.",initials:"MA",image:GC},{name:"José María García Soria",role:"Operaciones & Partners Industriales",description:"Gestiona la cadena de valor industrial y coordina la red de partners para garantizar capacidad y calidad.",initials:"JM",image:ZC}];function R0({member:e,index:t}){const n=g.useRef(null),[s,r]=g.useState(!1),[i,o]=g.useState(!1),[l,c]=g.useState(!1);return g.useEffect(()=>{const d=()=>c(document.documentElement.classList.contains("dark"));d();const u=new MutationObserver(d);return u.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>u.disconnect()},[]),g.useEffect(()=>{const d=n.current;if(!d)return;const u=new IntersectionObserver(([f])=>{f.isIntersecting&&(setTimeout(()=>o(!0),t*120),u.unobserve(d))},{threshold:.15});return u.observe(d),()=>u.disconnect()},[t]),a.jsx("div",{ref:n,className:`transition-all duration-700 ${i?"opacity-100 translate-y-0":"opacity-0 translate-y-10"}`,style:{perspective:"1200px"},onMouseEnter:()=>r(!0),onMouseLeave:()=>r(!1),children:a.jsxs("div",{className:"relative w-full transition-transform duration-700",style:{transformStyle:"preserve-3d",transform:s?"rotateY(180deg)":"rotateY(0deg)",minHeight:e.quote?"380px":"320px"},children:[a.jsxs("div",{className:"absolute inset-0 border border-border rounded-lg p-8 flex flex-col items-center justify-center overflow-hidden bg-white dark:bg-black",style:{backfaceVisibility:"hidden"},children:[a.jsx("div",{className:"mb-6",children:e.image?a.jsx("div",{className:"w-40 h-40 rounded-md border-2 border-border shadow-lg bg-white overflow-hidden ring-2 dark:ring-white/10",children:a.jsx("img",{src:e.image,alt:e.name,className:"w-full h-full object-cover"})}):a.jsx("div",{className:"w-40 h-40 rounded-md bg-muted flex items-center justify-center text-4xl font-light text-muted-foreground border-2 border-border",children:e.initials})}),a.jsx("h4",{className:"text-lg font-medium text-center",children:e.name}),a.jsx("p",{className:"text-minimal text-muted-foreground text-center mt-1",children:e.role}),a.jsx("div",{className:"mt-6 text-xs text-muted-foreground tracking-widest uppercase",children:"Hover para más info"})]}),a.jsxs("div",{className:"absolute inset-0 border border-border rounded-lg p-8 flex flex-col items-center justify-center overflow-hidden bg-white dark:bg-black",style:{backfaceVisibility:"hidden",transform:"rotateY(180deg)"},children:[e.description&&a.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed text-center mb-4",children:e.description}),e.quote&&a.jsx("div",{className:"border-t border-border pt-4 mt-2",children:a.jsxs("p",{className:"text-sm italic text-foreground/80 leading-relaxed text-center",children:['"',e.quote,'"']})}),a.jsxs("button",{className:"mt-6 inline-flex items-center gap-2 text-xs text-muted-foreground hover:text-foreground transition-colors duration-300",children:[a.jsx(vw,{className:"w-4 h-4"}),"Ver en LinkedIn"]})]})]})})}const eT=()=>a.jsx("section",{className:"py-32 bg-muted/20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-20",children:[a.jsx("h2",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"EQUIPO"}),a.jsxs("h3",{className:"text-4xl md:text-6xl font-light text-architectural",children:["Las personas detrás",a.jsx("br",{}),"de cada módulo"]})]}),a.jsxs("div",{className:"mb-20",children:[a.jsx("h4",{className:"text-minimal mb-10 border-b border-border pb-4 text-xl text-[#b1c856]",children:"DIRECCIÓN"}),a.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:QC.map((e,t)=>a.jsx(R0,{member:e,index:t},e.name))})]}),a.jsxs("div",{children:[a.jsx("h4",{className:"text-minimal mb-10 border-b border-border pb-4 text-xl text-[#b1c856]",children:"ESTRATEGIA, PRODUCTO Y CRECIMIENTO"}),a.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:XC.map((e,t)=>a.jsx(R0,{member:e,index:t+3},e.name))})]})]})})}),tT=()=>a.jsxs("div",{className:"min-h-screen",children:[a.jsx(ue,{title:"Nosotros — Modulya",description:"Conoce a Modulya: equipo, propósito y visión detrás de una arquitectura modular industrializada, sostenible y centrada en las personas.",path:"/about"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-20 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-lg tracking-widest mb-6",style:{color:"#b1c854"},children:"NOSOTROS"}),a.jsxs("h1",{className:"text-4xl md:text-6xl text-architectural mb-8 font-extralight lg:text-7xl",children:["Espacios extraordinarios",a.jsx("br",{}),a.jsx("span",{className:"text-3xl font-semibold md:text-6xl",style:{color:"#1e9eb1"},children:"para dignificar la vida."})]})]}),a.jsxs(A,{delay:150,children:[a.jsx("p",{className:"text-xl md:text-2xl text-muted-foreground font-light leading-relaxed max-w-3xl mb-6",children:"modulya es la primera constructora industrializada de nueva generación en Andalucía. Unimos diseño centrado en las personas, el sistema constructivo MODUSS, industrialización Lean y sostenibilidad real para crear espacios más humanos, flexibles y prósperos."}
408),a.jsx("p",{className:"text-lg text-muted-foreground/80 leading-relaxed max-w-3xl mb-10",children:"Imaginamos y hacemos posible espacios extraordinarios. Espacios que dignifican la vida de las personas y generan entornos más sostenibles, humanos y prósperos — con I+D+i en colaboración con la Universidad de Sevilla y como parte del hub offsite."})]}),a.jsx(A,{delay:300,children:a.jsxs("div",{className:"flex flex-wrap gap-4",children:[a.jsxs(F,{to:"/services",className:"inline-flex items-center gap-2 text-sm font-medium border border-border px-6 py-3 rounded-md hover:bg-foreground hover:text-background transition-colors duration-300",children:["Conoce cómo lo hacemos",a.jsx(it,{className:"w-4 h-4"})]}),a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-sm font-medium text-muted-foreground hover:text-foreground transition-colors duration-300 px-6 py-3",children:["Descubre el Universo Moduss",a.jsx(it,{className:"w-4 h-4"})]})]})})]})})}),a.jsx("section",{className:"py-24 bg-muted/30",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"NUESTRO PROPÓSITO"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-light text-architectural mb-10",children:"El porqué de todo lo que hacemos."})]}),a.jsx(A,{delay:100,children:a.jsx("blockquote",{className:"border-l-4 border-foreground pl-8 mb-10",children:a.jsx("p",{className:"text-xl md:text-2xl font-light leading-relaxed italic",children:'"Imaginar y hacer posible espacios extraordinarios que dignifiquen la vida de las personas y generen entornos más sostenibles, humanos y prósperos."'})})}),a.jsxs(A,{delay:200,children:[a.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed mb-6 max-w-3xl",children:"Este propósito guía cada decisión que tomamos: cómo diseñamos, qué materiales elegimos, con quién trabajamos y de qué manera medimos nuestro impacto. No es un eslogan; es el filtro con el que evaluamos cada proyecto, cada alianza y cada inversión."}),a.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed mb-12 max-w-3xl",children:"Construir mejor no basta. Queremos construir con sentido: que cada espacio aporte valor real a quien lo habita, a quien lo promueve y al entorno que lo rodea."})]}),a.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:[{icon:go,title:"Dignidad",text:"Elevar la experiencia cotidiana y devolver valor humano al espacio."},{icon:Cw,title:"Extraordinario",text:"No competir como commodity: singularidad, bienestar y deseo."},{icon:xo,title:"Sostenibilidad integral",text:"Valor económico, social y ambiental medible."}].map((e,t)=>a.jsx(A,{delay:t*120,children:a.jsxs("div",{className:"border border-border rounded-lg p-8 bg-card hover:shadow-elegant transition-shadow duration-500",children:[a.jsx(e.icon,{className:"w-8 h-8 mb-4",style:{color:"#1e9eb1"}}),a.jsx("h3",{className:"text-lg font-semibold mb-2",children:e.title}),a.jsx("p",{className:"text-muted-foreground",children:e.text})]})},e.title))})]})})}),a.jsx("section",{className:"py-24 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"CÓMO PENSAMOS"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-light text-architectural mb-16",children:"Personas · Sistema · Entorno"})]}),a.jsx("div",{className:"grid md:grid-cols-3 gap-12",children:[{icon:Mr,title:"Personas",tagline:"El espacio debe cuidar, elevar y dignificar.",body:"Diseñamos para el bienestar real: luz natural, conexión con la naturaleza, materiales nobles, salud espacial, comunidad y reducción del estrés y la soledad. El espacio no es neutro; transforma la vida de quien lo habita."},{icon:fw,title:"Sistema",tagline:"Diseño e industrialización deben hacer realidad la visión.",body:"El sistema constructivo MODUSS, combinado con industrialización Lean y una capa digital de trazabilidad, permite repetir calidad, reducir riesgo y medir lo que realmente importa: plazos, costes y satisfacción."},{icon:wv,title:"Entorno",tagline:"El proyecto debe aportar valor más allá de su perímetro.",body:"Economía local, empleo digno, menor huella de carbono, circularidad de materiales, coherencia ESG y capacidad de replicar calidad en distintos lugares. Cada proyecto fortalece el ecosistema que lo rodea."}].map((e,t)=>a.jsx(A,{delay:t*150,children:a.jsxs("div",{className:"space-y-4",children:[a.jsx(e.icon,{className:"w-10 h-10",
408style:{color:"#1e9eb1"}}),a.jsx("h3",{className:"text-2xl font-semibold",children:e.title}),a.jsxs("p",{className:"text-sm font-medium text-foreground/80 italic",children:['"',e.tagline,'"']}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:e.body})]})},e.title))})]})})}),a.jsx(A,{children:a.jsx(eT,{})}),a.jsx("section",{className:"py-24 bg-muted/30",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"LO QUE NOS HACE DISTINTOS"}),a.jsxs("h2",{className:"text-3xl md:text-5xl font-light text-architectural mb-10",children:["Universo Moduss: nuestro sistema",a.jsx("br",{className:"hidden md:block"}),"para hacer realidad el PTM."]})]}),a.jsx(A,{delay:100,children:a.jsxs("div",{className:"max-w-3xl space-y-6 mb-14",children:[a.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed",children:"Universo Moduss es un stack integrado que conecta producto, diseño, fábrica y datos en un único flujo. No se trata de fabricar módulos: se trata de orquestar un sistema completo que garantiza calidad, rapidez y sostenibilidad en cada proyecto."}),a.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed",children:"Desde el sistema constructivo MODUSS —producto modular configurable 2D/3D— hasta el diseño centrado en las personas (biofilia, neuroarquitectura, geometría fractal), pasando por fábrica y supply chain coordinados, capa digital de trazabilidad extremo a extremo y una plataforma colaborativa multi-actor que conecta usuarios, técnicos, constructores, promotores e inversores."})]})}),a.jsx(A,{delay:200,children:a.jsx("div",{className:"grid md:grid-cols-3 gap-8",children:[{title:"Más valor para las personas",text:"Bienestar, confort, dignidad y orgullo de pertenencia."},{title:"Más valor para el activo",text:"Demanda, certidumbre, narrativa ESG creíble y diferenciación."},{title:"Más dificultad de réplica",text:"No basta copiar un módulo; hay que integrar el sistema completo."}].map(e=>
408a.jsxs("div",{className:"border-l-2 border-foreground/20 pl-6 py-2",children:[a.jsx("h4",{className:"font-semibold mb-1",children:e.title}),a.jsx("p",{className:"text-sm text-muted-foreground",children:e.text})]},e.title))})})]})})}),a.jsx("section",{className:"py-24 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"PARTNERS"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-light text-architectural mb-10",children:"Colaboración que crea más valor."})]}),a.jsx(A,{delay:100,children:a.jsx("p",{className:"text-lg text-muted-foreground leading-relaxed max-w-3xl mb-6",children:"Trabajamos con promotores, fondos e inversores, administraciones, constructores, partners industriales y equipos técnicos — siempre a través de una plataforma colaborativa que alinea estándares, planificación, datos y mejora continua."})}),a.jsx(A,{delay:200,children:a.jsx("div",{className:"grid md:grid-cols-2 gap-6 mb-14",children:[{label:"Más demanda",text:"Espacios mejor diseñados se alquilan y se venden mejor."},{label:"Menos riesgo",text:"Industrialización + proceso = certi
408dumbre en coste, plazo y calidad."},{label:"ESG real",text:"Sostenibilidad medible y alineada con financiación y regulación."},{label:"Más valor de activo",text:"Experiencia + repetibilidad fortalecen el posicionamiento."}].map(e=>a.jsxs("div",{className:"border border-border rounded-lg p-6 bg-card hover:shadow-elegant transition-shadow duration-500",children:[a.jsx("h4",{className:"font-semibold mb-2",children:e.label}),a.jsx("p",{className:"text-sm text-muted-foreground",children:e.text})]},e.label))})}),a.jsx(A,{delay:300,children:a.jsx("div",{className:"border-t border-border pt-8",children:a.jsx("p",{className:"text-lg font-light leading-relaxed max-w-3xl",children:"No construimos solo espacios. Construimos capacidad compartida para imaginar, diseñar, industrializar y operar lugares con más valor para todos."})})})]})})}),a.jsx(J1,{variant:"muted"}),a.jsx("section",{className:"py-24 bg-muted/30",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto",children:[a.jsxs(A,{children:[a.jsx("p",{className:"text-minimal mb-4 text-xl text-[#b1c856]",children:"CULTURA"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-light text-architectural mb-12",children:"Nuestra manera de ser."})]}),a.jsx("div",{className:"grid md:grid-cols-2 gap-x-16 gap-y-8 mb-14",children:[{title:"Personas primero",text:"Seguridad, formación continua, empleo digno y orgullo maker."},{title:"Transparencia radical",text:"Hablar claro de costes, riesgos, plazos y métricas."},{title:"Lean con propósito",text:"Eliminar despilfarro para crear valor social y ambiental, no solo eficiencia."},{title:"Aprendizaje continuo",text:"Cada proyecto deja al siguiente un estándar mejor."},{title:"Proximidad y tejido local",text:"Proveedores cercanos, economía regional, menos transporte."}].map((e,t)=>a.jsx(A,{delay:t*100,children:a.jsxs("div",{className:"border-l-2 border-foreground
408/20 pl-6 py-1",children:[a.jsx("h4",{className:"font-semibold mb-1",children:e.title}),a.jsx("p",{className:"text-muted-foreground text-sm",children:e.text})]})},e.title))}),a.jsx(A,{delay:500,children:a.jsx("div",{className:"border-t border-border pt-10",children:a.jsxs("p",{className:"text-xl md:text-2xl font-light leading-relaxed text-center max-w-3xl mx-auto",children:["Habitar mejor es construir un futuro mejor.",a.jsx("br",{}),a.jsx("span",{className:"text-muted-foreground",children:"Cada edificio que hacemos es un paso más en esa dirección."})]})})})]})})}),a.jsx(fe,{})]});function nT(e,t,n,s){function r(i){return i instanceof n?i:new n(function(o){o(i)})}return new(n||(n=Promise))(function(i,o){function l(u){try{d(s.next(u))}catch(f){o(f)}}function c(u){try{d(s.throw(u))}catch(f){o(f)}}function d(u){u.done?i(u.value):r(u.value).then(l,c)}d((s=s.apply(e,t||[])).next())})}const sT=e=>e?(...t)=>e(...t):(...t)=>fetch(...t);class th extends Error{constructor(t,n="FunctionsError",s){super(t),this.name=n,this.context=s}toJSON(){return{name:this.name,message:this.message,context:this.context}}}class aT extends th{constructor(t){super("Failed to send a request to the Edge Function","FunctionsFetchError",t)}}class P0 extends th{constructor(t){super("Relay Error invoking the Edge Function","FunctionsRelayError",t)}}class O0 extends th{constructor(t){super("Edge Function returned a non-2xx status code","FunctionsHttpError",t)}}var cf;(function(e){e.Any="any",e.ApNortheast1="ap-northeast-1",e.ApNortheast2="ap-northeast-2",e.ApSouth1="ap-south-1",e.ApSoutheast1="ap-southeast-1",e.ApSoutheast2="ap-southeast-2",e.CaCentral1="ca-central-1",e.EuCentral1="eu-central-1",e.EuWest1="eu-west-1",e.EuWest2="eu-west-2",e.EuWest3="eu-west-3",e.SaEast1="sa-east-1",e.UsEast1="us-east-1",e.UsWest1="us-west-1",e.UsWest2="us-west-2"})(cf||(cf={}));class rT{constructor(t,{headers:n={},customFetch:s,region:r=cf.Any}={}){this.url=t,this.headers=n,this.region=r,this.fetch=sT(s)}setAuth(t){this.headers.Authorization=`Bearer ${t}`}invoke(t){return nT(this,arguments,void 0,function*(n,s={}){var r;let i,o;try{const{headers:l,method:c,body:d,signal:u,timeout:f}=s;let h={},{region:p}=s;p||(p=this.region);const y=new URL(`${this.url}/${n}`);p&&p!=="any"&&(h["x-region"]=p,y.searchParams.set("forceFunctionRegion",p));let v;d&&(l&&!Object.prototype.hasOwnProperty.call(l,"Content-Type")||!l)?typeof Blob<"u"&&d instanceof Blob||d instanceof ArrayBuffer?(h["Content-Type"]="application/octet-stream",v=d):typeof d=="string"?(h["Content-Type"]="text/plain",v=d):typeof FormData<"u"&&d instanceof FormData?v=d:(h["Content-Type"]="application/json",v=JSON.stringify(d)):d&&typeof d!="string"&&!(typeof Blob<"u"&&d instanceof Blob)&&!(d instanceof ArrayBuffer)&&!(typeof FormData<"u"&&d instanceof FormData)?v=JSON.stringify(d):v=d;let _=u;f&&(o=new AbortController,i=setTimeout(()=>o.abort(),f),u?(_=o.signal,u.addEventListener("abort",()=>o.abort())):_=o.signal);const x=yield this.fetch(y.toString(),{method:c||"POST",headers:Object.assign(Object.assign(Object.assign({},h),this.headers),l),body:v,signal:_}).catch(j=>{throw new aT(j)}),b=x.headers.get("x-relay-error");if(b&&b==="true")throw new P0(x);if(!x.ok)throw new O0(x);let m=((r=x.headers.get("Content-Type"))!==null&&r!==void 0?r:"text/plain").split(";")[0].trim(),w;return m==="application/json"?w=yield x.json():m==="application/octet-stream"||m==="application/pdf"?w=yield x.blob():m==="text/event-stream"?w=x:m==="multipart/form-data"?w=yield x.formData():w=yield x.text(),{data:w,error:null,response:x}}catch(l){return{data:null,error:l,response:l instanceof O0||l instanceof P0?l.context:void 0}}finally{i&&clearTimeout(i)}})}}const n2=3,z0=e=>Math.min(1e3*2**e,3e4),iT=[520,503],s2=["GET","HEAD","OPTIONS"];var oT=class extends Error{constructor(e){super(e.message),this.name="PostgrestError",this.details=e.details,this.hint=e.hint,this.co
408de=e.code}toJSON(){return{name:this.name,message:this.message,details:this.details,hint:this.hint,code:this.code}}};function I0(e,t){return new Promise(n=>{if(t!=null&&t.aborted){n();return}const s=setTimeout(()=>{t==null||t.removeEventListener("abort",r),n()},e);function r(){clearTimeout(s),n()}t==null||t.addEventListener("abort",r)})}function lT(e,t,n,s){return!(!s||n>=n2||!s2.includes(e)||!iT.includes(t))}var cT=class{constructor(e){var t,n,s,r,i;this.shouldThrowOnError=!1,this.retryEnabled=!0,this.method=e.method,this.url=e.url,this.headers=new Headers(e.headers),this.schema=e.schema,this.body=e.body,this.shouldThrowOnError=(t=e.shouldThrowOnError)!==null&&t!==void 0?t:!1,this.signal=e.signal,this.isMaybeSingle=(n=e.isMaybeSingle)!==null&&n!==void 0?n:!1,this.shouldStripNulls=(s=e.shouldStripNulls)!==null&&s!==void 0?s:!1,this.urlLengthLimit=(r=e.urlLengthLimit)!==null&&r!==void 0?r:8e3,this.retryEnabled=(i=e.retry)!==null&&i!==void 0?i:!0,e.fetch?this.fetch=e.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}stripNulls(){if(this.headers.get("Accept")==="text/csv")throw new Error("stripNulls() cannot be used with csv()");return this.shouldStripNulls=!0,this}setHeader(e,t){return this.headers=new Headers(this.headers),this.headers.set(e,t),this}retry(e){return this.retryEnabled=e,this}then(e,t){var n=this;if(this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers.set("Accept-Profile",this.schema):this.headers.set("Content-Profile",this.schema)),this.method!=="GET"&&this.method!=="HEAD"&&this.headers.set("Content-Type","application/json"),this.shouldStripNulls){const o=this.headers.get("Accept");o==="application/vnd.pgrst.object+json"?this.headers.set("Accept","application/vnd.pgrst.object+json;nulls=stripped"):(!o||o==="application/json")&&this.headers.set("Accept","application/vnd.pgrst.array+json;nulls=stripped")}const s=this.fetch;let i=(async()=>{let o=0;for(;;){const d=new Headers(n.headers);o>0&&d.set("X-Retry-Count",String(o));let u;try{u=await s(n.url.toString(),{method:n.method,headers:d,body:JSON.stringify(n.body,(f,h)=>typeof h=="bigint"?h.toString():h),signal:n.signal})}catch(f){if((f==null?void 0:f.name)==="AbortError"||(f==null?void 0:f.code)==="ABORT_ERR"||!s2.includes(n.method))throw f;if(n.retryEnabled&&o<n2){const h=z0(o);o++,await I0(h,n.signal);continue}throw f}if(lT(n.method,u.status,o,n.retryEnabled)){var l,c;const f=(l=(c=u.headers)===null||c===void 0?void 0:c.get("Retry-After"))!==null&&l!==void 0?l:null,h=f!==null?Math.max(0,parseInt(f,10)||0)*1e3:z0(o);await u.text(),o++,await I0(h,n.signal);continue}return await n.processResponse(u)}})();return this.shouldThrowOnError||(i=i.catch(o=>{var l;let c="",d="",u="";const f=o==null?void 0:o.cause;if(f){var h,p,y,v;const b=(h=f==null?void 0:f.message)!==null&&h!==void 0?h:"",m=(p=f==null?void 0:f.code)!==null&&p!==void 0?p:"";c=`${(y=o==null?void 0:o.name)!==null&&y!==void 0?y:"FetchError"}: ${o==null?void 0:o.message}`,c+=`
409
410Caused by: ${(v=f==null?void 0:f.name)!==null&&v!==void 0?v:"Error"}: ${b}`,m&&(c+=` (${m})`),f!=null&&f.stack&&(c+=`
411${f.stack}`)}else{var _;c=(_=o==null?void 0:o.stack)!==null&&_!==void 0?_:""}const x=this.url.toString().length;return(o==null?void 0:o.name)==="AbortError"||(o==null?void 0:o.code)==="ABORT_ERR"?(u="",d="Request was aborted (timeout or manual cancellation)",x>this.urlLengthLimit&&(d+=`. Note: Your request URL is ${x} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):((f==null?void 0:f.name)==="HeadersOverflowError"||(f==null?void 0:f.code)==="UND_ERR_HEADERS_OVERFLOW")&&(u="",d="HTTP headers exceeded server limits (typically 16KB)",x>this.urlLengthLimit&&(d+=`. Your request URL is ${x} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{success:!1,error:{message:`${(l=o==null?void 0:o.name)!==null&&l!==void 0?l:"FetchError"}: ${o==null?void 0:o.message}`,details:c,hint:d,code:u},data:null,count:null,status:0,statusText:""}}
411)),i.then(e,t)}async processResponse(e){var t=this;let n=null,s=null,r=null,i=e.status,o=e.statusText;if(e.ok){var l,c;if(t.method!=="HEAD"){var d;const h=await e.text();h===""||(t.headers.get("Accept")==="text/csv"||t.headers.get("Accept")&&(!((d=t.headers.get("Accept"))===null||d===void 0)&&d.includes("application/vnd.pgrst.plan+text"))?s=h:s=JSON.parse(h))}const u=(l=t.headers.get("Prefer"))===null||l===void 0?void 0:l.match(/count=(exact|planned|estimated)/),f=(c=e.headers.get("content-range"))===null||c===void 0?void 0:c.split("/");u&&f&&f.length>1&&(r=parseInt(f[1])),t.isMaybeSingle&&Array.isArray(s)&&(s.length>1?(n={code:"PGRST116",details:`Results contain ${s.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},s=null,r=null,i=406,o="Not Acceptable"):s.length===1?s=s[0]:s=null)}else{const u=await e.text();try{n=JSON.parse(u),Array.isArray(n)&&e.status===404&&(s=[],n=null,i=200,o="OK")}catch{e.status===404&&u===""?(i=204,o="No Content"):n={message:u}}if(n&&t.shouldThrowOnError)throw new oT(n)}return{success:n===null,error:n,data:s,count:r,status:i,statusText:o}}returns(){return this}overrideTypes(){return this}},dT=class extends cT{select(e){let t=!1;const n=(e??"*").split("").map(s=>/\s/.test(s)&&!t?"":(s==='"'&&(t=!t),s)).join("");return this.url.searchParams.set("select",n),this.headers.append("Prefer","return=representation"),this}order(e,{ascending:t=!0,nullsFirst:n,foreignTable:s,referencedTable:r=s}={}){const i=r?`${r}.order`:"order",o=this.url.searchParams.get(i);return this.url.searchParams.set(i,`${o?`${o},`:""}${e}.${t?"asc":"desc"}${n===void 0?"":n?".nullsfirst":".nullslast"}`),this}limit(e,{foreignTable:t,referencedTable:n=t}={}){const s=typeof n>"u"?"limit":`${n}.limit`;return this.url.searchParams.set(s,`${e}`),this}range(e,t,{foreignTable:n,referencedTable:s=n}={}){const r=typeof s>"u"?"offset":`${s}.offset`,i=typeof s>"u"?"limit":`${s}.limit`;return this.url.searchParams.set(r,`${e}`),this.url.searchParams.set(i,`${t-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return this.isMaybeSingle=!0,this}csv(){return this.headers.set("Accept","text/csv"),this}geojson(){return this.headers.set("Accept","application/geo+json"),this}explain({analyze:e=!1,verbose:t=!1,settings:n=!1,buffers:s=!1,wal:r=!1,format:i="text"}={}){var o;const l=[e?"analyze":null,t?"verbose":null,n?"settings":null,s?"buffers":null,r?"wal":null].filter(Boolean).join("|"),c=(o=this.headers.get("Accept"))!==null&&o!==void 0?o:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${i}; for="${c}"; options=${l};`),i==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(e){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${e}`),this}};const L0=new RegExp("[,()]");var Ba=class extends dT{eq(e,t){return this.url.searchParams.append(e,`eq.${t}`),this}neq(e,t){return this.url.searchParams.append(e,`neq.${t}`),this}gt(e,t){return this.url.searchParams.append(e,`gt.${t}`),this}gte(e,t){return this.url.searchParams.append(e,`gte.${t}`),this}lt(e,t){return this.url.searchParams.append(e,`lt.${t}`),this}lte(e,t){return this.url.searchParams.append(e,`lte.${t}`),this}like(e,t){return this.url.searchParams.append(e,`like.${t}`),this}likeAllOf(e,t){return this.url.searchParams.append(e,`like(all).{${t.join(",")}}`),this}likeAnyOf(e,t){return this.url.searchParams.append(e,`like(any).{${t.join(",")}}`),this}ilike(e,t){return this.url.searchParams.append(e,`ilike.${t}`),this}ilikeAllOf(e,t){return this.url.searchParams.append(e,`ilike(all).{${t.join(",")}}`),this}ilikeAnyOf(e,t){return this.url.searchParams.append(e,`ilike(any).{${t.join(",")}}`),this}regexMatch(e,t){return this.url.searchParams.append(e,`match.${t}`),this}regexIMatch(e,t){return this.url.searchParams.append(e,`imatch.${t}`),this}is(e,t){return this.url.searchParams.append(e,`is.${t}`),this}isDistinct(e,t){return this.url.searchParams.append(e,`isdistinct.${t}`),this}in(e,t){const n=Array.from(new Set(t)).map(s=>typeof s=="string"&&L0.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(e,`in.(${n})`),this}notIn(e,t){const n=Array.from(new Set(t)).map(s=>typeof s=="string"&&L0.test(s)?`"${s}"`:`${s}`).join(",");return this.url.searchParams.append(e,`not.in.(${n})`),this}contains(e,t){return typeof t=="string"?this.url.searchParams.append(e,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cs.{${t.join(",")}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(t)}`),this}containedBy(e,t){return typeof t=="string"?this.url.searchParams.append(e,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cd.{${t.join(",")}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(t)}`),this}rangeGt(e,t){return this.url.searchParams.append(e,`sr.${t}`),this}rangeGte(e,t){return this.url.searchParams.append(e,`nxl.${t}`),this}rangeLt(e,t){return this.url.searchParams.append(e,`sl.${t}`),this}rangeLte(e,t){return this.url.searchParams.append(e,`nxr.${t}`),this}rangeAdjacent(e,t){return this.url.searchParams.append(e,`adj.${t}`),this}overlaps(e,t){return typeof t=="string"?this.url.searchParams.append(e,`ov.${t}`):this.url.searchParams.append(e,`ov.{${t.join(",")}}`),this}textSearch(e,t,{config:n,type:s}={}){let r="";s==="plain"?r="pl":s==="phrase"?r="ph":s==="websearch"&&(r="w");const i=n===void 0?"":`(${n})`;return this.url.searchParams.append(e,`${r}fts${i}.${t}`),this}match(e){return Object.entries(e).filter(([t,n])=>
411n!==void 0).forEach(([t,n])=>{this.url.searchParams.append(t,`eq.${n}`)}),this}not(e,t,n){return this.url.searchParams.append(e,`not.${t}.${n}`),this}or(e,{foreignTable:t,referencedTable:n=t}={}){const s=n?`${n}.or`:"or";return this.url.searchParams.append(s,`(${e})`),this}filter(e,t,n){return this.url.searchParams.append(e,`${t}.${n}`),this}},uT=class{constructor(e,{headers:t={},schema:n,fetch:s,urlLengthLimit:r=8e3,retry:i}){this.url=e,this.headers=new Headers(t),this.schema=n,this.fetch=s,this.urlLengthLimit=r,this.retry=i}cloneRequestState(){return{url:new URL(this.url.toString()),headers:new Headers(this.headers)}}select(e,t){const{head:n=!1,count:s}=t??{},r=n?"HEAD":"GET";let i=!1;const o=(e??"*").split("").map(d=>/\s/.test(d)&&!i?"":(d==='"'&&(i=!i),d)).join(""),{url:l,headers:c}=this.cloneRequestState();return l.searchParams.set("select",o),s&&c.append("Prefer",`count=${s}`),new Ba({method:r,url:l,headers:c,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}insert(e,{count:t,defaultToNull:n=!0}={}){var s;const r="POST",{url:i,headers:o}=this.cloneRequestState();if(t&&o.append("Prefer",`count=${t}`),n||o.append("Prefer","missing=default"),Array.isArray(e)){const l=e.reduce((c,d)=>c.concat(Object.keys(d)),[]);if(l.length>0){const c=[...new Set(l)].map(d=>`"${d}"`);i.searchParams.set("columns",c.join(","))}}return new Ba({method:r,url:i,headers:o,schema:this.schema,body:e,fetch:(s=this.fetch)!==null&&s!==void 0?s:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}upsert(e,{onConflict:t,ignoreDuplicates:n=!1,count:s,defaultToNull:r=!0}={}){var i;const o="POST",{url:l,headers:c}=this.cloneRequestState();if(c.append("Prefer",`resolution=${n?"ignore":"merge"}-duplicates`),t!==void 0&&l.searchParams.set("on_conflict",t),s&&c.append("Prefer",`count=${s}`),r||c.append("Prefer","missing=default"),Array.isArray(e)){const d=e.reduce((u,f)=>u.concat(Object.keys(f)),[]);if(d.length>0){const u=[...new Set(d)].map(f=>`"${f}"`);l.searchParams.set("columns",u.join(","))}}return new Ba({method:o,url:l,headers:c,schema:this.schema,body:e,fetch:(i=this.fetch)!==null&&i!==void 0?i:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}update(e,{count:t}={}){var n;const s="PATCH",{url:r,headers:i}=this.cloneRequestState();return t&&i.append("Prefer",`count=${t}`),new Ba({method:s,url:r,headers:i,schema:this.schema,body:e,fetch:(n=this.fetch)!==null&&n!==void 0?n:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}delete({count:e}={}){var t;const n="DELETE",{url:s,headers:r}=this.cloneRequestState();return e&&r.append("Prefer",`count=${e}`),new Ba({method:n,url:s,headers:r,schema:this.schema,fetch:(t=this.fetch)!==null&&t!==void 0?t:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}};function Xi(e){"@babel/helpers - typeof";return Xi=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Xi(e)}function fT(e,t){if(Xi(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var s=n.call(e,t||"default");if(Xi(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function pT(e){var t=fT(e,"string");return Xi(t)=="symbol"?t:t+""}function hT(e,t,n){return(t=pT(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function M0(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),n.push.apply(n,s)}return n}function Jo(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?M0(Object(n),!0).forEach(function(s){hT(e,s,n[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M0(Object(n)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))})}return e}var mT=class a2{constructor(t,{headers:n={},schema:s,fetch:r,timeout:i,urlLengthLimit:o=8e3,retry:l}={}){this.url=t,this.headers=new Headers(n),this.schemaName=s,this.urlLengthLimit=o;const c=r??globalThis.fetch;i!==void 0&&i>0?this.fetch=(d,u)=>{const f=new AbortController,h=setTimeout(()=>f.abort(),i),p=u==null?void 0:u.signal;if(p){if(p.aborted)return clearTimeout(h),c(d,u);const y=()=>{clearTimeout(h),f.abort()};return p.addEventListener("abort",y,{once:!0}),c(d,Jo(Jo({},u),{}
411,{signal:f.signal})).finally(()=>{clearTimeout(h),p.removeEventListener("abort",y)})}return c(d,Jo(Jo({},u),{},{signal:f.signal})).finally(()=>clearTimeout(h))}:this.fetch=c,this.retry=l}from(t){if(!t||typeof t!="string"||t.trim()==="")throw new Error("Invalid relation name: relation must be a non-empty string.");return new uT(new URL(`${this.url}/${t}`),{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}schema(t){return new a2(this.url,{headers:this.headers,schema:t,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}rpc(t,n={},{head:s=!1,get:r=!1,count:i}={}){var o;let l;const c=new URL(`${this.url}/rpc/${t}`);let d;const u=p=>p!==null&&typeof p=="object"&&(!Array.isArray(p)||p.some(u)),f=s&&Object.values(n).some(u);f?(l="POST",d=n):s||r?(l=s?"HEAD":"GET",Object.entries(n).filter(([p,y])=>y!==void 0).map(([p,y])=>[p,Array.isArray(y)?`{${y.join(",")}}`:`${y}`]).forEach(([p,y])=>{c.searchParams.append(p,y)})):(l="POST",d=n);const h=new Headers(this.headers);return f?h.set("Prefer",i?`count=${i},return=minimal`:"return=minimal"):i&&h.set("Prefer",`count=${i}`),new Ba({method:l,url:c,headers:h,schema:this.schemaName,body:d,fetch:(o=this.fetch)!==null&&o!==void 0?o:fetch,urlLengthLimit:this.urlLengthLimit,retry:this.retry})}};class gT{constructor(){}static detectEnvironment(){var t;if(typeof WebSocket<"u")return{type:"native",constructor:WebSocket};if(typeof globalThis<"u"&&typeof globalThis.WebSocket<"u")return{type:"native",constructor:globalThis.WebSocket};if(typeof global<"u"&&typeof global.WebSocket<"u")return{type:"native",constructor:global.WebSocket};if(typeof globalThis<"u"&&typeof globalThis.WebSocketPair<"u"&&typeof globalThis.WebSocket>"u")return{type:"cloudflare",error:"Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.",workaround:"Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime."};if(typeof globalThis<"u"&&globalThis.EdgeRuntime||typeof navigator<"u"&&(!((t=navigator.userAgent)===null||t===void 0)&&t.includes("Vercel-Edge")))return{type:"unsupported",error:"Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.",workaround:"Use serverless functions or a different deployment target for WebSocket functionality."};const n=globalThis.process;if(n){const s=n.versions;if(s&&s.node){const r=s.node,i=parseInt(r.replace(/^v/,"").split(".")[0]);return i>=22?typeof globalThis.WebSocket<"u"?{type:"native",constructor:globalThis.WebSocket}:{type:"unsupported",error:`Node.js ${i} detected but native WebSocket not found.`,workaround:"Provide a WebSocket implementation via the transport option."}:{type:"unsupported",error:`Node.js ${i} detected without native WebSocket support.`,workaround:`For Node.js < 22, install "ws" package and provide it via the transport option:
412import ws from "ws"
413new RealtimeClient(url, { transport: ws })`}}}return{type:"unsupported",error:"Unknown JavaScript runtime without WebSocket support.",workaround:"Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation."}}static getWebSocketConstructor(){const t=this.detectEnvironment();if(t.constructor)return t.constructor;let n=t.error||"WebSocket not supported in this environment.";throw t.workaround&&(n+=`
414
415Suggested solution: ${t.workaround}`),new Error(n)}static isWebSocketSupported(){try{const t=this.detectEnvironment();return t.type==="native"||t.type==="ws"}catch{return!1}}}const bT="2.104.1",xT=`realtime-js/${bT}`,vT="1.0.0",r2="2.0.0",yT=r2,_T=1e4,wT=100,ls={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},i2={close:"phx_close",error:"phx_error",join:"phx_join",reply:"phx_reply",leave:"phx_leave",access_token:"access_token"},df={connecting:"connecting",open:"open",closing:"closing",closed:"closed"};class jT{constructor(t){this.HEADER_LENGTH=1,this.USER_BROADCAST_PUSH_META_LENGTH=6,this.KINDS={userBroadcastPush:3,userBroadcast:4},this.BINARY_ENCODING=0,this.JSON_ENCODING=1,this.BROADCAST_EVENT="broadcast",this.allowedMetadataKeys=[],this.allowedMetadataKeys=t??[]}encode(t,n){if(t.event===this.BROADCAST_EVENT&&!(t.payload instanceof ArrayBuffer)&&typeof t.payload.event=="string")return n(this._binaryEncodeUserBroadcastPush(t));let s=[t.join_ref,t.ref,t.topic,t.event,t.payload];return n(JSON.stringify(s))}_binaryEncodeUserBroadcastPush(t){var n;return this._isArrayBuffer((n=t.payload)===null||n===void 0?void 0:n.payload)?this._encodeBinaryUserBroadcastPush(t):this._encodeJsonUserBroadcastPush(t)}_encodeBinaryUserBroadcastPush(t){var n,s;const r=(s=(n=t.payload)===null||n===void 0?void 0:n.payload)!==null&&s!==void 0?s:new ArrayBuffer(0);return this._encodeUserBroadcastPush(t,this.BINARY_ENCODING,r)}_encodeJsonUserBroadcastPush(t){var n,s;const r=(s=(n=t.payload)===null||n===void 0?void 0:n.payload)!==null&&s!==void 0?s:{},o=new TextEncoder().encode(JSON.stringify(r)).buffer;return this._encodeUserBroadcastPush(t,this.JSON_ENCODING,o)}_encodeUserBroadcastPush(t,n,s){var r,i;const o=t.topic,l=(r=t.ref)!==null&&r!==void 0?r:"",c=(i=t.join_ref)!==null&&i!==void 0?i:"",d=t.payload.event,u=this.allowedMetadataKeys?this._pick(t.payload,this.allowedMetadataKeys):{},f=Object.keys(u).length===0?"":JSON.stringify(u);if(c.length>255)throw new Error(`joinRef length ${c.length} exceeds maximum of 255`);if(l.length>255)throw new Error(`ref length ${l.length} exceeds maximum of 255`);if(o.length>255)throw new Error(`topic length ${o.length} exceeds maximum of 255`);if(d.length>255)throw new Error(`userEvent length ${d.length} exceeds maximum of 255`);if(f.length>255)throw new Error(`metadata length ${f.length} exceeds maximum of 255`);const h=this.USER_BROADCAST_PUSH_META_LENGTH+c.length+l.length+o.length+d.length+f.length,p=new ArrayBuffer(this.HEADER_LENGTH+h);let y=new DataView(p),v=0;y.setUint8(v++,this.KINDS.userBroadcastPush),y.setUint8(v++,c.length),y.setUint8(v++,l.length),y.setUint8(v++,o.length),y.setUint8(v++,d.length),y.setUint8(v++,f.length),y.setUint8(v++,n),Array.from(c,x=>y.setUint8(v++,x.charCodeAt(0))),Array.from(l,x=>y.setUint8(v++,x.charCodeAt(0))),Array.from(o,x=>y.setUint8(v++,x.charCodeAt(0))),Array.from(d,x=>y.setUint8(v++,x.charCodeAt(0))),Array.from(f,x=>y.setUint8(v++,x.charCodeAt(0)));var _=new Uint8Array(p.byteLength+s.byteLength);return _.set(new Uint8Array(p),0),_.set(new Uint8Array(s),p.byteLength),_.buffer}decode(t,n){if(this._isArrayBuffer(t)){let s=this._binaryDecode(t);return n(s)}if(typeof t=="string"){const s=JSON.parse(t),[r,i,o,l,c]=s;
415return n({join_ref:r,ref:i,topic:o,event:l,payload:c})}return n({})}_binaryDecode(t){const n=new DataView(t),s=n.getUint8(0),r=new TextDecoder;switch(s){case this.KINDS.userBroadcast:return this._decodeUserBroadcast(t,n,r)}}_decodeUserBroadcast(t,n,s){const r=n.getUint8(1),i=n.getUint8(2),o=n.getUint8(3),l=n.getUint8(4);let c=this.HEADER_LENGTH+4;const d=s.decode(t.slice(c,c+r));c=c+r;const u=s.decode(t.slice(c,c+i));c=c+i;const f=s.decode(t.slice(c,c+o));c=c+o;const h=t.slice(c,t.byteLength),p=l===this.JSON_ENCODING?JSON.parse(s.decode(h)):h,y={type:this.BROADCAST_EVENT,event:u,payload:p};return o>0&&(y.meta=JSON.parse(f)),{join_ref:null,ref:null,topic:d,event:this.BROADCAST_EVENT,payload:y}}_isArrayBuffer(t){var n;return t instanceof ArrayBuffer||((n=t==null?void 0:t.constructor)===null||n===void 0?void 0:n.name)==="ArrayBuffer"}_pick(t,n){return!t||typeof t!="object"?{}:Object.fromEntries(Object.entries(t).filter(([s])=>n.includes(s)))}}var pe;(function(e){e.abstime="abstime",e.bool="bool",e.date="date",e.daterange="daterange",e.float4="float4",e.float8="float8",e.int2="int2",e.int4="int4",e.int4range="int4range",e.int8="int8",e.int8range="int8range",e.json="json",e.jsonb="jsonb",e.money="money",e.numeric="numeric",e.oid="oid",e.reltime="reltime",e.text="text",e.time="time",e.timestamp="timestamp",e.timestamptz="timestamptz",e.timetz="timetz",e.tsrange="tsrange",e.tstzrange="tstzrange"})(pe||(pe={}));const D0=(e,t,n={})=>{var s;const r=(s=n.skipTypes)!==null&&s!==void 0?s:[];return t?Object.keys(t).reduce((i,o)=>(i[o]=kT(o,e,t,r),i),{}):{}},kT=(e,t,n,s)=>{const r=t.find(l=>
vendor: 5,523 bytes, line 415
415l.name===e),i=r==null?void 0:r.type,o=n[e];return i&&!s.includes(i)?o2(i,o):uf(o)},o2=(e,t)=>{if(e.charAt(0)==="_"){const n=e.slice(1,e.length);return ET(t,n)}switch(e){case pe.bool:return NT(t);case pe.float4:case pe.float8:case pe.int2:case pe.int4:case pe.int8:case pe.numeric:case pe.oid:return $T(t);case pe.json:case pe.jsonb:return ST(t);case pe.timestamp:return CT(t);case pe.abstime:case pe.date:case pe.daterange:case pe.int4range:case pe.int8range:case pe.money:case pe.reltime:case pe.text:case pe.time:case pe.timestamptz:case pe.timetz:case pe.tsrange:case pe.tstzrange:return uf(t);default:return uf(t)}},uf=e=>e,NT=e=>{switch(e){case"t":return!0;case"f":return!1;default:return e}},$T=e=>{if(typeof e=="string"){const t=parseFloat(e);if(!Number.isNaN(t))return t}return e},ST=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e},ET=(e,t)=>{if(typeof e!="string")return e;const n=e.length-1,s=e[n];if(e[0]==="{"&&s==="}"){let i;const o=e.slice(1,n);try{i=JSON.parse("["+o+"]")}catch{i=o?o.split(","):[]}return i.map(l=>o2(t,l))}return e},CT=e=>typeof e=="string"?e.replace(" ","T"):e,l2=e=>{const t=new URL(e);return t.protocol=t.protocol.replace(/^ws/i,"http"),t.pathname=t.pathname.replace(/\/+$/,"").replace(/\/socket\/websocket$/i,"").replace(/\/socket$/i,"").replace(/\/websocket$/i,""),t.pathname===""||t.pathname==="/"?t.pathname="/api/broadcast":t.pathname=t.pathname+"/api/broadcast",t.href};var ji=e=>typeof e=="function"?e:function(){return e},TT=typeof self<"u"?self:null,qa=typeof window<"u"?window:null,dn=TT||qa||globalThis,AT="2.0.0",RT=1e4,PT=1e3,hn={connecting:0,open:1,closing:2,closed:3},ct={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},$n={close:"phx_close",error:"phx_error",join:"phx_join",reply:"phx_reply",leave:"phx_leave"},ff={longpoll:"longpoll",websocket:"websocket"},OT={complete:4},pf="base64url.bearer.phx.",Yo=class{constructor(e,t,n,s){this.channel=e,this.event=t,this.payload=n||function(){return{}},this.receivedResp=null,this.timeout=s,this.timeoutTimer=null,this.recHooks=[],this.sent=!1,this.ref=void 0}resend(e){this.timeout=e,this.reset(),this.send()}send(){this.hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload(),ref:this.ref,join_ref:this.channel.joinRef()}))}receive(e,t){return this.hasReceived(e)&&t(this.receivedResp.response),this.recHooks.push({status:e,callback:t}),this}reset(){this.cancelRefEvent(),this.ref=null,this.refEvent=null,this.receivedResp=null,this.sent=!1}destroy(){this.cancelRefEvent(),this.cancelTimeout()}matchReceive({status:e,response:t,_ref:n}){this.recHooks.filter(s=>s.status===e).forEach(s=>s.callback(t))}cancelRefEvent(){this.refEvent&&this.channel.off(this.refEvent)}cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=null}startTimeout(){this.timeoutTimer&&this.cancelTimeout(),this.ref=this.channel.socket.makeRef(),this.refEvent=this.channel.replyEventName(this.ref),this.channel.on(this.refEvent,e=>{this.cancelRefEvent(),this.cancelTimeout(),this.receivedResp=e,this.matchReceive(e)}),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}trigger(e,t){this.channel.trigger(this.refEvent,{status:e,response:t})}},c2=class{constructor(e,t){this.callback=e,this.timerCalc=t,this.timer=void 0,this.tries=0}reset(){this.tries=0,clearTimeout(this.timer)}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}},zT=class{constructor(e,t,n){this.state=ct.closed,this.topic=e,this.params=ji(t||{}),this.socket=n,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new Yo(this,$n.join,this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new c2(()=>{this.socket.isConnected()&&this.rejoin()},this.socket.rejoinAfterMs),this.stateChangeRefs.push(this.socket.onError(()=>this.rejoinTimer.reset())),this.stateChangeRefs.push(this.socket.onOpen(()=>{this.rejoinTimer.reset(),this.isErrored()&&this.rejoin()})),this.joinPush.receive("ok",()=>{this.state=ct.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(s=>s.send()),this.pushBuffer=[]}),this.joinPush.receive("error",s=>{this.state=ct.errored,this.socket.hasLogger()&&this.socket.log("channel",`error ${this.topic}`,s),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.hasLogger()&&this.socket.log("channel",`close ${this.topic}`),this.state=ct.closed,this.socket.remove(this)}),this.onError(s=>{this.socket.hasLogger()&&this.socket.log("channel",`error ${this.topic}`,s),this.isJoining()&&this.joinPush.reset(),this.state=ct.errored,this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.joinPush.receive("timeout",()=>{this.socket.hasLogger()&&this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),new Yo(this,$n.leave,ji({}),this.timeout).send(),this.state=ct.errored,this.joinPush.reset(),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.on($n.reply,(s,r)=>{this.trigger(this.replyEventName(r),s)})}join(e=this.timeout){if(this.joinedOnce)throw new Error("tried to join multiple times. 'join' can only be called a single time per channel instance");return this.timeout=e,this.joinedOnce=!0,this.rejoin(),this.joinPush}
vendor: 5,263 bytes, line 415
415teardown(){this.pushBuffer.forEach(e=>e.destroy()),this.pushBuffer=[],this.rejoinTimer.reset(),this.joinPush.destroy(),this.state=ct.closed,this.bindings=[]}onClose(e){this.on($n.close,e)}onError(e){return this.on($n.error,t=>e(t))}on(e,t){let n=this.bindingRef++;return this.bindings.push({event:e,ref:n,callback:t}),n}off(e,t){this.bindings=this.bindings.filter(n=>!(n.event===e&&(typeof t>"u"||t===n.ref)))}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,t,n=this.timeout){if(t=t||{},!this.joinedOnce)throw new Error(`tried to push '${e}' to '${this.topic}' before joining. Use channel.join() before pushing events`);let s=new Yo(this,e,function(){return t},n);return this.canPush()?s.send():(s.startTimeout(),this.pushBuffer.push(s)),s}leave(e=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=ct.leaving;let t=()=>{this.socket.hasLogger()&&this.socket.log("channel",`leave ${this.topic}`),this.trigger($n.close,"leave")},n=new Yo(this,$n.leave,ji({}),e);return n.receive("ok",()=>t()).receive("timeout",()=>t()),n.send(),this.canPush()||n.trigger("ok",{}),n}onMessage(e,t,n){return t}filterBindings(e,t,n){return!0}isMember(e,t,n,s){return this.topic!==e?!1:s&&s!==this.joinRef()?(this.socket.hasLogger()&&this.socket.log("channel","dropping outdated message",{topic:e,event:t,payload:n,joinRef:s}),!1):!0}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=ct.joining,this.joinPush.resend(e))}trigger(e,t,n,s){let r=this.onMessage(e,t,n,s);if(t&&!r)throw new Error("channel onMessage callbacks must return the payload, modified or unmodified");let i=this.bindings.filter(o=>o.event===e&&this.filterBindings(o,t,n));for(let o=0;o<i.length;o++)i[o].callback(r,n,s||this.joinRef())}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===ct.closed}isErrored(){return this.state===ct.errored}isJoined(){return this.state===ct.joined}isJoining(){return this.state===ct.joining}isLeaving(){return this.state===ct.leaving}},rc=class{static request(e,t,n,s,r,i,o){if(dn.XDomainRequest){let l=new dn.XDomainRequest;return this.xdomainRequest(l,e,t,s,r,i,o)}else if(dn.XMLHttpRequest){let l=new dn.XMLHttpRequest;return this.xhrRequest(l,e,t,n,s,r,i,o)}else{if(dn.fetch&&dn.AbortController)return this.fetchRequest(e,t,n,s,r,i,o);throw new Error("No suitable XMLHttpRequest implementation found")}}static fetchRequest(e,t,n,s,r,i,o){let l={method:e,headers:n,body:s},c=null;return r&&(c=new AbortController,setTimeout(()=>c.abort(),r),l.signal=c.signal),dn.fetch(t,l).then(d=>d.text()).then(d=>this.parseJSON(d)).then(d=>o&&o(d)).catch(d=>{d.name==="AbortError"&&i?i():o&&o(null)}),c}static xdomainRequest(e,t,n,s,r,i,o){return e.timeout=r,e.open(t,n),e.onload=()=>{let l=this.parseJSON(e.responseText);o&&o(l)},i&&(e.ontimeout=i),e.onprogress=()=>{},e.send(s),e}static xhrRequest(e,t,n,s,r,i,o,l){e.open(t,n,!0),e.timeout=i;for(let[c,d]of Object.entries(s))e.setRequestHeader(c,d);return e.onerror=()=>l&&l(null),e.onreadystatechange=()=>{if(e.readyState===OT.complete&&l){let c=this.parseJSON(e.responseText);l(c)}},o&&(e.ontimeout=o),e.send(r),e}static parseJSON(e){if(!e||e==="")return null;try{return JSON.parse(e)}catch{return console&&console.log("failed to parse JSON response",e),null}}static serialize(e,t){let n=[];for(var s in e){if(!Object.prototype.hasOwnProperty.call(e,s))continue;let r=t?`${t}[${s}]`:s,i=e[s];typeof i=="object"?n.push(this.serialize(i,r)):n.push(encodeURIComponent(r)+"="+encodeURIComponent(i))}return n.join("&")}static appendParams(e,t){if(Object.keys(t).length===0)return e;let n=e.match(/\?/)?"&":"?";return`${e}${n}${this.serialize(t)}`}},IT=e=>{let t="",n=new Uint8Array(e),s=n.byteLength;for(let r=0;r<s;r++)t+=String.fromCharCode(n[r]);return btoa(t)},za=class{constructor(e,t){t&&t.length===2&&t[1].startsWith(pf)&&(this.authToken=atob(t[1].slice(pf.length))),this.endPoint=null,this.token=null,this.skipHeartbeat=!0,this.reqs=new Set,this.awaitingBatchAck=!1,this.currentBatch=null,this.currentBatchTimer=null,this.batchBuffer=[],this.onopen=function(){},this.onerror=function(){},this.onmessage=function(){},this.onclose=function(){},this.pollEndpoint=this.normalizeEndpoint(e),this.readyState=hn.connecting,setTimeout(()=>this.poll(),0)}normalizeEndpoint(e){return e.replace("ws://","http://").replace("wss://","https://").replace(new RegExp("(.*)/"+ff.websocket),"$1/"+ff.longpoll)}endpointURL(){return rc.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(e,t,n){this.close(e,t,n),this.readyState=hn.connecting}ontimeout(){this.onerror("timeout"),this.closeAndRetry(1005,"timeout",!1)}isActive(){return this.readyState===hn.open||this.readyState===hn.connecting}poll(){const e={Accept:"application/json"};this.authToken&&(e["X-Phoenix-AuthToken"]=this.authToken),this.ajax("GET",e,null,()=>this.ontimeout(),t=>{if(t){var{status:n,token:s,messages:r}=t;if(n===410&&this.token!==null){this.onerror(410),this.closeAndRetry(3410,"session_gone",!1);return}this.token=s}else n=0;switch(n){case 200:r.forEach(i=>{setTimeout(()=>this.onmessage({data:i}),0)}),this.poll();break;case 204:this.poll();break;case 410:this.readyState=hn.open,this.onopen({}),this.poll();break;
415case 403:this.onerror(403),this.close(1008,"forbidden",!1);break;case 0:case 500:this.onerror(500),this.closeAndRetry(1011,"internal server error",500);break;default:throw new Error(`unhandled poll status ${n}`)}})}send(e){typeof e!="string"&&(e=IT(e)),this.currentBatch?this.currentBatch.push(e):this.awaitingBatchAck?this.batchBuffer.push(e):(this.currentBatch=[e],this.currentBatchTimer=setTimeout(()=>{this.batchSend(this.currentBatch),this.currentBatch=null},0))}batchSend(e){this.awaitingBatchAck=!0,this.ajax("POST",{"Content-Type":"application/x-ndjson"},e.join(`
416`),()=>this.onerror("timeout"),t=>{this.awaitingBatchAck=!1,!t||t.status!==200?(this.onerror(t&&t.status),this.closeAndRetry(1011,"internal server error",!1)):this.batchBuffer.length>0&&(this.batchSend(this.batchBuffer),this.batchBuffer=[])})}close(e,t,n){for(let r of this.reqs)r.abort();this.readyState=hn.closed;let s=Object.assign({code:1e3,reason:void 0,wasClean:!0},{code:e,reason:t,wasClean:n});this.batchBuffer=[],clearTimeout(this.currentBatchTimer),this.currentBatchTimer=null,typeof CloseEvent<"u"?this.onclose(new CloseEvent("close",s)):this.onclose(s)}ajax(e,t,n,s,r){let i,o=()=>{this.reqs.delete(i),s()};i=rc.request(e,this.endpointURL(),t,n,this.timeout,o,l=>{this.reqs.delete(i),this.isActive()&&r(l)}),this.reqs.add(i)}},LT=class ui{constructor(t,n={}){let s=n.events||{state:"presence_state",diff:"presence_diff"};this.state={},this.pendingDiffs=[],this.channel=t,this.joinRef=null,this.caller={onJoin:function(){},onLeave:function(){},onSync:function(){}},this.channel.on(s.state,r=>{let{onJoin:i,onLeave:o,onSync:l}=this.caller;this.joinRef=this.channel.joinRef(),this.state=ui.syncState(this.state,r,i,o),this.pendingDiffs.forEach(c=>{this.state=ui.syncDiff(this.state,c,i,o)}),this.pendingDiffs=[],l()}),this.channel.on(s.diff,r=>{let{onJoin:i,onLeave:o,onSync:l}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(r):(this.state=ui.syncDiff(this.state,r,i,o),l())})}onJoin(t){this.caller.onJoin=t}onLeave(t){this.caller.onLeave=t}onSync(t){this.caller.onSync=t}list(t){return ui.list(this.state,t)}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel.joinRef()}static syncState(t,n,s,r){let i=this.clone(t),o={},l={};return this.map(i,(c,d)=>{n[c]||(l[c]=d)}),this.map(n,(c,d)=>{let u=i[c];if(u){let f=d.metas.map(v=>v.phx_ref),h=u.metas.map(v=>v.phx_ref),p=d.metas.filter(v=>h.indexOf(v.phx_ref)<0),y=u.metas.filter(v=>f.indexOf(v.phx_ref)<0);p.length>0&&(o[c]=d,o[c].metas=p),y.length>0&&(l[c]=this.clone(u),l[c].metas=y)}else o[c]=d}),this.syncDiff(i,{joins:o,leaves:l},s,r)}static syncDiff(t,n,s,r){let{joins:i,leaves:o}=this.clone(n);return s||(s=function(){}),r||(r=function(){}),this.map(i,(l,c)=>{let d=t[l];if(t[l]=this.clone(c),d){let u=t[l].metas.map(h=>h.phx_ref),f=d.metas.filter(h=>u.indexOf(h.phx_ref)<0);t[l].metas.unshift(...f)}s(l,d,c)}),this.map(o,(l,c)=>{let d=t[l];if(!d)return;let u=c.metas.map(f=>f.phx_ref);d.metas=d.metas.filter(f=>u.indexOf(f.phx_ref)<0),r(l,d,c),d.metas.length===0&&delete t[l]}),t}static list(t,n){return n||(n=function(s,r){return r}),this.map(t,(s,r)=>n(s,r))}static map(t,n){return Object.getOwnPropertyNames(t).map(s=>n(s,t[s]))}static clone(t){return JSON.parse(JSON.stringify(t))}},Qo={HEADER_LENGTH:1,META_LENGTH:4,KINDS:{push:0,reply:1,broadcast:2},encode(e,t){if(e.payload.constructor===ArrayBuffer)return t(this.binaryEncode(e));{let n=[e.join_ref,e.ref,e.topic,e.event,e.payload];return t(JSON.stringify(n))}},decode(e,t){if(e.constructor===ArrayBuffer)return t(this.binaryDecode(e));{let[n,s,r,i,o]=JSON.parse(e);return t({join_ref:n,ref:s,topic:r,event:i,payload:o})}},binaryEncode(e){let{join_ref:t,ref:n,event:s,topic:r,payload:i}=e,o=this.META_LENGTH+t.length+n.length+r.length+s.length,l=new ArrayBuffer(this.HEADER_LENGTH+o),c=new DataView(l),d=0;c.setUint8(d++,this.KINDS.push),c.setUint8(d++,t.length),c.setUint8(d++,n.length),c.setUint8(d++,r.length),c.setUint8(d++,s.length),Array.from(t,f=>c.setUint8(d++,f.charCodeAt(0))),Array.from(n,f=>c.setUint8(d++,f.charCodeAt(0))),Array.from(r,f=>c.setUint8(d++,f.charCodeAt(0))),Array.from(s,f=>c.setUint8(d++,f.charCodeAt(0)));var u=new Uint8Array(l.byteLength+i.byteLength);return u.set(new Uint8Array(l),0),u.set(new Uint8Array(i),l.byteLength),u.buffer},binaryDecode(e){let t=new DataView(e),n=t.getUint8(0),s=new TextDecoder;switch(n){case this.KINDS.push:return this.decodePush(e,t,s);case this.KINDS.reply:return this.decodeReply(e,t,s);
vendor: 8,481 bytes, line 416
416case this.KINDS.broadcast:return this.decodeBroadcast(e,t,s)}},decodePush(e,t,n){let s=t.getUint8(1),r=t.getUint8(2),i=t.getUint8(3),o=this.HEADER_LENGTH+this.META_LENGTH-1,l=n.decode(e.slice(o,o+s));o=o+s;let c=n.decode(e.slice(o,o+r));o=o+r;let d=n.decode(e.slice(o,o+i));o=o+i;let u=e.slice(o,e.byteLength);return{join_ref:l,ref:null,topic:c,event:d,payload:u}},decodeReply(e,t,n){let s=t.getUint8(1),r=t.getUint8(2),i=t.getUint8(3),o=t.getUint8(4),l=this.HEADER_LENGTH+this.META_LENGTH,c=n.decode(e.slice(l,l+s));l=l+s;let d=n.decode(e.slice(l,l+r));l=l+r;let u=n.decode(e.slice(l,l+i));l=l+i;let f=n.decode(e.slice(l,l+o));l=l+o;let h=e.slice(l,e.byteLength),p={status:f,response:h};return{join_ref:c,ref:d,topic:u,event:$n.reply,payload:p}},decodeBroadcast(e,t,n){let s=t.getUint8(1),r=t.getUint8(2),i=this.HEADER_LENGTH+2,o=n.decode(e.slice(i,i+s));i=i+s;let l=n.decode(e.slice(i,i+r));i=i+r;let c=e.slice(i,e.byteLength);return{join_ref:null,ref:null,topic:o,event:l,payload:c}}},MT=class{constructor(e,t={}){this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.fallbackRef=null,this.timeout=t.timeout||RT,this.transport=t.transport||dn.WebSocket||za,this.conn=void 0,this.primaryPassedHealthCheck=!1,this.longPollFallbackMs=t.longPollFallbackMs,this.fallbackTimer=null,this.sessionStore=t.sessionStorage||dn&&dn.sessionStorage,this.establishedConnections=0,this.defaultEncoder=Qo.encode.bind(Qo),this.defaultDecoder=Qo.decode.bind(Qo),this.closeWasClean=!0,this.disconnecting=!1,this.binaryType=t.binaryType||"arraybuffer",this.connectClock=1,this.pageHidden=!1,this.encode=void 0,this.decode=void 0,this.transport!==za?(this.encode=t.encode||this.defaultEncoder,this.decode=t.decode||this.defaultDecoder):(this.encode=this.defaultEncoder,this.decode=this.defaultDecoder);let n=null;qa&&qa.addEventListener&&(qa.addEventListener("pagehide",s=>{this.conn&&(this.disconnect(),n=this.connectClock)}),qa.addEventListener("pageshow",s=>{n===this.connectClock&&(n=null,this.connect())}),qa.addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"?this.pageHidden=!0:(this.pageHidden=!1,!this.isConnected()&&!this.closeWasClean&&this.teardown(()=>this.connect()))})),this.heartbeatIntervalMs=t.heartbeatIntervalMs||3e4,this.autoSendHeartbeat=t.autoSendHeartbeat??!0,this.heartbeatCallback=t.heartbeatCallback??(()=>{}),this.rejoinAfterMs=s=>t.rejoinAfterMs?t.rejoinAfterMs(s):[1e3,2e3,5e3][s-1]||1e4,this.reconnectAfterMs=s=>t.reconnectAfterMs?t.reconnectAfterMs(s):[10,50,100,150,200,250,500,1e3,2e3][s-1]||5e3,this.logger=t.logger||null,!this.logger&&t.debug&&(this.logger=(s,r,i)=>{console.log(`${s}: ${r}`,i)}),this.longpollerTimeout=t.longpollerTimeout||2e4,this.params=ji(t.params||{}),this.endPoint=`${e}/${ff.websocket}`,this.vsn=t.vsn||AT,this.heartbeatTimeoutTimer=null,this.heartbeatTimer=null,this.heartbeatSentAt=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new c2(()=>{if(this.pageHidden){this.log("Not reconnecting as page is hidden!"),this.teardown();return}this.teardown(async()=>{t.beforeReconnect&&await t.beforeReconnect(),this.connect()})},this.reconnectAfterMs),this.authToken=t.authToken}getLongPollTransport(){return za}replaceTransport(e){this.connectClock++,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.conn&&(this.conn.close(),this.conn=null),this.transport=e}protocol(){return location.protocol.match(/^https/)?"wss":"ws"}endPointURL(){let e=rc.appendParams(rc.appendParams(this.endPoint,this.params()),{vsn:this.vsn});return e.charAt(0)!=="/"?e:e.charAt(1)==="/"?`${this.protocol()}:${e}`:`${this.protocol()}://${location.host}${e}`}disconnect(e,t,n){this.connectClock++,this.disconnecting=!0,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.teardown(()=>{this.disconnecting=!1,e&&e()},t,n)}connect(e){e&&(console&&console.log("passing params to connect is deprecated. Instead pass :params to the Socket constructor"),this.params=ji(e)),!(this.conn&&!this.disconnecting)&&(this.longPollFallbackMs&&this.transport!==za?this.connectWithFallback(za,this.longPollFallbackMs):this.transportConnect())}log(e,t,n){this.logger&&this.logger(e,t,n)}hasLogger(){return this.logger!==null}onOpen(e){let t=this.makeRef();return this.stateChangeCallbacks.open.push([t,e]),t}onClose(e){let t=this.makeRef();return this.stateChangeCallbacks.close.push([t,e]),t}onError(e){let t=this.makeRef();return this.stateChangeCallbacks.error.push([t,e]),t}onMessage(e){let t=this.makeRef();return this.stateChangeCallbacks.message.push([t,e]),t}onHeartbeat(e){this.heartbeatCallback=e}ping(e){if(!this.isConnected())return!1;let t=this.makeRef(),n=Date.now();this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:t});let s=this.onMessage(r=>{r.ref===t&&(this.off([s]),e(Date.now()-n))});return!0}transportName(e){switch(e){case za:return"LongPoll";default:return e.name}}transportConnect(){this.connectClock++,this.closeWasClean=!1;let e;this.authToken&&(e=["phoenix",`${pf}${btoa(this.authToken).replace(/=/g,"")}`]),this.conn=new this.transport(this.endPointURL(),e),this.conn.binaryType=this.binaryType,this.conn.timeout=this.longpollerTimeout,this.conn.onopen=()=>this.onConnOpen(),this.conn.onerror=t=>this.onConnError(t),this.conn.onmessage=t=>this.onConnMessage(t),this.conn.onclose=t=>this.onConnClose(t)}getSession(e){return this.sessionStore&&this.sessionStore.getItem(e)}storeSession(e,t){this.sessionStore&&this.sessionStore.setItem(e,t)}connectWithFallback(e,t=2500){clearTimeout(this.fallbackTimer);let n=!1,s=!0,r,i,o=this.transportName(e),l=c=>{this.log("transport",`falling back to ${o}...`,c),this.off([r,i]),s=!1,this.replaceTransport(e),this.transportConnect()};if(this.getSession(`phx:fallback:${o}`))return l("memorized");this.fallbackTimer=setTimeout(l,t),i=this.onError(c=>{this.log("transport","error",c),s&&!n&&(clearTimeout(this.fallbackTimer),l(c))}),this.fallbackRef&&this.off([this.fallbackRef]),this.fallbackRef=this.onOpen(()=>{if(n=!0,!s){let c=this.transportName(e);return this.primaryPassedHealthCheck||this.storeSession(`phx:fallback:${c}`,"true"),this.log("transport",`established ${c} fallback`)}clearTimeout(this.fallbackTimer),this.fallbackTimer=setTimeout(l,t),this.ping(c=>{this.log("transport","connected to primary after",c),this.primaryPassedHealthCheck=!0,clearTimeout(this.fallbackTimer)})}),this.transportConnect()}clearHeartbeats(){clearTimeout(this.heartbeatTimer),clearTimeout(this.heartbeatTimeoutTimer)}onConnOpen(){this.hasLogger()&&this.log("transport",`connected to ${this.endPointURL()}`),this.closeWasClean=!1,this.disconnecting=!1,this.establishedConnections++,this.flushSendBuffer(),this.reconnectTimer.reset(),this.autoSendHeartbeat&&this.resetHeartbeat(),this.triggerStateCallbacks("open")}heartbeatTimeout(){if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.hasLogger()&&this.log("transport","heartbeat timeout. Attempting to re-establish connection");try{this.heartbeatCallback("timeout")}catch(e){this.log("error","error in heartbeat callback",e)}this.triggerChanError(),this.closeWasClean=!1,this.teardown(()=>this.reconnectTimer.scheduleTimeout(),PT,"heartbeat timeout")}}resetHeartbeat(){this.conn&&this.conn.skipHeartbeat||(this.pendingHeartbeatRef=null,this.clearHeartbeats(),this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}teardown(e,t,n){if(!this.conn)return e&&e();const s=this.conn;this.waitForBufferDone(s,()=>{t?s.close(t,n||""):s.close(),this.waitForSocketClosed(s,()=>{this.conn===s&&(this.conn.onopen=function(){},this.conn.onerror=function(){},this.conn.onmessage=function(){},this.conn.onclose=function(){},this.conn=null),e&&e()})})}waitForBufferDone(e,t,n=1){if(n===5||!e.bufferedAmount){t();return}setTimeout(()=>{this.waitForBufferDone(e,t,n+1)},150*n)}waitForSocketClosed(e,t,n=1){if(n===5||e.readyState===hn.closed){t();return}setTimeout(()=>{this.waitForSocketClosed(e,t,n+1)},150*n)}onConnClose(e){this.conn&&(this.conn.onclose=()=>{}),this.hasLogger()&&this.log("transport","close",e),this.triggerChanError(),this.clearHeartbeats(),this.closeWasClean||this.reconnectTimer.scheduleTimeout(),this.triggerStateCallbacks("close",e)}onConnError(e){this.hasLogger()&&this.log("transport",e);let t=this.transport,n=this.establishedConnections;this.triggerStateCallbacks("error",e,t,n),(t===this.transport||n>0)&&this.triggerChanError()}
416triggerChanError(){this.channels.forEach(e=>{e.isErrored()||e.isLeaving()||e.isClosed()||e.trigger($n.error)})}connectionState(){switch(this.conn&&this.conn.readyState){case hn.connecting:return"connecting";case hn.open:return"open";case hn.closing:return"closing";default:return"closed"}}isConnected(){return this.connectionState()==="open"}remove(e){this.off(e.stateChangeRefs),this.channels=this.channels.filter(t=>t!==e)}off(e){for(let t in this.stateChangeCallbacks)this.stateChangeCallbacks[t]=this.stateChangeCallbacks[t].filter(([n])=>e.indexOf(n)===-1)}channel(e,t={}){let n=new zT(e,t,this);return this.channels.push(n),n}push(e){if(this.hasLogger()){let{topic:t,event:n,payload:s,ref:r,join_ref:i}=e;this.log("push",`${t} ${n} (${i}, ${r})`,s)}this.isConnected()?this.encode(e,t=>this.conn.send(t)):this.sendBuffer.push(()=>this.encode(e,t=>this.conn.send(t)))}makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}sendHeartbeat(){if(!this.isConnected()){try{this.heartbeatCallback("disconnected")}catch(e){this.log("error","error in heartbeat callback",e)}return}if(this.pendingHeartbeatRef){this.heartbeatTimeout();return}this.pendingHeartbeatRef=this.makeRef(),this.heartbeatSentAt=Date.now(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef});try{this.heartbeatCallback("sent")}catch(e){this.log("error","error in heartbeat callback",e)}this.heartbeatTimeoutTimer=setTimeout(()=>this.heartbeatTimeout(),this.heartbeatIntervalMs)}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}onConnMessage(e){this.decode(e.data,t=>{let{topic:n,event:s,payload:r,ref:i,join_ref:o}=t;if(i&&i===this.pendingHeartbeatRef){const l=this.heartbeatSentAt?Date.now()-this.heartbeatSentAt:void 0;this.clearHeartbeats();try{this.heartbeatCallback(r.status==="ok"?"ok":"error",l)}catch(c){this.log("error","error in heartbeat callback",c)}this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.autoSendHeartbeat&&(this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}this.hasLogger()&&this.log("receive",`${r.status||""} ${n} ${s} ${i&&"("+i+")"||""}`.trim(),r);for(let l=0;l<this.channels.length;l++){const c=this.channels[l];c.isMember(n,s,r,o)&&c.trigger(s,r,i,o)}this.triggerStateCallbacks("message",t)})}triggerStateCallbacks(e,...t){try{this.stateChangeCallbacks[e].forEach(([n,s])=>{try{s(...t)}catch(r){this.log("error",`error in ${e} callback`,r)}})}catch(n){this.log("error",`error triggering ${e} callbacks`,n)}}leaveOpenTopic(e){let t=this.channels.find(n=>n.topic===e&&(n.isJoined()||n.isJoining()));t&&(this.hasLogger()&&this.log("transport",`leaving duplicate topic "${e}"`),t.leave())}};class ki{constructor(t,n){const s=UT(n);this.presence=new LT(t.getChannel(),s),this.presence.onJoin((r,i,o)=>{const l=ki.onJoinPayload(r,i,o);t.getChannel().trigger("presence",l)}),this.presence.onLeave((r,i,o)=>{const l=ki.onLeavePayload(r,i,o);t.getChannel().trigger("presence",l)}),this.presence.onSync(()=>{t.getChannel().trigger("presence",{event:"sync"})})}get state(){return ki.transformState(this.presence.state)}static transformState(t){return t=DT(t),Object.getOwnPropertyNames(t).reduce((n,s)=>{const r=t[s];return n[s]=wl(r),n},{})}static onJoinPayload(t,n,s){const r=U0(n),i=wl(s);return{event:"join",key:t,currentPresences:r,newPresences:i}}static onLeavePayload(t,n,s){const r=U0(n),i=wl(s);return{event:"leave",key:t,currentPresences:r,leftPresences:i}}}function wl(e){return e.metas.map(t=>(t.presence_ref=t.phx_ref,delete t.phx_ref,delete t.phx_ref_prev,t))}function DT(e){return JSON.parse(JSON.stringify(e))}function UT(e){return(e==null?void 0:e.events)&&{events:e.events}}function U0(e){return e!=null&&e.metas?wl(e):[]}var F0;(function(e){e.SYNC="sync",e.JOIN="join",e.LEAVE="leave"})(F0||(F0={}));class FT{get state(){return this.presenceAdapter.state}constructor(t,n){this.channel=t,this.presenceAdapter=new ki(this.channel.channelAdapter,n)}}class BT{constructor(t,n,s){const r=qT(s);this.channel=t.getSocket().channel(n,r),this.socket=t}get state(){return this.channel.state}set state(t){this.channel.state=t}get joinedOnce(){return this.channel.joinedOnce}get joinPush(){return this.channel.joinPush}get rejoinTimer(){return this.channel.rejoinTimer}on(t,n){return this.channel.on(t,n)}off(t,n){this.channel.off(t,n)}subscribe(t){return this.channel.join(t)}unsubscribe(t){return this.channel.leave(t)}teardown(){this.channel.teardown()}onClose(t){this.channel.onClose(t)}onError(t){return this.channel.onError(t)}push(t,n,s){let r;try{r=this.channel.push(t,n,s)}catch{throw new Error(`tried to push '${t}' to '${this.channel.topic}' before joining. Use channel.subscribe() before pushing events`)}if(this.channel.pushBuffer.length>wT){const i=this.channel.pushBuffer.shift();i.cancelTimeout(),this.socket.log("channel",`discarded push due to buffer overflow: ${i.event}`,i.payload())}return r}updateJoinPayload(t){const n=this.channel.joinPush.payload();this.channel.joinPush.payload=()=>Object.assign(Object.assign({},n),t)}canPush(){return this.socket.isConnected()&&this.state===ls.joined}isJoined(){return this.state===ls.joined}isJoining(){return this.state===ls.joining}isClosed(){return this.state===ls.closed}isLeaving(){return this.state===ls.leaving}updateFilterBindings(t){this.channel.filterBindings=t}updatePayloadTransform(t){this.channel.onMessage=t}getChannel(){return this.channel}}function qT(e){return{config:Object.assign({broadcast:{ack:!1,self:!1},presence:{key:"",enabled:!1},private:!1},e.config)}}var B0;(function(e){e.ALL="*",e.INSERT="INSERT",e.UPDATE="UPDATE",e.DELETE="DELETE"})(B0||(B0={}));var ar;(function(e){e.BROADCAST="broadcast",e.PRESENCE="presence",e.POSTGRES_CHANGES="postgres_changes",e.SYSTEM="system"})(ar||(ar={}));var Sn;(function(e){e.SUBSCRIBED="SUBSCRIBED",e.TIMED_OUT="TIMED_OUT",e.CLOSED="CLOSED",e.CHANNEL_ERROR="CHANNEL_ERROR"})(Sn||(Sn={}));class Ni{get state(){return this.channelAdapter.state}set state(t){this.channelAdapter.state=t}get joinedOnce(){return this.channelAdapter.joinedOnce}get timeout(){return this.socket.timeout}get joinPush(){return this.channelAdapter.joinPush}get rejoinTimer(){return this.channelAdapter.rejoinTimer}constructor(t,n={config:{}},s){var r,i;if(this.topic=t,this.params=n,this.socket=s,this.bindings={},this.subTopic=t.replace(/^realtime:/i,""),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:"",enabled:!1},private:!1},n.config),this.channelAdapter=new BT(this.socket.socketAdapter,t,this.params),this.presence=new FT(this),this._onClose(()=>{this.socket._remove(this)}),this._updateFilterTransform(),this.broadcastEndpointURL=l2(this.socket.socketAdapter.endPointURL()),this.private=this.params.config.private||!1,!this.private&&(!((i=(r=this.params.config)===null||r===void 0?void 0:r.broadcast)===null||i===void 0)&&i.replay))throw new Error(`tried to use replay on public channel '${this.topic}'. It must be a private channel.`)}subscribe(t,n=this.timeout){var s,r,i;if(this.socket.isConnected()||this.socket.connect(),this.channelAdapter.isClosed()){const{config:{broadcast:o,presence:l,private:c}}=this.params,d=(r=(s=this.bindings.postgres_changes)===null||s===void 0?void 0:s.map(p=>p.filter))!==null&&r!==void 0?r:[],u=!!this.bindings[ar.PRESENCE]&&this.bindings[ar.PRESENCE].length>0||((i=this.params.config.presence)===null||i===void 0?void 0:i.enabled)===!0,f={},h={broadcast:o,presence:Object.assign(Object.assign({},l),{enabled:u}),postgres_changes:d,private:c};this.socket.accessTokenValue&&(f.access_token=this.socket.accessTokenValue),this._onError(p=>{t==null||t(Sn.CHANNEL_ERROR,p)}),this._onClose(()=>t==null?void 0:t(Sn.CLOSED)),this.updateJoinPayload(Object.assign({config:h},f)),this._updateFilterMessage(),this.channelAdapter.subscribe(n).receive("ok",async({postgres_changes:p})=>{if(this.socket._isManualToken()||this.socket.setAuth(),p===void 0){t==null||t(Sn.SUBSCRIBED);return}this._updatePostgresBindings(p,t)}
416).receive("error",p=>{this.state=ls.errored,t==null||t(Sn.CHANNEL_ERROR,new Error(JSON.stringify(Object.values(p).join(", ")||"error")))}).receive("timeout",()=>{t==null||t(Sn.TIMED_OUT)})}return this}_updatePostgresBindings(t,n){var s;const r=this.bindings.postgres_changes,i=(s=r==null?void 0:r.length)!==null&&s!==void 0?s:0,o=[];for(let l=0;l<i;l++){const c=r[l],{filter:{event:d,schema:u,table:f,filter:h}}=c,p=t&&t[l];if(p&&p.event===d&&Ni.isFilterValueEqual(p.schema,u)&&Ni.isFilterValueEqual(p.table,f)&&Ni.isFilterValueEqual(p.filter,h))o.push(Object.assign(Object.assign({},c),{id:p.id}));else{this.unsubscribe(),this.state=ls.errored,n==null||n(Sn.CHANNEL_ERROR,new Error("mismatch between server and client bindings for postgres changes"));return}}this.bindings.postgres_changes=o,this.state!=ls.errored&&n&&n(Sn.SUBSCRIBED)}presenceState(){return this.presence.state}async track(t,n={}){return await this.send({type:"presence",event:"track",payload:t},n.timeout||this.timeout)}async untrack(t={}){return await this.send({type:"presence",event:"untrack"},t)}on(t,n,s){const r=this.channelAdapter.isJoined()||this.channelAdapter.isJoining(),i=t===ar.PRESENCE||t===ar.POSTGRES_CHANGES;if(r&&i)throw this.socket.log("channel",`cannot add \`${t}\` callbacks for ${this.topic} after \`subscribe()\`.`),new Error(`cannot add \`${t}\` callbacks for ${this.topic} after \`subscribe()\`.`);return this._on(t,n,s)}async httpSend(t,n,s={}){var r;if(n==null)return Promise.reject(new Error("Payload is required for httpSend()"));const i={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"};this.socket.accessTokenValue&&(i.Authorization=`Bearer ${this.socket.accessTokenValue}`);const o={method:"POST",headers:i,body:JSON.stringify({messages:[{topic:this.subTopic,event:t,payload:n,private:this.private}]})},l=await this._fetchWithTimeout(this.broadcastEndpointURL,o,(r=s.timeout)!==null&&r!==void 0?r:this.timeout);if(l.status===202)return{success:!0};let c=l.statusText;try{const d=await l.json();c=d.error||d.message||c}catch{}return Promise.reject(new Error(c))}async send(t,n={}){var s,r;if(!this.channelAdapter.canPush()&&t.type==="broadcast"){console.warn("Realtime send() is automatically falling back to REST API. This behavior will be deprecated 
416in the future. Please use httpSend() explicitly for REST delivery.");const{event:i,payload:o}=t,l={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"};this.socket.accessTokenValue&&(l.Authorization=`Bearer ${this.socket.accessTokenValue}`);const c={method:"POST",headers:l,body:JSON.stringify({messages:[{topic:this.subTopic,event:i,payload:o,private:this.private}]})};try{const d=await this._fetchWithTimeout(this.broadcastEndpointURL,c,(s=n.timeout)!==null&&s!==void 0?s:this.timeout);return await((r=d.body)===null||r===void 0?void 0:r.cancel()),d.ok?"ok":"error"}catch(d){return d.name==="AbortError"?"timed out":"error"}}else return new Promise(i=>{var o,l,c;const d=this.channelAdapter.push(t.type,t,n.timeout||this.timeout);t.type==="broadcast"&&!(!((c=(l=(o=this.params)===null||o===void 0?void 0:o.config)===null||l===void 0?void 0:l.broadcast)===null||c===void 0)&&c.ack)&&i("ok"),d.receive("ok",()=>i("ok")),d.receive("error",()=>i("error")),d.receive("timeout",()=>i("timed out"))})}updateJoinPayload(t){this.channelAdapter.updateJoinPayload(t)}async unsubscribe(t=this.timeout){return new Promise(n=>{this.channelAdapter.unsubscribe(t).receive("ok",()=>n("ok")).receive("timeout",()=>n("timed out")).receive("error",()=>n("error"))})}teardown(){this.channelAdapter.teardown()}async _fetchWithTimeout(t,n,s){const r=new AbortController,i=setTimeout(()=>r.abort(),s),o=await this.socket.fetch(t,Object.assign(Object.assign({},n),{signal:r.signal}));return clearTimeout(i),o}_on(t,n,s){const r=t.toLocaleLowerCase(),i=this.channelAdapter.on(t,s),o={type:r,filter:n,callback:s,ref:i};return this.bindings[r]?this.bindings[r].push(o):this.bindings[r]=[o],this._updateFilterMessage(),this}_onClose(t){this.channelAdapter.onClose(t)}_onError(t){this.channelAdapter.onError(t)}_updateFilterMessage(){this.channelAdapter.updateFilterBindings((t,n,s)=>{var r,i,o,l,c,d,u;const f=t.event.toLocaleLowerCase();if(this._notThisChannelEvent(f,s))return!1;const h=(r=this.bindings[f])===null||r===void 0?void 0:r.find(p=>p.ref===t.ref);if(!h)return!0;if(["broadcast","presence","postgres_changes"].includes(f))if("id"in h){const p=h.id,y=(i=h.filter)===null||i===void 0?void 0:i.event;return p&&((o=n.ids)===null||o===void 0?void 0:o.includes(p))&&(y==="*"||(y==null?void 0:y.toLocaleLowerCase())===((l=n.data)===null||l===void 0?void 0:l.type.toLocaleLowerCase()))}else{const p=(d=(c=h==null?void 0:h.filter)===null||c===void 0?void 0:c.event)===null||d===void 0?void 0:d.toLocaleLowerCase();return p==="*"||p===((u=n==null?void 0:n.event)===null||u===void 0?void 0:u.toLocaleLowerCase())}else return h.type.toLocaleLowerCase()===f})}_notThisChannelEvent(t,n){const{close:s,error:r,leave:i,join:o}=i2;return n&&[s,r,i,o].includes(t)&&n!==this.joinPush.ref}_updateFilterTransform(){this.channelAdapter.updatePayloadTransform((t,n,s)=>{if(typeof n=="object"&&"ids"in n){const r=n.data,{schema:i,table:o,commit_timestamp:l,type:c,errors:d}=r;return Object.assign(Object.assign({},{schema:i,table:o,commit_timestamp:l,eventType:c,new:{},old:{},errors:d}),this._getPayloadRecords(r))}return n})}copyBindings(t){if(this.joinedOnce)throw new Error("cannot copy bindings into joined channel");for(const n in t.bindings)for(const s of t.bindings[n])this._on(s.type,s.filter,s.callback)}static isFilterValueEqual(t,n){return(t??void 0)===(n??void 0)}_getPayloadRecords(t){const n={new:{},old:{}};return(t.type==="INSERT"||t.type==="UPDATE")&&(n.new=D0(t.columns,t.record)),(t.type==="UPDATE"||t.type==="DELETE")&&(n.old=D0(t.columns,t.old_record)),n}}class VT{constructor(t,n){this.socket=new MT(t,n)}get timeout(){return this.socket.timeout}get endPoint(){return this.socket.endPoint}get transport(){return this.socket.transport}get heartbeatIntervalMs(){return this.socket.heartbeatIntervalMs}get heartbeatCallback(){return this.socket.heartbeatCallback}set heartbeatCallback(t){this.socket.heartbeatCallback=t}get heartbeatTimer(){return this.socket.heartbeatTimer}get pendingHeartbeatRef(){return this.socket.pendingHeartbeatRef}get reconnectTimer(){return this.socket.reconnectTimer}get vsn(){return this.socket.vsn}get encode(){return this.socket.encode}get decode(){return this.socket.decode}get reconnectAfterMs(){return this.socket.reconnectAfterMs}get sendBuffer(){return this.socket.sendBuffer}get stateChangeCallbacks(){return this.socket.stateChangeCallbacks}connect(){this.socket.connect()}disconnect(t,n,s,r=1e4){return new Promise(i=>{setTimeout(()=>i("timeout"),r),this.socket.disconnect(()=>{t(),i("ok")},n,s)})}push(t){this.socket.push(t)}log(t,n,s){this.socket.log(t,n,s)}makeRef(){return this.socket.makeRef()}onOpen(t){this.socket.onOpen(t)}onClose(t){this.socket.onClose(t)}onError(t){this.socket.onError(t)}onMessage(t){this.socket.onMessage(t)}isConnected(){return this.socket.isConnected()}isConnecting(){return this.socket.connectionState()==df.connecting}isDisconnecting(){return this.socket.connectionState()==df.closing}connectionState(){return this.socket.connectionState()}endPointURL(){return this.socket.endPointURL()}sendHeartbeat(){this.socket.sendHeartbeat()}getSocket(){return this.socket}}const HT={HEARTBEAT_INTERVAL:25e3,RECONNECT_DELAY:10,HEARTBEAT_TIMEOUT_FALLBACK:100},WT=[1e3,2e3,5e3,1e4],ZT=1e4,GT=`
417  addEventListener("message", (e) => {
418    if (e.data.event === "start") {
419      setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval);
420    }
421  });`;class KT{get endPoint(){return this.socketAdapter.endPoint}get timeout(){return this.socketAdapter.timeout}get transport(){return this.socketAdapter.transport}get heartbeatCallback(){return this.socketAdapter.heartbeatCallback}get heartbeatIntervalMs(){return this.socketAdapter.heartbeatIntervalMs}get heartbeatTimer(){return this.worker?this._workerHeartbeatTimer:this.socketAdapter.heartbeatTimer}get pendingHeartbeatRef(){return this.worker?this._pendingWorkerHeartbeatRef:this.socketAdapter.pendingHeartbeatRef}get reconnectTimer(){return this.socketAdapter.reconnectTimer}get vsn(){return this.socketAdapter.vsn}get encode(){return this.socketAdapter.encode}get decode(){return this.socketAdapter.decode}get reconnectAfterMs(){return this.socketAdapter.reconnectAfterMs}get sendBuffer(){return this.socketAdapter.sendBuffer}get stateChangeCallbacks(){return this.socketAdapter.stateChangeCallbacks}constructor(t,n){var s;if(this.channels=new Array,this.accessTokenValue=null,this.accessToken=null,this.apiKey=null,this.httpEndpoint="",this.headers={},this.params={}
421,this.ref=0,this.serializer=new jT,this._manuallySetToken=!1,this._authPromise=null,this._workerHeartbeatTimer=void 0,this._pendingWorkerHeartbeatRef=null,this._resolveFetch=i=>i?(...o)=>i(...o):(...o)=>fetch(...o),!(!((s=n==null?void 0:n.params)===null||s===void 0)&&s.apikey))throw new Error("API key is required to connect to Realtime");this.apiKey=n.params.apikey;const r=this._initializeOptions(n);this.socketAdapter=new VT(t,r),this.httpEndpoint=l2(t),this.fetch=this._resolveFetch(n==null?void 0:n.fetch)}connect(){if(!(this.isConnecting()||this.isDisconnecting()||this.isConnected())){this.accessToken&&!this._authPromise&&this._setAuthSafely("connect"),this._setupConnectionHandlers();try{this.socketAdapter.connect()}catch(t){const n=t.message;throw n.includes("Node.js")?new Error(`${n}
422
423To use Realtime in Node.js, you need to provide a WebSocket implementation:
424
425Option 1: Use Node.js 22+ which has native WebSocket support
426Option 2: Install and provide the "ws" package:
427
428  npm install ws
429
430  import ws from "ws"
431  const client = new RealtimeClient(url, {
432    ...options,
433    transport: ws
434  })`):new Error(`WebSocket not available: ${n}`)}this._handleNodeJsRaceCondition()}}endpointURL(){return this.socketAdapter.endPointURL()}async disconnect(t,n){return this.isDisconnecting()?"ok":await this.socketAdapter.disconnect(()=>{clearInterval(this._workerHeartbeatTimer),this._terminateWorker()},t,n)}getChannels(){return this.channels}async removeChannel(t){const n=await t.unsubscribe();return n==="ok"&&t.teardown(),this.channels.length===0&&this.disconnect(),n}async removeAllChannels(){const t=this.channels.map(async s=>{const r=await s.unsubscribe();return s.teardown(),r}),n=await Promise.all(t);return this.disconnect(),n}log(t,n,s){this.socketAdapter.log(t,n,s)}connectionState(){return this.socketAdapter.connectionState()||df.closed}isConnected(){return this.socketAdapter.isConnected()}isConnecting(){return this.socketAdapter.isConnecting()}isDisconnecting(){return this.socketAdapter.isDisconnecting()}channel(t,n={config:{}}){const s=`realtime:${t}`,r=this.getChannels().find(i=>i.topic===s);if(r)return r;{const i=new Ni(`realtime:${t}`,n,this);return this.channels.push(i),i}}push(t){this.socketAdapter.push(t)}async setAuth(t=null){this._authPromise=this._performAuth(t);try{await this._authPromise}finally{this._authPromise=null}}_isManualToken(){return this._manuallySetToken}async sendHeartbeat(){this.socketAdapter.sendHeartbeat()}onHeartbeat(t){this.socketAdapter.heartbeatCallback=this._wrapHeartbeatCallback(t)}_makeRef(){return this.socketAdapter.makeRef()}_remove(t){this.channels=this.channels.filter(n=>n.topic!==t.topic)}async _performAuth(t=null){let n,s=!1;if(t)n=t,s=!0;else if(this.accessToken)try{n=await this.accessToken()}catch(r){this.log("error","Error fetching access token from callback",r),n=this.accessTokenValue}else n=this.accessTokenValue;s?this._manuallySetToken=!0:this.accessToken&&(this._manuallySetToken=!1),this.accessTokenValue!=n&&(this.accessTokenValue=n,this.channels.forEach(r=>{const i={access_token:n,version:xT};n&&r.updateJoinPayload(i),r.joinedOnce&&r.channelAdapter.isJoined()&&r.channelAdapter.push(i2.access_token,{access_token:n})}))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely(t="general"){this._isManualToken()||this.setAuth().catch(n=>{this.log("error",`Error setting auth in ${t}`,n)})}_setupConnectionHandlers(){this.socketAdapter.onOpen(()=>{(this._authPromise||(this.accessToken&&!this.accessTokenValue?this.setAuth():Promise.resolve())).catch(n=>{this.log("error","error waiting for auth on connect",n)}),this.worker&&!this.workerRef&&this._startWorkerHeartbeat()}),this.socketAdapter.onClose(()=>{this.worker&&this.workerRef&&this._terminateWorker()}),this.socketAdapter.onMessage(t=>{t.ref&&t.ref===this._pendingWorkerHeartbeatRef&&(this._pendingWorkerHeartbeatRef=null)})}_handleNodeJsRaceCondition(){this.socketAdapter.isConnected()&&this.socketAdapter.getSocket().onConnOpen()}_wrapHeartbeatCallback(t){return(n,s)=>{n=="sent"&&this._setAuthSafely(),t&&t(n,s)}}_startWorkerHeartbeat(){this.workerUrl?this.log("worker",`starting worker for from ${this.workerUrl}`):this.log("worker","starting default worker");const t=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(t),this.workerRef.onerror=n=>{this.log("worker","worker error",n.message),this._terminateWorker(),this.disconnect()},this.workerRef.onmessage=n=>{n.data.event==="keepAlive"&&this.sendHeartbeat()},this.workerRef.postMessage({event:"start",interval:this.heartbeatIntervalMs})}_terminateWorker(){this.workerRef&&(this.log("worker","terminating worker"),this.workerRef.terminate(),this.workerRef=void 0)}_workerObjectUrl(t){let n;if(t)n=t;else{const s=new Blob([GT],{type:"application/javascript"});n=URL.createObjectURL(s)}return n}_initializeOptions(t){var n,s,r,i,o,l,c,d,u;this.worker=(n=t==null?void 0:t.worker)!==null&&n!==void 0?n:!1,this.accessToken=(s=t==null?void 0:t.accessToken)!==null&&s!==void 0?s:null;const f={};
434f.timeout=(r=t==null?void 0:t.timeout)!==null&&r!==void 0?r:_T,f.heartbeatIntervalMs=(i=t==null?void 0:t.heartbeatIntervalMs)!==null&&i!==void 0?i:HT.HEARTBEAT_INTERVAL,f.transport=(o=t==null?void 0:t.transport)!==null&&o!==void 0?o:gT.getWebSocketConstructor(),f.params=t==null?void 0:t.params,f.logger=t==null?void 0:t.logger,f.heartbeatCallback=this._wrapHeartbeatCallback(t==null?void 0:t.heartbeatCallback),f.reconnectAfterMs=(l=t==null?void 0:t.reconnectAfterMs)!==null&&l!==void 0?l:v=>WT[v-1]||ZT;let h,p;const y=(c=t==null?void 0:t.vsn)!==null&&c!==void 0?c:yT;switch(y){case vT:h=(v,_)=>_(JSON.stringify(v)),p=(v,_)=>_(JSON.parse(v));break;case r2:h=this.serializer.encode.bind(this.serializer),p=this.serializer.decode.bind(this.serializer);break;default:throw new Error(`Unsupported serializer version: ${f.vsn}`)}if(f.vsn=y,f.encode=(d=t==null?void 0:t.encode)!==null&&d!==void 0?d:h,f.decode=(u=t==null?void 0:t.decode)!==null&&u!==void 0?u:p,f.beforeReconnect=this._reconnectAuth.bind(this),(t!=null&&t.logLevel||t!=null&&t.log_level)&&(this.logLevel=t.logLevel||t.log_level,f.params=Object.assign(Object.assign({},f.params),{log_level:this.logLevel})),this.worker){if(typeof window<"u"&&!window.Worker)throw new Error("Web Worker is not supported");this.workerUrl=t==null?void 0:t.workerUrl,f.autoSendHeartbeat=!this.worker}return f}async _reconnectAuth(){await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()}}var eo=class extends Error{constructor(e,t){var n;super(e),this.name="IcebergError",this.status=t.status,this.icebergType=t.icebergType,this.icebergCode=t.icebergCode,this.details=t.details,this.isCommitStateUnknown=t.icebergType==="CommitStateUnknownException"||[500,502,504].includes(t.status)&&((n=t.icebergType)==null?void 0:n.includes("CommitState"))===!0}isNotFound(){return this.status===404}isConflict(){return this.status===409}isAuthenticationTimeout(){return this.status===419}};function JT(e,t,n){const s=new URL(t,e);if(n)for(const[r,i]of Object.entries(n))i!==void 0&&s.searchParams.set(r,i);return s.toString()}async function YT(e){return!e||e.type==="none"?{}:e.type==="bearer"?{Authorization:`Bearer ${e.token}`}:e.type==="header"?{[e.name]:e.value}:e.type==="custom"?await e.getHeaders():{}}function QT(e){const t=e.fetchImpl??globalThis.fetch;return{async request({method:n,path:s,query:r,body:i,headers:o}){const l=JT(e.baseUrl,s,r),c=await YT(e.auth),d=await t(l,{method:n,headers:{...i?{"Content-Type":"application/json"}:{},...c,...o},body:i?JSON.stringify(i):void 0}),u=await d.text(),f=(d.headers.get("content-type")||"").includes("application/json"),h=f&&u?JSON.parse(u):u;if(!d.ok){const p=f?h:void 0,y=p==null?void 0:p.error;throw new eo((y==null?void 0:y.message)??`Request failed with status ${d.status}`,{status:d.status,icebergType:y==null?void 0:y.type,icebergCode:y==null?void 0:y.code,details:p})}return{status:d.status,headers:d.headers,data:h}}}}function Xo(e){return e.join("�")}var XT=class{constructor(e,t=""){this.client=e,this.prefix=t}async listNamespaces(e){const t=e?{parent:Xo(e.namespace)}:void 0;return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces`,query:t})).data.namespaces.map(s=>({namespace:s}))}async createNamespace(e,t){const n={namespace:e.namespace,properties:t==null?void 0:t.properties};return(await this.client.request({method:"POST",path:`${this.prefix}/namespaces`,body:n})).data}async dropNamespace(e){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${Xo(e.namespace)}`})}async loadNamespaceMetadata(e){return{properties:(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${Xo(e.namespace)}`})).data.properties}}async namespaceExists(e){try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${Xo(e.namespace)}`}),!0}catch(t){if(t instanceof eo&&t.status===404)return!1;throw t}}async createNamespaceIfNotExists(e,t){try{return await this.createNamespace(e,t)}catch(n){if(n instanceof eo&&n.status===409)return;throw n}}};function Ia(e){return e.join("�")}var eA=class{constructor(e,t="",n){this.client=e,this.prefix=t,this.accessDelegation=n}async listTables(e){return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${Ia(e.namespace)}/tables`})).data.identifiers}async createTable(e,t){const n={};return this.accessDelegation&&(n["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${Ia(e.namespace)}/tables`,body:t,headers:n})).data.metadata}async updateTable(e,t){const n=await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${Ia(e.namespace)}/tables/${e.name}`,body:t});return{"metadata-location":n.data["metadata-location"],metadata:n.data.metadata}}async dropTable(e,t){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${Ia(e.namespace)}/tables/${e.name}`,query:{purgeRequested:String((t==null?void 0:t.purge)??!1)}})}async loadTable(e){const t={};return this.accessDelegation&&(t["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${Ia(e.namespace)}/tables/${e.name}`,headers:t})).data.metadata}async tableExists(e){const t={};this.accessDelegation&&(t["X-Iceberg-Access-Delegation"]=this.accessDelegation);try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${Ia(e.namespace)}/tables/${e.name}`,headers:t}),!0}catch(n){if(n instanceof eo&&n.status===404)return!1;throw n}}async createTableIfNotExists(e,t){try{return await this.createTable(e,t)}catch(n){if(n instanceof eo&&n.status===409)return await this.loadTable({namespace:e.namespace,name:t.name});throw n}}},tA=class{constructor(e){var s;let t="v1";e.catalogName&&(t+=`/${e.catalogName}`);const n=e.baseUrl.endsWith("/")?e.baseUrl:`${e.baseUrl}/`;this.client=QT({baseUrl:n,auth:e.auth,fetchImpl:e.fetch}),this.accessDelegation=(s=e.accessDelegation)==null?void 0:s.join(","),this.namespaceOps=new XT(this.client,t),this.tableOps=new eA(this.client,t,this.accessDelegation)}async listNamespaces(e){return this.namespaceOps.listNamespaces(e)}async createNamespace(e,t){return this.namespaceOps.createNamespace(e,t)}async dropNamespace(e){await this.namespaceOps.dropNamespace(e)}async loadNamespaceMetadata(e){return this.namespaceOps.loadNamespaceMetadata(e)}async listTables(e){return this.tableOps.listTables(e)}
434async createTable(e,t){return this.tableOps.createTable(e,t)}async updateTable(e,t){return this.tableOps.updateTable(e,t)}async dropTable(e,t){await this.tableOps.dropTable(e,t)}async loadTable(e){return this.tableOps.loadTable(e)}async namespaceExists(e){return this.namespaceOps.namespaceExists(e)}async tableExists(e){return this.tableOps.tableExists(e)}async createNamespaceIfNotExists(e,t){return this.namespaceOps.createNamespaceIfNotExists(e,t)}async createTableIfNotExists(e,t){return this.tableOps.createTableIfNotExists(e,t)}};function to(e){"@babel/helpers - typeof";return to=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},to(e)}function nA(e,t){if(to(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var s=n.call(e,t||"default");if(to(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function sA(e){var t=nA(e,"string");return to(t)=="symbol"?t:t+""}function aA(e,t,n){return(t=sA(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function q0(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),n.push.apply(n,s)}return n}function V(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?q0(Object(n),!0).forEach(function(s){aA(e,s,n[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):q0(Object(n)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))})}return e}var Bc=class extends Error{constructor(e,t="storage",n,s){super(e),this.__isStorageError=!0,this.namespace=t,this.name=t==="vectors"?"StorageVectorsError":"StorageError",this.status=n,this.statusCode=s}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}};function qc(e){return typeof e=="object"&&e!==null&&"__isStorageError"in e}var hf=class extends Bc{constructor(e,t,n,s="storage"){super(e,s,t,n),this.name=s==="vectors"?"StorageVectorsApiError":"StorageApiError",this.status=t,this.statusCode=n}toJSON(){return V({},super.toJSON())}},d2=class extends Bc{constructor(e,t,n="storage"){super(e,n),this.name=n==="vectors"?"StorageVectorsUnknownError":"StorageUnknownError",this.originalError=t}};function nh(e,t,n){const s=V({},e),r=t.toLowerCase();for(const i of Object.keys(s))i.toLowerCase()===r&&delete s[i];return s[r]=n,s}function rA(e){const t={};for(const[n,s]of Object.entries(e))t[n.toLowerCase()]=s;return t}const iA=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),oA=e=>{if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},mf=e=>{if(Array.isArray(e))return e.map(n=>mf(n));if(typeof e=="function"||e!==Object(e))return e;const t={};return Object.entries(e).forEach(([n,s])=>{const r=n.replace(/([-_][a-z])/gi,i=>i.toUpperCase().replace(/[-_]/g,""));t[r]=mf(s)}),t},lA=e=>!e||typeof e!="string"||e.length===0||e.length>100||e.trim()!==e||e.includes("/")||e.includes("\\")?!1:/^[\w!.\*'() &$@=;:+,?-]+$/.test(e),V0=e=>{var t;return e.msg||e.message||e.error_description||(typeof e.error=="string"?e.error:(t=e.error)===null||t===void 0?void 0:t.message)||JSON.stringify(e)},cA=async(e,t,n,s)=>{if(e!==null&&typeof e=="object"&&typeof e.json=="function"){const r=e;let i=parseInt(r.status,10);Number.isFinite(i)||(i=500),r.json().then(o=>{const l=(o==null?void 0:o.statusCode)||(o==null?void 0:o.code)||i+"";t(new hf(V0(o),i,l,s))}).catch(()=>{const o=i+"";t(new hf(r.statusText||`HTTP ${i} error`,i,o,s))})}else t(new d2(V0(e),e,s))},dA=(e,t,n,s)=>{const r={method:e,headers:(t==null?void 0:t.headers)||{}};if(e==="GET"||e==="HEAD"||!s)return V(V({},r),n);if(oA(s)){var i;const o=(t==null?void 0:t.headers)||{};let l;for(const[c,d]of Object.entries(o))c.toLowerCase()==="content-type"&&(l=d);r.headers=nh(o,"Content-Type",(i=l)!==null&&i!==void 0?i:"application/json"),r.body=JSON.stringify(s)}else r.body=s;return t!=null&&t.duplex&&(r.duplex=t.duplex),V(V({},r),n)};async function ri(e,t,n,s,r,i,o){return new Promise((l,c)=>{e(n,dA(t,s,r,i)).then(d=>{if(!d.ok)throw d;if(s!=null&&s.noResolveJson)return d;if(o==="vectors"){const u=d.headers.get("content-type");if(d.headers.get("content-length")==="0"||d.status===204)return{};if(!u||!u.includes("application/json"))return{}}return d.json()}).then(d=>l(d)).catch(d=>cA(d,c,s,o))})}function u2(e="storage"){return{get:async(t,n,s,r)=>
434ri(t,"GET",n,s,r,void 0,e),post:async(t,n,s,r,i)=>ri(t,"POST",n,r,i,s,e),put:async(t,n,s,r,i)=>ri(t,"PUT",n,r,i,s,e),head:async(t,n,s,r)=>ri(t,"HEAD",n,V(V({},s),{},{noResolveJson:!0}),r,void 0,e),remove:async(t,n,s,r,i)=>ri(t,"DELETE",n,r,i,s,e)}}const uA=u2("storage"),{get:no,post:Kt,put:gf,head:fA,remove:sh}=uA,vt=u2("vectors");var qr=class{constructor(e,t={},n,s="storage"){this.shouldThrowOnError=!1,this.url=e,this.headers=rA(t),this.fetch=iA(n),this.namespace=s}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(e,t){return this.headers=nh(this.headers,e,t),this}async handleOperation(e){var t=this;try{return{data:await e(),error:null}}catch(n){if(t.shouldThrowOnError)throw n;if(qc(n))return{data:null,error:n};throw n}}},pA=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t}then(e,t){return this.execute().then(e,t)}async execute(){var e=this;try{return{data:(await e.downloadFn()).body,error:null}}catch(t){if(e.shouldThrowOnError)throw t;if(qc(t))return{data:null,error:t};throw t}}};let f2;f2=Symbol.toStringTag;var hA=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[f2]="BlobDownloadBuilder",this.promise=null}asStream(){return new pA(this.downloadFn,this.shouldThrowOnError)}then(e,t){return this.getPromise().then(e,t)}catch(e){return this.getPromise().catch(e)}finally(e){return this.getPromise().finally(e)}getPromise(){return this.promise||(this.promise=this.execute()),this.promise}async execute(){var e=this;try{return{data:await(await e.downloadFn()).blob(),error:null}}catch(t){if(e.shouldThrowOnError)throw t;if(qc(t))return{data:null,error:t};throw t}}};const mA={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},H0={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};var gA=class extends qr{constructor(e,t={},n,s){super(e,t,s,"storage"),this.bucketId=n}async uploadOrUpdate(e,t,n,s){var r=this;return r.handleOperation(async()=>{let i;const o=V(V({},H0),s);let l=V(V({},r.headers),e==="POST"&&{"x-upsert":String(o.upsert)});const c=o.metadata;if(typeof Blob<"u"&&n instanceof Blob?(i=new FormData,i.append("cacheControl",o.cacheControl),c&&i.append("metadata",r.encodeMetadata(c)),i.append("",n)):typeof FormData<"u"&&n instanceof FormData?(i=n,i.has("cacheControl")||i.append("cacheControl",o.cacheControl),c&&!i.has("metadata")&&i.append("metadata",r.encodeMetadata(c))):(i=n,l["cache-control"]=`max-age=${o.cacheControl}`,l["content-type"]=o.contentType,c&&(l["x-metadata"]=r.toBase64(r.encodeMetadata(c))),(typeof ReadableStream<"u"&&i instanceof ReadableStream||i&&typeof i=="object"&&"pipe"in i&&typeof i.pipe=="function")&&!o.duplex&&(o.duplex="half")),s!=null&&s.headers)for(const[h,p]of Object.entries(s.headers))l=nh(l,h,p);const d=r._removeEmptyFolders(t),u=r._getFinalPath(d),f=await(e=="PUT"?gf:Kt)(r.fetch,`${r.url}/object/${u}`,i,V({headers:l},o!=null&&o.duplex?{duplex:o.duplex}:{}));return{path:d,id:f.Id,fullPath:f.Key}})}async upload(e,t,n){return this.uploadOrUpdate("POST",e,t,n)}async uploadToSignedUrl(e,t,n,s){var r=this;const i=r._removeEmptyFolders(e),o=r._getFinalPath(i),l=new URL(r.url+`/object/upload/sign/${o}`);return l.searchParams.set("token",t),r.handleOperation(async()=>{let c;const d=V(V({},H0),s),u=V(V({},r.headers),{"x-upsert":String(d.upsert)});return typeof Blob<"u"&&n instanceof Blob?(c=new FormData,c.append("cacheControl",d.cacheControl),c.append("",n)):typeof FormData<"u"&&n instanceof FormData?(c=n,c.append("cacheControl",d.cacheControl)):(c=n,u["cache-control"]=`max-age=${d.cacheControl}`,u["content-type"]=d.contentType),{path:i,fullPath:(await gf(r.fetch,l.toString(),c,{headers:u})).Key}})}async createSignedUploadUrl(e,t){var n=this;return n.handleOperation(async()=>{let s=n._getFinalPath(e);const r=V({},n.headers);t!=null&&t.upsert&&(r["x-upsert"]="true");const i=await Kt(n.fetch,`${n.url}/object/upload/sign/${s}`,{},{headers:r}),o=new URL(n.url+i.url),l=o.searchParams.get("token");if(!l)throw new Bc("No token returned by API");return{signedUrl:o.toString(),path:e,token:l}})}async update(e,t,n){return this.uploadOrUpdate("PUT",e,t,n)}async move(e,t,n){var s=this;return s.handleOperation(async()=>await Kt(s.fetch,`${s.url}/object/move`,{bucketId:s.bucketId,sourceKey:e,destinationKey:t,de
434stinationBucket:n==null?void 0:n.destinationBucket},{headers:s.headers}))}async copy(e,t,n){var s=this;return s.handleOperation(async()=>({path:(await Kt(s.fetch,`${s.url}/object/copy`,{bucketId:s.bucketId,sourceKey:e,destinationKey:t,destinationBucket:n==null?void 0:n.destinationBucket},{headers:s.headers})).Key}))}async createSignedUrl(e,t,n){var s=this;return s.handleOperation(async()=>{let r=s._getFinalPath(e);const i=typeof(n==null?void 0:n.transform)=="object"&&n.transform!==null&&Object.keys(n.transform).length>0;let o=await Kt(s.fetch,`${s.url}/object/sign/${r}`,V({expiresIn:t},i?{transform:n.transform}:{}),{headers:s.headers});const l=new URLSearchParams;n!=null&&n.download&&l.set("download",n.download===!0?"":n.download),(n==null?void 0:n.cacheNonce)!=null&&l.set("cacheNonce",String(n.cacheNonce));const c=l.toString();return{signedUrl:encodeURI(`${s.url}${o.signedURL}${c?`&${c}`:""}`)}})}async createSignedUrls(e,t,n){var s=this;return s.handleOperation(async()=>{const r=await Kt(s.fetch,`${s.url}/object/sign/${s.bucketId}`,{expiresIn:t,paths:e},{headers:s.headers}),i=new URLSearchParams;n!=null&&n.download&&i.set("download",n.download===!0?"":n.download),(n==null?void 0:n.cacheNonce)!=null&&i.set("cacheNonce",String(n.cacheNonce));const o=i.toString();return r.map(l=>V(V({},l),{},{signedUrl:l.signedURL?encodeURI(`${s.url}${l.signedURL}${o?`&${o}`:""}`):null}))})}download(e,t,n){const s=typeof(t==null?void 0:t.transform)=="object"&&t.transform!==null&&Object.keys(t.transform).length>0?"render/image/authenticated":"object",r=new URLSearchParams;t!=null&&t.transform&&this.applyTransformOptsToQuery(r,t.transform),(t==null?void 0:t.cacheNonce)!=null&&r.set("cacheNonce",String(t.cacheNonce));const i=r.toString(),o=this._getFinalPath(e),l=()=>no(this.fetch,`${this.url}/${s}/${o}${i?`?${i}`:""}`,{headers:this.headers,noResolveJson:!0},n);return new hA(l,this.shouldThrowOnError)}async info(e){var t=this;const n=t._getFinalPath(e);return t.handleOperation(async()=>mf(await no(t.fetch,`${t.url}/object/info/${n}`,{headers:t.headers})))}async exists(e){var t=this;const n=t._getFinalPath(e);try{return await fA(t.fetch,`${t.url}/object/${n}`,{headers:t.headers}),{data:!0,error:null}}catch(r){if(t.shouldThrowOnError)throw r;if(qc(r)){var s;const i=r instanceof hf?r.status:r instanceof d2?(s=r.originalError)===null||s===void 0?void 0:s.status:void 0;if(i!==void 0&&[400,404].includes(i))return{data:!1,error:r}}throw r}}getPublicUrl(e,t){const n=this._getFinalPath(e),s=new URLSearchParams;t!=null&&t.download&&s.set("download",t.download===!0?"":t.download),t!=null&&t.transform&&this.applyTransformOptsToQuery(s,t.transform),(t==null?void 0:t.cacheNonce)!=null&&s.set("cacheNonce",String(t.cacheNonce));const r=s.toString(),i=typeof(t==null?void 0:t.transform)=="object"&&t.transform!==null&&Object.keys(t.transform).length>0?"render/image":"object";return{data:{publicUrl:encodeURI(`${this.url}/${i}/public/${n}`)+(r?`?${r}`:"")}}}async remove(e){var t=this;return t.handleOperation(async()=>await sh(t.fetch,`${t.url}/object/${t.bucketId}`,{prefixes:e},{headers:t.headers}))}async list(e,t,n){var s=this;return s.handleOperation(async()=>{const r=V(V(V({},mA),t),{},{prefix:e||""});return await Kt(s.fetch,`${s.url}/object/list/${s.bucketId}`,r,{headers:s.headers},n)})}async listV2(e,t){var n=this;return n.handleOperation(async()=>{const s=V({},e);return await Kt(n.fetch,`${n.url}/object/list-v2/${n.bucketId}`,s,{headers:n.headers},t)})}encodeMetadata(e){return JSON.stringify(e)}toBase64(e){return typeof Buffer<"u"?Buffer.from(e).toString("base64"):btoa(e)}_getFinalPath(e){return`${this.bucketId}/${e.replace(/^\/+/,"")}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}applyTransformOptsToQuery(e,t){return t.width&&e.set("width",t.width.toString()),t.height&&e.set("height",t.height.toString()),t.resize&&e.set("resize",t.resize),t.format&&e.set("format",t.format),t.quality&&e.set("quality",t.quality.toString()),e}};const bA="2.104.1",_o={"X-Client-Info":`storage-js/${bA}`};var xA=class extends qr{constructor(e,t={}
434,n,s){const r=new URL(e);s!=null&&s.useNewHostname&&/supabase\.(co|in|red)$/.test(r.hostname)&&!r.hostname.includes("storage.supabase.")&&(r.hostname=r.hostname.replace("supabase.","storage.supabase."));const i=r.href.replace(/\/$/,""),o=V(V({},_o),t);super(i,o,n,"storage")}async listBuckets(e){var t=this;return t.handleOperation(async()=>{const n=t.listBucketOptionsToQueryString(e);return await no(t.fetch,`${t.url}/bucket${n}`,{headers:t.headers})})}async getBucket(e){var t=this;return t.handleOperation(async()=>await no(t.fetch,`${t.url}/bucket/${e}`,{headers:t.headers}))}async createBucket(e,t={public:!1}){var n=this;return n.handleOperation(async()=>await Kt(n.fetch,`${n.url}/bucket`,{id:e,name:e,type:t.type,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:n.headers}))}async updateBucket(e,t){var n=this;return n.handleOperation(async()=>await gf(n.fetch,`${n.url}/bucket/${e}`,{id:e,name:e,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:n.headers}))}async emptyBucket(e){var t=this;return t.handleOperation(async()=>await Kt(t.fetch,`${t.url}/bucket/${e}/empty`,{},{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await sh(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}listBucketOptionsToQueryString(e){const t={};return e&&("limit"in e&&(t.limit=String(e.limit)),"offset"in e&&(t.offset=String(e.offset)),e.search&&(t.search=e.search),e.sortColumn&&(t.sortColumn=e.sortColumn),e.sortOrder&&(t.sortOrder=e.sortOrder)),Object.keys(t).length>0?"?"+new URLSearchParams(t).toString():""}},vA=class extends qr{constructor(e,t={},n){const s=e.replace(/\/$/,""),r=V(V({},_o),t);super(s,r,n,"storage")}async createBucket(e){var t=this;return t.handleOperation(async()=>await Kt(t.fetch,`${t.url}/bucket`,{name:e},{headers:t.headers}))}async listBuckets(e){var t=this;return t.handleOperation(async()=>{const n=new URLSearchParams;(e==null?void 0:e.limit)!==void 0&&n.set("limit",e.limit.toString()),(e==null?void 0:e.offset)!==void 0&&n.set("offset",e.offset.toString()),e!=null&&e.sortColumn&&n.set("sortColumn",e.sortColumn),e!=null&&e.sortOrder&&n.set("sortOrder",e.sortOrder),e!=null&&e.search&&n.set("search",e.search);const s=n.toString(),r=s?`${t.url}/bucket?${s}`:`${t.url}/bucket`;return await no(t.fetch,r,{headers:t.headers})})}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await sh(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}from(e){var t=this;if(!lA(e))throw new Bc("Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.");const n=new tA({baseUrl:this.url,catalogName:e,auth:{type:"custom",getHeaders:async()=>t.headers},fetch:this.fetch}),s=this.shouldThrowOnError;return new Proxy(n,{get(r,i){const o=r[i];return typeof o!="function"?o:async(...l)=>{try{return{data:await o.apply(r,l),error:null}}catch(c){if(s)throw c;return{data:null,error:c}}}}})}},yA=class extends qr{constructor(e,t={},n){const s=e.replace(/\/$/,""),r=V(V({},_o),{},{"Content-Type":"application/json"},t);super(s,r,n,"vectors")}async createIndex(e){var t=this;return t.handleOperation(async()=>await vt.post(t.fetch,`${t.url}/CreateIndex`,e,{headers:t.headers})||{})}async getIndex(e,t){var n=this;return n.handleOperation(async()=>await vt.post(n.fetch,`${n.url}/GetIndex`,{vectorBucketName:e,indexName:t},{headers:n.headers}))}async listIndexes(e){var t=this;return t.handleOperation(async()=>await vt.post(t.fetch,`${t.url}/ListIndexes`,e,{headers:t.headers}))}async deleteIndex(e,t){var n=this;return n.handleOperation(async()=>await vt.post(n.fetch,`${n.url}/DeleteIndex`,{vectorBucketName:e,indexName:t},{headers:n.headers})||{})}},_A=class extends qr{constructor(e,t={},n){const s=e.replace(/\/$/,""),r=V(V({},_o),{},{"Content-Type":"application/json"},t);super(s,r,n,"vectors")}async putVectors(e){var t=this;if(e.vectors.length<1||e.vectors.length>500)throw new Error("Vector batch size must be between 1 and 500 items");return t.handleOperation(async()=>await vt.post(t.fetch,`${t.url}/PutVectors`,e,{headers:t.headers})||{})}async getVectors(e){var t=this;return t.handleOperation(async()=>await vt.post(t.fetch,`${t.url}/GetVectors`,e,{headers:t.headers}))}async listVectors(e){var t=this;if(e.segmentCount!==void 0){if(e.segmentCount<1||e.segmentCount>16)throw new Error("segmentCount must be between 1 and 16");
434if(e.segmentIndex!==void 0&&(e.segmentIndex<0||e.segmentIndex>=e.segmentCount))throw new Error(`segmentIndex must be between 0 and ${e.segmentCount-1}`)}return t.handleOperation(async()=>await vt.post(t.fetch,`${t.url}/ListVectors`,e,{headers:t.headers}))}async queryVectors(e){var t=this;return t.handleOperation(async()=>await vt.post(t.fetch,`${t.url}/QueryVectors`,e,{headers:t.headers}))}async deleteVectors(e){var t=this;if(e.keys.length<1||e.keys.length>500)throw new Error("Keys batch size must be between 1 and 500 items");return t.handleOperation(async()=>await vt.post(t.fetch,`${t.url}/DeleteVectors`,e,{headers:t.headers})||{})}},wA=class extends qr{constructor(e,t={},n){const s=e.replace(/\/$/,""),r=V(V({},_o),{},{"Content-Type":"application/json"},t);super(s,r,n,"vectors")}async createBucket(e){var t=this;return t.handleOperation(async()=>await vt.post(t.fetch,`${t.url}/CreateVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}async getBucket(e){var t=this;return t.handleOperation(async()=>await vt.post(t.fetch,`${t.url}/GetVectorBucket`,{vectorBucketName:e},{headers:t.headers}))}async listBuckets(e={}){var t=this;return t.handleOperation(async()=>await vt.post(t.fetch,`${t.url}/ListVectorBuckets`,e,{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await vt.post(t.fetch,`${t.url}/DeleteVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}},jA=class extends wA{constructor(e,t={}){super(e,t.headers||{},t.fetch)}from(e){return new kA(this.url,this.headers,e,this.fetch)}async createBucket(e){var t=()=>super.createBucket,n=this;return t().call(n,e)}async getBucket(e){var t=()=>super.getBucket,n=this;return t().call(n,e)}async listBuckets(e={}){var t=()=>super.listBuckets,n=this;return t().call(n,e)}async deleteBucket(e){var t=()=>super.deleteBucket,n=this;return t().call(n,e)}},kA=class extends yA{constructor(e,t,n,s){super(e,t,s),this.vectorBucketName=n}async createIndex(e){var t=()=>super.createIndex,n=this;return t().call(n,V(V({},e),{},{vectorBucketName:n.vectorBucketName}))}async listIndexes(e={}){var t=()=>super.listIndexes,n=this;return t().call(n,V(V({},e),{},{vectorBucketName:n.vectorBucketName}))}async getIndex(e){var t=()=>super.getIndex,n=this;return t().call(n,n.vectorBucketName,e)}async deleteIndex(e){var t=()=>super.deleteIndex,n=this;return t().call(n,n.vectorBucketName,e)}index(e){return new NA(this.url,this.headers,this.vectorBucketName,e,this.fetch)}},NA=class extends _A{constructor(e,t,n,s,r){super(e,t,r),this.vectorBucketName=n,this.indexName=s}async putVectors(e){var t=()=>super.putVectors,n=this;return t().call(n,V(V({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async getVectors(e){var t=()=>super.getVectors,n=this;return t().call(n,V(V({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async listVectors(e={}){var t=()=>super.listVectors,n=this;return t().call(n,V(V({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async queryVectors(e){var t=()=>super.queryVectors,n=this;return t().call(n,V(V({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async deleteVectors(e){var t=()=>super.deleteVectors,n=this;return t().call(n,V(V({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}},$A=class extends xA{constructor(e,t={},n,s){super(e,t,n,s)}from(e){return new gA(this.url,this.headers,e,this.fetch)}get vectors(){return new jA(this.url+"/vector",{headers:this.headers,fetch:this.fetch})}get analytics(){return new vA(this.url+"/iceberg",this.headers,this.fetch)}};function Vc(e,t){var n={};for(var s in e)Object.prototype.hasOwnProperty.call(e,s)&&t.indexOf(s)<0&&(n[s]=e[s]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,s=Object.getOwnPropertySymbols(e);r<s.length;r++)t.indexOf(s[r])<0&&Object.prototype.propertyIsEnumerable.call(e,s[r])&&(n[s[r]]=e[s[r]]);return n}const p2="2.104.1",Va=30*1e3,bf=3,Fd=bf*Va,SA="http://localhost:9999",EA="supabase.auth.token",CA={"X-Client-Info":`gotrue-js/${p2}`},xf="X-Supabase-Api-Version",h2={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}},TA=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i,AA=10*60*1e3;
434class so extends Error{constructor(t,n,s){super(t),this.__isAuthError=!0,this.name="AuthError",this.status=n,this.code=s}toJSON(){return{name:this.name,message:this.message,status:this.status,code:this.code}}}function D(e){return typeof e=="object"&&e!==null&&"__isAuthError"in e}class RA extends so{constructor(t,n,s){super(t,n,s),this.name="AuthApiError",this.status=n,this.code=s}}function PA(e){return D(e)&&e.name==="AuthApiError"}class na extends so{constructor(t,n){super(t),this.name="AuthUnknownError",this.originalError=n}}class Un extends so{constructor(t,n,s,r){super(t,s,r),this.name=n,this.status=s}}class gt extends Un{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}function el(e){return D(e)&&e.name==="AuthSessionMissingError"}class La extends Un{constructor(){super("Auth session or user missing","AuthInvalidTokenResponseError",500,void 0)}}class tl extends Un{constructor(t){super(t,"AuthInvalidCredentialsError",400,void 0)}}class nl extends Un{constructor(t,n=null){super(t,"AuthImplicitGrantRedirectError",500,void 0),this.details=null,this.details=n}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}}function OA(e){return D(e)&&e.name==="AuthImplicitGrantRedirectError"}class W0 extends Un{constructor(t,n=null){super(t,"AuthPKCEGrantCodeExchangeError",500,void 0),this.details=null,this.details=n}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{details:this.details})}}class zA extends Un{constructor(){super("PKCE code verifier not found in storage. This can happen if the auth flow was initiated in a different browser or device, or if the storage was cleared. For SSR frameworks (Next.js, SvelteKit, etc.), use @supabase/ssr on both the server and client to store the code verifier in cookies.","AuthPKCECodeVerifierMissingError",400,"pkce_code_verifier_not_found")}}class vf extends Un{constructor(t,n){super(t,"AuthRetryableFetchError",n,void 0)}}function Bd(e){return D(e)&&e.name==="AuthRetryableFetchError"}class Z0 extends Un{constructor(t,n,s){super(t,"AuthWeakPasswordError",n,"weak_password"),this.reasons=s}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{reasons:this.reasons})}}class yf extends Un{constructor(t){super(t,"AuthInvalidJwtError",400,"invalid_jwt")}}const ic="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split(""),G0=` 	
435\r=`.split(""),IA=(()=>{const e=new Array(128);for(let t=0;t<e.length;t+=1)e[t]=-1;for(let t=0;t<G0.length;t+=1)e[G0[t].charCodeAt(0)]=-2;for(let t=0;t<ic.length;t+=1)e[ic[t].charCodeAt(0)]=t;return e})();function K0(e,t,n){if(e!==null)for(t.queue=t.queue<<8|e,t.queuedBits+=8;t.queuedBits>=6;){const s=t.queue>>t.queuedBits-6&63;n(ic[s]),t.queuedBits-=6}else if(t.queuedBits>0)for(t.queue=t.queue<<6-t.queuedBits,t.queuedBits=6;t.queuedBits>=6;){const s=t.queue>>t.queuedBits-6&63;n(ic[s]),t.queuedBits-=6}}function m2(e,t,n){const s=IA[e];if(s>-1)for(t.queue=t.queue<<6|s,t.queuedBits+=6;t.queuedBits>=8;)n(t.queue>>t.queuedBits-8&255),t.queuedBits-=8;else{if(s===-2)return;throw new Error(`Invalid Base64-URL character "${String.fromCharCode(e)}"`)}}function J0(e){const t=[],n=o=>{t.push(String.fromCodePoint(o))},s={utf8seq:0,codepoint:0},r={queue:0,queuedBits:0},i=o=>{DA(o,s,n)};for(let o=0;o<e.length;o+=1)m2(e.charCodeAt(o),r,i);return t.join("")}function LA(e,t){if(e<=127){t(e);return}else if(e<=2047){t(192|e>>6),t(128|e&63);return}else if(e<=65535){t(224|e>>12),t(128|e>>6&63),t(128|e&63);return}else if(e<=1114111){t(240|e>>18),t(128|e>>12&63),t(128|e>>6&63),t(128|e&63);return}throw new Error(`Unrecognized Unicode codepoint: ${e.toString(16)}`)}function MA(e,t){for(let n=0;n<e.length;n+=1){let s=e.charCodeAt(n);if(s>55295&&s<=56319){const r=(s-55296)*1024&65535;s=(e.charCodeAt(n+1)-56320&65535|r)+65536,n+=1}LA(s,t)}}function DA(e,t,n){if(t.utf8seq===0){if(e<=127){n(e);return}for(let s=1;s<6;s+=1)if(!(e>>7-s&1)){t.utf8seq=s;break}if(t.utf8seq===2)t.codepoint=e&31;else if(t.utf8seq===3)t.codepoint=e&15;else if(t.utf8seq===4)t.codepoint=e&7;else throw new Error("Invalid UTF-8 sequence");t.utf8seq-=1}else if(t.utf8seq>0){if(e<=127)throw new Error("Invalid UTF-8 sequence");t.codepoint=t.codepoint<<6|e&63,t.utf8seq-=1,t.utf8seq===0&&n(t.codepoint)}}function gr(e){const t=[],n={queue:0,queuedBits:0},s=r=>{t.push(r)};for(let r=0;r<e.length;r+=1)m2(e.charCodeAt(r),n,s);return new Uint8Array(t)}function UA(e){const t=[];return MA(e,n=>t.push(n)),new Uint8Array(t)}function oa(e){const t=[],n={queue:0,queuedBits:0},s=r=>{t.push(r)};return e.forEach(r=>K0(r,n,s)),K0(null,n,s),t.join("")}function FA(e){return Math.round(Date.now()/1e3)+e}function BA(){return Symbol("auth-callback")}const Be=()=>typeof window<"u"&&typeof document<"u",Vs={tested:!1,writable:!1},g2=()=>{if(!Be())return!1;try{if(typeof globalThis.localStorage!="object")return!1}catch{return!1}if(Vs.tested)return Vs.writable;const e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e),globalThis.localStorage.removeItem(e),Vs.tested=!0,Vs.writable=!0}catch{Vs.tested=!0,Vs.writable=!1}return Vs.writable};function qA(e){const t={},n=new URL(e);if(n.hash&&n.hash[0]==="#")try{new URLSearchParams(n.hash.substring(1)).forEach((r,i)=>{t[i]=r})}catch{}return n.searchParams.forEach((s,r)=>{t[r]=s}),t}const b2=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),VA=e=>typeof e=="object"&&e!==null&&"status"in e&&"ok"in e&&"json"in e&&typeof e.json=="function",Ha=async(e,t,n)=>{await e.setItem(t,JSON.stringify(n))},Hs=async(e,t)=>{const n=await e.getItem(t);if(!n)return null;try{return JSON.parse(n)}catch{return n}},Fe=async(e,t)=>{await e.removeItem(t)};class Hc{constructor(){this.promise=new Hc.promiseConstructor((t,n)=>{this.resolve=t,this.reject=n})}}Hc.promiseConstructor=Promise;function sl(e){const t=e.split(".");if(t.length!==3)throw new yf("Invalid JWT structure");for(let s=0;s<t.length;s++)if(!TA.test(t[s]))throw new yf("JWT not in base64url format");return{header:JSON.parse(J0(t[0])),payload:JSON.parse(J0(t[1])),signature:gr(t[2]),raw:{header:t[0],payload:t[1]}}}async function HA(e){return await new Promise(t=>{setTimeout(()=>t(null),e)})}function WA(e,t){return new Promise((s,r)=>{(async()=>{for(let i=0;i<1/0;i++)try{const o=await e(i);if(!t(i,null,o)){s(o);return}}catch(o){if(!t(i,o)){r(o);return}}})()})}function ZA(e){return("0"+e.toString(16)).substr(-2)}function GA(){const t=new Uint32Array(56);if(typeof crypto>"u"){const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",s=n.length;let r="";for(let i=0;i<56;i++)r+=n.charAt(Math.floor(Math.random()*s));return r}return crypto.getRandomValues(t),Array.from(t,ZA).join("")}async function KA(e){const n=new TextEncoder().encode(e),s=await crypto.subtle.digest("SHA-256",
435n),r=new Uint8Array(s);return Array.from(r).map(i=>String.fromCharCode(i)).join("")}async function JA(e){if(!(typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof TextEncoder<"u"))return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),e;const n=await KA(e);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Ma(e,t,n=!1){const s=GA();let r=s;n&&(r+="/recovery"),await Ha(e,`${t}-code-verifier`,r);const i=await JA(s);return[i,s===i?"plain":"s256"]}const YA=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function QA(e){const t=e.headers.get(xf);if(!t||!t.match(YA))return null;try{return new Date(`${t}T00:00:00.0Z`)}catch{return null}}function XA(e){if(!e)throw new Error("Missing exp claim");const t=Math.floor(Date.now()/1e3);if(e<=t)throw new Error("JWT has expired")}function eR(e){switch(e){case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"ES256":return{name:"ECDSA",namedCurve:"P-256",hash:{name:"SHA-256"}};default:throw new Error("Invalid alg claim")}}const tR=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function Da(e){if(!tR.test(e))throw new Error("@supabase/auth-js: Expected parameter to be UUID but is not")}function qd(){const e={};return new Proxy(e,{get:(t,n)=>{if(n==="__isUserNotAvailableProxy")return!0;if(typeof n=="symbol"){const s=n.toString();if(s==="Symbol(Symbol.toPrimitive)"||s==="Symbol(Symbol.toStringTag)"||s==="Symbol(util.inspect.custom)")return}throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${n}" property of the session object is not supported. Please use getUser() instead.`)},set:(t,n)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${n}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)},deleteProperty:(t,n)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${n}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)}})}function nR(e,t){return new Proxy(e,{get:(n,s,r)=>{if(s==="__isInsecureUserWarningProxy")return!0;if(typeof s=="symbol"){const i=s.toString();if(i==="Symbol(Symbol.toPrimitive)"||i==="Symbol(Symbol.toStringTag)"||i==="Symbol(util.inspect.custom)"||i==="Symbol(nodejs.util.inspect.custom)")return Reflect.get(n,s,r)}return!t.value&&typeof s=="string"&&(console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."),t.value=!0),Reflect.get(n,s,r)}})}function Y0(e){return JSON.parse(JSON.stringify(e))}const ea=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),sR=[502,503,504,520,521,522,523,524,530];async function Q0(e){var t;if(!VA(e))throw new vf(ea(e),0);if(sR.includes(e.status))throw new vf(ea(e),e.status);let n;try{n=await e.json()}catch(i){throw new na(ea(i),i)}let s;const r=QA(e);if(r&&r.getTime()>=h2["2024-01-01"].timestamp&&typeof n=="object"&&n&&typeof n.code=="string"?s=n.code:typeof n=="object"&&n&&typeof n.error_code=="string"&&(s=n.error_code),s){if(s==="weak_password")throw new Z0(ea(n),e.status,((t=n.weak_password)===null||t===void 0?void 0:t.reasons)||[]);if(s==="session_not_found")throw new gt}else if(typeof n=="object"&&n&&typeof n.weak_password=="object"&&n.weak_password&&Array.isArray(n.weak_password.reasons)&&n.weak_password.reasons.length&&n.weak_password.reasons.reduce((i,o)=>i&&typeof o=="string",!0))throw new Z0(ea(n),e.status,n.weak_password.reasons);throw new RA(ea(n),e.status||500,s)}const aR=(e,t,n,s)=>{const r={method:e,headers:(t==null?void 0:t.headers)||{}};return e==="GET"?r:(r.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},t==null?void 0:t.headers),r.body=JSON.stringify(s),Object.assign(Object.assign({},r),n))};async function B(e,t,n,s){var r;const i=Object.assign({},s==null?void 0:s.headers);i[xf]||(i[xf]=h2["2024-01-01"].name),s!=null&&s.jwt&&(i.Authorization=`Bearer ${s.jwt}`);const o=(r=s==null?void 0:s.query)!==null&&r!==void 0?r:{};s!=null&&s.redirectTo&&(o.redirect_to=s.redirectTo);const l=Object.keys(o).length?"?"+new URLSearchParams(o).toString():"",c=await rR(e,t,n+l,{headers:i,noResolveJson:s==null?void 0:s.noResolveJson},{},s==null?void 0:s.body);return s!=null&&s.xform?s==null?void 0:s.xform(c):{data:Object.assign({},c),error:null}}async function rR(e,t,n,s,r,i){const o=aR(t,s,r,i);let l;try{l=await e(n,Object.assign({},o))}catch(c){throw console.error(c),new vf(ea(c),0)}if(l.ok||await Q0(l),s!=null&&s.noResolveJson)return l;try{return await l.json()}catch(c){await Q0(c)}}function Wt(e){var t;let n=null;lR(e)&&(n=Object.assign({},e),e.expires_at||(n.expires_at=FA(e.expires_in)));const s=(t=e.user)!==null&&t!==void 0?t:e;return{data:{session:n,user:s},error:null}}function X0(e){const t=Wt(e);return!t.error&&e.weak_password&&typeof e.weak_password=="object"&&Array.isArray(e.weak_password.reasons)&&e.weak_password.reasons.length&&e.weak_password.message&&typeof e.weak_password.message=="string"&&e.weak_password.reasons.reduce((n,s)=>n&&typeof s=="string",!0)&&(t.data.weak_password=e.weak_password),t}function cs(e){var t;return{data:{user:(t=e.user)!==null&&t!==void 0?t:e},error:null}}function iR(e){return{data:e,error:null}}function oR(e){const{action_link:t,email_otp:n,hashed_token:s,redirect_to:r,verification_type:i}=e,o=Vc(e,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),l={action_link:t,email_otp:n,hashed_token:s,redirect_to:r,verification_type:i},c=Object.assign({},o);return{data:{properties:l,user:c},error:null}}function eg(e){return e}function lR(e){return e.access_token&&e.refresh_token&&e.expires_in}const Vd=["global","local","others"];class cR{constructor({url:t="",headers:n={},fetch:s}){this.url=t,this.headers=n,this.fetch=b2(s),this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)},this.oauth={listClients:this._listOAuthClients.bind(this),createClient:this._createOAuthClient.bind(this),getClient:this._getOAuthClient.bind(this),updateClient:this._updateOAuthClient.bind(this),deleteClient:this._deleteOAuthClient.bind(this),regenerateClientSecret:this._regenerateOAuthClientSecret.bind(this)},this.customProviders={listProviders:this._listCustomProviders.bind(this),createProvider:this._createCustomProvider.bind(this),getProvider:this._getCustomProvider.bind(this),updateProvider:this._updateCustomProvider.bind(this),deleteProvider:this._deleteCustomProvider.bind(this)}}
vendor: 4,751 bytes, line 435
435async signOut(t,n=Vd[0]){if(Vd.indexOf(n)<0)throw new Error(`@supabase/auth-js: Parameter scope must be one of ${Vd.join(", ")}`);try{return await B(this.fetch,"POST",`${this.url}/logout?scope=${n}`,{headers:this.headers,jwt:t,noResolveJson:!0}),{data:null,error:null}}catch(s){if(D(s))return{data:null,error:s};throw s}}async inviteUserByEmail(t,n={}){try{return await B(this.fetch,"POST",`${this.url}/invite`,{body:{email:t,data:n.data},headers:this.headers,redirectTo:n.redirectTo,xform:cs})}catch(s){if(D(s))return{data:{user:null},error:s};throw s}}async generateLink(t){try{const{options:n}=t,s=Vc(t,["options"]),r=Object.assign(Object.assign({},s),n);return"newEmail"in s&&(r.new_email=s==null?void 0:s.newEmail,delete r.newEmail),await B(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:r,headers:this.headers,xform:oR,redirectTo:n==null?void 0:n.redirectTo})}catch(n){if(D(n))return{data:{properties:null,user:null},error:n};throw n}}async createUser(t){try{return await B(this.fetch,"POST",`${this.url}/admin/users`,{body:t,headers:this.headers,xform:cs})}catch(n){if(D(n))return{data:{user:null},error:n};throw n}}async listUsers(t){var n,s,r,i,o,l,c;try{const d={nextPage:null,lastPage:0,total:0},u=await B(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(s=(n=t==null?void 0:t.page)===null||n===void 0?void 0:n.toString())!==null&&s!==void 0?s:"",per_page:(i=(r=t==null?void 0:t.perPage)===null||r===void 0?void 0:r.toString())!==null&&i!==void 0?i:""},xform:eg});if(u.error)throw u.error;const f=await u.json(),h=(o=u.headers.get("x-total-count"))!==null&&o!==void 0?o:0,p=(c=(l=u.headers.get("link"))===null||l===void 0?void 0:l.split(","))!==null&&c!==void 0?c:[];return p.length>0&&(p.forEach(y=>{const v=parseInt(y.split(";")[0].split("=")[1].substring(0,1)),_=JSON.parse(y.split(";")[1].split("=")[1]);d[`${_}Page`]=v}),d.total=parseInt(h)),{data:Object.assign(Object.assign({},f),d),error:null}}catch(d){if(D(d))return{data:{users:[]},error:d};throw d}}async getUserById(t){Da(t);try{return await B(this.fetch,"GET",`${this.url}/admin/users/${t}`,{headers:this.headers,xform:cs})}catch(n){if(D(n))return{data:{user:null},error:n};throw n}}async updateUserById(t,n){Da(t);try{return await B(this.fetch,"PUT",`${this.url}/admin/users/${t}`,{body:n,headers:this.headers,xform:cs})}catch(s){if(D(s))return{data:{user:null},error:s};throw s}}async deleteUser(t,n=!1){Da(t);try{return await B(this.fetch,"DELETE",`${this.url}/admin/users/${t}`,{headers:this.headers,body:{should_soft_delete:n},xform:cs})}catch(s){if(D(s))return{data:{user:null},error:s};throw s}}async _listFactors(t){Da(t.userId);try{const{data:n,error:s}=await B(this.fetch,"GET",`${this.url}/admin/users/${t.userId}/factors`,{headers:this.headers,xform:r=>({data:{factors:r},error:null})});return{data:n,error:s}}catch(n){if(D(n))return{data:null,error:n};throw n}}async _deleteFactor(t){Da(t.userId),Da(t.id);try{return{data:await B(this.fetch,"DELETE",`${this.url}/admin/users/${t.userId}/factors/${t.id}`,{headers:this.headers}),error:null}}catch(n){if(D(n))return{data:null,error:n};throw n}}async _listOAuthClients(t){var n,s,r,i,o,l,c;try{const d={nextPage:null,lastPage:0,total:0},u=await B(this.fetch,"GET",`${this.url}/admin/oauth/clients`,{headers:this.headers,noResolveJson:!0,query:{page:(s=(n=t==null?void 0:t.page)===null||n===void 0?void 0:n.toString())!==null&&s!==void 0?s:"",per_page:(i=(r=t==null?void 0:t.perPage)===null||r===void 0?void 0:r.toString())!==null&&i!==void 0?i:""},xform:eg});if(u.error)throw u.error;const f=await u.json(),h=(o=u.headers.get("x-total-count"))!==null&&o!==void 0?o:0,p=(c=(l=u.headers.get("link"))===null||l===void 0?void 0:l.split(","))!==null&&c!==void 0?c:[];return p.length>0&&(p.forEach(y=>{const v=parseInt(y.split(";")[0].split("=")[1].substring(0,1)),_=JSON.parse(y.split(";")[1].split("=")[1]);d[`${_}Page`]=v}),d.total=parseInt(h)),{data:Object.assign(Object.assign({},f),d),error:null}}catch(d){if(D(d))return{data:{clients:[]},error:d};throw d}}async _createOAuthClient(t){try{return await B(this.fetch,"POST",`${this.url}/admin/oauth/clients`,{body:t,headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(D(n))return{data:null,error:n};throw n}}async _getOAuthClient(t){try{return await B(this.fetch,"GET",`${this.url}/admin/oauth/clients/${t}`,{headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(D(n))return{data:null,error:n};throw n}}async _updateOAuthClient(t,n){try{return await B(this.fetch,"PUT",`${this.url}/admin/oauth/clients/${t}`,{body:n,headers:this.headers,xform:s=>({data:s,error:null})})}catch(s){if(D(s))return{data:null,error:s};throw s}}async _deleteOAuthClient(t){try{return await B(this.fetch,"DELET
435E",`${this.url}/admin/oauth/clients/${t}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(n){if(D(n))return{data:null,error:n};throw n}}async _regenerateOAuthClientSecret(t){try{return await B(this.fetch,"POST",`${this.url}/admin/oauth/clients/${t}/regenerate_secret`,{headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(D(n))return{data:null,error:n};throw n}}async _listCustomProviders(t){try{const n={};return t!=null&&t.type&&(n.type=t.type),await B(this.fetch,"GET",`${this.url}/admin/custom-providers`,{headers:this.headers,query:n,xform:s=>{var r;return{data:{providers:(r=s==null?void 0:s.providers)!==null&&r!==void 0?r:[]},error:null}}})}catch(n){if(D(n))return{data:{providers:[]},error:n};throw n}}async _createCustomProvider(t){try{return await B(this.fetch,"POST",`${this.url}/admin/custom-providers`,{body:t,headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(D(n))return{data:null,error:n};throw n}}async _getCustomProvider(t){try{return await B(this.fetch,"GET",`${this.url}/admin/custom-providers/${t}`,{headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(D(n))return{data:null,error:n};throw n}}async _updateCustomProvider(t,n){try{return await B(this.fetch,"PUT",`${this.url}/admin/custom-providers/${t}`,{body:n,headers:this.headers,xform:s=>({data:s,error:null})})}catch(s){if(D(s))return{data:null,error:s};throw s}}async _deleteCustomProvider(t){try{return await B(this.fetch,"DELETE",`${this.url}/admin/custom-providers/${t}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(n){if(D(n))return{data:null,error:n};throw n}}}function tg(e={}){return{getItem:t=>e[t]||null,setItem:(t,n)=>{e[t]=n},removeItem:t=>{delete e[t]}}}const ln={debug:!!(globalThis&&g2()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug")==="true")};class x2 extends Error{constructor(t){super(t),this.isAcquireTimeout=!0}}class ng extends x2{}async function dR(e,t,n){ln.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquire lock",e,t);const s=new globalThis.AbortController;let r;t>0&&(r=setTimeout(()=>{s.abort(),ln.debug&&console.log("@supabase/gotrue-js: navigatorLock acquire timed out",e)},t)),await Promise.resolve();try{return await globalThis.navigator.locks.request(e,t===0?{mode:"exclusive",ifAvailable:!0}:{mode:"exclusive",signal:s.signal},async i=>{if(i){clearTimeout(r),ln.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquired",e,i.name);try{return await n()}finally{ln.debug&&console.log("@supabase/gotrue-js: navigatorLock: released",e,i.name)}}else{if(t===0)throw ln.debug&&console.log("@supabase/gotrue-js: navigatorLock: not immediately available",e),new ng(`Acquiring an exclusive Navigator LockManager lock "${e}" immediately failed`);if(ln.debug)try{const o=await globalThis.navigator.locks.query();console.log("@supabase/gotrue-js: Navigator LockManager state",JSON.stringify(o,null,"  "))}catch(o){console.warn("@supabase/gotrue-js: Error when querying Navigator LockManager state",o)}return console.warn("@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request"),clearTimeout(r),await n()}})}catch(i){if(t>0&&clearTimeout(r),(i==null?void 0:i.name)==="AbortError"&&t>0){if(s.signal.aborted)return ln.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquire timeout, recovering by stealing lock",e),console.warn(`@supabase/gotrue-js: Lock "${e}" was not released within ${t}ms. This may indicate an orphaned lock from a component unmount (e.g., React Strict Mode). Forcefully acquiring the lock to recover.`),await Promise.resolve().then(()=>globalThis.navigator.locks.request(e,{mode:"exclusive",steal:!0},async o=>{if(o){ln.debug&&console.log("@supabase/gotrue-js: navigatorLock: recovered (stolen)",e,o.name);try{return await n()}finally{ln.debug&&console.log("@supabase/gotrue-js: navigatorLock: released (stolen)",e,o.name)}}else return console.warn("@supabase/gotrue-js: Navigator LockManager returned null lock even with steal: true"),await n()}));throw ln.debug&&console.log("@supabase/gotrue-js: navigatorLock: lock was stolen by another request",e),new ng(`Lock "${e}" was released because another request stole it`)}throw i}}function uR(){if(typeof globalThis!="object")try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<"u"&&(self.globalThis=self)}}function v2(e){if(!/^0x[a-fA-F0-9]{40}$/.test(e))throw new Error(`@supabase/auth-js: Address "${e}
435" is invalid.`);return e.toLowerCase()}function fR(e){return parseInt(e,16)}function pR(e){const t=new TextEncoder().encode(e);return"0x"+Array.from(t,s=>s.toString(16).padStart(2,"0")).join("")}function hR(e){var t;const{chainId:n,domain:s,expirationTime:r,issuedAt:i=new Date,nonce:o,notBefore:l,requestId:c,resources:d,scheme:u,uri:f,version:h}=e;{if(!Number.isInteger(n))throw new Error(`@supabase/auth-js: Invalid SIWE message field "chainId". Chain ID must be a EIP-155 chain ID. Provided value: ${n}`);if(!s)throw new Error('@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.');if(o&&o.length<8)throw new Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${o}`);if(!f)throw new Error('@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.');if(h!=="1")throw new Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${h}`);if(!((t=e.statement)===null||t===void 0)&&t.includes(`
436`))throw new Error(`@supabase/auth-js: Invalid SIWE message field "statement". Statement must not include '\\n'. Provided value: ${e.statement}`)}const p=v2(e.address),y=u?`${u}://${s}`:s,v=e.statement?`${e.statement}
437`:"",_=`${y} wants you to sign in with your Ethereum account:
438${p}
439
440${v}`;let x=`URI: ${f}
441Version: ${h}
442Chain ID: ${n}${o?`
443Nonce: ${o}`:""}
444Issued At: ${i.toISOString()}`;if(r&&(x+=`
445Expiration Time: ${r.toISOString()}`),l&&(x+=`
446Not Before: ${l.toISOString()}`),c&&(x+=`
447Request ID: ${c}`),d){let b=`
448Resources:`;for(const m of d){if(!m||typeof m!="string")throw new Error(`@supabase/auth-js: Invalid SIWE message field "resources". Every resource must be a valid string. Provided value: ${m}`);b+=`
449- ${m}`}x+=b}return`${_}
450${x}`}class Pe extends Error{constructor({message:t,code:n,cause:s,name:r}){var i;super(t,{cause:s}),this.__isWebAuthnError=!0,this.name=(i=r??(s instanceof Error?s.name:void 0))!==null&&i!==void 0?i:"Unknown Error",this.code=n}}class oc extends Pe{constructor(t,n){super({code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:n,message:t}),this.name="WebAuthnUnknownError",this.originalError=n}}function mR({error:e,options:t}){var n,s,r;const{publicKey:i}=t;if(!i)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new Pe({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(((n=i.authenticatorSelection)===null||n===void 0?void 0:n.requireResidentKey)===!0)return new Pe({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&((s=i.authenticatorSelection)===null||s===void 0?void 0:s.userVerification)==="required")return new Pe({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(((r=i.authenticatorSelection)===null||r===void 0?void 0:r.userVerification)==="required")return new Pe({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else{if(e.name==="InvalidStateError")return new Pe({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new Pe({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return i.pubKeyCredParams.filter(l=>l.type==="public-key").length===0?new Pe({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new Pe({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){const o=window.location.hostname;if(y2(o)){if(i.rp.id!==o)return new Pe({message:`The RP ID "${i.rp.id}
450" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new Pe({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(i.user.id.byteLength<1||i.user.id.byteLength>64)return new Pe({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new Pe({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return new Pe({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e})}function gR({error:e,options:t}){const{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new Pe({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else{if(e.name==="NotAllowedError")return new Pe({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){const s=window.location.hostname;if(y2(s)){if(n.rpId!==s)return new Pe({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new Pe({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new Pe({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return new Pe({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e})}class bR{createNewAbortSignal(){if(this.controller){const n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n)}const t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){const t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0}}}const xR=new bR;function vR(e){if(!e)throw new Error("Credential creation options are required");if(typeof PublicKeyCredential<"u"&&"parseCreationOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseCreationOptionsFromJSON=="function")return PublicKeyCredential.parseCreationOptionsFromJSON(e);const{challenge:t,user:n,excludeCredentials:s}=e,r=Vc(e,["challenge","user","excludeCredentials"]),i=gr(t).buffer,o=Object.assign(Object.assign({},n),{id:gr(n.id).buffer}),l=Object.assign(Object.assign({},r),{challenge:i,user:o});if(s&&s.length>0){l.excludeCredentials=new Array(s.length);for(let c=0;c<s.length;c++){const d=s[c];l.excludeCredentials[c]=Object.assign(Object.assign({},d),{id:gr(d.id).buffer,type:d.type||"public-key",transports:d.transports})}}return l}function yR(e){if(!e)throw new Error("Credential request options are required");if(typeof PublicKeyCredential<"u"&&"parseRequestOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseRequestOptionsFromJSON=="function")return PublicKeyCredential.parseRequestOptionsFromJSON(e);const{challenge:t,allowCredentials:n}=e,s=Vc(e,["challenge","allowCredentials"]),r=gr(t).buffer,i=Object.assign(Object.assign({},s),{challenge:r});if(n&&n.length>0){i.allowCredentials=new Array(n.length);for(let o=0;o<n.length;o++){const l=n[o];i.allowCredentials[o]=Object.assign(Object.assign({},l),{id:gr(l.id).buffer,type:l.type||"public-key",transports:l.transports})}}return i}function _R(e){var t;if("toJSON"in e&&typeof e.toJSON=="function")return e.toJSON();const n=e;return{id:e.id,rawId:e.id,response:{attestationObject:oa(new Uint8Array(e.response.attestationObject)),clientDataJSON:oa(new Uint8Array(e.response.clientDataJSON))},type:"public-key",clientExtensionResults:e.getClientExtensionResults(),authenticatorAttachment:(t=n.authenticatorAttachment)!==null&&t!==void 0?t:void 0}}function wR(e){var t;if("toJSON"in e&&typeof e.toJSON=="function")return e.toJSON();const n=e,s=e.getClientExtensionResults(),r=e.response;return{id:e.id,rawId:e.id,response:{authenticatorData:oa(new Uint8Array(r.authenticatorData)),clientDataJSON:oa(new Uint8Array(r.clientDataJSON)),signature:oa(new Uint8Array(r.signature)),userHandle:r.userHandle?oa(new Uint8Array(r.userHandle)):void 0},type:"public-key",clientExtensionResults:s,authenticatorAttachment:(t=n.authenticatorAttachment)!==null&&t!==void 0?t:void 0}}function y2(e){return e==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(e)}function sg(){var e,t;return!!(Be()&&"PublicKeyCredential"in window&&window.PublicKeyCredential&&"credentials"in navigator&&typeof((e=navigator==null?void 0:navigator.credentials)===null||e===void 0?void 0:e.create)=="function"&&typeof((t=navigator==null?void 0:navigator.credentials)===null||t===void 0?void 0:t.get)=="function")}async function jR(e){try{const t=await navigator.credentials.create(e);return t?t instanceof PublicKeyCredential?{data:t,error:null}:{data:null,error:new oc("Browser returned unexpected credential type",t)}:{data:null,error:new oc("Empty credential response",t)}}
450catch(t){return{data:null,error:mR({error:t,options:e})}}}async function kR(e){try{const t=await navigator.credentials.get(e);return t?t instanceof PublicKeyCredential?{data:t,error:null}:{data:null,error:new oc("Browser returned unexpected credential type",t)}:{data:null,error:new oc("Empty credential response",t)}}catch(t){return{data:null,error:gR({error:t,options:e})}}}const NR={hints:["security-key"],authenticatorSelection:{authenticatorAttachment:"cross-platform",requireResidentKey:!1,userVerification:"preferred",residentKey:"discouraged"},attestation:"direct"},$R={userVerification:"preferred",hints:["security-key"],attestation:"direct"};function lc(...e){const t=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),n=r=>r instanceof ArrayBuffer||ArrayBuffer.isView(r),s={};for(const r of e)if(r)for(const i in r){const o=r[i];if(o!==void 0)if(Array.isArray(o))s[i]=o;else if(n(o))s[i]=o;else if(t(o)){const l=s[i];t(l)?s[i]=lc(l,o):s[i]=lc(o)}else s[i]=o}return s}function SR(e,t){return lc(NR,e,t||{})}function ER(e,t){return lc($R,e,t||{})}class CR{constructor(t){this.client=t,this.enroll=this._enroll.bind(this),this.challenge=this._challenge.bind(this),this.verify=this._verify.bind(this),this.authenticate=this._authenticate.bind(this),this.register=this._register.bind(this)}async _enroll(t){return this.client.mfa.enroll(Object.assign(Object.assign({},t),{factorType:"webauthn"}))}async _challenge({factorId:t,webauthn:n,friendlyName:s,signal:r},i){var o;try{const{data:l,error:c}=await this.client.mfa.challenge({factorId:t,webauthn:n});if(!l)return{data:null,error:c};const d=r??xR.createNewAbortSignal();if(l.webauthn.type==="create"){const{user:u}=l.webauthn.credential_options.publicKey;if(!u.name){const f=s;if(f)u.name=`${u.id}:${f}`;else{const p=(await this.client.getUser()).data.user,y=((o=p==null?void 0:p.user_metadata)===null||o===void 0?void 0:o.name)||(p==null?void 0:p.email)||(p==null?void 0:p.id)||"User";u.name=`${u.id}:${y}`}}u.displayName||(u.displayName=u.name)}switch(l.webauthn.type){case"create":{const u=SR(l.webauthn.credential_options.publicKey,i==null?void 0:i.create),{data:f,error:h}=await jR({publicKey:u,signal:d});return f?{data:{factorId:t,challengeId:l.id,webauthn:{type:l.webauthn.type,credential_response:f}},error:null}:{data:null,error:h}}case"request":{const u=ER(l.webauthn.credential_options.publicKey,i==null?void 0:i.request),{data:f,error:h}=await kR(Object.assign(Object.assign({},l.webauthn.credential_options),{publicKey:u,signal:d}));return f?{data:{factorId:t,challengeId:l.id,webauthn:{type:l.webauthn.type,credential_response:f}},error:null}:{data:null,error:h}}}}catch(l){return D(l)?{data:null,error:l}:{data:null,error:new na("Unexpected error in challenge",l)}}}async _verify({challengeId:t,factorId:n,webauthn:s}){return this.client.mfa.verify({factorId:n,challengeId:t,webauthn:s})}async _authenticate({factorId:t,webauthn:{rpId:n=typeof window<"u"?window.location.hostname:void 0,rpOrigins:s=typeof window<"u"?[window.location.origin]:void 0,signal:r}={}},i){if(!n)return{data:null,error:new so("rpId is required for WebAuthn authentication")};try{if(!sg())return{data:null,error:new na("Browser does not support WebAuthn",null)};const{data:o,error:l}=await this.challenge({factorId:t,webauthn:{rpId:n,rpOrigins:s},signal:r},{request:i});if(!o)return{data:null,error:l};const{webauthn:c}=o;return this._verify({factorId:t,challengeId:o.challengeId,webauthn:{type:c.type,rpId:n,rpOrigins:s,credential_response:c.credential_response}})}catch(o){return D(o)?{data:null,error:o}:{data:null,error:new na("Unexpected error in authenticate",o)}}}async _register({friendlyName:t,webauthn:{rpId:n=typeof window<"u"?window.location.hostname:void 0,rpOrigins:s=typeof window<"u"?[window.location.origin]:void 0,signal:r}={}},i){if(!n)return{data:null,error:new so("rpId is required for WebAuthn registration")};try{if(!sg())return{data:null,error:new na("Browser does not support WebAuthn",null)};const{data:o,error:l}=await this._enroll({friendlyName:t});if(!o)return await this.client.mfa.listFactors().then(u=>{var f;return(f=u.data)===null||f===void 0?void 0:f.all.find(h=>h.factor_type==="webauthn"&&h.friendly_name===t&&h.status!=="unverified")}).then(u=>u?this.client.mfa.unenroll({factorId:u==null?void 0:u.id}):void 0),{data:null,error:l};const{data:c,error:d}=await this._challenge({factorId:o.id,friendlyName:o.friendly_name,webauthn:{rpId:n,rpOrigins:s},signal:r},{create:i});return c?this._verify({factorId:o.id,challengeId:c.challengeId,webauthn:{rpId:n,rpOrigins:s,type:c.webauthn.type,credential_response:c.webauthn.credential_response}}):{data:null,error:d}}catch(o){return D(o)?{data:null,error:o}:{data:null,error:new na("Unexpected error in register",o)}}}}uR();const TR={url:SA,storageKey:EA,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:CA,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1,throwOnError:!1,lockAcquireTimeout:5e3,skipAutoInitialize:!1};async function ag(e,t,n){return await n()}const Ua={};class ao{get jwks(){var t,n;return(n=(t=Ua[this.storageKey])===null||t===void 0?void 0:t.jwks)!==null&&n!==void 0?n:{keys:[]}}set jwks(t){Ua[this.storageKey]=Object.assign(Object.assign({},Ua[this.storageKey]),{jwks:t})}get jwks_cached_at(){var t,n;return(n=(t=Ua[this.storageKey])===null||t===void 0?void 0:t.cachedAt)!==null&&n!==void 0?n:Number.MIN_SAFE_INTEGER}set jwks_cached_at(t){Ua[this.storageKey]=Object.assign(Object.assign({},Ua[this.storageKey]),{cachedAt:t})}constructor(t){var n,s,r;this.userStorage=null,this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.autoRefreshTickTimeout=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log;const i=Object.assign(Object.assign({},TR),t);
450if(this.storageKey=i.storageKey,this.instanceID=(n=ao.nextInstanceID[this.storageKey])!==null&&n!==void 0?n:0,ao.nextInstanceID[this.storageKey]=this.instanceID+1,this.logDebugMessages=!!i.debug,typeof i.debug=="function"&&(this.logger=i.debug),this.instanceID>0&&Be()){const o=`${this._logPrefix()} Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`;console.warn(o),this.logDebugMessages&&console.trace(o)}if(this.persistSession=i.persistSession,this.autoRefreshToken=i.autoRefreshToken,this.admin=new cR({url:i.url,headers:i.headers,fetch:i.fetch}),this.url=i.url,this.headers=i.headers,this.fetch=b2(i.fetch),this.lock=i.lock||ag,this.detectSessionInUrl=i.detectSessionInUrl,this.flowType=i.flowType,this.hasCustomAuthorizationHeader=i.hasCustomAuthorizationHeader,this.throwOnError=i.throwOnError,this.lockAcquireTimeout=i.lockAcquireTimeout,i.lock?this.lock=i.lock:this.persistSession&&Be()&&(!((s=globalThis==null?void 0:globalThis.navigator)===null||s===void 0)&&s.locks)?this.lock=dR:this.lock=ag,this.jwks||(this.jwks={keys:[]},this.jwks_cached_at=Number.MIN_SAFE_INTEGER),this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this),webauthn:new CR(this)},this.oauth={getAuthorizationDetails:this._getAuthorizationDetails.bind(this),approveAuthorization:this._approveAuthorization.bind(this),denyAuthorization:this._denyAuthorization.bind(this),listGrants:this._listOAuthGrants.bind(this),revokeGrant:this._revokeOAuthGrant.bind(this)},this.persistSession?(i.storage?this.storage=i.storage:g2()?this.storage=globalThis.localStorage:(this.memoryStorage={},this.storage=tg(this.memoryStorage)),i.userStorage&&(this.userStorage=i.userStorage)):(this.memoryStorage={},this.storage=tg(this.memoryStorage)),Be()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(o){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",o)}(r=this.broadcastChannel)===null||r===void 0||r.addEventListener("message",async o=>{this._debug("received broadcast notification from other tab or client",o);try{await this._notifyAllSubscribers(o.data.event,o.data.session,!1)}catch(l){this._debug("#broadcastChannel","error",l)}})}i.skipAutoInitialize||this.initialize().catch(o=>{this._debug("#initialize()","error",o)})}isThrowOnErrorEnabled(){return this.throwOnError}_returnResult(t){if(this.throwOnError&&t&&t.error)throw t.error;return t}_logPrefix(){return`GoTrueClient@${this.storageKey}:${this.instanceID} (${p2}) ${new Date().toISOString()}`}_debug(...t){return this.logDebugMessages&&this.logger(this._logPrefix(),...t),this}async initialize(){return this.initializePromise?await this.initializePromise:(this.initializePromise=(async()=>await this._acquireLock(this.lockAcquireTimeout,async()=>await this._initialize()))(),await this.initializePromise)}async _initialize(){var t;try{let n={},s="none";if(Be()&&(n=qA(window.location.href),this._isImplicitGrantCallback(n)?s="implicit":await this._isPKCECallback(n)&&(s="pkce")),Be()&&this.detectSessionInUrl&&s!=="none"){const{data:r,error:i}=await this._getSessionFromURL(n,s);if(i){if(this._debug("#_initialize()","error detecting session from URL",i),OA(i)){const c=(t=i.details)===null||t===void 0?void 0:t.code;if(c==="identity_already_exists"||c==="identity_not_found"||c==="single_identity_not_deletable")return{error:i}}return{error:i}}const{session:o,redirectType:l}=r;return this._debug("#_initialize()","detected session in URL",o,"redirect type",l),await this._saveSession(o),setTimeout(async()=>{l==="recovery"?await this._notifyAllSubscribers("PASSWORD_RECOVERY",o):await this._notifyAllSubscribers("SIGNED_IN",o)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(n){return D(n)?this._returnResult({error:n}):this._returnResult({error:new na("Unexpected error during initialization",n)})}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(t){var n,s,r;try{const i=await B(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:(s=(n=t==null?void 0:t.options)===null||n===void 0?void 0:n.data)!==null&&s!==void 0?s:{},gotrue_meta_security:{captcha_token:(r=t==null?void 0:t.options)===null||r===void 0?void 0:r.captchaToken}},xform:Wt}),{data:o,error:l}=i;if(l||!o)return this._returnResult({data:{user:null,session:null},error:l});const c=o.session,d=o.user;return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",c)),this._returnResult({data:{user:d,session:c},error:null})}catch(i){if(D(i))return this._returnResult({data:{user:null,session:null},error:i});throw i}}async signUp(t){var n,s,r;try{let i;if("email"in t){const{email:u,password:f,options:h}=t;let p=null,y=null;this.flowType==="pkce"&&([p,y]=await Ma(this.storage,this.storageKey)),i=await B(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:h==null?void 0:h.emailRedirectTo,body:{email:u,password:f,data:(n=h==null?void 0:h.data)!==null&&n!==void 0?n:{},gotrue_meta_security:{captcha_token:h==null?void 0:h.captchaToken},code_challenge:p,code_challenge_method:y},xform:Wt})}else if("phone"in t){const{phone:u,password:f,options:h}=t;i=await B(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:u,password:f,data:(s=h==null?void 0:h.data)!==null&&s!==void 0?s:{},channel:(r=h==null?void 0:h.channel)!==null&&r!==void 0?r:"sms",gotrue_meta_security:{captcha_token:h==null?void 0:h.captchaToken}},xform:Wt})}else throw new tl("You must provide either an email or phone number and a password");const{data:o,error:l}=i;if(l||!o)return await Fe(this.storage,`${this.storageKey}-code-verifier`),this._returnResult({data:{user:null,session:null},error:l});const c=o.session,d=o.user;return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",c)),this._returnResult({data:{user:d,session:c},error:null})}catch(i){if(await Fe(this.storage,`${this.storageKey}-code-verifier`),D(i))return this._returnResult({data:{user:null,session:null},error:i});throw i}}async signInWithPassword(t){try{let n;if("email"in t){const{email:i,password:o,options:l}=t;n=await B(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:i,password:o,gotrue_meta_security:{captcha_token:l==null?void 0:l.captchaToken}},xform:X0})}else if("phone"in t){const{phone:i,password:o,options:l}=t;n=await B(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:i,password:o,gotrue_meta_security:{captcha_token:l==null?void 0:l.captchaToken}},xform:X0})}else throw new tl("You must provide either an email or phone number and a password");const{data:s,error:r}=n;if(r)return this._returnResult({data:{user:null,session:null},error:r});if(!s||!s.session||!s.user){const i=new La;return this._returnResult({data:{user:null,session:null},error:i})}return s.session&&(await this._saveSession(s.session),await this._notifyAllSubscribers("SIGNED_IN",s.session)),this._returnResult({data:Object.assign({user:s.user,session:s.session},s.weak_password?{weakPassword:s.weak_password}:null),error:r})}catch(n){if(D(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async signInWithOAuth(t){var n,s,r,i;return await this._handleProviderSignIn(t.provider,{redirectTo:(n=t.options)===null||n===void 0?void 0:n.redirectTo,scopes:(s=t.options)===null||s===void 0?void 0:s.scopes,queryParams:(r=t.options)===null||r===void 0?void 0:r.queryParams,skipBrowserRedirect:(i=t.options)===null||i===void 0?void 0:i.skipBrowserRedirect})}async exchangeCodeForSession(t){return await this.initializePromise,this._acquireLock(this.lockAcquireTimeout,async()=>this._exchangeCodeForSession(t))}async signInWithWeb3(t){const{chain:n}=t;switch(n){case"ethereum":return await this.signInWithEthereum(t);case"solana":return await this.signInWithSolana(t);default:throw new Error(`@supabase/auth-js: Unsupported chain "${n}"`)}}async signInWithEthereum(t){var n,s,r,i,o,l,c,d,u,f,h;let p,y;if("message"in t)p=t.message,y=t.signature;else{const{chain:v,wallet:_,statement:x,options:b}=t;let m;if(Be())if(typeof _=="object")m=_;else{const R=window;if("ethereum"in R&&typeof R.ethereum=="object"&&"request"in R.ethereum&&typeof R.ethereum.request=="function")m=R.ethereum;else throw new Error("@supabase/auth-js: No compatible Ethereum wallet interface on the window object (window.ethereum) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'ethereum', wallet: resolvedUserWallet }) instead.")}else{if(typeof _!="object"||!(b!=null&&b.url))throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");m=_}const w=new URL((n=b==null?void 0:b.url)!==null&&n!==void 0?n:window.location.href),j=await m.request({method:"eth_requestAccounts"}).then(R=>R).catch(()=>{throw new Error("@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid")});if(!j||j.length===0)throw new Error("@supabase/auth-js: No accounts available. Please ensure the wallet is connected.");const k=v2(j[0]);let N=(s=b==null?void 0:b.signInWithEthereum)===null||s===void 0?void 0:s.chainId;if(!N){const R=await m.request({method:"eth_chainId"});N=fR(R)}const C={domain:w.host,address:k,statement:x,uri:w.href,version:"1",chainId:N,nonce:(r=b==null?void 0:b.signInWithEthereum)===null||r===void 0?void 0:r.nonce,issuedAt:(o=(i=b==null?void 0:b.signInWithEthereum)===null||i===void 0?void 0:i.issuedAt)!==null&&o!==void 0?o:new Date,expirationTime:(l=b==null?void 0:b.signInWithEthereum)===null||l===void 0?void 0:l.expirationTime,notBefore:(c=b==null?void 0:b.signInWithEthereum)===null||c===void 0?void 0:c.notBefore,requestId:(d=b==null?void 0:b.signInWithEthereum)===null||d===void 0?void 0:d.requestId,resources:(u=b==null?void 0:b.signInWithEthereum)===null||u===void 0?void 0:u.resources};p=hR(C),y=await m.request({method:"personal_sign",params:[pR(p),k]})}try{const{data:v,error:_}=await B(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"ethereum",message:p,signature:y},!((f=t.options)===null||f===void 0)&&f.captchaToken?{gotrue_meta_security:{captcha_token:(h=t.options)===null||h===void 0?void 0:h.captchaToken}}:null),xform:Wt});if(_)throw _;if(!v||!v.session||!v.user){const x=new La;return this._returnResult({data:{user:null,session:null},error:x})}return v.session&&(await this._saveSession(v.session),await this._notifyAllSubscribers("SIGNED_IN",v.session)),this._returnResult({data:Object.assign({},v),error:_})}catch(v){if(D(v))return this._returnResult({data:{user:null,session:null},error:v});throw v}}async signInWithSolana(t){var n,s,r,i,o,l,c,d,u,f,h,p;let y,v;if("message"in t)y=t.message,v=t.signature;else{const{chain:_,wallet:x,statement:b,options:m}=t;let w;if(Be())if(typeof x=="object")w=x;
450else{const k=window;if("solana"in k&&typeof k.solana=="object"&&("signIn"in k.solana&&typeof k.solana.signIn=="function"||"signMessage"in k.solana&&typeof k.solana.signMessage=="function"))w=k.solana;else throw new Error("@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.")}else{if(typeof x!="object"||!(m!=null&&m.url))throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");w=x}const j=new URL((n=m==null?void 0:m.url)!==null&&n!==void 0?n:window.location.href);if("signIn"in w&&w.signIn){const k=await w.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},m==null?void 0:m.signInWithSolana),{version:"1",domain:j.host,uri:j.href}),b?{statement:b}:null));let N;if(Array.isArray(k)&&k[0]&&typeof k[0]=="object")N=k[0];else if(k&&typeof k=="object"&&"signedMessage"in k&&"signature"in k)N=k;else throw new Error("@supabase/auth-js: Wallet method signIn() returned unrecognized value");if("signedMessage"in N&&"signature"in N&&(typeof N.signedMessage=="string"||N.signedMessage instanceof Uint8Array)&&N.signature instanceof Uint8Array)y=typeof N.signedMessage=="string"?N.signedMessage:new TextDecoder().decode(N.signedMessage),v=N.signature;else throw new Error("@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields")}else{if(!("signMessage"in w)||typeof w.signMessage!="function"||!("publicKey"in w)||typeof w!="object"||!w.publicKey||!("toBase58"in w.publicKey)||typeof w.publicKey.toBase58!="function")throw new Error("@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API");y=[`${j.host} wants you to sign in with your Solana account:`,w.publicKey.toBase58(),...b?["",b,""]:[""],"Version: 1",`URI: ${j.href}`,`Issued At: ${(r=(s=m==null?void 0:m.signInWithSolana)===null||s===void 0?void 0:s.issuedAt)!==null&&r!==void 0?r:new Date().toISOString()}`,...!((i=m==null?void 0:m.signInWithSolana)===null||i===void 0)&&i.notBefore?[`Not Before: ${m.signInWithSolana.notBefore}`]:[],...!((o=m==null?void 0:m.signInWithSolana)===null||o===void 0)&&o.expirationTime?[`Expiration Time: ${m.signInWithSolana.expirationTime}`]:[],...!((l=m==null?void 0:m.signInWithSolana)===null||l===void 0)&&l.chainId?[`Chain ID: ${m.signInWithSolana.chainId}`]:[],...!((c=m==null?void 0:m.signInWithSolana)===null||c===void 0)&&c.nonce?[`Nonce: ${m.signInWithSolana.nonce}`]:[],...!((d=m==null?void 0:m.signInWithSolana)===null||d===void 0)&&d.requestId?[`Request ID: ${m.signInWithSolana.requestId}`]:[],...!((f=(u=m==null?void 0:m.signInWithSolana)===null||u===void 0?void 0:u.resources)===null||f===void 0)&&f.length?["Resources",...m.signInWithSolana.resources.map(N=>`- ${N}`)]:[]].join(`
451`);const k=await w.signMessage(new TextEncoder().encode(y),"utf8");if(!k||!(k instanceof Uint8Array))throw new Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value");v=k}}try{const{data:_,error:x}=await B(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"solana",message:y,signature:oa(v)},!((h=t.options)===null||h===void 0)&&h.captchaToken?{gotrue_meta_security:{captcha_token:(p=t.options)===null||p===void 0?void 0:p.captchaToken}}:null),xform:Wt});if(x)throw x;if(!_||!_.session||!_.user){const b=new La;return this._returnResult({data:{user:null,session:null},error:b})}return _.session&&(await this._saveSession(_.session),await this._notifyAllSubscribers("SIGNED_IN",_.session)),this._returnResult({data:Object.assign({},_),error:x})}catch(_){if(D(_))return this._returnResult({data:{user:null,session:null},error:_});throw _}}async _exchangeCodeForSession(t){const n=await Hs(this.storage,`${this.storageKey}-code-verifier`),[s,r]=(n??"").split("/");try{if(!s&&this.flowType==="pkce")throw new zA;const{data:i,error:o}=await B(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:t,code_verifier:s},xform:Wt});if(await Fe(this.storage,`${this.storageKey}-code-verifier`),o)throw o;if(!i||!i.session||!i.user){const l=new La;return this._returnResult({data:{user:null,session:null,redirectType:null},error:l})}return i.session&&(await this._saveSession(i.session),await this._notifyAllSubscribers(r==="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",i.session)),this._returnResult({data:Object.assign(Object.assign({},i),{redirectType:r??null}),error:o})}catch(i){if(await Fe(this.storage,`${this.storageKey}-code-verifier`),D(i))return this._returnResult({data:{user:null,session:null,redirectType:null},error:i});throw i}}async signInWithIdToken(t){try{const{options:n,provider:s,token:r,access_token:i,nonce:o}=t,l=await B(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:s,id_token:r,access_token:i,nonce:o,gotrue_meta_security:{captcha_token:n==null?void 0:n.captchaToken}},xform:Wt}),{data:c,error:d}=l;if(d)return this._returnResult({data:{user:null,session:null},error:d});if(!c||!c.session||!c.user){const u=new La;return this._returnResult({data:{user:null,session:null},error:u})}return c.session&&(await this._saveSession(c.session),await this._notifyAllSubscribers("SIGNED_IN",c.session)),this._returnResult({data:c,error:d})}catch(n){if(D(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async signInWithOtp(t){var n,s,r,i,o;try{if("email"in t){const{email:l,options:c}=t;let d=null,u=null;this.flowType==="pkce"&&([d,u]=await Ma(this.storage,this.storageKey));const{error:f}=await B(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:l,data:(n=c==null?void 0:c.data)!==null&&n!==void 0?n:{},create_user:(s=c==null?void 0:c.shouldCreateUser)!==null&&s!==void 0?s:!0,gotrue_meta_security:{captcha_token:c==null?void 0:c.captchaToken},code_challenge:d,code_challenge_method:u},redirectTo:c==null?void 0:c.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:f})}if("phone"in t){const{phone:l,options:c}=t,{data:d,error:u}=await B(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:l,data:(r=c==null?void 0:c.data)!==null&&r!==void 0?r:{},create_user:(i=c==null?void 0:c.shouldCreateUser)!==null&&i!==void 0?i:!0,gotrue_meta_security:{captcha_token:c==null?void 0:c.captchaToken},channel:(o=c==null?void 0:c.channel)!==null&&o!==void 0?o:"sms"}});return this._returnResult({data:{user:null,session:null,messageId:d==null?void 0:d.message_id},error:u})}throw new tl("You must provide either an email or phone number.")}catch(l){if(await Fe(this.storage,`${this.storageKey}-code-verifier`),D(l))return this._returnResult({data:{user:null,session:null},error:l});throw l}}async verifyOtp(t){var n,s;try{let r,i;"options"in t&&(r=(n=t.options)===null||n===void 0?void 0:n.redirectTo,i=(s=t.options)===null||s===void 0?void 0:s.captchaToken);const{data:o,error:l}=await B(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},t),{gotrue_meta_security:{captcha_token:i}}),redirectTo:r,xform:Wt});if(l)throw l;if(!o)throw new Error("An error occurred on token verification.");const c=o.session,d=o.user;return c!=null&&c.access_token&&(await this._saveSession(c),await this._notifyAllSubscribers(t.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",c)),this._returnResult({data:{user:d,session:c},error:null})}catch(r){if(D(r))return this._returnResult({data:{user:null,session:null},error:r});throw r}}async signInWithSSO(t){var n,s,r,i,o;try{let l=null,c=null;this.flowType==="pkce"&&([l,c]=await Ma(this.storage,this.storageKey));const d=await B(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in t?{provider_id:t.providerId}:null),"domain"in t?{domain:t.domain}:null),{redirect_to:(s=(n=t.options)===null||n===void 0?void 0:n.redirectTo)!==null&&s!==void 0?s:void 0}),!((r=t==null?void 0:t.options)===null||r===void 0)&&r.captchaToken?{gotrue_meta_security:{captcha_token:t.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:l,code_challenge_method:c}),headers:this.headers,xform:iR});return!((i=d.data)===null||i===void 0)&&i.url&&Be()&&!(!((o=t.options)===null||o===void 0)&&o.skipBrowserRedirect)&&window.location.assign(d.data.url),this._returnResult(d)}catch(l){if(await Fe(this.storage,`${this.storageKey}-code-verifier`),D(l))return this._returnResult({data:null,error:l});throw l}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async t=>{const{data:{session:n},error:s}=t;if(s)throw s;if(!n)throw new gt;const{error:r}=await B(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:n.access_token});return this._returnResult({data:{user:null,session:null},error:r})})}catch(t){if(D(t))return this._returnResult({data:{user:null,session:null},error:t});throw t}}async resend(t){try{const n=`${this.url}/resend`;if("email"in t){const{email:s,type:r,options:i}=t,{error:o}=await B(this.fetch,"POST",n,{headers:this.headers,body:{email:s,type:r,gotrue_meta_security:{captcha_token:i==null?void 0:i.captchaToken}},redirectTo:i==null?void 0:i.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:o})}else if("phone"in t){const{phone:s,type:r,options:i}=t,{data:o,error:l}=await B(this.fetch,"POST",n,{headers:this.headers,body:{phone:s,type:r,gotrue_meta_security:{captcha_token:i==null?void 0:i.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:o==null?void 0:o.message_id},error:l})}throw new tl("You must provide either an email or phone number and a type")}catch(n){if(D(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async getSession(){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>this._useSession(async n=>n))}async _acquireLock(t,n){this._debug("#_acquireLock","begin",t);try{if(this.lockAcquired){const s=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),r=(async()=>(await s,await n()))();return this.pendingInLock.push((async()=>{try{await r}catch{}})()),r}return await this.lock(`lock:${this.storageKey}`,t,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;const s=n();for(this.pendingInLock.push((async()=>{try{await s}catch{}})()),await s;this.pendingInLock.length;){const r=[...this.pendingInLock];await Promise.all(r),this.pendingInLock.splice(0,r.length)}return await s}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(t){this._debug("#_useSession","begin");try{const n=await this.__loadSession();return await t(n)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin"),this.lockAcquired||this._debug("#__loadSession()","used outside of an acquired lock!",new Error().stack);try{let t=null;const n=await Hs(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",n),n!==null&&(this._isValidSession(n)?t=n:(this._debug("#getSession()","session from storage is not val
451id"),await this._removeSession())),!t)return{data:{session:null},error:null};const s=t.expires_at?t.expires_at*1e3-Date.now()<Fd:!1;if(this._debug("#__loadSession()",`session has${s?"":" not"} expired`,"expires_at",t.expires_at),!s){if(this.userStorage){const o=await Hs(this.userStorage,this.storageKey+"-user");o!=null&&o.user?t.user=o.user:t.user=qd()}if(this.storage.isServer&&t.user&&!t.user.__isUserNotAvailableProxy){const o={value:this.suppressGetSessionWarning};t.user=nR(t.user,o),o.value&&(this.suppressGetSessionWarning=!0)}return{data:{session:t},error:null}}const{data:r,error:i}=await this._callRefreshToken(t.refresh_token);return i?this._returnResult({data:{session:null},error:i}):this._returnResult({data:{session:r},error:null})}finally{this._debug("#__loadSession()","end")}}async getUser(t){if(t)return await this._getUser(t);await this.initializePromise;const n=await this._acquireLock(this.lockAcquireTimeout,async()=>await this._getUser());return n.data.user&&(this.suppressGetSessionWarning=!0),n}async _getUser(t){try{return t?await B(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:t,xform:cs}):await this._useSession(async n=>{var s,r,i;const{data:o,error:l}=n;if(l)throw l;return!(!((s=o.session)===null||s===void 0)&&s.access_token)&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new gt}:await B(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(i=(r=o.session)===null||r===void 0?void 0:r.access_token)!==null&&i!==void 0?i:void 0,xform:cs})})}catch(n){if(D(n))return el(n)&&(await this._removeSession(),await Fe(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({data:{user:null},error:n});throw n}}async updateUser(t,n={}){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._updateUser(t,n))}async _updateUser(t,n={}){try{return await this._useSession(async s=>{const{data:r,error:i}=s;if(i)throw i;if(!r.session)throw new gt;const o=r.session;let l=null,c=null;this.flowType==="pkce"&&t.email!=null&&([l,c]=await Ma(this.storage,this.storageKey));const{data:d,error:u}=await B(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:n==null?void 0:n.emailRedirectTo,body:Object.assign(Object.assign({},t),{code_challenge:l,code_challenge_method:c}),jwt:o.access_token,xform:cs});if(u)throw u;return o.user=d.user,await this._saveSession(o),await this._notifyAllSubscribers("USER_UPDATED",o),this._returnResult({data:{user:o.user},error:null})})}catch(s){if(await Fe(this.storage,`${this.storageKey}-code-verifier`),D(s))return this._returnResult({data:{user:null},error:s});throw s}}async setSession(t){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._setSession(t))}async _setSession(t){try{if(!t.access_token||!t.refresh_token)throw new gt;const n=Date.now()/1e3;let s=n,r=!0,i=null;const{payload:o}=sl(t.access_token);if(o.exp&&(s=o.exp,r=s<=n),r){const{data:l,error:c}=await this._callRefreshToken(t.refresh_token);if(c)return this._returnResult({data:{user:null,session:null},error:c});if(!l)return{data:{user:null,session:null},error:null};i=l}else{const{data:l,error:c}=await this._getUser(t.access_token);if(c)return this._returnResult({data:{user:null,session:null},error:c});i={access_token:t.access_token,refresh_token:t.refresh_token,user:l.user,token_type:"bearer",expires_in:s-n,expires_at:s},await this._saveSession(i),await this._notifyAllSubscribers("SIGNED_IN",i)}return this._returnResult({data:{user:i.user,session:i},error:null})}catch(n){if(D(n))return this._returnResult({data:{session:null,user:null},error:n});throw n}}async refreshSession(t){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._refreshSession(t))}async _refreshSession(t){try{return await this._useSession(async n=>{var s;if(!t){const{data:o,error:l}=n;if(l)throw l;t=(s=o.session)!==null&&s!==void 0?s:void 0}if(!(t!=null&&t.refresh_token))throw new gt;const{data:r,error:i}=await this._callRefreshToken(t.refresh_token);return i?this._returnResult({data:{user:null,session:null},error:i}):r?this._returnResult({data:{user:r.user,session:r},error:null}):this._returnResult({data:{user:null,session:null},error:null})})}catch(n){if(D(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async _getSessionFromURL(t,n){var s;try{if(!Be())throw new nl("No browser detected.");
451if(t.error||t.error_description||t.error_code)throw new nl(t.error_description||"Error in URL with unspecified error_description",{error:t.error||"unspecified_error",code:t.error_code||"unspecified_code"});switch(n){case"implicit":if(this.flowType==="pkce")throw new W0("Not a valid PKCE flow url.");break;case"pkce":if(this.flowType==="implicit")throw new nl("Not a valid implicit grant flow url.");break;default:}if(n==="pkce"){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!t.code)throw new W0("No code detected.");const{data:m,error:w}=await this._exchangeCodeForSession(t.code);if(w)throw w;const j=new URL(window.location.href);return j.searchParams.delete("code"),window.history.replaceState(window.history.state,"",j.toString()),{data:{session:m.session,redirectType:(s=m.redirectType)!==null&&s!==void 0?s:null},error:null}}const{provider_token:r,provider_refresh_token:i,access_token:o,refresh_token:l,expires_in:c,expires_at:d,token_type:u}=t;if(!o||!c||!l||!u)throw new nl("No session defined in URL");const f=Math.round(Date.now()/1e3),h=parseInt(c);let p=f+h;d&&(p=parseInt(d));const y=p-f;y*1e3<=Va&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${y}s, should have been closer to ${h}s`);const v=p-h;f-v>=120?console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",v,p,f):f-v<0&&console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",v,p,f);const{data:_,error:x}=await this._getUser(o);if(x)throw x;const b={provider_token:r,provider_refresh_token:i,access_token:o,expires_in:h,expires_at:p,refresh_token:l,token_type:u,user:_.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),this._returnResult({data:{session:b,redirectType:t.type},error:null})}catch(r){if(D(r))return this._returnResult({data:{session:null,redirectType:null},error:r});throw r}}_isImplicitGrantCallback(t){return typeof this.detectSessionInUrl=="function"?this.detectSessionInUrl(new URL(window.location.href),t):!!(t.access_token||t.error_description)}async _isPKCECallback(t){const n=await Hs(this.storage,`${this.storageKey}-code-verifier`);return!!(t.code&&n)}async signOut(t={scope:"global"}){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._signOut(t))}async _signOut({scope:t}={scope:"global"}){return await this._useSession(async n=>{var s;const{data:r,error:i}=n;if(i&&!el(i))return this._returnResult({error:i});const o=(s=r.session)===null||s===void 0?void 0:s.access_token;if(o){const{error:l}=await this.admin.signOut(o,t);if(l&&!(PA(l)&&(l.status===404||l.status===401||l.status===403)||el(l)))return this._returnResult({error:l})}return t!=="others"&&(await this._removeSession(),await Fe(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({error:null})})}onAuthStateChange(t){const n=BA(),s={id:n,callback:t,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",n),this.stateChangeEmitters.delete(n)}};return this._debug("#onAuthStateChange()","registered callback with id",n),this.stateChangeEmitters.set(n,s),(async()=>(await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>{this._emitInitialSession(n)})))(),{data:{subscription:s}}}async _emitInitialSession(t){return await this._useSession(async n=>{var s,r;try{const{data:{session:i},error:o}=n;if(o)throw o;await((s=this.stateChangeEmitters.get(t))===null||s===void 0?void 0:s.callback("INITIAL_SESSION",i)),this._debug("INITIAL_SESSION","callback id",t,"session",i)}catch(i){await((r=this.stateChangeEmitters.get(t))===null||r===void 0?void 0:r.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",t,"error",i),el(i)?console.warn(i):console.error(i)}})}async resetPasswordForEmail(t,n={}){let s=null,r=null;this.flowType==="pkce"&&([s,r]=await Ma(this.storage,this.storageKey,!0));try{return await B(this.fetch,"POST",`${this.url}/recover`,{body:{email:t,code_challenge:s,code_challenge_method:r,gotrue_meta_security:{captcha_token:n.captchaToken}},headers:this.headers,redirectTo:n.redirectTo})}catch(i){if(await Fe(this.storage,`${this.storageKey}-code-verifier`),D(i))return this._returnResult({data:null,error:i});throw i}}async getUserIdentities(){var t;try{const{data:n,error:s}=await this.getUser();if(s)throw s;return this._returnResult({data:{identities:(t=n.user.identities)!==null&&t!==void 0?t:[]},error:null})}catch(n){if(D(n))return this._returnResult({data:null,error:n});throw n}}async linkIdentity(t){return"token"in t?this.linkIdentityIdToken(t):this.linkIdentityOAuth(t)}async linkIdentityOAuth(t){var n;try{const{data:s,error:r}=await this._useSession(async i=>{var o,l,c,d,u;const{data:f,error:h}=i;if(h)throw h;const p=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,t.provider,{redirectTo:(o=t.options)===null||o===void 0?void 0:o.redirectTo,scopes:(l=t.options)===null||l===void 0?void 0:l.scopes,queryParams:(c=t.options)===null||c===void 0?void 0:c.queryParams,skipBrowserRedirect:!0});return await B(this.fetch,"GET",p,{headers:this.headers,jwt:(u=(d=f.session)===null||d===void 0?void 0:d.access_token)!==null&&u!==void 0?u:void 0})});if(r)throw r;return Be()&&!(!((n=t.options)===null||n===void 0)&&n.skipBrowserRedirect)&&window.location.assign(s==null?void 0:s.url),this._returnResult({data:{provider:t.provider,url:s==null?void 0:s.url},error:null})}catch(s){if(D(s))return this._returnResult({data:{provider:t.provider,url:null},error:s});throw s}}async linkIdentityIdToken(t){return await this._useSession(async n=>{var s;try{const{error:r,data:{session:i}}=n;
451if(r)throw r;const{options:o,provider:l,token:c,access_token:d,nonce:u}=t,f=await B(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:(s=i==null?void 0:i.access_token)!==null&&s!==void 0?s:void 0,body:{provider:l,id_token:c,access_token:d,nonce:u,link_identity:!0,gotrue_meta_security:{captcha_token:o==null?void 0:o.captchaToken}},xform:Wt}),{data:h,error:p}=f;return p?this._returnResult({data:{user:null,session:null},error:p}):!h||!h.session||!h.user?this._returnResult({data:{user:null,session:null},error:new La}):(h.session&&(await this._saveSession(h.session),await this._notifyAllSubscribers("USER_UPDATED",h.session)),this._returnResult({data:h,error:p}))}catch(r){if(await Fe(this.storage,`${this.storageKey}-code-verifier`),D(r))return this._returnResult({data:{user:null,session:null},error:r});throw r}})}async unlinkIdentity(t){try{return await this._useSession(async n=>{var s,r;const{data:i,error:o}=n;if(o)throw o;return await B(this.fetch,"DELETE",`${this.url}/user/identities/${t.identity_id}`,{headers:this.headers,jwt:(r=(s=i.session)===null||s===void 0?void 0:s.access_token)!==null&&r!==void 0?r:void 0})})}catch(n){if(D(n))return this._returnResult({data:null,error:n});throw n}}async _refreshAccessToken(t){const n=`#_refreshAccessToken(${t.substring(0,5)}...)`;this._debug(n,"begin");try{const s=Date.now();return await WA(async r=>(r>0&&await HA(200*Math.pow(2,r-1)),this._debug(n,"refreshing attempt",r),await B(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:t},headers:this.headers,xform:Wt})),(r,i)=>{const o=200*Math.pow(2,r);return i&&Bd(i)&&Date.now()+o-s<Va})}catch(s){if(this._debug(n,"error",s),D(s))return this._returnResult({data:{session:null,user:null},error:s});throw s}finally{this._debug(n,"end")}}_isValidSession(t){return typeof t=="object"&&t!==null&&"access_token"in t&&"refresh_token"in t&&"expires_at"in t}async _handleProviderSignIn(t,n){const s=await this._getUrlForProvider(`${this.url}/authorize`,t,{redirectTo:n.redirectTo,scopes:n.scopes,queryParams:n.queryParams});return this._debug("#_handleProviderSignIn()","provider",t,"options",n,"url",s),Be()&&!n.skipBrowserRedirect&&window.location.assign(s),{data:{provider:t,url:s},error:null}}async _recoverAndRefresh(){var t,n;const s="#_recoverAndRefresh()";this._debug(s,"begin");try{const r=await Hs(this.storage,this.storageKey);if(r&&this.userStorage){let o=await Hs(this.userStorage,this.storageKey+"-user");!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!o&&(o={user:r.user},await Ha(this.userStorage,this.storageKey+"-user",o)),r.user=(t=o==null?void 0:o.user)!==null&&t!==void 0?t:qd()}else if(r&&!r.user&&!r.user){const o=await Hs(this.storage,this.storageKey+"-user");o&&(o!=null&&o.user)?(r.user=o.user,await Fe(this.storage,this.storageKey+"-user"),await Ha(this.storage,this.storageKey,r)):r.user=qd()}if(this._debug(s,"session from storage",r),!this._isValidSession(r)){this._debug(s,"session is not valid"),r!==null&&await this._removeSession();return}const i=((n=r.expires_at)!==null&&n!==void 0?n:1/0)*1e3-Date.now()<Fd;if(this._debug(s,`session has${i?"":" not"} expired with margin of ${Fd}s`),i){if(this.autoRefreshToken&&r.refresh_token){const{error:o}=await this._callRefreshToken(r.refresh_token);o&&(console.error(o),Bd(o)||(this._debug(s,"refresh failed with a non-retryable error, removing the session",o),await this._removeSession()))}}else if(r.user&&r.user.__isUserNotAvailableProxy===!0)try{const{data:o,error:l}=await this._getUser(r.access_token);!l&&(o!=null&&o.user)?(r.user=o.user,await this._saveSession(r),await this._notifyAllSubscribers("SIGNED_IN",r)):this._debug(s,"could not get user data, skipping SIGNED_IN notification")}catch(o){console.error("Error getting user data:",o),this._debug(s,"error getting user data, skipping SIGNED_IN notification",o)}else await this._notifyAllSubscribers("SIGNED_IN",r)}catch(r){this._debug(s,"error",r),console.error(r);return}finally{this._debug(s,"end")}}async _callRefreshToken(t){var n,s;if(!t)throw new gt;if(this.refreshingDeferred)return this.refreshingDeferred.promise;const r=`#_callRefreshToken(${t.substring(0,5)}...)`;this._debug(r,"begin");try{this.refreshingDeferred=new Hc;const{data:i,error:o}=await this._refreshAccessToken(t);if(o)throw o;if(!i.session)throw new gt;await this._saveSession(i.session),await this._notifyAllSubscribers("TOKEN_REFRESHED",i.session);const l={data:i.session,error:null};return this.refreshingDeferred.resolve(l),l}catch(i){if(this._debug(r,"error",i),D(i)){const o={data:null,error:i};return Bd(i)||await this._removeSession(),(n=this.refreshingDeferred)===null||n===void 0||n.resolve(o),o}throw(s=this.refreshingDeferred)===null||s===void 0||s.reject(i),i}finally{this.refreshingDeferred=null,this._debug(r,"end")}}async _notifyAllSubscribers(t,n,s=!0){const r=`#_notifyAllSubscribers(${t})`;this._debug(r,"begin",n,`broadcast = ${s}`);try{this.broadcastChannel&&s&&this.broadcastChannel.postMessage({event:t,session:n});const i=[],o=Array.from(this.stateChangeEmitters.values()).map(async l=>{try{await l.callback(t,n)}catch(c){i.push(c)}});if(await Promise.all(o),i.length>0){for(let l=0;l<i.length;l+=1)console.error(i[l]);throw i[0]}}finally{this._debug(r,"end")}}async _saveSession(t){this._debug("#_saveSession()",t),this.suppressGetSessionWarning=!0,await Fe(this.storage,`${this.storageKey}-code-verifier`);const n=Object.assign({},t),s=n.user&&n.user.__isUserNotAvailableProxy===!0;if(this.userStorage){!s&&n.user&&await Ha(this.userStorage,this.storageKey+"-user",{user:n.user});const r=Object.assign({},n);delete r.user;const i=Y0(r);await Ha(this.storage,this.storageKey,i)}else{const r=Y0(n);await Ha(this.storage,this.storageKey,r)}}async _removeSession(){this._debug("#_removeSession()"),this.suppressGetSessionWarning=!1,await Fe(this.storage,this.storageKey),await Fe(this.storage,this.storageKey+"-code-verifier"),await Fe(this.storage,this.storageKey+"-user"),this.userStorage&&await Fe(this.userStorage,this.storageKey+"-user"),await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");const t=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{t&&Be()&&(window!=null&&window.removeEventListener)&&window.removeEventListener("visibilitychange",t)}
451catch(n){console.error("removing visibilitychange callback failed",n)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");const t=setInterval(()=>this._autoRefreshTokenTick(),Va);this.autoRefreshTicker=t,t&&typeof t=="object"&&typeof t.unref=="function"?t.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(t);const n=setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0);this.autoRefreshTickTimeout=n,n&&typeof n=="object"&&typeof n.unref=="function"?n.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(n)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const t=this.autoRefreshTicker;this.autoRefreshTicker=null,t&&clearInterval(t);const n=this.autoRefreshTickTimeout;this.autoRefreshTickTimeout=null,n&&clearTimeout(n)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");try{await this._acquireLock(0,async()=>{try{const t=Date.now();try{return await this._useSession(async n=>{const{data:{session:s}}=n;if(!s||!s.refresh_token||!s.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const r=Math.floor((s.expires_at*1e3-t)/Va);this._debug("#_autoRefreshTokenTick()",`access token expires in ${r} ticks, a tick lasts ${Va}ms, refresh threshold is ${bf} ticks`),r<=bf&&await this._callRefreshToken(s.refresh_token)})}catch(n){console.error("Auto refresh tick failed with error. This is likely a transient error.",n)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(t){if(t.isAcquireTimeout||t instanceof x2)this._debug("auto refresh token tick lock not available");else throw t}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!Be()||!(window!=null&&window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>{try{await this._onVisibilityChanged(!1)}catch(t){this._debug("#visibilityChangedCallback","error",t)}},window==null||window.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(t){console.error("_handleVisibilityChange",t)}}async _onVisibilityChanged(t){const n=`#_onVisibilityChanged(${t})`;this._debug(n,"visibilityState",document.visibilityState),document.visibilityState==="visible"?(this.autoRefreshToken&&this._startAutoRefresh(),t||(await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>{if(document.visibilityState!=="visible"){this._debug(n,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()}))):document.visibilityState==="hidden"&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(t,n,s){const r=[`provider=${encodeURIComponent(n)}`];if(s!=null&&s.redirectTo&&r.push(`redirect_to=${encodeURIComponent(s.redirectTo)}`),s!=null&&s.scopes&&r.push(`scopes=${encodeURIComponent(s.scopes)}`),this.flowType==="pkce"){const[i,o]=await Ma(this.storage,this.storageKey),l=new URLSearchParams({code_challenge:`${encodeURIComponent(i)}`,code_challenge_method:`${encodeURIComponent(o)}`});r.push(l.toString())}if(s!=null&&s.queryParams){const i=new URLSearchParams(s.queryParams);r.push(i.toString())}return s!=null&&s.skipBrowserRedirect&&r.push(`skip_http_redirect=${s.skipBrowserRedirect}`),`${t}?${r.join("&")}`}async _unenroll(t){try{return await this._useSession(async n=>{var s;const{data:r,error:i}=n;return i?this._returnResult({data:null,error:i}):await B(this.fetch,"DELETE",`${this.url}/factors/${t.factorId}`,{headers:this.headers,jwt:(s=r==null?void 0:r.session)===null||s===void 0?void 0:s.access_token})})}catch(n){if(D(n))return this._returnResult({data:null,error:n});throw n}}async _enroll(t){try{return await this._useSession(async n=>{var s,r;const{data:i,error:o}=n;if(o)return this._returnResult({data:null,error:o});const l=Object.assign({friendly_name:t.friendlyName,factor_type:t.factorType},t.factorType==="phone"?{phone:t.phone}:t.factorType==="totp"?{issuer:t.issuer}:{}),{data:c,error:d}=await B(this.fetch,"POST",`${this.url}/factors`,{body:l,headers:this.headers,jwt:(s=i==null?void 0:i.session)===null||s===void 0?void 0:s.access_token});return d?this._returnResult({data:null,error:d}):(t.factorType==="totp"&&c.type==="totp"&&(!((r=c==null?void 0:c.totp)===null||r===void 0)&&r.qr_code)&&(c.totp.qr_code=`data:image/svg+xml;utf-8,${c.totp.qr_code}`),this._returnResult({data:c,error:null}))})}catch(n){if(D(n))return this._returnResult({data:null,error:n});throw n}}async _verify(t){return this._acquireLock(this.lockAcquireTimeout,async()=>{try{return await this._useSession(async n=>{var s;const{data:r,error:i}=n;if(i)return this._returnResult({data:null,error:i});const o=Object.assign({challenge_id:t.challengeId},"webauthn"in t?{webauthn:Object.assign(Object.assign({},t.webauthn),{credential_response:t.webauthn.type==="create"?_R(t.webauthn.credential_response):wR(t.webauthn.credential_response)})}:{code:t.code}),{data:l,error:c}=await B(this.fetch,"POST",`${this.url}/factors/${t.factorId}/verify`,{body:o,headers:this.headers,jwt:(s=r==null?void 0:r.session)===null||s===void 0?void 0:s.access_token});return c?this._returnResult({data:null,error:c}):(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+l.expires_in},l)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",l),this._returnResult({data:l,error:c}))})}catch(n){if(D(n))return this._returnResult({data:null,error:n});throw n}})}async _challenge(t){return this._acquireLock(this.lockAcquireTimeout,async()=>{try{return await this._useSession(async n=>{var s;const{data:r,error:i}=n;if(i)return this._returnResult({data:null,error:i});const o=await B(this.fetch,"POST",`${this.url}/factors/${t.factorId}/challenge`,{body:t,headers:this.headers,jwt:(s=r==null?void 0:r.session)===null||s===void 0?void 0:s.access_token});if(o.error)return o;const{data:l}=o;if(l.type!=="webauthn")return{data:l,error:null};switch(l.webauthn.type){case"create":return{data:Object.assign(Object.assign({},l),{webauthn:Object.assign(Object.assign({},l.webauthn),{credential_options:Object.assign(Object.assign({},l.webauthn.credential_options),{publicKey:vR(l.webauthn.credential_options.publicKey)})})}),error:null};case"request":return{data:Object.assign(Object.assign({},l),{webauthn:Object.assign(Object.assign({},l.webauthn),{credential_options:Object.assign(Object.assign({},l.webauthn.credential_options),{publicKey:yR(l.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(n){if(D(n))return this._returnResult({data:null,error:n});throw n}})}async _challengeAndVerify(t){const{data:n,error:s}=await this._challenge({factorId:t.factorId});return s?this._returnResult({data:null,error:s}):await this._verify({factorId:t.factorId,challengeId:n.id,code:t.code})}async _listFactors(){var t;const{data:{user:n},error:s}=await this.getUser();if(s)return{data:null,error:s};const r={all:[],phone:[],totp:[],webauthn:[]};for(const i of(t=n==null?void 0:n.factors)!==null&&t!==void 0?t:[])r.all.push(i),i.status==="verified"&&r[i.factor_type].push(i);return{data:r,error:null}}async _getAuthenticatorAssuranceLevel(t){var n,s,r,i;if(t)try{const{payload:p}=sl(t);let y=null;p.aal&&(y=p.aal);let v=y;const{data:{user:_},error:x}=await this.getUser(t);if(x)return this._returnResult({data:null,error:x});((s=(n=_==null?void 0:_.factors)===null||n===void 0?void 0:n.filter(w=>w.status==="verified"))!==null&&s!==void 0?s:[]).length>0&&(v="aal2");const m=p.amr||[];return{data:{currentLevel:y,nextLevel:v,currentAuthenticationMethods:m},error:null}}catch(p){if(D(p))return this._returnResult({data:null,error:p});throw p}const{data:{session:o},error:l}
451=await this.getSession();if(l)return this._returnResult({data:null,error:l});if(!o)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const{payload:c}=sl(o.access_token);let d=null;c.aal&&(d=c.aal);let u=d;((i=(r=o.user.factors)===null||r===void 0?void 0:r.filter(p=>p.status==="verified"))!==null&&i!==void 0?i:[]).length>0&&(u="aal2");const h=c.amr||[];return{data:{currentLevel:d,nextLevel:u,currentAuthenticationMethods:h},error:null}}async _getAuthorizationDetails(t){try{return await this._useSession(async n=>{const{data:{session:s},error:r}=n;return r?this._returnResult({data:null,error:r}):s?await B(this.fetch,"GET",`${this.url}/oauth/authorizations/${t}`,{headers:this.headers,jwt:s.access_token,xform:i=>({data:i,error:null})}):this._returnResult({data:null,error:new gt})})}catch(n){if(D(n))return this._returnResult({data:null,error:n});throw n}}async _approveAuthorization(t,n){try{return await this._useSession(async s=>{const{data:{session:r},error:i}=s;if(i)return this._returnResult({data:null,error:i});if(!r)return this._returnResult({data:null,error:new gt});const o=await B(this.fetch,"POST",`${this.url}/oauth/authorizations/${t}/consent`,{headers:this.headers,jwt:r.access_token,body:{action:"approve"},xform:l=>({data:l,error:null})});return o.data&&o.data.redirect_url&&Be()&&!(n!=null&&n.skipBrowserRedirect)&&window.location.assign(o.data.redirect_url),o})}catch(s){if(D(s))return this._returnResult({data:null,error:s});throw s}}async _denyAuthorization(t,n){try{return await this._useSession(async s=>{const{data:{session:r},error:i}=s;if(i)return this._returnResult({data:null,error:i});if(!r)return this._returnResult({data:null,error:new gt});const o=await B(this.fetch,"POST",`${this.url}/oauth/authorizations/${t}/consent`,{headers:this.headers,jwt:r.access_token,body:{action:"deny"},xform:l=>({data:l,error:null})});return o.data&&o.data.redirect_url&&Be()&&!(n!=null&&n.skipBrowserRedirect)&&window.location.assign(o.data.redirect_url),o})}catch(s){if(D(s))return this._returnResult({data:null,error:s});throw s}}async _listOAuthGrants(){try{return await this._useSession(async t=>{const{data:{session:n},error:s}=t;return s?this._returnResult({data:null,error:s}):n?await B(this.fetch,"GET",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:n.access_token,xform:r=>({data:r,error:null})}):this._returnResult({data:null,error:new gt})})}catch(t){if(D(t))return this._returnResult({data:null,error:t});throw t}}async _revokeOAuthGrant(t){try{return await this._useSession(async n=>{const{data:{session:s},error:r}=n;return r?this._returnResult({data:null,error:r}):s?(await B(this.fetch,"DELETE",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:s.access_token,query:{client_id:t.clientId},noResolveJson:!0}),{data:{},error:null}):this._returnResult({data:null,error:new gt})})}catch(n){if(D(n))return this._returnResult({data:null,error:n});throw n}}async fetchJwk(t,n={keys:[]}){let s=n.keys.find(l=>l.kid===t);if(s)return s;const r=Date.now();if(s=this.jwks.keys.find(l=>l.kid===t),s&&this.jwks_cached_at+AA>r)return s;const{data:i,error:o}=await B(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(o)throw o;return!i.keys||i.keys.length===0||(this.jwks=i,this.jwks_cached_at=r,s=i.keys.find(l=>l.kid===t),!s)?null:s}async getClaims(t,n={}){try{let s=t;if(!s){const{data:p,error:y}
451=await this.getSession();if(y||!p.session)return this._returnResult({data:null,error:y});s=p.session.access_token}const{header:r,payload:i,signature:o,raw:{header:l,payload:c}}=sl(s);n!=null&&n.allowExpired||XA(i.exp);const d=!r.alg||r.alg.startsWith("HS")||!r.kid||!("crypto"in globalThis&&"subtle"in globalThis.crypto)?null:await this.fetchJwk(r.kid,n!=null&&n.keys?{keys:n.keys}:n==null?void 0:n.jwks);if(!d){const{error:p}=await this.getUser(s);if(p)throw p;return{data:{claims:i,header:r,signature:o},error:null}}const u=eR(r.alg),f=await crypto.subtle.importKey("jwk",d,u,!0,["verify"]);if(!await crypto.subtle.verify(u,f,o,UA(`${l}.${c}`)))throw new yf("Invalid JWT signature");return{data:{claims:i,header:r,signature:o},error:null}}catch(s){if(D(s))return this._returnResult({data:null,error:s});throw s}}}ao.nextInstanceID={};const AR=ao,RR="2.104.1";let fi="";typeof Deno<"u"?fi="deno":typeof document<"u"?fi="web":typeof navigator<"u"&&navigator.product==="ReactNative"?fi="react-native":fi="node";const PR={"X-Client-Info":`supabase-js-${fi}/${RR}`},OR={headers:PR},zR={schema:"public"},IR={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},LR={};function ro(e){"@babel/helpers - typeof";return ro=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ro(e)}function MR(e,t){if(ro(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var s=n.call(e,t||"default");if(ro(s)!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function DR(e){var t=MR(e,"string");return ro(t)=="symbol"?t:t+""}function UR(e,t,n){return(t=DR(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rg(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),n.push.apply(n,s)}return n}function ke(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?rg(Object(n),!0).forEach(function(s){UR(e,s,n[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rg(Object(n)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(n,s))})}return e}const FR=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),BR=()=>Headers,qR=(e,t,n)=>{const s=FR(n),r=BR();return async(i,o)=>{var l;const c=(l=await t())!==null&&l!==void 0?l:e;let d=new r(o==null?void 0:o.headers);return d.has("apikey")||d.set("apikey",e),d.has("Authorization")||d.set("Authorization",`Bearer ${c}`),s(i,ke(ke({},o),{},{headers:d}))}};function VR(e){return e.endsWith("/")?e:e+"/"}function HR(e,t){var n,s;const{db:r,auth:i,realtime:o,global:l}=e,{db:c,auth:d,realtime:u,global:f}=t,h={db:ke(ke({},c),r),auth:ke(ke({},d),i),realtime:ke(ke({},u),o),storage:{},global:ke(ke(ke({},f),l),{},{headers:ke(ke({},(n=f==null?void 0:f.headers)!==null&&n!==void 0?n:{}),(s=l==null?void 0:l.headers)!==null&&s!==void 0?s:{})}),accessToken:async()=>""};return e.accessToken?h.accessToken=e.accessToken:delete h.accessToken,h}function WR(e){const t=e==null?void 0:e.trim();if(!t)throw new Error("supabaseUrl is required.");if(!t.match(/^https?:\/\//i))throw new Error("Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.");try{return new URL(VR(t))}catch{throw Error("Invalid supabaseUrl: Provided URL is malformed.")}}var ZR=class extends AR{constructor(e){super(e)}},GR=class{constructor(e,t,n){var s,r;this.supabaseUrl=e,this.supabaseKey=t;const i=WR(e);if(!t)throw new Error("supabaseKey is required.");this.realtimeUrl=new URL("realtime/v1",i),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace("http","ws"),this.authUrl=new URL("auth/v1",i),this.storageUrl=new URL("storage/v1",i),this.functionsUrl=new URL("functions/v1",i);const o=`sb-${i.hostname.split(".")[0]}-auth-token`,l={db:zR,realtime:LR,auth:ke(ke({},IR),{},{storageKey:o}),global:OR},c=HR(n??{},l);if(this.storageKey=(s=c.auth.storageKey)!==null&&s!==void 0?s:"",this.headers=(r=c.global.headers)!==null&&r!==void 0?r:{},c.accessToken)this.accessToken=c.accessToken,this.auth=new Proxy({},{get:(u,f)=>{throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(f)} is not possible`)}});else{var d;this.auth=this._initSupabaseAuthClient((d=c.auth)!==null&&d!==void 0?d:{},this.headers,c.global.fetch)}this.fetch=qR(t,this._getAccessToken.bind(this),c.global.fetch),this.realtime=this._initRealtimeClient(ke({headers:this.headers,accessToken:this._getAccessToken.bind(this),fetch:this.fetch},c.realtime)),this.accessToken&&Promise.resolve(this.accessToken()).then(u=>this.realtime.setAuth(u)).catch(u=>console.warn("Failed to set initial Realtime auth token:",u)),this.rest=new mT(new URL("rest/v1",i).href,{headers:this.headers,schema:c.db.schema,fetch:this.fetch,timeout:c.db.timeout,urlLengthLimit:c.db.urlLengthLimit}),this.storage=new $A(this.storageUrl.href,this.headers,this.fetch,n==null?void 0:n.storage),c.accessToken||this._listenForAuthEvents()}get functions(){return new rT(this.functionsUrl.href,{headers:this.headers,customFetch:this.fetch})}from(e){return this.rest.from(e)}schema(e){return this.rest.schema(e)}rpc(e,t={},n={head:!1,get:!1,count:void 0}){return this.rest.rpc(e,t,n)}
451channel(e,t={config:{}}){return this.realtime.channel(e,t)}getChannels(){return this.realtime.getChannels()}removeChannel(e){return this.realtime.removeChannel(e)}removeAllChannels(){return this.realtime.removeAllChannels()}async _getAccessToken(){var e=this,t,n;if(e.accessToken)return await e.accessToken();const{data:s}=await e.auth.getSession();return(t=(n=s.session)===null||n===void 0?void 0:n.access_token)!==null&&t!==void 0?t:e.supabaseKey}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:t,detectSessionInUrl:n,storage:s,userStorage:r,storageKey:i,flowType:o,lock:l,debug:c,throwOnError:d},u,f){const h={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new ZR({url:this.authUrl.href,headers:ke(ke({},h),u),storageKey:i,autoRefreshToken:e,persistSession:t,detectSessionInUrl:n,storage:s,userStorage:r,flowType:o,lock:l,debug:c,throwOnError:d,fetch:f,hasCustomAuthorizationHeader:Object.keys(this.headers).some(p=>p.toLowerCase()==="authorization")})}_initRealtimeClient(e){return new KT(this.realtimeUrl.href,ke(ke({},e),{},{params:ke(ke({},{apikey:this.supabaseKey}),e==null?void 0:e.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((e,t)=>{this._handleTokenChanged(e,"CLIENT",t==null?void 0:t.access_token)})}_handleTokenChanged(e,t,n){(e==="TOKEN_REFRESHED"||e==="SIGNED_IN")&&this.changedAccessToken!==n?(this.changedAccessToken=n,this.realtime.setAuth(n)):e==="SIGNED_OUT"&&(this.realtime.setAuth(),t=="STORAGE"&&this.auth.signOut(),this.changedAccessToken=void 0)}};const KR=(e,t,n)=>new GR(e,t,n);function JR(){if(typeof window<"u")return!1;const e=globalThis.process;if(!e)return!1;const t=e.version;if(t==null)return!1;const n=t.match(/^v(\d+)\./);return n?parseInt(n[1],10)<=18:!1}JR()&&console.warn("⚠️  Node.js 18 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to Node.js 20 or later. For more information, visit: https://github.com/orgs/supabase/discussions/37217");const YR="https://maiebepawutkcvnlquye.supabase.co",QR="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im1haWViZXBhd3V0a2N2bmxxdXllIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzcyMzg4NDcsImV4cCI6MjA5MjgxNDg0N30.YI-pJ7t2J4hwPe_B7ukF4LHAnCy73hSAuYr6rAlUKkA",ig=KR(YR,QR,{auth:{storage:localStorage,persistSession:!0,autoRefreshToken:!0}}),jl=g.forwardRef(({className:e,type:t,...n},s)=>a.jsx("input",{type:t,className:Se("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",e),ref:s,...n}));jl.displayName="Input";const _2=g.forwardRef(({className:e,...t},n)=>a.jsx("textarea",{className:Se("flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-sm r
451ing-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),ref:n,...t}));_2.displayName="Textarea";var XR="Label",w2=g.forwardRef((e,t)=>a.jsx(Ee.label,{...e,ref:t,onMouseDown:n=>{var r;n.target.closest("button, input, select, textarea")||((r=e.onMouseDown)==null||r.call(e,n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));w2.displayName=XR;var j2=w2;const eP=Np("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),ta=g.forwardRef(({className:e,...t},n)=>a.jsx(j2,{ref:n,className:Se(eP(),e),...t}));ta.displayName=j2.displayName;var Wc="Checkbox",[tP,Mve]=Na(Wc),[nP,ah]=tP(Wc);function sP(e){const{__scopeCheckbox:t,checked:n,children:s,defaultChecked:r,disabled:i,form:o,name:l,onCheckedChange:c,required:d,value:u="on",internal_do_not_use_render:f}=e,[h,p]=_p({prop:n,defaultProp:r??!1,onChange:c,caller:Wc}),[y,v]=g.useState(null),[_,x]=g.useState(null),b=g.useRef(!1),m=y?!!o||!!y.closest("form"):!0,w={checked:h,disabled:i,setChecked:p,control:y,setControl:v,name:l,form:o,value:u,hasConsumerStoppedPropagationRef:b,required:d,defaultChecked:Es(r)?!1:r,isFormControl:m,bubbleInput:_,setBubbleInput:x};return a.jsx(nP,{scope:t,...w,children:aP(f)?f(w):s})}var k2="CheckboxTrigger",N2=g.forwardRef(({__scopeCheckbox:e,onKeyDown:t,onClick:n,...s},r)=>{const{control:i,value:o,disabled:l,checked:c,required:d,setControl:u,setChecked:f,hasConsumerStoppedPropagationRef:h,isFormControl:p,bubbleInput:y}=ah(k2,e),v=rt(r,u),_=g.useRef(c);return g.useEffect(()=>{const x=i==null?void 0:i.form;if(x){const b=()=>f(_.current);return x.addEventListener("reset",b),()=>x.removeEventListener("reset",b)}},[i,f]),a.jsx(Ee.button,{type:"button",role:"checkbox","aria-checked":Es(c)?"mixed":c,"aria-required":d,"data-state":T2(c),"data-disabled":l?"":void 0,disabled:l,value:o,...s,ref:v,onKeyDown:$e(t,x=>{x.key==="Enter"&&x.preventDefault()}),onClick:$e(n,x=>{f(b=>Es(b)?!0:!b),y&&p&&(h.current=x.isPropagationStopped(),h.current||x.stopPropagation())})})});N2.displayName=k2;var rh=g.forwardRef((e,t)=>{const{__scopeCheckbox:n,name:s,checked:r,defaultChecked:i,required:o,disabled:l,value:c,onCheckedChange:d,form:u,...f}=e;return a.jsx(sP,{__scopeCheckbox:n,checked:r,defaultChecked:i,disabled:l,required:o,onCheckedChange:d,name:s,form:u,value:c,internal_do_not_use_render:({isFormControl:h})=>a.jsxs(a.Fragment,{children:[a.jsx(N2,{...f,ref:t,__scopeCheckbox:n}),h&&a.jsx(C2,{__scopeCheckbox:n})]})})});rh.displayName=Wc;var $2="CheckboxIndicator",S2=g.forwardRef((e,t)=>{const{__scopeCheckbox:n,forceMount:s,...r}=e,i=ah($2,n);return a.jsx(Ec,{present:s||Es(i.checked)||i.checked===!0,children:a.jsx(Ee.span,{"data-state":T2(i.checked),"data-disabled":i.disabled?"":void 0,...r,ref:t,style:{pointerEvents:"none",...e.style}})})});S2.displayName=$2;var E2="CheckboxBubbleInput",C2=g.forwardRef(({__scopeCheckbox:e,...t},n)=>{const{control:s,hasConsumerStoppedPropagationRef:r,checked:i,defaultChecked:o,required:l,disabled:c,name:d,value:u,form:f,bubbleInput:h,setBubbleInput:p}=ah(E2,e),y=rt(n,p),v=z1(i),_=Lp(s);g.useEffect(()=>{const b=h;if(!b)return;const m=window.HTMLInputElement.prototype,j=Object.getOwnPropertyDescriptor(m,"checked").set,k=!r.current;if(v!==i&&j){const N=new Event("click",{bubbles:k});b.indeterminate=Es(i),j.call(b,Es(i)?!1:i),b.dispatchEvent(N)}},[h,v,i,r]);const x=g.useRef(Es(i)?!1:i);return a.jsx(Ee.input,{type:"checkbox","aria-hidden":!0,defaultChecked:o??x.current,required:l,disabled:c,name:d,value:u,form:f,...t,tabIndex:-1,ref:y,style:{...t.style,..._,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});C2.displayName=E2;function aP(e){return typeof e=="function"}function Es(e){return e==="indeterminate"}function T2(e){return Es(e)?"indeterminate":e?"checked":"unchecked"}const A2=g.forwardRef(({className:e,...t},n)=>a.jsx(rh,{ref:n,className:Se("peer h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",e),...t,children:a.jsx(S2,{className:Se("flex items-center justify-center text-current"),children:a.jsx(u
451w,{className:"h-4 w-4"})})}));A2.displayName=rh.displayName;const rP=10*1024*1024,og=5,iP=()=>{const[e,t]=g.useState({name:"",email:"",phone:"",message:""}),[n,s]=g.useState([]),[r,i]=g.useState(!1),[o,l]=g.useState(!1),c=f=>{const h=Array.from(f.target.files||[]),p=[...n,...h].slice(0,og),y=p.filter(v=>v.size<=rP);y.length<p.length&&ai.error("Algunos archivos superan los 10 MB y no se han añadido."),s(y),f.target.value=""},d=f=>s(h=>h.filter((p,y)=>y!==f)),u=async f=>{if(f.preventDefault(),!e.name.trim()||!e.email.trim()||!e.message.trim()){ai.error("Por favor completa nombre, email y mensaje.");return}if(!o){ai.error("Debes aceptar la política de privacidad.");return}i(!0);try{const h=[],p=[];for(const v of n){const _=v.name.replace(/[^a-zA-Z0-9._-]/g,"_"),x=`submissions/${Date.now()}-${crypto.randomUUID()}-${_}`,{error:b}=await ig.storage.from("contact-documents").upload(x,v,{contentType:v.type,upsert:!1});if(b)throw b;h.push(x),p.push(v.name)}const{error:y}=await ig.functions.invoke("send-contact-email",{body:{...e,documentPaths:h,documentNames:p}});if(y)throw y;ai.success("Mensaje enviado correctamente. Te responderemos pronto."),t({name:"",email:"",phone:"",message:""}),s([]),l(!1)}catch(h){console.error(h),ai.error("No se pudo enviar el mensaje. Inténtalo de nuevo.")}finally{i(!1)}};return a.jsxs("div",{className:"min-h-screen",children:[a.jsx(ue,{title:"Contacto — Inicia tu proyecto modular | Modulya",description:"¿Tienes un proyecto en mente? Cuéntanoslo. El equipo de Modulya te acompaña desde la idea hasta la entrega de tu espacio modular.",path:"/contact"}),a.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify({"@context":"https://schema.org","@type":"LocalBusiness","@id":"https://modulya.lovable.app/#localbusiness",name:"Modulya",url:"https://modulya.lovable.app/contact",image:"https://modulya.lovable.app/videos/hero-poster.jpg",telephone:"+34-959-40-66-64",email:"[email protected]",priceRange:"€€€",address:{"@type":"PostalAddress",streetAddress:"Calle El Cerro nº 23",postalCode:"21730",addressLocality:"Almonte",addressRegion:"Huelva",addressCountry:"ES"},areaServed:"ES",sameAs:["https://www.linkedin.com/company/modulya-sistemas-y-accesorios-modulares/"]})}}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-32 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"grid md:grid-cols-2 gap-20",children:[a.jsxs("div",{children:[a.jsx("h1",{className:"text-minimal text-muted-foreground mb-4",children:"CONTACTO"}),a.jsxs("h2",{className:"text-4xl md:text-6xl font-light text-architectural mb-12",children:["Creemos Algo",a.jsx("br",{}),"Extraordinario"]}),a.jsxs("div",{className:"space-y-8",children:[a.jsxs("div",{children:[a.jsx("h3",{className:"text-minimal text-muted-foreground mb-2",children:"EMAIL"}),a.jsx("a",{href:"mailto:[email protected]",className:"text-xl hover:text-muted-foreground transition-colors duration-300",children:"[email protected]"})]}),a.jsxs("div",{children:[a.jsx("h3",{className:"text-minimal text-muted-foreground mb-2",children:"TELÉFONO"}),a.jsx("a",{href:"tel:+34959406664",className:"text-xl hover:text-muted-foreground transition-colors duration-300",children:"+34 959 40 66 64"})]}),a.jsxs("div",{children:[a.jsx("h3",{className:"text-minimal text-muted-foreground mb-2",children:"ESTUDIO"}),a.jsxs("address",{className:"text-xl not-italic",children:["Calle El Cerro nº 23",a.jsx("br",{}),"21730, Almonte (Huelva)"]})]})]})]}),a.jsxs("div",{className:"space-y-8",children:[a.jsxs("div",{children:[a.jsx("h3",{className:"text-minimal text-muted-foreground mb-6",children:"SÍGUENOS"}),a.jsx("div",{className:"space-y-4",children:a.jsx("a",{href:"https://www.linkedin.com/company/modulya-sistemas-y-accesorios-modulares/",target:"_blank",rel:"noopener noreferrer",className:"block text-xl hover:text-muted-foreground transition-colors duration-300",children:"LinkedIn"})})]}),a.jsx("div",{className:"pt-12 border-t border-border",children:a.jsx("p",{className:"text-muted-foreground",children:"Abordamos cada proyecto con curiosidad, rigor y un compromiso con la excelencia. Nuestro proceso comienza escuchando, comprendiendo tu visión y traduciéndola en espacios que superan las expectativas."})}),a.jsxs("form",{onSubmit:u,className:"pt-8 space-y-6",children:[a.jsx("h3",{className:"text-minimal text-muted-foreground mb-2",children:"ESCRÍBENOS"}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(ta,{htmlFor:"name",className:"text-base font-medium",children:"Nombre *"}),a.jsx(jl,{id:"name",value:e.name,onChange:f=>t({...e,name:f.target.value}),maxLength:200,required:!0,className:"h-12 bg-muted/40 border-2 focus-visible:border-foreground",placeholder:"Tu nombre completo"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(ta,{htmlFor:"email",className:"text-base font-medium",children:"Email *"}),a.jsx(jl,{id:"email",type:"email",value:e.email,onChange:f=>t({...e,email:f.target.value}),maxLength:255,required:!0,className:"h-12 bg-muted/40 border-2 focus-visible:border-foreground",placeholder:"[email protected]"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(ta,{htmlFor:"phone",className:"text-base font-medium",children:"Teléfono"}),a.jsx(jl,{id:"phone",type:"tel",value:e.phone,onChange:f=>t({...e,phone:f.target.value}),maxLength:50,className:"h-12 bg-muted/40 border-2 focus-visible:border-foreground",placeholder:"+34 600 000 000"})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsx(ta,{htmlFor:"message",className:"text-base font-medium",children:"Mensaje *"}),a.jsx(_2,{id:"message",rows:5,value:e.message,onChange:f=>t({...e,message:f.target.value}),maxLength:5e3,required:!0,className:"bg-muted/40 border-2 focus-visible:border-foreground resize-none",placeholder:"Cuéntanos sobre tu proyecto..."})]}),a.jsxs("div",{className:"space-y-2",children:[a.jsxs(ta,{htmlFor:"docs",className:"text-base font-medium",children:["Documentación ",a.jsxs("span",{className:"text-muted-foreground font-normal",children:["(opcional · máx. ",og," archivos · 10 MB cada uno)"]})]}),a.jsxs("label",{htmlFor:"docs",className:"flex items-center justify-center gap-2 border-2 border-dashed border-border rounded-md py-6 cursor-pointer hover:bg-muted/60 hover:border-foreground
451/40 transition-colors bg-muted/20",children:[a.jsx(Rw,{className:"w-4 h-4"}),a.jsx("span",{className:"text-sm text-muted-foreground",children:"Seleccionar archivos"})]}),a.jsx("input",{id:"docs",type:"file",multiple:!0,className:"hidden",onChange:c}),n.length>0&&a.jsx("ul",{className:"space-y-1 mt-2",children:n.map((f,h)=>a.jsxs("li",{className:"flex items-center justify-between text-sm bg-muted px-3 py-2 rounded",children:[a.jsx("span",{className:"truncate",children:f.name}),a.jsx("button",{type:"button",onClick:()=>d(h),className:"ml-2 text-muted-foreground hover:text-foreground","aria-label":"Eliminar archivo",children:a.jsx(Ue,{className:"w-4 h-4"})})]},h))})]}),a.jsxs("div",{className:"flex items-start gap-3 pt-2",children:[a.jsx(A2,{id:"rgpd",checked:o,onCheckedChange:f=>l(f===!0),className:"mt-1"}),a.jsxs(ta,{htmlFor:"rgpd",className:"text-sm font-normal leading-relaxed cursor-pointer",children:["He leído y acepto la"," ",a.jsx(F,{to:"/privacidad",className:"underline underline-offset-2 hover:text-foreground transition-colors",children:"política de privacidad"}),". Los datos facilitados serán tratados por Modulya con la finalidad de gestionar tu consulta, conforme al RGPD (UE) 2016/679. *"]})]}),a.jsx(st,{type:"submit",disabled:r,className:"w-full",children:r?a.jsxs(a.Fragment,{children:[a.jsx(yw,{className:"w-4 h-4 mr-2 animate-spin"}),"Enviando..."]}):"Enviar mensaje"})]})]})]})})})}),a.jsx(fe,{})]})},Ws=({title:e,children:t})=>a.jsxs("div",{className:"space-y-4",children:[a.jsx("h2",{className:"text-2xl md:text-3xl font-light text-architectural",style:{color:"#b1c854"},children:e}),a.jsx("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:t})]}),oP=()=>a.jsxs("div",{className:"min-h-screen",children:[a.jsx(ue,{title:"Política de privacidad | Modulya",description:"Política de privacidad de Modulya: tratamiento de datos personales, derechos del usuario y responsables del sitio web.",path:"/privacidad"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-32 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-3xl mx-auto space-y-12",children:[a.jsxs("header",{className:"space-y-4",children:[a.jsx("p",{className:"text-minimal text-muted-foreground",children:"AVISO LEGAL Y RGPD"}),a.jsxs("h1",{className:"text-4xl md:text-6xl font-light text-architectural",children:["Condiciones de uso",a.jsx("br",{}),"de la web"]}),a.jsx("p",{className:"text-muted-foreground",children:"El presente aviso legal recoge las condiciones generales que rigen el acceso y el uso de este sitio web."}),a.jsx("p",{className:"text-muted-foreground",children:"El uso de la página web implica la expresa y plena aceptación de estas condiciones generales en la versión publicada en el momento en que el usuario acceda a la misma."}),a.jsx("p",{className:"text-sm text-muted-foreground italic",children:"Atención: este sitio web utiliza Javascript. Si tiene desactivado o desactiva Javascript en su navegador, algunas de las funciones principales de esta página no estarán disponibles."})]}),a.jsxs(Ws,{title:"Titular",children:[a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"Titular:"})," Sistemas Modulares y Accesorios Modulya S.L."]}),a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"CIF:"})," B21595285"]}),a.jsx("p",{children:"Calle El Cerro nº 23 bajo, 21730, Almonte (Huelva)"})]}),a.jsxs(Ws,{title:"Términos legales",children:[a.jsx("p",{children:"Modulya S.L. en adelante el titular, no asumirá ninguna responsabilidad derivada del uso incorrecto, inapropiado o ilícito de la información aparecida en éste sitio web."}),a.jsx("p",{children:"El titular no asumirá ninguna responsabilidad derivada del uso por terceros del contenido del sitio web y podrá ejercitar todas las acciones civiles o penales que le correspondan en caso de infracción de estos derechos por parte del usuario."}),a.jsx("p",{children:"El usuario, cuando accede a la web, lo hace por su propia cuenta y riesgo. El titular no garantiza la ausencia de virus u otros elementos lesivos que pudieran causar daños o alteraciones en el sistema informático, en los documentos electrónicos o en los ficheros del usuario de este sitio web. En consecuencia, el titular no responde por los daños y perjuicios que tales elementos pudieran ocasionar al usuario o a terceros."}),a.jsx("p",{children:"Éste sitio web puede contener enlaces (links) a otras páginas de terceros que su titular no puede controlar. Por lo tanto, el titular de éste sitio web no puede asumir responsabilidades por el contenido que pueda aparecer en las páginas de terceros."})]}),a.jsxs(Ws,{title:"Propiedad intelectual e industrial",children:[a.jsx("p",{children:"Está absolutamente prohibido el uso por terceros de éste sitio web o de alguno de sus elementos con fines comerciales o ilícitos."}),a.jsx("p",{children:"Los textos, imágenes, sonidos, animaciones, software, diseño, código fuente y el resto de contenidos incluidos en éste sitio web son propiedad exclusiva del titular de la misma o de sus respectivas compañías. Cualquier acto de transmisión, modificación, distribución, cesión, reproducción, almacenamiento o comunicación pública total o parcial debe contar con el consentimiento expreso del titular de ésta web."})]}),a.jsxs(Ws,{title:"Enlaces con otros sitios web",children:[a.jsx("p",{children:"Éste sitio web puede ofrecer enlaces con otros sitios web que entendemos que pueden ser de utilidad para los usuarios."}),a.jsx("p",{children:"En los mencionados enlaces no se aplican los términos y condiciones de esta política de privacidad y confidencialidad. Por tanto, la inclusión no implica obligación por parte del titular de éste sitio web de acceder a los productos o servicios que en ellas se anuncian o venden."})]}),a.jsx(Ws,{title:"Actualización y modificación de la página web",children:a.jsx("p",{children:"El titular de éste sitio web se reserva el derecho de actualizar, modificar o eliminar la información contenida en su página web, y su configuración o presentación, en cualquier momento, sin previo aviso y sin asumir ningún tipo de responsabilidad por hacerlo."})}),a.jsx(Ws,{title:"Textos, imágenes e ilustraciones",children:a.jsx("p",{children:"Los textos, imágenes, sonidos, animaciones, software, diseño, código fuente y el resto de contenidos incluidos en éste sitio web son propiedad exclusiva del titular de la misma o de sus respectivas compañías. Cualquier acto de transmisión, modificación, distribución, cesión, reproducción, almacenamiento o comunicación pública total o parcial debe contar con el consentimiento expreso del titular de ésta web."})}),a.jsxs(Ws,{title:"Aviso legal · Política de privacidad",children:[a.jsx("p",{children:"En cumplimiento de la Ley vigente de Protección de Datos de Carácter Personal, le informamos que los datos personales que nos suministre a través de la web www.modulya.com serán tratados de forma confidencial. Pueden ser almacenados en bases de datos automatizadas o no, cuya titularidad corresponde en exclusiva a Modulya S.L. El titular ha adoptado las medidas de índole técnica y organizativas necesarias para garantizar la seguridad e integridad de los mismos."}),a.jsx("h3",{className:"text-xl text-foreground font-light pt-4",children:"1. Identificación"}),a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"1.1."})," La persona que acceda a este sitio web (en adelante, el usuario) asegura que tiene capacidad legal para ello y es mayor de edad."]}),a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"1.2."})," Mediante el acceso a este sitio web, el usuario acepta expresamente todas las cláusulas de su aviso legal, de esta política de privacidad, y de su política de cookies en caso que este sitio web las use y lo haya reflejado en las condiciones de uso, así como de todas aquellas condiciones particulares recogidas para la utilización de determinados servicios. En caso de no aceptar alguna de las citadas cláusulas, el usuario deberá abstenerse de acceder a este sitio web."]}),a.jsx("h3",{className:"text-xl text-foreground font-light pt-4",children:"2. Veracidad de los datos"}),a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"2.1."})," El usuario garantiza que los datos aportados son verdaderos, exactos, completos y actualizados, siendo responsable de cualquier daño o perjuicio, directo o indirecto, que pudiera ocasionarse como consecuencia del incumplimiento de tal obligación."]}),a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"2.2."})," En el caso de que los datos aportados pertenecieran a un tercero, el usuario garantiza que ha informado a dicho tercero y obtenido su autorización para facilitar sus datos personales al titular de este sitio web."]}),a.jsx("h3",{className:"text-xl text-foreground font-light pt-4",children:"3. Finalidad del tratamiento de los datos"}),a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"3.1."})," Los datos personales que el usuario aporte voluntariamente a través del apartado de Contacto de este sitio web serán recogidos para poder proporcionar nuestros servicios y mantener el tratamiento y actividad profesional con el interesado."]}),a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"3.2."})," No se procederá a la comunicación a terceros de los datos personales, salvo en aquellos casos en los que fuere imprescindible para la correcta prestación del servicio y a menos que específicamente sea requerido por ley."]}),a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"3.3."})," Los datos serán suprimidos cuando, por cualquier motivo, ya no se cumpla con la finalidad del tratamiento o dejen de ser necesarios para el cumplimiento de la misma."]}),a.jsx("h3",{className:"text-xl text-foreground font-light pt-4",children:"4. Derechos"}),a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"4.1."}
451)," Le comunicamos que podrá retirar su consentimiento en cualquier momento. Asimismo, le asisten los derechos de acceso, rectificación o supresión de sus datos personales y de limitación u oposición al tratamiento, así como su derecho a presentar una reclamación ante la autoridad de control (Agencia Española de Protección de Datos, c/ Jorge Juan, nº 6, 28001 Madrid,"," ",a.jsx("a",{href:"https://www.agpd.es",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-foreground transition-colors",children:"www.agpd.es"}),")."]}),a.jsx("p",{children:"Para ejercer su derecho de acceso, rectificación, supresión de sus datos personales y de limitación u oposición al tratamiento, utilice el formulario de contacto o envíe un correo ordinario a la siguiente dirección: calle El Cerro nº 23 bajo, 21730, Almonte (Huelva)."})]}),a.jsx("div",{className:"pt-8 border-t border-border",children:a.jsx(F,{to:"/contact",className:"text-sm text-muted-foreground hover:text-foreground transition-colors",children:"← Volver al formulario de contacto"})})]})})}),a.jsx(fe,{})]}),Zs=({title:e,children:t})=>a.jsxs("div",{className:"space-y-4",children:[a.jsx("h2",{className:"text-2xl md:text-3xl font-light text-architectural",style:{color:"#b1c854"},children:e}),a.jsx("div",{className:"space-y-4 text-muted-foreground leading-relaxed",children:t})]}),lP=()=>a.jsxs("div",{className:"min-h-screen",children:[a.jsx(ue,{title:"Política de cookies | Modulya",description:"Política de cookies de Modulya: tipos de cookies utilizadas, finalidades y opciones de configuración del usuario.",path:"/cookies"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-32 bg-background",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-3xl mx-auto space-y-12",children:[a.jsxs("header",{className:"space-y-4",children:[a.jsx("p",{className:"text-minimal text-muted-foreground",children:"POLÍTICA DE COOKIES"}),a.jsx("h1",{className:"text-4xl md:text-6xl font-light text-architectural",children:"Política de cookies"}),a.jsx("p",{className:"text-muted-foreground",children:"De conformidad con el artículo 22.2 de la Ley 34/2002, de Servicios de la Sociedad de la Información y de Comercio Electrónico (LSSI-CE), el Reglamento (UE) 2016/679 (RGPD) y la Ley Orgánica 3/2018 de Protección de Datos Personales y garantía de los derechos digitales (LOPDGDD), así como las directrices de la Agencia Española de Protección de Datos (AEPD), informamos sobre el uso de cookies en este sitio."}),a.jsx("div",{children:a.jsx(st,{onClick:m6,children:"Configurar mis cookies"})})]}),a.jsx(Zs,{title:"¿Qué son las cookies?",children:a.jsx("p",{children:"Las cookies son pequeños archivos de texto que los sitios web instalan en el dispositivo del usuario al navegar por ellos. Permiten almacenar y recuperar información sobre la navegación con distintas finalidades (técnicas, analíticas, de personalización o publicitarias)."})}),a.jsxs(Zs,{title:"Tipos de cookies utilizadas",children:[a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"Técnicas (necesarias):"})," imprescindibles para el funcionamiento del sitio, la seguridad y la prestación del servicio solicitado. Están exentas del deber de consentimiento conforme al art. 22.2 LSSI."]}),a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"Preferencias:"})," permiten recordar opciones del usuario, como el idioma o el tema visual, para personalizar la experiencia."]}),a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"Analíticas:"})," recopilan información de forma agregada y anónima sobre el uso del sitio para mejorar su funcionamiento y contenidos."]}),a.jsxs("p",{children:[a.jsx("strong",{className:"text-foreground",children:"Marketing:"})," permiten mostrar contenidos y comunicaciones relevantes y medir la eficacia de campañas, en su caso a través de terceros."]})]}),a.jsx(Zs,{title:"Cookies propias y de terceros",children:a.jsx("p",{children:"Este sitio puede utilizar cookies propias (gestionadas por Modulya S.L.) y de terceros (gestionadas por proveedores externos) para los fines descritos. Los terceros pueden tratar datos en sus propias políticas de privacidad, accesibles desde sus respectivas páginas."})}),a.jsx(Zs,{title:"Base jurídica y consentimiento",children:a.jsx("p",{children:"Para las cookies no técnicas, la base jurídica es el consentimiento expreso del usuario, otorgado mediante el panel de configuración al acceder al sitio. El consentimiento puede modificarse o retirarse en cualquier momento desde esta página, sin que ello afecte a la licitud del tratamiento previo."})}),a.jsx(Zs,{title:"Conservación",children:a.jsx("p",{children:"Las preferencias de consentimiento se conservan durante un máximo de 24 meses, tras los cuales se volverá a solicitar el consentimiento. El usuario puede revocarlo o modificarlo en cualquier momento."})}),a.jsxs(Zs,{title:"Gestión y revocación",children:[a.jsxs("p",{children:["Puedes modificar o retirar tu consentimiento en cualquier momento usando el botón"," ",a.jsx("strong",{className:"text-foreground",children:"Configurar mis cookies"})," situado al inicio de esta página. También puedes bloquear o eliminar las cookies instaladas desde la configuración de tu navegador:"]}),a.jsxs("ul",{className:"list-disc pl-6 space-y-1",children:[a.jsx("li",{children:"Google Chrome — Configuración › Privacidad y seguridad › Cookies"}),a.jsx("li",{children:"Mozilla Firefox — Ajustes › Privacidad y seguridad"}),a.jsx("li",{children:"Safari — Preferencias › Privacidad"}),a.jsx("li",{children:"Microsoft Edge — Configuración › Cookies y permisos del sitio"})]}),a.jsx("p",{children:"La desactivación de cookies técnicas puede impedir el correcto funcionamiento del sitio."})]}),a.jsx(Zs,{title:"Más información",children:a.jsxs("p",{children:["Para más información sobre el tratamiento de datos personales y los derechos del usuario, consulta nuestro"," ",a.jsx(F,{to:"/privacidad",className:"underline underline-offset-4 hover:text-foreground",children:"aviso legal y política de privacidad"}),"."]})})]})})}),a.jsx(fe,{})]}
451),cc=[{id:"guia-senior-living-industrializado",title:"Guía del Senior Living Industrializado: ventajas del sistema MODUSS",excerpt:"Cómo la construcción modular e industrializada resuelve los grandes retos del senior living en España: accesibilidad, bienestar, plazos y comunidad, con neuroarquitectura y biofilia integradas desde el diseño.",content:`
452# Guía del Senior Living Industrializado: ventajas del sistema MODUSS
453
454El envejecimiento de la población en España es una de las transformaciones sociales más profundas de las próximas décadas. Según el INE, más de un tercio de la población superará los 65 años en 2050. Frente a este reto, el **senior living industrializado** se consolida como la respuesta más eficiente, sostenible y humana para ofrecer espacios que verdaderamente dignifiquen la vida en la etapa mayor.
455
456En esta guía repasamos qué es el senior living industrializado, por qué la **construcción modular** es especialmente adecuada para este segmento y cómo el sistema **MODUSS** de Modulya integra neuroarquitectura, biofilia y diseño centrado en las personas para crear entornos residenciales de nueva generación.
457
458## ¿Qué es el Senior Living Industrializado?
459
460El senior living industrializado es un modelo de residencias, apartamentos con servicios y comunidades para personas mayores en el que los edificios se **fabrican en entornos controlados** —módulos 2D y 3D— y se ensamblan en obra en plazos muy reducidos. A diferencia de la construcción tradicional, permite:
461
462- Planificar con **certidumbre de coste y plazo**.
463- Alcanzar **estándares de calidad repetibles**, proyecto tras proyecto.
464- Reducir de forma significativa la **huella de carbono** y los residuos en obra.
465- Minimizar el impacto en el entorno durante la ejecución (menos ruido, menos tráfico, menos molestias a comunidades vecinas).
466
467El resultado son proyectos que **pueden replicarse** en distintas ubicaciones sin perder identidad, calidad ni el cuidado en el detalle que exigen los usuarios sénior.
468
469## Por qué el sector Senior Living necesita industrialización
470
471El mercado de **senior living en España** crece a doble dígito, pero se enfrenta a tres cuellos de botella estructurales que la construcción tradicional agrava:
472
4731. **Escasez de plazas.** La oferta actual no cubre la demanda proyectada; hacen falta miles de nuevas unidades cada año.
4742. **Plazos largos y sobrecostes.** Un proyecto tradicional puede extenderse 24–36 meses con desviaciones frecuentes en coste.
4753. **Estándares de calidad heterogéneos.** La dependencia de gremios distintos en cada obra dificulta garantizar el mismo nivel de acabado, accesibilidad y confort.
476
477La **construcción modular** aborda estos tres retos simultáneamente: fabrica en paralelo a la obra civil, controla calidad en fábrica y despliega proyectos con un 30–50 % menos de tiempo total. Para promotores, fondos e inversores esto se traduce en **rotación más rápida del capital** y una **narrativa ESG creíble**.
478
479## El sistema MODUSS aplicado al Senior Living
480
481MODUSS es el sistema constructivo industrializado de Modulya, pensado desde el origen para responder a los retos del hábitat contemporáneo. Aplicado al senior living, cristaliza en cinco ventajas concretas:
482
483### 1. Accesibilidad universal desde el diseño
484
485Los módulos MODUSS se diseñan con **anchos de paso, radios de giro y alturas** compatibles con silla de ruedas, andadores y ayudas técnicas. Baños asistidos, puertas correderas y transiciones sin resaltes vienen integradas de fábrica, no como añadidos posteriores. Esto elimina las adaptaciones costosas típicas de reformas tradicionales.
486
487### 2. Neuroarquitectura para el bienestar cognitivo
488
489La **neuroarquitectura** estudia cómo el espacio construido afecta al cerebro, especialmente relevante en personas mayores con deterioro cognitivo. En los proyectos senior living de Modulya aplicamos:
490
491- **Recorridos legibles** con hitos visuales claros, que reducen la desorientación.
492- **Iluminación circadiana** que respeta los ritmos biológicos y mejora la calidad del sueño.
493- **Acústica controlada** para minimizar el estrés y facilitar la comunicación.
494- **Contrastes cromáticos calibrados** que ayudan a personas con baja visión.
495
496### 3. Biofilia: naturaleza dentro del edificio
497
498La **biofilia** —el vínculo innato del ser humano con la naturaleza— reduce el estrés, la presión arterial y la percepción del dolor. En senior living se traduce en:
499
500- Patios ajardinados y terrazas accesibles integradas en los módulos.
501- Materiales nobles (madera, piedra, textiles naturales) en zonas comunes y privadas.
502- Vistas cruzadas a vegetación desde estancias principales.
503- Ventilación natural cruzada y **luz natural profunda** en habitaciones.
504
505### 4. Diseño de comunidad y contra la soledad no deseada
506
507La soledad no deseada es uno de los grandes problemas de salud pública asociados al envejecimiento. La modulación MODUSS permite orquestar tipologías —estudios, apartamentos, salas comunes, talleres, cafetería, huerto, capilla— en torno a **plazas y calles interiores** que favorecen el encuentro casual. La geometría del espacio se convierte en la primera herramienta contra el aislamiento.
508
509### 5. Rapidez de ejecución y menor impacto en el entorno
510
511Un proyecto MODUSS puede reducir el plazo de obra hasta un **50 %** frente al modelo tradicional. Para operadores de residencias esto significa **empezar a generar ingresos antes** y para el entorno significa menos meses de ruido, polvo y tráfico pesado —un factor clave cuando la obra se ubica cerca de núcleos habitados o de otros usuarios sénior.
512
513## Sostenibilidad y ESG en Senior Living Modular
514
515La construcción industrializada reduce residuos de obra en torno al 70 %, minimiza consumos de agua y energía en la fase de ejecución y facilita la **circularidad de materiales**. Combinado con envolventes de alta eficiencia, sistemas de energía renovable y monitorización digital, cada residencia MODUSS puede certificarse fácilmente en estándares como Passivhaus o BREEAM, alineándose con los criterios ESG de los fondos de inversión inmobiliaria.
516
517## Casos reales: Almonte y Cuatrovitas
518
519Modulya ha desarrollado dos proyectos de referencia en el segmento senior living en Andalucía:
520
521- **[Senior Living Almonte](/work/senior-living-almonte):** una comunidad concebida como un pueblo interior, con calles y plazas que invitan al encuentro, integrada con el paisaje de Doñana.
522- **[Senior Living Cuatrovitas](/work/senior-living-cuatrovitas):** un complejo residencial con piscina, jardines y accesos accesibles, diseñado bajo criterios de biofilia y neuroarquitectura.
523
524Ambos comparten el mismo ADN: el sistema **MODUSS**, un diseño centrado en las personas y una industrialización Lean que garantiza calidad y plazo.
525
526## Conclusión: el futuro del senior living es industrializado
527
528El senior living en España no puede escalar con los métodos del siglo XX. La combinación de **construcción modular**, neuroarquitectura, biofilia y una capa digital de trazabilidad extremo a extremo es hoy la vía más solvente para construir residencias que sean, a la vez, rentables para el promotor, sostenibles para el planeta y verdaderamente dignas para quienes las habitan.
529
530Si estás evaluando el desarrollo de una residencia, un complejo de apartamentos con servicios o un proyecto co-living sénior, **[hablemos](/contact)**. En Modulya diseñamos, fabricamos y entregamos espacios extraordinarios para dignificar la vida.
531    `,author:"Equipo Modulya",date:"2026-07-05",readTime:"9 min de lectura",category:"SENIOR LIVING",image:"/__l5e/assets-v1/senior-living-almonte-cover.jpg"},{id:"sustainable-architecture-future",title:"The Future of Sustainable Architecture",excerpt:"Exploring how modern architectural practices are evolving to meet environmental challenges while maintaining design excellence.",content:`
532# The Future of Sustainable Architecture
533
534The architectural landscape is undergoing a profound transformation as we face the urgent need to address climate change and environmental degradation. Sustainable architecture is no longer a niche consideration—it has become the cornerstone of responsible design practice.
535
536## Defining Sustainable Architecture
537
538Sustainable architecture encompasses more than just energy efficiency. It represents a holistic approach to building design that considers the entire lifecycle of a structure, from material sourcing to end-of-life disposal. This philosophy integrates environmental, social, and economic factors to create buildings that not only minimize their ecological footprint but also enhance the quality of life for their occupants.
539
540## Key Principles of Sustainable Design
541
542### Material Selection
543The choice of building materials plays a crucial role in sustainable architecture. Architects are increasingly turning to:
544- Recycled and upcycled materials
545- Locally sourced materials to reduce transportation emissions
546- Bio-based materials like bamboo, cork, and mycelium
547- Materials with low embodied energy
548
549### Energy Efficiency
550Modern sustainable buildings incorporate:
551- Passive solar design principles
552- High-performance insulation systems
553- Smart building technologies
554- Renewable energy integration
555- Natural ventilation strategies
556
557### Water Management
558Sustainable architecture addresses water conservation through:
559- Rainwater harvesting systems
560- Greywater recycling
561- Permeable landscaping
562- Low-flow fixtures and appliances
563
564## Emerging Trends
565
566The future of sustainable architecture is being shaped by several emerging trends:
567
568### Biophilic Design
569The integration of natural elements into built environments is gaining momentum. This approach recognizes the innate human connection to nature and seeks to incorporate natural light, ventilation, vegetation, and organic forms into architectural design.
570
571### Circular Economy Principles
572Architects are beginning to design for disassembly, creating buildings that can be easily deconstructed and their materials reused in new projects. This approach challenges the traditional linear model of construction and waste.
573
574### Carbon-Neutral and Carbon-Negative Buildings
575The next generation of sustainable buildings aims not just to minimize carbon emissions but to actively remove carbon from the atmosphere through innovative design and material choices.
576
577## Challenges and Opportunities
578
579While the path toward sustainable architecture presents challenges—including higher upfront costs, regulatory barriers, and the need for specialized knowledge—it also offers tremendous opportunities. These include reduced operational costs, improved occupant health and productivity, and the potential to create resilient communities that can adapt to changing environmental conditions.
580
581## Conclusion
582
583The future of architecture lies in our ability to create buildings that work in harmony with natural systems. As architects, we have the responsibility and the opportunity to design a built environment that supports both human well-being and planetary health. The transition to sustainable architecture is not just an environmental imperative—it is a creative challenge that will define the next era of architectural innovation.
584    `,author:"Sarah Chen",date:"2024-03-15",readTime:"8 min read",category:"SUSTAINABILITY",image:"/src/assets/blog-sustainable-architecture.jpg"},{id:"minimalism-modern-living",title:"Minimalism in Modern Living Spaces",excerpt:"How the principles of minimalist design are reshaping contemporary residential architecture and interior spaces.",content:`
585# Minimalism in Modern Living Spaces
586
587In an era of overwhelming digital noise and material excess, minimalist architecture offers a sanctuary of calm and clarity. This design philosophy, rooted in the Japanese concept of "ma" (negative space) and Scandinavian functionality, has evolved into a defining characteristic of contemporary residential design.
588
589## The Philosophy Behind Minimalism
590
591Minimalist architecture is not about creating empty or stark spaces—it's about intentional design choices that prioritize function, beauty, and the essential elements of living. The approach emp
591hasizes:
592
593- **Simplicity over complexity**
594- **Quality over quantity**
595- **Space over stuff**
596- **Light over ornament**
597
598## Core Elements of Minimalist Design
599
600### Clean Lines and Geometric Forms
601Minimalist architecture favors simple geometric shapes and clean lines. This creates a sense of order and tranquility that serves as a backdrop for daily life. The absence of decorative elements allows the architecture itself to become the focal point.
602
603### Natural Materials
604The minimalist palette typically includes:
605- Raw concrete
606- Natural wood
607- Steel and glass
608- Stone and marble
609- Neutral textiles
610
611These materials are chosen for their inherent beauty and authenticity, often displayed in their natural state without excessive finishing or treatment.
612
613### Strategic Use of Light
614Natural light becomes a design element in minimalist spaces. Large windows, skylights, and glass walls not only illuminate the interior but create a connection with the outdoors. The interplay of light and shadow throughout the day adds depth and interest to otherwise simple surfaces.
615
616### Functional Furniture and Built-ins
617Every piece serves a purpose in minimalist design. Furniture is often built-in or carefully selected for both function and aesthetic value. Storage solutions are integrated seamlessly into the architecture, maintaining the clean lines while providing necessary functionality.
618
619## The Psychology of Minimalist Living
620
621Research in environmental psychology suggests that minimalist spaces can have profound effects on mental well-being:
622
623### Reduced Stress and Anxiety
624Clutter-free environments have been shown to reduce cortisol levels and promote feelings of calm and control.
625
626### Enhanced Focus and Productivity
627With fewer visual distractions, occupants often report improved concentration and mental clarity.
628
629### Greater Appreciation for Quality
630When surrounded by fewer but higher-quality items, people tend to develop a deeper appreciation for craftsmanship and design.
631
632## Challenges and Considerations
633
634### Storage Solutions
635One of the biggest challenges in minimalist design is providing adequate storage while maintaining clean aesthetics. This requires creative solutions such as:
636- Hidden storage compartments
637- Multi-functional furniture
638- Dedicated storage rooms or areas
639
640### Personalization
641Creating minimalist spaces that feel warm and personal requires careful curation of meaningful objects and artwork.
642
643### Maintenance
644Minimalist spaces can show wear and dirt more easily, requiring consistent maintenance to preserve their pristine appearance.
645
646## Minimalism and Sustainability
647
648The minimalist approach aligns naturally with sustainable design principles:
649- **Reduced material consumption**
650- **Focus on durability over trends**
651- **Energy efficiency through passive design**
652- **Long-term thinking over short-term aesthetics**
653
654## Conclusion
655
656Minimalism in modern living spaces represents more than just an aesthetic choice—it's a lifestyle philosophy that prioritizes intention, quality, and well-being. As our lives become increasingly complex, the simplicity and clarity of minimalist design offer a path toward more meaningful and sustainable ways of living.
657
658The challenge for architects and designers is to create minimalist spaces that feel alive and welcoming rather than cold or sterile. When executed thoughtfully, minimalist design can provide the perfect canvas for life's most important moments.
659    `,author:"Marcus Rodriguez",date:"2024-03-10",readTime:"6 min read",category:"DESIGN",image:"/src/assets/blog-minimalist-living.jpg"},{id:"urban-planning-community-spaces",title:"Urban Planning and Community Spaces",excerpt:"Examining the role of thoughtful urban planning in creating vibrant, inclusive communities through architectural design.",content:`
660# Urban Planning and Community Spaces
661
662The fabric of our cities is woven through the careful orchestration of public and private spaces, each contributing to the complex ecosystem of urban life. As populations continue to urbanize, the role of thoughtful urban planning and community-centered architectural design becomes increasingly critical in shaping livable, sustainable, and equitable cities.
663
664## The Evolution of Urban Planning
665
666Urban planning has evolved from purely functional considerations—managing traffic flow, utilities, and zoning—to encompass broader goals of social equity, environmental sustainability, and community well-being. This shift recognizes that cities are not just collections of buildings and infrastru
666cture, but complex social organisms that require careful nurturing.
667
668### From Zoning to Place-Making
669
670Traditional zoning practices often created segregated, single-use districts that required extensive commuting and limited social interaction. Contemporary urban planning embraces mixed-use development and place-making strategies that:
671
672- **Encourage walkability and cycling**
673- **Mix residential, commercial, and office spaces**
674- **Create destinations rather than just developments**
675- **Foster chance encounters and community building**
676
677## The Architecture of Community
678
679Community spaces serve as the living rooms of our cities—places where strangers become neighbors, where cultural exchange happens naturally, and where the social fabric of urban life is strengthened.
680
681### Public Squares and Plazas
682Well-designed public squares act as outdoor rooms that can accommodate a variety of activities:
683- **Markets and festivals**
684- **Informal gatherings and people-watching**
685- **Children's play and elderly socialization**
686- **Political demonstrations and civic engagement**
687
688### Community Centers and Libraries
689Modern community centers are evolving beyond their traditional roles to become:
690- **Flexible spaces that adapt to different needs**
691- **Technology hubs providing digital access**
692- **Venues for lifelong learning and skill development**
693- **Safe havens during emergencies or extreme weather**
694
695### Parks and Green Spaces
696Urban parks provide essential ecosystem services while creating opportunities for recreation, contemplation, and community gathering. Effective park design considers:
697- **Diverse programming for different age groups**
698- **Seasonal activities and year-round usability**
699- **Biodiversity and habitat creation**
700- **Stormwater management and climate resilience**
701
702## Principles of Inclusive Design
703
704Creating truly community-centered spaces requires attention to inclusivity and accessibility:
705
706### Universal Design
707Spaces should be usable by people of all abilities, ages, and backgrounds. This includes:
708- **Physical accessibility through ramps, elevators, and clear sightlines**
709- **Sensory considerations for those with hearing or visual impairments**
710- **Cultural sensitivity in programming and design**
711- **Economic accessibility through free or low-cost activities**
712
713### Safety and Comfort
714Community spaces must feel safe and welcoming to all users:
715- **Good lighting and clear sightlines**
716- **Natural surveillance through strategic positioning**
717- **Comfortable seating and weather protection**
718- **Clean and well-maintained facilities**
719
720## The Role of Participation
721
722Successful community spaces are designed with, not just for, the people who will use them. Participatory design processes involve:
723
724### Community Engagement
725- **Public meetings and design charrettes**
726- **Surveys and focus groups with diverse stakeholders**
727- **Pop-up installations to test design ideas**
728- **Ongoing feedback and adaptation**
729
730### Cultural Responsiveness
731Understanding the specific cultural context of a community is essential:
732- **Recognizing existing social patterns and traditions**
733- **Incorporating local materials and architectural vernacular**
734- **Supporting local businesses and economies**
735- **Celebrating cultural diversity through programming and design**
736
737## Technology and Smart Cities
738
739The integration of technology into urban planning offers new opportunities for community building:
740
741### Digital Infrastructure
742- **Free Wi-Fi in public spaces**
743- **Digital wayfinding and information systems**
744- **Online platforms for community organizing**
745- **Data collection for continuous improvement**
746
747### Responsive Design
748Smart city technologies can make spaces more adaptive to community needs:
749- **Lighting that responds to usage patterns**
750- **Flexible infrastructure for different events**
751- **Real-time feedback systems**
752- **Environmental monitoring for health and comfort**
753
754## Challenges and Opportunities
755
756### Gentrification and Displacement
757Well-designed community spaces can inadvertently contribute to gentrification. Planners must consider:
758- **Affordable housing preservation**
759- **Local business protection**
760- **Community ownership models**
761- **Equitable development strategies**
762
763### Climate Change Adaptation
764Urban planning must increasingly consider climate resilience:
765- **Heat island effect mitigation**
766- **Flood management and permeable surfaces**
767- **Emergency shelter and evacuation routes**
768- **Food security and urban agriculture**
769
770## Case Studies in Success
771
772### Copenhagen's Public Spaces
773Copenhagen has transformed itself into one of the world's most livable cities through strategic investment in:
774- **Extensive cycling infrastructure**
775- **Year-round public space programming**
776- **Climate-adapted design for Nordic conditions**
777- **Strong public-private partnerships**
778
779### Medellín's Urban Acupuncture
780Medellín, Colombia, has used targeted architectural interventions to transform neighborhoods:
781- **Library parks in underserved areas**
782- **Cable car systems connecting hillside communities**
783- **Green corridors along waterways**
784- **Community-led improvement projects**
785
786## The Future of Community-Centered Design
787
788As we look toward the future, several trends are shaping community-centered urban design:
789
790### Tactical Urbanism
791Temporary, low-cost interventions that test ideas before permanent implementation:
792- **Pop-up parks and parklets**
793- **Temporary bike lanes**
794- **Street art and murals**
795- **Community gardens**
796
797### Intergenerational Design
798Spaces that bring together people of all ages:
799- **Playgrounds adjacent to senior seating**
800- **Community workshops and maker spaces**
801- **Intergenerational housing models**
802- **Shared learning environments**
803
804## Conclusion
805
806The future of our cities depends on our ability to create spaces that strengthen community bonds while addressing the challenges of urbanization, climate change, and social inequality. Through thoughtful urban planning and community-centered architectural design, we can build cities that are not just efficient and sustainable, but truly livable for all their inhabitants.
807
808The most successful community spaces are those that grow and evolve with their users, adapting to changing needs while maintaining their essential character as places of gathering, exchange, and belonging. As architects and planners, our role is to provide the physical framework for community life while remaining flexible enough to support the unexpected ways that people will inhabit and transform these spaces.
809    `,author:"Elena Nakamura",date:"2024-03-05",readTime:"10 min read",category:"URBAN PLANNING",image:"/src/assets/blog-urban-planning.jpg"}],cP=()=>{const[e,t]=g.useState("TODOS"),n=["TODOS","SOSTENIBILIDAD","DISEÑO","URBANISMO"],s={SOSTENIBILIDAD:"SUSTAINABILITY",DISEÑO:"DESIGN",URBANISMO:"URBAN PLANNING"},r=e==="TODOS"?cc:cc.filter(i=>i.category===s[e]);return a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Blog — Modulya",description:"Ideas, casos y aprendizajes sobre construcción modular, sostenibilidad, diseño y urbanismo desde el equipo de Modulya.",path:"/blog"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"mb-12",children:[a.jsx("h1",{className:"text-6xl md:text-8xl font-light text-architectural mb-8",children:"ARTÍCULOS"}),a.jsx("p",{className:"text-xl text-muted-foreground max-w-3xl",children:"Explorando la intersección entre arquitectura, diseño y experiencia humana a través de análisis reflexivos y perspectivas contemporáneas."})]})})})}),a.jsx("section",{className:"pb-16",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsx("div",{className:"flex flex-wrap gap-8 justify-center md:justify-start",children:n.map(i=>a.jsxs("button",{onClick:()=>t(i),className:`text-minimal transition-colors duration-300 relative group ${e===i?"text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[i,a.jsx("span",{className:`absolute bottom-0 left-0 w-full h-px bg-foreground transition-transform duration-300 origin-left ${e===i?"scale-x-100":"scale-x-0 group-hover:scale-x-100"}`})]},i))})})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-12 lg:gap-16",children:r.map(i=>a.jsx("article",{className:"group",children:a.jsxs(F,{to:`/blog/${i.id}`,className:"block",children:[a.jsxs("div",{className:"relative overflow-hidden mb-6",children:[a.jsx("img",{src:i.image,alt:i.title,className:"w-full h-64 object-cover transition-transform duration-700 group-hover:scale-105"}),a.jsx("div",{className:"absolute inset-0 bg-black/20 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute top-4 left-4 bg-background/90 backdrop-blur-sm px-3 py-1",children:a.jsx("span",{className:"text-xs text-foreground font-medium",children:i.category})})]}),a.jsxs("div",{className:"space-y-4",children:[a.jsxs("div",{className:"flex items-center text-xs text-muted-foreground space-x-4",children:[a.jsx("span",{children:i.date}),a.jsx("span",{children:"•"}),a.jsx("span",{children:i.readTime}),a.jsx("span",{children:"•"}),a.jsx("span",{children:i.author})]}),a.jsx("h2",{className:"text-xl lg:text-2xl font-light text-architectural group-hover:text-muted-foreground transition-colors duration-500",children:i.title}),a.jsx("p",{className:"text-muted-foreground leading-relaxed line-clamp-3",children:i.excerpt}),a.jsx("div",{className:"pt-4",children:a.jsx("span",{className:"text-minimal text-foreground hover:text-muted-foreground transition-colors duration-300 relative group-hover:underline",children:"LEER MÁS"})})]})]})},i.id))})})})}),a.jsx("section",{className:"py-32 bg-muted",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[a.jsx("h2",{className:"text-4xl md:text-6xl font-light text-architectural mb-8",children:"Mantente Informado"}),a.jsx("p",{className:"text-xl text-muted-foreground mb-12",children:"Suscríbete a nuestro boletín para las últimas novedades en arquitectura y diseño"}),a.jsxs("div",{className:"flex flex-col sm:flex-row gap-4 max-w-lg mx-auto",children:[a.jsx("input",{type:"email",placeholder:"Introduce tu email",className:"flex-1 px-6 py-4 bg-background border border-border text-foreground placeholder:text-muted-foreground"}),a.jsx("button",{className:"px-8 py-4 bg-foreground text-background rounded-xl font-semibold hover:bg-muted-foreground transition-colors duration-300",children:"SUSCRIBIRSE"})]})]})})}),a.jsx(fe,{})]})},dP=()=>{const{id:e}=I8(),t=cc.find(n=>n.id===e);return t?a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:`${t.title} | Modulya`,description:t.excerpt,path:`/blog/${t.id}`,type:"article",image:t.image}),a.jsx(de,{}),a.jsx("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify({"@context":"https://schema.org","@type":"Article",headline:t.title,de
809scription:t.excerpt,image:t.image,datePublished:t.date,author:{"@type":"Person",name:t.author},publisher:{"@type":"Organization",name:"Modulya",logo:{"@type":"ImageObject",url:"https://modulya.lovable.app/videos/hero-poster.jpg"}},mainEntityOfPage:`https://modulya.lovable.app/blog/${t.id}`,articleSection:t.category})}}),a.jsx("article",{className:"pt-32 pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-4xl mx-auto",children:[a.jsx(F,{to:"/blog",className:"inline-block text-minimal text-muted-foreground hover:text-foreground transition-colors duration-300 mb-12",children:"← VOLVER AL BLOG"}),a.jsxs("div",{className:"mb-8",children:[a.jsxs("div",{className:"flex items-center text-minimal text-muted-foreground space-x-4 mb-6",children:[a.jsx("span",{className:"bg-muted px-3 py-1 text-foreground",children:t.category}),a.jsx("span",{children:t.date}),a.jsx("span",{children:"•"}),a.jsx("span",{children:t.readTime}),a.jsx("span",{children:"•"}),a.jsx("span",{children:t.author})]}),a.jsx("h1",{className:"text-4xl md:text-6xl font-light text-architectural mb-6",children:t.title}),a.jsx("p",{className:"text-xl text-muted-foreground leading-relaxed",children:t.excerpt})]}),a.jsx("div",{className:"w-full h-96 mb-12 overflow-hidden",children:a.jsx("img",{src:t.image,alt:t.title,className:"w-full h-full object-cover hover:scale-105 transition-transform duration-700"})}),a.jsx("div",{className:"prose prose-lg max-w-none",children:a.jsx("div",{className:"text-muted-foreground leading-relaxed space-y-6",dangerouslySetInnerHTML:{__html:t.content.split(`
810`).map(n=>n.startsWith("# ")?`<h1 class="text-3xl md:text-4xl font-light text-architectural mb-8 mt-12">${n.substring(2)}</h1>`:n.startsWith("## ")?`<h2 class="text-2xl md:text-3xl font-light text-architectural mb-6 mt-10">${n.substring(3)}</h2>`:n.startsWith("### ")?`<h3 class="text-xl md:text-2xl font-medium text-foreground mb-4 mt-8">${n.substring(4)}</h3>`:n.startsWith("- **")&&n.endsWith("**")?`<li class="ml-6 mb-2"><strong class="text-foreground">${n.substring(4,n.length-2)}</strong></li>`:n.startsWith("- ")?`<li class="ml-6 mb-2">${n.substring(2)}</li>`:n.trim()===""?"<br>":n.startsWith("**")&&n.endsWith("**")?`<p class="mb-4"><strong class="text-foreground">${n.substring(2,n.length-2)}</strong></p>`:`<p class="mb-4">${n}</p>`).join("")}})}),a.jsx("div",{className:"mt-16 pt-8 border-t border-border",children:a.jsxs("div",{className:"flex items-center space-x-4",children:[a.jsx("div",{className:"w-16 h-16 bg-muted rounded-full"}),a.jsxs("div",{children:[a.jsx("h3",{className:"text-lg font-medium text-foreground",children:t.author}),a.jsx("p",{className:"text-muted-foreground",children:"Arquitecto y Escritor"})]})]})}),a.jsxs("div",{className:"mt-20",children:[a.jsx("h3",{className:"text-2xl font-light text-architectural mb-8",children:"Artículos Relacionados"}),a.jsx("div",{className:"grid md:grid-cols-2 gap-8",children:cc.filter(n=>n.id!==t.id&&n.category===t.category).slice(0,2).map(n=>a.jsxs(F,{to:`/blog/${n.id}`,className:"group",children:[a.jsx("div",{className:"w-full h-48 mb-4 overflow-hidden",children:a.jsx("img",{src:n.image,alt:n.title,className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-700"})}),a.jsx("h4",{className:"text-lg font-light text-architectural group-hover:text-muted-foreground transition-colors duration-300 mb-2",children:n.title}),a.jsxs("p",{className:"text-minimal text-muted-foreground",children:[n.date," • ",n.readTime]})]},n.id))})]})]})})}),a.jsx(fe,{})]}):a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(de,{}),a.jsx("div",{className:"pt-32 pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[a.jsx("h1",{className:"text-4xl md:text-6xl font-light text-architectural mb-8",children:"Artículo No Encontrado"}),a.jsx(F,{to:"/blog",className:"text-minimal text-foreground hover:text-muted-foreground transition-colors duration-300",children:"← VOLVER AL BLOG"})]})})})]})},ih=g.forwardRef(({className:e,...t},n)=>a.jsx("div",{ref:n,className:Se("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));
810ih.displayName="Card";const uP=g.forwardRef(({className:e,...t},n)=>a.jsx("div",{ref:n,className:Se("flex flex-col space-y-1.5 p-6",e),...t}));uP.displayName="CardHeader";const fP=g.forwardRef(({className:e,...t},n)=>a.jsx("h3",{ref:n,className:Se("text-2xl font-semibold leading-none tracking-tight",e),...t}));fP.displayName="CardTitle";const pP=g.forwardRef(({className:e,...t},n)=>a.jsx("p",{ref:n,className:Se("text-sm text-muted-foreground",e),...t}));pP.displayName="CardDescription";const oh=g.forwardRef(({className:e,...t},n)=>a.jsx("div",{ref:n,className:Se("p-6 pt-0",e),...t}));oh.displayName="CardContent";const hP=g.forwardRef(({className:e,...t},n)=>a.jsx("div",{ref:n,className:Se("flex items-center p-6 pt-0",e),...t}));hP.displayName="CardFooter";var lh="Progress",ch=100,[mP,Dve]=Na(lh),[gP,bP]=mP(lh),R2=g.forwardRef((e,t)=>{const{__scopeProgress:n,value:s=null,max:r,getValueLabel:i=xP,...o}=e;(r||r===0)&&!lg(r)&&console.error(vP(`${r}`,"Progress"));const l=lg(r)?r:ch;s!==null&&!cg(s,l)&&console.error(yP(`${s}`,"Progress"));const c=cg(s,l)?s:null,d=dc(c)?i(c,l):void 0;return a.jsx(gP,{scope:n,value:c,max:l,children:a.jsx(Ee.div,{"aria-valuemax":l,"aria-valuemin":0,"aria-valuenow":dc(c)?c:void 0,"aria-valuetext":d,role:"progressbar","data-state":z2(c,l),"data-value":c??void 0,"data-max":l,...o,ref:t})})});R2.displayName=lh;var P2="ProgressIndicator",O2=g.forwardRef((e,t)=>{const{__scopeProgress:n,...s}=e,r=bP(P2,n);return a.jsx(Ee.div,{"data-state":z2(r.value,r.max),"data-value":r.value??void 0,"data-max":r.max,...s,ref:t})});O2.displayName=P2;function xP(e,t){return`${Math.round(e/t*100)}%`}function z2(e,t){return e==null?"indeterminate":e===t?"complete":"loading"}function dc(e){return typeof e=="number"}function lg(e){return dc(e)&&!isNaN(e)&&e>0}function cg(e,t){return dc(e)&&!isNaN(e)&&e<=t&&e>=0}function vP(e,t){return`Invalid prop \`max\` of value \`${e}\` supplied to \`${t}\`. Only numbers greater than 0 are valid max values. Defaulting to \`${ch}\`.`}function yP(e,t){return`Invalid prop \`value\` of value \`${e}\` supplied to \`${t}\`. The \`value\` prop must be:
811  - a positive number
812  - less than the value passed to \`max\` (or ${ch} if no \`max\` prop is set)
813  - \`null\` or \`undefined\` if the progress is indeterminate.
814
815Defaulting to \`null\`.`}var I2=R2,_P=O2;const L2=g.forwardRef(({className:e,value:t,...n},s)=>a.jsx(I2,{ref:s,className:Se("relative h-4 w-full overflow-hidden rounded-full bg-secondary",e),...n,children:a.jsx(_P,{className:"h-full w-full flex-1 bg-primary transition-all",style:{transform:`translateX(-${100-(t||0)}%)`}})}));L2.displayName=I2.displayName;function wP(){const e=g.useRef(null);return g.useEffect(()=>{const t=e.current;if(!t)return;const n=t.getContext("2d");let s;const r=[],i=60,o=()=>{t.width=t.offsetWidth*2,t.height=t.offsetHeight*2};o(),window.addEventListener("resize",o);for(let c=0;c<i;c++)r.push({x:Math.random()*t.width,y:Math.random()*t.height,vx:(Math.random()-.5)*.6,vy:(Math.random()-.5)*.6,r:Math.random()*3+1.5});const l=()=>{n.clearRect(0,0,t.width,t.height);const d=document.documentElement.classList.contains("dark")?"255,255,255":"0,0,0";for(const u of r)u.x+=u.vx,u.y+=u.vy,(u.x<0||u.x>t.width)&&(u.vx*=-1),(u.y<0||u.y>t.height)&&(u.vy*=-1);for(let u=0;u<i;u++)for(let f=u+1;f<i;f++){const h=r[u].x-r[f].x,p=r[u].y-r[f].y,y=Math.sqrt(h*h+p*p);y<220&&(n.strokeStyle=`rgba(${d},${.12*(1-y/220)})`,n.lineWidth=1,n.beginPath(),n.moveTo(r[u].x,r[u].y),n.lineTo(r[f].x,r[f].y),n.stroke())}for(const u of r)n.fillStyle=`rgba(${d},0.35)`,n.beginPath(),n.arc(u.x,u.y,u.r,0,Math.PI*2),n.fill();s=requestAnimationFrame(l)};return l(),()=>{cancelAnimationFrame(s),window.removeEventListener("resize",o)}},[]),a.jsx("canvas",{ref:e,className:"absolute inset-0 w-full h-full pointer-events-none","aria-hidden":"true"})}function jP(){const[e,t]=g.useState(!1);return g.useEffect(()=>{requestAnimationFrame(()=>t(!0))},[]),a.jsxs("section",{id:"ia-hero",className:"relative pt-28 pb-4 flex items-center overflow-hidden bg-background",children:[a.jsx(wP,{}),a.jsxs("div",{className:`container mx-auto px-6 relative z-10 py-12 transition-all duration-1000 ease-smooth ${e?"opacity-100 translate-y-0":"opacity-0 translate-y-12"}`,children:[a.jsxs("div",{className:"max-w-3xl",children:[a.jsx("span",{className:"inline-block text-minimal mb-6 px-4 py-1.5 rounded-full border-0 text-xl",style:{color:"#b1c854"},children:"Inteligencia Artificial Organizacional"}),a.jsxs("h1",{className:"text-4xl md:text-6xl lg:text-7xl text-architectural mb-6 text-foreground",children:[a.jsx("span",{className:"font-light uppercase",children:"IA"}),a.jsx("br",{}),a.jsx("span",{className:"text-6xl font-semibold",style:{color:"#1e9eb1"},children:"El Sistema Nervioso Central de modulya"})]}),a.jsx("p",{className:"text-lg md:text-xl mb-10 max-w-xl text-muted-foreground",children:"Detecta habilidades. Orquesta flujos. Personaliza experiencias. Optimiza todo."}),a.jsxs("div",{className:"flex flex-wrap gap-4",children:[a.jsxs(st,{size:"lg",className:"rounded-xl px-8 font-semibold bg-primary text-primary-foreground hover:bg-primary/90",onClick:()=>{var n;return(n=document.getElementById("ia-modelo"))==null?void 0:n.scrollIntoView({behavior:"smooth"})},children:["Descubre el Modelo ",a.jsx(it,{className:"ml-2 h-4 w-4"})]}),a.jsx(st,{size:"lg",variant:"outline",className:"rounded-xl px-8 font-semibold border-2 border-foreground text-foreground hover:bg-foreground
815/10",onClick:()=>{var n;return(n=document.getElementById("ia-cta-final"))==null?void 0:n.scrollIntoView({behavior:"smooth"})},children:"Contactar"})]})]}),a.jsx("div",{className:"hidden lg:flex absolute right-12 top-1/2 -translate-y-1/2 gap-6 flex-col items-center opacity-20",children:[vv,Mr,Rc,Sp,hw].map((n,s)=>a.jsx("div",{className:"w-16 h-16 rounded-full flex items-center justify-center border border-foreground/30",children:a.jsx(n,{className:"w-7 h-7",style:{color:"#1e9eb1"}})},s))})]})]})}const kP=[{icon:Sv,title:"Mapa de Talento Vivo",desc:"Detección continua de habilidades mediante tests, datos operativos y feedback 360°. La IA mantiene un perfil dinámico de cada persona."},{icon:Rc,title:"Flujos Inteligentes + Replanning",desc:"Visión holística de obras y fábrica. Reasignación automática ante imprevistos con optimización en tiempo real."},{icon:Tv,title:"Asistentes IA Personalizados",desc:"Paneles, horarios y recomendaciones adaptados al rol. Cada persona recibe lo que necesita, cuando lo necesita."},{icon:go,title:"Experiencia Holística",desc:"Integración profesional, social y personal. Bienestar, conciliación y desarrollo unidos en una sola plataforma."}];function NP(){return a.jsx("section",{id:"ia-modelo",className:"py-24 lg:py-32 bg-background",children:a.jsxs("div",{className:"container mx-auto px-6",children:[a.jsx(A,{children:a.jsxs("div",{className:"max-w-2xl mb-16",children:[a.jsx("span",{className:"text-minimal mb-4 block text-xl",style:{color:"#b1c854"},children:"El Modelo"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-foreground mb-4 text-architectural",children:"De Puestos Fijos a Organización por Capacidades"}),a.jsx("p",{className:"text-muted-foreground text-lg",children:"Un cambio de paradigma: la IA no reemplaza personas, las potencia y orquesta."})]})}),a.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6 mb-16",children:kP.map((e,t)=>a.jsx(A,{delay:t*100,children:a.jsx(ih,{className:"border-border/60 hover:shadow-elegant transition-all duration-500 h-full group",children:a.jsxs(oh,{className:"p-8",children:[a.jsx("div",{className:"w-12 h-12 rounded-xl flex items-center justify-center mb-6 group-hover:scale-110 transition-transform bg-muted",children:a.jsx(e.icon,{className:"w-6 h-6",style:{color:"#1e9eb1"}})}),a.jsx("h3",{className:"font-bold text-lg text-foreground mb-3",children:e.title}),a.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:e.desc})]})})},e.title))}),a.jsx(A,{children:a.jsx("blockquote",{className:"border-l-4 border-foreground pl-6 py-4 text-lg italic text-muted-foreground max-w-3xl mx-auto",children:'"La IA actúa como sistema nervioso central: detecta, planifica, ejecuta, mejora."'})})]})})}const $P=[{aspect:"Planificación",trad:"Manual, reactiva",ia:"Dinámica, predictiva",icon:$p},{aspect:"Recursos",trad:"Por puestos fijos",ia:"Por habilidades detectadas",icon:Mr},{aspect:"Costes",trad:"Desviaciones frecuentes",ia:"Control en tiempo real",icon:Jl},{aspect:"Talento",trad:"Formación genérica",ia:"Personalizada + ROI medible",icon:Sv},{aspect:"Productividad",trad:"Horarios rígidos",ia:"Flexibles por rendimiento",icon:Ep}];function SP(){return a.jsx("section",{id:"ia-beneficios",className:"py-24 lg:py-32 bg-muted",children:a.jsxs("div",{className:"container mx-auto px-6",children:[a.jsx(A,{children:a.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[a.jsx("span",{className:"text-minimal mb-4 block text-xl",style:{color:"#b1c854"},children:"Impacto Real"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-foreground mb-4 text-architectural",children:"Beneficios Cuantificados"}),a.jsx("p",{className:"text-muted-foreground text-lg",children:"Antes vs. después: la transformación que la IA trae a tu organización."})]})}),a.jsx(A,{children:a.jsx("div",{className:"overflow-x-auto rounded-2xl border border-border bg-card shadow-elegant",children:a.jsxs("table",{className:"w-full text-sm",children:[a.jsx("thead",{children:a.jsxs("tr",{className:"bg-foreground",children:[a.jsx("th",{className:"text-left p-5 font-semibold text-background",children:"Aspecto"}),a.jsx("th",{className:"text-left p-5 font-semibold text-background/60",children:"Tradicional"}),a.jsx("th",{className:"text-left p-5 font-semibold text-background",children:"modulya IA"})]})}),a.jsx("tbody",{children:$P.map((e,t)=>a.jsxs("tr",{className:`border-t border-border ${t%2===0?"bg-card":"bg-muted/30"}`,children:[a.jsxs("td",{className:"p-5 font-medium text-foreground flex items-center gap-3",children:[a.jsx(e.icon,{className:"w-5 h-5 shrink-0",style:{color:"#1e9eb1"}}),e.aspect]}),a.jsx("td",{className:"p-5 text-muted-foreground",children:e.trad}),a.jsx("td",{className:"p-5 font-semibold text-foreground",children:e.ia})]},e.aspect))})]})})}),a.jsx("div",{className:"grid sm:grid-cols-3 gap-6 mt-12",children:[{label:"Reducción de desviaciones",value:"–40%",icon:Wi},{label:"ROI formación personalizada",value:"3×",icon:Jl},{label:"Mejora productividad",value:"+25%",icon:Ep}].map((e,t)=>a.jsx(A,{delay:t*120,children:a.jsxs("div",{className:"text-center p-8 rounded-2xl border border-border bg-card",children:[a.jsx(e.icon,{className:"w-8 h-8 mx-auto mb-3",style:{color:"#1e9eb1"}}),a.jsx("div",{className:"text-4xl font-bold text-foreground mb-1",children:e.value}),a.jsx("div",{className:"text-sm text-muted-foreground",children:e.label})]})},e.label))})]})})}const ii=[{n:1,title:"Captación",ia:"Cualificación automática de leads y matching comercial-cliente."},{n:2,title:"Kick-off",ia:"Briefing inteligente con checklist auto-generado y asignación de equipo."},{n:3,title:"Planificación",ia:"Asigna equipos por skills detectadas. Simulación de escenarios."},{n:4,title:"Aprovisionamiento",ia:"Predicción de materiales, gestión de proveedores y alertas de stock."},{n:5,title:"Fabricación MODUSS",ia:"Secuenciación inteligente, control de calida
815d predictivo en fábrica."},{n:6,title:"Logística",ia:"Rutas óptimas, coordinación entregas y montaje en obra."},{n:7,title:"Postventa",ia:"Seguimiento automatizado, mantenimiento predictivo y NPS continuo."}];function EP(){const[e,t]=g.useState(0),[n,s]=g.useState(!1),[r,i]=g.useState(!0),o=g.useRef([]),l=g.useRef(null);g.useEffect(()=>{if(n)return;const u=setInterval(()=>{i(!1),setTimeout(()=>{t(f=>(f+1)%ii.length),i(!0)},300)},3e3);return()=>clearInterval(u)},[n,e]),g.useEffect(()=>{if(!n)return;const u=setTimeout(()=>s(!1),1e4);return()=>clearTimeout(u)},[n]);const c=()=>{const u=o.current[e];if(u)return u.offsetTop},d=u=>{s(!0),u!==e&&(i(!1),setTimeout(()=>{t(u),i(!0)},200))};return a.jsx("section",{id:"ia-flujo",className:"py-24 lg:py-32 bg-background",children:a.jsxs("div",{className:"container mx-auto px-6",children:[a.jsx(A,{children:a.jsxs("div",{className:"max-w-2xl mb-16",children:[a.jsx("span",{className:"text-minimal mb-4 block text-xl text-[#b1c856]",children:"Flujo End-to-End"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-foreground mb-4 text-architectural",children:"IA en Cada Fase del Flujo modulya"})]})}),a.jsxs("div",{className:"grid lg:grid-cols-[300px_1fr] gap-10",children:[a.jsx("div",{className:"relative flex lg:flex-col gap-2 overflow-x-auto lg:overflow-visible pb-4 lg:pb-0",children:ii.map((u,f)=>a.jsxs("button",{ref:h=>{o.current[f]=h},onClick:()=>d(f),className:`flex items-center gap-3 px-5 py-4 rounded-xl text-left shrink-0 transition-all duration-300 ${e===f?"bg-card shadow-elegant border border-border":"hover:bg-muted/40"}`,children:[a.jsx("span",{className:`w-9 h-9 rounded-full flex items-center justify-center text-sm font-bold shrink-0 transition-colors duration-300 ${e===f?"bg-foreground text-background":"border-2 border-border text-muted-foreground"}`,children:u.n}),a.jsx("span",{className:`text-sm font-semibold whitespace-nowrap transition-colors duration-300 ${e===f?"text-foreground":"text-muted-foreground"}`,children:u.title})]},u.n))}),a.jsx("div",{className:"relative",children:a.jsx("div",{ref:l,className:`lg:absolute lg:left-0 lg:right-0 transition-all duration-500 ease-smooth ${r?"opacity-100 translate-y-0":"opacity-0 translate-y-4"}`,style:{top:typeof window<"u"&&window.innerWidth>=1024?c():void 0},children:a.jsxs("div",{className:"p-10 rounded-2xl border border-border bg-card shadow-elegant",children:[a.jsxs("div",{className:"flex items-center gap-4 mb-6",children:[a.jsx("div",{className:"w-14 h-14 rounded-2xl flex items-center justify-center bg-muted",children:a.jsx(jw,{className:"w-7 h-7",style:{color:"#1e9eb1"}})}),a.jsxs("div",{children:[a.jsxs("div",{className:"text-minimal text-muted-foreground",children:["Fase ",ii[e].n," de 7"]}),a.jsx("h3",{className:"text-2xl font-bold text-foreground",children:ii[e].title})]})]}),a.jsxs("p",{className:"text-muted-foreground leading-relaxed text-base",children:[a.jsx("strong",{className:"text-foreground",children:"Rol de la IA: "}),ii[e].ia]})]})})})]})]})})}const CP=[{title:"Visión Estratégica",desc:"Alineación directiva y definición de objetivos IA.",icon:_v},{title:"Diagnóstico",desc:"Auditoría de procesos, talento y tecnología actual.",icon:Ew},{title:"Diseño Funcional",desc:"Arquitectura de flujos y modelo de habilidades.",icon:kw},{title:"Diseño Técnico",desc:"Selección de stack, integraciones y gobernanza de datos.",icon:$v},{title:"Implantación",desc:"Pilotos, formación y despliegue progresivo.",icon:Nw}];function TP(){const[e]=g.useState(20);return a.jsx("section",{id:"ia-implantacion",className:"py-24 lg:py-32 bg-muted",children:a.jsxs("div",{className:"container mx-auto px-6",children:[a.jsx(A,{children:a.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[a.jsx("span",{className:"text-minimal mb-4 block text-xl",style:{color:"#b1c854"},children:"Hoja de Ruta"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-foreground mb-4 text-architectural",children:"Hoja de Ruta en 5 Fases"}),a.jsx("p",{className:"text-muted-foreground text-lg",children:"Un camino claro hacia la organización inteligente. Pilotos en 6 meses."})]})}
815),a.jsx("div",{className:"max-w-3xl mx-auto space-y-6 mb-12",children:CP.map((t,n)=>a.jsx(A,{delay:n*80,children:a.jsxs("div",{className:"flex items-start gap-6 p-6 rounded-2xl border border-border bg-card hover:shadow-elegant transition-all duration-500",children:[a.jsx("div",{className:"w-12 h-12 rounded-xl flex items-center justify-center shrink-0 bg-muted",children:a.jsx(t.icon,{className:"w-6 h-6",style:{color:"#1e9eb1"}})}),a.jsxs("div",{children:[a.jsxs("h3",{className:"font-bold text-foreground mb-1",children:["Fase ",n+1,": ",t.title]}),a.jsx("p",{className:"text-sm text-[#1e9fb3]",children:t.desc})]}),a.jsx(yv,{className:`w-5 h-5 shrink-0 ml-auto mt-1 ${n===0?"text-foreground":"text-muted-foreground"}`})]})},t.title))}),a.jsx(A,{children:a.jsxs("div",{className:"max-w-3xl mx-auto",children:[a.jsxs("div",{className:"flex justify-between text-sm mb-2",children:[a.jsx("span",{className:"text-muted-foreground",children:"Progreso piloto"}),a.jsx("span",{className:"font-semibold text-foreground",children:"Pilotos en 6 meses"})]}),a.jsx(L2,{value:e,className:"h-3 bg-background"})]})})]})})}function AP(){const e=[{icon:Tv,title:"Asistentes por Rol",desc:"Cada perfil recibe un asistente IA con paneles y recomendaciones personalizadas."},{icon:Rc,title:"Flujos Asistidos",desc:"Automatización inteligente de aprobaciones, alertas y escalados."},{icon:pr,title:"Gobernanza Ética",desc:"Transparencia algorítmica, protección de datos y equidad en las decisiones."}];return a.jsx("section",{id:"ia-aplicacion",className:"py-24 lg:py-32 bg-background",children:a.jsxs("div",{className:"container mx-auto px-6",children:[a.jsx(A,{children:a.jsxs("div",{className:"text-center max-w-2xl mx-auto mb-16",children:[a.jsx("span",{className:"text-minimal mb-4 block text-xl",style:{color:"#b1c854"},children:"Plataforma"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-foreground mb-4 text-architectural",children:"Una Plataforma IA Lista para Escalar"})]})}),a.jsx(A,{children:a.jsx("div",{className:"grid md:grid-cols-3 gap-6 mb-16",children:[{title:"Dashboard Talento",items:["Skills map","Formación activa","Evaluación 360°","Alertas desarrollo"]},{title:"Asistente Personal",items:["Mi agenda IA","Tareas priorizadas","Notificaciones smart","Bienestar check-in"]},{title:"KPIs Integrados",items:["OKRs equipo","Productividad real","Coste vs. presupuesto","NPS interno"]}].map(t=>a.jsxs("div",{className:"rounded-2xl border border-border bg-card overflow-hidden hover:shadow-elegant transition-all duration-500",children:[a.jsxs("div",{className:"px-5 py-3 flex items-center gap-2 border-b border-border bg-muted",children:[a.jsx("span",{className:"w-3 h-3 rounded-full bg-foreground
815/20"}),a.jsx("span",{className:"w-3 h-3 rounded-full bg-foreground/15"}),a.jsx("span",{className:"w-3 h-3 rounded-full bg-foreground/10"}),a.jsx("span",{className:"ml-3 text-xs text-muted-foreground font-medium",children:t.title})]}),a.jsx("div",{className:"p-6 space-y-3",children:t.items.map(n=>a.jsxs("div",{className:"flex items-center gap-3",children:[a.jsx(yv,{className:"w-4 h-4 shrink-0",style:{color:"#1e9eb1"}}),a.jsx("span",{className:"text-sm text-foreground",children:n})]},n))})]},t.title))})}),a.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:e.map((t,n)=>a.jsx(A,{delay:n*100,children:a.jsxs("div",{className:"text-center p-8",children:[a.jsx("div",{className:"w-14 h-14 rounded-2xl flex items-center justify-center mx-auto mb-5 bg-muted",children:a.jsx(t.icon,{className:"w-7 h-7",style:{color:"#1e9eb1"}})}),a.jsx("h3",{className:"font-bold text-foreground mb-2",children:t.title}),a.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:t.desc})]})},t.title))})]})})}function RP(){return a.jsx("section",{id:"ia-nosotros",className:"py-24 lg:py-32 bg-muted",children:a.jsxs("div",{className:"container mx-auto px-6",children:[a.jsx(A,{children:a.jsxs("div",{className:"max-w-3xl mx-auto text-center",children:[a.jsx("span",{className:"text-minimal mb-4 block text-xl",style:{color:"#b1c854"},children:"Sobre Nosotros"}),a.jsx("h2",{className:"text-3xl md:text-5xl font-bold text-foreground mb-6 text-architectural",children:"modulya: Construcción Modular + IA Revolucionaria"}),a.jsx("p",{className:"text-muted-foreground text-lg leading-relaxed mb-8",children:"Desde Almonte (Huelva), modulya integra su sistema constructivo MODUSS con Inteligencia Artificial como orquestadora de talento, flujos y producción. No es solo tecnología: es una nueva forma de construir, organizar y cuidar a las personas."}),a.jsxs("div",{className:"flex flex-wrap justify-center gap-6 text-sm text-muted-foreground",children:[a.jsxs("span",{className:"flex items-center gap-2",children:[a.jsx(Nv,{className:"w-4 h-4",style:{color:"#1e9eb1"}})," 959 406 664"]}),a.jsxs("span",{className:"flex items-center gap-2",children:[a.jsx(wv,{className:"w-4 h-4",style:{color:"#1e9eb1"}})," modulya.com"]}),a.jsxs("span",{className:"flex items-center gap-2",children:[a.jsx(kv,{className:"w-4 h-4",style:{color:"#1e9eb1"}})," Almonte, Huelva"]})]})]})}),a.jsx("div",{className:"grid md:grid-cols-3 gap-6 mt-16",children:[{quote:"Desde que usamos el Mapa de Talento Vivo, la rotación ha bajado un 30%.",name:"Directora de RRHH",co:"Constructora Modular Levante"},{quote:"El replanning automático nos ahorró 3 semanas en nuestro último proyecto.",name:"Jefe de Obra",co:"GrupoEdifica"},{quote:"Los asistentes IA han transformado cómo cada persona vive su jornada laboral.",name:"CEO",co:"Innova Housing"}].map(e=>a.jsx(A,{children:a.jsx(ih,{className:"border-border/60 h-full",children:a.jsxs(oh,{className:"p-8",children:[a.jsxs("p",{className:"text-muted-foreground italic text-sm mb-6 leading-relaxed",children:['"',e.quote,'"']}),a.jsxs("div",{children:[a.jsx("div",{className:"font-semibold text-foreground text-sm",children:e.name}),a.jsx("div",{className:"text-xs text-muted-foreground",children:e.co})]})]})})},e.name))})]})})}function PP(){return a.jsx("section",{id:"ia-cta-final",className:"py-24 lg:py-32 text-center bg-foreground",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs(A,{children:[a.jsx($w,{className:"w-12 h-12 mx-auto mb-6 text-background/70"}),a.jsxs("h2",{className:"text-3xl md:text-5xl font-bold mb-6 text-architectural text-background",children:["Transformamos nuestra",a.jsx("br",{}),"Organización con IA"]}),a.jsx("p",{className:"text-lg mb-10 max-w-xl mx-auto text-background/60",children:"Da el primer paso hacia una organización inteligente, ética y centrada en las personas."}),a.jsx("div",{className:"flex flex-wrap justify-center gap-4",children:a.jsx(st,{size:"lg",className:"rounded-xl px-10 font-semibold bg-background text-foreground hover:bg-background/90",asChild:!0,children:a.jsx("a",{href:"/contact",children:"Saber Más"})})})]})})})}function OP(){return a.jsx("footer",{className:"py-12 border-t border-border bg-card",children:a.jsxs("div",{className:"container mx-auto px-6",children:[a.jsxs("div",{className:"grid md:grid-cols-3 gap-8 mb-10",children:[a.jsxs("div",{children:[a.jsx("h4",{className:"font-bold text-foreground mb-3",children:"Contacto"}),a.jsxs("div",{className:"space-y-2 text-sm text-muted-foreground",children:[a.jsxs("p",{className:"flex items-center gap-2",children:[a.jsx(Nv,{className:"w-4 h-4"})," 959 406 664"]}),a.jsxs("p",{className:"flex items-center gap-2",children:[a.jsx(_w,{className:"w-4 h-4"})," [email protected]"]}),a.jsxs("p",{className:"flex items-center gap-2",children:[a.jsx(kv,{className:"w-4 h-4"})," Almonte, Huelva"]})]})]}),a.jsxs("div",{children:[a.jsx("h4",{className:"font-bold text-foreground mb-3",children:"Enlaces"}),a.jsxs("div",{className:"space-y-2 text-sm",children:[a.jsx("a",{href:"/about",className:"block text-muted-foreground hover:text-foreground transition-colors",children:"Nosotros"}),a.jsx("a",{href:"/fabrica",className:"block text-muted-foreground hover:text-foreground transition-colors",children:"MODUSS"}),a.jsx("a",{href:"/blog",className:"block text-muted-foreground hover:text-foreground transition-colors",children:"Blog"}),a.jsx("a",{href:"/contact",className:"block text-muted-foreground hover:text-foreground transition-colors",children:"Contacto"})]})]}),a.jsxs("div",{children:[a.jsx("h4",{className:"font-bold text-foreground mb-3",children:"Síguenos"}),a.jsxs("div",{className:"space-y-2 text-sm",children:[a.jsx("a",{href:"#",className:"block text-muted-foreground hover:text-foreground transition-colors",children:"LinkedIn"}),a.jsx("a",{href:"#",className:"block text-muted-foreground hover:text-foreground transition-colors",children:"Instagram"}),a.jsx("a",{href:"#",className:"block text-muted-foreground hover:text-foreground transition-colors",children:"YouTube"})]})]})]}),a.jsx("div",{className:"border-t border-border pt-8 text-center text-xs text-muted-foreground",children:"© 2026 modulya. IA ética 
815y centrada en personas."})]})})}function zP(){return a.jsxs(a.Fragment,{children:[a.jsx(ue,{title:"IA Organizacional — Inteligencia Artificial para construcción modular | Modulya",description:"Modulya usa IA para organizar talento, flujos y producción en construcción modular: organigrama por habilidades, flujos inteligentes y decisiones basadas en datos.",path:"/ia"}),a.jsx(de,{}),a.jsxs("main",{children:[a.jsx(jP,{}),a.jsx(NP,{}),a.jsx(SP,{}),a.jsx(EP,{}),a.jsx(TP,{}),a.jsx(AP,{}),a.jsx(RP,{}),a.jsx(PP,{})]}),a.jsx(OP,{})]})}const IP="/assets/casa_1-CBJmfpD3.webp",LP="/assets/casa_2-BvL7mYnX.webp",MP="/assets/casa_3-Bnm16b_z.webp",DP="/assets/casa_4-Cc3G_LE7.webp",UP="/assets/casa_5-D9dZ5hzG.webp",FP="/assets/casa_7-DsJCx4B9.webp",BP="/assets/casa_8-BNgBtooY.webp",qP="/assets/casa_9-CV318PG9.webp",VP="/assets/casa_10-CgKORXup.webp",M2=Hp.url,Jn=[{src:M2,caption:"Vista exterior · Acabado final",span:"md:col-span-2 md:row-span-2"},{src:IP,caption:"Montaje de módulos prefabricados",span:"md:col-span-2"},{src:LP,caption:"Estructura modular en obra",span:""},{src:MP,caption:"Volumetría de hormigón",span:""},{src:DP,caption:"Integración con el entorno agrícola",span:"md:col-span-2"},{src:UP,caption:"Fachada en madera y gaviones",span:""},{src:VP,caption:"Fachada principal terminada",span:""},{src:FP,caption:"Detalle de instalaciones",span:"md:col-span-2"},{src:BP,caption:"Salón y cocina diáfana",span:""},{src:qP,caption:"Cocina con isla central",span:""}],HP=()=>{const[e,t]=g.useState(null),n=g.useCallback(()=>t(null),[]),s=g.useCallback(()=>t(i=>i===null?null:(i-1+Jn.length)%Jn.length),[]),r=g.useCallback(()=>t(i=>i===null?null:(i+1)%Jn.length),[]);return g.useEffect(()=>{if(e===null)return;const i=o=>{o.key==="Escape"&&n(),o.key==="ArrowLeft"&&s(),o.key==="ArrowRight"&&r()};return window.addEventListener("keydown",i),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",i),document.body.style.overflow=""}},[e,n,s,r]),a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Casa del Guarda — Vivienda modular sostenible | Modulya",description:"Casa del Guarda: vivienda modular sostenible diseñada y fabricada por Modulya, integrada en el paisaje y con alta eficiencia energética.",path:"/work/casa-del-guarda"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors mb-10",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]}),a.jsxs("div",{className:"grid md:grid-cols-3 gap-10 items-end",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("p",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"RESIDENCIAL · MODUSS"}),a.jsx("h1",{className:"text-5xl md:text-7xl font-light text-architectural leading-[1.05]",children:"Casa del Guarda"})]}),a.jsxs("div",{className:"space-y-2 md:text-right",children:[a.jsx("p",{className:"text-architectural font-medium",children:"San Bartolomé de la Torre, Huelva"}),a.jsx("p",{className:"text-muted-foreground",children:"Tipología: T2 & T3 (Quality and Basic)"}),a.jsx("p",{className:"text-muted-foreground",children:"Plazo de ejecución: 2 meses"}),a.jsx("p",{className:"text-muted-foreground",children:"Sup. construida: 197,85 m²"})]})]})]})})}),a.jsx("section",{className:"pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("button",{onClick:()=>t(0),className:"group block w-full overflow-hidden relative",children:[a.jsx("img",{src:M2,alt:"Casa del Guarda - vista principal",className:"w-full h-[70vh] object-cover transition-transform duration-700 group-hover:scale-[1.03]"}),a.jsx("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-500"}),a.jsx("div",{className:"absolute bottom-6 left-6 bg-background/90 backdrop-blur-sm px-4 py-2",children:a.jsx("span",{className:"text-minimal text-foreground",children:"VER GALERÍA COMPLETA"})})]})})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"GALERÍA"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Del módulo a la vivienda"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Recorrido visual del proceso constructivo: fabricación, montaje, fachada e interiores acabados."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:Jn.map((i,o)=>a.jsxs("button",{onClick:()=>t(o),className:`group relative overflow-hidden bg-muted ${i.span}`,style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:i.caption})})]},o))})]})})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center animate-in fade-in duration-300",children:[a.jsx("button",{onClick:n,className:"absolute top-6 right-6 text-white/80 hover:text-white transition-colors z-10","aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{onClick:s,className:"absolute left-4 md:left-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Anterior",children:a.jsx(zt,{className:"w-10 h-10"})}),a.jsx("button",{onClick:r,className:"absolute right-4 md:right-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Siguiente",children:a.jsx(It,{className:"w-10 h-10"})}),a.jsxs("div",{className:"max-w-7xl w-full h-full flex flex-col items-center justify-center px-4 md:px-20 py-16",children:[a.jsx("img",{src:Jn[e].src,alt:Jn[e].caption,className:"max-h-[80vh] max-w-full object-contain animate-in fade-in zoom-in-95 duration-500"},e),a.jsxs("div",{className:"mt-6 flex items-center justify-between w-full max-w-3xl text-white/80",children:[a.jsx("p",{className:"text-minimal",children:Jn[e].caption}),a.jsxs("p",{className:"text-minimal text-white/50",children:[String(e+1).padStart(2,"0")," / ",String(Jn.length).padStart(2,"0")]})]})]})]}),a.jsx("style",{children:`
816        @keyframes fadeInUp {
817          from { opacity: 0; transform: translateY(24px); }
818          to { opacity: 1; transform: translateY(0); }
819        }
820      `}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},WP=1,ZP="52ce9e21-095b-4071-8bf0-aed7acb1def6",GP="22885900-7753-4d74-9e2f-5cb1776d4f5d",KP="/__l5e/assets-v1/52ce9e21-095b-4071-8bf0-aed7acb1def6/frescapricho_1.webp",JP="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/52ce9e21-095b-4071-8bf0-aed7acb1def6/frescapricho_1.webp",YP="frescapricho_1.webp",QP=38938,XP="image/webp",eO="2026-07-07T05:33:10Z",tO={version:WP,asset_id:ZP,project_id:GP,url:KP,r2_key:JP,original_filename:YP,size:QP,content_type:XP,created_at:eO},nO=1,sO="5e6e1caf-822e-432d-b8de-2a2ab8e0c2b7",aO="22885900-7753-4d74-9e2f-5cb1776d4f5d",rO="/__l5e/assets-v1/5e6e1caf-822e-432d-b8de-2a2ab8e0c2b7/frescapricho_2.webp",iO="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/5e6e1caf-822e-432d-b8de-2a2ab8e0c2b7/frescapricho_2.webp",oO="frescapricho_2.webp",lO=33416,cO="image/webp",dO="2026-07-07T05:33:29Z",uO={version:nO,asset_id:sO,project_id:aO,url:rO,r2_key:iO,original_filename:oO,size:lO,content_type:cO,created_at:dO},fO=1,pO="9aa79ceb-d006-4969-b841-eef7711f0f3e",hO="22885900-7753-4d74-9e2f-5cb1776d4f5d",mO="/__l5e/assets-v1/9aa79ceb-d006-4969-b841-eef7711f0f3e/frescapricho_3.webp",gO="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/9aa79ceb-d006-4969-b841-eef7711f0f3e/frescapricho_3.webp",bO="frescapricho_3.webp",xO=27582,vO="image/webp",yO="2026-07-07T05:33:56Z",_O={version:fO,asset_id:pO,project_id:hO,url:mO,r2_key:gO,original_filename:bO,size:xO,content_type:vO,created_at:yO},wO=1,jO="a9400011-2755-48ad-bb40-986498f92079",kO="22885900-7753-4d74-9e2f-5cb1776d4f5d",NO="/__l5e/assets-v1/a9400011-2755-48ad-bb40-986498f92079/frescapricho_4.webp",$O="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/a9400011-2755-48ad-bb40-986498f92079/frescapricho_4.webp",SO="frescapricho_4.webp",EO=45910,CO="image/webp",TO="2026-07-07T05:33:05Z",AO={version:wO,asset_id:jO,project_id:kO,url:NO,r2_key:$O,original_filename:SO,size:EO,content_type:CO,created_at:TO},RO=1,PO="6dcad6d9-ef1b-4b1f-9eed-a9e2624a57ef",OO="22885900-7753-4d74-9e2f-5cb1776d4f5d",zO="/__l5e/assets-v1/6dcad6d9-ef1b-4b1f-9eed-a9e2624a57ef/frescapricho_5.webp",IO="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6dcad6d9-ef1b-4b1f-9eed-a9e2624a57ef/frescapricho_5.webp",LO="frescapricho_5.webp",MO=30918,DO="image/webp",UO="2026-07-07T05:33:21Z",FO={version:RO,asset_id:PO,project_id:OO,url:zO,r2_key:IO,original_filename:LO,size:MO,content_type:DO,created_at:UO},BO=1,qO="bbf4622c-e14c-4bf9-b829-17bd41f6ef71",VO="22885900-7753-4d74-9e2f-5cb1776d4f5d",HO="/__l5e/assets-v1/bbf4622c-e14c-4bf9-b829-17bd41f6ef71/frescapricho_6.webp",WO="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/bbf4622c-e14c-4bf9-b829-17bd41f6ef71/frescapricho_6.webp",ZO="frescapricho_6.webp",GO=25658,KO="image/webp",JO="2026-07-07T05:34:13Z",YO={version:BO,asset_id:qO,project_id:VO,url:HO,r2_key:WO,original_filename:ZO,size:GO,content_type:KO,created_at:JO},QO=1,XO="d7a8fe14-a90c-4e18-b5ea-5843f753c34a",ez="22885900-7753-4d74-9e2f-5cb1776d4f5d",tz="/__l5e/assets-v1/d7a8fe14-a90c-4e18-b5ea-5843f753c34a/frescapricho_7.webp",nz="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/d7a8fe14-a90c-4e18-b5ea-5843f753c34a/frescapricho_7.webp",sz="frescapricho_7.webp",az=30774,rz="image/webp",iz="2026-07-07T05:33:45Z",oz={ver
820sion:QO,asset_id:XO,project_id:ez,url:tz,r2_key:nz,original_filename:sz,size:az,content_type:rz,created_at:iz},lz=1,cz="fcab1067-2a43-414a-a6a9-837929921e1d",dz="22885900-7753-4d74-9e2f-5cb1776d4f5d",uz="/__l5e/assets-v1/fcab1067-2a43-414a-a6a9-837929921e1d/frescapricho_8.webp",fz="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/fcab1067-2a43-414a-a6a9-837929921e1d/frescapricho_8.webp",pz="frescapricho_8.webp",hz=35484,mz="image/webp",gz="2026-07-07T05:33:18Z",bz={version:lz,asset_id:cz,project_id:dz,url:uz,r2_key:fz,original_filename:pz,size:hz,content_type:mz,created_at:gz},xz=1,vz="09806556-17c6-4551-80ab-6c8082640e73",yz="22885900-7753-4d74-9e2f-5cb1776d4f5d",_z="/__l5e/assets-v1/09806556-17c6-4551-80ab-6c8082640e73/frescapricho_9.webp",wz="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/09806556-17c6-4551-80ab-6c8082640e73/frescapricho_9.webp",jz="frescapricho_9.webp",kz=24548,Nz="image/webp",$z="2026-07-07T05:34:11Z",Sz={version:xz,asset_id:vz,project_id:yz,url:_z,r2_key:wz,original_filename:jz,size:kz,content_type:Nz,created_at:$z},Ez=1,Cz="db22975d-b7b5-4240-b9ac-e107d245a382",Tz="22885900-7753-4d74-9e2f-5cb1776d4f5d",Az="/__l5e/assets-v1/db22975d-b7b5-4240-b9ac-e107d245a382/frescapricho_10.webp",Rz="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/db22975d-b7b5-4240-b9ac-e107d245a382/frescapricho_10.webp",Pz="frescapricho_10.webp",Oz=27086,zz="image/webp",Iz="2026-07-07T05:34:09Z",Lz={version:Ez,asset_id:Cz,project_id:Tz,url:Az,r2_key:Rz,original_filename:Pz,size:Oz,content_type:zz,created_at:Iz},Mz=1,Dz="ed9acea5-57db-47e8-ad54-f08e792b69c2",Uz="22885900-7753-4d74-9e2f-5cb1776d4f5d",Fz="/__l5e/assets-v1/ed9acea5-57db-47e8-ad54-f08e792b69c2/frescapricho_11.webp",Bz="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/ed9acea5-57db-47e8-ad54-f08e792b69c2/frescapricho_11.webp",qz="frescapricho_11.webp",Vz=28602,Hz="image/webp",Wz="2026-07-07T05:34:06Z",Zz={version:Mz,asset_id:Dz,project_id:Uz,url:Fz,r2_key:Bz,original_filename:qz,size:Vz,content_type:Hz,created_at:Wz},Gz=1,Kz="baf21675-0491-4d9c-8fd8-22905c5c112a",Jz="22885900-7753-4d74-9e2f-5cb1776d4f5d",Yz="/__l5e/assets-v1/baf21675-0491-4d9c-8fd8-22905c5c112a/frescapricho_12.webp",Qz="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/baf21675-0491-4d9c-8fd8-22905c5c112a/frescapricho_12.webp",Xz="frescapricho_12.webp",eI=32256,tI="image/webp",nI="2026-07-07T05:33:51Z",sI={version:Gz,asset_id:Kz,project_id:Jz,url:Yz,r2_key:Qz,original_filename:Xz,size:eI,content_type:tI,created_at:nI},aI=1,rI="1a53bd2b-464c-4ab6-8cb9-515b13730b13",iI="22885900-7753-4d74-9e2f-5cb1776d4f5d",oI="/__l5e/assets-v1/1a53bd2b-464c-4ab6-8cb9-515b13730b13/frescapricho_13.webp",lI="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/1a53bd2b-464c-4ab6-8cb9-515b13730b13/frescapricho_13.webp",cI="frescapricho_13.webp",dI=16360,uI="image/webp",fI="2026-06-01T15:20:23Z",pI={version:aI,asset_id:rI,project_id:iI,url:oI,r2_key:lI,original_filename:cI,size:dI,content_type:uI,created_at:fI},hI=1,mI="e7a81401-6eae-4a75-997d-e2c12b4b8306",gI="22885900-7753-4d74-9e2f-5cb1776d4f5d",bI="/__l5e/assets-v1/e7a81401-6eae-4a75-997d-e2c12b4b8306/frescapricho_14.webp",xI="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e7a81401-6eae-4a75-997d-e2c12b4b8306/frescapricho_14.webp",vI="frescapricho_14.webp",yI=21180,_I="image/webp",wI="2026-06-01T15:20:26Z",jI={version:hI,asset_id:mI,project_id:gI,url:bI,r2_key:xI,original_filename:vI,size:yI,content_type:_I,created_at:wI},kI=1,NI="6db563bc-d786-4dcf-b1a7-82ab0788da1c",$I="22885900-7753-4d74-9e2f-5cb1776d4f5d",SI="/__l5e/assets-v1/6db563bc-d786-4dcf-b1a7-82ab0788da1c/frescapricho_15.webp",EI="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6db563bc-d786-4dcf-b1a7-82ab0788da1c/frescapricho_15.webp",CI="frescapricho_15.webp",TI=24468,AI="image/webp",RI="2026-06-01T15:20:29Z",PI={version:kI,asset_id:NI,project_id:$I,url:SI,r2_key:EI,original_filename:CI,size:TI,content_type:AI,created_at:RI},OI=1,zI="1d8149b1-2a0b-4022-be01-b35a0a0aa2d3",II="22885900-7753-4d74-9e2f-5cb1776d4f5d",LI="/__l5e/assets-v1/1d8149b1-2a0b-4022-be01-b35a0a0aa2d3/frescapricho_16.webp",MI="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/1d8149b1-2a0b-4022-be01-b35a0a0aa2d3/frescapricho_16.webp",DI="frescapricho_16.webp",UI=24690,FI="image/webp",BI="2026-06-01T15:20:32Z",qI={version:OI,asset_id:zI,project_id:II,url:LI,r2_key:MI,original_filename:DI,size:UI,content_type:F
820I,created_at:BI},VI=1,HI="bfcd9eb1-4cbf-4496-a1be-5ef87cf4dec3",WI="22885900-7753-4d74-9e2f-5cb1776d4f5d",ZI="/__l5e/assets-v1/bfcd9eb1-4cbf-4496-a1be-5ef87cf4dec3/frescapricho_17.webp",GI="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/bfcd9eb1-4cbf-4496-a1be-5ef87cf4dec3/frescapricho_17.webp",KI="frescapricho_17.webp",JI=9134,YI="image/webp",QI="2026-06-01T15:20:35Z",XI={version:VI,asset_id:HI,project_id:WI,url:ZI,r2_key:GI,original_filename:KI,size:JI,content_type:YI,created_at:QI},eL=1,tL="d5a3e3f5-3c4c-4f19-9d53-e17abcb2ae68",nL="22885900-7753-4d74-9e2f-5cb1776d4f5d",sL="/__l5e/assets-v1/d5a3e3f5-3c4c-4f19-9d53-e17abcb2ae68/frescapricho_18.webp",aL="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/d5a3e3f5-3c4c-4f19-9d53-e17abcb2ae68/frescapricho_18.webp",rL="frescapricho_18.webp",iL=11282,oL="image/webp",lL="2026-06-01T15:20:38Z",cL={version:eL,asset_id:tL,project_id:nL,url:sL,r2_key:aL,original_filename:rL,size:iL,content_type:oL,created_at:lL},dL=1,uL="f8d49a96-8c08-4933-a22e-d3772d2b5446",fL="22885900-7753-4d74-9e2f-5cb1776d4f5d",pL="/__l5e/assets-v1/f8d49a96-8c08-4933-a22e-d3772d2b5446/frescapricho_19.webp",hL="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/f8d49a96-8c08-4933-a22e-d3772d2b5446/frescapricho_19.webp",mL="frescapricho_19.webp",gL=11122,bL="image/webp",xL="2026-06-01T15:20:42Z",vL={version:dL,asset_id:uL,project_id:fL,url:pL,r2_key:hL,original_filename:mL,size:gL,content_type:bL,created_at:xL},yL=1,_L="aa08c385-2b9a-4813-8839-ae0cbb8ba7ab",wL="22885900-7753-4d74-9e2f-5cb1776d4f5d",jL="/__l5e/assets-v1/aa08c385-2b9a-4813-8839-ae0cbb8ba7ab/frescapricho_20.webp",kL="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/aa08c385-2b9a-4813-8839-ae0cbb8ba7ab/frescapricho_20.webp",NL="frescapricho_20.webp",$L=19276,SL="image/webp",EL="2026-06-01T15:20:45Z",CL={version:yL,asset_id:_L,project_id:wL,url:jL,r2_key:kL,original_filename:NL,size:$L,content_type:SL,created_at:EL},TL=1,AL="85627347-7e48-4f23-9926-9615d75a1085",RL="22885900-7753-4d74-9e2f-5cb1776d4f5d",PL="/__l5e/assets-v1/85627347-7e48-4f23-9926-9615d75a1085/frescapricho_21.webp",OL="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/85627347-7e48-4f23-9926-9615d75a1085/frescapricho_21.webp",zL="frescapricho_21.webp",IL=637982,LL="image/webp",ML="2026-07-07T05:27:17Z",DL={version:TL,asset_id:AL,project_id:RL,url:PL,r2_key:OL,original_filename:zL,size:IL,content_type:LL,created_at:ML},UL=1,FL="5d1e8b78-2881-45e3-b45b-2803879c93c3",BL="22885900-7753-4d74-9e2f-5cb1776d4f5d",qL="/__l5e/assets-v1/5d1e8b78-2881-45e3-b45b-2803879c93c3/frescapricho_22.webp",VL="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/5d1e8b78-2881-45e3-b45b-2803879c93c3/frescapricho_22.webp",HL="frescapricho_22.webp",WL=447004,ZL="image/webp",GL="2026-07-07T05:27:40Z",KL={version:UL,asset_id:FL,project_id:BL,url:qL,r2_key:VL,original_filename:HL,size:WL,content_type:ZL,created_at:GL},JL=1,YL="5708237d-9ac1-4e6f-87b2-fc80a7f50f66",QL="22885900-7753-4d74-9e2f-5cb1776d4f5d",XL="/__l5e/assets-v1/5708237d-9ac1-4e6f-87b2-fc80a7f50f66/frescapricho_23.webp",eM="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/5708237d-9ac1-4e6f-87b2-fc80a7f50f66/frescapricho_23.webp",tM="frescapricho_23.webp",nM=806584,sM="image/webp",aM="2026-07-07T05:27:14Z",rM={version:JL,asset_id:YL,project_id:QL,url:XL,r2_key:eM,original_filename:tM,size:nM,content_type:sM,created_at:aM},iM=1,oM="e02d60c6-5ba5-44db-9f6d-c4b656c114a2",lM="22885900-7753-4d74-9e2f-5cb1776d4f5d",cM="/__l5e/assets-v1/e02d60c6-5ba5-44db-9f6d-c4b656c114a2/frescapricho_24.webp",dM="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e02d60c6-5ba5-44db-9f6d-c4b656c114a2/frescapricho_24.webp",uM="frescapricho_24.webp",fM=882174,pM="image/webp",hM="2026-07-07T05:27:11Z",mM={version:iM,asset_id:oM,project_id:lM,url:cM,r2_key:dM,original_filename:uM,size:fM,content_type:pM,created_at:hM},gM=1,bM="df7f39e8-6151-476f-82ac-f6c708db2504",xM="22885900-7753-4d74-9e2f-5cb1776d4f5d",vM="/__l5e/assets-v1/df7f39e8-6151-476f-82ac-f6c708db2504/frescapricho_25.webp",yM="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/df7f39e8-6151-476f-82ac-f6c708db2504/frescapricho_25.webp",_M="frescapricho_25.webp",wM=208294,jM="image/webp",kM="2026-07-07T05:29:06Z",NM={version:gM,asset_id:bM,project_id:xM,url:vM,r2_key:yM,original_filename:_M,size:wM,content_type:jM,created_at:kM},$M=1,SM="26ca006a-287d-4559-8bff-f99e06793701",EM="22885900-7753-4d74-9e2f-5cb1776d4f5d",CM="/__l5e/assets-v1/26ca006a-287d-4559-8bff-f99e06793701/frescapricho_26.webp",TM="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/26ca006a-287d-4559-8bff-f99e06793701/frescapricho_26.webp",AM="frescapricho_26.webp",RM=183412,PM="image/webp",OM="2026-07-07T05:29:58Z",zM={version:$M,asset_id:SM,project_id:EM,url:CM,r2_key:TM,original_filename:AM,size:RM,content_type:PM,created_at:OM},IM=1,LM="4bae2733-bf22-4391-9f11-0447e9ca74fa",MM="22885900-7753-4d74-9e2f-5cb1776d4f5d",DM="/__l5e/assets-v1/4bae2733-bf22-4391-9f11-0447e9ca74fa/frescapricho_27.webp",UM="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/4bae2733-bf22-4391-9f11-0447e9ca74fa/frescapricho_27.webp",FM="frescapricho_27.webp",BM=83624,qM="image/webp",VM="2026-07-07T05:30:52Z",HM={version:IM,asset_id:LM,project_id:MM,url:DM,r2_key:UM,original_filename:FM,size:BM,content_type:qM,created_at:VM},Yn=[{src:tO.url,caption:"Cimentación · Zapatas y armado",span:"md:col-span-2 md:row-span-2"},{src:uO.url,caption:"Replanteo de cimentación",span:"md:col-span-2"},{src:_O.url,caption:"Descarga de estructura metálica",span:""},{src:AO.url,caption:"Primeros pórticos sobre apoyos",span:""},{src:FO.url,caption:"Montaje de la trama estructural",span:"md:col-span-2"},{src:YO.url,caption:"Estructura modular en altura",span:"md:col-span-2"},{src:oz.url,caption:"Pórticos sobre cimentación",span:""},{src:bz.url,caption:"Avance de estructura metálica",span:""},{src:Sz.url,caption:"Forjado de chapa colaborante",span:"md:col-span-2"},{src:Lz.url,caption:"Estructura de dos plantas",span:"md:col-span-2 md:row-span-2"},{src:Zz.url,caption:"Vista lateral de la estructura",span:"md:col-span-2"},{src:sI.url,caption:"Trama estructural completa",span:"md:col-span-2"},{src:CL.url,caption:"Volumetría final al atardecer",span:"md:col-span-2 md:row-span-2"},{src:pI.url,caption:"Fachada modular con celosías de madera",span:"md:col-span-2"},{src:jI.url,caption:"Cantos de fachada y voladizos",span:""},{src:PI.url,caption:"Conjunto de módulos terminados",span:""},{src:qI.url,caption:"Detalle de celosías y gaviones",span:"md:col-span-2"},{src:XI.url,caption:"Dormitorio con armario empotrado",span:""},{src:cL.url,caption:"Cocina con isla · acabado madera",span:""},{src:vL.url,caption:"Cocina y salón diáfano",span:"md:col-span-2"},{src:DL.url,caption:"Tipo 2 · Exterior",span:"md:col-span-2"},{src:KL.url,caption:"Tipo 2 · Exterior",span:""},{src:rM.url,caption:"Tipo 2 · Exterior",span:""},{src:mM.url,caption:"Tipo 2 · Exterior",span:"md:col-span-2"},{src:NM.url,caption:"Tipo 2 · Exterior",span:""},{src:zM.url,caption:"Tipo 2 · Exterior",span:""},{src:HM.url,caption:"Tipo 2 · Exterior",span:"md:col-span-2"}],WM=()=>{const[e,t]=g.useState(null),n=g.useCallback(()=>t(null),[]),s=g.useCallback(()=>t(i=>i===null?null:(i-1+Yn.length)%Yn.length),[]),r=g.useCallback(()=>t(i=>i===null?null:(i+1)%Yn.length),[]);return g.useEffect(()=>{if(e===null)return;const i=o=>{o.key==="Escape"&&n(),o.key==="ArrowLeft"&&s(),o.key==="ArrowRight"&&r()};return window.addEventListener("keydown",i),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",i),document.body.style.overflow=""}},[e,n,s,r]),a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Frescapricho — Proyecto modular | Modulya",description:"Frescapricho: proyecto de arquitectura modular industrializada de Modulya, diseñado con metodología BIM y Lean.",path:"/work/frescapricho"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors mb-10",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]}),a.jsxs("div",{className:"grid md:grid-cols-3 gap-10 items-end",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("p",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"ALOJAMIENTOS · MODUSS"}),a.jsx("h1",{className:"text-5xl md:text-7xl font-light text-architectural leading-[1.05]",children:"Alojamientos Frescapricho"})]}),a.jsxs("div",{className:"space-y-2 md:text-right",children:[a.jsx("p",{className:"text-architectural font-medium",children:"San Bartolomé de la Torre, Huelva"}),a.jsx("p",{className:"text-muted-foreground",children:"Tipología: T2 & T3 (Quality and Basic)"}),a.jsx("p",{className:"text-muted-foreground",children:"Plazo de ejecución: 6 meses"}),a.jsx("p",{className:"text-muted-foreground",children:"Sup. construida: 4.520,94 m²"})]})]})]})})}),a.jsx("section",{className:"pb-16",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("button",{onClick:()=>t(0),className:"group block w-full overflow-hidden relative",children:[a.jsx("img",{src:Wp.url,alt:"Alojamientos Frescapricho - detalle de celosías y gaviones",className:"w-full h-[70vh] object-cover transition-transform duration-700 group-hover:scale-[1.03]"}),a.jsx("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-500"}),a.jsx("div",{className:"absolute bottom-6 left-6 bg-background/90 backdrop-blur-sm px-4 py-2",children:a.jsx("span",{className:"text-minimal text-foreground",children:"VER GALERÍA COMPLETA"})})]})})})}),a.jsx("section",{className:"pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"grid md:grid-cols-3 gap-10",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-6",style:{color:"#b1c854"},children:"IDENTIFICACIÓN DE OBRA"}),a.jsxs("dl",{className:"space-y-4 text-sm",children:[a.jsxs("div",{children:[a.jsx("dt",{className:"text-muted-foreground uppercase tracking-wider text-xs mb-1",children:"Obra"}),a.jsx("dd",{className:"text-architectural",children:"Complejo de alojamientos destinado a trabajadores temporeros en Finca Cangrejeras — San Bartolomé de la Torre"})]}),a.jsxs("div",{children:[a.jsx("dt",{className:"text-muted-foreground uppercase tracking-wider text-xs mb-1",children:"Cliente"}),a.jsx("dd",{className:"text-architectural",children:"Frescapricho — C
820año Guaperal"})]}),a.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[a.jsxs("div",{children:[a.jsx("dt",{className:"text-muted-foreground uppercase tracking-wider text-xs mb-1",children:"País"}),a.jsx("dd",{className:"text-architectural",children:"España"})]}),a.jsxs("div",{children:[a.jsx("dt",{className:"text-muted-foreground uppercase tracking-wider text-xs mb-1",children:"Provincia"}),a.jsx("dd",{className:"text-architectural",children:"Huelva"})]}),a.jsxs("div",{children:[a.jsx("dt",{className:"text-muted-foreground uppercase tracking-wider text-xs mb-1",children:"Localidad"}),a.jsx("dd",{className:"text-architectural",children:"San Bartolomé de la Torre"})]}),a.jsxs("div",{children:[a.jsx("dt",{className:"text-muted-foreground uppercase tracking-wider text-xs mb-1",children:"Ubicación"}),a.jsx("dd",{className:"text-architectural",children:"Polígono 10 · Parcela 29"})]}),a.jsxs("div",{children:[a.jsx("dt",{className:"text-muted-foreground uppercase tracking-wider text-xs mb-1",children:"Parcela"}),a.jsx("dd",{className:"text-architectural",children:"8.075,50 m²"})]}),a.jsxs("div",{children:[a.jsx("dt",{className:"text-muted-foreground uppercase tracking-wider text-xs mb-1",children:"Construida"}),a.jsx("dd",{className:"text-architectural",children:"4.520,94 m²"})]}),a.jsxs("div",{children:[a.jsx("dt",{className:"text-muted-foreground uppercase tracking-wider text-xs mb-1",children:"Capacidad"}),a.jsx("dd",{className:"text-architectural",children:"532 plazas/personas"})]}),a.jsxs("div",{children:[a.jsx("dt",{className:"text-muted-foreground uppercase tracking-wider text-xs mb-1",children:"Método"}),a.jsx("dd",{className:"text-architectural",children:"MODUSS"})]}),a.jsxs("div",{children:[a.jsx("dt",{className:"text-muted-foreground uppercase tracking-wider text-xs mb-1",children:"Tipología"}),a.jsx("dd",{className:"text-architectural",children:"T2 & T3 (Quality and Basic)"})]}),a.jsxs("div",{children:[a.jsx("dt",{className:"text-muted-foreground uppercase tracking-wider text-xs mb-1",children:"Plazo"}),a.jsx("dd",{className:"text-architectural",children:"6 meses"})]})]})]})]}),a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("h2",{className:"text-minimal mb-6",style:{color:"#b1c854"},children:"DESCRIPCIÓN DE LA OBRA"}),a.jsxs("div",{className:"space-y-5 text-muted-foreground leading-relaxed",children:[a.jsx("p",{children:"La obra descrita constituye la Fase-1 del Complejo Residencial destinado a trabajadores temporeros situado en la Finca Las Cangrejeras, en el T.M. de San Bartolomé de la Torre (Huelva)."}),a.jsx("p",{children:"La subparcela del complejo tiene una superficie de 8.075,50 m². El complejo proyectado ofrece servicio a un total de 532 personas. En dicho complejo se plantean 16 unidades de 24 plazas y 8 unidades de 16 plazas, lo que hace un total de 24 unidades de alojamiento. Se proyecta una superficie construida máxima de 4.520,94 m²."}),a.jsx("p",{children:"Los alojamientos se componen a base de módulos estructurales, que van apilándose y deslizándose en planta para configurar los volúmenes globales. En este caso se ha optado por materializar los módulos estructurales mediante estructura metálica a modo de contenedores nuevamente apilables. Las plantas superiores pueden coincidir en orientación con las inferiores o bien rotarse 180° con respecto a estas, invirtiéndose la fachada de acceso, que se produce mediante escaleras exteriores."}),a.jsx("p",{children:"Los módulos empleados para los alojamientos tipo «Basic» (24 plazas), los tipo «Quality» (16 plazas) y los equipamientos son de cuatro tipos (en cuanto a dimensiones): 8,75×3×3 m (largo, ancho, alto, medidas exteriores con revestimiento) con 25 cm de espesor total, 8,75×1,5×3 m con 25 cm de espesor total, 7,5×3×3 m con 25 cm de espesor total, y 7,5×1,5×3 m con 25 cm de espesor total."}),a.jsx("p",{children:"Las secciones de cerramiento frontales, comunes a todos los alojamientos, y de carácter nuevamente prefabricado, vienen enmarcadas en un marco de chapa plegada con estructura metálica interior con los mismos perfiles que componen los módulos, y de 50 cm de anch
820o, que sirven de remate para los alojamientos. Los módulos emplean en su envolvente un sistema ligero tipo sándwich de capas que permite albergar en su interior unos niveles de aislamiento, a través del panel de fachada prefabricado y el trasdosado interior, que garantizan unas condiciones elevadas de habitabilidad y confort en su interior, a la vez que reduce considerablemente el peso."})]})]})]})})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsx("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"GALERÍA"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"EDIFICIO INDUSTRIAL"})]})}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:Yn.map((i,o)=>a.jsxs("button",{onClick:()=>t(o),className:`group relative overflow-hidden bg-muted ${i.span}`,style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:i.caption})})]},o))})]})})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center animate-in fade-in duration-300",children:[a.jsx("button",{onClick:n,className:"absolute top-6 right-6 text-white/80 hover:text-white transition-colors z-10","aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{onClick:s,className:"absolute left-4 md:left-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Anterior",children:a.jsx(zt,{className:"w-10 h-10"})}),a.jsx("button",{onClick:r,className:"absolute right-4 md:right-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Siguiente",children:a.jsx(It,{className:"w-10 h-10"})}),a.jsxs("div",{className:"max-w-7xl w-full h-full flex flex-col items-center justify-center px-4 md:px-20 py-16",children:[a.jsx("img",{src:Yn[e].src,alt:Yn[e].caption,className:"max-h-[80vh] max-w-full object-contain animate-in fade-in zoom-in-95 duration-500"},e),a.jsxs("div",{className:"mt-6 flex items-center justify-between w-full max-w-3xl text-white/80",children:[a.jsx("p",{className:"text-minimal",children:Yn[e].caption}),a.jsxs("p",{className:"text-minimal text-white/50",children:[String(e+1).padStart(2,"0")," / ",String(Yn.length).padStart(2,"0")]})]})]})]}),a.jsx("style",{children:`
821        @keyframes fadeInUp {
822          from { opacity: 0; transform: translateY(24px); }
823          to { opacity: 1; transform: translateY(0); }
824        }
825      `}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},ZM=1,GM="4542f780-b23f-4c8a-bc10-92b034a43c28",KM="22885900-7753-4d74-9e2f-5cb1776d4f5d",JM="/__l5e/assets-v1/4542f780-b23f-4c8a-bc10-92b034a43c28/oficinas_1.webp",YM="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/4542f780-b23f-4c8a-bc10-92b034a43c28/oficinas_1.webp",QM="oficinas_1.webp",XM=99424,eD="image/webp",tD="2026-07-07T05:29:27Z",D2={version:ZM,asset_id:GM,project_id:KM,url:JM,r2_key:YM,original_filename:QM,size:XM,content_type:eD,created_at:tD},nD=1,sD="776661f4-a31e-45b6-adbe-07c0f05b272d",aD="22885900-7753-4d74-9e2f-5cb1776d4f5d",rD="/__l5e/assets-v1/776661f4-a31e-45b6-adbe-07c0f05b272d/oficinas_2.webp",iD="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/776661f4-a31e-45b6-adbe-07c0f05b272d/oficinas_2.webp",oD="oficinas_2.webp",lD=80850,cD="image/webp",dD="2026-07-07T05:30:55Z",uD={version:nD,asset_id:sD,project_id:aD,url:rD,r2_key:iD,original_filename:oD,size:lD,content_type:cD,created_at:dD},fD=1,pD="847ab416-78e4-4957-983d-4850fd6ad2e0",hD="22885900-7753-4d74-9e2f-5cb1776d4f5d",mD="/__l5e/assets-v1/847ab416-78e4-4957-983d-4850fd6ad2e0/oficinas_3.webp",gD="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/847ab416-78e4-4957-983d-4850fd6ad2e0/oficinas_3.webp",bD="oficinas_3.webp",xD=63134,vD="image/webp",yD="2026-07-07T05:29:50Z",_D={version:fD,asset_id:pD,project_id:hD,url:mD,r2_key:gD,original_filename:bD,size:xD,content_type:vD,created_at:yD},wD=1,jD="fa102cbc-698d-47af-b9ce-437c0d20d070",kD="22885900-7753-4d74-9e2f-5cb1776d4f5d",ND="/__l5e/assets-v1/fa102cbc-698d-47af-b9ce-437c0d20d070/oficinas_4.webp",$D="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/fa102cbc-698d-47af-b9ce-437c0d20d070/oficinas_4.webp",SD="oficinas_4.webp",ED=134484,CD="image/webp",TD="2026-07-07T05:30:06Z",AD={version:wD,asset_id:jD,project_id:kD,url:ND,r2_key:$D,original_filename:SD,size:ED,content_type:CD,created_at:TD},RD=1,PD="d357bb18-e288-44da-aa2b-d995304f2123",OD="22885900-7753-4d74-9e2f-5cb1776d4f5d",zD="/__l5e/assets-v1/d357bb18-e288-44da-aa2b-d995304f2123/oficinas_5.webp",ID="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/d357bb18-e288-44da-aa2b-d995304f2123/oficinas_5.webp",LD="oficinas_5.webp",MD=105364,DD="image/webp",UD="2026-07-07T05:29:34Z",FD={version:RD,asset_id:PD,project_id:OD,url:zD,r2_key:ID,original_filename:LD,size:MD,content_type:DD,created_at:UD},BD=1,qD="47d43c96-4322-42af-84d4-21a6b44fe95b",VD="22885900-7753-4d74-9e2f-5cb1776d4f5d",HD="/__l5e/assets-v1/47d43c96-4322-42af-84d4-21a6b44fe95b/oficinas_6.webp",WD="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/47d43c96-4322-42af-84d4-21a6b44fe95b/oficinas_6.webp",ZD="oficinas_6.webp",GD=126284,KD="image/webp",JD="2026-07-07T05:29:24Z",YD={version:BD,asset_id:qD,project_id:VD,url:HD,r2_key:WD,original_filename:ZD,size:GD,content_type:KD,created_at:JD},QD=1,XD="7558b524-4ebb-4721-8870-8f491608e657",eU="22885900-7753-4d74-9e2f-5cb1776d4f5d",tU="/__l5e/assets-v1/7558b524-4ebb-4721-8870-8f491608e657/oficinas_7.webp",nU="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/7558b524-4ebb-4721-8870-8f491608e657/oficinas_7.webp",sU="oficinas_7.webp",aU=49838,rU="image/webp",iU="2026-07-07T05:30:23Z",oU={version:QD,asset_id:XD,project_id:eU,url:tU,r2_key:nU,original_filename:sU,size:aU,content_type:rU,created_at:iU},lU=1,cU="81b5b493-d061-415b-923f-12650eae50da",dU="22885900-7753-4d74-9e2f-5cb1776d4f5d",uU="/__l5e/assets-v1/81b5b493-d061-415b-923f-12650eae50da/oficinas_8.webp",fU="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/81b5b493-d061-415b-923f-12650eae50da/oficinas_8.webp",pU="oficinas_8.webp",hU=89514,mU="image/webp",gU="2026-07-07T05:30:21Z",bU={version:lU,asset_id:cU,project_id:dU,url:uU,r2_key:fU,original_filename:pU,size:hU,content_type:mU,created_at:gU},xU=1,vU="fee534c7-636f-4bda-b6f2-e7a1dc952e12",yU="22885900-7753-4d74-9e2f-5cb1776d4f5d",_U="/__l5e/assets-v1/fee534c7-636f-4bda-b6f2-e7a1dc952e12/oficinas_9.webp",wU="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/fee534c7-636f-4bda-b6f2-e7a1dc952e12/oficinas_9.webp",jU="oficinas_9.webp",kU=101440,NU="image/webp",$U="2026-07-07T05:30:41Z",SU={version:xU,asset_id:vU,project_id:yU,url:_U,r2_key:wU,original_filename:jU,size:kU,content_type:NU,created_at:$U},EU=1,CU="83cf1285-4b9f-4237-a121-44edc948bc4f",TU="22885900-7753-4d74-9e2f-5cb1776d4f5d",AU="/__l5e/assets-v1/83cf1285-4b9f-4237-a121-44edc948bc4f/oficinas_10.webp",RU="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/83cf1285-4b9f-4237-a121-44edc948bc4f/oficinas_10.webp",PU="oficinas_10.webp",OU=91122,zU="image/webp",IU="2026-07-07T05:28:31Z",LU={version:EU,asset_id:CU,project_id:TU,url:AU,r2_key:RU,original_filename:PU,size:OU,content_type:zU,created_at:IU},MU=1,DU="872f5e2f-49d0-4ea9-9cde-3fff7d503f68",UU="22885900-7753-4d74-9e2f-5cb1776d4f5d",FU="/__l5e/assets-v1/872f5e2f-49d0-4ea9-9cde-3fff7d503f68/oficinas_11.webp",BU="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/872f5e2f-49d0-4ea9-9cde-3fff7d503f68/oficinas_11.webp",qU="oficinas_11.webp",VU=68056,HU="image/webp",WU="2026-07-07T05:29:16Z",ZU={version:MU,asset_id:DU,project_id:UU,url:FU,r2_key:BU,original_filename:qU,size:VU,content_type:HU,created_at:WU},GU=1,KU="b05484d0-b660-401e-88be-687b1f8938e0",JU="22885900-7753-4d74-9e2f-5cb1776d4f5d",YU="/__l5e/assets-v1/b05484d0-b660-401e-88be-687b1f8938e0/donana1998_portada.mp4",QU="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/b05484d0-b660-401e-88be-687b1f8938e0/donana1998_portada.mp4",XU="donana1998_portada.mp4",eF=34478311,tF="video/mp4",nF="2026-07-07T05:39:57Z",sF={version:GU,asset_id:KU,project_id:JU,url:YU,r2_key:QU,original_filename:XU,size:eF,content_type:tF,created_at:nF},aF=1,rF="9ed52a82-915e-4a52-a9d2-58cd736242ab",iF="22885900-7753-4d74-9e2f-5cb1776d4f5d",oF="/__l5e/assets-v1/9ed52a82-915e-4a52-a9d2-58cd736242ab/plano_00_situacion.webp",lF="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/9ed52a82-915e-4a52-a9d2-58cd736242ab/plano_00_situacion.webp",cF="plano_00_situacion.webp",dF=218796,uF="image/webp",fF="2026-07-07T05:31:16Z",pF={version:aF,asset_id:rF,project_id:iF,url:oF,r2_key:lF,original_filename:cF,size:dF,content_type:uF,created_at:fF},hF=1,mF="15e1e885-2036-4d40-9957-f85bfddebc43",gF="22885900-7753-4d74-9e2f-5cb1776d4f5d",bF="/__l5e/assets-v1/15e1e885-2036-4d40-9957-f85bfddebc43/plano_01_pb.webp",xF="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/15e1e885-2036-4d40-9957-f85bfddebc43/plano_01_pb.webp",vF="plano_01_pb.webp",yF=111292,_F="image/webp",wF="2026-07-07T05:32:09Z",jF={version:hF,asset_id:mF,project_id:gF,url:bF,r2_key:xF,original_filename:vF,size:yF,content_type:_F,created_at:wF},kF=1,NF="b0c7fefc-6b52-41c1-9dd7-611091d8eb14",$F="22885900-7753-4d74-9e2f-5cb1776d4f5d",SF="/__l5e/assets-v1/b0c7fefc-6b52-41c1-9dd7-611091d8eb14/plano_02_p1.webp",EF="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/b0c7fefc-6b52-41c1-9dd7-611091d8eb14/plano_02_p1.webp",CF="plano_02_p1.webp",TF=115284,AF="image/webp",RF="2026-07-07T05:32:04Z",PF={version:kF,asset_id:NF,project_id:$F,url:SF,r2_key:EF,original_filename:CF,size:TF,content_type:AF,created_at:RF},OF=1,zF="7f1457d5-cd4e-4aa6-8dfd-0461d4454e91",IF="22885900-7753-4d74-9e2f-5cb1776d4f5d",LF="/__l5e/assets-v1/7f1457d5-cd4e-4aa6-8dfd-0461d4454e91/plano_03_pc.webp",MF="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/7f1457d5-cd4e-4aa6-8dfd-0461d4454e91/plano_03_pc.webp",DF="plano_03_pc.webp",UF=102272,FF="image/webp",BF="2026-07-07T05:32:07Z",qF={version:OF,asset_id:zF,project_id:IF,url:LF,r2_key:MF,original_filename:DF,size:UF,content_type:FF,created_at:BF},VF=1,HF="98ae1f5d-1ada-44aa-8e3e-71daf36d3f4f",WF="22885900-7753-4d74-9e2f-5cb1776d4f5d",ZF="/__l5e/assets-v1/98ae1f5d-1ada-44aa-8e3e-71daf36d3f4f/plano_04_alzados_sur.webp",GF="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/98ae1f5d-1ada-44aa-8e3e-71daf36d3f4f/plano_04_alzados_sur.webp",KF="plano_04_alzados_sur.webp",JF=116206,YF="image/webp",QF="2026-07-07T05:32:14Z",XF={version:VF,asset_id:HF,project_id:WF,url:ZF,r2_key:GF,original_filename:KF,size:JF,content_type:YF,created_at:QF},eB=1,tB="d92c7612-ba24-45a3-b222-92ea553ce250",nB="22885900-7753-4d74-9e2f-5cb1776d4f5d",sB="/__l5e/assets-v1/d92c7612-ba24-45a3-b222-92ea553ce250/plano_05_alzados_norte.webp",aB="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/d92c7612-ba24-45a3-b222-92ea553ce250/plano_05_alzados_norte.webp",rB="plano_05_alzados_norte.webp",iB=91172,oB="image/webp",lB="2026-07-07T05:32:47Z",cB={version:eB,asset_id:tB,project_id:nB,url:sB,r2_key:aB,original_filename:rB,size:iB,content_type:oB,created_at:lB},dB=1,uB="338112ea-0d23-4549-9046-01287850e2eb",fB="22885900-7753-4d74-9e2f-5cb1776d4f5d",pB="/__l5e/assets-v1/338112ea-0d23-4549-9046-01287850e2eb/plano_06_secciones.webp",hB="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/338112ea-0d23-4549-9046-01287850e2eb/plano_06_secciones.webp",mB="plano_06_secciones.webp",gB=76334,bB="image/webp",xB="2026-07-07T05:32:39Z",vB={version:dB,asset_id:uB,project_id:fB,url:pB,r2_key:hB,original_filename:mB,size:gB,content_type:bB,created_at:xB},dg="https://twinmotion.unrealengine.com/panorama/YqIlR5tVDixombDl",_f=[{src:D2.url,caption:"Fachada principal · celosía perforada",span:"md:col-span-2 md:row-span-2"},{src:uD.url,caption:"Alzado frontal · volumen y logotipo",span:"md:col-span-2"},{src:SU.url,caption:"Vista lateral diurna con acceso peatonal",span:"md:col-span-2"},{src:LU.url,caption:"Vista nocturna del volumen principal",span:"md:col-span-2"},{src:ZU.url,caption:"Alzado frontal iluminado al anochecer",span:"md:col-span-4"}],U2=[{src:_D.url,caption:"Acceso interior y escalera de vidrio",span:"md:col-span-2 md:row-span-2"},{src:AD.url,caption:"Despacho con vistas al exterior",span:"md:col-span-2"},{src:FD.url,caption:"Zona de trabajo diáfana en planta alta",span:"md:col-span-2"},{src:YD.url,caption:"Pasarela superior y jardín vertical",span:"md:col-span-2"},{src:oU.url,caption:"Distribución interior y aseos",span:""},{src:bU.url,caption:"Doble altura y escalera principal",span:""}],Gs=[..._f,...U2],yB=[{src:pF.url,title:"00 · Situación y emplazamiento",caption:"Finca «Los Tarajales», El Lote, Subsector II — Almonte (Huelva)"},{src:jF.url,title:"01 · Planta Baja",caption:"Vestíbulo, recepción, administración, técnico, I+D, sala de reuniones y aseos · 241,98 m²"},{src:PF.url,title:"02 · Planta Primera",caption:"Comercial, calida
825d, sala de reuniones, despacho, office y archivo · 203,30 m²"},{src:qF.url,title:"03 · Planta Castillete",caption:"Vestíbulo y almacén superior · 24,65 m²"},{src:XF.url,title:"04 · Alzados Sur",caption:"Alzado sur-oeste y sur-este · escala 1:100"},{src:cB.url,title:"05 · Alzados Norte",caption:"Alzado nor-este y nor-oeste · escala 1:100"},{src:vB.url,title:"06 · Secciones",caption:"Sección longitudinal y sección transversal · escala 1:100"}],_B=()=>{const[e,t]=g.useState(null),n=g.useCallback(()=>t(null),[]),s=g.useCallback(()=>t(i=>i===null?null:(i-1+Gs.length)%Gs.length),[]),r=g.useCallback(()=>t(i=>i===null?null:(i+1)%Gs.length),[]);return g.useEffect(()=>{if(e===null)return;const i=o=>{o.key==="Escape"&&n(),o.key==="ArrowLeft"&&s(),o.key==="ArrowRight"&&r()};return window.addEventListener("keydown",i),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",i),document.body.style.overflow=""}},[e,n,s,r]),a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Centro Cultural Doñana 1998 — Arquitectura modular | Modulya",description:"Centro cultural Doñana 1998: proyecto modular de Modulya que combina diseño arquitectónico, fabricación industrializada y sostenibilidad.",path:"/work/centro-cultural"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors mb-10",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]}),a.jsxs("div",{className:"grid md:grid-cols-3 gap-10 items-end",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("p",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"OFICINAS DOÑANA 1998 · MODUSS"}),a.jsx("h1",{className:"text-5xl md:text-7xl font-light text-architectural leading-[1.05]",children:"Oficinas Doñana 1998"})]}),a.jsxs("div",{className:"space-y-2 md:text-right",children:[a.jsx("p",{className:"text-architectural font-medium",children:"Almonte, Huelva"}),a.jsx("p",{className:"text-muted-foreground",children:"Promotor: Doñana 1998 SL"}),a.jsx("p",{className:"text-muted-foreground",children:"Método Constructivo: MODUSS"}),a.jsx("p",{className:"text-muted-foreground",children:"Uso: Edificio de oficinas hortofrutícola"}),a.jsx("p",{className:"text-muted-foreground",children:"Sup. construida: 469,92 m² · Sup. útil: 368,52 m²"}),a.jsx("p",{className:"text-muted-foreground",children:"Plantas: Baja + 1ª + Castillete"})]})]})]})})}),a.jsx("section",{className:"pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"relative w-full overflow-hidden",children:[a.jsx("video",{src:sF.url,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,poster:D2.url,className:"w-full h-[70vh] object-cover"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/40 via-transparent to-transparent pointer-events-none"}),a.jsxs("div",{className:"absolute bottom-6 left-6 flex flex-wrap gap-3",children:[a.jsx("button",{onClick:()=>t(0),className:"bg-background/90 backdrop-blur-sm px-4 py-2 hover:bg-background transition-colors",children:a.jsx("span",{className:"text-minimal text-foreground",children:"VER GALERÍA COMPLETA"})}),a.jsxs("a",{href:dg,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 bg-foreground text-background px-4 py-2 hover:opacity-90 transition-opacity",children:[a.jsx($s,{className:"w-4 h-4"}),a.jsx("span",{className:"text-minimal",children:"TOUR VIRTUAL 360°"})]})]})]})})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-4xl mx-auto space-y-8 text-muted-foreground leading-relaxed",children:[a.jsx("h2",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Un edificio corporativo industrializado en pleno campo onubense"}),a.jsx("p",{children:"Modulya proyecta y construye para Doñana 1998 SL —empresa hortofrutícola de referencia en Almonte— un nuevo edificio corporativo que reúne, en un único volumen, todas las áreas de administración, técnica, comercial, calida
825d e I+D. La sede se levanta en la finca «Los Tarajales» (Subsector II, El Lote) mediante el sistema constructivo industrializado MODUSS, garantizando plazos ajustados, control de calidad y una imagen arquitectónica contemporánea, coherente con el paisaje agrícola de la comarca."}),a.jsx("p",{children:"El edificio se organiza en dos plantas principales más un castillete técnico, sumando 469,92 m² construidos y 368,52 m² útiles. La planta baja acoge el vestíbulo de acceso, recepción, el departamento de administración, el técnico, I+D, una sala de reuniones y los servicios de apoyo; la planta primera concentra las áreas comercial, calidad, un despacho de dirección, sala de reuniones, office y archivo. La cubierta transitable y el castillete completan el programa con almacenamiento e instalaciones."}),a.jsx("h3",{className:"text-2xl font-light text-architectural pt-6",children:"Imagen y relación con el entorno"}),a.jsx("p",{children:"La fachada principal se resuelve con una celosía metálica perforada de gran formato que envuelve el volumen, filtra la luz solar y proyecta sombras cambiantes sobre los planos interiores. Este tamiz se combina con amplios paños vidriados en planta baja y una franja acristalada continua en planta primera, que abren las zonas de trabajo hacia el paisaje. Los alzados norte, más contenidos, se acabaron en tonos claros mate para garantizar continuidad con las naves de producción existentes en la finca."}),a.jsx("h3",{className:"text-2xl font-light text-architectural pt-6",children:"Sistema constructivo"}),a.jsx("p",{children:"La estructura metálica se resuelve con perfilería atornillada, lo que permite un montaje rápido en obra y el desmontaje o reconfiguración futura si fuese necesario. La envolvente —cerramientos, forjados y cubiertas— se ejecuta con panel sándwich de EPS reforzado con mortero y malla de fibra de vidrio bidireccional. En el interior, el trasdosado de placa de yeso laminado con lámina de lana mineral suma un segundo nivel de aislamiento térmico y acústico, alcanzando altos estándares de confort y eficiencia energética."}),a.jsx("p",{children:"El proyecto se completa con un recorrido interior organizado en torno a una escalera de vidrio y una doble altura que conecta ambas plantas, reforzando la sensación de transparencia y trabajo colaborativo, valores con los que Doñana 1998 quiere presentar su marca al sector."})]})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"01 · EXTERIORES"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Volumen y celosía"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Fachadas perforadas, alzados diurnos y nocturnos que definen la imagen del edificio en Almonte."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:_f.map((i,o)=>a.jsxs("button",{onClick:()=>t(o),className:`group relative overflow-hidden bg-muted ${i.span}`,style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:i.caption})})]},`ext-${o}`))})]})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto border border-border p-8 md:p-12 flex flex-col md:flex-row items-start md:items-center justify-between gap-6",children:[a.jsxs("div",{children:[a.jsx("p",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"RECORRIDO VIRTUAL"}),a.jsx("h3",{className:"text-2xl md:text-4xl font-light text-architectural",children:"Recorre las oficinas Doñana 1998 en 360°"}),a.jsx("p",{className:"text-muted-foreground mt-3 max-w-2xl",children:"Explora el edificio de forma inmersiva desde tu navegador con el tour virtual desarrollado en Twinmotion."})]}),a.jsxs("a",{href:dg,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 bg-foreground text-background px-6 py-3 hover:opacity-90 transition-opacity whitespace-nowrap",children:[a.jsx($s,{className:"w-4 h-4"}),a.jsx("span",{className:"text-minimal",children:"ABRIR TOUR VIRTUAL"})]})]})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"02 · INTERIORES"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Espacios de trabajo"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Accesos, despachos, pasarelas y núcleos de comunicación que articulan el interior de las oficinas."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:U2.map((i,o)=>{const l=_f.length+o;return a.jsxs("button",{onClick:()=>t(l),className:`group relative overflow-hidden bg-muted ${i.span}`,style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:i.caption})})]},`int-${o}`)}
825)})]})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"03 · PLANOS"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Distribución, alzados y secciones"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Documentación técnica del proyecto: emplazamiento, plantas, alzados y secciones a escala 1:100."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:yB.map((i,o)=>a.jsxs("figure",{className:"bg-muted overflow-hidden border border-border",style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.title,loading:"lazy",className:"w-full h-auto object-contain bg-white"}),a.jsxs("figcaption",{className:"p-5 border-t border-border bg-background",children:[a.jsx("p",{className:"text-minimal text-architectural mb-1",children:i.title}),a.jsx("p",{className:"text-sm text-muted-foreground",children:i.caption})]})]},`plano-${o}`))})]})})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center animate-in fade-in duration-300",children:[a.jsx("button",{onClick:n,className:"absolute top-6 right-6 text-white/80 hover:text-white transition-colors z-10","aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{onClick:s,className:"absolute left-4 md:left-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Anterior",children:a.jsx(zt,{className:"w-10 h-10"})}),a.jsx("button",{onClick:r,className:"absolute right-4 md:right-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Siguiente",children:a.jsx(It,{className:"w-10 h-10"})}),a.jsxs("div",{className:"max-w-7xl w-full h-full flex flex-col items-center justify-center px-4 md:px-20 py-16",children:[a.jsx("img",{src:Gs[e].src,alt:Gs[e].caption,className:"max-h-[80vh] max-w-full object-contain animate-in fade-in zoom-in-95 duration-500"},e),a.jsxs("div",{className:"mt-6 flex items-center justify-between w-full max-w-3xl text-white/80",children:[a.jsx("p",{className:"text-minimal",children:Gs[e].caption}),a.jsxs("p",{className:"text-minimal text-white/50",children:[String(e+1).padStart(2,"0")," / ",String(Gs.length).padStart(2,"0")]})]})]})]}),a.jsx("style",{children:`
826        @keyframes fadeInUp {
827          from { opacity: 0; transform: translateY(24px); }
828          to { opacity: 1; transform: translateY(0); }
829        }
830      `}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},wB=1,jB="94aa748b-d3be-4439-9e44-869473e25479",kB="22885900-7753-4d74-9e2f-5cb1776d4f5d",NB="/__l5e/assets-v1/94aa748b-d3be-4439-9e44-869473e25479/loft_2.webp",$B="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/94aa748b-d3be-4439-9e44-869473e25479/loft_2.webp",SB="loft_2.webp",EB=107452,CB="image/webp",TB="2026-07-07T05:31:50Z",AB={version:wB,asset_id:jB,project_id:kB,url:NB,r2_key:$B,original_filename:SB,size:EB,content_type:CB,created_at:TB},RB=1,PB="64a967dc-f563-43db-afb4-6da71a5aa97c",OB="22885900-7753-4d74-9e2f-5cb1776d4f5d",zB="/__l5e/assets-v1/64a967dc-f563-43db-afb4-6da71a5aa97c/loft_3.webp",IB="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/64a967dc-f563-43db-afb4-6da71a5aa97c/loft_3.webp",LB="loft_3.webp",MB=129374,DB="image/webp",UB="2026-07-07T05:28:36Z",FB={version:RB,asset_id:PB,project_id:OB,url:zB,r2_key:IB,original_filename:LB,size:MB,content_type:DB,created_at:UB},BB=1,qB="8cc2e843-74d4-454c-af14-cdf9580e5247",VB="22885900-7753-4d74-9e2f-5cb1776d4f5d",HB="/__l5e/assets-v1/8cc2e843-74d4-454c-af14-cdf9580e5247/loft_4.webp",WB="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/8cc2e843-74d4-454c-af14-cdf9580e5247/loft_4.webp",ZB="loft_4.webp",GB=133080,KB="image/webp",JB="2026-07-07T05:30:31Z",YB={version:BB,asset_id:qB,project_id:VB,url:HB,r2_key:WB,original_filename:ZB,size:GB,content_type:KB,created_at:JB},QB=1,XB="ae2b99a5-a242-4884-9e87-dd8da8a9ee34",eq="22885900-7753-4d74-9e2f-5cb1776d4f5d",tq="/__l5e/assets-v1/ae2b99a5-a242-4884-9e87-dd8da8a9ee34/loft_5.webp",nq="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/ae2b99a5-a242-4884-9e87-dd8da8a9ee34/loft_5.webp",sq
830="loft_5.webp",aq=134344,rq="image/webp",iq="2026-07-07T05:28:44Z",oq={version:QB,asset_id:XB,project_id:eq,url:tq,r2_key:nq,original_filename:sq,size:aq,content_type:rq,created_at:iq},lq=1,cq="0cd99092-8624-4a08-9962-8fe8fec1acef",dq="22885900-7753-4d74-9e2f-5cb1776d4f5d",uq="/__l5e/assets-v1/0cd99092-8624-4a08-9962-8fe8fec1acef/loft_6.webp",fq="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/0cd99092-8624-4a08-9962-8fe8fec1acef/loft_6.webp",pq="loft_6.webp",hq=91504,mq="image/webp",gq="2026-07-07T05:31:05Z",bq={version:lq,asset_id:cq,project_id:dq,url:uq,r2_key:fq,original_filename:pq,size:hq,content_type:mq,created_at:gq},xq=1,vq="cf172822-5339-4080-bb66-0385208d529b",yq="22885900-7753-4d74-9e2f-5cb1776d4f5d",_q="/__l5e/assets-v1/cf172822-5339-4080-bb66-0385208d529b/loft_7.webp",wq="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/cf172822-5339-4080-bb66-0385208d529b/loft_7.webp",jq="loft_7.webp",kq=121638,Nq="image/webp",$q="2026-07-07T05:29:42Z",Sq={version:xq,asset_id:vq,project_id:yq,url:_q,r2_key:wq,original_filename:jq,size:kq,content_type:Nq,created_at:$q},Eq=1,Cq="ac0f48a7-7558-49f2-82b4-83fb156d5ea7",Tq="22885900-7753-4d74-9e2f-5cb1776d4f5d",Aq="/__l5e/assets-v1/ac0f48a7-7558-49f2-82b4-83fb156d5ea7/loft_8.webp",Rq="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/ac0f48a7-7558-49f2-82b4-83fb156d5ea7/loft_8.webp",Pq="loft_8.webp",Oq=106850,zq="image/webp",Iq="2026-07-07T05:30:49Z",Lq={version:Eq,asset_id:Cq,project_id:Tq,url:Aq,r2_key:Rq,original_filename:Pq,size:Oq,content_type:zq,created_at:Iq},Mq=1,Dq="fff0bfd2-1753-45de-a1d0-c8f904f3ce49",Uq="22885900-7753-4d74-9e2f-5cb1776d4f5d",Fq="/__l5e/assets-v1/fff0bfd2-1753-45de-a1d0-c8f904f3ce49/loft_9.webp",Bq="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/fff0bfd2-1753-45de-a1d0-c8f904f3ce49/loft_9.webp",qq="loft_9.webp",Vq=59544,Hq="image/webp",Wq="2026-07-07T05:32:44Z",Zq={version:Mq,asset_id:Dq,project_id:Uq,url:Fq,r2_key:Bq,original_filename:qq,size:Vq,content_type:Hq,created_at:Wq},Gq=1,Kq="74547d8f-5c89-498b-9364-041b0e974e03",Jq="22885900-7753-4d74-9e2f-5cb1776d4f5d",Yq="/__l5e/assets-v1/74547d8f-5c89-498b-9364-041b0e974e03/loft_10.jpeg",Qq="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/74547d8f-5c89-498b-9364-041b0e974e03/loft_10.jpeg",Xq="loft_10.jpeg",eV=183167,tV="image/jpeg",nV="2026-06-08T05:46:58Z",sV={version:Gq,asset_id:Kq,project_id:Jq,url:Yq,r2_key:Qq,original_filename:Xq,size:eV,content_type:tV,created_at:nV},aV=1,rV="1a7f58be-8269-4247-a27e-cbae82125a12",iV="22885900-7753-4d74-9e2f-5cb1776d4f5d",oV="/__l5e/assets-v1/1a7f58be-8269-4247-a27e-cbae82125a12/loft_11.jpeg",lV="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/1a7f58be-8269-4247-a27e-cbae82125a12/loft_11.jpeg",cV="loft_11.jpeg",dV=198623,uV="image/jpeg",fV="2026-06-08T05:46:58Z",pV={version:aV,asset_id:rV,project_id:iV,url:oV,r2_key:lV,original_filename:cV,size:dV,content_type:uV,created_at:fV},hV=1,mV="8db92878-6bc0-4555-859b-a0100a4e979a",gV="22885900-7753-4d74-9e2f-5cb1776d4f5d",bV="/__l5e/assets-v1/8db92878-6bc0-4555-859b-a0100a4e979a/loft_12.webp",xV="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/8db92878-6bc0-4555-859b-a0100a4e979a/loft_12.webp",vV="loft_12.webp",yV=263234,_V="image/webp",wV="2026-07-07T05:33:48Z",jV={version:hV,asset_id:mV,project_id:gV,url:bV,r2_key:xV,original_filename:vV,size:yV,content_type:_V,created_at:wV},kV=1,NV="36632130-81d9-412c-bd75-a7ed21d68ad3",$V="22885900-7753-4d74-9e2f-5cb1776d4f5d",SV="/__l5e/assets-v1/36632130-81d9-412c-bd75-a7ed21d68ad3/loft_13.jpeg",EV="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/36632130-81d9-412c-bd75-a7ed21d68ad3/loft_13.jpeg",CV="loft_13.jpeg",TV=142606,AV="image/jpeg",RV="2026-06-08T05:46:58Z",PV={version:kV,asset_id:NV,project_id:$V,url:SV,r2_key:EV,original_filename:CV,size:TV,content_type:AV,created_at:RV},OV=1,zV="6fbdfb54-5de7-4dd1-bd4f-0433544e8d03",IV="22885900-7753-4d74-9e2f-5cb1776d4f5d",LV="/__l5e/assets-v1/6fbdfb54-5de7-4dd1-bd4f-0433544e8d03/loft_14.jpeg",MV="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6fbdfb54-5de7-4dd1-bd4f-0433544e8d03/loft_14.jpeg",DV="loft_14.jpeg",UV=214108,FV="image/jpeg",BV="2026-06-08T05:46:58Z",qV={version:OV,asset_id:zV,project_id:IV,url:LV,r2_key:MV,original_filename:DV,size:UV,content_type:FV,created_at:BV},VV=1,HV="0b8e0fcf-c573-4ba7-afb5-95500ef10a9f",WV="22885900-7753-4d74-9e2f-5cb1776d4f5d",ZV="/__l5e/assets-v1/0b8e0fcf-c573-4ba7-afb5-95500ef10a9f/loft_15.jpeg",GV="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/0b8e0fcf-c573-4ba7-afb5-95500ef10a9f/loft_15.jpeg",KV="loft_15.jpeg",JV=179040,YV="image/jpeg",QV="2026-06-08T05:46:58Z",XV={version:VV,asset_id:HV,project_id:WV,url:ZV,r2_key:GV,original_filename:KV,size:JV,content_type:YV,created_at:QV},eH=1,tH="a039ec0d-eef3-4961-9f45-bab1916a1130",nH="22885900-7753-4d74-9e2f-5cb1776d4f5d",sH="/__l5e/assets-v1/a039ec0d-eef3-4961-9f45-bab1916a1130/loft_16.jpeg",aH="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/a039ec0d-eef3-4961-9f45-bab1916a1130/loft_16.jpeg",rH="loft_16.jpeg",iH=206243,oH="image/jpeg",lH="2026-06-08T05:46:58Z",cH={version:eH,asset_id:tH,project_id:nH,url:sH,r2_key:aH,original_filename:rH,size:iH,content_type:oH,created_at:lH},dH=1,uH="69578caf-5045-42bb-95d5-310d8b91731d",fH="22885900-7753-4d74-9e2f-5cb1776d4f5d",pH="/__l5e/assets-v1/69578caf-5045-42bb-95d5-310d8b91731d/loft_17.jpeg",hH="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/69578caf-5045-42bb-95d5-310d8b91731d/loft_17.jpeg",mH="loft_17.jpeg",gH=247322,bH="image/jpeg",xH="2026-06-08T05:46:58Z",vH={version:dH,asset_id:uH,project_id:fH,url:pH,r2_key:hH,original_filename:mH,size:gH,content_type:bH,created_at:xH},yH=1,_H="0a737966-9fcf-4cb1-a001-f8b94d5e8934",wH="22885900-7753-4d74-9e2f-5cb1776d4f5d",jH="/__l5e/assets-v1/0a737966-9fcf-4cb1-a001-f8b94d5e8934/loft_18.jpeg",kH="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/0a737966-9fcf-4cb1-a001-f8b94d5e8934/loft_18.jpeg",NH="loft_18.jpeg",$H=246533,SH="image/jpeg",EH="2026-06-08T05:46:58Z",CH={version:yH,asset_id:_H,project_id:wH,url:jH,r2_key:kH,original_filename:NH,size:$H,content_type:SH,created_at:EH},TH=1,AH="9d91c661-a8ce-4084-b50e-acfe4d025c13",RH="22885900-7753-4d74-9e2f-5cb1776d4f5d",PH="/__l5e/assets-v1/9d91c661-a8ce-4084-b50e-acfe4d025c13/loft_19.webp",OH="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/9d91c661-a8ce-4084-b50e-acfe4d025c13/loft_19.webp",zH="loft_19.webp",IH=228860,LH="image/webp",MH="2026-07-07T05:34:19Z",DH={version:TH,asset_id:AH,project_id:RH,url:PH,r2_key:OH,original_filename:zH,size:IH,content_type:LH,created_at:MH},UH=1,FH="273f2866-5d92-44fa-8934-563167bd9d1a",BH="22885900-7753-4d74-9e2f-5cb1776d4f5d",qH="/__l5e/assets-v1/273f2866-5d92-44fa-8934-563167bd9d1a/loft_20.jpeg",VH="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/273f2866-5d92-44fa-8934-563167bd9d1a/loft_20.jpeg",HH="loft_20.jpeg",WH=212955,ZH="image/jpeg",GH="2026-06-08T05:46:58Z",KH={version:UH,asset_id:FH,project_id:BH,url:qH,r2_key:VH,original_filename:HH,size:WH,content_type:ZH,created_at:GH}
830,JH=1,YH="33a704cf-97a8-4285-9b2d-6a4e4ec59b95",QH="22885900-7753-4d74-9e2f-5cb1776d4f5d",XH="/__l5e/assets-v1/33a704cf-97a8-4285-9b2d-6a4e4ec59b95/loft_21.jpeg",eW="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/33a704cf-97a8-4285-9b2d-6a4e4ec59b95/loft_21.jpeg",tW="loft_21.jpeg",nW=195773,sW="image/jpeg",aW="2026-06-08T05:46:58Z",rW={version:JH,asset_id:YH,project_id:QH,url:XH,r2_key:eW,original_filename:tW,size:nW,content_type:sW,created_at:aW},iW=1,oW="f2e63135-5d4b-4420-abc8-902317eff6ea",lW="22885900-7753-4d74-9e2f-5cb1776d4f5d",cW="/__l5e/assets-v1/f2e63135-5d4b-4420-abc8-902317eff6ea/loft_22.webp",dW="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/f2e63135-5d4b-4420-abc8-902317eff6ea/loft_22.webp",uW="loft_22.webp",fW=264888,pW="image/webp",hW="2026-07-07T05:33:53Z",mW={version:iW,asset_id:oW,project_id:lW,url:cW,r2_key:dW,original_filename:uW,size:fW,content_type:pW,created_at:hW},gW=1,bW="6fbbb950-16c6-4209-a59b-a9625ba1cbeb",xW="22885900-7753-4d74-9e2f-5cb1776d4f5d",vW="/__l5e/assets-v1/6fbbb950-16c6-4209-a59b-a9625ba1cbeb/loft_23.jpeg",yW="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6fbbb950-16c6-4209-a59b-a9625ba1cbeb/loft_23.jpeg",_W="loft_23.jpeg",wW=230433,jW="image/jpeg",kW="2026-06-08T05:46:58Z",NW={version:gW,asset_id:bW,project_id:xW,url:vW,r2_key:yW,original_filename:_W,size:wW,content_type:jW,created_at:kW},$W=1,SW="b2862cd9-02a0-4752-a685-3c14af414d42",EW="22885900-7753-4d74-9e2f-5cb1776d4f5d",CW="/__l5e/assets-v1/b2862cd9-02a0-4752-a685-3c14af414d42/loft_24.jpeg",TW="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/b2862cd9-02a0-4752-a685-3c14af414d42/loft_24.jpeg",AW="loft_24.jpeg",RW=243748,PW="image/jpeg",OW="2026-06-08T05:46:58Z",zW={version:$W,asset_id:SW,project_id:EW,url:CW,r2_key:TW,original_filename:AW,size:RW,content_type:PW,created_at:OW},IW=1,LW="38a69bcc-7571-41cc-9313-8de03098f0fa",MW="22885900-7753-4d74-9e2f-5cb1776d4f5d",DW="/__l5e/assets-v1/38a69bcc-7571-41cc-9313-8de03098f0fa/loft_25.jpeg",UW="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/38a69bcc-7571-41cc-9313-8de03098f0fa/loft_25.jpeg",FW="loft_25.jpeg",BW=203036,qW="image/jpeg",VW="2026-06-08T05:46:58Z",HW={version:IW,asset_id:LW,project_id:MW,url:DW,r2_key:UW,original_filename:FW,size:BW,content_type:qW,created_at:VW},WW=1,ZW="b6b3b7c7-f555-4d88-ba0b-c6fe38390881",GW="22885900-7753-4d74-9e2f-5cb1776d4f5d",KW="/__l5e/assets-v1/b6b3b7c7-f555-4d88-ba0b-c6fe38390881/loft_26.jpeg",JW="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/b6b3b7c7-f555-4d88-ba0b-c6fe38390881/loft_26.jpeg",YW="loft_26.jpeg",QW=164352,XW="image/jpeg",eZ="2026-06-08T05:46:58Z",tZ={version:WW,asset_id:ZW,project_id:GW,url:KW,r2_key:JW,original_filename:YW,size:QW,content_type:XW,created_at:eZ},nZ=1,sZ="6dd958c4-5338-4c0c-a222-f2e8f38a2208",aZ="22885900-7753-4d74-9e2f-5cb1776d4f5d",rZ="/__l5e/assets-v1/6dd958c4-5338-4c0c-a222-f2e8f38a2208/loft_27.jpeg",iZ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6dd958c4-5338-4c0c-a222-f2e8f38a2208/loft_27.jpeg",oZ="loft_27.jpeg",lZ=170141,cZ="image/jpeg",dZ="2026-06-08T05:46:58Z",uZ={version:nZ,asset_id:sZ,project_id:aZ,url:rZ,r2_key:iZ,original_filename:oZ,size:lZ,content_type:cZ,created_at:dZ},fZ=1,pZ="b0e7e834-ace9-458a-bc4b-277e6b617c74",hZ="22885900-7753-4d74-9e2f-5cb1776d4f5d",mZ="/__l5e/assets-v1/b0e7e834-ace9-458a-bc4b-277e6b617c74/loft_28.jpeg",gZ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/b0e7e834-ace9-458a-bc4b-277e6b617c74/loft_28.jpeg",bZ="loft_28.jpeg",xZ=157806,vZ="image/jpeg",yZ="2026-06-08T05:46:58Z",_Z={version:fZ,asset_id:pZ,project_id:hZ,url:mZ,r2_key:gZ,original_filename:bZ,size:xZ,content_type:vZ,created_at:yZ},wZ=1,jZ="088089ad-6946-4e94-911d-8affdbd44d76",kZ="22885900-7753-4d74-9e2f-5cb1776d4f5d",NZ="/__l5e/assets-v1/088089ad-6946-4e94-911d-8affdbd44d76/loft_29.jpeg",$Z="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/088089ad-6946-4e94-911d-8affdbd44d76/loft_29.jpeg",SZ="loft_29.jpeg",EZ=236972,CZ="image/jpeg",TZ="2026-06-08T05:46:58Z",AZ={version:wZ,asset_id:jZ,project_id:kZ,url:NZ,r2_key:$Z,original_filename:SZ,size:EZ,content_type:CZ,created_at:TZ},RZ=1,PZ="a935378d-6ff0-4352-9026-484e17673ce9",OZ="22885900-7753-4d74-9e2f-5cb1776d4f5d",zZ="/__l5e/assets-v1/a935378d-6ff0-4352-9026-484e17673ce9/loft_30.jpeg",IZ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/a935378d-6ff0-4352-9026-484e17673ce9/loft_30.jpeg",LZ="loft_30.jpeg",MZ=228135,DZ="image/jpeg",UZ="2026-06-08T05:46:58Z",FZ={version:RZ,asset_id:PZ,project_id:OZ,url:zZ,r2_key:IZ,original_filename:LZ,size:MZ,content_type:DZ,created_at:UZ},BZ=1,qZ="e8690b74-07d9-427e-9015-a62219aab3ef",VZ="22885900-7753-4d74-9e2f-5cb1776d4f5d",HZ="/__l5e/assets-v1/e8690b74-07d9-427e-9015-a62219aab3ef/loft_31.jpeg",WZ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e8690b74-07d9-427e-9015-a62219aab3ef/loft_31.jpeg",ZZ="loft_31.jpeg",GZ=215635,KZ="image/jpeg",JZ="2026-06-08T05:46:58Z",YZ={version:BZ,asset_id:qZ,project_id:VZ,url:HZ,r2_key:WZ,original_filename:ZZ,size:GZ,content_type:KZ,created_at:JZ},QZ=1,XZ="00d36e19-8c81-4f10-b1f8-acbbbb5e2f15",eG="22885900-7753-4d74-9e2f-5cb1776d4f5d",tG="/__l5e/assets-v1/00d36e19-8c81-4f10-b1f8-acbbbb5e2f15/loft_32.jpeg",nG="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/00d36e19-8c81-4f10-b1f8-acbbbb5e2f15/loft_32.jpeg",sG="loft_32.jpeg",aG=184973,rG="image/jpeg",iG="2026-06-08T05:46:58Z",oG={version:QZ,asset_id:XZ,project_id:eG,url:tG,r2_key:nG,original_filename:sG,size:aG,content_type:rG,created_at:iG},lG=1,cG="eabf83a3-d5b7-4e24-8228-0ee7d0cce70e",dG="22885900-7753-4d74-9e2f-5cb1776d4f5d",uG="/__l5e/assets-v1/eabf83a3-d5b7-4e24-8228-0ee7d0cce70e/loft_33.webp",fG="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/eabf83a3-d5b7-4e24-8228-0ee7d0cce70e/loft_33.webp",pG="loft_33.webp",hG=361976,mG="image/webp",gG="2026-07-07T05:32:59Z",bG={version:lG,asset_id:cG,project_id:dG,url:uG,r2_key:fG,original_filename:pG,size:hG,content_type:mG,created_at:gG},xG=1,vG="66c9bccf-1da8-4f8c-a130-f0888f848e57",yG="22885900-7753-4d74-9e2f-5cb1776d4f5d",_G="/__l5e/assets-v1/66c9bccf-1da8-4f8c-a130-f0888f848e57/loft_34.webp",wG="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/66c9bccf-1da8-4f8c-a130-f0888f848e57/loft_34.webp",jG="loft_34.webp",kG=336212,NG="image/webp",$G="2026-07-07T05:33:02Z",SG={version:xG,asset_id:vG,project_id:yG,url:_G,r2_key:wG,original_filename:jG,size:kG,content_type:NG,created_at:$G},EG=1,CG="c009eef8-36d3-40d4-a88e-2daba4ea3182",TG="22885900-7753-4d74-9e2f-5cb1776d4f5d",AG="/__l5e/assets-v1/c009eef8-36d3-40d4-a88e-2daba4ea3182/loft_35.webp",RG="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/c009eef8-36d3-40d4-a88e-2daba4ea3182/loft_35.webp",PG="loft_35.webp",OG=252870,zG="image/webp",IG="2026-07-07T05:33:26Z",LG={version:EG,asset_id:CG,project_id:TG,url:AG,r2_key:RG,original_filename:PG,size:OG,content_type:zG,created_at:IG},MG=1,DG="9bf317db-c703-42ca-ad31-3756d1f7f994",UG="22885900-7753-4d74-9e2f-5cb1776d4f5d",FG="/__l5e/assets-v1/9bf317db-c703-42ca-ad31-3756d1f7f994/loft_36.jpeg",BG="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/9bf317db-c703-42ca-ad31-3756d1f7f994/loft_36.jpeg",qG="loft_36.jpeg",VG=227631,HG="image/jpeg",WG="2026-06-08T05:46:58Z",ZG={ver
830sion:MG,asset_id:DG,project_id:UG,url:FG,r2_key:BG,original_filename:qG,size:VG,content_type:HG,created_at:WG},GG=1,KG="0fecfc38-7df3-46a2-9399-03cbb0cb76a4",JG="22885900-7753-4d74-9e2f-5cb1776d4f5d",YG="/__l5e/assets-v1/0fecfc38-7df3-46a2-9399-03cbb0cb76a4/loft_37.webp",QG="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/0fecfc38-7df3-46a2-9399-03cbb0cb76a4/loft_37.webp",XG="loft_37.webp",eK=267356,tK="image/webp",nK="2026-07-07T05:33:16Z",sK={version:GG,asset_id:KG,project_id:JG,url:YG,r2_key:QG,original_filename:XG,size:eK,content_type:tK,created_at:nK},aK=1,rK="037ed208-a00d-4d63-9aab-1630e8ccadaf",iK="22885900-7753-4d74-9e2f-5cb1776d4f5d",oK="/__l5e/assets-v1/037ed208-a00d-4d63-9aab-1630e8ccadaf/loft_38.webp",lK="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/037ed208-a00d-4d63-9aab-1630e8ccadaf/loft_38.webp",cK="loft_38.webp",dK=291304,uK="image/webp",fK="2026-07-07T05:33:13Z",pK={version:aK,asset_id:rK,project_id:iK,url:oK,r2_key:lK,original_filename:cK,size:dK,content_type:uK,created_at:fK},hK=1,mK="da31eb2d-d456-4180-b3fc-1457b29c2b7c",gK="22885900-7753-4d74-9e2f-5cb1776d4f5d",bK="/__l5e/assets-v1/da31eb2d-d456-4180-b3fc-1457b29c2b7c/loft_39.webp",xK="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/da31eb2d-d456-4180-b3fc-1457b29c2b7c/loft_39.webp",vK="loft_39.webp",yK=239676,_K="image/webp",wK="2026-07-07T05:33:43Z",jK={version:hK,asset_id:mK,project_id:gK,url:bK,r2_key:xK,original_filename:vK,size:yK,content_type:_K,created_at:wK},kK=1,NK="6d5330f8-ca51-4b77-b7a1-a5abb7c1e700",$K="22885900-7753-4d74-9e2f-5cb1776d4f5d",SK="/__l5e/assets-v1/6d5330f8-ca51-4b77-b7a1-a5abb7c1e700/loft_40.webp",EK="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6d5330f8-ca51-4b77-b7a1-a5abb7c1e700/loft_40.webp",CK="loft_40.webp",TK=249480,AK="image/webp",RK="2026-07-07T05:33:37Z",PK={version:kK,asset_id:NK,project_id:$K,url:SK,r2_key:EK,original_filename:CK,size:TK,content_type:AK,created_at:RK},OK=1,zK="18d660c3-3b9d-4cd5-ab1f-fe63ac4dedee",IK="22885900-7753-4d74-9e2f-5cb1776d4f5d",LK="/__l5e/assets-v1/18d660c3-3b9d-4cd5-ab1f-fe63ac4dedee/loft_41.webp",MK="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/18d660c3-3b9d-4cd5-ab1f-fe63ac4dedee/loft_41.webp",DK="loft_41.webp",UK=273752,FK="image/webp",BK="2026-07-07T05:33:34Z",qK={version:OK,asset_id:zK,project_id:IK,url:LK,r2_key:MK,original_filename:DK,size:UK,content_type:FK,created_at:BK},VK=1,HK="adc1990c-8abe-4d59-b3d4-f8ca386f97b5",WK="22885900-7753-4d74-9e2f-5cb1776d4f5d",ZK="/__l5e/assets-v1/adc1990c-8abe-4d59-b3d4-f8ca386f97b5/loft_42.webp",GK="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/adc1990c-8abe-4d59-b3d4-f8ca386f97b5/loft_42.webp",KK="loft_42.webp",JK=201262,YK="image/webp",QK="2026-07-07T05:34:01Z",XK={version:VK,asset_id:HK,project_id:WK,url:ZK,r2_key:GK,original_filename:KK,size:JK,content_type:YK,created_at:QK},eJ=1,tJ="0f079744-15e3-476d-8512-296c4011abea",nJ="22885900-7753-4d74-9e2f-5cb1776d4f5d",sJ="/__l5e/assets-v1/0f079744-15e3-476d-8512-296c4011abea/loft_43.jpeg",aJ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/0f079744-15e3-476d-8512-296c4011abea/loft_43.jpeg",rJ="loft_43.jpeg",iJ=242039,oJ="image/jpeg",lJ="2026-06-08T05:46:58Z",cJ={version:eJ,asset_id:tJ,project_id:nJ,url:sJ,r2_key:aJ,original_filename:rJ,size:iJ,content_type:oJ,created_at:lJ},dJ=1,uJ="9d1c52f3-47e0-4100-9d29-f756b914667c",fJ="22885900-7753-4d74-9e2f-5cb1776d4f5d",pJ="/__l5e/assets-v1/9d1c52f3-47e0-4100-9d29-f756b914667c/loft_44.webp",hJ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/9d1c52f3-47e0-4100-9d29-f756b914667c/loft_44.webp",mJ="loft_44.webp",gJ=223816,bJ="image/webp",xJ="2026-07-07T05:33:40Z",vJ={version:dJ,asset_id:uJ,project_id:fJ,url:pJ,r2_key:hJ,original_filename:mJ,size:gJ,content_type:bJ,created_at:xJ},yJ=1,_J="efcff459-b9ba-4957-ad41-a21dff968f0b",wJ="22885900-7753-4d74-9e2f-5cb1776d4f5d",jJ="/__l5e/assets-v1/efcff459-b9ba-4957-ad41-a21dff968f0b/loft_45.webp",kJ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/efcff459-b9ba-4957-ad41-a21dff968f0b/loft_45.webp",NJ="loft_45.webp",$J=206156,SJ="image/webp",EJ="2026-07-07T05:34:04Z",CJ={version:yJ,asset_id:_J,project_id:wJ,url:jJ,r2_key:kJ,original_filename:NJ,size:$J,content_type:SJ,created_at:EJ},TJ=1,AJ="a6a56692-4545-4530-97dc-204bbdde41bf",RJ="22885900-7753-4d74-9e2f-5cb1776d4f5d",PJ="/__l5e/assets-v1/a6a56692-4545-4530-97dc-204bbdde41bf/loft_46.jpeg",OJ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/a6a56692-4545-4530-97dc-204bbdde41bf/loft_46.jpeg",zJ="loft_46.jpeg",IJ=199736,LJ="image/jpeg",MJ="2026-06-08T05:46:58Z",DJ={version:TJ,asset_id:AJ,project_id:RJ,url:PJ,r2_key:OJ,original_filename:zJ,size:IJ,content_type:LJ,created_at:MJ},Qn=[{src:jV.url,caption:"01 · Convoy de transporte aproximándose a obra",span:"md:col-span-2"},{src:AZ.url,caption:"02 · Camión con módulo cruzando el vial de acceso",span:""},{src:Sq.url,caption:"03 · Llegada del trailer a pie de obra",span:"md:col-span-2"},{src:FZ.url,caption:"04 · Trailer con módulos en zona de maniobra",span:""},{src:YZ.url,caption:"05 · Posicionamiento del trailer junto a la grúa",span:""},{src:oG.url,caption:"06 · Vista general de la parcela con grúas en operación",span:"md:col-span-2"},{src:Gp.url,caption:"07 · Equipo coordinador junto al área de izado",span:""},{src:pV.url,caption:"08 · Briefing del operario en zona de descarga",span:""},{src:qV.url,caption:"09 · Cuadrilla preparando la maniobra",span:""},{src:XV.url,caption:"10 · Grúa móvil situada para el primer izado",span:""},{src:oq.url,caption:"11 · Módulo posicionado sobre trailer para amarre",span:"md:col-span-2"},{src:mW.url,caption:"12 · Operario revisando anclajes del módulo",span:""},{src:NW.url,caption:"13 · Ajuste final del módulo sobre la plataforma",span:""},{src:rW.url,caption:"14 · Aproximación del módulo a la grúa",span:""},{src:vH.url,caption:"15 · Conexión de eslingas al módulo",span:""},{src:SG.url,caption:"16 · Vista lateral del módulo listo para izar",span:"md:col-span-2"},{src:LG.url,caption:"17 · Eslingas tensionadas sobre la cubierta",span:""},{src:Lq.url,caption:"18 · Inicio del izado: el módulo despega del trailer",span:""},{src:ZG.url,caption:"19 · Grúa principal elevando el primer módulo",span:"md:col-span-2 md:row-span-2"},{src:zW.url,caption:"20 · Módulo en suspensión sobre la plataforma",span:""},{src:HW.url,caption:"21 · Módulo elevándose por encima de la cabina",span:""},{src:cH.url,caption:"22 · Módulo aislado en suspensión",span:""},{src:AB.url,caption:"23 · Módulo izado en vuelo libre sobre la obra",span:""},{src:CH.url,caption:"24 · Vista frontal del módulo suspendido",span:""},{src:DH.url,caption:"25 · Módulo girando para orientación final",span:""},{src:KH.url,caption:"26 · Aproximación del módulo a la zona de apoyo",span:""},{src:bG.url,caption:"27 · Módulo sobrevolando el área de cimentación",span:"md:col-span-2"},{src:Zq.url,caption:"28 · Módulo en vuelo sobre el conjunto",span:""},{src:sK.url,caption:"29 · Posicionamiento del módulo sobre los apoyos",span:""}
830,{src:pK.url,caption:"30 · Descenso controlado del módulo",span:"md:col-span-2"},{src:jK.url,caption:"31 · Ajuste fino antes del apoyo",span:""},{src:tZ.url,caption:"32 · Módulo a pocos centímetros de la cimentación",span:""},{src:uZ.url,caption:"33 · Apoyo del módulo sobre pilotes",span:""},{src:PK.url,caption:"34 · Asentamiento del módulo en su posición definitiva",span:""},{src:qK.url,caption:"35 · Verificación de nivelación del primer nivel",span:"md:col-span-2"},{src:YB.url,caption:"36 · Frente del primer módulo asentado sobre pilotes",span:""},{src:XK.url,caption:"37 · Estructura modular de planta baja terminada",span:""},{src:cJ.url,caption:"38 · Izado del segundo módulo para planta superior",span:""},{src:sV.url,caption:"39 · Aproximación del módulo al segundo nivel",span:""},{src:vJ.url,caption:"40 · Encaje del módulo superior sobre la planta baja",span:"md:col-span-2 md:row-span-2"},{src:CJ.url,caption:"41 · Apoyo del módulo en la cubierta del primer nivel",span:""},{src:DJ.url,caption:"42 · Acoplamiento final del módulo en planta alta",span:""},{src:PV.url,caption:"43 · Detalle del conjunto modular ensamblado",span:""},{src:FB.url,caption:"44 · Vista del volumen apilado completo",span:"md:col-span-2"},{src:_Z.url,caption:"45 · Vista lateral del edificio modular terminado",span:""},{src:bq.url,caption:"46 · Frente del módulo acabado en obra",span:""}],UJ=()=>{const[e,t]=g.useState(null),n=g.useCallback(()=>t(null),[]),s=g.useCallback(()=>t(i=>i===null?null:(i-1+Qn.length)%Qn.length),[]),r=g.useCallback(()=>t(i=>i===null?null:(i+1)%Qn.length),[]);return g.useEffect(()=>{if(e===null)return;const i=o=>{o.key==="Escape"&&n(),o.key==="ArrowLeft"&&s(),o.key==="ArrowRight"&&r()};return window.addEventListener("keydown",i),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",i),document.body.style.overflow=""}},[e,n,s,r]),a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Loft Urbano — Vivienda modular urbana | Modulya",description:"Loft urbano modular de Modulya: vivienda contemporánea fabricada en ModussFab con acabados premium y montaje rápido.",path:"/work/loft-urbano"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors mb-10",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]}),a.jsxs("div",{className:"grid md:grid-cols-3 gap-10 items-end",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("p",{className:"text-minimal mb-4 text-primary",children:"MTA · MUELLE TORRE ARENILLAS · GALERÍA"}),a.jsx("h1",{className:"text-5xl md:text-7xl font-light text-architectural leading-[1.05]",children:"Edificio de Vestuarios y Sala de Control"})]}),a.jsxs("div",{className:"space-y-2 md:text-right",children:[a.jsx("p",{className:"text-architectural font-medium",children:"Cliente: Moeve"}),a.jsx("p",{className:"text-muted-foreground",children:"Categoría: Industrial"}),a.jsx("p",{className:"text-muted-foreground",children:"Sistema: Construcción modular"}),a.jsx("p",{className:"text-muted-foreground",children:"Emplazamiento: Muelle Torre Arenillas"})]})]})]})})}),a.jsx("section",{className:"pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"relative overflow-hidden",children:[a.jsx("img",{src:Gp.url,alt:"Edificio de Vestuarios y Sala de Control · MTA",className:"w-full h-[70vh] object-cover"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/45 via-black/10 to-transparent"}),a.jsx("button",{onClick:()=>t(0),className:"absolute bottom-6 left-6 bg-background/90 backdrop-blur-sm px-4 py-2 hover:bg-background transition-colors",children:a.jsx("span",{className:"text-minimal text-foreground",children:"VER GALERÍA COMPLETA"})})]})})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-4xl mx-auto 
830space-y-6 text-muted-foreground leading-relaxed",children:[a.jsx("h2",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Secuencia de izado y colocación"}),a.jsx("p",{children:"Esta galería recoge distintas fases del transporte, elevación y apoyo de módulos industrializados, mostrando la precisión logística del sistema, la coordinación de maquinaria y la rapidez de montaje en obra."}),a.jsx("p",{children:"Las imágenes documentan el recorrido completo: llegada de piezas, maniobras con grúa, posicionamiento sobre cimentación y detalles del ensamblaje final de los volúmenes modulares."})]})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3 text-primary",children:"GALERÍA"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Logística, grúa y montaje"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Recorrido visual del proceso de transporte e instalación de los módulos en obra."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:Qn.map((i,o)=>a.jsxs("button",{onClick:()=>t(o),className:`group relative overflow-hidden bg-muted ${i.span}`,style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:i.caption})})]},o))})]})})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center animate-in fade-in duration-300",children:[a.jsx("button",{onClick:n,className:"absolute top-6 right-6 text-white/80 hover:text-white transition-colors z-10","aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{onClick:s,className:"absolute left-4 md:left-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Anterior",children:a.jsx(zt,{className:"w-10 h-10"})}),a.jsx("button",{onClick:r,className:"absolute right-4 md:right-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Siguiente",children:a.jsx(It,{className:"w-10 h-10"})}),a.jsxs("div",{className:"max-w-7xl w-full h-full flex flex-col items-center justify-center px-4 md:px-20 py-16",children:[a.jsx("img",{src:Qn[e].src,alt:Qn[e].caption,className:"max-h-[80vh] max-w-full object-contain animate-in fade-in zoom-in-95 duration-500"},e),a.jsxs("div",{className:"mt-6 flex items-center justify-between w-full max-w-3xl text-white/80",children:[a.jsx("p",{className:"text-minimal",children:Qn[e].caption}),a.jsxs("p",{className:"text-minimal text-white/50",children:[String(e+1).padStart(2,"0")," / ",String(Qn.length).padStart(2,"0")]})]})]})]}),a.jsx("style",{children:`
831        @keyframes fadeInUp {
832          from { opacity: 0; transform: translateY(24px); }
833          to { opacity: 1; transform: translateY(0); }
834        }
835      `}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},FJ=()=>a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Edificio Industrial Moeve — Construcción modular | Modulya",description:"Edificio industrial modular Moeve: proyecto llave en mano de Modulya con fabricación industrializada y plazos optimizados.",path:"/work/edificio-industrial"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors mb-10",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]}),a.jsxs("div",{className:"grid md:grid-cols-3 gap-10 items-end",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("p",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"INDUSTRIAL · MODUSS"}),a.jsx("h1",{className:"text-5xl md:text-7xl font-light text-architectural leading-[1.05]",children:"Edificio Industrial"})]}),a.jsxs("div",{className:"space-y-2 md:text-right",children:[a.jsx("p",{className:"text-architectural font-medium",children:"Proceso de montaje modular"}),a.jsx("p",{className:"text-muted-foreground",children:"Fabricación en CAMPA"}),a.jsx("p",{className:"text-muted-foreground",children:"Logística y transporte"}),a.jsx("p",{className:"text-muted-foreground",children:"Implantación en obra"})]})]})]})})}),a.jsx("section",{className:"pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsx("div",{className:"relative overflow-hidden bg-black",children:a.jsx("video",{src:Q1.url,poster:Y1,controls:!0,autoPlay:!0,muted:!0,loop:!0,playsInl
835ine:!0,className:"w-full h-auto max-h-[80vh] object-contain"})})})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-4xl mx-auto",children:[a.jsx("h2",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"PROCESO"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural mb-10",children:"Del montaje en CAMPA a la implantación"}),a.jsxs("div",{className:"space-y-6 text-lg text-muted-foreground leading-relaxed",children:[a.jsx("p",{children:"El vídeo recoge el ciclo completo de la construcción industrializada: el ensamblaje de los módulos en CAMPA, donde cada pieza se fabrica y verifica bajo condiciones controladas, garantizando la máxima calidad y precisión."}),a.jsx("p",{children:"Una vez completado el montaje inicial, los módulos se desmontan de forma planificada para su carga en camiones especializados, listos para el transporte hasta el emplazamiento definitivo."}),a.jsx("p",{children:"Finalmente, los módulos llegan al lugar de implantación, donde se vuelven a montar de manera ágil y limpia, reduciendo plazos de obra y minimizando el impacto en el entorno."})]})]})})}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]}),BJ=1,qJ="91b15195-050b-49de-bed7-9e6521d45554",VJ="22885900-7753-4d74-9e2f-5cb1776d4f5d",HJ="/__l5e/assets-v1/91b15195-050b-49de-bed7-9e6521d45554/villa_exterior_2.webp",WJ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/91b15195-050b-49de-bed7-9e6521d45554/villa_exterior_2.webp",ZJ="villa_exterior_2.webp",GJ=468142,KJ="image/webp",JJ="2026-07-07T05:27:26Z",YJ={version:BJ,asset_id:qJ,project_id:VJ,url:HJ,r2_key:WJ,original_filename:ZJ,size:GJ,content_type:KJ,created_at:JJ},QJ=1,XJ="ea533606-91f7-459d-b8e4-6652fa4abe11",eY="22885900-7753-4d74-9e2f-5cb1776d4f5d",tY="/__l5e/assets-v1/ea533606-91f7-459d-b8e4-6652fa4abe11/villa_salon.webp",nY="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/ea533606-91f7-459d-b8e4-6652fa4abe11/villa_salon.webp",sY="villa_salon.webp",aY=380620,rY="image/webp",iY="2026-07-07T05:27:43Z",oY={version:QJ,asset_id:XJ,project_id:eY,url:tY,r2_key:nY,original_filename:sY,size:aY,content_type:rY,created_at:iY},lY=1,cY="6d037999-0c2f-4378-b3de-ec0f692605c6",dY="22885900-7753-4d74-9e2f-5cb1776d4f5d",uY="/__l5e/assets-v1/6d037999-0c2f-4378-b3de-ec0f692605c6/villa_dormitorio.webp",fY="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6d037999-0c2f-4378-b3de-ec0f692605c6/villa_dormitorio.webp",pY="villa_dormitorio.webp",hY=200288,mY="image/webp",gY="2026-07-07T05:28:04Z",bY={version:lY,asset_id:cY,project_id:dY,url:uY,r2_key:fY,original_filename:pY,size:hY,content_type:mY,created_at:gY},xY=1,vY="0d801ee5-646c-4e7e-a87e-4052a2c054bd",yY="22885900-7753-4d74-9e2f-5cb1776d4f5d",_Y="/__l5e/assets-v1/0d801ee5-646c-4e7e-a87e-4052a2c054bd/villa_cocina.webp",wY="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/0d801ee5-646c-4e7e-a87e-4052a2c054bd/villa_cocina.webp",jY="villa_cocina.webp",kY=278692,NY="image/webp",$Y="2026-07-07T05:31:52Z",SY={version:xY,asset_id:vY,project_id:yY,url:_Y,r2_key:wY,original_filename:jY,size:kY,content_type:NY,created_at:$Y},EY=1,CY="ea3fa762-1e97-40f9-920b-3c7b4d778dda",TY="22885900-7753-4d74-9e2f-5cb1776d4f5d",AY="/__l5e/assets-v1/ea3fa762-1e97-40f9-920b-3c7b4d778dda/memoria_calidades_villas_juliana.pdf",RY="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/ea3fa762-1e97-40f9-920b-3c7b4d778dda/memoria_calidades_villas_juliana.pdf",PY="memoria_calidades_villas_juliana.pdf",OY=11700365,zY="application/pdf",IY="2026-06-12T04:23:42Z",LY={version:EY,asset_id:CY,project_id:TY,url:AY,r2_key:RY,original_filename:PY,size:OY,content_type:zY,created_at:IY},MY=1,DY="af5b7a1c-2991-414e-b258-60be71f2bed6",UY="22885900-7753-4d74-9e2f-5cb1776d4f5d",FY="/__l5e/assets-v1/af5b7a1c-2991-414e-b258-60be71f2bed6/villas_juliana.mp4",BY="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/af5b7a1c-2991-414e-b258-60be71f2bed6/villas_juliana.mp4",qY="villas_juliana.mp4",VY=20865088,HY="video/mp4",WY="2026-07-07T05:41:24Z",ZY={version:MY,asset_id:DY,project_id:UY,url:FY,r2_key:BY,original_filename:qY,size:VY,content_type:HY,created_at:WY},F2=X1.url,GY=YJ.url,KY=oY.url,JY=bY.url,YY=SY.url,Xn=[{src:F2,caption:"Vista exterior · Piscina y porche",span:"md:col-span-2 md:row-span-2"},{src:GY,caption:"Vista exterior · Acceso principal",span:"md:col-span-2"},{src:KY,caption:"Salón comedor con vistas al jardín",span:"md:col-span-2"},{src:YY,caption:"Cocina con isla y patio interior",span:"md:col-span-2"},{src:JY,caption:"Dormitorio principal con baño en suite",span:"md:col-span-2"}],QY=()=>{const[e,t]=g.useState(null),n=g.useCallback(()=>t(null),[]),s=g.useCallback(()=>t(i=>i===null?null:(i-1+Xn.length)%Xn.length),[]),r=g.useCallback(()=>t(i=>i===null?null:(i+1)%Xn.length),[]);return g.useEffect(()=>{if(e===null)return;const i=o=>{o.key==="Escape"&&n(),o.key==="ArrowLeft"&&s(),o.key==="ArrowRight"&&r()};return window.addEventListener("keydown",i),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",i),document.body.style.overflow=""}},[e,n,s,r]),a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Villas Juliana — Vivienda modular residencial | Modulya",description:"Villas Juliana: viviendas modulares diseña
835das y construidas por Modulya con acabados de alta calidad, eficiencia energética y plazos reducidos.",path:"/work/villas-juliana"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors mb-10",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]}),a.jsxs("div",{className:"grid md:grid-cols-3 gap-10 items-end",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("p",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"RESIDENCIAL · MODUSS PLUS"}),a.jsx("h1",{className:"text-5xl md:text-7xl font-light text-architectural leading-[1.05]",children:"Villas de la Juliana"})]}),a.jsxs("div",{className:"space-y-2 md:text-right",children:[a.jsx("p",{className:"text-architectural font-medium",children:"La Juliana, Sevilla"}),a.jsx("p",{className:"text-muted-foreground",children:"Tipología: Villas unifamiliares"}),a.jsx("p",{className:"text-muted-foreground",children:"Método constructivo: MODUSS"}),a.jsx("p",{className:"text-muted-foreground",children:"Acabado: PLUS personalizable"})]})]})]})})}),a.jsx("section",{className:"pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"relative w-full overflow-hidden bg-black",children:[a.jsx("video",{src:ZY.url,poster:F2,autoPlay:!0,muted:!0,loop:!0,playsInline:!0,preload:"metadata",className:"w-full h-[70vh] object-cover"}),a.jsx("div",{className:"absolute bottom-6 left-6 bg-background/90 backdrop-blur-sm px-4 py-2",children:a.jsx("span",{className:"text-minimal text-foreground",children:"VILLAS DE LA JULIANA · VÍDEO"})})]})})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"GALERÍA"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Arquitectura modular para vivir"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Exteriores contemporáneos e interiores acabados con materiales de primeras marcas, totalmente personalizables."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:Xn.map((i,o)=>a.jsxs("button",{onClick:()=>t(o),className:`group relative overflow-hidden bg-muted ${i.span}`,style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:i.caption})})]},o))})]})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"bg-muted p-10 md:p-16 grid md:grid-cols-3 gap-10 items-center",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"DOCUMENTACIÓN"}),a.jsx("h3",{className:"text-3xl md:text-4xl font-light text-architectural mb-4",children:"Memoria de calidades PLUS"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed max-w-2xl",children:"Cimentación y estructura, cerramientos, acabados exteriores DEKTON, carpinterías con rotura de puente térmico, revestimientos PORCELANOSA, cocinas KUOBI, climatización y paquetes opcionales (domótica, suelo radiante, piscina, paisajismo y más). Descarga el documento completo."})]}),a.jsx("div",{className:"md:text-right",children:a.jsxs("a",{href:LY.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-6 py-4 bg-foreground text-background hover:opacity-80 transition-opacity",children:[a.jsx(Lt,{className:"w-5 h-5"}),a.jsx("span",{className:"text-minimal",children:"DESCARGAR PDF"})]})})]})})})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center animate-in fade-in duration-300",children:[a.jsx("button",{onClick:n,className:"absolute top-6 right-6 text-white/80 hover:text-white transition-colors z-10","aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{onClick:s,className:"absolute left-4 md:left-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Anterior",children:a.jsx(zt,{className:"w-10 h-10"})}),a.jsx("button",{onClick:r,className:"absolute right-4 md:right-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Siguiente",children:a.jsx(It,{className:"w-10 h-10"})}),a.jsxs("div",{className:"max-w-7xl w-full h-full flex flex-col items-center justify-center px-4 md:px-20 py-16",children:[a.jsx("img",{src:Xn[e].src,alt:Xn[e].caption,className:"max-h-[80vh] max-w-full object-contain animate-in fade-in zoom-in-95 duration-500"},e),a.jsxs("div",{className:"mt-6 flex items-center justify-between w-full max-w-3xl text-white/80",children:[a.jsx("p",{className:"text-minimal",children:Xn[e].caption}),a.jsxs("p",{className:"text-minimal text-white/50",children:[String(e+1).padStart(2,"0")," / ",String(Xn.length).padStart(2,"0")]})]})]})]}),a.jsx("style",{children:`
836        @keyframes fadeInUp {
837          from { opacity: 0; transform: translateY(24px); }
838          to { opacity: 1; transform: translateY(0); }
839        }
840      `}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},XY=1,eQ="06f07442-39ea-49b7-9651-e94f0356f241",tQ="22885900-7753-4d74-9e2f-5cb1776d4f5d",nQ="/__l5e/assets-v1/06f07442-39ea-49b7-9651-e94f0356f241/bormujos_escena_3.webp",sQ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/06f07442-39ea-49b7-9651-e94f0356f241/bormujos_escena_3.webp",aQ="bormujos_escena_3.webp",rQ=82020,iQ="image/webp",oQ="2026-06-12T04:40:21Z",lQ={version:XY,asset_id:eQ,project_id:tQ,url:nQ,r2_key:sQ,original_filename:aQ,size:rQ,content_type:iQ,created_at:oQ},cQ=1,dQ="e6a78db0-ff57-4ffc-bed6-a7dfce4824ef",uQ="22885900-7753-4d74-9e2f-5cb1776d4f5d",fQ="/__l5e/assets-v1/e6a78db0-ff57-4ffc-bed6-a7dfce4824ef/bormujos_escena_4.webp",pQ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e6a78db0-ff57-4ffc-bed6-a7dfce4824ef/bormujos_escena_4.webp",hQ="bormujos_escena_4.webp",mQ=113022,gQ="image/webp",bQ="2026-06-12T04:40:23Z",xQ={version:cQ,asset_id:dQ,project_id:uQ,url:fQ,r2_key:pQ,original_filename:hQ,size:mQ,content_type:gQ,created_at:bQ},vQ=1,yQ="28be5895-afcb-40f1-9e68-dcf492432a07",_Q="22885900-7753-4d74-9e2f-5cb1776d4f5d",wQ="/__l5e/assets-v1/28be5895-afcb-40f1-9e68-dcf492432a07/bormujos_escena_5_sin_valla.webp",jQ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/28be5895-afcb-40f1-9e68-dcf492432a07/bormujos_escena_5_sin_valla.webp",kQ="bormujos_escena_5_sin_valla.webp",NQ=104736,$Q="image/webp",SQ="2026-06-12T04:40:25Z",EQ={version:vQ,asset_id:yQ,project_id:_Q,url:wQ,r2_key:jQ,original_filename:kQ,size:NQ,content_type:$Q,created_at:SQ},CQ=1,TQ="4d2eee3e-3aa1-4b8e-b6bf-284fd0e5f29b",AQ="22885900-7753-4d74-9e2f-5cb1776d4f5d",RQ="/__l5e/assets-v1/4d2eee3e-3aa1-4b8e-b6bf-284fd0e5f29b/bormujos_escena_5.webp",PQ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/4d2eee3e-3aa1-4b8e-b6bf-284fd0e5f29b/bormujos_escena_5.webp",OQ="bormujos_escena_5.webp",zQ=104830,IQ="image/webp",LQ="2026-06-12T04:40:27Z",MQ={version:CQ,asset_id:TQ,project_id:AQ,url:RQ,r2_key:PQ,original_filename:OQ,size:zQ,content_type:IQ,created_at:LQ},DQ=1,UQ="554924b7-290c-4cad-90eb-c7709eab7e80",FQ="22885900-7753-4d74-9e2f-5cb1776d4f5d",BQ="/__l5e/assets-v1/554924b7-290c-4cad-90eb-c7709eab7e80
840/bormujos_escena_6_1.webp",qQ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/554924b7-290c-4cad-90eb-c7709eab7e80/bormujos_escena_6_1.webp",VQ="bormujos_escena_6_1.webp",HQ=66240,WQ="image/webp",ZQ="2026-06-12T04:40:29Z",GQ={version:DQ,asset_id:UQ,project_id:FQ,url:BQ,r2_key:qQ,original_filename:VQ,size:HQ,content_type:WQ,created_at:ZQ},KQ=1,JQ="c54c18c9-779b-42a7-93b0-0e5aeca65317",YQ="22885900-7753-4d74-9e2f-5cb1776d4f5d",QQ="/__l5e/assets-v1/c54c18c9-779b-42a7-93b0-0e5aeca65317/bormujos_escena_7_3.webp",XQ="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/c54c18c9-779b-42a7-93b0-0e5aeca65317/bormujos_escena_7_3.webp",eX="bormujos_escena_7_3.webp",tX=85826,nX="image/webp",sX="2026-06-12T04:40:31Z",aX={version:KQ,asset_id:JQ,project_id:YQ,url:QQ,r2_key:XQ,original_filename:eX,size:tX,content_type:nX,created_at:sX},rX=1,iX="2c2f3584-6ec6-43f5-b89e-9f689016d5cd",oX="22885900-7753-4d74-9e2f-5cb1776d4f5d",lX="/__l5e/assets-v1/2c2f3584-6ec6-43f5-b89e-9f689016d5cd/bormujos_escena_8_1.webp",cX="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/2c2f3584-6ec6-43f5-b89e-9f689016d5cd/bormujos_escena_8_1.webp",dX="bormujos_escena_8_1.webp",uX=64330,fX="image/webp",pX="2026-06-12T04:40:33Z",hX={version:rX,asset_id:iX,project_id:oX,url:lX,r2_key:cX,original_filename:dX,size:uX,content_type:fX,created_at:pX},mX=1,gX="9a8c56c3-669c-441d-9ea6-b3eb03e29012",bX="22885900-7753-4d74-9e2f-5cb1776d4f5d",xX="/__l5e/assets-v1/9a8c56c3-669c-441d-9ea6-b3eb03e29012/bormujos_escena_11.webp",vX="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/9a8c56c3-669c-441d-9ea6-b3eb03e29012/bormujos_escena_11.webp",yX="bormujos_escena_11.webp",_X=77930,wX="image/webp",jX="2026-06-12T04:40:35Z",kX={version:mX,asset_id:gX,project_id:bX,url:xX,r2_key:vX,original_filename:yX,size:_X,content_type:wX,created_at:jX},NX=1,$X="c184fd54-6092-49d6-bb43-893d21efd4f0",SX="22885900-7753-4d74-9e2f-5cb1776d4f5d",EX="/__l5e/assets-v1/c184fd54-6092-49d6-bb43-893d21efd4f0/bormujos_village_planos.pdf",CX="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/c184fd54-6092-49d6-bb43-893d21efd4f0/bormujos_village_planos.pdf",TX="bormujos_village_planos.pdf",AX=7351003,RX="application/pdf",PX="2026-06-12T04:40:39Z",OX={version:NX,asset_id:$X,project_id:SX,url:EX,r2_key:CX,original_filename:TX,size:AX,content_type:RX,created_at:PX},es=[{src:Kp.url,caption:"Vista exterior · Piscina comunitaria",span:"md:col-span-2 md:row-span-2"},{src:kX.url,caption:"Vista general del conjunto residencial",span:"md:col-span-2"},{src:lQ.url,caption:"Terrazas superiores y circulación exterior",span:"md:col-span-2"},{src:xQ.url,caption:"Fachada a calle y acceso a viviendas",span:"md:col-span-2"},{src:EQ.url,caption:"Zonas comunes ajardinadas sin cerramiento",span:"md:col-span-2"},{src:MQ.url,caption:"Zonas comunes con cerramiento perimetral",span:"md:col-span-2"},{src:GQ.url,caption:"Fachada interior al atardecer",span:"md:col-span-2"},{src:aX.url,caption:"Imagen crepuscular del conjunto",span:"md:col-span-2"},{src:hX.url,caption:"Fachada nocturna con iluminación integrada",span:"md:col-span-2 md:row-span-2"}],zX=()=>{const[e,t]=g.useState(null),n=g.useCallback(()=>t(null),[]),s=g.useCallback(()=>t(i=>i===null?null:(i-1+es.length)%es.length),[]),r=g.useCallback(()=>t(i=>i===null?null:(i+1)%es.length),[]);return g.useEffect(()=>{if(e===null)return;const i=o=>{o.key==="Escape"&&n(),o.key==="ArrowLeft"&&s(),o.key==="ArrowRight"&&r()};return window.addEventListener("keydown",i),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",i),document.body.style.overflow=""}},[e,n,s,r]),a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Bormujos Village — Residencial modular | Modulya",description:"Bormujos Village: conjunto residencial modular de Modulya con zonas comunes ajardinadas y viviendas industrializadas de alta eficiencia.",path:"/work/bormujos-village"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors mb-10",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]}),a.jsxs("div",{className:"grid md:grid-cols-3 gap-10 items-end",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("p",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"RESIDENCIAL · MODUSS"}),a.jsx("h1",{className:"text-5xl md:text-7xl font-light text-architectural leading-[1.05]",children:"Bormujos Village"})]}),a.jsxs("div",{className:"space-y-2 md:text-right",children:[a.jsx("p",{className:"text-architectural font-medium",children:"Bormujos, Sevilla"}),a.jsx("p",{className:"text-muted-foreground",children:"Tipología: 24 viviendas modulares"}),a.jsx("p",{className:"text-muted-foreground",children:"Superficie construida: 1.881,36 m²"}),a.jsx("p",{className:"text-muted-foreground",children:"Configuración: planta baja y planta primera"})]})]})]})})}),a.jsx("section",{className:"pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("button",{onClick:()=>t(0),className:"group block w-full overflow-hidden relative",children:[a.jsx("img",{src:Kp.url,alt:"Bormujos Village con piscina y zonas comunes",className:"w-full h-[70vh] object-cover transition-transform duration-700 group-hover:scale-[1.03]"}),a.jsx("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-500"}),a.jsx("div",{className:"absolute bottom-6 left-6 bg-background/90 backdrop-blur-sm px-4 py-2",children:a.jsx("span",{className:"text-minimal text-foreground",children:"VER GALERÍA COMPLETA"})})]})})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"GALERÍA"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Vivienda colectiva modular con espacios comunes"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Un conjunto residencial concebido para combinar privacidad, vida exterior y recorridos abiertos alrededor de la piscina y las zonas ajardinadas."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:es.map((i,o)=>a.jsxs("button",{onClick:()=>t(o),className:`group relative overflow-hidden bg-muted ${i.span}`,style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:i.caption})})]},o))})]})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"bg-muted p-10 md:p-16 grid md:grid-cols-3 gap-10 items-center",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"DOCUMENTACIÓN"}),a.jsx("h3",{className:"text-3xl md:text-4xl font-light text-architectural mb-4",children:"Planos y presentación del conjunto"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed max-w-2xl",children:"Documento con presentación general, plantas tipo, alzados y perspectiva axonométrica. Incluye 24 viviendas, dos tipologías residenciales y una superficie construida total de 1.881,36 m²."})]}),a.jsx("div",{className:"md:text-right",children:a.jsxs("a",{href:OX.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-6 py-4 bg-foreground text-background hover:opacity-80 transition-opacity",children:[a.jsx(Lt,{className:"w-5 h-5"}),a.jsx("span",{className:"text-minimal",children:"DESCARGAR PDF"})]})})]})})})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center animate-in fade-in duration-300",children:[a.jsx("button",{onClick:n,className:"absolute top-6 right-6 text-white/80 hover:text-white transition-colors z-10","aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{onClick:s,className:"absolute left-4 md:left-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Anterior",children:a.jsx(zt,{className:"w-10 h-10"})}),a.jsx("button",{onClick:r,className:"absolute right-4 md:right-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Siguiente",children:a.jsx(It,{className:"w-10 h-10"})}),a.jsxs("div",{className:"max-w-7xl w-full h-full flex flex-col items-center justify-center px-4 md:px-20 py-16",children:[a.jsx("img",{src:es[e].src,alt:es[e].caption,className:"max-h-[80vh] max-w-full object-contain animate-in fade-in zoom-in-95 duration-500"},e),a.jsxs("div",{className:"mt-6 flex items-center justify-between w-full max-w-3xl text-white/80",children:[a.jsx("p",{className:"text-minimal",children:es[e].caption}),a.jsxs("p",{className:"text-minimal text-white/50",children:[String(e+1).padStart(2,"0")," / ",String(es.length).padStart(2,"0")]})]})]})]}),a.jsx("style",{children:`
841        @keyframes fadeInUp {
842          from { opacity: 0; transform: translateY(24px); }
843          to { opacity: 1; transform: translateY(0); }
844        }
845      `}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},IX=1,LX="4d177c4f-b45d-4987-925b-be8889e458c5",MX="22885900-7753-4d74-9e2f-5cb1776d4f5d",DX="/__l5e/assets-v1/4d177c4f-b45d-4987-925b-be8889e458c5/villarrasa_2.webp",UX="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/4d177c4f-b45d-4987-925b-be8889e458c5/villarrasa_2.webp",FX="villarrasa_2.webp",BX=123732,qX="image/webp",VX="2026-07-01T11:09:12Z",HX={version:IX,asset_id:LX,project_id:MX,url:DX,r2_key:UX,original_filename:FX,size:BX,content_type:qX,created_at:VX},WX=1,ZX="817e75d2-2a5a-45a4-a873-12a5626f3556",GX="22885900-7753-4d74-9e2f-5cb1776d4f5d",KX="/__l5e/assets-v1/817e75d2-2a5a-45a4-a873-12a5626f3556/villarrasa_3.webp",JX="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/817e75d2-2a5a-45a4-a873-12a5626f3556/villarrasa_3.webp",YX="villarrasa_3.webp",QX=90516,XX="image/webp",eee="2026-07-01T11:09:14Z",tee={version:WX,asset_id:ZX,project_id:GX,url:KX,r2_key:JX,original_filename:YX,size:QX,content_type:XX,created_at:eee},nee=1,see="c10eceba-b454-44f3-b0d1-32d83c4a8073",aee="22885900-7753-4d74-9e2f-5cb1776d4f5d",ree="/__l5e/assets-v1/c10eceba-b454-44f3-b0d1-32d83c4a8073/villarrasa_4.webp",iee="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/c10eceba-b454-44f3-b0d1-32d83c4a8073/villarrasa_4.webp",oee="villarrasa_4.webp",lee=78532,cee="image/webp",dee="2026-07-01T11:09:17Z",uee={ver
845sion:nee,asset_id:see,project_id:aee,url:ree,r2_key:iee,original_filename:oee,size:lee,content_type:cee,created_at:dee},fee=1,pee="0dc0cb8a-6df4-42be-9b22-ea7f10c4c31c",hee="22885900-7753-4d74-9e2f-5cb1776d4f5d",mee="/__l5e/assets-v1/0dc0cb8a-6df4-42be-9b22-ea7f10c4c31c/villarrasa_5.webp",gee="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/0dc0cb8a-6df4-42be-9b22-ea7f10c4c31c/villarrasa_5.webp",bee="villarrasa_5.webp",xee=101480,vee="image/webp",yee="2026-07-01T11:09:19Z",_ee={version:fee,asset_id:pee,project_id:hee,url:mee,r2_key:gee,original_filename:bee,size:xee,content_type:vee,created_at:yee},wee=1,jee="5577d6e5-a773-4d51-866c-8e12b757def5",kee="22885900-7753-4d74-9e2f-5cb1776d4f5d",Nee="/__l5e/assets-v1/5577d6e5-a773-4d51-866c-8e12b757def5/villarrasa_6.webp",$ee="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/5577d6e5-a773-4d51-866c-8e12b757def5/villarrasa_6.webp",See="villarrasa_6.webp",Eee=83470,Cee="image/webp",Tee="2026-07-01T11:09:22Z",Aee={version:wee,asset_id:jee,project_id:kee,url:Nee,r2_key:$ee,original_filename:See,size:Eee,content_type:Cee,created_at:Tee},Ree=1,Pee="e4a92098-980a-4e2f-9684-e860b13a3dc4",Oee="22885900-7753-4d74-9e2f-5cb1776d4f5d",zee="/__l5e/assets-v1/e4a92098-980a-4e2f-9684-e860b13a3dc4/villarrasa_7.webp",Iee="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e4a92098-980a-4e2f-9684-e860b13a3dc4/villarrasa_7.webp",Lee="villarrasa_7.webp",Mee=105860,Dee="image/webp",Uee="2026-07-01T11:09:24Z",Fee={version:Ree,asset_id:Pee,project_id:Oee,url:zee,r2_key:Iee,original_filename:Lee,size:Mee,content_type:Dee,created_at:Uee},Bee=1,qee="d3b7902f-f01d-46c9-85f4-28beb96fad73",Vee="22885900-7753-4d74-9e2f-5cb1776d4f5d",Hee="/__l5e/assets-v1/d3b7902f-f01d-46c9-85f4-28beb96fad73/villarrasa_8.webp",Wee="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/d3b7902f-f01d-46c9-85f4-28beb96fad73/villarrasa_8.webp",Zee="villarrasa_8.webp",Gee=100414,Kee="image/webp",Jee="2026-07-01T11:09:27Z",Yee={version:Bee,asset_id:qee,project_id:Vee,url:Hee,r2_key:Wee,original_filename:Zee,size:Gee,content_type:Kee,created_at:Jee},Qee=1,Xee="70626bf1-00b4-4f94-8160-f126843cd86d",ete="22885900-7753-4d74-9e2f-5cb1776d4f5d",tte="/__l5e/assets-v1/70626bf1-00b4-4f94-8160-f126843cd86d/villarrasa_9.webp",nte="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/70626bf1-00b4-4f94-8160-f126843cd86d/villarrasa_9.webp",ste="villarrasa_9.webp",ate=97588,rte="image/webp",ite="2026-07-01T11:09:29Z",ote={version:Qee,asset_id:Xee,project_id:ete,url:tte,r2_key:nte,original_filename:ste,size:ate,content_type:rte,created_at:ite},lte=1,cte="746fd7ac-07ea-4709-b41e-51d9cd288d95",dte="22885900-7753-4d74-9e2f-5cb1776d4f5d",ute="/__l5e/assets-v1/746fd7ac-07ea-4709-b41e-51d9cd288d95/villarrasa_10.webp",fte="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/746fd7ac-07ea-4709-b41e-51d9cd288d95/villarrasa_10.webp",pte="villarrasa_10.webp",hte=108852,mte="image/webp",gte="2026-07-01T11:09:31Z",bte={version:lte,asset_id:cte,project_id:dte,url:ute,r2_key:fte,original_filename:pte,size:hte,content_type:mte,created_at:gte},xte=1,vte="2a1b4e5e-597b-4b61-9ed9-57ba7f60c66c",yte="22885900-7753-4d74-9e2f-5cb1776d4f5d",_te="/__l5e/assets-v1/2a1b4e5e-597b-4b61-9ed9-57ba7f60c66c/villarrasa_11.webp",wte="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/2a1b4e5e-597b-4b61-9ed9-57ba7f60c66c/villarrasa_11.webp",jte="villarrasa_11.webp",kte=136508,Nte="image/webp",$te="2026-07-01T11:09:34Z",Ste={version:xte,asset_id:vte,project_id:yte,url:_te,r2_key:wte,original_filename:jte,size:kte,content_type:Nte,created_at:$te},Ete=1,Cte="0eaac387-d641-4ce3-b72f-436249a6117b",Tte="22885900-7753-4d74-9e2f-5cb1776d4f5d",Ate="/__l5e/assets-v1/0eaac387-d641-4ce3-b72f-436249a6117b/villarrasa_12.webp",Rte="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/0eaac387-d641-4ce3-b72f-436249a6117b/villarrasa_12.webp",Pte="villarrasa_12.webp",Ote=92936,zte="image/webp",Ite="2026-07-01T11:09:36Z",Lte={version:Ete,asset_id:Cte,project_id:Tte,url:Ate,r2_key:Rte,original_filename:Pte,size:Ote,content_type:zte,created_at:Ite},Mte=1,Dte="684f9080-65cc-4e8b-9b88-9efd3f35d22f",Ute="22885900-7753-4d74-9e2f-5cb1776d4f5d",Fte="/__l5e/assets-v1/684f9080-65cc-4e8b-9b88-9efd3f35d22f/situacion.webp",Bte="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/684f9080-65cc-4e8b-9b88-9efd3f35d22f/situacion.webp",qte="situacion.webp",Vte=898594,Hte="image/webp",Wte="2026-07-01T11:09:54Z",Zte={ver
845sion:Mte,asset_id:Dte,project_id:Ute,url:Fte,r2_key:Bte,original_filename:qte,size:Vte,content_type:Hte,created_at:Wte},Gte=1,Kte="99245196-9bb9-4a5a-9a73-3af662147ced",Jte="22885900-7753-4d74-9e2f-5cb1776d4f5d",Yte="/__l5e/assets-v1/99245196-9bb9-4a5a-9a73-3af662147ced/emplazamiento.webp",Qte="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/99245196-9bb9-4a5a-9a73-3af662147ced/emplazamiento.webp",Xte="emplazamiento.webp",ene=259234,tne="image/webp",nne="2026-07-01T11:09:43Z",sne={version:Gte,asset_id:Kte,project_id:Jte,url:Yte,r2_key:Qte,original_filename:Xte,size:ene,content_type:tne,created_at:nne},ane=1,rne="0c13be89-f3b9-4814-96a1-9ba9874dd8f9",ine="22885900-7753-4d74-9e2f-5cb1776d4f5d",one="/__l5e/assets-v1/0c13be89-f3b9-4814-96a1-9ba9874dd8f9/urbanizacion.webp",lne="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/0c13be89-f3b9-4814-96a1-9ba9874dd8f9/urbanizacion.webp",cne="urbanizacion.webp",dne=441646,une="image/webp",fne="2026-07-01T11:09:56Z",pne={version:ane,asset_id:rne,project_id:ine,url:one,r2_key:lne,original_filename:cne,size:dne,content_type:une,created_at:fne},hne=1,mne="aafa7403-5fb5-412d-a940-cc609bfae037",gne="22885900-7753-4d74-9e2f-5cb1776d4f5d",bne="/__l5e/assets-v1/aafa7403-5fb5-412d-a940-cc609bfae037/planta-baja.webp",xne="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/aafa7403-5fb5-412d-a940-cc609bfae037/planta-baja.webp",vne="planta-baja.webp",yne=370790,_ne="image/webp",wne="2026-07-01T11:09:46Z",jne={version:hne,asset_id:mne,project_id:gne,url:bne,r2_key:xne,original_filename:vne,size:yne,content_type:_ne,created_at:wne},kne=1,Nne="5fcf3d28-535a-4309-83a0-c5ab3d4e2943",$ne="22885900-7753-4d74-9e2f-5cb1776d4f5d",Sne="/__l5e/assets-v1/5fcf3d28-535a-4309-83a0-c5ab3d4e2943/planta-primera.webp",Ene="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/5fcf3d28-535a-4309-83a0-c5ab3d4e2943/planta-primera.webp",Cne="planta-primera.webp",Tne=391560,Ane="image/webp",Rne="2026-07-01T11:09:51Z",Pne={version:kne,asset_id:Nne,project_id:$ne,url:Sne,r2_key:Ene,original_filename:Cne,size:Tne,content_type:Ane,created_at:Rne},One=1,zne="fc227b79-fd4f-4f59-944a-450467a469ee",Ine="22885900-7753-4d74-9e2f-5cb1776d4f5d",Lne="/__l5e/assets-v1/fc227b79-fd4f-4f59-944a-450467a469ee/planta-cubierta.webp",Mne="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/fc227b79-fd4f-4f59-944a-450467a469ee/planta-cubierta.webp",Dne="planta-cubierta.webp",Une=532772,Fne="image/webp",Bne="2026-07-01T11:09:49Z",qne={version:One,asset_id:zne,project_id:Ine,url:Lne,r2_key:Mne,original_filename:Dne,size:Une,content_type:Fne,created_at:Bne},Vne=1,Hne="621f0eed-3bb7-423e-947c-284b574e7e6f",Wne="22885900-7753-4d74-9e2f-5cb1776d4f5d",Zne="/__l5e/assets-v1/621f0eed-3bb7-423e-947c-284b574e7e6f/alzados-secciones.webp",Gne="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/621f0eed-3bb7-423e-947c-284b574e7e6f/alzados-secciones.webp",Kne="alzados-secciones.webp",Jne=301972,Yne="image/webp",Qne="2026-07-01T11:09:39Z",Xne={version:Vne,asset_id:Hne,project_id:Wne,url:Zne,r2_key:Gne,original_filename:Kne,size:Jne,content_type:Yne,created_at:Qne},ese=1,tse="58a00e46-9ce8-4470-a6ee-80142a236171",nse="22885900-7753-4d74-9e2f-5cb1776d4f5d",sse="/__l5e/assets-v1/58a00e46-9ce8-4470-a6ee-80142a236171/conjunto-vpp.webp",ase="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/58a00e46-9ce8-4470-a6ee-80142a236171/conjunto-vpp.webp",rse="conjunto-vpp.webp",ise=898594,ose="image/webp",lse="2026-07-01T11:09:41Z",cse={version:ese,asset_id:tse,project_id:nse,url:sse,r2_key:ase,original_filename:rse,size:ise,content_type:ose,created_at:lse},dse=1,use="c3644e28-1407-4b2d-a09f-525f40d0bc34",fse="22885900-7753-4d74-9e2f-5cb1776d4f5d",pse="/__l5e/assets-v1/c3644e28-1407-4b2d-a09f-525f40d0bc34/situacion.pdf",hse="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/c3644e28-1407-4b2d-a09f-525f40d0bc34/situacion.pdf",mse="situacion.pdf",gse=12292026,bse="application/pdf",xse="2026-07-01T11:06:23Z",vse={version:dse,asset_id:use,project_id:fse,url:pse,r2_key:hse,original_filename:mse,size:gse,content_type:bse,created_at:xse},yse=1,_se="7680ce61-758f-40da-9669-9891100f498d",wse="22885900-7753-4d74-9e2f-5cb1776d4f5d",jse="/__l5e/assets-v1/7680ce61-758f-40da-9669-9891100f498d/emplazamiento.pdf",kse="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/7680ce61-758f-40da-9669-9891100f498d/emplazamiento.pdf",Nse="emplazamiento.pdf",$se=1930234,Sse="application/pdf",Ese="2026-07-01T11:06:08Z",Cse={version:yse,asset_id:_se,project_id:wse,url:jse,r2_key:kse,original_filename:Nse,size:$se,content_type:Sse,created_at:Ese},Tse=1,Ase="e3842a57-1310-4675-9bb9-b40839c03eba",Rse="22885900-7753-4d74-9e2f-5cb1776d4f5d",Pse="/__l5e/assets-v1/e3842a57-1310-4675-9bb9-b40839c03eba/urbanizacion.pdf",Ose="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e3842a57-1310-4675-9bb9-b40839c03eba/urbanizacion.pdf",zse="urbanizacion.pdf",Ise=1919880,Lse="application/pdf",Mse="2026-07-01T11:06:27Z",Dse={version:Tse,asset_id:Ase,project_id:Rse,url:Pse,r2_key:Ose,original_filename:zse,size:Ise,content_type:Lse,created_at:Mse},Use=1,Fse="b4a64ea4-2197-4253-b991-c09a722a783d",Bse="22885900-7753-4d74-9e2f-5cb1776d4f5d",qse="/__l5e/assets-v1/b4a64ea4-2197-4253-b991-c09a722a783d/planta-baja.pdf",Vse="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/b4a64ea4-2197-4253-b991-c09a722a783d/planta-baja.pdf",Hse="planta-baja.pdf",Wse=1925720,Zse="application/pdf",G
845se="2026-07-01T11:06:11Z",Kse={version:Use,asset_id:Fse,project_id:Bse,url:qse,r2_key:Vse,original_filename:Hse,size:Wse,content_type:Zse,created_at:Gse},Jse=1,Yse="d3e3d34b-c552-478b-a2ac-2abfa4ae927c",Qse="22885900-7753-4d74-9e2f-5cb1776d4f5d",Xse="/__l5e/assets-v1/d3e3d34b-c552-478b-a2ac-2abfa4ae927c/planta-primera.pdf",eae="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/d3e3d34b-c552-478b-a2ac-2abfa4ae927c/planta-primera.pdf",tae="planta-primera.pdf",nae=2271136,sae="application/pdf",aae="2026-07-01T11:06:17Z",rae={version:Jse,asset_id:Yse,project_id:Qse,url:Xse,r2_key:eae,original_filename:tae,size:nae,content_type:sae,created_at:aae},iae=1,oae="c8ebf25d-9a13-4110-806e-10f86cea80c3",lae="22885900-7753-4d74-9e2f-5cb1776d4f5d",cae="/__l5e/assets-v1/c8ebf25d-9a13-4110-806e-10f86cea80c3/planta-cubierta.pdf",dae="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/c8ebf25d-9a13-4110-806e-10f86cea80c3/planta-cubierta.pdf",uae="planta-cubierta.pdf",fae=17815859,pae="application/pdf",hae="2026-07-01T11:06:14Z",mae={version:iae,asset_id:oae,project_id:lae,url:cae,r2_key:dae,original_filename:uae,size:fae,content_type:pae,created_at:hae},gae=1,bae="21a5eec0-0d5c-42bd-963b-15465037a9ca",xae="22885900-7753-4d74-9e2f-5cb1776d4f5d",vae="/__l5e/assets-v1/21a5eec0-0d5c-42bd-963b-15465037a9ca/alzados-secciones.pdf",yae="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/21a5eec0-0d5c-42bd-963b-15465037a9ca/alzados-secciones.pdf",_ae="alzados-secciones.pdf",wae=1813139,jae="application/pdf",kae="2026-07-01T11:06:02Z",Nae={version:gae,asset_id:bae,project_id:xae,url:vae,r2_key:yae,original_filename:_ae,size:wae,content_type:jae,created_at:kae},$ae=1,Sae="0ef3d1e6-0546-41ce-95b4-d391e2ff0c5f",Eae="22885900-7753-4d74-9e2f-5cb1776d4f5d",Cae="/__l5e/assets-v1/0ef3d1e6-0546-41ce-95b4-d391e2ff0c5f/conjunto-vpp.pdf",Tae="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/0ef3d1e6-0546-41ce-95b4-d391e2ff0c5f/conjunto-vpp.pdf",Aae="conjunto-vpp.pdf",Rae=38823034,Pae="application/pdf",Oae="2026-07-01T11:06:05Z",zae={version:$ae,asset_id:Sae,project_id:Eae,url:Cae,r2_key:Tae,original_filename:Aae,size:Rae,content_type:Pae,created_at:Oae},ts=[{src:Jp.url,caption:"Vista general del conjunto · Fachada principal",span:"md:col-span-2 md:row-span-2"},{src:_ee.url,caption:"Alineación de volúmenes en hilera",span:"md:col-span-2"},{src:Fee.url,caption:"Ritmo de balcones y vegetación",span:"md:col-span-2"},{src:bte.url,caption:"Fachada frontal · Encuadre de balcones y celosías",span:"md:col-span-2"},{src:Ste.url,caption:"Calle interior · Vida entre viviendas",span:"md:col-span-2"},{src:Lte.url,caption:"Perspectiva del conjunto hacia el paisaje",span:"md:col-span-2"},{src:HX.url,caption:"Detalle de vivienda tipo · Balcón volado",span:"md:col-span-2"},{src:tee.url,caption:"Fachada lateral · Composición de volúmenes",span:"md:col-span-2"},{src:Yee.url,caption:"Perspectiva desde acceso rodado",span:"md:col-span-2"},{src:ote.url,caption:"Vida en la calle · Escala doméstica",span:"md:col-span-2"},{src:uee.url,caption:"Atardecer sobre el conjunto residencial",span:"md:col-span-2"},{src:Aee.url,caption:"Iluminación nocturna y presencia urbana",span:"md:col-span-2 md:row-span-2"}],Fa=[{code:"01",title:"Situación",subtitle:"Emplazamiento urbano en Villarrasa",img:Zte.url,pdf:vse.url},{code:"02",title:"Emplazamiento",subtitle:"Parcela e integración con el entorno",img:sne.url,pdf:Cse.url},{code:"03",title:"Urbanización",subtitle:"Viario, aceras y zonas comunes",img:pne.url,pdf:Dse.url},{code:"04",title:"Planta baja",subtitle:"Distribución en planta baja de ordenación",img:jne.url,pdf:Kse.url},{code:"05",title:"Planta primera",subtitle:"Distribución en planta primera de ordenación",img:Pne.url,pdf:rae.url},{code:"06",title:"Planta cubierta",subtitle:"Cubiertas planas y volúmenes técnicos",img:qne.url,pdf:mae.url},{code:"07",title:"Alzados y secciones",subtitle:"Fachadas, secciones y alturas",img:Xne.url,pdf:Nae.url},{code:"08",title:"Conjunto VPP",subtitle:"Vivienda protegida · Ordenación general",img:cse.url,pdf:zae.url}],Iae=()=>{const[e,t]=g.useState(null),[n,s]=g.useState(3),[r,i]=g.useState(!1),o=g.useCallback(()=>t(null),[]),l=g.useCallback(()=>t(u=>u===null?null:(u-1+ts.length)%ts.length),[]),c=g.useCallback(()=>t(u=>u===null?null:(u+1)%ts.length),[]);g.useEffect(()=>{if(e===null)return;const u=f=>{f.key==="Escape"&&o(),f.key==="ArrowLeft"&&l(),f.key==="ArrowRight"&&c()};return window.addEventListener("keydown",u),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",u),document.body.style.overflow=""}},[e,o,l,c]),g.useEffect(()=>{if(!r)return;const u=f=>{f.key==="Escape"&&i(!1)};return window.addEventListener("keydown",u),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",u),document.body.style.overflow=""}},[r]);const d=Fa[n];return a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Viviendas Villarrasa — Modulya",description:"Conjunto residencial modular Viviendas Villarrasa: viviendas en hilera con arquitectura contemporánea, luz y espacios exteriores propios.",path:"/work/viviendas-villarrasa"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors mb-10",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]}),a.jsxs("div",{className:"grid md:grid-cols-3 gap-10 items-end",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("p",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"RESIDENCIAL · MODUSS"}),a.jsx("h1",{className:"text-5xl md:text-7xl font-light text-architectural leading-[1.05]",children:"Viviendas Villarrasa"})]}),a.jsxs("div",{className:"space-y-2 md:text-right",children:[a.jsx("p",{className:"text-architectural font-medium",children:"Villarrasa, Huelva"}),a.jsx("p",{className:"text-muted-foreground",children:"Tipología: Viviendas unifamiliares en hilera"}),a.jsx("p",{className:"text-muted-foreground",children:"Método Constructivo: MODUSS"}),a.jsx("p",{className:"text-muted-foreground",children:"Configuración: Planta baja y planta primera"})]})]})]})})}),a.jsx("section",{className:"pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("button",{onClick:()=>t(0),className:"group block w-full overflow-hidden relative",children:[a.jsx("img",{src:Jp.url,alt:"Viviendas Villarrasa · Vista general del conjunto residencial",className:"w-full h-[70vh] object-cover transition-transform duration-700 group-hover:scale-[1.03]"}),a.jsx("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-500"}),a.jsx("div",{className:"absolute bottom-6 left-6 bg-background/90 backdrop-blur-sm px-4 py-2",children:a.jsx("span",{className:"text-minimal text-foreground",children:"VER GALERÍA COMPLETA"})})]})})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"EL PROYECTO"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural max-w-3xl",children:"Arquitectura contemporánea de líneas puras al servicio de la vida cotidiana"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md leading-relaxed",children:"Viviendas Villarrasa es un conjunto residencial en hilera pensado como una secuencia serena de volúmenes blancos. Los balcones volados, las celosías de madera y los patios delanteros ajardinados dibujan un ritmo urbano amable, donde la industrialización MODUSS convive con el detalle artesanal."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:ts.map((u,f)=>a.jsxs("button",{onClick:()=>t(f),className:`group relative overflow-hidden bg-muted ${u.span}`,style:{animation:`fadeInUp 0.6s ease ${f*60}ms both`},children:[a.jsx("img",{src:u.src,alt:u.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:u.caption})})]},f))})]})})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center animate-in fade-in duration-300",children:[a.jsx("button",{onClick:o,className:"absolute top-6 right-6 text-white/80 hover:text-white transition-colors z-10","aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{onClick:l,className:"absolute left-4 md:left-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Anterior",children:a.jsx(zt,{className:"w-10 h-10"})}),a.jsx("button",{onClick:c,className:"absolute right-4 md:right-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Siguiente",children:a.jsx(It,{className:"w-10 h-10"})}),a.jsxs("div",{className:"max-w-7xl w-full h-full flex flex-col items-center justify-center px-4 md:px-20 py-16",children:[a.jsx("img",{src:ts[e].src,alt:ts[e].caption,className:"max-h-[80vh] max-w-full object-contain animate-in fade-in zoom-in-95 duration-500"},e),a.jsxs("div",{className:"mt-6 flex items-center justify-between w-full max-w-3xl text-white/80",children:[a.jsx("p",{className:"text-minimal",children:ts[e].caption}),a.jsxs("p",{className:"text-minimal text-white/50",children:[String(e+1).padStart(2,"0")," / ",String(ts.length).padStart(2,"0")]})]})]})]}),a.jsxs("section",{className:"relative py-24 overflow-hidden",style:{background:"radial-gradient(ellipse at top, #0f2a4a 0%, #0a1a2e 60%, #060f1d 100%)"},children:[a.jsx("div",{className:"absolute inset-0 opacity-[0.18] pointer-events-none",style:{backgroundImage:"linear-gradient(rgba(140,200,255,0.35) 1px, transparent 1px), linear-gradient(90deg, rgba(140,200,255,0.35) 1px, transparent 1px)",backgroundSize:"40px 40px",maskImage:"radial-gradient(ellipse at center, black 40%, transparent 90%)",WebkitMaskImage:"radial-gradient(ellipse at center, black 40%, transparent 90%)"}}),a.jsx("div",{className:"container mx-auto px-6 relative",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"flex items-end justify-between flex-wrap gap-6 mb-12",children:[a.jsxs("div",{children:[a.jsx("p",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"DOCUMENTACIÓN TÉCNICA"}),a.jsxs("h2",{className:"text-4xl md:text-6xl font-light leading-[1.05] text-white",children:["Los planos del proyecto,",a.jsx("br",{}),a.jsx("span",{className:"text-white/50",children:"en modo arquitecto"})]})]}),a.jsx("p",{className:"text-sm max-w-sm leading-relaxed text-white/60",children:"Explora la documentación gráfica del conjunto. Selecciona una lámina en el índice lateral, ábrela a pantalla completa o descarga el PDF original."})]}),a.jsxs("div",{className:"grid md:grid-cols-[280px_1fr] gap-8",children:[a.jsxs("ol",{className:"relative",children:[a.jsx("div",{className:"absolute left-[11px] top-2 bottom-2 w-px bg-white/15","aria-hidden":!0}),Fa.map((u,f)=>{const h=f===n;return a.jsx("li",{className:"relative",children:a.jsxs("button",{onClick:()=>s(f),className:"w-full text-left flex items-start gap-4 py-3 pr-3 group",children:[a.jsx("span",{className:`mt-1 relative z-[1] flex items-center justify-center w-[22px] h-[22px] rounded-full border transition-all ${h?"bg-[#b1c854] border-[#b1c854]":"bg-[#0a1a2e] border-white/30 group-hover:border-white/60"}`,children:h&&a.jsx("span",{className:"w-1.5 h-1.5 rounded-full bg-[#0a1a2e]"})}),a.jsxs("span",{className:"flex-1",children:[a.jsxs("span",{className:`block text-[10px] tracking-[0.2em] mb-0.5 transition-colors ${h?"text-[#b1c854]":"text-white/75 group-hover:text-white"}`,children:["LÁMINA ",u.code]}),a.jsx("span",{className:`block text-base font-light transition-colors ${h?"text-white":"text-white/70 group-hover:text-white"}`,children:u.title})]})]})},u.code)})]}),a.jsxs("div",{className:"relative",children:[a.jsxs("div",{className:"flex items-center justify-between mb-4 gap-4 flex-wrap",children:[a.jsxs("div",{children:[a.jsxs("p",{className:"text-[10px] tracking-[0.25em] text-[#b1c854] mb-1",children:["OF23016 · VILLARRASA · LÁMINA ",d.code]}),a.jsx("h3",{className:"text-2xl font-light text-white",children:d.title}),a.jsx("p",{className:"text-sm text-white/80 mt-1",children:d.subtitle})]}),a.jsxs("div",{className:"flex items-center gap-2",children:[a.jsxs("button",{onClick:()=>i(!0),className:"inline-flex items-center gap-2 px-4 py-2 border border-white/20 hover:border-[#b1c854] hover:text-[#b1c854] text-white/80 text-xs tracking-[0.15em] transition-colors",children:[a.jsx(Um,{className:"w-3.5 h-3.5"}),"AMPLIAR"]}),a.jsxs("a",{href:d.pdf,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-2 px-4 py-2 bg-[#b1c854] hover:bg-[#c4d96e] text-[#0a1a2e] text-xs tracking-[0.15em] font-medium transition-colors",children:[a.jsx(Lt,{className:"w-3.5 h-3.5"}),"PDF"]})]})]}),a.jsxs("button",{onClick:()=>i(!0),className:"relative block w-full group overflow-hidden bg-white border border-white/10","aria-label":`Ampliar plano ${d.title}`,children:[a.jsx("span",{className:"absolute top-2 left-2 w-4 h-4 border-l-2 border-t-2 border-[#b1c854] z-10"}),a.jsx("span",{className:"absolute top-2 right-2 w-4 h-4 border-r-2 border-t-2 border-[#b1c854] z-10"}),a.jsx("span",{className:"absolute bottom-2 left-2 w-4 h-4 border-l-2 border-b-2 border-[#b1c854] z-10"}),a.jsx("span",{className:"absolute bottom-2 right-2 w-4 h-4 border-r-2 border-b-2 border-[#b1c854] z-10"}),a.jsx("img",{src:d.img,alt:`Plano ${d.title} — Viviendas Villarrasa`,className:"w-full h-[62vh] object-contain bg-white transition-transform duration-700 group-hover:scale-[1.02] animate-in fade-in duration-500"},n),a.jsx("div",{className:"absolute inset-0 opacity-0 group-hover:opacity-100 bg-black/30 transition-opacity duration-300 flex items-center justify-center",children:a.jsxs("span",{className:"px-4 py-2 bg-white/95 text-[#0a1a2e] text-xs tracking-[0.2em] flex items-center gap-2",children:[a.jsx(Um,{className:"w-3.5 h-3.5"})," AMPLIAR PLANO"]})})]}),a.jsxs("div",{className:"mt-4 flex items-center justify-between text-[10px] tracking-[0.2em] text-white/75",children:[a.jsx("span",{children:"ESCALA · SEGÚN INDICACIÓN"}),a.jsxs("span",{children:[String(n+1).padStart(2,"0")," / ",String(Fa.length).padStart(2,"0")]})]})]})]})]})})]}),r&&a.jsxs("div",{className:"fixed inset-0 z-[110] bg-black/95 flex items-center justify-center animate-in fade-in duration-300 p-4",onClick:()=>i(!1),children:[a.jsx("button",{onClick:()=>i(!1),className:"absolute top-6 right-6 text-white/80 hover:text-white transition-colors z-10","aria-label":"Cerrar plano",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{onClick:u=>{u.stopPropagation(),s(f=>(f-1+Fa.length)%Fa.length)},className:"absolute left-4 md:left-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Plano anterior",children:a.jsx(zt,{className:"w-10 h-10"})}),a.jsx("button",{onClick:u=>{u.stopPropagation(),s(f=>(f+1)%Fa.length)},className:"absolute right-4 md:right-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Plano siguiente",children:a.jsx(It,{className:"w-10 h-10"})}),a.jsxs("div",{className:"max-w-[95vw] max-h-[92vh] flex flex-col items-center",onClick:u=>u.stopPropagation(),children:[a.jsx("img",{src:d.img,alt:`Plano ${d.title}`,className:"max-h-[82vh] max-w-full object-contain bg-white animate-in fade-in zoom-in-95 duration-500"},`lb-${n}`),a.jsxs("div",{className:"mt-4 flex items-center justify-between w-full text-white/80 gap-4",children:[a.jsxs("div",{children:[a.jsxs("p",{className:"text-[10px] tracking-[0.25
845em] text-[#b1c854]",children:["LÁMINA ",d.code]}),a.jsx("p",{className:"text-minimal",children:d.title})]}),a.jsxs("a",{href:d.pdf,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-2 px-4 py-2 bg-[#b1c854] hover:bg-[#c4d96e] text-[#0a1a2e] text-xs tracking-[0.15em] font-medium transition-colors",children:[a.jsx(Lt,{className:"w-3.5 h-3.5"}),"DESCARGAR PDF"]})]})]})]}),a.jsx("style",{children:`
846        @keyframes fadeInUp {
847          from { opacity: 0; transform: translateY(24px); }
848          to { opacity: 1; transform: translateY(0); }
849        }
850      `}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},Lae=1,Mae="2013fa26-a88d-4341-8610-1fc4888ac550",Dae="22885900-7753-4d74-9e2f-5cb1776d4f5d",Uae="/__l5e/assets-v1/2013fa26-a88d-4341-8610-1fc4888ac550/cuatrovitas_piscina.webp",Fae="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/2013fa26-a88d-4341-8610-1fc4888ac550/cuatrovitas_piscina.webp",Bae="cuatrovitas_piscina.webp",qae=402366,Vae="image/webp",Hae="2026-07-07T05:27:29Z",B2={version:Lae,asset_id:Mae,project_id:Dae,url:Uae,r2_key:Fae,original_filename:Bae,size:qae,content_type:Vae,created_at:Hae},Wae=1,Zae="158f8fc6-eb9b-4f1b-8ef1-1019e1dea5c7",Gae="22885900-7753-4d74-9e2f-5cb1776d4f5d",Kae="/__l5e/assets-v1/158f8fc6-eb9b-4f1b-8ef1-1019e1dea5c7/cuatrovitas_jardin.webp",Jae="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/158f8fc6-eb9b-4f1b-8ef1-1019e1dea5c7/cuatrovitas_jardin.webp",Yae="cuatrovitas_jardin.webp",Qae=455776,Xae="image/webp",ere="2026-07-07T05:27:23Z",tre={version:Wae,asset_id:Zae,project_id:Gae,url:Kae,r2_key:Jae,original_filename:Yae,size:Qae,content_type:Xae,created_at:ere},nre=1,sre="24d5c8a7-0a10-4c12-bffd-2bd968659768",are="22885900-7753-4d74-9e2f-5cb1776d4f5d",rre="/__l5e/assets-v1/24d5c8a7-0a10-4c12-bffd-2bd968659768/cuatrovitas_acceso.webp",ire="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/24d5c8a7-0a10-4c12-bffd-2bd968659768/cuatrovitas_acceso.webp",ore="cuatrovitas_acceso.webp",lre=145822,cre="image/webp",dre="2026-07-07T05:31:03Z",ure={version:nre,asset_id:sre,project_id:are,url:rre,r2_key:ire,original_filename:ore,size:lre,content_type:cre,created_at:dre},fre=1,pre="e59682a6-4734-4fad-a495-987cc8008e2e",hre="22885900-7753-4d74-9e2f-5cb1776d4f5d",mre="/__l5e/assets-v1/e59682a6-4734-4fad-a495-987cc8008e2e/dosier-cuatrovitas.pdf",gre="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e59682a6-4734-4fad-a495-987cc8008e2e/dosier-cuatrovitas.pdf",bre="dosier-cuatrovitas.pdf",xre=28927643,vre="application/pdf",yre="2026-07-01T11:42:19Z",ug={version:fre,asset_id:pre,project_id:hre,url:mre,r2_key:gre,original_filename:bre,size:xre,content_type:vre,created_at:yre},Ce="#b1c854",$i="#1e9eb1",Hd="https://twinmotion.unrealengine.com/panorama/Ic0MrLThkVFD1lsO?lang=es-ES&c=05E839FB487523494C7D07BE5DFF9C09",qt=[{src:Yp.url,kicker:"01 · Vista aérea",title:"Un conjunto entre pinares",text:"Agrupaciones maestras que respiran el paisaje de La Juliana, tejidas con volúmenes blancos y cubiertas verdes."},{src:ure.url,kicker:"02 · Acceso principal",title:"Bienvenida accesible",text:"Recorridos amables y pasarelas de madera pensadas para todas las movilidades, con la naturaleza como umbral."},{src:B2.url,kicker:"03 · Piscina y bienestar",title:"Espacios para el cuerpo",text:"Piscina, pérgolas y circuitos de mayores. Actividad física suave integrada en la vida cotidiana."},{src:tre.url,kicker:"04 · Jardín común",title:"Vida en comunidad",text:"Zonas de encuentro entre unidades convivenciales que fomentan la relación intergeneracional y el sentido de pertenencia."}],_re=[{icon:go,title:"Atención centrada en la persona",text:"El modelo ACP guía cada decisión: autonomía, dignidad y proyecto de vida propio para cada residente.",color:Ce},{icon:Mr,title:"Cohousing intergeneracional",text:"Unidades convivenciales pequeñas que fomentan la comunidad, la relación con el barrio y con las familias.",color:$i},{icon:bo,title:"Sistema MODUSS",text:"Base modular patentada: dormitorio, multiuso, zonas comunes y equipamientos que crecen como dendritas.",color:Ce}
850,{icon:xo,title:"Passivhaus & biofilia",text:"Envolvente de altísima eficiencia, ventilación con recuperación de calor y naturaleza siempre a la vista.",color:$i}],wre=()=>{const[e,t]=g.useState(null);return g.useEffect(()=>{if(e===null)return;const n=s=>{s.key==="Escape"&&t(null),s.key==="ArrowRight"&&t(r=>r===null?0:(r+1)%qt.length),s.key==="ArrowLeft"&&t(r=>r===null?0:(r-1+qt.length)%qt.length)};return window.addEventListener("keydown",n),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",n),document.body.style.overflow=""}},[e]),a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Senior Living Club · Cuatrovitas — Modulya",description:"Anteproyecto de residencia modular Senior Living & Cohousing en Finca Cuatrovitas (La Juliana, Bollullos de la Mitación, Sevilla). Sistema MODUSS, modelo ACP, Passivhaus.",path:"/work/senior-living-cuatrovitas"}),a.jsx(de,{}),a.jsxs("section",{className:"relative h-screen w-full overflow-hidden",children:[a.jsx("img",{src:Yp.url,alt:"Vista aérea Senior Living Club Cuatrovitas",className:"absolute inset-0 w-full h-full object-cover scale-105 animate-[kenburns_20s_ease-in-out_infinite_alternate]"}),a.jsx("style",{children:"@keyframes kenburns { from { transform: scale(1.05) translate(0,0); } to { transform: scale(1.15) translate(-2%, -1%); } }"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/20 to-black/80"}),a.jsxs(F,{to:"/work",className:"absolute top-28 left-6 md:left-10 z-30 inline-flex items-center gap-2 text-white/90 hover:text-white text-sm tracking-widest uppercase",children:[a.jsx(ae,{className:"w-4 h-4"})," Volver a proyectos"]}),a.jsxs("div",{className:"relative z-10 h-full flex flex-col justify-end px-6 md:px-16 pb-20 max-w-6xl",children:[a.jsx("p",{className:"text-xs md:text-sm tracking-[0.3em] uppercase mb-6",style:{color:Ce},children:"Senior Living · Cohousing · Cuatrovitas"}),a.jsxs("h1",{className:"text-white text-5xl md:text-7xl lg:text-8xl font-light leading-[0.95] tracking-tight",children:["Vivir mayor,",a.jsx("br",{}),"vivir en casa,",a.jsx("br",{}),a.jsx("span",{style:{color:Ce},children:"vivir en comunidad."})]}),a.jsx("p",{className:"text-white/80 text-lg md:text-xl max-w-2xl mt-8 leading-relaxed",children:"Anteproyecto de residencia modular para la tercera edad en Finca Cuatrovitas — La Juliana, Bollullos de la Mitación (Sevilla)."}),a.jsxs("div",{className:"flex flex-wrap gap-4 mt-10",children:[a.jsxs("a",{href:Hd,target:"_blank",rel:"noopener noreferrer",className:"group inline-flex items-center gap-3 px-8 py-4 rounded-full font-semibold text-black transition-transform hover:scale-105",style:{backgroundColor:Ce},children:[a.jsx($s,{className:"w-5 h-5"}),"Explorar tour virtual 360º",a.jsx(Kl,{className:"w-4 h-4 opacity-70 group-hover:translate-x-1 transition-transform"})]}),a.jsxs("a",{href:ug.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-8 py-4 rounded-full font-semibold text-white border border-white/30 hover:bg-white/10 transition",children:[a.jsx(Lt,{className:"w-5 h-5"}),"Descargar dosier PDF"]})]})]}),a.jsx("div",{className:"absolute bottom-6 left-1/2 -translate-x-1/2 z-10 text-white/60 text-xs tracking-[0.3em] animate-bounce",children:"SCROLL"})]}),a.jsx("section",{className:"border-y border-border bg-muted/30 overflow-hidden py-6",children:a.jsx("div",{className:"flex whitespace-nowrap gap-16 animate-marquee text-sm tracking-[0.25em] uppercase text-muted-foreground",children:Array.from({length:2}).map((n,s)=>a.jsxs("div",{className:"flex gap-16",children:[a.jsx("span",{children:"Finca Cuatrovitas"}),a.jsx("span",{style:{color:Ce},children:"◆"}),a.jsx("span",{children:"Bollullos de la Mitación · Sevilla"}),a.jsx("span",{style:{color:Ce},children:"◆"}),a.jsx("span",{children:"Sistema MODUSS"}),a.jsx("span",{style:{color:Ce},children:"◆"}),a.jsx("span",{children:"Modelo ACP"}),a.jsx("span",{style:{color:Ce},children:"◆"}),a.jsx("span",{children:"Passivhaus"}),a.jsx("span",{style:{color:Ce},children:"◆"}),a.jsx("span",{children:"Cohousing intergeneracional"}),a.jsx("span",{style:{color:Ce},children:"◆"})]},s))})}),a.jsx("section",{className:"py-24 md:py-36 px-6",children:a.jsx("div",{className:"max-w-5xl mx-auto",children:a.jsxs(A,{children:[a.jsx("p",{className:"text-sm tracking-[0.3em] uppercase mb-6",style:{color:$i},children:"Manifiesto"}),a.jsxs("p",{className:"text-2xl md:text-4xl font-light leading-relaxed text-architectural",children:[a.jsx("span",{className:"font-semibold",style:{color:Ce},children:"MODUSS Senior Living"})," replantea cómo diseñamos, construimos y compartimos las residencias para la tercera edad — para que quienes viven en ellas se sientan"," ",a.jsx("em",{className:"not-italic border-b-2",style:{borderColor:Ce},children:"como en casa"}
850),", con sentido de pertenencia y formas más satisfactorias de convivencia."]})]})})}),a.jsx("section",{className:"py-20 bg-muted/20 px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsx(A,{children:a.jsxs("div",{className:"mb-16",children:[a.jsx("p",{className:"text-sm tracking-[0.3em] uppercase mb-3",style:{color:Ce},children:"Pilares"}),a.jsx("h2",{className:"text-4xl md:text-6xl font-light text-architectural",children:"Cuatro ideas fundacionales"})]})}),a.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:_re.map((n,s)=>{const r=n.icon;return a.jsx(A,{delay:s*80,children:a.jsxs("div",{className:"group relative p-8 h-full rounded-2xl border border-border bg-background hover:-translate-y-1 transition-all duration-500 hover:shadow-elegant overflow-hidden",children:[a.jsx("div",{className:"absolute inset-x-0 bottom-0 h-1 transition-all duration-500 group-hover:h-2",style:{backgroundColor:n.color}}),a.jsx("div",{className:"w-14 h-14 rounded-xl flex items-center justify-center mb-6",style:{backgroundColor:`${n.color}1a`},children:a.jsx(r,{className:"w-7 h-7",style:{color:n.color}})}),a.jsx("h3",{className:"text-xl font-semibold text-architectural mb-3",children:n.title}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:n.text})]})},n.title)})})]})}),a.jsx("section",{className:"py-24 md:py-32 px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsx(A,{children:a.jsxs("div",{className:"mb-16 flex items-end justify-between flex-wrap gap-6",children:[a.jsxs("div",{children:[a.jsx("p",{className:"text-sm tracking-[0.3em] uppercase mb-3",style:{color:$i},children:"Escenas"}),a.jsx("h2",{className:"text-4xl md:text-6xl font-light text-architectural max-w-2xl",children:"Recorrido por el conjunto"})]}),a.jsxs("a",{href:Hd,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-sm tracking-widest uppercase hover:opacity-70",style:{color:Ce},children:["Entrar al tour 360º ",a.jsx(it,{className:"w-4 h-4"})]})]})}),a.jsx("div",{className:"space-y-24 md:space-y-40",children:qt.map((n,s)=>a.jsx(A,{delay:s*60,children:a.jsxs("div",{className:`grid md:grid-cols-12 gap-8 md:gap-12 items-center ${s%2===1?"md:[&>*:first-child]:order-2":""}`,children:[a.jsxs("button",{onClick:()=>t(s),className:"md:col-span-8 group relative block overflow-hidden rounded-2xl aspect-[16/10] w-full",children:[a.jsx("img",{src:n.src,alt:n.title,className:"w-full h-full object-cover transition-transform duration-[1200ms] group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/40 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity"}),a.jsx("div",{className:"absolute bottom-4 right-4 text-xs tracking-widest uppercase px-3 py-1.5 rounded-full text-black opacity-0 group-hover:opacity-100 transition",style:{backgroundColor:Ce},children:"Ampliar"})]}),a.jsxs("div",{className:"md:col-span-4",children:[a.jsx("p",{className:"text-xs tracking-[0.3em] uppercase mb-4",style:{color:Ce},children:n.kicker}),a.jsx("h3",{className:"text-3xl md:text-4xl font-light text-architectural mb-4",children:n.title}),a.jsx("p",{className:"text-muted-foreground leading-relaxed text-lg",children:n.text})]})]})},n.title))})]})}),a.jsxs("section",{className:"relative py-24 md:py-32 overflow-hidden",children:[a.jsxs("div",{className:"absolute inset-0",children:[a.jsx("img",{src:B2.url,alt:"",className:"w-full h-full object-cover"}),a.jsx("div",{className:"absolute inset-0 bg-black/70"})]}),a.jsxs("div",{className:"relative z-10 max-w-4xl mx-auto text-center px-6",children:[a.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full mb-8 text-xs tracking-[0.3em] uppercase",style:{backgroundColor:`${Ce}22`,color:Ce},children:[a.jsx($s,{className:"w-4 h-4"})," Experiencia inmersiva"]}),a.jsxs("h2",{className:"text-white text-4xl md:text-6xl font-light leading-tight mb-8",children:["Camina por Cuatrovitas ",a.jsx("br",{}),"en 360º."]}),a.jsx("p",{className:"text-white/70 text-lg mb-10 max-w-2xl mx-auto",children:"Explora el conjunto residencial como si estuvieras allí. Recorre pasarelas, zonas comunes y jardines desde cualquier dispositivo."}),a.jsxs("a",{href:Hd,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-10 py-5 rounded-full font-semibold text-black transition-transform hover:scale-105",style:{backgroundColor:Ce},children:[a.jsx($s,{className:"w-5 h-5"}),"Abrir tour virtual",a.jsx(Kl,{className:"w-4 h-4"})]})]})]}),a.jsx("section",{className:"py-24 px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto border border-border rounded-2xl p-10 md:p-16 flex flex-col md:flex-row items-start md:items-center gap-8 justify-between bg-muted/20",children:[a.jsxs("div",{children:[a.jsx("p",{className:"text-sm tracking-[0.3em] uppercase mb-3",style:{color:$i},children:"Documentación"}),a.jsx("h3",{className:"text-3xl md:text-4xl font-light text-architectural mb-3",children:"Dosier completo del proyecto"}),a.jsx("p",{className:"text-muted-foreground max-w-xl",children:"Anteproyecto Senior Living Club & Cohousing — Cuatrovitas. Sistema MODUSS, modelo ACP, plantas, secciones y vistas."})]}),a.jsxs("a",{href:ug.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-8 py-4 rounded-full font-semibold text-black shrink-0 transition-transform hover:scale-105",style:{backgroundColor:Ce},children:[a.jsx(Lt,{className:"w-5 h-5"})," Descargar PDF"]})]})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center p-6",onClick:()=>t(null),children:[a.jsx("button",{className:"absolute top-6 right-6 text-white/80 hover:text-white",onClick:()=>t(null),"aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{className:"absolute left-4 md:left-8 text-white/80 hover:text-white",onClick:n=>{n.stopPropagation(),t(s=>s===null?0:(s-1+qt.length)%qt.length)},"aria-label":"Anterior",children:a.jsx(ae,{className:"w-10 h-10"})}),a.jsx("img",{src:qt[e].src,alt:qt[e].title,className:"max-h-[85vh] max-w-[85vw] object-contain",onClick:n=>n.stopPropagation()}),a.jsx("button",{className:"absolute right-4 md:right-8 text-white/80 hover:text-white",onClick:n=>{n.stopPropagation(),t(s=>s===null?0:(s+1)%qt.length)},"aria-label":"Siguiente",children:a.jsx(it,{className:"w-10 h-10"})}),a.jsxs("div",{className:"absolute bottom-8 left-1/2 -translate-x-1/2 text-white/80 text-sm tracking-widest uppercase",children:[qt[e].kicker," — ",qt[e].title]})]}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},jre=1,kre="cd042651-a96d-4faa-9a80-7d58b490d5d5",Nre="22885900-7753-4d74-9e2f-5cb1776d4f5d",$re="/__l5e/assets-v1/cd042651-a96d-4faa-9a80-7d58b490d5d5/sl_1.webp",Sre="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/cd042651-a96d-4faa-9a80-7d58b490d5d5/sl_1.webp",Ere="sl_1.webp",Cre=124658,Tre="image/webp",Are="2026-07-07T05:28:20Z",Rre={version:jre,asset_id:kre,project_id:Nre,url:$re,r2_key:Sre,original_filename:Ere,size:Cre,content_type:Tre,created_at:Are},Pre=1,Ore="4b282934-10ee-4285-9031-5eb0256d9d05",zre="22885900-7753-4d74-9e2f-5cb1776d4f5d",Ire="/__l5e/assets-v1/4b282934-10ee-4285-9031-5eb0256d9d05/sl_2.webp",Lre="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/4b282934-10ee-4285-9031-5eb0256d9d05/sl_2.webp",Mre="sl_2.webp",Dre=173714,Ure="image/webp",Fre="2026-07-07T05:28:07Z",Bre={version:Pre,asset_id:Ore,project_id:zre,url:Ire,r2_key:Lre,original_filename:Mre,size:Dre,content_type:Ure,created_at:Fre},qre=1,Vre="0238261b-9add-4552-adbc-10a3fb340d21",Hre="22885900-7753-4d74-9e2f-5cb1776d4f5d",Wre="/__l5e/assets-v1/0238261b-9add-4552-adbc-10a3fb340d21/sl_4.webp",Zre="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/0238261b-9add-4552-adbc-10a3fb340d21/sl_4.webp",Gre="sl_4.webp",Kre=206320,Jre="image/webp",Yre="2026-07-07T05:28:10Z",Qre={version:qre,asset_id:Vre,project_id:Hre,url:Wre,r2_key:Zre,original_filename:Gre,size:Kre,content_type:Jre,created_at:Yre},Xre=1,eie="d8a1d810-9345-466e-ae04-01543c5e7f24",tie="22885900-7753-4d74-9e2f-5cb1776d4f5d",nie="/__l5e/assets-v1/d8a1d810-9345-466e-ae04-01543c5e7f24/sl_5.webp",sie="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/d8a1d810-9345-466e-ae04-01543c5e7f24/sl_5.webp",aie="sl_5.webp",rie=282290,iie="image/webp",oie="2026-07-07T05:27:57Z",q2={version:Xre,asset_id:eie,project_id:tie,url:nie,r2_key:sie,original_filename:aie,size:rie,content_type:iie,created_at:oie}
850,lie=1,cie="f2bfcca6-07e1-43b2-8aa6-1702d294100f",die="22885900-7753-4d74-9e2f-5cb1776d4f5d",uie="/__l5e/assets-v1/f2bfcca6-07e1-43b2-8aa6-1702d294100f/sl_8.webp",fie="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/f2bfcca6-07e1-43b2-8aa6-1702d294100f/sl_8.webp",pie="sl_8.webp",hie=257134,mie="image/webp",gie="2026-07-07T05:28:15Z",bie={version:lie,asset_id:cie,project_id:die,url:uie,r2_key:fie,original_filename:pie,size:hie,content_type:mie,created_at:gie},xie=1,vie="cde32725-429d-4020-9ee4-4867d50fc48d",yie="22885900-7753-4d74-9e2f-5cb1776d4f5d",_ie="/__l5e/assets-v1/cde32725-429d-4020-9ee4-4867d50fc48d/planos-senior-living-almonte.pdf",wie="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/cde32725-429d-4020-9ee4-4867d50fc48d/planos-senior-living-almonte.pdf",jie="planos-senior-living-almonte.pdf",kie=9490454,Nie="application/pdf",$ie="2026-07-04T10:29:21Z",fg={version:xie,asset_id:vie,project_id:yie,url:_ie,r2_key:wie,original_filename:jie,size:kie,content_type:Nie,created_at:$ie},Te="#b1c854",Si="#1e9eb1",Wd="https://twinmotion.unrealengine.com/panorama/rDk5ejDnfFAF4J__",Vt=[{src:Qp.url,kicker:"01 · Vista aérea",title:"Un tejido de patios y cubiertas verdes",text:"Volúmenes blancos que se entrelazan con el arbolado existente, tejiendo patios, sombras y cubiertas ajardinadas sobre el parque Alcalde Mojarro."},{src:Rre.url,kicker:"02 · Fachada urbana",title:"Diálogo con la calle",text:"Frente sereno hacia la Avenida Cumbre Hermosa, con paños de madera que suavizan el blanco arquitectónico y ordenan el ritmo del conjunto."},{src:Bre.url,kicker:"03 · Pérgola y acceso",title:"Un umbral amable",text:"Pérgola de madera que acompaña el recorrido de entrada, con luz filtrada y bancos bajo los pinos existentes."},{src:Qre.url,kicker:"04 · Patios interiores",title:"Vivir con la naturaleza dentro",text:"Cada unidad convivencial se abre a un patio propio con arbolado, garantizando luz, ventilación cruzada y biofilia en cada estancia."},{src:q2.url,kicker:"05 · Jardín común",title:"Espacios para el encuentro",text:"Grandes áreas verdes de relación entre módulos: terrazas, miradores y zonas de estar bajo los pinares."},{src:bie.url,kicker:"06 · Zona activa",title:"Cuerpo, mente y comunidad",text:"Circuitos de ejercicio suave para mayores integrados en el paisaje, favoreciendo la vida al aire libre durante todo el año."}],Sie=[{icon:go,title:"Atención centrada en la persona",text:"El modelo ACP guía cada decisión: autonomía, dignidad y proyecto de vida propio para cada residente.",color:Te},{icon:Mr,title:"Unidades convivenciales",text:"Agrupaciones pequeñas tipo hogar que fomentan la comunidad, la relación con el barrio y con las familias.",color:Si},{icon:bo,title:"Sistema MODUSS",text:"Base modular industrializada: dormitorio, multiuso, zonas comunes y equipamientos que crecen como dendritas.",color:Te},{icon:xo,title:"Biofilia & cubiertas verdes",text:"Patios arbolados, cubiertas ajardinadas y envolvente eficiente para máximo confort y mínimo consumo.",color:Si}],Eie=()=>{const[e,t]=g.useState(null);return g.useEffect(()=>{if(e===null)return;const n=s=>{s.key==="Escape"&&t(null),s.key==="ArrowRight"&&t(r=>r===null?0:(r+1)%Vt.length),s.key==="ArrowLeft"&&t(r=>r===null?0:(r-1+Vt.length)%Vt.length)};return window.addEventListener("keydown",n),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",n),document.body.style.overflow=""}},[e]),a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Senior Living Almonte — Modulya",description:"Proyecto básico de centro residencial para personas mayores en Almonte (Huelva). Sistema MODUSS, patios biofílicos, cubiertas verdes y tour virtual 360º.",path:"/work/senior-living-almonte"}),a.jsx(de,{}),a.jsxs("section",{className:"relative h-screen w-full overflow-hidden",children:[a.jsx("img",{src:Qp.url,alt:"Vista aérea Senior Living Almonte",className:"absolute inset-0 w-full h-full object-cover scale-105 animate-[kenburns_20s_ease-in-out_infinite_alternate]"}),a.jsx("style",{children:"@keyframes kenburns { from { transform: scale(1.05) translate(0,0); } to { transform: scale(1.15) translate(-2%, -1%); } }"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/20 to-black/80"}),a.jsxs(F,{to:"/work",className:"absolute top-28 left-6 md:left-10 z-30 inline-flex items-center gap-2 text-white/90 hover:text-white text-sm tracking-widest uppercase",children:[a.jsx(ae,{className:"w-4 h-4"})," Volver a proyectos"]}),a.jsxs("div",{className:"relative z-10 h-full flex flex-col justify-end px-6 md:px-16 pb-20 max-w-6xl",children:[a.jsx("p",{className:"text-xs md:text-sm tracking-[0.3em] uppercase mb-6",style:{color:Te},children:"Senior Living · Almonte · Huelva"}),a.jsxs("h1",{className:"text-white text-5xl md:text-7xl lg:text-8xl font-light leading-[0.95] tracking-tight",children:["Envejecer",a.jsx("br",{}),"entre pinos,",a.jsx("br",{}),a.jsx("span",{style:{color:Te},children:"patios y luz."})]}),a.jsx("p",{className:"text-white/80 text-lg md:text-xl max-w-2xl mt-8 leading-relaxed",children:"Proyecto básico de centro residencial para personas mayores en Avenida Cumbre Hermosa, junto al Parque Alcalde Mojarro — Almonte (Huelva)."}),a.jsxs("div",{className:"flex flex-wrap gap-4 mt-10",children:[a.jsxs("a",{href:Wd,target:"_blank",rel:"noopener noreferrer",className:"group inline-flex items-center gap-3 px-8 py-4 rounded-full font-semibold text-black transition-transform hover:scale-105",style:{backgroundColor:Te},children:[a.jsx($s,{className:"w-5 h-5"}),"Explorar tour virtual 360º",a.jsx(Kl,{className:"w-4 h-4 opacity-70 group-hover:translate-x-1 transition-transform"})]}),a.jsxs("a",{href:fg.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-8 py-4 rounded-full font-semibold text-white border border-white/30 hover:bg-white/10 transition",children:[a.jsx(Lt,{className:"w-5 h-5"}),"Descargar planos PDF"]})]})]}),a.jsx("div",{className:"absolute bottom-6 left-1/2 -translate-x-1/2 z-10 text-white/60 text-xs tracking-[0.3em] animate-bounce",children:"SCROLL"})]}),a.jsx("section",{className:"border-y border-border bg-muted/30 overflow-hidden py-6",children:a.jsx("div",{className:"flex whitespace-nowrap gap-16 animate-marquee text-sm tracking-[0.25em] uppercase text-muted-foreground",children:Array.from({length:2}).map((n,s)=>a.jsxs("div",{className:"flex gap-16",children:[a.jsx("span",{children:"Avenida Cumbre Hermosa"}),a.jsx("span",{style:{color:Te},children:"◆"}),a.jsx("span",{children:"Almonte · Huelva"}),a.jsx("span",{style:{color:Te},children:"◆"}),a.jsx("span",{children:"Sistema MODUSS"}),a.jsx("span",{style:{color:Te},children:"◆"}),a.jsx("span",{children:"Modelo ACP"}),a.jsx("span",{style:{color:Te},children:"◆"}),a.jsx("span",{children:"Cubiertas verdes"}),a.jsx("span",{style:{color:Te},children:"◆"}),a.jsx("span",{children:"Patios biofílicos"}),a.jsx("span",{style:{color:Te},children:"◆"})]},s))})}),a.jsx("section",{className:"py-24 md:py-36 px-6",children:a.jsx("div",{className:"max-w-5xl mx-auto",children:a.jsxs(A,{children:[a.jsx("p",{className:"text-sm tracking-[0.3em] uppercase mb-6",style:{color:Si},children:"Manifiesto"}),a.jsxs("p",{className:"text-2xl md:text-4xl font-light leading-relaxed text-architectural",children:["Un ",a.jsx("span",{className:"font-semibold",style:{color:Te},children:"centro residencial de nueva generación"})," ","que se disuelve entre los pinos existentes: volúmenes blancos, patios arbolados y cubiertas verdes para que la vida cotidiana suceda"," ",a.jsx("em",{className:"not-italic border-b-2",style:{borderColor:Te},children:"en contacto con el paisaje"}),"."]})]})})}),a.jsx("section",{className:"py-20 bg-muted/20 px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsx(A,{children:a.jsxs("div",{className:"mb-16",children:[a.jsx("p",{className:"text-sm tracking-[0.3em] uppercase mb-3",style:{color:Te},children:"Pilares"}),a.jsx("h2",{className:"text-4xl md:text-6xl font-light text-architectural",children:"Cuatro ideas fundacionales"})]})}),a.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:Sie.map((n,s)=>{const r=n.icon;return a.jsx(A,{delay:s*80,children:a.jsxs("div",{className:"group relative p-8 h-full rounded-2xl border border-border bg-background hover:-translate-y-1 transition-all duration-500 hover:shadow-elegant overflow-hidden",children:[a.jsx("div",{className:"absolute inset-x-0 bottom-0 h-1 transition-all duration-500 group-hover:h-2",style:{backgroundColor:n.color}}
850),a.jsx("div",{className:"w-14 h-14 rounded-xl flex items-center justify-center mb-6",style:{backgroundColor:`${n.color}1a`},children:a.jsx(r,{className:"w-7 h-7",style:{color:n.color}})}),a.jsx("h3",{className:"text-xl font-semibold text-architectural mb-3",children:n.title}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:n.text})]})},n.title)})})]})}),a.jsx("section",{className:"py-24 md:py-32 px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsx(A,{children:a.jsxs("div",{className:"mb-16 flex items-end justify-between flex-wrap gap-6",children:[a.jsxs("div",{children:[a.jsx("p",{className:"text-sm tracking-[0.3em] uppercase mb-3",style:{color:Si},children:"Escenas"}),a.jsx("h2",{className:"text-4xl md:text-6xl font-light text-architectural max-w-2xl",children:"Recorrido por el conjunto"})]}),a.jsxs("a",{href:Wd,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-sm tracking-widest uppercase hover:opacity-70",style:{color:Te},children:["Entrar al tour 360º ",a.jsx(it,{className:"w-4 h-4"})]})]})}),a.jsx("div",{className:"space-y-24 md:space-y-40",children:Vt.map((n,s)=>a.jsx(A,{delay:s*60,children:a.jsxs("div",{className:`grid md:grid-cols-12 gap-8 md:gap-12 items-center ${s%2===1?"md:[&>*:first-child]:order-2":""}`,children:[a.jsxs("button",{onClick:()=>t(s),className:"md:col-span-8 group relative block overflow-hidden rounded-2xl aspect-[16/10] w-full",children:[a.jsx("img",{src:n.src,alt:n.title,className:"w-full h-full object-cover transition-transform duration-[1200ms] group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/40 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity"}),a.jsx("div",{className:"absolute bottom-4 right-4 text-xs tracking-widest uppercase px-3 py-1.5 rounded-full text-black opacity-0 group-hover:opacity-100 transition",style:{backgroundColor:Te},children:"Ampliar"})]}),a.jsxs("div",{className:"md:col-span-4",children:[a.jsx("p",{className:"text-xs tracking-[0.3em] uppercase mb-4",style:{color:Te},children:n.kicker}),a.jsx("h3",{className:"text-3xl md:text-4xl font-light text-architectural mb-4",children:n.title}),a.jsx("p",{className:"text-muted-foreground leading-relaxed text-lg",children:n.text})]})]})},n.title))})]})}),a.jsxs("section",{className:"relative py-24 md:py-32 overflow-hidden",children:[a.jsxs("div",{className:"absolute inset-0",children:[a.jsx("img",{src:q2.url,alt:"",className:"w-full h-full object-cover"}),a.jsx("div",{className:"absolute inset-0 bg-black/70"})]}),a.jsxs("div",{className:"relative z-10 max-w-4xl mx-auto text-center px-6",children:[a.jsxs("div",{className:"inline-flex items-center gap-2 px-4 py-2 rounded-full mb-8 text-xs tracking-[0.3em] uppercase",style:{backgroundColor:`${Te}22`,color:Te},children:[a.jsx($s,{className:"w-4 h-4"})," Experiencia inmersiva"]}),a.jsxs("h2",{className:"text-white text-4xl md:text-6xl font-light leading-tight mb-8",children:["Camina por Almonte ",a.jsx("br",{}),"en 360º."]}),a.jsx("p",{className:"text-white/70 text-lg mb-10 max-w-2xl mx-auto",children:"Explora el centro residencial como si estuvieras allí. Recorre patios, zonas comunes y jardines desde cualquier dispositivo."}),a.jsxs("a",{href:Wd,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-10 py-5 rounded-full font-semibold text-black transition-transform hover:scale-105",style:{backgroundColor:Te},children:[a.jsx($s,{className:"w-5 h-5"}),"Abrir tour virtual",a.jsx(Kl,{className:"w-4 h-4"})]})]})]}),a.jsx("section",{className:"py-24 px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto border border-border rounded-2xl p-10 md:p-16 flex flex-col md:flex-row items-start md:items-center gap-8 justify-between bg-muted/20",children:[a.jsxs("div",{children:[a.jsx("p",{className:"text-sm tracking-[0.3em] uppercase mb-3",style:{color:Si},children:"Documentación"}),a.jsx("h3",{className:"text-3xl md:text-4xl font-light text-architectural mb-3",children:"Planos del proyecto"}),a.jsx("p",{className:"text-muted-foreground max-w-xl",children:"Proyecto básico de centro residencial para personas mayores — Ayuntamiento de Almonte. Situación, emplazamiento, plantas, alzados y secciones."})]}),a.jsxs("a",{href:fg.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-8 py-4 rounded-full font-semibold text-black shrink-0 transition-transform hover:scale-105",style:{backgroundColor:Te},children:[a.jsx(Lt,{className:"w-5 h-5"})," Descargar PDF"]})]})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center p-6",onClick:()=>t(null),children:[a.jsx("button",{className:"absolute top-6 right-6 text-white/80 hover:text-white",onClick:()=>t(null),"aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{className:"absolute left-4 md:left-8 text-white/80 hover:text-white",onClick:n=>{n.stopPropagation(),t(s=>s===null?0:(s-1+Vt.length)%Vt.length)},"aria-label":"Anterior",children:a.jsx(ae,{className:"w-10 h-10"})}),a.jsx("img",{src:Vt[e].src,alt:Vt[e].title,className:"max-h-[85vh] max-w-[85vw] object-contain",onClick:n=>n.stopPropagation()}),a.jsx("button",{className:"absolute right-4 md:right-8 text-white/80 hover:text-white",onClick:n=>{n.stopPropagation(),t(s=>s===null?0:(s+1)%Vt.length)},"aria-label":"Siguiente",children:a.jsx(it,{className:"w-10 h-10"})}),a.jsxs("div",{className:"absolute bottom-8 left-1/2 -translate-x-1/2 text-white/80 text-sm tracking-widest uppercase",children:[Vt[e].kicker," — ",Vt[e].title]})]}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},Cie=1,Tie="1accaf48-8ec7-41ce-af26-dbd28c1e7f64",Aie="22885900-7753-4d74-9e2f-5cb1776d4f5d",Rie="/__l5e/assets-v1/1accaf48-8ec7-41ce-af26-dbd28c1e7f64/mazagon_3.png",Pie="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/1accaf48-8ec7-41ce-af26-dbd28c1e7f64/mazagon_3.png",Oie="mazagon_3.png",zie=2035704,Iie="image/png",Lie="2026-07-09T19:09:33Z",Mie={version:Cie,asset_id:Tie,project_id:Aie,url:Rie,r2_key:Pie,original_filename:Oie,size:zie,content_type:Iie,created_at:Lie},Die=1,Uie="516496a3-4e9d-4ac7-80f4-b87e2b64092d",Fie="22885900-7753-4d74-9e2f-5cb1776d4f5d",Bie="/__l5e/assets-v1/516496a3-4e9d-4ac7-80f4-b87e2b64092d/mazagon_4.png",qie="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/516496a3-4e9d-4ac7-80f4-b87e2b64092d/mazagon_4.png",Vie="mazagon_4.png",Hie=617641,Wie="image/png",Zie="2026-07-09T19:09:33Z",Gie={version:Die,asset_id:Uie,project_id:Fie,url:Bie,r2_key:qie,original_filename:Vie,size:Hie,content_type:Wie,created_at:Zie},Kie=1,Jie="f1f7cfad-0d40-43b7-8c6f-318ce1a0f6c9",Yie="22885900-7753-4d74-9e2f-5cb1776d4f5d",Qie="/__l5e/assets-v1/f1f7cfad-0d40-43b7-8c6f-318ce1a0f6c9/mazagon_5.png",Xie="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/f1f7cfad-0d40-43b7-8c6f-318ce1a0f6c9/mazagon_5.png",eoe="mazagon_5.png",toe=1919197,noe="image/png",soe="2026-07-09T19:09:33Z",aoe={version:Kie,asset_id:Jie,project_id:Yie,url:Qie,r2_key:Xie,original_filename:eoe,size:toe,content_type:noe,created_at:soe},roe=1,ioe="a312b78f-6aaf-4ea4-b62f-23f6f724bb3a",ooe="22885900-7753-4d74-9e2f-5cb1776d4f5d",loe="/__l5e/assets-v1/a312b78f-6aaf-4ea4-b62f-23f6f724bb3a/mazagon_6.png",coe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/a312b78f-6aaf-4ea4-b62f-23f6f724bb3a/mazagon_6.png",doe="mazagon_6.png",uoe=1888407,foe="image/png",poe="2026-07-09T19:09:33Z",hoe={version:roe,asset_id:ioe,project_id:ooe,url:loe,r2_key:coe,original_filename:doe,size:uoe,content_type:foe,created_at:poe},moe=1,goe="6da21956-a4d0-4573-8c7d-8b34906f4aa7",boe="22885900-7753-4d74-9e2f-5cb1776d4f5d",xoe="/__l5e/assets-v1/6da21956-a4d0-4573-8c7d-8b34906f4aa7/mazagon_7.png",voe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6da21956-a4d0-4573-8c7d-8b34906f4aa7/mazagon_7.png",yoe="mazagon_7.png",_oe=1959720,woe="image/png",joe="2026-07-09T19:09:33Z",koe={version:moe,asset_id:goe,project_id:boe,url:xoe,r2_key:voe,original_filename:yoe,size:_oe,content_type:woe,created_at:joe},Noe=1,$oe="092f3881-a446-4891-8802-a41b0606cc79",Soe="22885900-7753-4d74-9e2f-5cb1776d4f5d",
850Eoe="/__l5e/assets-v1/092f3881-a446-4891-8802-a41b0606cc79/mazagon_8.png",Coe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/092f3881-a446-4891-8802-a41b0606cc79/mazagon_8.png",Toe="mazagon_8.png",Aoe=1381533,Roe="image/png",Poe="2026-07-09T19:09:33Z",Ooe={version:Noe,asset_id:$oe,project_id:Soe,url:Eoe,r2_key:Coe,original_filename:Toe,size:Aoe,content_type:Roe,created_at:Poe},zoe=1,Ioe="237cfc8f-766b-4b33-a88d-2fb9642a5abd",Loe="22885900-7753-4d74-9e2f-5cb1776d4f5d",Moe="/__l5e/assets-v1/237cfc8f-766b-4b33-a88d-2fb9642a5abd/mazagon_9.png",Doe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/237cfc8f-766b-4b33-a88d-2fb9642a5abd/mazagon_9.png",Uoe="mazagon_9.png",Foe=1441137,Boe="image/png",qoe="2026-07-09T19:09:33Z",Voe={version:zoe,asset_id:Ioe,project_id:Loe,url:Moe,r2_key:Doe,original_filename:Uoe,size:Foe,content_type:Boe,created_at:qoe},Hoe=1,Woe="ecb22342-6ee2-4aa1-a327-e3746b4771ab",Zoe="22885900-7753-4d74-9e2f-5cb1776d4f5d",Goe="/__l5e/assets-v1/ecb22342-6ee2-4aa1-a327-e3746b4771ab/mazagon_10.png",Koe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/ecb22342-6ee2-4aa1-a327-e3746b4771ab/mazagon_10.png",Joe="mazagon_10.png",Yoe=1689561,Qoe="image/png",Xoe="2026-07-09T19:09:33Z",ele={version:Hoe,asset_id:Woe,project_id:Zoe,url:Goe,r2_key:Koe,original_filename:Joe,size:Yoe,content_type:Qoe,created_at:Xoe},tle=1,nle="fea4e86f-b3ea-4f8f-b7a6-135e3f040646",sle="22885900-7753-4d74-9e2f-5cb1776d4f5d",ale="/__l5e/assets-v1/fea4e86f-b3ea-4f8f-b7a6-135e3f040646/mazagon_11.png",rle="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/fea4e86f-b3ea-4f8f-b7a6-135e3f040646/mazagon_11.png",ile="mazagon_11.png",ole=1896787,lle="image/png",cle="2026-07-09T19:12:18Z",dle={version:tle,asset_id:nle,project_id:sle,url:ale,r2_key:rle,original_filename:ile,size:ole,content_type:lle,created_at:cle},ule=1,fle="abbd279e-1d5e-4ace-8c76-53a713b46206",ple="22885900-7753-4d74-9e2f-5cb1776d4f5d",hle="/__l5e/assets-v1/abbd279e-1d5e-4ace-8c76-53a713b46206/mazagon_1.png",mle="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/abbd279e-1d5e-4ace-8c76-53a713b46206/mazagon_1.png",gle="mazagon_1.png",ble=2617951,xle="image/png",vle="2026-07-09T19:13:18Z",V2={version:ule,asset_id:fle,project_id:ple,url:hle,r2_key:mle,original_filename:gle,size:ble,content_type:xle,created_at:vle},yle=1,_le="3636c49b-d8ad-4f8c-af5f-863fbfd5a391",wle="22885900-7753-4d74-9e2f-5cb1776d4f5d",jle="/__l5e/assets-v1/3636c49b-d8ad-4f8c-af5f-863fbfd5a391/dosier-senior-living-mazagon.pdf",kle="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/3636c49b-d8ad-4f8c-af5f-863fbfd5a391/dosier-senior-living-mazagon.pdf",Nle="dosier-senior-living-mazagon.pdf",$le=21369795,Sle="application/pdf",Ele="2026-07-09T19:09:26Z",pg={version:yle,asset_id:_le,project_id:wle,url:jle,r2_key:kle,original_filename:Nle,size:$le,content_type:Sle,created_at:Ele},qe="#b1c854",Ei="#1e9eb1",Ht=[{src:V2.url,kicker:"01 · Vista aérea",title:"Un enclave único frente a la ría",text:"El conjunto se posa sobre las dunas de Mazagón, con cubiertas verdes que dialogan con el pinar y la playa a pocos metros."},{src:e2.url,kicker:"02 · Vista desde la playa",title:"Vivir frente al mar",text:"Módulos blancos posados sobre las dunas, con piscina exterior y pinares que enmarcan la vida cotidiana junto al Atlántico."},{src:Mie.url,kicker:"03 · Pasarela al mar",title:"Umbral de madera",text:"Pérgola y pasarela de madera que conducen desde las unidades hasta la playa, integradas en la vegetación autóctona."},{src:hoe.url,kicker:"04 · Cubiertas verdes",title:"Un tapiz vegetal",text:"Cubiertas ajardinadas que fusionan el conjunto con el pinar, con pinos existentes emergiendo entre los volúmenes."},{src:Gie.url,kicker:"05 · Patios y piscina",title:"Luz, agua y arena",text:"Volúmenes blancos que ordenan patios íntimos con piscina, terrazas de madera y vegetación dunar."},{src:aoe.url,kicker:"06 · Unidades convivenciales",title:"Hogares que se encuentran",text:"Módulos de dos alturas con terrazas y escaleras exteriores, agrupados en pequeñas comunidades tipo hogar."},{src:ele.url,kicker:"07 · Salón privado",title:"Interior que abraza el patio",text:"Estancia cálida con madera vista, apertura total al patio interior y árbol que introduce la naturaleza en el hogar."},{src:dle.url,kicker:"08 · Salón-comedor familiar",title:"Encuentros intergeneracionales",text:"Salón-comedor abierto al patio con orquídeas y vegetación, pensado para la vida en familia y la visita de nietos."},{src:koe.url,kicker:"09 · Terrazas cubiertas",title:"Vida entre dentro y fuera",text:"Porches de madera que amplían el salón hacia el exterior, creando espacios intermedios para el encuentro cotidiano."},{src:Ooe.url,kicker:"10 · Cocina · Comedor",title:"Diseño universal",text:"Cocinas abiertas accesibles pensadas para todas las edades y capacidades, con isla central y conexión con las zonas comunes."}
850,{src:Voe.url,kicker:"11 · Zonas comunes",title:"Comunidad y actividad",text:"Áreas comunes luminosas para talleres, juegos y encuentros intergeneracionales, con carpintería de madera y luz natural."}],Cle=[{icon:go,title:"Modelo ACP",text:"Atención Centrada en la Persona: autonomía, dignidad y proyecto de vida propio en cada decisión de diseño.",color:qe},{icon:Mr,title:"Unidades convivenciales",text:"Pequeñas agrupaciones tipo hogar que fomentan la comunidad, la vida intergeneracional y la relación con el entorno.",color:Ei},{icon:bo,title:"Sistema MODUSS",text:"Base modular patentada e industrializada: dormitorio, multiuso, zonas comunes y equipamientos que crecen como dendritas.",color:qe},{icon:xo,title:"Passivhaus & biofilia",text:"Envolvente de altísima eficiencia, cubiertas verdes y patios arbolados junto a las dunas y el pinar de Mazagón.",color:Ei}],Tle=()=>{const[e,t]=g.useState(null);return g.useEffect(()=>{if(e===null)return;const n=s=>{s.key==="Escape"&&t(null),s.key==="ArrowRight"&&t(r=>r===null?0:(r+1)%Ht.length),s.key==="ArrowLeft"&&t(r=>r===null?0:(r-1+Ht.length)%Ht.length)};return window.addEventListener("keydown",n),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",n),document.body.style.overflow=""}},[e]),a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Senior Living Club Mazagón — Modulya",description:"Anteproyecto de residencia modular para la tercera edad en Av. del Vigía 79, Mazagón (Huelva). Sistema MODUSS, modelo ACP, patios biofílicos y cubiertas verdes frente al mar.",path:"/work/senior-living-mazagon"}),a.jsx(de,{}),a.jsxs("section",{className:"relative h-screen w-full overflow-hidden",children:[a.jsx("img",{src:V2.url,alt:"Vista aérea Senior Living Club Mazagón",className:"absolute inset-0 w-full h-full object-cover scale-105 animate-[kenburns_20s_ease-in-out_infinite_alternate]"}),a.jsx("style",{children:"@keyframes kenburns { from { transform: scale(1.05) translate(0,0); } to { transform: scale(1.15) translate(-2%, -1%); } }"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/20 to-black/80"}),a.jsxs(F,{to:"/work",className:"absolute top-28 left-6 md:left-10 z-30 inline-flex items-center gap-2 text-white/90 hover:text-white text-sm tracking-widest uppercase",children:[a.jsx(ae,{className:"w-4 h-4"})," Volver a proyectos"]}),a.jsxs("div",{className:"relative z-10 h-full flex flex-col justify-end px-6 md:px-16 pb-20 max-w-6xl",children:[a.jsx("p",{className:"text-xs md:text-sm tracking-[0.3em] uppercase mb-6",style:{color:qe},children:"Senior Living Club · Mazagón · Huelva"}),a.jsxs("h1",{className:"text-white text-5xl md:text-7xl lg:text-8xl font-light leading-[0.95] tracking-tight",children:["Envejecer",a.jsx("br",{}),"frente al mar,",a.jsx("br",{}),a.jsx("span",{style:{color:qe},children:"entre pinos y dunas."})]}),a.jsx("p",{className:"text-white/80 text-lg md:text-xl max-w-2xl mt-8 leading-relaxed",children:"Anteproyecto de residencia modular para la tercera edad en Avenida del Vigía 79 — Mazagón (Huelva)."}),a.jsx("div",{className:"flex flex-wrap gap-4 mt-10",children:a.jsxs("a",{href:pg.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-8 py-4 rounded-full font-semibold text-black transition-transform hover:scale-105",style:{backgroundColor:qe},children:[a.jsx(Lt,{className:"w-5 h-5"}),"Descargar dosier PDF"]})})]}),a.jsx("div",{className:"absolute bottom-6 left-1/2 -translate-x-1/2 z-10 text-white/60 text-xs tracking-[0.3em] animate-bounce",children:"SCROLL"})]}),a.jsx("section",{className:"border-y border-border bg-muted/30 overflow-hidden py-6",children:a.jsx("div",{className:"flex whitespace-nowrap gap-16 animate-marquee text-sm tracking-[0.25em] uppercase text-muted-foreground",children:Array.from({length:2}).map((n,s)=>a.jsxs("div",{className:"flex gap-16",children:[a.jsx("span",{children:"Avenida del Vigía 79"}),a.jsx("span",{style:{color:qe},children:"◆"}),a.jsx("span",{children:"Mazagón · Huelva"}),a.jsx("span",{style:{color:qe},children:"◆"}),a.jsx("span",{children:"Sistema MODUSS"}),a.jsx("span",{style:{color:qe},children:"◆"}),a.jsx("span",{children:"Modelo ACP"}),a.jsx("span",{style:{color:qe},children:"◆"}),a.jsx("span",{children:"Passivhaus"}),a.jsx("span",{style:{color:qe},children:"◆"}),a.jsx("span",{children:"Cubiertas verdes"}),a.jsx("span",{style:{color:qe},children:"◆"})]},s))})}),a.jsx("section",{className:"py-24 md:py-36 px-6",children:a.jsx("div",{className:"max-w-5xl mx-auto",children:a.jsxs(A,{children:[a.jsx("p",{className:"text-sm tracking-[0.3em] uppercase mb-6",style:{color:Ei},children:"Manifiesto"}),a.jsxs("p",{className:"text-2xl md:text-4xl font-light leading-relaxed text-architectural",children:["Un ",a.jsx("span",{className:"font-semibold",style:{color:qe},children:"Senior Living Club frente al Atlántico"})," ","que se disuelve entre los pinos y las dunas: volúmenes blancos, patios biofílicos y cubiertas verdes para que la vida cotidiana suceda"," ",a.jsx("em",{className:"not-italic border-b-2",style:{borderColor:qe},children:"en contacto con el mar"}),"."]})]})})}),a.jsx("section",{className:"py-20 bg-muted/20 px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsx(A,{children:a.jsxs("div",{className:"mb-16",children:[a.jsx("p",{className:"text-sm tracking-[0.3em] uppercase mb-3",style:{color:qe},children:"Pilares"}),a.jsx("h2",{className:"text-4xl md:text-6xl font-light text-architectural",children:"Cuatro ideas fundacionales"})]})}),a.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:Cle.map((n,s)=>{const r=n.icon;return a.jsx(A,{delay:s*80,children:a.jsxs("div",{className:"group relative p-8 h-full rounded-2xl border border-border bg-background hover:-translate-y-1 transition-all duration-500 hover:shadow-elegant overflow-hidden",children:[a.jsx("div",{className:"absolute inset-x-0 bottom-0 h-1 transition-all duration-500 group-hover:h-2",style:{backgroundColor:n.color}}
850),a.jsx("div",{className:"w-14 h-14 rounded-xl flex items-center justify-center mb-6",style:{backgroundColor:`${n.color}1a`},children:a.jsx(r,{className:"w-7 h-7",style:{color:n.color}})}),a.jsx("h3",{className:"text-xl font-semibold text-architectural mb-3",children:n.title}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:n.text})]})},n.title)})})]})}),a.jsx("section",{className:"py-24 md:py-32 px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsx(A,{children:a.jsxs("div",{className:"mb-16",children:[a.jsx("p",{className:"text-sm tracking-[0.3em] uppercase mb-3",style:{color:Ei},children:"Escenas"}),a.jsx("h2",{className:"text-4xl md:text-6xl font-light text-architectural max-w-2xl",children:"Recorrido por el conjunto"})]})}),a.jsx("div",{className:"space-y-24 md:space-y-40",children:Ht.map((n,s)=>a.jsx(A,{delay:s*60,children:a.jsxs("div",{className:`grid md:grid-cols-12 gap-8 md:gap-12 items-center ${s%2===1?"md:[&>*:first-child]:order-2":""}`,children:[a.jsxs("button",{onClick:()=>t(s),className:"md:col-span-8 group relative block overflow-hidden rounded-2xl aspect-[16/10] w-full",children:[a.jsx("img",{src:n.src,alt:n.title,loading:"lazy",decoding:"async",className:"w-full h-full object-cover transition-transform duration-[1200ms] group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/40 via-transparent to-transparent opacity-0 group-hover:opacity-100 transition-opacity"}),a.jsx("div",{className:"absolute bottom-4 right-4 text-xs tracking-widest uppercase px-3 py-1.5 rounded-full text-black opacity-0 group-hover:opacity-100 transition",style:{backgroundColor:qe},children:"Ampliar"})]}),a.jsxs("div",{className:"md:col-span-4",children:[a.jsx("p",{className:"text-xs tracking-[0.3em] uppercase mb-4",style:{color:qe},children:n.kicker}),a.jsx("h3",{className:"text-3xl md:text-4xl font-light text-architectural mb-4",children:n.title}),a.jsx("p",{className:"text-muted-foreground leading-relaxed text-lg",children:n.text})]})]})},n.title))})]})}),a.jsx("section",{className:"py-24 px-6",children:a.jsxs("div",{className:"max-w-5xl mx-auto border border-border rounded-2xl p-10 md:p-16 flex flex-col md:flex-row items-start md:items-center gap-8 justify-between bg-muted/20",children:[a.jsxs("div",{children:[a.jsx("p",{className:"text-sm tracking-[0.3em] uppercase mb-3",style:{color:Ei},children:"Documentación"}),a.jsx("h3",{className:"text-3xl md:text-4xl font-light text-architectural mb-3",children:"Dosier del anteproyecto"}),a.jsx("p",{className:"text-muted-foreground max-w-xl",children:"Senior Living Club Mazagón — anteproyecto de residencia modular para la tercera edad. Incluye definición arquitectónica, sistema MODUSS, estudio de inversión inmobiliaria y estudio económico-financiero."})]}),a.jsxs("a",{href:pg.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-8 py-4 rounded-full font-semibold text-black shrink-0 transition-transform hover:scale-105",style:{backgroundColor:qe},children:[a.jsx(Lt,{className:"w-5 h-5"})," Descargar PDF"]})]})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center p-6",onClick:()=>t(null),children:[a.jsx("button",{className:"absolute top-6 right-6 text-white/80 hover:text-white",onClick:()=>t(null),"aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{className:"absolute left-4 md:left-8 text-white/80 hover:text-white",onClick:n=>{n.stopPropagation(),t(s=>s===null?0:(s-1+Ht.length)%Ht.length)},"aria-label":"Anterior",children:a.jsx(ae,{className:"w-10 h-10"})}),a.jsx("img",{src:Ht[e].src,alt:Ht[e].title,className:"max-h-[85vh] max-w-[85vw] object-contain",onClick:n=>n.stopPropagation()}),a.jsx("button",{className:"absolute right-4 md:right-8 text-white/80 hover:text-white",onClick:n=>{n.stopPropagation(),t(s=>s===null?0:(s+1)%Ht.length)},"aria-label":"Siguiente",children:a.jsx(it,{className:"w-10 h-10"})}),a.jsxs("div",{className:"absolute bottom-8 left-1/2 -translate-x-1/2 text-white/80 text-sm tracking-widest uppercase",children:[Ht[e].kicker," — ",Ht[e].title]})]}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},Ale=1,Rle="b506b3b9-f91b-4dcc-8913-e1df3c63d3d2",Ple="22885900-7753-4d74-9e2f-5cb1776d4f5d",Ole="/__l5e/assets-v1/b506b3b9-f91b-4dcc-8913-e1df3c63d3d2/rota_2.webp",zle="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/b506b3b9-f91b-4dcc-8913-e1df3c63d3d2/rota_2.webp",Ile="rota_2.webp",Lle=67084,Mle="image/webp",Dle="2026-07-07T05:31:27Z",Ule={version:Ale,asset_id:Rle,project_id:Ple,url:Ole,r2_key:zle,original_filename:Ile,size:Lle,content_type:Mle,created_at:Dle},Fle=1,Ble="d279635c-cbcb-45cd-b6b8-c086c8c11f1a",qle="22885900-7753-4d74-9e2f-5cb1776d4f5d",Vle="/__l5e/assets-v1/d279635c-cbcb-45cd-b6b8-c086c8c11f1a/rota_3.webp",Hle="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/d279635c-cbcb-45cd-b6b8-c086c8c11f1a/rota_3.webp",Wle="rota_3.webp",Zle=152702,Gle="image/webp",Kle="2026-07-07T05:28:52Z",Jle={ver
850sion:Fle,asset_id:Ble,project_id:qle,url:Vle,r2_key:Hle,original_filename:Wle,size:Zle,content_type:Gle,created_at:Kle},Yle=1,Qle="5b9fa6ae-02c7-48f4-ac10-e36eaf3677ba",Xle="22885900-7753-4d74-9e2f-5cb1776d4f5d",ece="/__l5e/assets-v1/5b9fa6ae-02c7-48f4-ac10-e36eaf3677ba/rota_4.webp",tce="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/5b9fa6ae-02c7-48f4-ac10-e36eaf3677ba/rota_4.webp",nce="rota_4.webp",sce=143070,ace="image/webp",rce="2026-07-07T05:28:57Z",ice={version:Yle,asset_id:Qle,project_id:Xle,url:ece,r2_key:tce,original_filename:nce,size:sce,content_type:ace,created_at:rce},oce=1,lce="6eae4819-a528-4386-a0ea-705466aa2578",cce="22885900-7753-4d74-9e2f-5cb1776d4f5d",dce="/__l5e/assets-v1/6eae4819-a528-4386-a0ea-705466aa2578/rota_5.webp",uce="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6eae4819-a528-4386-a0ea-705466aa2578/rota_5.webp",fce="rota_5.webp",pce=105716,hce="image/webp",mce="2026-07-07T05:29:03Z",gce={version:oce,asset_id:lce,project_id:cce,url:dce,r2_key:uce,original_filename:fce,size:pce,content_type:hce,created_at:mce},bce=1,xce="bede7fce-e6de-463e-94e8-2a62f0748729",vce="22885900-7753-4d74-9e2f-5cb1776d4f5d",yce="/__l5e/assets-v1/bede7fce-e6de-463e-94e8-2a62f0748729/rota_6.webp",_ce="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/bede7fce-e6de-463e-94e8-2a62f0748729/rota_6.webp",wce="rota_6.webp",jce=176822,kce="image/webp",Nce="2026-07-07T05:28:47Z",$ce={version:bce,asset_id:xce,project_id:vce,url:yce,r2_key:_ce,original_filename:wce,size:jce,content_type:kce,created_at:Nce},Sce=1,Ece="9bbbd1ae-68b1-4eab-8573-13ffe8e3fc98",Cce="22885900-7753-4d74-9e2f-5cb1776d4f5d",Tce="/__l5e/assets-v1/9bbbd1ae-68b1-4eab-8573-13ffe8e3fc98/rota_8.webp",Ace="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/9bbbd1ae-68b1-4eab-8573-13ffe8e3fc98/rota_8.webp",Rce="rota_8.webp",Pce=31646,Oce="image/webp",zce="2026-07-07T05:32:01Z",Ice={version:Sce,asset_id:Ece,project_id:Cce,url:Tce,r2_key:Ace,original_filename:Rce,size:Pce,content_type:Oce,created_at:zce},Lce=1,Mce="a50174ae-2593-40d5-aad4-95285ff0fbdb",Dce="22885900-7753-4d74-9e2f-5cb1776d4f5d",Uce="/__l5e/assets-v1/a50174ae-2593-40d5-aad4-95285ff0fbdb/rota_9.webp",Fce="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/a50174ae-2593-40d5-aad4-95285ff0fbdb/rota_9.webp",Bce="rota_9.webp",qce=58664,Vce="image/webp",Hce="2026-07-07T05:31:13Z",Wce={version:Lce,asset_id:Mce,project_id:Dce,url:Uce,r2_key:Fce,original_filename:Bce,size:qce,content_type:Vce,created_at:Hce},Zce=1,Gce="a88970af-4122-428c-ab56-25ecc873df78",Kce="22885900-7753-4d74-9e2f-5cb1776d4f5d",Jce="/__l5e/assets-v1/a88970af-4122-428c-ab56-25ecc873df78/rota_11.webp",Yce="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/a88970af-4122-428c-ab56-25ecc873df78/rota_11.webp",Qce="rota_11.webp",Xce=26302,ede="image/webp",tde="2026-07-07T05:32:31Z",nde={version:Zce,asset_id:Gce,project_id:Kce,url:Jce,r2_key:Yce,original_filename:Qce,size:Xce,content_type:ede,created_at:tde},sde=1,ade="f071a711-cb05-4579-92ec-cc162d35e526",rde="22885900-7753-4d74-9e2f-5cb1776d4f5d",ide="/__l5e/assets-v1/f071a711-cb05-4579-92ec-cc162d35e526/rota_7-2.webp",ode="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/f071a711-cb05-4579-92ec-cc162d35e526/rota_7-2.webp",lde="rota_7-2.webp",cde=60900,dde="image/webp",ude="2026-07-07T05:31:32Z",fde={version:sde,asset_id:ade,project_id:rde,url:ide,r2_key:ode,original_filename:lde,size:cde,content_type:dde,created_at:ude},pde=1,hde="38691311-ae54-4d5e-a40e-c6316207325b",mde="22885900-7753-4d74-9e2f-5cb1776d4f5d",gde="/__l5e/assets-v1/38691311-ae54-4d5e-a40e-c6316207325b/rota_8-2.webp",bde="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/38691311-ae54-4d5e-a40e-c6316207325b/rota_8-2.webp",xde="rota_8-2.webp",vde=31646,yde="image/webp",_de="2026-07-07T05:31:58Z",wde={version:pde,asset_id:hde,project_id:mde,url:gde,r2_key:bde,original_filename:xde,size:vde,content_type:yde,created_at:_de},jde=1,kde="410007e3-7c9c-4680-8ab4-98ce82985a65",Nde="22885900-7753-4d74-9e2f-5cb1776d4f5d",$de="/__l5e/assets-v1/410007e3-7c9c-4680-8ab4-98ce82985a65/rota_9-2.webp",Sde="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/410007e3-7c9c-4680-8ab4-98ce82985a65/rota_9-2.webp",Ede="rota_9-2.webp",Cde=58664,Tde="image/webp",Ade="2026-07-07T05:31:11Z",Rde={version:jde,asset_id:kde,project_id:Nde,url:$de,r2_key:Sde,original_filename:Ede,size:Cde,content_type:Tde,created_at:Ade},Pde=1,Ode="2f0b8e04-fb9d-4ca1-91b1-e98eb2bf5e06",zde="22885900-7753-4d74-9e2f-5cb1776d4f5d",Ide="/__l5e/assets-v1/2f0b8e04-fb9d-4ca1-91b1-e98eb2bf5e06/rota_a.webp",Lde="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/2f0b8e04-fb9d-4ca1-91b1-e98eb2bf5e06/rota_a.webp",Mde="rota_a.webp",Dde=199312,Ude="image/webp",Fde="2026-07-07T05:29:00Z",H2={ver
850sion:Pde,asset_id:Ode,project_id:zde,url:Ide,r2_key:Lde,original_filename:Mde,size:Dde,content_type:Ude,created_at:Fde},Bde=1,qde="12951941-de46-4198-b5b2-68c4b9d95f7e",Vde="22885900-7753-4d74-9e2f-5cb1776d4f5d",Hde="/__l5e/assets-v1/12951941-de46-4198-b5b2-68c4b9d95f7e/rota_b.webp",Wde="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/12951941-de46-4198-b5b2-68c4b9d95f7e/rota_b.webp",Zde="rota_b.webp",Gde=226102,Kde="image/webp",Jde="2026-07-07T05:28:39Z",Yde={version:Bde,asset_id:qde,project_id:Vde,url:Hde,r2_key:Wde,original_filename:Zde,size:Gde,content_type:Kde,created_at:Jde},Qde=1,Xde="e962d7ca-f8a8-4407-936c-dc8bde5ee9ae",eue="22885900-7753-4d74-9e2f-5cb1776d4f5d",tue="/__l5e/assets-v1/e962d7ca-f8a8-4407-936c-dc8bde5ee9ae/rota_c.webp",nue="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e962d7ca-f8a8-4407-936c-dc8bde5ee9ae/rota_c.webp",sue="rota_c.webp",aue=192578,rue="image/webp",iue="2026-07-07T05:29:32Z",oue={version:Qde,asset_id:Xde,project_id:eue,url:tue,r2_key:nue,original_filename:sue,size:aue,content_type:rue,created_at:iue},lue=1,cue="e852040d-198e-43ec-8375-ff85a17217f3",due="22885900-7753-4d74-9e2f-5cb1776d4f5d",uue="/__l5e/assets-v1/e852040d-198e-43ec-8375-ff85a17217f3/rota_d.webp",fue="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e852040d-198e-43ec-8375-ff85a17217f3/rota_d.webp",pue="rota_d.webp",hue=117230,mue="image/webp",gue="2026-07-07T05:31:29Z",bue={version:lue,asset_id:cue,project_id:due,url:uue,r2_key:fue,original_filename:pue,size:hue,content_type:mue,created_at:gue},xue=1,vue="d91927f6-c423-49bb-bb9c-b2c4c337c653",yue="22885900-7753-4d74-9e2f-5cb1776d4f5d",_ue="/__l5e/assets-v1/d91927f6-c423-49bb-bb9c-b2c4c337c653/rota_e.webp",wue="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/d91927f6-c423-49bb-bb9c-b2c4c337c653/rota_e.webp",jue="rota_e.webp",kue=200924,Nue="image/webp",$ue="2026-07-07T05:29:39Z",Sue={version:xue,asset_id:vue,project_id:yue,url:_ue,r2_key:wue,original_filename:jue,size:kue,content_type:Nue,created_at:$ue},Eue=1,Cue="db88cf51-a379-48dd-b355-468e088ca136",Tue="22885900-7753-4d74-9e2f-5cb1776d4f5d",Aue="/__l5e/assets-v1/db88cf51-a379-48dd-b355-468e088ca136/rota_f.webp",Rue="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/db88cf51-a379-48dd-b355-468e088ca136/rota_f.webp",Pue="rota_f.webp",Oue=163722,zue="image/webp",Iue="2026-07-07T05:30:03Z",Lue={version:Eue,asset_id:Cue,project_id:Tue,url:Aue,r2_key:Rue,original_filename:Pue,size:Oue,content_type:zue,created_at:Iue},Mue=1,Due="8609d8e8-a9bc-4594-b9a3-55cac0dadb6c",Uue="22885900-7753-4d74-9e2f-5cb1776d4f5d",Fue="/__l5e/assets-v1/8609d8e8-a9bc-4594-b9a3-55cac0dadb6c/rota_g.webp",Bue="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/8609d8e8-a9bc-4594-b9a3-55cac0dadb6c/rota_g.webp",que="rota_g.webp",Vue=324296,Hue="image/webp",Wue="2026-07-07T05:28:23Z",Zue={version:Mue,asset_id:Due,project_id:Uue,url:Fue,r2_key:Bue,original_filename:que,size:Vue,content_type:Hue,created_at:Wue},Gue=1,Kue="368fcfb5-defb-4cb1-b45f-1394f8041ae1",Jue="22885900-7753-4d74-9e2f-5cb1776d4f5d",Yue="/__l5e/assets-v1/368fcfb5-defb-4cb1-b45f-1394f8041ae1/rota_h.webp",Que="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/368fcfb5-defb-4cb1-b45f-1394f8041ae1/rota_h.webp",Xue="rota_h.webp",efe=282670,tfe="image/webp",nfe="2026-07-07T05:28:26Z",sfe={version:Gue,asset_id:Kue,project_id:Jue,url:Yue,r2_key:Que,original_filename:Xue,size:efe,content_type:tfe,created_at:nfe},afe=1,rfe="e948a888-2144-400e-a1c1-b6f8491b4a94",ife="22885900-7753-4d74-9e2f-5cb1776d4f5d",ofe="/__l5e/assets-v1/e948a888-2144-400e-a1c1-b6f8491b4a94/rota_i.webp",lfe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e948a888-2144-400e-a1c1-b6f8491b4a94/rota_i.webp",cfe="rota_i.webp",dfe=303816,ufe="image/webp",ffe="2026-07-07T05:28:12Z",pfe={version:afe,asset_id:rfe,project_id:ife,url:ofe,r2_key:lfe,original_filename:cfe,size:dfe,content_type:ufe,created_at:ffe},hfe=1,mfe="46150c5d-7c73-4eb9-af04-4d3fec9dfcc5",gfe="22885900-7753-4d74-9e2f-5cb1776d4f5d",bfe="/__l5e/assets-v1/46150c5d-7c73-4eb9-af04-4d3fec9dfcc5/rota_j.webp",xfe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/46150c5d-7c73-4eb9-af04-4d3fec9dfcc5/rota_j.webp",vfe="rota_j.webp",yfe=69680,_fe="image/webp",wfe="2026-07-07T05:32:36Z",jfe={version:hfe,asset_id:mfe,project_id:gfe,url:bfe,r2_key:xfe,original_filename:vfe,size:yfe,content_type:_fe,created_at:wfe},kfe=1,Nfe="e7cd4374-5436-4bdf-844c-3f110319771e",$fe="22885900-7753-4d74-9e2f-5cb1776d4f5d",Sfe="/__l5e/assets-v1/e7cd4374-5436-4bdf-844c-3f110319771e/rota_k.webp",Efe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e7cd4374-5436-4bdf-844c-3f110319771e/rota_k.webp",Cfe="rota_k.webp",Tfe=68594,Afe="image/webp",Rfe="2026-07-07T05:32:54Z",Pfe={version:kfe,asset_id:Nfe,project_id:$fe,url:Sfe,r2_key:Efe,original_filename:Cfe,size:Tfe,content_type:Afe,created_at:Rfe},Ofe=1,zfe="b2ebab7f-908e-4f66-9c30-0dc0c0dd0134",Ife="22885900-7753-4d74-9e2f-5cb1776d4f5d",Lfe="/__l5e/assets-v1/b2ebab7f-908e-4f66-9c30-0dc0c0dd0134/rota_l.webp",Mfe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/b2ebab7f-908e-4f66-9c30-0dc0c0dd0134/rota_l.webp",Dfe="rota_l.webp",Ufe=212926,Ffe="image/webp",Bfe="2026-07-07T05:28:50Z",qfe={version:Ofe,asset_id:zfe,project_id:Ife,url:Lfe,r2_key:Mfe,original_filename:Dfe,size:Ufe,content_type:Ffe,created_at:Bfe},Vfe=1,Hfe="4950ba2e-3830-40ca-aff5-ca1fa9885bbf",Wfe="22885900-7753-4d74-9e2f-5cb1776d4f5d",Zfe="/__l5e/assets-v1/4950ba2e-3830-40ca-aff5-ca1fa9885bbf/rota_m.webp",Gfe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/4950ba2e-3830-40ca-aff5-ca1fa9885bbf/rota_m.webp",Kfe="rota_m.webp",Jfe=327238,Yfe="image/webp",Qfe="2026-07-07T05:28:28Z",Xfe={version:Vfe,asset_id:Hfe,project_id:Wfe,url:Zfe,r2_key:Gfe,original_filename:Kfe,size:Jfe,content_type:Yfe,created_at:Qfe},W2=[{src:Jle.url,caption:"Estructura metálica y cerramientos en obra",span:"md:col-span-2"},{src:ice.url,caption:"Implantación en parcela · montaje de módulos",span:"md:col-span-2"},{src:gce.url,caption:"Interior diáfano · estructura vista",span:""},{src:$ce.url,caption:"Instalaciones y falso techo registrable",span:""},{src:fde.url,caption:"Pasillo interior en fase de acabados",span:"md:col-span-2"},{src:wde.url,caption:"Sala técnica · cuadros y climatización",span:""},{src:nde.url,caption:"Despacho terminado · pavimento continuo",span:""},{src:Rde.url,caption:"Open space terminado · fase final de obra",span:"md:col-span-2"},{src:Ule.url,caption:"Open space con puestos operativos",span:""},{src:t2.url,caption:"Oficinas finalizadas · vista general",span:"md:col-span-2"},{src:Ice.url,caption:"Sala técnica terminada",span:""},{src:Wce.url,caption:"Zona de trabajo terminada",span:"md:col-span-2"}],wf=[{src:H2.url,caption:"Render conceptual · conjunto de oficinas",span:"md:col-span-2 md:row-span-2"}
850,{src:Yde.url,caption:"Render exterior · acceso porticado",span:"md:col-span-2"},{src:oue.url,caption:"Render de fachada y recorridos perimetrales",span:""},{src:bue.url,caption:"Render frontal · modulación y paisaje",span:""},{src:Sue.url,caption:"Volumetría · patio interior ajardinado",span:"md:col-span-2"},{src:Lue.url,caption:"Perspectiva peatonal · porche acristalado",span:"md:col-span-2"},{src:Zue.url,caption:"Cubiertas verdes · lectura desde el acceso",span:""},{src:sfe.url,caption:"Vista cenital · organización de cubiertas ajardinadas",span:"md:col-span-2"},{src:pfe.url,caption:"Axonometría · patios y cubiertas vegetales",span:""},{src:jfe.url,caption:"Alzado frontal · modulación y transparencias",span:"md:col-span-2 md:row-span-1"},{src:Pfe.url,caption:"Alzado de trailers · letrine y módulos numerados",span:"md:col-span-2"},{src:qfe.url,caption:"Volumetría de trailers · cubierta metálica",span:""},{src:Xfe.url,caption:"Trailers · perspectiva de conjunto",span:""}],Ks=[...wf,...W2],epe=()=>{const[e,t]=g.useState(null),n=g.useCallback(()=>t(null),[]),s=g.useCallback(()=>t(i=>i===null?null:(i-1+Ks.length)%Ks.length),[]),r=g.useCallback(()=>t(i=>i===null?null:(i+1)%Ks.length),[]);return g.useEffect(()=>{if(e===null)return;const i=o=>{o.key==="Escape"&&n(),o.key==="ArrowLeft"&&s(),o.key==="ArrowRight"&&r()};return window.addEventListener("keydown",i),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",i),document.body.style.overflow=""}},[e,n,s,r]),a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Oficinas Rota — Oficinas modulares llave en mano | Modulya",description:"Oficinas Rota: proyecto de oficinas modulares industrializadas de Modulya, del diseño conceptual a la entrega llave en mano.",path:"/work/oficinas-rota"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors mb-10",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]}),a.jsxs("div",{className:"grid md:grid-cols-3 gap-10 items-end",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("p",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"OFICINAS ROTA · MODUSS"}),a.jsx("h1",{className:"text-5xl md:text-7xl font-light text-architectural leading-[1.05]",children:"Edificio de oficinas · Rota"})]}),a.jsxs("div",{className:"space-y-2 md:text-right",children:[a.jsx("p",{className:"text-architectural font-medium",children:"Rota, Cádiz"}),a.jsx("p",{className:"text-muted-foreground",children:"Método Constructivo: MODUSS"}),a.jsx("p",{className:"text-muted-foreground",children:"Tipología: Oficinas industrializadas"}),a.jsx("p",{className:"text-muted-foreground",children:"Proceso: Fabricación + montaje en obra"})]})]})]})})}),a.jsx("section",{className:"pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"relative w-full overflow-hidden",children:[a.jsx("img",{src:H2.url,alt:"Render del conjunto de Oficinas Rota",className:"w-full h-[70vh] object-cover"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/40 via-transparent to-transparent pointer-events-none"}),a.jsx("button",{onClick:()=>t(0),className:"absolute bottom-6 left-6 bg-background/90 backdrop-blur-sm px-4 py-2 hover:bg-background transition-colors",children:a.jsx("span",{className:"text-minimal text-foreground",children:"VER GALERÍA COMPLETA"})})]})})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-4xl mx-auto space-y-8 text-muted-foreground leading-relaxed",children:[a.jsx("h2",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Oficinas industrializadas llave en mano"}),a.jsx("p",{children:"Proyecto de edificio de oficinas ejecutado con el sistema MODUSS de Modulya. Desde la estructura metálica en parcela hasta los espacios de trabajo finalizados, el proceso combina fabricación industrializada, montaje ágil en obra y acabados interiores de alta calidad para un entorno laboral confortable y eficiente."}),a.jsx("p",{children:"La galería reúne las distintas capas del proyecto: renders de implantación, fases de ensamblaje y acabados interiores, mostrando cómo la solución construida responde a la visión inicial del conjunto."})]})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"GALERÍA"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Del montaje al espacio final"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Del render inicial a la entrega final: implantación, montaje, instalaciones, despachos y espacios de trabajo terminados."})]}),a.jsxs("div",{className:"mb-6",children:[a.jsx("p",{className:"text-minimal mb-2",style:{color:"#b1c854"},children:"01 · DISEÑO"}),a.jsx("h4",{className:"text-2xl md:text-3xl font-light text-architectural",children:"Renders y volumetrías del proyecto"})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4 mb-20",children:wf.map((i,o)=>a.jsxs("button",{onClick:()=>t(o),className:`group relative overflow-hidden bg-muted ${i.span}`,style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:i.caption})})]},`d-${o}`))}),a.jsxs("div",{className:"mb-6",children:[a.jsx("p",{className:"text-minimal mb-2",style:{color:"#b1c854"},children:"02 · OBRA E INTERIORES"}),a.jsx("h4",{className:"text-2xl md:text-3xl font-light text-architectural",children:"Ejecución y espacios terminados"})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:W2.map((i,o)=>a.jsxs("button",{onClick:()=>t(wf.length+o),className:`group relative overflow-hidden bg-muted ${i.span}`,style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:i.caption})})]},`i-${o}`))})]})})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center animate-in fade-in duration-300",children:[a.jsx("button",{onClick:n,className:"absolute top-6 right-6 text-white/80 hover:text-white transition-colors z-10","aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{onClick:s,className:"absolute left-4 md:left-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Anterior",children:a.jsx(zt,{className:"w-10 h-10"})}),a.jsx("button",{onClick:r,className:"absolute right-4 md:right-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Siguiente",children:a.jsx(It,{className:"w-10 h-10"})}),a.jsxs("div",{className:"max-w-7xl w-full h-full flex flex-col items-center justify-center px-4 md:px-20 py-16",children:[a.jsx("img",{src:Ks[e].src,alt:Ks[e].caption,className:"max-h-[80vh] max-w-full object-contain animate-in fade-in zoom-in-95 duration-500"},e),a.jsxs("div",{className:"mt-6 flex items-center justify-between w-full max-w-3xl text-white/80",children:[a.jsx("p",{className:"text-minimal",children:Ks[e].caption}),a.jsxs("p",{className:"text-minimal text-white/50",children:[String(e+1).padStart(2,"0")," / ",String(Ks.length).padStart(2,"0")]})]})]})]}),a.jsx("style",{children:`
851        @keyframes fadeInUp {
852          from { opacity: 0; transform: translateY(24px); }
853          to { opacity: 1; transform: translateY(0); }
854        }
855      `}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},tpe=1,npe="6be4c030-d6bc-4416-b7fb-cb349c1dd28a",spe="22885900-7753-4d74-9e2f-5cb1776d4f5d",ape="/__l5e/assets-v1/6be4c030-d6bc-4416-b7fb-cb349c1dd28a/alojamientos_1.webp",rpe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6be4c030-d6bc-4416-b7fb-cb349c1dd28a/alojamientos_1.webp",ipe="alojamientos_1.webp",ope=165486,lpe="image/webp",cpe="2026-07-07T05:28:02Z",dpe={version:tpe,asset_id:npe,project_id:spe,url:ape,r2_key:rpe,original_filename:ipe,size:ope,content_type:lpe,created_at:cpe},upe=1,fpe="bef2425b-fac7-4395-8224-0123cc76f912",ppe="22885900-7753-4d74-9e2f-5cb1776d4f5d",hpe="/__l5e/assets-v1/bef2425b-fac7-4395-8224-0123cc76f912/alojamientos_2.webp",mpe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/bef2425b-fac7-4395-8224-0123cc76f912/alojamientos_2.webp",gpe="alojamientos_2.webp",bpe=87258,xpe="image/webp",vpe="2026-07-07T05:30:16Z",ype={version:upe,asset_id:fpe,project_id:ppe,url:hpe,r2_key:mpe,original_filename:gpe,size:bpe,content_type:xpe,created_at:vpe},_pe=1,wpe="63233367-718f-4c33-9ac1-c30708946542",jpe="22885900-7753-4d74-9e2f-5cb1776d4f5d",kpe="/__l5e/assets-v1/63233367-718f-4c33-9ac1-c30708946542/alojamientos_3.webp",Npe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/63233367-718f-4c33-9ac1-c30708946542/alojamientos_3.webp",$pe="alojamientos_3.webp",Spe=109356,Epe="image/webp",Cpe="2026-07-07T05:30:44Z",Tpe={version:_pe,asset_id:wpe,project_id:jpe,url:kpe,r2_key:Npe,original_filename:$pe,size:Spe,content_type:Epe,created_at:Cpe},Ape=1,Rpe="6e0df917-ee0b-4c5d-a7b0-df81a5199b9b",Ppe="22885900-7753-4d74-9e2f-5cb1776d4f5d",Ope="/__l5e/assets-v1/6e0df917-ee0b-4c5d-a7b0-df81a5199b9b/alojamientos_4.webp",zpe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6e0df917-ee0b-4c5d-a7b0-df81a5199b9b/alojamientos_4.webp",Ipe="alojamientos_4.webp",Lpe=127378,Mpe="image/webp",Dpe="2026-07-07T05:28:55Z",Upe={version:Ape,asset_id:Rpe,project_id:Ppe,url:Ope,r2_key:zpe,original_filename:Ipe,size:Lpe,content_type:Mpe,created_at:Dpe},Fpe=1,Bpe="985e5a1a-69ec-4147-b4b1-6462564cd7dd",qpe="22885900-7753-4d74-9e2f-5cb1776d4f5d",Vpe="/__l5e/assets-v1/985e5a1a-69ec-4147-b4b1-6462564cd7dd/alojamientos_6.webp",Hpe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/985e5a1a-69ec-4147-b4b1-6462564cd7dd/alojamientos_6.webp",Wpe="alojamientos_6.webp",Zpe=47668,Gpe="image/webp",Kpe="2026-07-07T05:32:17Z",Jpe={version:Fpe,asset_id:Bpe,project_id:qpe,url:Vpe,r2_key:Hpe,original_filename:Wpe,size:Zpe,content_type:Gpe,created_at:Kpe},Ype=1,Qpe="c41db735-7a4d-42b2-b93f-215b56869053",Xpe="22885900-7753-4d74-9e2f-5cb1776d4f5d",ehe="/__l5e/assets-v1/c41db735-7a4d-42b2-b93f-215b56869053/alojamientos_7.webp",the="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/c41db735-7a4d-42b2-b93f-215b56869053/alojamientos_7.webp",nhe="alojamientos_7.webp",she=130434,ahe="image/webp",rhe="2026-07-07T05:28:41Z",ihe={version:Ype,asset_id:Qpe,project_id:Xpe,url:ehe,r2_key:the,original_filename:nhe,size:she,content_type:ahe,created_at:rhe},ohe=1,lhe="2b621af8-1df5-460f-a486-66fe383ab901",che="22885900-7753-4d74-9e2f-5cb1776d4f5d",dhe="/__l5e/assets-v1/2b621af8-1df5-460f-a486-66fe383ab901/alojamientos_8.webp",uhe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/2b621af8-1df5-460f-a486-66fe383ab901/alojamientos_8.webp",fhe="alojamientos_8.webp",phe=89246,hhe="image/webp",mhe="2026-07-07T05:31:00Z",ghe={version:ohe,asset_id:lhe,project_id:che,url:dhe,r2_key:uhe,original_filename:fhe,size:phe,content_type:hhe,created_at:mhe},bhe=1,xhe="89a3535d-5c41-4c6e-b0b7-9117513b6241",vhe="22885900-7753-4d74-9e2f-5cb1776d4f5d",yhe="/__l5e/assets-v1/89a3535d-5c41-4c6e-b0b7-9117513b6241/alojamientos_9.webp",_he="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/89a3535d-5c41-4c6e-b0b7-9117513b6241/alojamientos_9.webp",whe="alojamientos_9.webp",jhe=105974,khe="image/webp",Nhe="2026-07-07T05:29:22Z",$he={version:bhe,asset_id:xhe,project_id:vhe,url:yhe,r2_key:_he,original_filename:whe,size:jhe,content_type:khe,created_at:Nhe},She=1,Ehe="261d45fa-eeec-422c-accd-bbf12c92261c",Che="22885900-7753-4d74-9e2f-5cb1776d4f5d",The="/__l5e/assets-v1/261d45fa-eeec-422c-accd-bbf12c92261c/alojamientos_10.webp",Ahe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/261d45fa-eeec-422c-accd-bbf12c92261c/alojamientos_10.webp",Rhe="alojamientos_10.webp",Phe=131762,Ohe="image/webp",zhe="2026-07-07T05:28:33Z",Ihe={version:She,asset_id:Ehe,project_id:Che,url:The,r2_key:Ahe,original_filename:Rhe,size:Phe,content_type:Ohe,created_at:zhe},Lhe=1,Mhe="fa009ed6-abdb-424a-aa7a-57e35668aa12",Dhe="22885900-7753-4d74-9e2f-5cb1776d4f5d",Uhe="/__l5e/assets-v1/fa009ed6-abdb-424a-aa7a-57e35668aa12/alojamientos_11.webp",Fhe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/fa009ed6-abdb-424a-aa7a-57e35668aa12/alojamientos_11.webp",Bhe="alojamientos_11.webp",qhe=176666,Vhe="image/webp",Hhe="2026-07-07T05:27:45
855Z",Whe={version:Lhe,asset_id:Mhe,project_id:Dhe,url:Uhe,r2_key:Fhe,original_filename:Bhe,size:qhe,content_type:Vhe,created_at:Hhe},Zhe=1,Ghe="3e2a9828-1d4a-4209-b947-567e17cee600",Khe="22885900-7753-4d74-9e2f-5cb1776d4f5d",Jhe="/__l5e/assets-v1/3e2a9828-1d4a-4209-b947-567e17cee600/alojamientos_interior_1.webp",Yhe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/3e2a9828-1d4a-4209-b947-567e17cee600/alojamientos_interior_1.webp",Qhe="alojamientos_interior_1.webp",Xhe=50254,eme="image/webp",tme="2026-07-07T05:31:21Z",nme={version:Zhe,asset_id:Ghe,project_id:Khe,url:Jhe,r2_key:Yhe,original_filename:Qhe,size:Xhe,content_type:eme,created_at:tme},sme=1,ame="9d59c3d0-cecd-4047-b132-0db38506a84e",rme="22885900-7753-4d74-9e2f-5cb1776d4f5d",ime="/__l5e/assets-v1/9d59c3d0-cecd-4047-b132-0db38506a84e/alojamientos_interior_2.webp",ome="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/9d59c3d0-cecd-4047-b132-0db38506a84e/alojamientos_interior_2.webp",lme="alojamientos_interior_2.webp",cme=28876,dme="image/webp",ume="2026-07-07T05:32:22Z",fme={version:sme,asset_id:ame,project_id:rme,url:ime,r2_key:ome,original_filename:lme,size:cme,content_type:dme,created_at:ume},pme=1,hme="db1bb2a9-486a-4f50-806c-80d1aa303ed9",mme="22885900-7753-4d74-9e2f-5cb1776d4f5d",gme="/__l5e/assets-v1/db1bb2a9-486a-4f50-806c-80d1aa303ed9/alojamientos_interior_3.webp",bme="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/db1bb2a9-486a-4f50-806c-80d1aa303ed9/alojamientos_interior_3.webp",xme="alojamientos_interior_3.webp",vme=28738,yme="image/webp",_me="2026-07-07T05:32:51Z",wme={version:pme,asset_id:hme,project_id:mme,url:gme,r2_key:bme,original_filename:xme,size:vme,content_type:yme,created_at:_me},jme=1,kme="53455c9a-27b2-44bf-bfc3-0eb46ad2be99",Nme="22885900-7753-4d74-9e2f-5cb1776d4f5d",$me="/__l5e/assets-v1/53455c9a-27b2-44bf-bfc3-0eb46ad2be99/alojamientos_interior_4.webp",Sme="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/53455c9a-27b2-44bf-bfc3-0eb46ad2be99/alojamientos_interior_4.webp",Eme="alojamientos_interior_4.webp",Cme=23100,Tme="image/webp",Ame="2026-07-07T05:32:57Z",Rme={version:jme,asset_id:kme,project_id:Nme,url:$me,r2_key:Sme,original_filename:Eme,size:Cme,content_type:Tme,created_at:Ame},Pme=1,Ome="b65c4ec6-e8aa-45cf-9ed9-56efe77d4604",zme="22885900-7753-4d74-9e2f-5cb1776d4f5d",Ime="/__l5e/assets-v1/b65c4ec6-e8aa-45cf-9ed9-56efe77d4604/alojamientos_interior_5.webp",Lme="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/b65c4ec6-e8aa-45cf-9ed9-56efe77d4604/alojamientos_interior_5.webp",Mme="alojamientos_interior_5.webp",Dme=71680,Ume="image/webp",Fme="2026-07-07T05:31:24Z",Bme={version:Pme,asset_id:Ome,project_id:zme,url:Ime,r2_key:Lme,original_filename:Mme,size:Dme,content_type:Ume,created_at:Fme},qme=1,Vme="988bdc18-0700-42d9-ad92-965354dbc404",Hme="22885900-7753-4d74-9e2f-5cb1776d4f5d",Wme="/__l5e/assets-v1/988bdc18-0700-42d9-ad92-965354dbc404/alojamientos_interior_6.webp",Zme="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/988bdc18-0700-42d9-ad92-965354dbc404/alojamientos_interior_6.webp",Gme="alojamientos_interior_6.webp",Kme=34464,Jme="image/webp",Yme="2026-07-07T05:32:41Z",Qme={version:qme,asset_id:Vme,project_id:Hme,url:Wme,r2_key:Zme,original_filename:Gme,size:Kme,content_type:Jme,created_at:Yme},Xme=1,e0e="171232e2-da15-40ad-b6c1-dca0212207db",t0e="22885900-7753-4d74-9e2f-5cb1776d4f5d",n0e="/__l5e/assets-v1/171232e2-da15-40ad-b6c1-dca0212207db/donana98.mp4",s0e="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/171232e2-da15-40ad-b6c1-dca0212207db/donana98.mp4",a0e="donana98.mp4",r0e=23955197,i0e="video/mp4",o0e="2026-07-07T05:40:21Z",l0e={version:Xme,asset_id:e0e,project_id:t0e,url:n0e,r2_key:s0e,original_filename:a0e,size:r0e,content_type:i0e,created_at:o0e},jf=[{src:Whe.url,caption:"Vista aérea del complejo residencial",span:"md:col-span-2 md:row-span-2"},{src:Zp.url,caption:"Vista general del complejo residencial",span:"md:col-span-2"},{src:Tpe.url,caption:"Alzado principal con logotipo Doñana 1998",span:"md:col-span-2"},{src:Upe.url,caption:"Vista lateral con entorno agrícola",span:"md:col-span-2"},{src:$he.url,caption:"Volumen esquinero con escaleras y balcones",span:"md:col-span-2"},{src:Ihe.url,caption:"Terraza superior · apartamento 115",span:"md:col-span-2"},{src:dpe.url,caption:"Escalera exterior y celosía perforada",span:"md:col-span-2"},{src:ype.url,caption:"Acceso al apartamento 101",span:"md:col-span-2"},{src:Jpe.url,caption:"Fachada iluminada nocturna",span:"md:col-span-2"},{src:ihe.url,caption:"Vista nocturna con palmeras",span:"md:col-span-2"},{src:ghe.url,caption:"Perspectiva nocturna con iluminación urbana",span:"md:col-span-4"}],Z2=[{src:nme.url,caption:"Zona de estar y comedor con cocina integrada",span:"md:col-span-2 md:row-span-2"},{src:Bme.url,caption:"Cocina equipada con isla central",span:"md:col-span-2"},{src:wme.url,caption:"Detalle de cocina y encimera",span:"md:col-span-2"},{src:Qme.url,caption:"Acabados interiores en madera y cocina",span:"md:col-span-2"},{src:Rme.url,caption:"Baño completo con doble lavabo",span:"md:col-span-2"},{src:fme.url,caption:"Aseo con doble lavabo",span:"md:col-span-2"}],Js=[...jf,...Z2],c0e=()=>{const[e,t]=g.useState(null),n=g.useCallback(()=>t(null),[]),s=g.useCallback(()=>t(i=>i===null?null:(i-1+Js.length)%Js.length),[]),r=g.useCallback(()=>t(i=>i===null?null:(i+1)%Js.length),[]);return g.useEffect(()=>{if(e===null)return;const i=o=>{o.key==="Escape"&&n(),o.key==="ArrowLeft"&&s(),o.key==="ArrowRight"&&r()};return window.addEventListener("keydown",i),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",i),document.body.style.overflow=""}},[e,n,s,r]),a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Alojamientos Doñana 1998 — Residencial modular industrializado | Modulya",description:"Alojamientos Doñana 1998: complejo residencial modular industrializado ejecutado por Modulya en Almonte, Huelva, con 60 apartamentos en 5 meses.",path:"/work/alojamientos-donana"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors mb-10",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]}),a.jsxs("div",{className:"grid md:grid-cols-3 gap-10 items-end",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("p",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"ALOJAMIENTOS DOÑANA 1998 · MODUSS"}),a.jsx("h1",{className:"text-5xl md:text-7xl font-light text-architectural leading-[1.05]",children:"Complejo Doñana 1998"})]}),a.jsxs("div",{className:"space-y-2 md:text-right",children:[a.jsx("p",{className:"text-architectural font-medium",children:"Almonte, Huelva"}),a.jsx("p",{className:"text-muted-foreground",children:"Promotor: Doñana1998 SL"}),a.jsx("p",{className:"text-muted-foreground",children:"Método Constructivo: MODUSS"}),a.jsx("p",{className:"text-muted-foreground",children:"Plazo de ejecución: 5 meses"}),a.jsx("p",{className:"text-muted-foreground",children:"Sup. construida: 2.000 m² (Fase 1)"})]})]})]})})}),a.jsx("section",{className:"pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"relative w-full overflow-hidden",children:[a.jsx("video",{src:l0e.url,autoPlay:!0,muted:!0,loop:!0,playsInl
855ine:!0,poster:Zp.url,className:"w-full h-[70vh] object-cover"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/40 via-transparent to-transparent pointer-events-none"}),a.jsx("div",{className:"absolute bottom-6 left-6 flex flex-wrap gap-3",children:a.jsx("button",{onClick:()=>t(0),className:"bg-background/90 backdrop-blur-sm px-4 py-2 hover:bg-background transition-colors",children:a.jsx("span",{className:"text-minimal text-foreground",children:"VER GALERÍA COMPLETA"})})})]})})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-4xl mx-auto space-y-8 text-muted-foreground leading-relaxed",children:[a.jsx("h2",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Alojamientos temporales construidos en 5 meses"}),a.jsx("p",{children:"Modulya, empresa onubense dedicada desde 2018 al diseño y desarrollo de proyectos modulares industrializados, ha puesto el foco en aportar soluciones a las necesidades del sector residencial temporal. Uno de sus últimos proyectos ha consistido en la construcción industrializada de residencias temporales en Huelva: 2.000 metros cuadrados de edificación completados en tan sólo 5 meses."}),a.jsx("p",{children:"Con más de diez mil metros cuadrados de superficie total, se trata de un conjunto de tres edificios residenciales, con capacidad para más de 500 personas, distribuidas en 60 apartamentos de 100 m², acompañados de edificios auxiliares de uso comercial, ocio y servicios comunes, junto a amplias instalaciones deportivas, zonas verdes y aparcamiento."}),a.jsx("h3",{className:"text-2xl font-light text-architectural pt-6",children:"Relación con el entorno"}),a.jsx("p",{children:"Los materiales empleados guardan continuidad estética con el ambiente rural: estructura metálica y cerramientos de paneles prefabricados con núcleo de EPS, doble capa de mortero reforzado y malla de fibra de vidrio, con acabados de imitación a madera en los frontales y mortero monocapa, creando una imagen unificada y adaptada al entorno, garantizando el confort y la eficiencia energética."}),a.jsx("h3",{className:"text-2xl font-light text-architectural pt-6",children:"Sistema constructivo"}),a.jsx("p",{children:"La perfilería metálica se une mediante tornillería, permitiendo el desmontaje si fuese necesario. Toda la envolvente —cerramientos, forjados y cubiertas— se realiza con panel sándwich de EPS reforzado con cemento y fibra de vidrio bidireccional. Interiormente, el trasdosado de PYL y lámina de roca mineral genera dos niveles de aislamiento térmico y acústico, alcanzando un alto grado de confort."})]})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"01 · EXTERIORES"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Volumen, celosía y luz"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Vistas diurnas y nocturnas del complejo residencial en Almonte, con la identidad Doñana 1998 integrada en fachada."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:jf.map((i,o)=>a.jsxs("button",{onClick:()=>t(o),className:`group relative overflow-hidden bg-muted ${i.span}`,style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:i.caption})})]},`ext-${o}`))})]})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"02 · INTERIORES"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Espacios interiores y equipamiento"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Salón, c
855ocina y zonas húmedas resueltas con una distribución funcional, luminosa y lista para uso inmediato."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:Z2.map((i,o)=>{const l=jf.length+o;return a.jsxs("button",{onClick:()=>t(l),className:`group relative overflow-hidden bg-muted ${i.span}`,style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:i.caption})})]},`int-${o}`)})})]})})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center animate-in fade-in duration-300",children:[a.jsx("button",{onClick:n,className:"absolute top-6 right-6 text-white/80 hover:text-white transition-colors z-10","aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{onClick:s,className:"absolute left-4 md:left-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Anterior",children:a.jsx(zt,{className:"w-10 h-10"})}),a.jsx("button",{onClick:r,className:"absolute right-4 md:right-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Siguiente",children:a.jsx(It,{className:"w-10 h-10"})}),a.jsxs("div",{className:"max-w-7xl w-full h-full flex flex-col items-center justify-center px-4 md:px-20 py-16",children:[a.jsx("img",{src:Js[e].src,alt:Js[e].caption,className:"max-h-[80vh] max-w-full object-contain animate-in fade-in zoom-in-95 duration-500"},e),a.jsxs("div",{className:"mt-6 flex items-center justify-between w-full max-w-3xl text-white/80",children:[a.jsx("p",{className:"text-minimal",children:Js[e].caption}),a.jsxs("p",{className:"text-minimal text-white/50",children:[String(e+1).padStart(2,"0")," / ",String(Js.length).padStart(2,"0")]})]})]})]}),a.jsx("style",{children:`
856        @keyframes fadeInUp {
857          from { opacity: 0; transform: translateY(24px); }
858          to { opacity: 1; transform: translateY(0); }
859        }
860      `}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},d0e=1,u0e="95b17dc2-87ae-4b4f-a1f5-33cef047295a",f0e="22885900-7753-4d74-9e2f-5cb1776d4f5d",p0e="/__l5e/assets-v1/95b17dc2-87ae-4b4f-a1f5-33cef047295a/san_rafael_2.webp",h0e="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/95b17dc2-87ae-4b4f-a1f5-33cef047295a/san_rafael_2.webp",m0e="san_rafael_2.webp",g0e=164566,b0e="image/webp",x0e="2026-07-07T05:30:29Z",v0e={version:d0e,asset_id:u0e,project_id:f0e,url:p0e,r2_key:h0e,original_filename:m0e,size:g0e,content_type:b0e,created_at:x0e},y0e=1,_0e="e07ab3b3-4212-4d3c-a0ee-2bd29ab5616b",w0e="22885900-7753-4d74-9e2f-5cb1776d4f5d",j0e="/__l5e/assets-v1/e07ab3b3-4212-4d3c-a0ee-2bd29ab5616b/san_rafael_3.webp",k0e="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/e07ab3b3-4212-4d3c-a0ee-2bd29ab5616b/san_rafael_3.webp",N0e="san_rafael_3.webp",$0e=105808,S0e="image/webp",E0e="2026-07-07T05:30:39Z",C0e={version:y0e,asset_id:_0e,project_id:w0e,url:j0e,r2_key:k0e,original_filename:N0e,size:$0e,content_type:S0e,created_at:E0e},T0e=1,A0e="8b7ae631-5609-4244-9d70-bb35f4603690",R0e="22885900-7753-4d74-9e2f-5cb1776d4f5d",P0e="/__l5e/assets-v1/8b7ae631-5609-4244-9d70-bb35f4603690/san_rafael_4.webp",O0e="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/8b7ae631-5609-4244-9d70-bb35f4603690/san_rafael_4.webp",z0e="san_rafael_4.webp",I0e=178284,L0e="image/webp",M0e="2026-07-07T05:30:01Z",D0e={version:T0e,asset_id:A0e,project_id:R0e,url:P0e,r2_key:O0e,original_filename:z0e,size:I0e,content_type:L0e,created_at:M0e},U0e=1,F0e="d1094f08-39e8-4a25-84fa-665d1264ebeb",B0e="22885900-7753-4d74-9e2f-5cb1776d4f5d",q0e="/__l5e/assets-v1/d1094f08-39e8-4a25-84fa-665d1264ebeb/san_rafael_5.webp",V0e="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/d1094f08-39e8-4a25-84fa-665d1264ebeb/san_rafael_5.webp",H0e="san_rafael_5.webp",W0e=164404,Z0e="image/webp",G0e="2026-07-07T05:30:26Z",K0e={version:U0e,asset_id:F0e,project_id:B0e,url:q0e,r2_key:V0e,original_filename:H0e,size:W
8600e,content_type:Z0e,created_at:G0e},J0e=1,Y0e="ddefd540-78d9-4804-8f5b-c8fc5b4b393d",Q0e="22885900-7753-4d74-9e2f-5cb1776d4f5d",X0e="/__l5e/assets-v1/ddefd540-78d9-4804-8f5b-c8fc5b4b393d/san_rafael_7.webp",ege="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/ddefd540-78d9-4804-8f5b-c8fc5b4b393d/san_rafael_7.webp",tge="san_rafael_7.webp",nge=166562,sge="image/webp",age="2026-07-07T05:29:11Z",rge={version:J0e,asset_id:Y0e,project_id:Q0e,url:X0e,r2_key:ege,original_filename:tge,size:nge,content_type:sge,created_at:age},ige=1,oge="9458b00c-fd68-47b5-94a5-8c637d3c2c2a",lge="22885900-7753-4d74-9e2f-5cb1776d4f5d",cge="/__l5e/assets-v1/9458b00c-fd68-47b5-94a5-8c637d3c2c2a/san_rafael_8.webp",dge="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/9458b00c-fd68-47b5-94a5-8c637d3c2c2a/san_rafael_8.webp",uge="san_rafael_8.webp",fge=168770,pge="image/webp",hge="2026-07-07T05:29:47Z",mge={version:ige,asset_id:oge,project_id:lge,url:cge,r2_key:dge,original_filename:uge,size:fge,content_type:pge,created_at:hge},gge=1,bge="6b93f146-d125-4450-9f9c-9cb86f114a77",xge="22885900-7753-4d74-9e2f-5cb1776d4f5d",vge="/__l5e/assets-v1/6b93f146-d125-4450-9f9c-9cb86f114a77/san_rafael_9.webp",yge="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/6b93f146-d125-4450-9f9c-9cb86f114a77/san_rafael_9.webp",_ge="san_rafael_9.webp",wge=178950,jge="image/webp",kge="2026-07-07T05:29:09Z",Nge={version:gge,asset_id:bge,project_id:xge,url:vge,r2_key:yge,original_filename:_ge,size:wge,content_type:jge,created_at:kge},$ge=1,Sge="a0cfdb10-d914-42c4-9fe2-e8febb668d36",Ege="22885900-7753-4d74-9e2f-5cb1776d4f5d",Cge="/__l5e/assets-v1/a0cfdb10-d914-42c4-9fe2-e8febb668d36/san_rafael_10.webp",Tge="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/a0cfdb10-d914-42c4-9fe2-e8febb668d36/san_rafael_10.webp",Age="san_rafael_10.webp",Rge=357580,Pge="image/webp",Oge="2026-07-07T05:27:31Z",zge={version:$ge,asset_id:Sge,project_id:Ege,url:Cge,r2_key:Tge,original_filename:Age,size:Rge,content_type:Pge,created_at:Oge},Ige=1,Lge="54d1b438-b1b4-4374-ad67-352c23ea46cd",Mge="22885900-7753-4d74-9e2f-5cb1776d4f5d",Dge="/__l5e/assets-v1/54d1b438-b1b4-4374-ad67-352c23ea46cd/san_rafael_11.webp",Uge="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/54d1b438-b1b4-4374-ad67-352c23ea46cd/san_rafael_11.webp",Fge="san_rafael_11.webp",Bge=324680,qge="image/webp",Vge="2026-07-07T05:27:51Z",Hge={ver
860sion:Ige,asset_id:Lge,project_id:Mge,url:Dge,r2_key:Uge,original_filename:Fge,size:Bge,content_type:qge,created_at:Vge},Wge=1,Zge="61c50af9-1109-4fba-aa06-6b6ec87fe2ca",Gge="22885900-7753-4d74-9e2f-5cb1776d4f5d",Kge="/__l5e/assets-v1/61c50af9-1109-4fba-aa06-6b6ec87fe2ca/san_rafael_12.webp",Jge="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/61c50af9-1109-4fba-aa06-6b6ec87fe2ca/san_rafael_12.webp",Yge="san_rafael_12.webp",Qge=334258,Xge="image/webp",ebe="2026-07-07T05:27:48Z",tbe={version:Wge,asset_id:Zge,project_id:Gge,url:Kge,r2_key:Jge,original_filename:Yge,size:Qge,content_type:Xge,created_at:ebe},nbe=1,sbe="af583b1f-2615-49b9-ab00-afd3b487e60f",abe="22885900-7753-4d74-9e2f-5cb1776d4f5d",rbe="/__l5e/assets-v1/af583b1f-2615-49b9-ab00-afd3b487e60f/propuesta_tipologias_aster_district.pdf",ibe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/af583b1f-2615-49b9-ab00-afd3b487e60f/propuesta_tipologias_aster_district.pdf",obe="propuesta_tipologias_aster_district.pdf",lbe=10535008,cbe="application/pdf",dbe="2026-07-06T16:11:16Z",ube={version:nbe,asset_id:sbe,project_id:abe,url:rbe,r2_key:ibe,original_filename:obe,size:lbe,content_type:cbe,created_at:dbe},ns=[{src:Xp.url,caption:"Vista general del conjunto residencial",span:"md:col-span-2 md:row-span-2"},{src:zge.url,caption:"Implantación entre piscinas privadas y ladera arbolada",span:"md:col-span-2"},{src:v0e.url,caption:"Vivienda unifamiliar aislada de una planta",span:"md:col-span-2"},{src:C0e.url,caption:"Fachada posterior abierta al jardín",span:"md:col-span-2"},{src:D0e.url,caption:"Parcelas escalonadas con privacidad vegetal",span:"md:col-span-2"},{src:K0e.url,caption:"Relación entre salón, porche y piscina",span:"md:col-span-2"},{src:rge.url,caption:"Tipología de dos plantas con gran vuelo frontal",span:"md:col-span-2"},{src:mge.url,caption:"Alzado de acceso y composición horizontal",span:"md:col-span-2"},{src:Nge.url,caption:"Viviendas pareadas con porches protegidos",span:"md:col-span-2"},{src:Hge.url,caption:"Cubiertas planas con integración de paneles solares",span:"md:col-span-2"},{src:tbe.url,caption:"Conjunto residencial adaptado a la topografía",span:"md:col-span-4"}],fbe=[{name:"V0.1",title:"Aislada · 1 planta",program:"4 dormitorios",useful:"169,79 m² útiles",built:"149,43 m² construidos",plot:"Parcela 652,02 m²"},{name:"V0.2",title:"Aislada · 2 plantas",program:"5 dormitorios + despacho",useful:"187,17 m² útiles",built:"202,67 m² construidos",plot:"Parcela 652,02 m²"},{name:"V1.1",title:"Pareada · 1 planta",program:"3 dormitorios, 2 baños + aseo",useful:"121,27 m² útiles",built:"120,42 m² construidos",plot:"Parcela 420,00 m²"},{name:"V1.2",title:"Pareada · 1 planta",program:"2 dormitorios, 2 baños",useful:"112,23 m² útiles",built:"99,66 m² construidos",plot:"Parcela 420,00 m²"},{name:"V2.1",title:"Pareada · 2 plantas",program:"4 dormitorios, 3 baños",useful:"152,64 m² útiles",built:"150,57 m² construidos",plot:"Parcela 420,00 m²"},{name:"V2.2–V2.8",title:"Pareadas · 2 plantas",program:"Versiones de 4 y 5 dormitorios",useful:"Hasta 176,71 m² útiles",built:"Entre 149,57 y 154,49 m²",plot:"Parcelas de 420,00 m²"}],pbe=()=>{const[e,t]=g.useState(null),n=g.useCallback(()=>t(null),[]),s=g.useCallback(()=>t(i=>i===null?null:(i-1+ns.length)%ns.length),[]),r=g.useCallback(()=>t(i=>i===null?null:(i+1)%ns.length),[]);return g.useEffect(()=>{if(e===null)return;const i=o=>{o.key==="Escape"&&n(),o.key==="ArrowLeft"&&s(),o.key==="ArrowRight"&&r()};return window.addEventListener("keydown",i),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",i),document.body.style.overflow=""}},[e,n,s,r]),a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Aster District — Viviendas modulares residenciales | Modulya",description:"Aster District en Los Ángeles de San Rafael: propuesta residencial modular con tipologías pareadas y aisladas, adaptada al paisaje y con distintas configuraciones de vivienda.",path:"/work/aster-district"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors mb-10",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]}),a.jsxs("div",{className:"grid md:grid-cols-3 gap-10 items-end",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("p",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"RESIDENCIAL · MODUSS"}),a.jsx("h1",{className:"text-5xl md:text-7xl font-light text-architectural leading-[1.05]",children:"Aster District"})]}),a.jsxs("div",{className:"space-y-2 md:text-right",children:[a.jsx("p",{className:"text-architectural font-medium",children:"Los Ángeles de San Rafael · El Espinar, Segovia"}),a.jsx("p",{className:"text-muted-foreground",children:"Tipología: Viviendas pareadas y aisladas"}),a.jsx("p",{className:"text-muted-foreground",children:"Programa: 1 y 2 plantas · 2 a 5 dormitorios"}),a.jsx("p",{className:"text-muted-foreground",children:"Implantación: Parcelas de 420 m² y 652,02 m²"}),a.jsx("p",{className:"text-muted-foreground",children:"Documento base
860: Noviembre 2023"})]})]})]})})}),a.jsx("section",{className:"pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("button",{onClick:()=>t(0),className:"group block w-full overflow-hidden relative",children:[a.jsx("img",{src:Xp.url,alt:"Aster District, vista principal del conjunto residencial",className:"w-full h-[70vh] object-cover transition-transform duration-700 group-hover:scale-[1.03]"}),a.jsx("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/20 transition-colors duration-500"}),a.jsx("div",{className:"absolute bottom-6 left-6 bg-background/90 backdrop-blur-sm px-4 py-2",children:a.jsx("span",{className:"text-minimal text-foreground",children:"VER GALERÍA COMPLETA"})})]})})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-4xl mx-auto space-y-8 text-muted-foreground leading-relaxed",children:[a.jsx("h2",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Vivienda modular contemporánea en un paisaje de pinar y ladera"}),a.jsx("p",{children:"Aster District plantea un conjunto residencial modular para Los Ángeles de San Rafael con una familia de viviendas pareadas y aisladas capaces de adaptarse a distintas parcelas, programas domésticos y maneras de habitar. La propuesta combina volúmenes horizontales muy limpios, grandes vuelos, porches protegidos, jardines privados y piscinas lineales, reforzando una relación directa entre interior, terraza y paisaje."}),a.jsx("p",{children:"El documento desarrolla tipologías de una y dos plantas, desde modelos compactos de 2 dormitorios hasta configuraciones familiares de 5 dormitorios. Todas comparten una misma lógica: industrialización del sistema, cubiertas planas preparadas para soluciones energéticas activas, grandes paños acristalados y una implantación cuidadosa sobre la topografía natural del entorno segoviano."}),a.jsx("p",{children:"Formalmente, la arquitectura alterna piezas blancas en voladizo, planos de madera cálida y filtros ligeros que protegen las estancias principales del soleamiento directo. El resultado es una imagen serena y muy residencial, con privacidad entre parcelas pero manteniendo aperturas largas hacia el jardín y el paisaje."})]})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"GALERÍA"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Exteriores y tipologías"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Recorrido visual por las distintas implantaciones, fachadas y volumetrías del proyecto residencial."})]}),a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:ns.map((i,o)=>a.jsxs("button",{onClick:()=>t(o),className:`group relative overflow-hidden bg-muted ${i.span}`,style:{animation:`fadeInUp 0.6s ease ${o*60}ms both`},children:[a.jsx("img",{src:i.src,alt:i.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:i.caption})})]},o))})]})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"01 · TIPOLOGÍAS"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Configuración flexible de vivienda"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Resumen de las tipologías planteadas en el dosier: viviendas aisladas y pareadas con diferentes programas."})]}),a.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:fbe.map(i=>a.jsxs("article",{className:"border border-border p-6 bg-background",children:[a.jsx("p",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:i.name}),a.jsx("h4",{className:"text-2xl font-light text-architectural mb-3",children:i.title}),a.jsxs("div",{className:"space-y-2 text-muted-foreground leading-relaxed",children:[a.jsx("p",{children:i.program}),a.jsx("p",{children:i.useful}),a.jsx("p",{children:i.built}),a.jsx("p",{children:i.plot})]})]},i.name))})]})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"bg-muted p-10 md:p-16 grid md:grid-cols-3 gap-10 items-center",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"DOCUMENTACIÓN"}),a.jsx("h3",{className:"text-3xl md:text-4xl font-light text-architectural mb-4",children:"Propuesta completa de tipologías"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed max-w-2xl",children:"Descarga el PDF con las plantas, superficies y configuraciones de las viviendas pareadas y aisladas desarrolladas para Aster District."})]}),a.jsx("div",{className:"md:text-right",children:a.jsxs("a",{href:ube.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-6 py-4 bg-foreground text-background hover:opacity-80 transition-opacity",children:[a.jsx(Lt,{className:"w-5 h-5"}),a.jsx("span",{className:"text-minimal",children:"DESCARGAR PDF"})]})})]})})})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center animate-in fade-in duration-300",children:[a.jsx("button",{onClick:n,className:"absolute top-6 right-6 text-white/80 hover:text-white transition-colors z-10","aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{onClick:s,className:"absolute left-4 md:left-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Anterior",children:a.jsx(zt,{className:"w-10 h-10"})}),a.jsx("button",{onClick:r,className:"absolute right-4 md:right-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Siguiente",children:a.jsx(It,{className:"w-10 h-10"})}),a.jsxs("div",{className:"max-w-7xl w-full h-full flex flex-col items-center justify-center px-4 md:px-20 py-16",children:[a.jsx("img",{src:ns[e].src,alt:ns[e].caption,className:"max-h-[80vh] max-w-full object-contain animate-in fade-in zoom-in-95 duration-500"},e),a.jsxs("div",{className:"mt-6 flex items-center justify-between w-full max-w-3xl text-white/80",children:[a.jsx("p",{className:"text-minimal",children:ns[e].caption}),a.jsxs("p",{className:"text-minimal text-white/50",children:[String(e+1).padStart(2,"0")," / ",String(ns.length).padStart(2,"0")]})]})]})]}),a.jsx("style",{children:`
861        @keyframes fadeInUp {
862          from { opacity: 0; transform: translateY(24px); }
863          to { opacity: 1; transform: translateY(0); }
864        }
865      `}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},hbe=1,mbe="a852820e-8b32-47d7-bd97-ae4e26820f67",gbe="22885900-7753-4d74-9e2f-5cb1776d4f5d",bbe="/__l5e/assets-v1/a852820e-8b32-47d7-bd97-ae4e26820f67/usuri_1.webp",xbe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/a852820e-8b32-47d7-bd97-ae4e26820f67/usuri_1.webp",vbe="usuri_1.webp",ybe=72410,_be="image/webp",wbe="2026-07-07T05:30:36Z",jbe={version:hbe,asset_id:mbe,project_id:gbe,url:bbe,r2_key:xbe,original_filename:vbe,size:ybe,content_type:_be,created_at:wbe},kbe=1,Nbe="d8ee7256-ed5f-47d5-96b3-38a492e6569a",$be="22885900-7753-4d74-9e2f-5cb1776d4f5d",Sbe="/__l5e/assets-v1/d8ee7256-ed5f-47d5-96b3-38a492e6569a/usuri_2.webp",Ebe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/d8ee7256-ed5f-47d5-96b3-38a492e6569a/usuri_2.webp",Cbe="usuri_2.webp",Tbe=62638,Abe="image/webp",Rbe="2026-07-07T05:30:13Z",Pbe={version:kbe,asset_id:Nbe,project_id:$be,url:Sbe,r2_key:Ebe,original_filename:Cbe,size:Tbe,content_type:Abe,created_at:Rbe},Obe=1,zbe="2df75ef0-df48-4b37-936c-a8d570680ff4",Ibe="22885900-7753-4d74-9e2f-5cb1776d4f5d",Lbe="/__l5e/assets-v1/2df75ef0-df48-4b37-936c-a8d570680ff4/usuri_3.webp",Mbe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/2df75ef0-df48-4b37-936c-a8d570680ff4/usuri_3.webp",Dbe="usuri_3.webp",Ube=77678,Fbe="image/webp",Bbe="2026-07-07T05:29:37Z",qbe={version:Obe,asset_id:zbe,project_id:Ibe,url:Lbe,r2_key:Mbe,original_filename:Dbe,
865size:Ube,content_type:Fbe,created_at:Bbe},Vbe=1,Hbe="fdb4f0e6-80b0-4c90-a87a-a876d7457f8f",Wbe="22885900-7753-4d74-9e2f-5cb1776d4f5d",Zbe="/__l5e/assets-v1/fdb4f0e6-80b0-4c90-a87a-a876d7457f8f/usuri_4.webp",Gbe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/fdb4f0e6-80b0-4c90-a87a-a876d7457f8f/usuri_4.webp",Kbe="usuri_4.webp",Jbe=85902,Ybe="image/webp",Qbe="2026-07-07T05:29:55Z",Xbe={version:Vbe,asset_id:Hbe,project_id:Wbe,url:Zbe,r2_key:Gbe,original_filename:Kbe,size:Jbe,content_type:Ybe,created_at:Qbe},exe=1,txe="1a84c210-6c43-48ed-a731-487554401428",nxe="22885900-7753-4d74-9e2f-5cb1776d4f5d",sxe="/__l5e/assets-v1/1a84c210-6c43-48ed-a731-487554401428/usuri_5.webp",axe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/1a84c210-6c43-48ed-a731-487554401428/usuri_5.webp",rxe="usuri_5.webp",ixe=92842,oxe="image/webp",lxe="2026-07-07T05:29:44Z",cxe={version:exe,asset_id:txe,project_id:nxe,url:sxe,r2_key:axe,original_filename:rxe,size:ixe,content_type:oxe,created_at:lxe},dxe=1,uxe="3fc7b77a-802d-4dad-8cdd-cab65866057c",fxe="22885900-7753-4d74-9e2f-5cb1776d4f5d",pxe="/__l5e/assets-v1/3fc7b77a-802d-4dad-8cdd-cab65866057c/usuri_7.webp",hxe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/3fc7b77a-802d-4dad-8cdd-cab65866057c/usuri_7.webp",mxe="usuri_7.webp",gxe=174396,bxe="image/webp",xxe="2026-07-07T05:29:52Z",vxe={version:dxe,asset_id:uxe,project_id:fxe,url:pxe,r2_key:hxe,original_filename:mxe,size:gxe,content_type:bxe,created_at:xxe},yxe=1,_xe="1f0d14d8-4d4a-4362-98e2-cca01cd20837",wxe="22885900-7753-4d74-9e2f-5cb1776d4f5d",jxe="/__l5e/assets-v1/1f0d14d8-4d4a-4362-98e2-cca01cd20837/usuri_8.webp",kxe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/1f0d14d8-4d4a-4362-98e2-cca01cd20837/usuri_8.webp",Nxe="usuri_8.webp",$xe=210568,Sxe="image/webp",Exe="2026-07-07T05:30:18Z",Cxe={version:yxe,asset_id:_xe,project_id:wxe,url:jxe,r2_key:kxe,original_filename:Nxe,size:$xe,content_type:Sxe,created_at:Exe},Txe=1,Axe="fb94451e-b0a4-4ae1-9501-0fe2d117fbd7",Rxe="22885900-7753-4d74-9e2f-5cb1776d4f5d",Pxe="/__l5e/assets-v1/fb94451e-b0a4-4ae1-9501-0fe2d117fbd7/usuri_9.webp",Oxe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/fb94451e-b0a4-4ae1-9501-0fe2d117fbd7/usuri_9.webp",zxe="usuri_9.webp",Ixe=188628,Lxe="image/webp",Mxe="2026-07-07T05:30:11Z",Dxe={version:Txe,asset_id:Axe,project_id:Rxe,url:Pxe,r2_key:Oxe,original_filename:zxe,size:Ixe,content_type:Lxe,created_at:Mxe},Uxe=1,Fxe="3e30ece1-5b78-40ee-a74f-b8979abda537",Bxe="22885900-7753-4d74-9e2f-5cb1776d4f5d",qxe="/__l5e/assets-v1/3e30ece1-5b78-40ee-a74f-b8979abda537/usuri_10.webp",Vxe="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/3e30ece1-5b78-40ee-a74f-b8979abda537/usuri_10.webp",Hxe="usuri_10.webp",Wxe=157820,Zxe="image/webp",Gxe="2026-07-07T05:27:59Z",Kxe={version:Uxe,asset_id:Fxe,project_id:Bxe,url:qxe,r2_key:Vxe,original_filename:Hxe,size:Wxe,content_type:Zxe,created_at:Gxe},Jxe=1,Yxe="5a2238c0-a74f-49c1-948c-149c2087b977",Qxe="22885900-7753-4d74-9e2f-5cb1776d4f5d",Xxe="/__l5e/assets-v1/5a2238c0-a74f-49c1-948c-149c2087b977/usuri_11.webp",eve="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/5a2238c0-a74f-49c1-948c-149c2087b977/usuri_11.webp",tve="usuri_11.webp",nve=376262,sve="image/webp",ave="2026-07-07T05:27:34Z",rve={version:Jxe,asset_id:Yxe,project_id:Qxe,url:Xxe,r2_key:eve,original_filename:tve,size:nve,content_type:sve,created_at:ave},ive=1,ove="c21b57f4-7ea4-48c5-ba2d-770f67e78c5d",lve="22885900-7753-4d74-9e2f-5cb1776d4f5d",cve="/__l5e/assets-v1/c21b57f4-7ea4-48c5-ba2d-770f67e78c5d/planos_costa_esuri.pdf",dve="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/c21b57f4-7ea4-48c5-ba2d-770f67e78c5d/planos_costa_esuri.pdf",uve="planos_costa_esuri.pdf",fve=12689087,pve="application/pdf",hve="2026-07-06T16:27:50Z",mve={version:ive,asset_id:ove,project_id:lve,url:cve,r2_key:dve,original_filename:uve,size:fve,content_type:pve,created_at:hve},gve=1,bve="8471a348-de0d-49b9-bff8-9b26f3ee671e",xve="22885900-7753-4d74-9e2f-5cb1776d4f5d",vve="/__l5e/assets-v1/8471a348-de0d-49b9-bff8-9b26f3ee671e/costa_esuri_portada.mp4",yve="a/v1/22885900-7753-4d74-9e2f-5cb1776d4f5d/8471a348-de0d-49b9-bff8-9b26f3ee671e/costa_esuri_portada.mp4",_ve="costa_esuri_portada.mp4",wve=66331031,jve="video/mp4",kve="2026-07-07T05:40:51Z",Nve={version:gve,asset_id:bve,project_id:xve,url:vve,r2_key:yve,original_filename:_ve,size:wve,content_type:jve,created_at:kve},kf=[{src:eh.url,caption:"Fachada principal de acceso",span:"md:col-span-2 md:row-span-2"},{src:vxe.url,caption:"Volumen lateral con porche y aparcamiento",span:"md:col-span-2"},{src:Dxe.url,caption:"Fachada posterior con piscina y jardín",span:"md:col-span-2"}
865,{src:Cxe.url,caption:"Vista desde el jardín entre viviendas",span:"md:col-span-2"},{src:Kxe.url,caption:"Porche y piscina en atardecer",span:"md:col-span-2"},{src:rve.url,caption:"Implantación aérea del conjunto residencial",span:"md:col-span-4"}],G2=[{src:Xbe.url,caption:"Salón principal a doble altura",span:"md:col-span-2 md:row-span-2"},{src:jbe.url,caption:"Salón con escalera y cocina abierta",span:"md:col-span-2"},{src:qbe.url,caption:"Cocina con isla y office",span:"md:col-span-2"},{src:cxe.url,caption:"Vista superior del salón hacia el jardín",span:"md:col-span-2"},{src:Pbe.url,caption:"Dormitorio principal con terraza",span:"md:col-span-4"}],Ys=[...kf,...G2],$ve=[{name:"PLANTA BAJA",useful:"84,27 m² útiles",rooms:"Salón-comedor, cocina, dormitorio 1, 2 baños, 2 vestíbulos"},{name:"PLANTA PRIMERA",useful:"35,90 m² útiles",rooms:"Dormitorio 2, dormitorio 3, baño 3, pasillo"},{name:"PLANTA SÓTANO",useful:"42,88 m² útiles",rooms:"Estar y baño 4"}],Sve=()=>{const[e,t]=g.useState(null),n=g.useCallback(()=>t(null),[]),s=g.useCallback(()=>t(o=>o===null?null:(o-1+Ys.length)%Ys.length),[]),r=g.useCallback(()=>t(o=>o===null?null:(o+1)%Ys.length),[]);g.useEffect(()=>{if(e===null)return;const o=l=>{l.key==="Escape"&&n(),l.key==="ArrowLeft"&&s(),l.key==="ArrowRight"&&r()};return window.addEventListener("keydown",o),document.body.style.overflow="hidden",()=>{window.removeEventListener("keydown",o),document.body.style.overflow=""}},[e,n,s,r]);const i=(o,l)=>a.jsx("div",{className:"grid grid-cols-1 md:grid-cols-4 auto-rows-[280px] gap-4",children:o.map((c,d)=>a.jsxs("button",{onClick:()=>t(l+d),className:`group relative overflow-hidden bg-muted ${c.span}`,style:{animation:`fadeInUp 0.6s ease ${d*60}ms both`},children:[a.jsx("img",{src:c.src,alt:c.caption,loading:"lazy",className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-110"}),a.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/70 via-black/0 to-black/0 opacity-0 group-hover:opacity-100 transition-opacity duration-500"}),a.jsx("div",{className:"absolute bottom-0 left-0 right-0 p-5 translate-y-4 group-hover:translate-y-0 opacity-0 group-hover:opacity-100 transition-all duration-500",children:a.jsx("p",{className:"text-minimal text-white",children:c.caption})})]},d))});return a.jsxs("div",{className:"min-h-screen bg-background",children:[a.jsx(ue,{title:"Viviendas Costa Esuri — Modulya",description:"Viviendas Costa Esuri: viviendas modulares aisladas con sistema MODUSS, integradas en el entorno residencial de Ayamonte (Huelva).",path:"/work/costa-esuri"}),a.jsx(de,{}),a.jsx("section",{className:"pt-32 pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors mb-10",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]}),a.jsxs("div",{className:"grid md:grid-cols-3 gap-10 items-end",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("p",{className:"text-minimal mb-4",style:{color:"#b1c854"},children:"RESIDENCIAL · MODUSS"}),a.jsx("h1",{className:"text-5xl md:text-7xl font-light text-architectural leading-[1.05]",children:"Viviendas Costa Esuri"})]}),a.jsxs("div",{className:"space-y-2 md:text-right",children:[a.jsx("p",{className:"text-architectural font-medium",children:"Costa Esuri · Ayamonte, Huelva"}),a.jsx("p",{className:"text-muted-foreground",children:"Tipología: Viviendas aisladas"}),a.jsx("p",{className:"text-muted-foreground",children:"Programa: Planta sótano + baja + primera"}),a.jsx("p",{className:"text-muted-foreground",children:"Sup. construida: 131,00 m²"}),a.jsx("p",{className:"text-muted-foreground",children:"Documento base: Abril 2024"})]})]})]})})}),a.jsx("section",{className:"pb-20",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsx("div",{className:"w-full overflow-hidden relative",children:a.jsx("video",{src:Nve.url,poster:eh.url,autoPlay:!0,muted:!0,loop:!0,playsInl
865ine:!0,className:"w-full h-[70vh] object-cover"})})})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-4xl mx-auto space-y-8 text-muted-foreground leading-relaxed",children:[a.jsx("h2",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Viviendas aisladas industrializadas en el entorno de Costa Esuri"}),a.jsx("p",{children:"El proyecto plantea una vivienda unifamiliar aislada industrializada mediante el sistema MODUSS, resuelta en tres niveles —sótano, planta baja y planta primera— con un lenguaje contemporáneo de volúmenes blancos, paños de madera y grandes huecos protegidos por lamas."}),a.jsx("p",{children:"La planta baja se organiza en torno a un salón-comedor de 38 m² conectado con la cocina y con salida directa al jardín y a la piscina lineal privada. Un dormitorio principal con baño en suite completa la cota de acceso, mientras que la planta primera concentra dos dormitorios adicionales con baño compartido. El sótano incorpora un estar polivalente con baño propio."}),a.jsx("p",{children:"La implantación se estudia dentro de una parcelación radial característica de Costa Esuri, con distancias controladas entre viviendas, vegetación mediterránea y un tratamiento cuidadoso del acceso rodado y peatonal."})]})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"01 · EXTERIORES"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Volumetría y paisaje"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Fachadas, jardines y piscinas privadas dentro del conjunto residencial radial de Costa Esuri."})]}),i(kf,0)]})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"02 · INTERIORES"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Espacios domésticos"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Salón a doble altura, cocina abierta, escalera de madera y dormitorios con conexión visual al exterior."})]}),i(G2,kf.length)]})})}),a.jsx("section",{className:"pb-24",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsxs("div",{className:"max-w-7xl mx-auto",children:[a.jsxs("div",{className:"mb-12 flex items-end justify-between flex-wrap gap-4",children:[a.jsxs("div",{children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"03 · SUPERFICIES"}),a.jsx("h3",{className:"text-3xl md:text-5xl font-light text-architectural",children:"Programa por plantas"})]}),a.jsx("p",{className:"text-muted-foreground max-w-md",children:"Distribución útil de la vivienda aislada M1: 131,00 m² construidos en tres niveles."})]}),a.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:$ve.map(o=>a.jsxs("article",{className:"border border-border p-6 bg-background",children:[a.jsx("p",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:o.name}),a.jsx("h4",{className:"text-2xl font-light text-architectural mb-3",children:o.useful}),a.jsx("p",{className:"text-muted-foreground leading-relaxed",children:o.rooms})]},o.name))})]})})}),a.jsx("section",{className:"pb-32",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs("div",{className:"bg-muted p-10 md:p-16 grid md:grid-cols-3 gap-10 items-center",children:[a.jsxs("div",{className:"md:col-span-2",children:[a.jsx("h2",{className:"text-minimal mb-3",style:{color:"#b1c854"},children:"DOCUMENTACIÓN"}),a.jsx("h3",{className:"text-3xl md:text-4xl font-light text-architectural mb-4",children:"Planos técnicos del proyecto"}),a.jsx("p",{className:"text-muted-foreground leading-relaxed max-w-2xl",children:"Descarga el PDF con emplazamiento, plantas y perspectiva del modelo urbano de la vivienda aislada Costa Esuri."})]}),a.jsx("div",{className:"md:text-right",children:a.jsxs("a",{href:mve.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-3 px-6 py-4 bg-foreground text-background hover:opacity-80 transition-opacity",children:[a.jsx(Lt,{className:"w-5 h-5"}),a.jsx("span",{className:"text-minimal",children:"DESCARGAR PDF"})]})})]})})})}),e!==null&&a.jsxs("div",{className:"fixed inset-0 z-[100] bg-black/95 flex items-center justify-center animate-in fade-in duration-300",children:[a.jsx("button",{onClick:n,className:"absolute top-6 right-6 text-white/80 hover:text-white transition-colors z-10","aria-label":"Cerrar",children:a.jsx(Ue,{className:"w-8 h-8"})}),a.jsx("button",{onClick:s,className:"absolute left-4 md:left-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Anterior",children:a.jsx(zt,{className:"w-10 h-10"})}),a.jsx("button",{onClick:r,className:"absolute right-4 md:right-8 text-white/70 hover:text-white transition-colors z-10 p-2","aria-label":"Siguiente",children:a.jsx(It,{className:"w-10 h-10"})}),a.jsxs("div",{className:"max-w-7xl w-full h-full flex flex-col items-center justify-center px-4 md:px-20 py-16",children:[a.jsx("img",{src:Ys[e].src,alt:Ys[e].caption,className:"max-h-[80vh] max-w-full object-contain animate-in fade-in zoom-in-95 duration-500"},e),a.jsxs("div",{className:"mt-6 flex items-center justify-between w-full max-w-3xl text-white/80",children:[a.jsx("p",{className:"text-minimal",children:Ys[e].caption}),a.jsxs("p",{className:"text-minimal text-white/50",children:[String(e+1).padStart(2,"0")," / ",String(Ys.length).padStart(2,"0")]})]})]})]}),a.jsx("style",{children:`
866        @keyframes fadeInUp {
867          from { opacity: 0; transform: translateY(24px); }
868          to { opacity: 1; transform: translateY(0); }
869        }
870      `}),a.jsx("section",{className:"pb-12",children:a.jsx("div",{className:"container mx-auto px-6",children:a.jsx("div",{className:"max-w-7xl mx-auto",children:a.jsxs(F,{to:"/work",className:"inline-flex items-center gap-2 text-minimal text-muted-foreground hover:text-foreground transition-colors",children:[a.jsx(ae,{className:"w-4 h-4"}),"VOLVER A PROYECTOS"]})})})}),a.jsx(fe,{})]})},Eve=()=>{const e=Ds();return g.useEffect(()=>{console.error("404 Error: User attempted to access non-existent route:",e.pathname)},[e.pathname]),a.jsxs("div",{className:"flex min-h-screen items-center justify-center bg-background",children:[a.jsxs("div",{className:"text-center",children:[a.jsx("h1",{className:"mb-4 text-4xl font-bold text-foreground",children:"404"}),a.jsx("p",{className:"mb-4 text-xl text-muted-foreground",children:"¡Ups! Página no encontrada"}),a.jsx("a",{href:"/",className:"text-primary underline hover:text-primary/80",children:"Volver al Inicio"})]}),a.jsx(fe,{})]})},Cve=new r8,Tve=()=>a.jsx(o8,{client:Cve,children:a.jsxs(z3,{children:[a.jsx(v7,{}),a.jsx(Y7,{}),a.jsxs(a6,{children:[a.jsx(l6,{}),a.jsx(g6,{}),a.jsx(y6,{}),a.jsxs(Y8,{children:[a.jsx(oe,{path:"/",element:a.jsx(kS,{})}),a.jsx(oe,{path:"/work",element:a.jsx(IC,{})}),a.jsx(oe,{path:"/e2e",element:a.jsx(LC,{})}),a.jsx(oe,{path:"/fabrica",element:a.jsx(MC,{})}),a.jsx(oe,{path:"/ia",element:a.jsx(zP,{})}),a.jsx(oe,{path:"/services",element:a.jsx(HC,{})}),a.jsx(oe,{path:"/about",element:a.jsx(tT,{})}),a.jsx(oe,{path:"/contact",element:a.jsx(iP,{})}),a.jsx(oe,{path:"/privacidad",element:a.jsx(oP,{})}),a.jsx(oe,{path:"/cookies",element:a.jsx(lP,{})}),a.jsx(oe,{path:"/blog",element:a.jsx(cP,{})}),a.jsx(oe,{path:"/blog/:id",element:a.jsx(dP,{})}),a.jsx(oe,{path:"/work/casa-del-guarda",element:a.jsx(HP,{})}),a.jsx(oe,{path:"/work/frescapricho",element:a.jsx(WM,{})}),a.jsx(oe,{path:"/work/centro-cultural",element:a.jsx(_B,{})}),a.jsx(oe,{path:"/work/loft-urbano",element:a.jsx(UJ,{})}),a.jsx(oe,{path:"/work/edificio-industrial",element:a.jsx(FJ,{})}),a.jsx(oe,{path:"/work/villas-juliana",element:a.jsx(QY,{})}),a.jsx(oe,{path:"/work/bormujos-village",element:a.jsx(zX,{})}),a.jsx(oe,{path:"/work/viviendas-villarrasa",element:a.jsx(Iae,{})}),a.jsx(oe,{path:"/work/senior-living-cuatrovitas",element:a.jsx(wre,{})}),a.jsx(oe,{path:"/work/senior-living-almonte",element:a.jsx(Eie,{})}),a.jsx(oe,{path:"/work/senior-living-mazagon",element:a.jsx(Tle,{})}),a.jsx(oe,{path:"/work/oficinas-rota",element:a.jsx(epe,{})}),a.jsx(oe,{path:"/work/alojamientos-donana",element:a.jsx(c0e,{})}),a.jsx(oe,{path:"/work/aster-district",element:a.jsx(pbe,{})}),a.jsx(oe,{path:"/work/costa-esuri",element:a.jsx(Sve,{})}),a.jsx(oe,{path:"*",element:a.jsx(Eve,{})})]})]})]})});Ix(document.getElementById("root")).render(a.jsx(g.StrictMode,{children:a.jsx(qx,{children:a.jsx(w6,{defaultTheme:"system",storageKey:"architecture-theme",children:a.jsx(Tve,{})})})}));

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.