var kT=e=>{throw TypeError(e)};var _T=(e,t,n)=>t.has(e)||kT("Cannot "+n);var vr=(e,t,n)=>(_T(e,t,"read from private field"),n?n.call(e):t.get(e)),ST=(e,t,n)=>t.has(e)?kT("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n),gw=(e,t,n,a)=>(_T(e,t,"write to private field"),a?a.call(e,n):t.set(e,n),n);function hR(e,t){for(var n=0;n<t.length;n++){const a=t[n];if(typeof a!="string"&&!Array.isArray(a)){for(const i in a)if(i!=="default"&&!(i in e)){const s=Object.getOwnPropertyDescriptor(a,i);s&&Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:()=>a[i]})}}}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 i of document.querySelectorAll('link[rel="modulepreload"]'))a(i);new MutationObserver(i=>{for(const s of i)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&a(o)}).observe(document,{childList:!0,subtree:!0});function n(i){const s={};return i.integrity&&(s.integrity=i.integrity),i.referrerPolicy&&(s.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?s.credentials="include":i.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function a(i){if(i.ep)return;i.ep=!0;const s=n(i);fetch(i.href,s)}})();var ix=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Qa(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function ep(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var n=function a(){var i=!1;try{i=this instanceof a}catch{}return i?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(a){var i=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(n,a,i.get?i:{enumerable:!0,get:function(){return e[a]}})}),n}var xw={exports:{}},Pf={},yw={exports:{}},jt={};var CT;function eW(){if(CT)return jt;CT=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),o=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),h=Symbol.for("react.memo"),m=Symbol.for("react.lazy"),p=Symbol.iterator;function x(V){return V===null||typeof V!="object"?null:(V=p&&V[p]||V["@@iterator"],typeof V=="function"?V:null)}var b={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},j=Object.assign,N={};function _(V,re,be){this.props=V,this.context=re,this.refs=N,this.updater=be||b}_.prototype.isReactComponent={},_.prototype.setState=function(V,re){if(typeof V!="object"&&typeof V!="function"&&V!=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,V,re,"setState")},_.prototype.forceUpdate=function(V){this.updater.enqueueForceUpdate(this,V,"forceUpdate")};function S(){}S.prototype=_.prototype;function A(V,re,be){this.props=V,this.context=re,this.refs=N,this.updater=be||b}var P=A.prototype=new S;P.constructor=A,j(P,_.prototype),P.isPureReactComponent=!0;var I=Array.isArray,O=Object.prototype.hasOwnProperty,M={current:null},z={key:!0,ref:!0,__self:!0,__source:!0};function $(V,re,be){var ge,Ne={},we=null,Fe=null;if(re!=null)for(ge in re.ref!==void 0&&(Fe=re.ref),re.key!==void 0&&(we=""+re.key),re)O.call(re,ge)&&!z.hasOwnProperty(ge)&&(Ne[ge]=re[ge]);var Ce=arguments.length-2;if(Ce===1)Ne.children=be;else if(1<Ce){for(var me=Array(Ce),Ae=0;Ae<Ce;Ae++)me[Ae]=arguments[Ae+2];Ne.children=me}if(V&&V.defaultProps)for(ge in Ce=V.defaultProps,Ce)Ne[ge]===void 0&&(Ne[ge]=Ce[ge]);return{$$typeof:e,type:V,key:we,ref:Fe,props:Ne,_owner:M.current}}function K(V,re){return{$$typeof:e,type:V.type,key:re,ref:V.ref,props:V.props,_owner:V._owner}}function X(V){return typeof V=="object"&&V!==null&&V.$$typeof===e}function te(V){var re={"=":"=0",":":"=2"};return"$"+V.replace(/[=:]/g,function(be){return re[be]})}var q=/\/+/g;function he(V,re){return typeof V=="object"&&V!==null&&V.key!=null?te(""+V.key):re.toString(36)}function ne(V,re,be,ge,Ne){var we=typeof V;(we==="undefined"||we==="boolean")&&(V=null);var Fe=!1;if(V===null)Fe=!0;else switch(we){case"string":case"number":Fe=!0;break;case"object":switch(V.$$typeof){case e:case t:Fe=!0}}if(Fe)return Fe=V,Ne=Ne(Fe),V=ge===""?"."+he(Fe,0):ge,I(Ne)?(be="",V!=null&&(be=V.replace(q,"$&/")+"/"),ne(Ne,re,be,"",function(Ae){return Ae})):Ne!=null&&(X(Ne)&&(Ne=K(Ne,be+(!Ne.key||Fe&&Fe.key===Ne.key?"":(""+Ne.key).replace(q,"$&/")+"/")+V)),re.push(Ne)),1;if(Fe=0,ge=ge===""?".":ge+":",I(V))for(var Ce=0;Ce<V.length;Ce++){we=V[Ce];var me=ge+he(we,Ce);Fe+=ne(we,re,be,me,Ne)}else if(me=x(V),typeof me=="function")for(V=me.call(V),Ce=0;!(we=V.next()).done;)we=we.value,me=ge+he(we,Ce++),Fe+=ne(we,re,be,me,Ne);else if(we==="object")throw re=String(V),Error("Objects are not valid as a React child (found: "+(re==="[object Object]"?"object with keys {"+Object.keys(V).join(", ")+"}":re)+"). If you meant to render a collection of children, use an array instead.");return Fe}function G(V,re,be){if(V==null)return V;var ge=[],Ne=0;return ne(V,ge,"","",function(we){return re.call(be,we,Ne++)}),ge}function H(V){if(V._status===-1){var re=V._result;re=re(),re.then(function(be){(V._status===0||V._status===-1)&&(V._status=1,V._result=be)},function(be){(V._status===0||V._status===-1)&&(V._status=2,V._result=be)}),V._status===-1&&(V._status=0,V._result=re)}if(V._status===1)return V._result.default;throw V._result}var Q={current:null},W={transition:null},ie={ReactCurrentDispatcher:Q,ReactCurrentBatchConfig:W,ReactCurrentOwner:M};function Y(){throw Error("act(...) is not supported in production builds of React.")}return jt.Children={map:G,forEach:function(V,re,be){G(V,function(){re.apply(this,arguments)},be)},count:function(V){var re=0;return G(V,function(){re++}),re},toArray:function(V){return G(V,function(re){return re})||[]},only:function(V){if(!X(V))throw Error("React.Children.only expected to receive a single React element child.");return V}},jt.Component=_,jt.Fragment=n,jt.Profiler=i,jt.PureComponent=A,jt.StrictMode=a,jt.Suspense=c,jt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ie,jt.act=Y,jt.cloneElement=function(V,re,be){if(V==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+V+".");var ge=j({},V.props),Ne=V.key,we=V.ref,Fe=V._owner;if(re!=null){if(re.ref!==void 0&&(we=re.ref,Fe=M.current),re.key!==void 0&&(Ne=""+re.key),V.type&&V.type.defaultProps)var Ce=V.type.defaultProps;for(me in re)O.call(re,me)&&!z.hasOwnProperty(me)&&(ge[me]=re[me]===void 0&&Ce!==void 0?Ce[me]:re[me])}var me=arguments.length-2;if(me===1)ge.children=be;else if(1<me){Ce=Array(me);for(var Ae=0;Ae<me;Ae++)Ce[Ae]=arguments[Ae+2];ge.children=Ce}return{$$typeof:e,type:V.type,key:Ne,ref:we,props:ge,_owner:Fe}},jt.createContext=function(V){return V={$$typeof:o,_currentValue:V,_currentValue2:V,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},V.Provider={$$typeof:s,_context:V},V.Consumer=V},jt.createElement=$,jt.createFactory=function(V){var re=$.bind(null,V);return re.type=V,re},jt.createRef=function(){return{current:null}},jt.forwardRef=function(V){return{$$typeof:l,render:V}},jt.isValidElement=X,jt.lazy=function(V){return{$$typeof:m,_payload:{_status:-1,_result:V},_init:H}},jt.memo=function(V,re){return{$$typeof:h,type:V,compare:re===void 0?null:re}},jt.startTransition=function(V){var re=W.transition;W.transition={};try{V()}finally{W.transition=re}},jt.unstable_act=Y,jt.useCallback=function(V,re){return Q.current.useCallback(V,re)},jt.useContext=function(V){return Q.current.useContext(V)},jt.useDebugValue=function(){},jt.useDeferredValue=function(V){return Q.current.useDeferredValue(V)},jt.useEffect=function(V,re){return Q.current.useEffect(V,re)},jt.useId=function(){return Q.current.useId()},jt.useImperativeHandle=function(V,re,be){return Q.current.useImperativeHandle(V,re,be)},jt.useInsertionEffect=function(V,re){return Q.current.useInsertionEffect(V,re)},jt.useLayoutEffect=function(V,re){return Q.current.useLayoutEffect(V,re)},jt.useMemo=function(V,re){return Q.current.useMemo(V,re)},jt.useReducer=function(V,re,be){return Q.current.useReducer(V,re,be)},jt.useRef=function(V){return Q.current.useRef(V)},jt.useState=function(V){return Q.current.useState(V)},jt.useSyncExternalStore=function(V,re,be){return Q.current.useSyncExternalStore(V,re,be)},jt.useTransition=function(){return Q.current.useTransition()},jt.version="18.3.1",jt}var TT;function Wc(){return TT||(TT=1,yw.exports=eW()),yw.exports}var AT;function tW(){if(AT)return Pf;AT=1;var e=Wc(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),a=Object.prototype.hasOwnProperty,i=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function o(l,c,h){var m,p={},x=null,b=null;h!==void 0&&(x=""+h),c.key!==void 0&&(x=""+c.key),c.ref!==void 0&&(b=c.ref);for(m in c)a.call(c,m)&&!s.hasOwnProperty(m)&&(p[m]=c[m]);if(l&&l.defaultProps)for(m in c=l.defaultProps,c)p[m]===void 0&&(p[m]=c[m]);return{$$typeof:t,type:l,key:x,ref:b,props:p,_owner:i.current}}return Pf.Fragment=n,Pf.jsx=o,Pf.jsxs=o,Pf}var PT;function nW(){return PT||(PT=1,xw.exports=tW()),xw.exports}var r=nW(),v=Wc();const an=Qa(v),Vc=hR({__proto__:null,default:an},[v]);var sx={},vw={exports:{}},Yr={},bw={exports:{}},ww={};var ET;function rW(){return ET||(ET=1,(function(e){function t(W,ie){var Y=W.length;W.push(ie);e:for(;0<Y;){var V=Y-1>>>1,re=W[V];if(0<i(re,ie))W[V]=ie,W[Y]=re,Y=V;else break e}}function n(W){return W.length===0?null:W[0]}function a(W){if(W.length===0)return null;var ie=W[0],Y=W.pop();if(Y!==ie){W[0]=Y;e:for(var V=0,re=W.length,be=re>>>1;V<be;){var ge=2*(V+1)-1,Ne=W[ge],we=ge+1,Fe=W[we];if(0>i(Ne,Y))we<re&&0>i(Fe,Ne)?(W[V]=Fe,W[we]=Y,V=we):(W[V]=Ne,W[ge]=Y,V=ge);else if(we<re&&0>i(Fe,Y))W[V]=Fe,W[we]=Y,V=we;else break e}}return ie}function i(W,ie){var Y=W.sortIndex-ie.sortIndex;return Y!==0?Y:W.id-ie.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;e.unstable_now=function(){return s.now()}}else{var o=Date,l=o.now();e.unstable_now=function(){return o.now()-l}}var c=[],h=[],m=1,p=null,x=3,b=!1,j=!1,N=!1,_=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,A=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function P(W){for(var ie=n(h);ie!==null;){if(ie.callback===null)a(h);else if(ie.startTime<=W)a(h),ie.sortIndex=ie.expirationTime,t(c,ie);else break;ie=n(h)}}function I(W){if(N=!1,P(W),!j)if(n(c)!==null)j=!0,H(O);else{var ie=n(h);ie!==null&&Q(I,ie.startTime-W)}}function O(W,ie){j=!1,N&&(N=!1,S($),$=-1),b=!0;var Y=x;try{for(P(ie),p=n(c);p!==null&&(!(p.expirationTime>ie)||W&&!te());){var V=p.callback;if(typeof V=="function"){p.callback=null,x=p.priorityLevel;var re=V(p.expirationTime<=ie);ie=e.unstable_now(),typeof re=="function"?p.callback=re:p===n(c)&&a(c),P(ie)}else a(c);p=n(c)}if(p!==null)var be=!0;else{var ge=n(h);ge!==null&&Q(I,ge.startTime-ie),be=!1}return be}finally{p=null,x=Y,b=!1}}var M=!1,z=null,$=-1,K=5,X=-1;function te(){return!(e.unstable_now()-X<K)}function q(){if(z!==null){var W=e.unstable_now();X=W;var ie=!0;try{ie=z(!0,W)}finally{ie?he():(M=!1,z=null)}}else M=!1}var he;if(typeof A=="function")he=function(){A(q)};else if(typeof MessageChannel<"u"){var ne=new MessageChannel,G=ne.port2;ne.port1.onmessage=q,he=function(){G.postMessage(null)}}else he=function(){_(q,0)};function H(W){z=W,M||(M=!0,he())}function Q(W,ie){$=_(function(){W(e.unstable_now())},ie)}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(W){W.callback=null},e.unstable_continueExecution=function(){j||b||(j=!0,H(O))},e.unstable_forceFrameRate=function(W){0>W||125<W?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):K=0<W?Math.floor(1e3/W):5},e.unstable_getCurrentPriorityLevel=function(){return x},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(W){switch(x){case 1:case 2:case 3:var ie=3;break;default:ie=x}var Y=x;x=ie;try{return W()}finally{x=Y}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(W,ie){switch(W){case 1:case 2:case 3:case 4:case 5:break;default:W=3}var Y=x;x=W;try{return ie()}finally{x=Y}},e.unstable_scheduleCallback=function(W,ie,Y){var V=e.unstable_now();switch(typeof Y=="object"&&Y!==null?(Y=Y.delay,Y=typeof Y=="number"&&0<Y?V+Y:V):Y=V,W){case 1:var re=-1;break;case 2:re=250;break;case 5:re=1073741823;break;case 4:re=1e4;break;default:re=5e3}return re=Y+re,W={id:m++,callback:ie,priorityLevel:W,startTime:Y,expirationTime:re,sortIndex:-1},Y>V?(W.sortIndex=Y,t(h,W),n(c)===null&&W===n(h)&&(N?(S($),$=-1):N=!0,Q(I,Y-V))):(W.sortIndex=re,t(c,W),j||b||(j=!0,H(O))),W},e.unstable_shouldYield=te,e.unstable_wrapCallback=function(W){var ie=x;return function(){var Y=x;x=ie;try{return W.apply(this,arguments)}finally{x=Y}}}})(ww)),ww}var OT;function aW(){return OT||(OT=1,bw.exports=rW()),bw.exports}var RT;function iW(){if(RT)return Yr;RT=1;var e=Wc(),t=aW();function n(d){for(var f="https://reactjs.org/docs/error-decoder.html?invariant="+d,y=1;y<arguments.length;y++)f+="&args[]="+encodeURIComponent(arguments[y]);return"Minified React error #"+d+"; visit "+f+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var a=new Set,i={};function s(d,f){o(d,f),o(d+"Capture",f)}function o(d,f){for(i[d]=f,d=0;d<f.length;d++)a.add(f[d])}var l=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),c=Object.prototype.hasOwnProperty,h=/^[: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]*$/,m={},p={};function x(d){return c.call(p,d)?!0:c.call(m,d)?!1:h.test(d)?p[d]=!0:(m[d]=!0,!1)}function b(d,f,y,k){if(y!==null&&y.type===0)return!1;switch(typeof f){case"function":case"symbol":return!0;case"boolean":return k?!1:y!==null?!y.acceptsBooleans:(d=d.toLowerCase().slice(0,5),d!=="data-"&&d!=="aria-");default:return!1}}function j(d,f,y,k){if(f===null||typeof f>"u"||b(d,f,y,k))return!0;if(k)return!1;if(y!==null)switch(y.type){case 3:return!f;case 4:return f===!1;case 5:return isNaN(f);case 6:return isNaN(f)||1>f}return!1}function N(d,f,y,k,T,E,D){this.acceptsBooleans=f===2||f===3||f===4,this.attributeName=k,this.attributeNamespace=T,this.mustUseProperty=y,this.propertyName=d,this.type=f,this.sanitizeURL=E,this.removeEmptyString=D}var _={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(d){_[d]=new N(d,0,!1,d,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(d){var f=d[0];_[f]=new N(f,1,!1,d[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(d){_[d]=new N(d,2,!1,d.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(d){_[d]=new N(d,2,!1,d,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(d){_[d]=new N(d,3,!1,d.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(d){_[d]=new N(d,3,!0,d,null,!1,!1)}),["capture","download"].forEach(function(d){_[d]=new N(d,4,!1,d,null,!1,!1)}),["cols","rows","size","span"].forEach(function(d){_[d]=new N(d,6,!1,d,null,!1,!1)}),["rowSpan","start"].forEach(function(d){_[d]=new N(d,5,!1,d.toLowerCase(),null,!1,!1)});var S=/[\-:]([a-z])/g;function A(d){return d[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(d){var f=d.replace(S,A);_[f]=new N(f,1,!1,d,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(d){var f=d.replace(S,A);_[f]=new N(f,1,!1,d,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(d){var f=d.replace(S,A);_[f]=new N(f,1,!1,d,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(d){_[d]=new N(d,1,!1,d.toLowerCase(),null,!1,!1)}),_.xlinkHref=new N("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(d){_[d]=new N(d,1,!1,d.toLowerCase(),null,!0,!0)});function P(d,f,y,k){var T=_.hasOwnProperty(f)?_[f]:null;(T!==null?T.type!==0:k||!(2<f.length)||f[0]!=="o"&&f[0]!=="O"||f[1]!=="n"&&f[1]!=="N")&&(j(f,y,T,k)&&(y=null),k||T===null?x(f)&&(y===null?d.removeAttribute(f):d.setAttribute(f,""+y)):T.mustUseProperty?d[T.propertyName]=y===null?T.type===3?!1:"":y:(f=T.attributeName,k=T.attributeNamespace,y===null?d.removeAttribute(f):(T=T.type,y=T===3||T===4&&y===!0?"":""+y,k?d.setAttributeNS(k,f,y):d.setAttribute(f,y))))}var I=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,O=Symbol.for("react.element"),M=Symbol.for("react.portal"),z=Symbol.for("react.fragment"),$=Symbol.for("react.strict_mode"),K=Symbol.for("react.profiler"),X=Symbol.for("react.provider"),te=Symbol.for("react.context"),q=Symbol.for("react.forward_ref"),he=Symbol.for("react.suspense"),ne=Symbol.for("react.suspense_list"),G=Symbol.for("react.memo"),H=Symbol.for("react.lazy"),Q=Symbol.for("react.offscreen"),W=Symbol.iterator;function ie(d){return d===null||typeof d!="object"?null:(d=W&&d[W]||d["@@iterator"],typeof d=="function"?d:null)}var Y=Object.assign,V;function re(d){if(V===void 0)try{throw Error()}catch(y){var f=y.stack.trim().match(/\n( *(at )?)/);V=f&&f[1]||""}return`
`+V+d}var be=!1;function ge(d,f){if(!d||be)return"";be=!0;var y=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(f)if(f=function(){throw Error()},Object.defineProperty(f.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(f,[])}catch(ue){var k=ue}Reflect.construct(d,[],f)}else{try{f.call()}catch(ue){k=ue}d.call(f.prototype)}else{try{throw Error()}catch(ue){k=ue}d()}}catch(ue){if(ue&&k&&typeof ue.stack=="string"){for(var T=ue.stack.split(`
`),E=k.stack.split(`
`),D=T.length-1,U=E.length-1;1<=D&&0<=U&&T[D]!==E[U];)U--;for(;1<=D&&0<=U;D--,U--)if(T[D]!==E[U]){if(D!==1||U!==1)do if(D--,U--,0>U||T[D]!==E[U]){var J=`
`+T[D].replace(" at new "," at ");return d.displayName&&J.includes("<anonymous>")&&(J=J.replace("<anonymous>",d.displayName)),J}while(1<=D&&0<=U);break}}}finally{be=!1,Error.prepareStackTrace=y}return(d=d?d.displayName||d.name:"")?re(d):""}function Ne(d){switch(d.tag){case 5:return re(d.type);case 16:return re("Lazy");case 13:return re("Suspense");case 19:return re("SuspenseList");case 0:case 2:case 15:return d=ge(d.type,!1),d;case 11:return d=ge(d.type.render,!1),d;case 1:return d=ge(d.type,!0),d;default:return""}}function we(d){if(d==null)return null;if(typeof d=="function")return d.displayName||d.name||null;if(typeof d=="string")return d;switch(d){case z:return"Fragment";case M:return"Portal";case K:return"Profiler";case $:return"StrictMode";case he:return"Suspense";case ne:return"SuspenseList"}if(typeof d=="object")switch(d.$$typeof){case te:return(d.displayName||"Context")+".Consumer";case X:return(d._context.displayName||"Context")+".Provider";case q:var f=d.render;return d=d.displayName,d||(d=f.displayName||f.name||"",d=d!==""?"ForwardRef("+d+")":"ForwardRef"),d;case G:return f=d.displayName||null,f!==null?f:we(d.type)||"Memo";case H:f=d._payload,d=d._init;try{return we(d(f))}catch{}}return null}function Fe(d){var f=d.type;switch(d.tag){case 24:return"Cache";case 9:return(f.displayName||"Context")+".Consumer";case 10:return(f._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return d=f.render,d=d.displayName||d.name||"",f.displayName||(d!==""?"ForwardRef("+d+")":"ForwardRef");case 7:return"Fragment";case 5:return f;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return we(f);case 8:return f===$?"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 f=="function")return f.displayName||f.name||null;if(typeof f=="string")return f}return null}function Ce(d){switch(typeof d){case"boolean":case"number":case"string":case"undefined":return d;case"object":return d;default:return""}}function me(d){var f=d.type;return(d=d.nodeName)&&d.toLowerCase()==="input"&&(f==="checkbox"||f==="radio")}function Ae(d){var f=me(d)?"checked":"value",y=Object.getOwnPropertyDescriptor(d.constructor.prototype,f),k=""+d[f];if(!d.hasOwnProperty(f)&&typeof y<"u"&&typeof y.get=="function"&&typeof y.set=="function"){var T=y.get,E=y.set;return Object.defineProperty(d,f,{configurable:!0,get:function(){return T.call(this)},set:function(D){k=""+D,E.call(this,D)}}),Object.defineProperty(d,f,{enumerable:y.enumerable}),{getValue:function(){return k},setValue:function(D){k=""+D},stopTracking:function(){d._valueTracker=null,delete d[f]}}}}function Te(d){d._valueTracker||(d._valueTracker=Ae(d))}function fe(d){if(!d)return!1;var f=d._valueTracker;if(!f)return!0;var y=f.getValue(),k="";return d&&(k=me(d)?d.checked?"true":"false":d.value),d=k,d!==y?(f.setValue(d),!0):!1}function tt(d){if(d=d||(typeof document<"u"?document:void 0),typeof d>"u")return null;try{return d.activeElement||d.body}catch{return d.body}}function at(d,f){var y=f.checked;return Y({},f,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:y??d._wrapperState.initialChecked})}function Oe(d,f){var y=f.defaultValue==null?"":f.defaultValue,k=f.checked!=null?f.checked:f.defaultChecked;y=Ce(f.value!=null?f.value:y),d._wrapperState={initialChecked:k,initialValue:y,controlled:f.type==="checkbox"||f.type==="radio"?f.checked!=null:f.value!=null}}function cn(d,f){f=f.checked,f!=null&&P(d,"checked",f,!1)}function On(d,f){cn(d,f);var y=Ce(f.value),k=f.type;if(y!=null)k==="number"?(y===0&&d.value===""||d.value!=y)&&(d.value=""+y):d.value!==""+y&&(d.value=""+y);else if(k==="submit"||k==="reset"){d.removeAttribute("value");return}f.hasOwnProperty("value")?Oh(d,f.type,y):f.hasOwnProperty("defaultValue")&&Oh(d,f.type,Ce(f.defaultValue)),f.checked==null&&f.defaultChecked!=null&&(d.defaultChecked=!!f.defaultChecked)}function Hr(d,f,y){if(f.hasOwnProperty("value")||f.hasOwnProperty("defaultValue")){var k=f.type;if(!(k!=="submit"&&k!=="reset"||f.value!==void 0&&f.value!==null))return;f=""+d._wrapperState.initialValue,y||f===d.value||(d.value=f),d.defaultValue=f}y=d.name,y!==""&&(d.name=""),d.defaultChecked=!!d._wrapperState.initialChecked,y!==""&&(d.name=y)}function Oh(d,f,y){(f!=="number"||tt(d.ownerDocument)!==d)&&(y==null?d.defaultValue=""+d._wrapperState.initialValue:d.defaultValue!==""+y&&(d.defaultValue=""+y))}var bo=Array.isArray;function Oi(d,f,y,k){if(d=d.options,f){f={};for(var T=0;T<y.length;T++)f["$"+y[T]]=!0;for(y=0;y<d.length;y++)T=f.hasOwnProperty("$"+d[y].value),d[y].selected!==T&&(d[y].selected=T),T&&k&&(d[y].defaultSelected=!0)}else{for(y=""+Ce(y),f=null,T=0;T<d.length;T++){if(d[T].value===y){d[T].selected=!0,k&&(d[T].defaultSelected=!0);return}f!==null||d[T].disabled||(f=d[T])}f!==null&&(f.selected=!0)}}function Qc(d,f){if(f.dangerouslySetInnerHTML!=null)throw Error(n(91));return Y({},f,{value:void 0,defaultValue:void 0,children:""+d._wrapperState.initialValue})}function Rh(d,f){var y=f.value;if(y==null){if(y=f.children,f=f.defaultValue,y!=null){if(f!=null)throw Error(n(92));if(bo(y)){if(1<y.length)throw Error(n(93));y=y[0]}f=y}f==null&&(f=""),y=f}d._wrapperState={initialValue:Ce(y)}}function Dp(d,f){var y=Ce(f.value),k=Ce(f.defaultValue);y!=null&&(y=""+y,y!==d.value&&(d.value=y),f.defaultValue==null&&d.defaultValue!==y&&(d.defaultValue=y)),k!=null&&(d.defaultValue=""+k)}function Bp(d){var f=d.textContent;f===d._wrapperState.initialValue&&f!==""&&f!==null&&(d.value=f)}function ed(d){switch(d){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 td(d,f){return d==null||d==="http://www.w3.org/1999/xhtml"?ed(f):d==="http://www.w3.org/2000/svg"&&f==="foreignObject"?"http://www.w3.org/1999/xhtml":d}var Pl,Fp=(function(d){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(f,y,k,T){MSApp.execUnsafeLocalFunction(function(){return d(f,y,k,T)})}:d})(function(d,f){if(d.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in d)d.innerHTML=f;else{for(Pl=Pl||document.createElement("div"),Pl.innerHTML="<svg>"+f.valueOf().toString()+"</svg>",f=Pl.firstChild;d.firstChild;)d.removeChild(d.firstChild);for(;f.firstChild;)d.appendChild(f.firstChild)}});function wo(d,f){if(f){var y=d.firstChild;if(y&&y===d.lastChild&&y.nodeType===3){y.nodeValue=f;return}}d.textContent=f}var jo={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},q0=["Webkit","ms","Moz","O"];Object.keys(jo).forEach(function(d){q0.forEach(function(f){f=f+d.charAt(0).toUpperCase()+d.substring(1),jo[f]=jo[d]})});function Ih(d,f,y){return f==null||typeof f=="boolean"||f===""?"":y||typeof f!="number"||f===0||jo.hasOwnProperty(d)&&jo[d]?(""+f).trim():f+"px"}function nd(d,f){d=d.style;for(var y in f)if(f.hasOwnProperty(y)){var k=y.indexOf("--")===0,T=Ih(y,f[y],k);y==="float"&&(y="cssFloat"),k?d.setProperty(y,T):d[y]=T}}var zp=Y({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 Mh(d,f){if(f){if(zp[d]&&(f.children!=null||f.dangerouslySetInnerHTML!=null))throw Error(n(137,d));if(f.dangerouslySetInnerHTML!=null){if(f.children!=null)throw Error(n(60));if(typeof f.dangerouslySetInnerHTML!="object"||!("__html"in f.dangerouslySetInnerHTML))throw Error(n(61))}if(f.style!=null&&typeof f.style!="object")throw Error(n(62))}}function ms(d,f){if(d.indexOf("-")===-1)return typeof f.is=="string";switch(d){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 Lh=null;function Dh(d){return d=d.target||d.srcElement||window,d.correspondingUseElement&&(d=d.correspondingUseElement),d.nodeType===3?d.parentNode:d}var rd=null,ps=null,gs=null;function $p(d){if(d=Ts(d)){if(typeof rd!="function")throw Error(n(280));var f=d.stateNode;f&&(f=Pd(f),rd(d.stateNode,d.type,f))}}function Hp(d){ps?gs?gs.push(d):gs=[d]:ps=d}function Wp(){if(ps){var d=ps,f=gs;if(gs=ps=null,$p(d),f)for(d=0;d<f.length;d++)$p(f[d])}}function Vp(d,f){return d(f)}function Up(){}var Bh=!1;function ad(d,f,y){if(Bh)return d(f,y);Bh=!0;try{return Vp(d,f,y)}finally{Bh=!1,(ps!==null||gs!==null)&&(Up(),Wp())}}function El(d,f){var y=d.stateNode;if(y===null)return null;var k=Pd(y);if(k===null)return null;y=k[f];e:switch(f){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(k=!k.disabled)||(d=d.type,k=!(d==="button"||d==="input"||d==="select"||d==="textarea")),d=!k;break e;default:d=!1}if(d)return null;if(y&&typeof y!="function")throw Error(n(231,f,typeof y));return y}var Fh=!1;if(l)try{var Ol={};Object.defineProperty(Ol,"passive",{get:function(){Fh=!0}}),window.addEventListener("test",Ol,Ol),window.removeEventListener("test",Ol,Ol)}catch{Fh=!1}function G0(d,f,y,k,T,E,D,U,J){var ue=Array.prototype.slice.call(arguments,3);try{f.apply(y,ue)}catch(ye){this.onError(ye)}}var ur=!1,Be=null,Rl=!1,id=null,qp={onError:function(d){ur=!0,Be=d}};function Gp(d,f,y,k,T,E,D,U,J){ur=!1,Be=null,G0.apply(qp,arguments)}function zh(d,f,y,k,T,E,D,U,J){if(Gp.apply(this,arguments),ur){if(ur){var ue=Be;ur=!1,Be=null}else throw Error(n(198));Rl||(Rl=!0,id=ue)}}function Ri(d){var f=d,y=d;if(d.alternate)for(;f.return;)f=f.return;else{d=f;do f=d,(f.flags&4098)!==0&&(y=f.return),d=f.return;while(d)}return f.tag===3?y:null}function xs(d){if(d.tag===13){var f=d.memoizedState;if(f===null&&(d=d.alternate,d!==null&&(f=d.memoizedState)),f!==null)return f.dehydrated}return null}function $h(d){if(Ri(d)!==d)throw Error(n(188))}function K0(d){var f=d.alternate;if(!f){if(f=Ri(d),f===null)throw Error(n(188));return f!==d?null:d}for(var y=d,k=f;;){var T=y.return;if(T===null)break;var E=T.alternate;if(E===null){if(k=T.return,k!==null){y=k;continue}break}if(T.child===E.child){for(E=T.child;E;){if(E===y)return $h(T),d;if(E===k)return $h(T),f;E=E.sibling}throw Error(n(188))}if(y.return!==k.return)y=T,k=E;else{for(var D=!1,U=T.child;U;){if(U===y){D=!0,y=T,k=E;break}if(U===k){D=!0,k=T,y=E;break}U=U.sibling}if(!D){for(U=E.child;U;){if(U===y){D=!0,y=E,k=T;break}if(U===k){D=!0,k=E,y=T;break}U=U.sibling}if(!D)throw Error(n(189))}}if(y.alternate!==k)throw Error(n(190))}if(y.tag!==3)throw Error(n(188));return y.stateNode.current===y?d:f}function Kp(d){return d=K0(d),d!==null?Zp(d):null}function Zp(d){if(d.tag===5||d.tag===6)return d;for(d=d.child;d!==null;){var f=Zp(d);if(f!==null)return f;d=d.sibling}return null}var Yp=t.unstable_scheduleCallback,Hh=t.unstable_cancelCallback,Z0=t.unstable_shouldYield,sd=t.unstable_requestPaint,dn=t.unstable_now,Y0=t.unstable_getCurrentPriorityLevel,Wh=t.unstable_ImmediatePriority,Jp=t.unstable_UserBlockingPriority,od=t.unstable_NormalPriority,Vh=t.unstable_LowPriority,No=t.unstable_IdlePriority,Il=null,aa=null;function Ml(d){if(aa&&typeof aa.onCommitFiberRoot=="function")try{aa.onCommitFiberRoot(Il,d,void 0,(d.current.flags&128)===128)}catch{}}var it=Math.clz32?Math.clz32:ko,Zt=Math.log,ld=Math.LN2;function ko(d){return d>>>=0,d===0?32:31-(Zt(d)/ld|0)|0}var ai=64,_o=4194304;function nt(d){switch(d&-d){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 d&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return d&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return d}}function qt(d,f){var y=d.pendingLanes;if(y===0)return 0;var k=0,T=d.suspendedLanes,E=d.pingedLanes,D=y&268435455;if(D!==0){var U=D&~T;U!==0?k=nt(U):(E&=D,E!==0&&(k=nt(E)))}else D=y&~T,D!==0?k=nt(D):E!==0&&(k=nt(E));if(k===0)return 0;if(f!==0&&f!==k&&(f&T)===0&&(T=k&-k,E=f&-f,T>=E||T===16&&(E&4194240)!==0))return f;if((k&4)!==0&&(k|=y&16),f=d.entangledLanes,f!==0)for(d=d.entanglements,f&=k;0<f;)y=31-it(f),T=1<<y,k|=d[y],f&=~T;return k}function Uh(d,f){switch(d){case 1:case 2:case 4:return f+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 f+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 cd(d,f){for(var y=d.suspendedLanes,k=d.pingedLanes,T=d.expirationTimes,E=d.pendingLanes;0<E;){var D=31-it(E),U=1<<D,J=T[D];J===-1?((U&y)===0||(U&k)!==0)&&(T[D]=Uh(U,f)):J<=f&&(d.expiredLanes|=U),E&=~U}}function hr(d){return d=d.pendingLanes&-1073741825,d!==0?d:d&1073741824?1073741824:0}function Xp(){var d=ai;return ai<<=1,(ai&4194240)===0&&(ai=64),d}function So(d){for(var f=[],y=0;31>y;y++)f.push(d);return f}function ia(d,f,y){d.pendingLanes|=f,f!==536870912&&(d.suspendedLanes=0,d.pingedLanes=0),d=d.eventTimes,f=31-it(f),d[f]=y}function xn(d,f){var y=d.pendingLanes&~f;d.pendingLanes=f,d.suspendedLanes=0,d.pingedLanes=0,d.expiredLanes&=f,d.mutableReadLanes&=f,d.entangledLanes&=f,f=d.entanglements;var k=d.eventTimes;for(d=d.expirationTimes;0<y;){var T=31-it(y),E=1<<T;f[T]=0,k[T]=-1,d[T]=-1,y&=~E}}function ii(d,f){var y=d.entangledLanes|=f;for(d=d.entanglements;y;){var k=31-it(y),T=1<<k;T&f|d[k]&f&&(d[k]|=f),y&=~T}}var Ct=0;function Co(d){return d&=-d,1<d?4<d?(d&268435455)!==0?16:536870912:4:1}var dd,ys,ud,hd,Ll,Dl=!1,To=[],sa=null,si=null,Ca=null,Bl=new Map,Xe=new Map,Rn=[],zt="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 qh(d,f){switch(d){case"focusin":case"focusout":sa=null;break;case"dragenter":case"dragleave":si=null;break;case"mouseover":case"mouseout":Ca=null;break;case"pointerover":case"pointerout":Bl.delete(f.pointerId);break;case"gotpointercapture":case"lostpointercapture":Xe.delete(f.pointerId)}}function vs(d,f,y,k,T,E){return d===null||d.nativeEvent!==E?(d={blockedOn:f,domEventName:y,eventSystemFlags:k,nativeEvent:E,targetContainers:[T]},f!==null&&(f=Ts(f),f!==null&&ys(f)),d):(d.eventSystemFlags|=k,f=d.targetContainers,T!==null&&f.indexOf(T)===-1&&f.push(T),d)}function Gh(d,f,y,k,T){switch(f){case"focusin":return sa=vs(sa,d,f,y,k,T),!0;case"dragenter":return si=vs(si,d,f,y,k,T),!0;case"mouseover":return Ca=vs(Ca,d,f,y,k,T),!0;case"pointerover":var E=T.pointerId;return Bl.set(E,vs(Bl.get(E)||null,d,f,y,k,T)),!0;case"gotpointercapture":return E=T.pointerId,Xe.set(E,vs(Xe.get(E)||null,d,f,y,k,T)),!0}return!1}function fd(d){var f=Cs(d.target);if(f!==null){var y=Ri(f);if(y!==null){if(f=y.tag,f===13){if(f=xs(y),f!==null){d.blockedOn=f,Ll(d.priority,function(){ud(y)});return}}else if(f===3&&y.stateNode.current.memoizedState.isDehydrated){d.blockedOn=y.tag===3?y.stateNode.containerInfo:null;return}}}d.blockedOn=null}function Ta(d){if(d.blockedOn!==null)return!1;for(var f=d.targetContainers;0<f.length;){var y=gd(d.domEventName,d.eventSystemFlags,f[0],d.nativeEvent);if(y===null){y=d.nativeEvent;var k=new y.constructor(y.type,y);Lh=k,y.target.dispatchEvent(k),Lh=null}else return f=Ts(y),f!==null&&ys(f),d.blockedOn=y,!1;f.shift()}return!0}function md(d,f,y){Ta(d)&&y.delete(f)}function Fl(){Dl=!1,sa!==null&&Ta(sa)&&(sa=null),si!==null&&Ta(si)&&(si=null),Ca!==null&&Ta(Ca)&&(Ca=null),Bl.forEach(md),Xe.forEach(md)}function un(d,f){d.blockedOn===f&&(d.blockedOn=null,Dl||(Dl=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Fl)))}function oa(d){function f(T){return un(T,d)}if(0<To.length){un(To[0],d);for(var y=1;y<To.length;y++){var k=To[y];k.blockedOn===d&&(k.blockedOn=null)}}for(sa!==null&&un(sa,d),si!==null&&un(si,d),Ca!==null&&un(Ca,d),Bl.forEach(f),Xe.forEach(f),y=0;y<Rn.length;y++)k=Rn[y],k.blockedOn===d&&(k.blockedOn=null);for(;0<Rn.length&&(y=Rn[0],y.blockedOn===null);)fd(y),y.blockedOn===null&&Rn.shift()}var bs=I.ReactCurrentBatchConfig,zl=!0;function J0(d,f,y,k){var T=Ct,E=bs.transition;bs.transition=null;try{Ct=1,$l(d,f,y,k)}finally{Ct=T,bs.transition=E}}function Qp(d,f,y,k){var T=Ct,E=bs.transition;bs.transition=null;try{Ct=4,$l(d,f,y,k)}finally{Ct=T,bs.transition=E}}function $l(d,f,y,k){if(zl){var T=gd(d,f,y,k);if(T===null)u(d,f,k,pd,y),qh(d,k);else if(Gh(T,d,f,y,k))k.stopPropagation();else if(qh(d,k),f&4&&-1<zt.indexOf(d)){for(;T!==null;){var E=Ts(T);if(E!==null&&dd(E),E=gd(d,f,y,k),E===null&&u(d,f,k,pd,y),E===T)break;T=E}T!==null&&k.stopPropagation()}else u(d,f,k,null,y)}}var pd=null;function gd(d,f,y,k){if(pd=null,d=Dh(k),d=Cs(d),d!==null)if(f=Ri(d),f===null)d=null;else if(y=f.tag,y===13){if(d=xs(f),d!==null)return d;d=null}else if(y===3){if(f.stateNode.current.memoizedState.isDehydrated)return f.tag===3?f.stateNode.containerInfo:null;d=null}else f!==d&&(d=null);return pd=d,null}function kt(d){switch(d){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(Y0()){case Wh:return 1;case Jp:return 4;case od:case Vh:return 16;case No:return 536870912;default:return 16}default:return 16}}var Ii=null,Tr=null,Mi=null;function Kh(){if(Mi)return Mi;var d,f=Tr,y=f.length,k,T="value"in Ii?Ii.value:Ii.textContent,E=T.length;for(d=0;d<y&&f[d]===T[d];d++);var D=y-d;for(k=1;k<=D&&f[y-k]===T[E-k];k++);return Mi=T.slice(d,1<k?1-k:void 0)}function xd(d){var f=d.keyCode;return"charCode"in d?(d=d.charCode,d===0&&f===13&&(d=13)):d=f,d===10&&(d=13),32<=d||d===13?d:0}function Ao(){return!0}function eg(){return!1}function fr(d){function f(y,k,T,E,D){this._reactName=y,this._targetInst=T,this.type=k,this.nativeEvent=E,this.target=D,this.currentTarget=null;for(var U in d)d.hasOwnProperty(U)&&(y=d[U],this[U]=y?y(E):E[U]);return this.isDefaultPrevented=(E.defaultPrevented!=null?E.defaultPrevented:E.returnValue===!1)?Ao:eg,this.isPropagationStopped=eg,this}return Y(f.prototype,{preventDefault:function(){this.defaultPrevented=!0;var y=this.nativeEvent;y&&(y.preventDefault?y.preventDefault():typeof y.returnValue!="unknown"&&(y.returnValue=!1),this.isDefaultPrevented=Ao)},stopPropagation:function(){var y=this.nativeEvent;y&&(y.stopPropagation?y.stopPropagation():typeof y.cancelBubble!="unknown"&&(y.cancelBubble=!0),this.isPropagationStopped=Ao)},persist:function(){},isPersistent:Ao}),f}var Po={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(d){return d.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Zh=fr(Po),ws=Y({},Po,{view:0,detail:0}),X0=fr(ws),Wr,Yh,Eo,la=Y({},ws,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Ns,button:0,buttons:0,relatedTarget:function(d){return d.relatedTarget===void 0?d.fromElement===d.srcElement?d.toElement:d.fromElement:d.relatedTarget},movementX:function(d){return"movementX"in d?d.movementX:(d!==Eo&&(Eo&&d.type==="mousemove"?(Wr=d.screenX-Eo.screenX,Yh=d.screenY-Eo.screenY):Yh=Wr=0,Eo=d),Wr)},movementY:function(d){return"movementY"in d?d.movementY:Yh}}),Jh=fr(la),tg=Y({},la,{dataTransfer:0}),Xh=fr(tg),Q0=Y({},ws,{relatedTarget:0}),yd=fr(Q0),ng=Y({},Po,{animationName:0,elapsedTime:0,pseudoElement:0}),eb=fr(ng),tb=Y({},Po,{clipboardData:function(d){return"clipboardData"in d?d.clipboardData:window.clipboardData}}),Qh=fr(tb),nb=Y({},Po,{data:0}),ef=fr(nb),rg={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},vd={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"},js={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function rb(d){var f=this.nativeEvent;return f.getModifierState?f.getModifierState(d):(d=js[d])?!!f[d]:!1}function Ns(){return rb}var Vr=Y({},ws,{key:function(d){if(d.key){var f=rg[d.key]||d.key;if(f!=="Unidentified")return f}return d.type==="keypress"?(d=xd(d),d===13?"Enter":String.fromCharCode(d)):d.type==="keydown"||d.type==="keyup"?vd[d.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Ns,charCode:function(d){return d.type==="keypress"?xd(d):0},keyCode:function(d){return d.type==="keydown"||d.type==="keyup"?d.keyCode:0},which:function(d){return d.type==="keypress"?xd(d):d.type==="keydown"||d.type==="keyup"?d.keyCode:0}}),ag=fr(Vr),ig=Y({},la,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),sg=fr(ig),tf=Y({},ws,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Ns}),nf=fr(tf),ab=Y({},Po,{propertyName:0,elapsedTime:0,pseudoElement:0}),ib=fr(ab),og=Y({},la,{deltaX:function(d){return"deltaX"in d?d.deltaX:"wheelDeltaX"in d?-d.wheelDeltaX:0},deltaY:function(d){return"deltaY"in d?d.deltaY:"wheelDeltaY"in d?-d.wheelDeltaY:"wheelDelta"in d?-d.wheelDelta:0},deltaZ:0,deltaMode:0}),sb=fr(og),ca=[9,13,27,32],Li=l&&"CompositionEvent"in window,Hl=null;l&&"documentMode"in document&&(Hl=document.documentMode);var oi=l&&"TextEvent"in window&&!Hl,lg=l&&(!Li||Hl&&8<Hl&&11>=Hl),ks=" ",cg=!1;function Oo(d,f){switch(d){case"keyup":return ca.indexOf(f.keyCode)!==-1;case"keydown":return f.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function rf(d){return d=d.detail,typeof d=="object"&&"data"in d?d.data:null}var li=!1;function ob(d,f){switch(d){case"compositionend":return rf(f);case"keypress":return f.which!==32?null:(cg=!0,ks);case"textInput":return d=f.data,d===ks&&cg?null:d;default:return null}}function Di(d,f){if(li)return d==="compositionend"||!Li&&Oo(d,f)?(d=Kh(),Mi=Tr=Ii=null,li=!1,d):null;switch(d){case"paste":return null;case"keypress":if(!(f.ctrlKey||f.altKey||f.metaKey)||f.ctrlKey&&f.altKey){if(f.char&&1<f.char.length)return f.char;if(f.which)return String.fromCharCode(f.which)}return null;case"compositionend":return lg&&f.locale!=="ko"?null:f.data;default:return null}}var bd={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 dg(d){var f=d&&d.nodeName&&d.nodeName.toLowerCase();return f==="input"?!!bd[d.type]:f==="textarea"}function wd(d,f,y,k){Hp(k),f=w(f,"onChange"),0<f.length&&(y=new Zh("onChange","change",null,y,k),d.push({event:y,listeners:f}))}var Wl=null,Ar=null;function lb(d){ff(d,0)}function ci(d){var f=As(d);if(fe(f))return d}function cb(d,f){if(d==="change")return f}var Aa=!1;if(l){var Ro;if(l){var jd="oninput"in document;if(!jd){var Nd=document.createElement("div");Nd.setAttribute("oninput","return;"),jd=typeof Nd.oninput=="function"}Ro=jd}else Ro=!1;Aa=Ro&&(!document.documentMode||9<document.documentMode)}function Vl(){Wl&&(Wl.detachEvent("onpropertychange",kd),Ar=Wl=null)}function kd(d){if(d.propertyName==="value"&&ci(Ar)){var f=[];wd(f,Ar,d,Dh(d)),ad(lb,f)}}function _d(d,f,y){d==="focusin"?(Vl(),Wl=f,Ar=y,Wl.attachEvent("onpropertychange",kd)):d==="focusout"&&Vl()}function Io(d){if(d==="selectionchange"||d==="keyup"||d==="keydown")return ci(Ar)}function Sd(d,f){if(d==="click")return ci(f)}function af(d,f){if(d==="input"||d==="change")return ci(f)}function ug(d,f){return d===f&&(d!==0||1/d===1/f)||d!==d&&f!==f}var da=typeof Object.is=="function"?Object.is:ug;function Bi(d,f){if(da(d,f))return!0;if(typeof d!="object"||d===null||typeof f!="object"||f===null)return!1;var y=Object.keys(d),k=Object.keys(f);if(y.length!==k.length)return!1;for(k=0;k<y.length;k++){var T=y[k];if(!c.call(f,T)||!da(d[T],f[T]))return!1}return!0}function hg(d){for(;d&&d.firstChild;)d=d.firstChild;return d}function sf(d,f){var y=hg(d);d=0;for(var k;y;){if(y.nodeType===3){if(k=d+y.textContent.length,d<=f&&k>=f)return{node:y,offset:f-d};d=k}e:{for(;y;){if(y.nextSibling){y=y.nextSibling;break e}y=y.parentNode}y=void 0}y=hg(y)}}function fg(d,f){return d&&f?d===f?!0:d&&d.nodeType===3?!1:f&&f.nodeType===3?fg(d,f.parentNode):"contains"in d?d.contains(f):d.compareDocumentPosition?!!(d.compareDocumentPosition(f)&16):!1:!1}function of(){for(var d=window,f=tt();f instanceof d.HTMLIFrameElement;){try{var y=typeof f.contentWindow.location.href=="string"}catch{y=!1}if(y)d=f.contentWindow;else break;f=tt(d.document)}return f}function lf(d){var f=d&&d.nodeName&&d.nodeName.toLowerCase();return f&&(f==="input"&&(d.type==="text"||d.type==="search"||d.type==="tel"||d.type==="url"||d.type==="password")||f==="textarea"||d.contentEditable==="true")}function Pa(d){var f=of(),y=d.focusedElem,k=d.selectionRange;if(f!==y&&y&&y.ownerDocument&&fg(y.ownerDocument.documentElement,y)){if(k!==null&&lf(y)){if(f=k.start,d=k.end,d===void 0&&(d=f),"selectionStart"in y)y.selectionStart=f,y.selectionEnd=Math.min(d,y.value.length);else if(d=(f=y.ownerDocument||document)&&f.defaultView||window,d.getSelection){d=d.getSelection();var T=y.textContent.length,E=Math.min(k.start,T);k=k.end===void 0?E:Math.min(k.end,T),!d.extend&&E>k&&(T=k,k=E,E=T),T=sf(y,E);var D=sf(y,k);T&&D&&(d.rangeCount!==1||d.anchorNode!==T.node||d.anchorOffset!==T.offset||d.focusNode!==D.node||d.focusOffset!==D.offset)&&(f=f.createRange(),f.setStart(T.node,T.offset),d.removeAllRanges(),E>k?(d.addRange(f),d.extend(D.node,D.offset)):(f.setEnd(D.node,D.offset),d.addRange(f)))}}for(f=[],d=y;d=d.parentNode;)d.nodeType===1&&f.push({element:d,left:d.scrollLeft,top:d.scrollTop});for(typeof y.focus=="function"&&y.focus(),y=0;y<f.length;y++)d=f[y],d.element.scrollLeft=d.left,d.element.scrollTop=d.top}}var Cd=l&&"documentMode"in document&&11>=document.documentMode,Mo=null,Lo=null,Ul=null,Td=!1;function mg(d,f,y){var k=y.window===y?y.document:y.nodeType===9?y:y.ownerDocument;Td||Mo==null||Mo!==tt(k)||(k=Mo,"selectionStart"in k&&lf(k)?k={start:k.selectionStart,end:k.selectionEnd}:(k=(k.ownerDocument&&k.ownerDocument.defaultView||window).getSelection(),k={anchorNode:k.anchorNode,anchorOffset:k.anchorOffset,focusNode:k.focusNode,focusOffset:k.focusOffset}),Ul&&Bi(Ul,k)||(Ul=k,k=w(Lo,"onSelect"),0<k.length&&(f=new Zh("onSelect","select",null,f,y),d.push({event:f,listeners:k}),f.target=Mo)))}function Fi(d,f){var y={};return y[d.toLowerCase()]=f.toLowerCase(),y["Webkit"+d]="webkit"+f,y["Moz"+d]="moz"+f,y}var Do={animationend:Fi("Animation","AnimationEnd"),animationiteration:Fi("Animation","AnimationIteration"),animationstart:Fi("Animation","AnimationStart"),transitionend:Fi("Transition","TransitionEnd")},zi={},cf={};l&&(cf=document.createElement("div").style,"AnimationEvent"in window||(delete Do.animationend.animation,delete Do.animationiteration.animation,delete Do.animationstart.animation),"TransitionEvent"in window||delete Do.transitionend.transition);function ql(d){if(zi[d])return zi[d];if(!Do[d])return d;var f=Do[d],y;for(y in f)if(f.hasOwnProperty(y)&&y in cf)return zi[d]=f[y];return d}var pg=ql("animationend"),Ea=ql("animationiteration"),df=ql("animationstart"),uf=ql("transitionend"),Bo=new Map,gg="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 ua(d,f){Bo.set(d,f),s(f,[d])}for(var _s=0;_s<gg.length;_s++){var Ad=gg[_s],xg=Ad.toLowerCase(),db=Ad[0].toUpperCase()+Ad.slice(1);ua(xg,"on"+db)}ua(pg,"onAnimationEnd"),ua(Ea,"onAnimationIteration"),ua(df,"onAnimationStart"),ua("dblclick","onDoubleClick"),ua("focusin","onFocus"),ua("focusout","onBlur"),ua(uf,"onTransitionEnd"),o("onMouseEnter",["mouseout","mouseover"]),o("onMouseLeave",["mouseout","mouseover"]),o("onPointerEnter",["pointerout","pointerover"]),o("onPointerLeave",["pointerout","pointerover"]),s("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),s("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),s("onBeforeInput",["compositionend","keypress","textInput","paste"]),s("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),s("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Fo="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(" "),yg=new Set("cancel close invalid load scroll toggle".split(" ").concat(Fo));function hf(d,f,y){var k=d.type||"unknown-event";d.currentTarget=y,zh(k,f,void 0,d),d.currentTarget=null}function ff(d,f){f=(f&4)!==0;for(var y=0;y<d.length;y++){var k=d[y],T=k.event;k=k.listeners;e:{var E=void 0;if(f)for(var D=k.length-1;0<=D;D--){var U=k[D],J=U.instance,ue=U.currentTarget;if(U=U.listener,J!==E&&T.isPropagationStopped())break e;hf(T,U,ue),E=J}else for(D=0;D<k.length;D++){if(U=k[D],J=U.instance,ue=U.currentTarget,U=U.listener,J!==E&&T.isPropagationStopped())break e;hf(T,U,ue),E=J}}}if(Rl)throw d=id,Rl=!1,id=null,d}function $t(d,f){var y=f[Wo];y===void 0&&(y=f[Wo]=new Set);var k=d+"__bubble";y.has(k)||(vg(f,d,2,!1),y.add(k))}function mf(d,f,y){var k=0;f&&(k|=4),vg(y,d,k,f)}var Gl="_reactListening"+Math.random().toString(36).slice(2);function zo(d){if(!d[Gl]){d[Gl]=!0,a.forEach(function(y){y!=="selectionchange"&&(yg.has(y)||mf(y,!1,d),mf(y,!0,d))});var f=d.nodeType===9?d:d.ownerDocument;f===null||f[Gl]||(f[Gl]=!0,mf("selectionchange",!1,f))}}function vg(d,f,y,k){switch(kt(f)){case 1:var T=J0;break;case 4:T=Qp;break;default:T=$l}y=T.bind(null,f,y,d),T=void 0,!Fh||f!=="touchstart"&&f!=="touchmove"&&f!=="wheel"||(T=!0),k?T!==void 0?d.addEventListener(f,y,{capture:!0,passive:T}):d.addEventListener(f,y,!0):T!==void 0?d.addEventListener(f,y,{passive:T}):d.addEventListener(f,y,!1)}function u(d,f,y,k,T){var E=k;if((f&1)===0&&(f&2)===0&&k!==null)e:for(;;){if(k===null)return;var D=k.tag;if(D===3||D===4){var U=k.stateNode.containerInfo;if(U===T||U.nodeType===8&&U.parentNode===T)break;if(D===4)for(D=k.return;D!==null;){var J=D.tag;if((J===3||J===4)&&(J=D.stateNode.containerInfo,J===T||J.nodeType===8&&J.parentNode===T))return;D=D.return}for(;U!==null;){if(D=Cs(U),D===null)return;if(J=D.tag,J===5||J===6){k=E=D;continue e}U=U.parentNode}}k=k.return}ad(function(){var ue=E,ye=Dh(y),je=[];e:{var xe=Bo.get(d);if(xe!==void 0){var Ee=Zh,Le=d;switch(d){case"keypress":if(xd(y)===0)break e;case"keydown":case"keyup":Ee=ag;break;case"focusin":Le="focus",Ee=yd;break;case"focusout":Le="blur",Ee=yd;break;case"beforeblur":case"afterblur":Ee=yd;break;case"click":if(y.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":Ee=Jh;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":Ee=Xh;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":Ee=nf;break;case pg:case Ea:case df:Ee=eb;break;case uf:Ee=ib;break;case"scroll":Ee=X0;break;case"wheel":Ee=sb;break;case"copy":case"cut":case"paste":Ee=Qh;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":Ee=sg}var De=(f&4)!==0,Nn=!De&&d==="scroll",se=De?xe!==null?xe+"Capture":null:xe;De=[];for(var ee=ue,oe;ee!==null;){oe=ee;var _e=oe.stateNode;if(oe.tag===5&&_e!==null&&(oe=_e,se!==null&&(_e=El(ee,se),_e!=null&&De.push(g(ee,_e,oe)))),Nn)break;ee=ee.return}0<De.length&&(xe=new Ee(xe,Le,null,y,ye),je.push({event:xe,listeners:De}))}}if((f&7)===0){e:{if(xe=d==="mouseover"||d==="pointerover",Ee=d==="mouseout"||d==="pointerout",xe&&y!==Lh&&(Le=y.relatedTarget||y.fromElement)&&(Cs(Le)||Le[Dt]))break e;if((Ee||xe)&&(xe=ye.window===ye?ye:(xe=ye.ownerDocument)?xe.defaultView||xe.parentWindow:window,Ee?(Le=y.relatedTarget||y.toElement,Ee=ue,Le=Le?Cs(Le):null,Le!==null&&(Nn=Ri(Le),Le!==Nn||Le.tag!==5&&Le.tag!==6)&&(Le=null)):(Ee=null,Le=ue),Ee!==Le)){if(De=Jh,_e="onMouseLeave",se="onMouseEnter",ee="mouse",(d==="pointerout"||d==="pointerover")&&(De=sg,_e="onPointerLeave",se="onPointerEnter",ee="pointer"),Nn=Ee==null?xe:As(Ee),oe=Le==null?xe:As(Le),xe=new De(_e,ee+"leave",Ee,y,ye),xe.target=Nn,xe.relatedTarget=oe,_e=null,Cs(ye)===ue&&(De=new De(se,ee+"enter",Le,y,ye),De.target=oe,De.relatedTarget=Nn,_e=De),Nn=_e,Ee&&Le)t:{for(De=Ee,se=Le,ee=0,oe=De;oe;oe=C(oe))ee++;for(oe=0,_e=se;_e;_e=C(_e))oe++;for(;0<ee-oe;)De=C(De),ee--;for(;0<oe-ee;)se=C(se),oe--;for(;ee--;){if(De===se||se!==null&&De===se.alternate)break t;De=C(De),se=C(se)}De=null}else De=null;Ee!==null&&R(je,xe,Ee,De,!1),Le!==null&&Nn!==null&&R(je,Nn,Le,De,!0)}}e:{if(xe=ue?As(ue):window,Ee=xe.nodeName&&xe.nodeName.toLowerCase(),Ee==="select"||Ee==="input"&&xe.type==="file")var ze=cb;else if(dg(xe))if(Aa)ze=af;else{ze=Io;var Ke=_d}else(Ee=xe.nodeName)&&Ee.toLowerCase()==="input"&&(xe.type==="checkbox"||xe.type==="radio")&&(ze=Sd);if(ze&&(ze=ze(d,ue))){wd(je,ze,y,ye);break e}Ke&&Ke(d,xe,ue),d==="focusout"&&(Ke=xe._wrapperState)&&Ke.controlled&&xe.type==="number"&&Oh(xe,"number",xe.value)}switch(Ke=ue?As(ue):window,d){case"focusin":(dg(Ke)||Ke.contentEditable==="true")&&(Mo=Ke,Lo=ue,Ul=null);break;case"focusout":Ul=Lo=Mo=null;break;case"mousedown":Td=!0;break;case"contextmenu":case"mouseup":case"dragend":Td=!1,mg(je,y,ye);break;case"selectionchange":if(Cd)break;case"keydown":case"keyup":mg(je,y,ye)}var Ze;if(Li)e:{switch(d){case"compositionstart":var et="onCompositionStart";break e;case"compositionend":et="onCompositionEnd";break e;case"compositionupdate":et="onCompositionUpdate";break e}et=void 0}else li?Oo(d,y)&&(et="onCompositionEnd"):d==="keydown"&&y.keyCode===229&&(et="onCompositionStart");et&&(lg&&y.locale!=="ko"&&(li||et!=="onCompositionStart"?et==="onCompositionEnd"&&li&&(Ze=Kh()):(Ii=ye,Tr="value"in Ii?Ii.value:Ii.textContent,li=!0)),Ke=w(ue,et),0<Ke.length&&(et=new ef(et,d,null,y,ye),je.push({event:et,listeners:Ke}),Ze?et.data=Ze:(Ze=rf(y),Ze!==null&&(et.data=Ze)))),(Ze=oi?ob(d,y):Di(d,y))&&(ue=w(ue,"onBeforeInput"),0<ue.length&&(ye=new ef("onBeforeInput","beforeinput",null,y,ye),je.push({event:ye,listeners:ue}),ye.data=Ze))}ff(je,f)})}function g(d,f,y){return{instance:d,listener:f,currentTarget:y}}function w(d,f){for(var y=f+"Capture",k=[];d!==null;){var T=d,E=T.stateNode;T.tag===5&&E!==null&&(T=E,E=El(d,y),E!=null&&k.unshift(g(d,E,T)),E=El(d,f),E!=null&&k.push(g(d,E,T))),d=d.return}return k}function C(d){if(d===null)return null;do d=d.return;while(d&&d.tag!==5);return d||null}function R(d,f,y,k,T){for(var E=f._reactName,D=[];y!==null&&y!==k;){var U=y,J=U.alternate,ue=U.stateNode;if(J!==null&&J===k)break;U.tag===5&&ue!==null&&(U=ue,T?(J=El(y,E),J!=null&&D.unshift(g(y,J,U))):T||(J=El(y,E),J!=null&&D.push(g(y,J,U)))),y=y.return}D.length!==0&&d.push({event:f,listeners:D})}var B=/\r\n?/g,Z=/\u0000|\uFFFD/g;function ae(d){return(typeof d=="string"?d:""+d).replace(B,`
`).replace(Z,"")}function de(d,f,y){if(f=ae(f),ae(d)!==f&&y)throw Error(n(425))}function pe(){}var Pe=null,Ue=null;function pt(d,f){return d==="textarea"||d==="noscript"||typeof f.children=="string"||typeof f.children=="number"||typeof f.dangerouslySetInnerHTML=="object"&&f.dangerouslySetInnerHTML!==null&&f.dangerouslySetInnerHTML.__html!=null}var In=typeof setTimeout=="function"?setTimeout:void 0,Tn=typeof clearTimeout=="function"?clearTimeout:void 0,Pr=typeof Promise=="function"?Promise:void 0,mr=typeof queueMicrotask=="function"?queueMicrotask:typeof Pr<"u"?function(d){return Pr.resolve(null).then(d).catch($o)}:In;function $o(d){setTimeout(function(){throw d})}function pf(d,f){var y=f,k=0;do{var T=y.nextSibling;if(d.removeChild(y),T&&T.nodeType===8)if(y=T.data,y==="/$"){if(k===0){d.removeChild(T),oa(f);return}k--}else y!=="$"&&y!=="$?"&&y!=="$!"||k++;y=T}while(y);oa(f)}function $i(d){for(;d!=null;d=d.nextSibling){var f=d.nodeType;if(f===1||f===3)break;if(f===8){if(f=d.data,f==="$"||f==="$!"||f==="$?")break;if(f==="/$")return null}}return d}function bg(d){d=d.previousSibling;for(var f=0;d;){if(d.nodeType===8){var y=d.data;if(y==="$"||y==="$!"||y==="$?"){if(f===0)return d;f--}else y==="/$"&&f++}d=d.previousSibling}return null}var Ss=Math.random().toString(36).slice(2),Oa="__reactFiber$"+Ss,Ho="__reactProps$"+Ss,Dt="__reactContainer$"+Ss,Wo="__reactEvents$"+Ss,ub="__reactListeners$"+Ss,hb="__reactHandles$"+Ss;function Cs(d){var f=d[Oa];if(f)return f;for(var y=d.parentNode;y;){if(f=y[Dt]||y[Oa]){if(y=f.alternate,f.child!==null||y!==null&&y.child!==null)for(d=bg(d);d!==null;){if(y=d[Oa])return y;d=bg(d)}return f}d=y,y=d.parentNode}return null}function Ts(d){return d=d[Oa]||d[Dt],!d||d.tag!==5&&d.tag!==6&&d.tag!==13&&d.tag!==3?null:d}function As(d){if(d.tag===5||d.tag===6)return d.stateNode;throw Error(n(33))}function Pd(d){return d[Ho]||null}var fb=[],Ed=-1;function Vo(d){return{current:d}}function Yt(d){0>Ed||(d.current=fb[Ed],fb[Ed]=null,Ed--)}function Gt(d,f){Ed++,fb[Ed]=d.current,d.current=f}var Uo={},pr=Vo(Uo),Ur=Vo(!1),Kl=Uo;function Od(d,f){var y=d.type.contextTypes;if(!y)return Uo;var k=d.stateNode;if(k&&k.__reactInternalMemoizedUnmaskedChildContext===f)return k.__reactInternalMemoizedMaskedChildContext;var T={},E;for(E in y)T[E]=f[E];return k&&(d=d.stateNode,d.__reactInternalMemoizedUnmaskedChildContext=f,d.__reactInternalMemoizedMaskedChildContext=T),T}function qr(d){return d=d.childContextTypes,d!=null}function wg(){Yt(Ur),Yt(pr)}function qS(d,f,y){if(pr.current!==Uo)throw Error(n(168));Gt(pr,f),Gt(Ur,y)}function GS(d,f,y){var k=d.stateNode;if(f=f.childContextTypes,typeof k.getChildContext!="function")return y;k=k.getChildContext();for(var T in k)if(!(T in f))throw Error(n(108,Fe(d)||"Unknown",T));return Y({},y,k)}function jg(d){return d=(d=d.stateNode)&&d.__reactInternalMemoizedMergedChildContext||Uo,Kl=pr.current,Gt(pr,d),Gt(Ur,Ur.current),!0}function KS(d,f,y){var k=d.stateNode;if(!k)throw Error(n(169));y?(d=GS(d,f,Kl),k.__reactInternalMemoizedMergedChildContext=d,Yt(Ur),Yt(pr),Gt(pr,d)):Yt(Ur),Gt(Ur,y)}var Ps=null,Ng=!1,mb=!1;function ZS(d){Ps===null?Ps=[d]:Ps.push(d)}function vH(d){Ng=!0,ZS(d)}function qo(){if(!mb&&Ps!==null){mb=!0;var d=0,f=Ct;try{var y=Ps;for(Ct=1;d<y.length;d++){var k=y[d];do k=k(!0);while(k!==null)}Ps=null,Ng=!1}catch(T){throw Ps!==null&&(Ps=Ps.slice(d+1)),Yp(Wh,qo),T}finally{Ct=f,mb=!1}}return null}var Rd=[],Id=0,kg=null,_g=0,Ra=[],Ia=0,Zl=null,Es=1,Os="";function Yl(d,f){Rd[Id++]=_g,Rd[Id++]=kg,kg=d,_g=f}function YS(d,f,y){Ra[Ia++]=Es,Ra[Ia++]=Os,Ra[Ia++]=Zl,Zl=d;var k=Es;d=Os;var T=32-it(k)-1;k&=~(1<<T),y+=1;var E=32-it(f)+T;if(30<E){var D=T-T%5;E=(k&(1<<D)-1).toString(32),k>>=D,T-=D,Es=1<<32-it(f)+T|y<<T|k,Os=E+d}else Es=1<<E|y<<T|k,Os=d}function pb(d){d.return!==null&&(Yl(d,1),YS(d,1,0))}function gb(d){for(;d===kg;)kg=Rd[--Id],Rd[Id]=null,_g=Rd[--Id],Rd[Id]=null;for(;d===Zl;)Zl=Ra[--Ia],Ra[Ia]=null,Os=Ra[--Ia],Ra[Ia]=null,Es=Ra[--Ia],Ra[Ia]=null}var ha=null,fa=null,tn=!1,di=null;function JS(d,f){var y=Ba(5,null,null,0);y.elementType="DELETED",y.stateNode=f,y.return=d,f=d.deletions,f===null?(d.deletions=[y],d.flags|=16):f.push(y)}function XS(d,f){switch(d.tag){case 5:var y=d.type;return f=f.nodeType!==1||y.toLowerCase()!==f.nodeName.toLowerCase()?null:f,f!==null?(d.stateNode=f,ha=d,fa=$i(f.firstChild),!0):!1;case 6:return f=d.pendingProps===""||f.nodeType!==3?null:f,f!==null?(d.stateNode=f,ha=d,fa=null,!0):!1;case 13:return f=f.nodeType!==8?null:f,f!==null?(y=Zl!==null?{id:Es,overflow:Os}:null,d.memoizedState={dehydrated:f,treeContext:y,retryLane:1073741824},y=Ba(18,null,null,0),y.stateNode=f,y.return=d,d.child=y,ha=d,fa=null,!0):!1;default:return!1}}function xb(d){return(d.mode&1)!==0&&(d.flags&128)===0}function yb(d){if(tn){var f=fa;if(f){var y=f;if(!XS(d,f)){if(xb(d))throw Error(n(418));f=$i(y.nextSibling);var k=ha;f&&XS(d,f)?JS(k,y):(d.flags=d.flags&-4097|2,tn=!1,ha=d)}}else{if(xb(d))throw Error(n(418));d.flags=d.flags&-4097|2,tn=!1,ha=d}}}function QS(d){for(d=d.return;d!==null&&d.tag!==5&&d.tag!==3&&d.tag!==13;)d=d.return;ha=d}function Sg(d){if(d!==ha)return!1;if(!tn)return QS(d),tn=!0,!1;var f;if((f=d.tag!==3)&&!(f=d.tag!==5)&&(f=d.type,f=f!=="head"&&f!=="body"&&!pt(d.type,d.memoizedProps)),f&&(f=fa)){if(xb(d))throw eC(),Error(n(418));for(;f;)JS(d,f),f=$i(f.nextSibling)}if(QS(d),d.tag===13){if(d=d.memoizedState,d=d!==null?d.dehydrated:null,!d)throw Error(n(317));e:{for(d=d.nextSibling,f=0;d;){if(d.nodeType===8){var y=d.data;if(y==="/$"){if(f===0){fa=$i(d.nextSibling);break e}f--}else y!=="$"&&y!=="$!"&&y!=="$?"||f++}d=d.nextSibling}fa=null}}else fa=ha?$i(d.stateNode.nextSibling):null;return!0}function eC(){for(var d=fa;d;)d=$i(d.nextSibling)}function Md(){fa=ha=null,tn=!1}function vb(d){di===null?di=[d]:di.push(d)}var bH=I.ReactCurrentBatchConfig;function gf(d,f,y){if(d=y.ref,d!==null&&typeof d!="function"&&typeof d!="object"){if(y._owner){if(y=y._owner,y){if(y.tag!==1)throw Error(n(309));var k=y.stateNode}if(!k)throw Error(n(147,d));var T=k,E=""+d;return f!==null&&f.ref!==null&&typeof f.ref=="function"&&f.ref._stringRef===E?f.ref:(f=function(D){var U=T.refs;D===null?delete U[E]:U[E]=D},f._stringRef=E,f)}if(typeof d!="string")throw Error(n(284));if(!y._owner)throw Error(n(290,d))}return d}function Cg(d,f){throw d=Object.prototype.toString.call(f),Error(n(31,d==="[object Object]"?"object with keys {"+Object.keys(f).join(", ")+"}":d))}function tC(d){var f=d._init;return f(d._payload)}function nC(d){function f(se,ee){if(d){var oe=se.deletions;oe===null?(se.deletions=[ee],se.flags|=16):oe.push(ee)}}function y(se,ee){if(!d)return null;for(;ee!==null;)f(se,ee),ee=ee.sibling;return null}function k(se,ee){for(se=new Map;ee!==null;)ee.key!==null?se.set(ee.key,ee):se.set(ee.index,ee),ee=ee.sibling;return se}function T(se,ee){return se=el(se,ee),se.index=0,se.sibling=null,se}function E(se,ee,oe){return se.index=oe,d?(oe=se.alternate,oe!==null?(oe=oe.index,oe<ee?(se.flags|=2,ee):oe):(se.flags|=2,ee)):(se.flags|=1048576,ee)}function D(se){return d&&se.alternate===null&&(se.flags|=2),se}function U(se,ee,oe,_e){return ee===null||ee.tag!==6?(ee=dw(oe,se.mode,_e),ee.return=se,ee):(ee=T(ee,oe),ee.return=se,ee)}function J(se,ee,oe,_e){var ze=oe.type;return ze===z?ye(se,ee,oe.props.children,_e,oe.key):ee!==null&&(ee.elementType===ze||typeof ze=="object"&&ze!==null&&ze.$$typeof===H&&tC(ze)===ee.type)?(_e=T(ee,oe.props),_e.ref=gf(se,ee,oe),_e.return=se,_e):(_e=Jg(oe.type,oe.key,oe.props,null,se.mode,_e),_e.ref=gf(se,ee,oe),_e.return=se,_e)}function ue(se,ee,oe,_e){return ee===null||ee.tag!==4||ee.stateNode.containerInfo!==oe.containerInfo||ee.stateNode.implementation!==oe.implementation?(ee=uw(oe,se.mode,_e),ee.return=se,ee):(ee=T(ee,oe.children||[]),ee.return=se,ee)}function ye(se,ee,oe,_e,ze){return ee===null||ee.tag!==7?(ee=ac(oe,se.mode,_e,ze),ee.return=se,ee):(ee=T(ee,oe),ee.return=se,ee)}function je(se,ee,oe){if(typeof ee=="string"&&ee!==""||typeof ee=="number")return ee=dw(""+ee,se.mode,oe),ee.return=se,ee;if(typeof ee=="object"&&ee!==null){switch(ee.$$typeof){case O:return oe=Jg(ee.type,ee.key,ee.props,null,se.mode,oe),oe.ref=gf(se,null,ee),oe.return=se,oe;case M:return ee=uw(ee,se.mode,oe),ee.return=se,ee;case H:var _e=ee._init;return je(se,_e(ee._payload),oe)}if(bo(ee)||ie(ee))return ee=ac(ee,se.mode,oe,null),ee.return=se,ee;Cg(se,ee)}return null}function xe(se,ee,oe,_e){var ze=ee!==null?ee.key:null;if(typeof oe=="string"&&oe!==""||typeof oe=="number")return ze!==null?null:U(se,ee,""+oe,_e);if(typeof oe=="object"&&oe!==null){switch(oe.$$typeof){case O:return oe.key===ze?J(se,ee,oe,_e):null;case M:return oe.key===ze?ue(se,ee,oe,_e):null;case H:return ze=oe._init,xe(se,ee,ze(oe._payload),_e)}if(bo(oe)||ie(oe))return ze!==null?null:ye(se,ee,oe,_e,null);Cg(se,oe)}return null}function Ee(se,ee,oe,_e,ze){if(typeof _e=="string"&&_e!==""||typeof _e=="number")return se=se.get(oe)||null,U(ee,se,""+_e,ze);if(typeof _e=="object"&&_e!==null){switch(_e.$$typeof){case O:return se=se.get(_e.key===null?oe:_e.key)||null,J(ee,se,_e,ze);case M:return se=se.get(_e.key===null?oe:_e.key)||null,ue(ee,se,_e,ze);case H:var Ke=_e._init;return Ee(se,ee,oe,Ke(_e._payload),ze)}if(bo(_e)||ie(_e))return se=se.get(oe)||null,ye(ee,se,_e,ze,null);Cg(ee,_e)}return null}function Le(se,ee,oe,_e){for(var ze=null,Ke=null,Ze=ee,et=ee=0,Un=null;Ze!==null&&et<oe.length;et++){Ze.index>et?(Un=Ze,Ze=null):Un=Ze.sibling;var Ot=xe(se,Ze,oe[et],_e);if(Ot===null){Ze===null&&(Ze=Un);break}d&&Ze&&Ot.alternate===null&&f(se,Ze),ee=E(Ot,ee,et),Ke===null?ze=Ot:Ke.sibling=Ot,Ke=Ot,Ze=Un}if(et===oe.length)return y(se,Ze),tn&&Yl(se,et),ze;if(Ze===null){for(;et<oe.length;et++)Ze=je(se,oe[et],_e),Ze!==null&&(ee=E(Ze,ee,et),Ke===null?ze=Ze:Ke.sibling=Ze,Ke=Ze);return tn&&Yl(se,et),ze}for(Ze=k(se,Ze);et<oe.length;et++)Un=Ee(Ze,se,et,oe[et],_e),Un!==null&&(d&&Un.alternate!==null&&Ze.delete(Un.key===null?et:Un.key),ee=E(Un,ee,et),Ke===null?ze=Un:Ke.sibling=Un,Ke=Un);return d&&Ze.forEach(function(tl){return f(se,tl)}),tn&&Yl(se,et),ze}function De(se,ee,oe,_e){var ze=ie(oe);if(typeof ze!="function")throw Error(n(150));if(oe=ze.call(oe),oe==null)throw Error(n(151));for(var Ke=ze=null,Ze=ee,et=ee=0,Un=null,Ot=oe.next();Ze!==null&&!Ot.done;et++,Ot=oe.next()){Ze.index>et?(Un=Ze,Ze=null):Un=Ze.sibling;var tl=xe(se,Ze,Ot.value,_e);if(tl===null){Ze===null&&(Ze=Un);break}d&&Ze&&tl.alternate===null&&f(se,Ze),ee=E(tl,ee,et),Ke===null?ze=tl:Ke.sibling=tl,Ke=tl,Ze=Un}if(Ot.done)return y(se,Ze),tn&&Yl(se,et),ze;if(Ze===null){for(;!Ot.done;et++,Ot=oe.next())Ot=je(se,Ot.value,_e),Ot!==null&&(ee=E(Ot,ee,et),Ke===null?ze=Ot:Ke.sibling=Ot,Ke=Ot);return tn&&Yl(se,et),ze}for(Ze=k(se,Ze);!Ot.done;et++,Ot=oe.next())Ot=Ee(Ze,se,et,Ot.value,_e),Ot!==null&&(d&&Ot.alternate!==null&&Ze.delete(Ot.key===null?et:Ot.key),ee=E(Ot,ee,et),Ke===null?ze=Ot:Ke.sibling=Ot,Ke=Ot);return d&&Ze.forEach(function(QH){return f(se,QH)}),tn&&Yl(se,et),ze}function Nn(se,ee,oe,_e){if(typeof oe=="object"&&oe!==null&&oe.type===z&&oe.key===null&&(oe=oe.props.children),typeof oe=="object"&&oe!==null){switch(oe.$$typeof){case O:e:{for(var ze=oe.key,Ke=ee;Ke!==null;){if(Ke.key===ze){if(ze=oe.type,ze===z){if(Ke.tag===7){y(se,Ke.sibling),ee=T(Ke,oe.props.children),ee.return=se,se=ee;break e}}else if(Ke.elementType===ze||typeof ze=="object"&&ze!==null&&ze.$$typeof===H&&tC(ze)===Ke.type){y(se,Ke.sibling),ee=T(Ke,oe.props),ee.ref=gf(se,Ke,oe),ee.return=se,se=ee;break e}y(se,Ke);break}else f(se,Ke);Ke=Ke.sibling}oe.type===z?(ee=ac(oe.props.children,se.mode,_e,oe.key),ee.return=se,se=ee):(_e=Jg(oe.type,oe.key,oe.props,null,se.mode,_e),_e.ref=gf(se,ee,oe),_e.return=se,se=_e)}return D(se);case M:e:{for(Ke=oe.key;ee!==null;){if(ee.key===Ke)if(ee.tag===4&&ee.stateNode.containerInfo===oe.containerInfo&&ee.stateNode.implementation===oe.implementation){y(se,ee.sibling),ee=T(ee,oe.children||[]),ee.return=se,se=ee;break e}else{y(se,ee);break}else f(se,ee);ee=ee.sibling}ee=uw(oe,se.mode,_e),ee.return=se,se=ee}return D(se);case H:return Ke=oe._init,Nn(se,ee,Ke(oe._payload),_e)}if(bo(oe))return Le(se,ee,oe,_e);if(ie(oe))return De(se,ee,oe,_e);Cg(se,oe)}return typeof oe=="string"&&oe!==""||typeof oe=="number"?(oe=""+oe,ee!==null&&ee.tag===6?(y(se,ee.sibling),ee=T(ee,oe),ee.return=se,se=ee):(y(se,ee),ee=dw(oe,se.mode,_e),ee.return=se,se=ee),D(se)):y(se,ee)}return Nn}var Ld=nC(!0),rC=nC(!1),Tg=Vo(null),Ag=null,Dd=null,bb=null;function wb(){bb=Dd=Ag=null}function jb(d){var f=Tg.current;Yt(Tg),d._currentValue=f}function Nb(d,f,y){for(;d!==null;){var k=d.alternate;if((d.childLanes&f)!==f?(d.childLanes|=f,k!==null&&(k.childLanes|=f)):k!==null&&(k.childLanes&f)!==f&&(k.childLanes|=f),d===y)break;d=d.return}}function Bd(d,f){Ag=d,bb=Dd=null,d=d.dependencies,d!==null&&d.firstContext!==null&&((d.lanes&f)!==0&&(Gr=!0),d.firstContext=null)}function Ma(d){var f=d._currentValue;if(bb!==d)if(d={context:d,memoizedValue:f,next:null},Dd===null){if(Ag===null)throw Error(n(308));Dd=d,Ag.dependencies={lanes:0,firstContext:d}}else Dd=Dd.next=d;return f}var Jl=null;function kb(d){Jl===null?Jl=[d]:Jl.push(d)}function aC(d,f,y,k){var T=f.interleaved;return T===null?(y.next=y,kb(f)):(y.next=T.next,T.next=y),f.interleaved=y,Rs(d,k)}function Rs(d,f){d.lanes|=f;var y=d.alternate;for(y!==null&&(y.lanes|=f),y=d,d=d.return;d!==null;)d.childLanes|=f,y=d.alternate,y!==null&&(y.childLanes|=f),y=d,d=d.return;return y.tag===3?y.stateNode:null}var Go=!1;function _b(d){d.updateQueue={baseState:d.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function iC(d,f){d=d.updateQueue,f.updateQueue===d&&(f.updateQueue={baseState:d.baseState,firstBaseUpdate:d.firstBaseUpdate,lastBaseUpdate:d.lastBaseUpdate,shared:d.shared,effects:d.effects})}function Is(d,f){return{eventTime:d,lane:f,tag:0,payload:null,callback:null,next:null}}function Ko(d,f,y){var k=d.updateQueue;if(k===null)return null;if(k=k.shared,(Pt&2)!==0){var T=k.pending;return T===null?f.next=f:(f.next=T.next,T.next=f),k.pending=f,Rs(d,y)}return T=k.interleaved,T===null?(f.next=f,kb(k)):(f.next=T.next,T.next=f),k.interleaved=f,Rs(d,y)}function Pg(d,f,y){if(f=f.updateQueue,f!==null&&(f=f.shared,(y&4194240)!==0)){var k=f.lanes;k&=d.pendingLanes,y|=k,f.lanes=y,ii(d,y)}}function sC(d,f){var y=d.updateQueue,k=d.alternate;if(k!==null&&(k=k.updateQueue,y===k)){var T=null,E=null;if(y=y.firstBaseUpdate,y!==null){do{var D={eventTime:y.eventTime,lane:y.lane,tag:y.tag,payload:y.payload,callback:y.callback,next:null};E===null?T=E=D:E=E.next=D,y=y.next}while(y!==null);E===null?T=E=f:E=E.next=f}else T=E=f;y={baseState:k.baseState,firstBaseUpdate:T,lastBaseUpdate:E,shared:k.shared,effects:k.effects},d.updateQueue=y;return}d=y.lastBaseUpdate,d===null?y.firstBaseUpdate=f:d.next=f,y.lastBaseUpdate=f}function Eg(d,f,y,k){var T=d.updateQueue;Go=!1;var E=T.firstBaseUpdate,D=T.lastBaseUpdate,U=T.shared.pending;if(U!==null){T.shared.pending=null;var J=U,ue=J.next;J.next=null,D===null?E=ue:D.next=ue,D=J;var ye=d.alternate;ye!==null&&(ye=ye.updateQueue,U=ye.lastBaseUpdate,U!==D&&(U===null?ye.firstBaseUpdate=ue:U.next=ue,ye.lastBaseUpdate=J))}if(E!==null){var je=T.baseState;D=0,ye=ue=J=null,U=E;do{var xe=U.lane,Ee=U.eventTime;if((k&xe)===xe){ye!==null&&(ye=ye.next={eventTime:Ee,lane:0,tag:U.tag,payload:U.payload,callback:U.callback,next:null});e:{var Le=d,De=U;switch(xe=f,Ee=y,De.tag){case 1:if(Le=De.payload,typeof Le=="function"){je=Le.call(Ee,je,xe);break e}je=Le;break e;case 3:Le.flags=Le.flags&-65537|128;case 0:if(Le=De.payload,xe=typeof Le=="function"?Le.call(Ee,je,xe):Le,xe==null)break e;je=Y({},je,xe);break e;case 2:Go=!0}}U.callback!==null&&U.lane!==0&&(d.flags|=64,xe=T.effects,xe===null?T.effects=[U]:xe.push(U))}else Ee={eventTime:Ee,lane:xe,tag:U.tag,payload:U.payload,callback:U.callback,next:null},ye===null?(ue=ye=Ee,J=je):ye=ye.next=Ee,D|=xe;if(U=U.next,U===null){if(U=T.shared.pending,U===null)break;xe=U,U=xe.next,xe.next=null,T.lastBaseUpdate=xe,T.shared.pending=null}}while(!0);if(ye===null&&(J=je),T.baseState=J,T.firstBaseUpdate=ue,T.lastBaseUpdate=ye,f=T.shared.interleaved,f!==null){T=f;do D|=T.lane,T=T.next;while(T!==f)}else E===null&&(T.shared.lanes=0);ec|=D,d.lanes=D,d.memoizedState=je}}function oC(d,f,y){if(d=f.effects,f.effects=null,d!==null)for(f=0;f<d.length;f++){var k=d[f],T=k.callback;if(T!==null){if(k.callback=null,k=y,typeof T!="function")throw Error(n(191,T));T.call(k)}}}var xf={},Hi=Vo(xf),yf=Vo(xf),vf=Vo(xf);function Xl(d){if(d===xf)throw Error(n(174));return d}function Sb(d,f){switch(Gt(vf,f),Gt(yf,d),Gt(Hi,xf),d=f.nodeType,d){case 9:case 11:f=(f=f.documentElement)?f.namespaceURI:td(null,"");break;default:d=d===8?f.parentNode:f,f=d.namespaceURI||null,d=d.tagName,f=td(f,d)}Yt(Hi),Gt(Hi,f)}function Fd(){Yt(Hi),Yt(yf),Yt(vf)}function lC(d){Xl(vf.current);var f=Xl(Hi.current),y=td(f,d.type);f!==y&&(Gt(yf,d),Gt(Hi,y))}function Cb(d){yf.current===d&&(Yt(Hi),Yt(yf))}var hn=Vo(0);function Og(d){for(var f=d;f!==null;){if(f.tag===13){var y=f.memoizedState;if(y!==null&&(y=y.dehydrated,y===null||y.data==="$?"||y.data==="$!"))return f}else if(f.tag===19&&f.memoizedProps.revealOrder!==void 0){if((f.flags&128)!==0)return f}else if(f.child!==null){f.child.return=f,f=f.child;continue}if(f===d)break;for(;f.sibling===null;){if(f.return===null||f.return===d)return null;f=f.return}f.sibling.return=f.return,f=f.sibling}return null}var Tb=[];function Ab(){for(var d=0;d<Tb.length;d++)Tb[d]._workInProgressVersionPrimary=null;Tb.length=0}var Rg=I.ReactCurrentDispatcher,Pb=I.ReactCurrentBatchConfig,Ql=0,fn=null,Mn=null,Wn=null,Ig=!1,bf=!1,wf=0,wH=0;function gr(){throw Error(n(321))}function Eb(d,f){if(f===null)return!1;for(var y=0;y<f.length&&y<d.length;y++)if(!da(d[y],f[y]))return!1;return!0}function Ob(d,f,y,k,T,E){if(Ql=E,fn=f,f.memoizedState=null,f.updateQueue=null,f.lanes=0,Rg.current=d===null||d.memoizedState===null?_H:SH,d=y(k,T),bf){E=0;do{if(bf=!1,wf=0,25<=E)throw Error(n(301));E+=1,Wn=Mn=null,f.updateQueue=null,Rg.current=CH,d=y(k,T)}while(bf)}if(Rg.current=Dg,f=Mn!==null&&Mn.next!==null,Ql=0,Wn=Mn=fn=null,Ig=!1,f)throw Error(n(300));return d}function Rb(){var d=wf!==0;return wf=0,d}function Wi(){var d={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Wn===null?fn.memoizedState=Wn=d:Wn=Wn.next=d,Wn}function La(){if(Mn===null){var d=fn.alternate;d=d!==null?d.memoizedState:null}else d=Mn.next;var f=Wn===null?fn.memoizedState:Wn.next;if(f!==null)Wn=f,Mn=d;else{if(d===null)throw Error(n(310));Mn=d,d={memoizedState:Mn.memoizedState,baseState:Mn.baseState,baseQueue:Mn.baseQueue,queue:Mn.queue,next:null},Wn===null?fn.memoizedState=Wn=d:Wn=Wn.next=d}return Wn}function jf(d,f){return typeof f=="function"?f(d):f}function Ib(d){var f=La(),y=f.queue;if(y===null)throw Error(n(311));y.lastRenderedReducer=d;var k=Mn,T=k.baseQueue,E=y.pending;if(E!==null){if(T!==null){var D=T.next;T.next=E.next,E.next=D}k.baseQueue=T=E,y.pending=null}if(T!==null){E=T.next,k=k.baseState;var U=D=null,J=null,ue=E;do{var ye=ue.lane;if((Ql&ye)===ye)J!==null&&(J=J.next={lane:0,action:ue.action,hasEagerState:ue.hasEagerState,eagerState:ue.eagerState,next:null}),k=ue.hasEagerState?ue.eagerState:d(k,ue.action);else{var je={lane:ye,action:ue.action,hasEagerState:ue.hasEagerState,eagerState:ue.eagerState,next:null};J===null?(U=J=je,D=k):J=J.next=je,fn.lanes|=ye,ec|=ye}ue=ue.next}while(ue!==null&&ue!==E);J===null?D=k:J.next=U,da(k,f.memoizedState)||(Gr=!0),f.memoizedState=k,f.baseState=D,f.baseQueue=J,y.lastRenderedState=k}if(d=y.interleaved,d!==null){T=d;do E=T.lane,fn.lanes|=E,ec|=E,T=T.next;while(T!==d)}else T===null&&(y.lanes=0);return[f.memoizedState,y.dispatch]}function Mb(d){var f=La(),y=f.queue;if(y===null)throw Error(n(311));y.lastRenderedReducer=d;var k=y.dispatch,T=y.pending,E=f.memoizedState;if(T!==null){y.pending=null;var D=T=T.next;do E=d(E,D.action),D=D.next;while(D!==T);da(E,f.memoizedState)||(Gr=!0),f.memoizedState=E,f.baseQueue===null&&(f.baseState=E),y.lastRenderedState=E}return[E,k]}function cC(){}function dC(d,f){var y=fn,k=La(),T=f(),E=!da(k.memoizedState,T);if(E&&(k.memoizedState=T,Gr=!0),k=k.queue,Lb(fC.bind(null,y,k,d),[d]),k.getSnapshot!==f||E||Wn!==null&&Wn.memoizedState.tag&1){if(y.flags|=2048,Nf(9,hC.bind(null,y,k,T,f),void 0,null),Vn===null)throw Error(n(349));(Ql&30)!==0||uC(y,f,T)}return T}function uC(d,f,y){d.flags|=16384,d={getSnapshot:f,value:y},f=fn.updateQueue,f===null?(f={lastEffect:null,stores:null},fn.updateQueue=f,f.stores=[d]):(y=f.stores,y===null?f.stores=[d]:y.push(d))}function hC(d,f,y,k){f.value=y,f.getSnapshot=k,mC(f)&&pC(d)}function fC(d,f,y){return y(function(){mC(f)&&pC(d)})}function mC(d){var f=d.getSnapshot;d=d.value;try{var y=f();return!da(d,y)}catch{return!0}}function pC(d){var f=Rs(d,1);f!==null&&mi(f,d,1,-1)}function gC(d){var f=Wi();return typeof d=="function"&&(d=d()),f.memoizedState=f.baseState=d,d={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:jf,lastRenderedState:d},f.queue=d,d=d.dispatch=kH.bind(null,fn,d),[f.memoizedState,d]}function Nf(d,f,y,k){return d={tag:d,create:f,destroy:y,deps:k,next:null},f=fn.updateQueue,f===null?(f={lastEffect:null,stores:null},fn.updateQueue=f,f.lastEffect=d.next=d):(y=f.lastEffect,y===null?f.lastEffect=d.next=d:(k=y.next,y.next=d,d.next=k,f.lastEffect=d)),d}function xC(){return La().memoizedState}function Mg(d,f,y,k){var T=Wi();fn.flags|=d,T.memoizedState=Nf(1|f,y,void 0,k===void 0?null:k)}function Lg(d,f,y,k){var T=La();k=k===void 0?null:k;var E=void 0;if(Mn!==null){var D=Mn.memoizedState;if(E=D.destroy,k!==null&&Eb(k,D.deps)){T.memoizedState=Nf(f,y,E,k);return}}fn.flags|=d,T.memoizedState=Nf(1|f,y,E,k)}function yC(d,f){return Mg(8390656,8,d,f)}function Lb(d,f){return Lg(2048,8,d,f)}function vC(d,f){return Lg(4,2,d,f)}function bC(d,f){return Lg(4,4,d,f)}function wC(d,f){if(typeof f=="function")return d=d(),f(d),function(){f(null)};if(f!=null)return d=d(),f.current=d,function(){f.current=null}}function jC(d,f,y){return y=y!=null?y.concat([d]):null,Lg(4,4,wC.bind(null,f,d),y)}function Db(){}function NC(d,f){var y=La();f=f===void 0?null:f;var k=y.memoizedState;return k!==null&&f!==null&&Eb(f,k[1])?k[0]:(y.memoizedState=[d,f],d)}function kC(d,f){var y=La();f=f===void 0?null:f;var k=y.memoizedState;return k!==null&&f!==null&&Eb(f,k[1])?k[0]:(d=d(),y.memoizedState=[d,f],d)}function _C(d,f,y){return(Ql&21)===0?(d.baseState&&(d.baseState=!1,Gr=!0),d.memoizedState=y):(da(y,f)||(y=Xp(),fn.lanes|=y,ec|=y,d.baseState=!0),f)}function jH(d,f){var y=Ct;Ct=y!==0&&4>y?y:4,d(!0);var k=Pb.transition;Pb.transition={};try{d(!1),f()}finally{Ct=y,Pb.transition=k}}function SC(){return La().memoizedState}function NH(d,f,y){var k=Xo(d);if(y={lane:k,action:y,hasEagerState:!1,eagerState:null,next:null},CC(d))TC(f,y);else if(y=aC(d,f,y,k),y!==null){var T=Or();mi(y,d,k,T),AC(y,f,k)}}function kH(d,f,y){var k=Xo(d),T={lane:k,action:y,hasEagerState:!1,eagerState:null,next:null};if(CC(d))TC(f,T);else{var E=d.alternate;if(d.lanes===0&&(E===null||E.lanes===0)&&(E=f.lastRenderedReducer,E!==null))try{var D=f.lastRenderedState,U=E(D,y);if(T.hasEagerState=!0,T.eagerState=U,da(U,D)){var J=f.interleaved;J===null?(T.next=T,kb(f)):(T.next=J.next,J.next=T),f.interleaved=T;return}}catch{}y=aC(d,f,T,k),y!==null&&(T=Or(),mi(y,d,k,T),AC(y,f,k))}}function CC(d){var f=d.alternate;return d===fn||f!==null&&f===fn}function TC(d,f){bf=Ig=!0;var y=d.pending;y===null?f.next=f:(f.next=y.next,y.next=f),d.pending=f}function AC(d,f,y){if((y&4194240)!==0){var k=f.lanes;k&=d.pendingLanes,y|=k,f.lanes=y,ii(d,y)}}var Dg={readContext:Ma,useCallback:gr,useContext:gr,useEffect:gr,useImperativeHandle:gr,useInsertionEffect:gr,useLayoutEffect:gr,useMemo:gr,useReducer:gr,useRef:gr,useState:gr,useDebugValue:gr,useDeferredValue:gr,useTransition:gr,useMutableSource:gr,useSyncExternalStore:gr,useId:gr,unstable_isNewReconciler:!1},_H={readContext:Ma,useCallback:function(d,f){return Wi().memoizedState=[d,f===void 0?null:f],d},useContext:Ma,useEffect:yC,useImperativeHandle:function(d,f,y){return y=y!=null?y.concat([d]):null,Mg(4194308,4,wC.bind(null,f,d),y)},useLayoutEffect:function(d,f){return Mg(4194308,4,d,f)},useInsertionEffect:function(d,f){return Mg(4,2,d,f)},useMemo:function(d,f){var y=Wi();return f=f===void 0?null:f,d=d(),y.memoizedState=[d,f],d},useReducer:function(d,f,y){var k=Wi();return f=y!==void 0?y(f):f,k.memoizedState=k.baseState=f,d={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:d,lastRenderedState:f},k.queue=d,d=d.dispatch=NH.bind(null,fn,d),[k.memoizedState,d]},useRef:function(d){var f=Wi();return d={current:d},f.memoizedState=d},useState:gC,useDebugValue:Db,useDeferredValue:function(d){return Wi().memoizedState=d},useTransition:function(){var d=gC(!1),f=d[0];return d=jH.bind(null,d[1]),Wi().memoizedState=d,[f,d]},useMutableSource:function(){},useSyncExternalStore:function(d,f,y){var k=fn,T=Wi();if(tn){if(y===void 0)throw Error(n(407));y=y()}else{if(y=f(),Vn===null)throw Error(n(349));(Ql&30)!==0||uC(k,f,y)}T.memoizedState=y;var E={value:y,getSnapshot:f};return T.queue=E,yC(fC.bind(null,k,E,d),[d]),k.flags|=2048,Nf(9,hC.bind(null,k,E,y,f),void 0,null),y},useId:function(){var d=Wi(),f=Vn.identifierPrefix;if(tn){var y=Os,k=Es;y=(k&~(1<<32-it(k)-1)).toString(32)+y,f=":"+f+"R"+y,y=wf++,0<y&&(f+="H"+y.toString(32)),f+=":"}else y=wH++,f=":"+f+"r"+y.toString(32)+":";return d.memoizedState=f},unstable_isNewReconciler:!1},SH={readContext:Ma,useCallback:NC,useContext:Ma,useEffect:Lb,useImperativeHandle:jC,useInsertionEffect:vC,useLayoutEffect:bC,useMemo:kC,useReducer:Ib,useRef:xC,useState:function(){return Ib(jf)},useDebugValue:Db,useDeferredValue:function(d){var f=La();return _C(f,Mn.memoizedState,d)},useTransition:function(){var d=Ib(jf)[0],f=La().memoizedState;return[d,f]},useMutableSource:cC,useSyncExternalStore:dC,useId:SC,unstable_isNewReconciler:!1},CH={readContext:Ma,useCallback:NC,useContext:Ma,useEffect:Lb,useImperativeHandle:jC,useInsertionEffect:vC,useLayoutEffect:bC,useMemo:kC,useReducer:Mb,useRef:xC,useState:function(){return Mb(jf)},useDebugValue:Db,useDeferredValue:function(d){var f=La();return Mn===null?f.memoizedState=d:_C(f,Mn.memoizedState,d)},useTransition:function(){var d=Mb(jf)[0],f=La().memoizedState;return[d,f]},useMutableSource:cC,useSyncExternalStore:dC,useId:SC,unstable_isNewReconciler:!1};function ui(d,f){if(d&&d.defaultProps){f=Y({},f),d=d.defaultProps;for(var y in d)f[y]===void 0&&(f[y]=d[y]);return f}return f}function Bb(d,f,y,k){f=d.memoizedState,y=y(k,f),y=y==null?f:Y({},f,y),d.memoizedState=y,d.lanes===0&&(d.updateQueue.baseState=y)}var Bg={isMounted:function(d){return(d=d._reactInternals)?Ri(d)===d:!1},enqueueSetState:function(d,f,y){d=d._reactInternals;var k=Or(),T=Xo(d),E=Is(k,T);E.payload=f,y!=null&&(E.callback=y),f=Ko(d,E,T),f!==null&&(mi(f,d,T,k),Pg(f,d,T))},enqueueReplaceState:function(d,f,y){d=d._reactInternals;var k=Or(),T=Xo(d),E=Is(k,T);E.tag=1,E.payload=f,y!=null&&(E.callback=y),f=Ko(d,E,T),f!==null&&(mi(f,d,T,k),Pg(f,d,T))},enqueueForceUpdate:function(d,f){d=d._reactInternals;var y=Or(),k=Xo(d),T=Is(y,k);T.tag=2,f!=null&&(T.callback=f),f=Ko(d,T,k),f!==null&&(mi(f,d,k,y),Pg(f,d,k))}};function PC(d,f,y,k,T,E,D){return d=d.stateNode,typeof d.shouldComponentUpdate=="function"?d.shouldComponentUpdate(k,E,D):f.prototype&&f.prototype.isPureReactComponent?!Bi(y,k)||!Bi(T,E):!0}function EC(d,f,y){var k=!1,T=Uo,E=f.contextType;return typeof E=="object"&&E!==null?E=Ma(E):(T=qr(f)?Kl:pr.current,k=f.contextTypes,E=(k=k!=null)?Od(d,T):Uo),f=new f(y,E),d.memoizedState=f.state!==null&&f.state!==void 0?f.state:null,f.updater=Bg,d.stateNode=f,f._reactInternals=d,k&&(d=d.stateNode,d.__reactInternalMemoizedUnmaskedChildContext=T,d.__reactInternalMemoizedMaskedChildContext=E),f}function OC(d,f,y,k){d=f.state,typeof f.componentWillReceiveProps=="function"&&f.componentWillReceiveProps(y,k),typeof f.UNSAFE_componentWillReceiveProps=="function"&&f.UNSAFE_componentWillReceiveProps(y,k),f.state!==d&&Bg.enqueueReplaceState(f,f.state,null)}function Fb(d,f,y,k){var T=d.stateNode;T.props=y,T.state=d.memoizedState,T.refs={},_b(d);var E=f.contextType;typeof E=="object"&&E!==null?T.context=Ma(E):(E=qr(f)?Kl:pr.current,T.context=Od(d,E)),T.state=d.memoizedState,E=f.getDerivedStateFromProps,typeof E=="function"&&(Bb(d,f,E,y),T.state=d.memoizedState),typeof f.getDerivedStateFromProps=="function"||typeof T.getSnapshotBeforeUpdate=="function"||typeof T.UNSAFE_componentWillMount!="function"&&typeof T.componentWillMount!="function"||(f=T.state,typeof T.componentWillMount=="function"&&T.componentWillMount(),typeof T.UNSAFE_componentWillMount=="function"&&T.UNSAFE_componentWillMount(),f!==T.state&&Bg.enqueueReplaceState(T,T.state,null),Eg(d,y,T,k),T.state=d.memoizedState),typeof T.componentDidMount=="function"&&(d.flags|=4194308)}function zd(d,f){try{var y="",k=f;do y+=Ne(k),k=k.return;while(k);var T=y}catch(E){T=`
Error generating stack: `+E.message+`
`+E.stack}return{value:d,source:f,stack:T,digest:null}}function zb(d,f,y){return{value:d,source:null,stack:y??null,digest:f??null}}function $b(d,f){try{console.error(f.value)}catch(y){setTimeout(function(){throw y})}}var TH=typeof WeakMap=="function"?WeakMap:Map;function RC(d,f,y){y=Is(-1,y),y.tag=3,y.payload={element:null};var k=f.value;return y.callback=function(){Ug||(Ug=!0,nw=k),$b(d,f)},y}function IC(d,f,y){y=Is(-1,y),y.tag=3;var k=d.type.getDerivedStateFromError;if(typeof k=="function"){var T=f.value;y.payload=function(){return k(T)},y.callback=function(){$b(d,f)}}var E=d.stateNode;return E!==null&&typeof E.componentDidCatch=="function"&&(y.callback=function(){$b(d,f),typeof k!="function"&&(Yo===null?Yo=new Set([this]):Yo.add(this));var D=f.stack;this.componentDidCatch(f.value,{componentStack:D!==null?D:""})}),y}function MC(d,f,y){var k=d.pingCache;if(k===null){k=d.pingCache=new TH;var T=new Set;k.set(f,T)}else T=k.get(f),T===void 0&&(T=new Set,k.set(f,T));T.has(y)||(T.add(y),d=HH.bind(null,d,f,y),f.then(d,d))}function LC(d){do{var f;if((f=d.tag===13)&&(f=d.memoizedState,f=f!==null?f.dehydrated!==null:!0),f)return d;d=d.return}while(d!==null);return null}function DC(d,f,y,k,T){return(d.mode&1)===0?(d===f?d.flags|=65536:(d.flags|=128,y.flags|=131072,y.flags&=-52805,y.tag===1&&(y.alternate===null?y.tag=17:(f=Is(-1,1),f.tag=2,Ko(y,f,1))),y.lanes|=1),d):(d.flags|=65536,d.lanes=T,d)}var AH=I.ReactCurrentOwner,Gr=!1;function Er(d,f,y,k){f.child=d===null?rC(f,null,y,k):Ld(f,d.child,y,k)}function BC(d,f,y,k,T){y=y.render;var E=f.ref;return Bd(f,T),k=Ob(d,f,y,k,E,T),y=Rb(),d!==null&&!Gr?(f.updateQueue=d.updateQueue,f.flags&=-2053,d.lanes&=~T,Ms(d,f,T)):(tn&&y&&pb(f),f.flags|=1,Er(d,f,k,T),f.child)}function FC(d,f,y,k,T){if(d===null){var E=y.type;return typeof E=="function"&&!cw(E)&&E.defaultProps===void 0&&y.compare===null&&y.defaultProps===void 0?(f.tag=15,f.type=E,zC(d,f,E,k,T)):(d=Jg(y.type,null,k,f,f.mode,T),d.ref=f.ref,d.return=f,f.child=d)}if(E=d.child,(d.lanes&T)===0){var D=E.memoizedProps;if(y=y.compare,y=y!==null?y:Bi,y(D,k)&&d.ref===f.ref)return Ms(d,f,T)}return f.flags|=1,d=el(E,k),d.ref=f.ref,d.return=f,f.child=d}function zC(d,f,y,k,T){if(d!==null){var E=d.memoizedProps;if(Bi(E,k)&&d.ref===f.ref)if(Gr=!1,f.pendingProps=k=E,(d.lanes&T)!==0)(d.flags&131072)!==0&&(Gr=!0);else return f.lanes=d.lanes,Ms(d,f,T)}return Hb(d,f,y,k,T)}function $C(d,f,y){var k=f.pendingProps,T=k.children,E=d!==null?d.memoizedState:null;if(k.mode==="hidden")if((f.mode&1)===0)f.memoizedState={baseLanes:0,cachePool:null,transitions:null},Gt(Hd,ma),ma|=y;else{if((y&1073741824)===0)return d=E!==null?E.baseLanes|y:y,f.lanes=f.childLanes=1073741824,f.memoizedState={baseLanes:d,cachePool:null,transitions:null},f.updateQueue=null,Gt(Hd,ma),ma|=d,null;f.memoizedState={baseLanes:0,cachePool:null,transitions:null},k=E!==null?E.baseLanes:y,Gt(Hd,ma),ma|=k}else E!==null?(k=E.baseLanes|y,f.memoizedState=null):k=y,Gt(Hd,ma),ma|=k;return Er(d,f,T,y),f.child}function HC(d,f){var y=f.ref;(d===null&&y!==null||d!==null&&d.ref!==y)&&(f.flags|=512,f.flags|=2097152)}function Hb(d,f,y,k,T){var E=qr(y)?Kl:pr.current;return E=Od(f,E),Bd(f,T),y=Ob(d,f,y,k,E,T),k=Rb(),d!==null&&!Gr?(f.updateQueue=d.updateQueue,f.flags&=-2053,d.lanes&=~T,Ms(d,f,T)):(tn&&k&&pb(f),f.flags|=1,Er(d,f,y,T),f.child)}function WC(d,f,y,k,T){if(qr(y)){var E=!0;jg(f)}else E=!1;if(Bd(f,T),f.stateNode===null)zg(d,f),EC(f,y,k),Fb(f,y,k,T),k=!0;else if(d===null){var D=f.stateNode,U=f.memoizedProps;D.props=U;var J=D.context,ue=y.contextType;typeof ue=="object"&&ue!==null?ue=Ma(ue):(ue=qr(y)?Kl:pr.current,ue=Od(f,ue));var ye=y.getDerivedStateFromProps,je=typeof ye=="function"||typeof D.getSnapshotBeforeUpdate=="function";je||typeof D.UNSAFE_componentWillReceiveProps!="function"&&typeof D.componentWillReceiveProps!="function"||(U!==k||J!==ue)&&OC(f,D,k,ue),Go=!1;var xe=f.memoizedState;D.state=xe,Eg(f,k,D,T),J=f.memoizedState,U!==k||xe!==J||Ur.current||Go?(typeof ye=="function"&&(Bb(f,y,ye,k),J=f.memoizedState),(U=Go||PC(f,y,U,k,xe,J,ue))?(je||typeof D.UNSAFE_componentWillMount!="function"&&typeof D.componentWillMount!="function"||(typeof D.componentWillMount=="function"&&D.componentWillMount(),typeof D.UNSAFE_componentWillMount=="function"&&D.UNSAFE_componentWillMount()),typeof D.componentDidMount=="function"&&(f.flags|=4194308)):(typeof D.componentDidMount=="function"&&(f.flags|=4194308),f.memoizedProps=k,f.memoizedState=J),D.props=k,D.state=J,D.context=ue,k=U):(typeof D.componentDidMount=="function"&&(f.flags|=4194308),k=!1)}else{D=f.stateNode,iC(d,f),U=f.memoizedProps,ue=f.type===f.elementType?U:ui(f.type,U),D.props=ue,je=f.pendingProps,xe=D.context,J=y.contextType,typeof J=="object"&&J!==null?J=Ma(J):(J=qr(y)?Kl:pr.current,J=Od(f,J));var Ee=y.getDerivedStateFromProps;(ye=typeof Ee=="function"||typeof D.getSnapshotBeforeUpdate=="function")||typeof D.UNSAFE_componentWillReceiveProps!="function"&&typeof D.componentWillReceiveProps!="function"||(U!==je||xe!==J)&&OC(f,D,k,J),Go=!1,xe=f.memoizedState,D.state=xe,Eg(f,k,D,T);var Le=f.memoizedState;U!==je||xe!==Le||Ur.current||Go?(typeof Ee=="function"&&(Bb(f,y,Ee,k),Le=f.memoizedState),(ue=Go||PC(f,y,ue,k,xe,Le,J)||!1)?(ye||typeof D.UNSAFE_componentWillUpdate!="function"&&typeof D.componentWillUpdate!="function"||(typeof D.componentWillUpdate=="function"&&D.componentWillUpdate(k,Le,J),typeof D.UNSAFE_componentWillUpdate=="function"&&D.UNSAFE_componentWillUpdate(k,Le,J)),typeof D.componentDidUpdate=="function"&&(f.flags|=4),typeof D.getSnapshotBeforeUpdate=="function"&&(f.flags|=1024)):(typeof D.componentDidUpdate!="function"||U===d.memoizedProps&&xe===d.memoizedState||(f.flags|=4),typeof D.getSnapshotBeforeUpdate!="function"||U===d.memoizedProps&&xe===d.memoizedState||(f.flags|=1024),f.memoizedProps=k,f.memoizedState=Le),D.props=k,D.state=Le,D.context=J,k=ue):(typeof D.componentDidUpdate!="function"||U===d.memoizedProps&&xe===d.memoizedState||(f.flags|=4),typeof D.getSnapshotBeforeUpdate!="function"||U===d.memoizedProps&&xe===d.memoizedState||(f.flags|=1024),k=!1)}return Wb(d,f,y,k,E,T)}function Wb(d,f,y,k,T,E){HC(d,f);var D=(f.flags&128)!==0;if(!k&&!D)return T&&KS(f,y,!1),Ms(d,f,E);k=f.stateNode,AH.current=f;var U=D&&typeof y.getDerivedStateFromError!="function"?null:k.render();return f.flags|=1,d!==null&&D?(f.child=Ld(f,d.child,null,E),f.child=Ld(f,null,U,E)):Er(d,f,U,E),f.memoizedState=k.state,T&&KS(f,y,!0),f.child}function VC(d){var f=d.stateNode;f.pendingContext?qS(d,f.pendingContext,f.pendingContext!==f.context):f.context&&qS(d,f.context,!1),Sb(d,f.containerInfo)}function UC(d,f,y,k,T){return Md(),vb(T),f.flags|=256,Er(d,f,y,k),f.child}var Vb={dehydrated:null,treeContext:null,retryLane:0};function Ub(d){return{baseLanes:d,cachePool:null,transitions:null}}function qC(d,f,y){var k=f.pendingProps,T=hn.current,E=!1,D=(f.flags&128)!==0,U;if((U=D)||(U=d!==null&&d.memoizedState===null?!1:(T&2)!==0),U?(E=!0,f.flags&=-129):(d===null||d.memoizedState!==null)&&(T|=1),Gt(hn,T&1),d===null)return yb(f),d=f.memoizedState,d!==null&&(d=d.dehydrated,d!==null)?((f.mode&1)===0?f.lanes=1:d.data==="$!"?f.lanes=8:f.lanes=1073741824,null):(D=k.children,d=k.fallback,E?(k=f.mode,E=f.child,D={mode:"hidden",children:D},(k&1)===0&&E!==null?(E.childLanes=0,E.pendingProps=D):E=Xg(D,k,0,null),d=ac(d,k,y,null),E.return=f,d.return=f,E.sibling=d,f.child=E,f.child.memoizedState=Ub(y),f.memoizedState=Vb,d):qb(f,D));if(T=d.memoizedState,T!==null&&(U=T.dehydrated,U!==null))return PH(d,f,D,k,U,T,y);if(E){E=k.fallback,D=f.mode,T=d.child,U=T.sibling;var J={mode:"hidden",children:k.children};return(D&1)===0&&f.child!==T?(k=f.child,k.childLanes=0,k.pendingProps=J,f.deletions=null):(k=el(T,J),k.subtreeFlags=T.subtreeFlags&14680064),U!==null?E=el(U,E):(E=ac(E,D,y,null),E.flags|=2),E.return=f,k.return=f,k.sibling=E,f.child=k,k=E,E=f.child,D=d.child.memoizedState,D=D===null?Ub(y):{baseLanes:D.baseLanes|y,cachePool:null,transitions:D.transitions},E.memoizedState=D,E.childLanes=d.childLanes&~y,f.memoizedState=Vb,k}return E=d.child,d=E.sibling,k=el(E,{mode:"visible",children:k.children}),(f.mode&1)===0&&(k.lanes=y),k.return=f,k.sibling=null,d!==null&&(y=f.deletions,y===null?(f.deletions=[d],f.flags|=16):y.push(d)),f.child=k,f.memoizedState=null,k}function qb(d,f){return f=Xg({mode:"visible",children:f},d.mode,0,null),f.return=d,d.child=f}function Fg(d,f,y,k){return k!==null&&vb(k),Ld(f,d.child,null,y),d=qb(f,f.pendingProps.children),d.flags|=2,f.memoizedState=null,d}function PH(d,f,y,k,T,E,D){if(y)return f.flags&256?(f.flags&=-257,k=zb(Error(n(422))),Fg(d,f,D,k)):f.memoizedState!==null?(f.child=d.child,f.flags|=128,null):(E=k.fallback,T=f.mode,k=Xg({mode:"visible",children:k.children},T,0,null),E=ac(E,T,D,null),E.flags|=2,k.return=f,E.return=f,k.sibling=E,f.child=k,(f.mode&1)!==0&&Ld(f,d.child,null,D),f.child.memoizedState=Ub(D),f.memoizedState=Vb,E);if((f.mode&1)===0)return Fg(d,f,D,null);if(T.data==="$!"){if(k=T.nextSibling&&T.nextSibling.dataset,k)var U=k.dgst;return k=U,E=Error(n(419)),k=zb(E,k,void 0),Fg(d,f,D,k)}if(U=(D&d.childLanes)!==0,Gr||U){if(k=Vn,k!==null){switch(D&-D){case 4:T=2;break;case 16:T=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:T=32;break;case 536870912:T=268435456;break;default:T=0}T=(T&(k.suspendedLanes|D))!==0?0:T,T!==0&&T!==E.retryLane&&(E.retryLane=T,Rs(d,T),mi(k,d,T,-1))}return lw(),k=zb(Error(n(421))),Fg(d,f,D,k)}return T.data==="$?"?(f.flags|=128,f.child=d.child,f=WH.bind(null,d),T._reactRetry=f,null):(d=E.treeContext,fa=$i(T.nextSibling),ha=f,tn=!0,di=null,d!==null&&(Ra[Ia++]=Es,Ra[Ia++]=Os,Ra[Ia++]=Zl,Es=d.id,Os=d.overflow,Zl=f),f=qb(f,k.children),f.flags|=4096,f)}function GC(d,f,y){d.lanes|=f;var k=d.alternate;k!==null&&(k.lanes|=f),Nb(d.return,f,y)}function Gb(d,f,y,k,T){var E=d.memoizedState;E===null?d.memoizedState={isBackwards:f,rendering:null,renderingStartTime:0,last:k,tail:y,tailMode:T}:(E.isBackwards=f,E.rendering=null,E.renderingStartTime=0,E.last=k,E.tail=y,E.tailMode=T)}function KC(d,f,y){var k=f.pendingProps,T=k.revealOrder,E=k.tail;if(Er(d,f,k.children,y),k=hn.current,(k&2)!==0)k=k&1|2,f.flags|=128;else{if(d!==null&&(d.flags&128)!==0)e:for(d=f.child;d!==null;){if(d.tag===13)d.memoizedState!==null&&GC(d,y,f);else if(d.tag===19)GC(d,y,f);else if(d.child!==null){d.child.return=d,d=d.child;continue}if(d===f)break e;for(;d.sibling===null;){if(d.return===null||d.return===f)break e;d=d.return}d.sibling.return=d.return,d=d.sibling}k&=1}if(Gt(hn,k),(f.mode&1)===0)f.memoizedState=null;else switch(T){case"forwards":for(y=f.child,T=null;y!==null;)d=y.alternate,d!==null&&Og(d)===null&&(T=y),y=y.sibling;y=T,y===null?(T=f.child,f.child=null):(T=y.sibling,y.sibling=null),Gb(f,!1,T,y,E);break;case"backwards":for(y=null,T=f.child,f.child=null;T!==null;){if(d=T.alternate,d!==null&&Og(d)===null){f.child=T;break}d=T.sibling,T.sibling=y,y=T,T=d}Gb(f,!0,y,null,E);break;case"together":Gb(f,!1,null,null,void 0);break;default:f.memoizedState=null}return f.child}function zg(d,f){(f.mode&1)===0&&d!==null&&(d.alternate=null,f.alternate=null,f.flags|=2)}function Ms(d,f,y){if(d!==null&&(f.dependencies=d.dependencies),ec|=f.lanes,(y&f.childLanes)===0)return null;if(d!==null&&f.child!==d.child)throw Error(n(153));if(f.child!==null){for(d=f.child,y=el(d,d.pendingProps),f.child=y,y.return=f;d.sibling!==null;)d=d.sibling,y=y.sibling=el(d,d.pendingProps),y.return=f;y.sibling=null}return f.child}function EH(d,f,y){switch(f.tag){case 3:VC(f),Md();break;case 5:lC(f);break;case 1:qr(f.type)&&jg(f);break;case 4:Sb(f,f.stateNode.containerInfo);break;case 10:var k=f.type._context,T=f.memoizedProps.value;Gt(Tg,k._currentValue),k._currentValue=T;break;case 13:if(k=f.memoizedState,k!==null)return k.dehydrated!==null?(Gt(hn,hn.current&1),f.flags|=128,null):(y&f.child.childLanes)!==0?qC(d,f,y):(Gt(hn,hn.current&1),d=Ms(d,f,y),d!==null?d.sibling:null);Gt(hn,hn.current&1);break;case 19:if(k=(y&f.childLanes)!==0,(d.flags&128)!==0){if(k)return KC(d,f,y);f.flags|=128}if(T=f.memoizedState,T!==null&&(T.rendering=null,T.tail=null,T.lastEffect=null),Gt(hn,hn.current),k)break;return null;case 22:case 23:return f.lanes=0,$C(d,f,y)}return Ms(d,f,y)}var ZC,Kb,YC,JC;ZC=function(d,f){for(var y=f.child;y!==null;){if(y.tag===5||y.tag===6)d.appendChild(y.stateNode);else if(y.tag!==4&&y.child!==null){y.child.return=y,y=y.child;continue}if(y===f)break;for(;y.sibling===null;){if(y.return===null||y.return===f)return;y=y.return}y.sibling.return=y.return,y=y.sibling}},Kb=function(){},YC=function(d,f,y,k){var T=d.memoizedProps;if(T!==k){d=f.stateNode,Xl(Hi.current);var E=null;switch(y){case"input":T=at(d,T),k=at(d,k),E=[];break;case"select":T=Y({},T,{value:void 0}),k=Y({},k,{value:void 0}),E=[];break;case"textarea":T=Qc(d,T),k=Qc(d,k),E=[];break;default:typeof T.onClick!="function"&&typeof k.onClick=="function"&&(d.onclick=pe)}Mh(y,k);var D;y=null;for(ue in T)if(!k.hasOwnProperty(ue)&&T.hasOwnProperty(ue)&&T[ue]!=null)if(ue==="style"){var U=T[ue];for(D in U)U.hasOwnProperty(D)&&(y||(y={}),y[D]="")}else ue!=="dangerouslySetInnerHTML"&&ue!=="children"&&ue!=="suppressContentEditableWarning"&&ue!=="suppressHydrationWarning"&&ue!=="autoFocus"&&(i.hasOwnProperty(ue)?E||(E=[]):(E=E||[]).push(ue,null));for(ue in k){var J=k[ue];if(U=T?.[ue],k.hasOwnProperty(ue)&&J!==U&&(J!=null||U!=null))if(ue==="style")if(U){for(D in U)!U.hasOwnProperty(D)||J&&J.hasOwnProperty(D)||(y||(y={}),y[D]="");for(D in J)J.hasOwnProperty(D)&&U[D]!==J[D]&&(y||(y={}),y[D]=J[D])}else y||(E||(E=[]),E.push(ue,y)),y=J;else ue==="dangerouslySetInnerHTML"?(J=J?J.__html:void 0,U=U?U.__html:void 0,J!=null&&U!==J&&(E=E||[]).push(ue,J)):ue==="children"?typeof J!="string"&&typeof J!="number"||(E=E||[]).push(ue,""+J):ue!=="suppressContentEditableWarning"&&ue!=="suppressHydrationWarning"&&(i.hasOwnProperty(ue)?(J!=null&&ue==="onScroll"&&$t("scroll",d),E||U===J||(E=[])):(E=E||[]).push(ue,J))}y&&(E=E||[]).push("style",y);var ue=E;(f.updateQueue=ue)&&(f.flags|=4)}},JC=function(d,f,y,k){y!==k&&(f.flags|=4)};function kf(d,f){if(!tn)switch(d.tailMode){case"hidden":f=d.tail;for(var y=null;f!==null;)f.alternate!==null&&(y=f),f=f.sibling;y===null?d.tail=null:y.sibling=null;break;case"collapsed":y=d.tail;for(var k=null;y!==null;)y.alternate!==null&&(k=y),y=y.sibling;k===null?f||d.tail===null?d.tail=null:d.tail.sibling=null:k.sibling=null}}function xr(d){var f=d.alternate!==null&&d.alternate.child===d.child,y=0,k=0;if(f)for(var T=d.child;T!==null;)y|=T.lanes|T.childLanes,k|=T.subtreeFlags&14680064,k|=T.flags&14680064,T.return=d,T=T.sibling;else for(T=d.child;T!==null;)y|=T.lanes|T.childLanes,k|=T.subtreeFlags,k|=T.flags,T.return=d,T=T.sibling;return d.subtreeFlags|=k,d.childLanes=y,f}function OH(d,f,y){var k=f.pendingProps;switch(gb(f),f.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return xr(f),null;case 1:return qr(f.type)&&wg(),xr(f),null;case 3:return k=f.stateNode,Fd(),Yt(Ur),Yt(pr),Ab(),k.pendingContext&&(k.context=k.pendingContext,k.pendingContext=null),(d===null||d.child===null)&&(Sg(f)?f.flags|=4:d===null||d.memoizedState.isDehydrated&&(f.flags&256)===0||(f.flags|=1024,di!==null&&(iw(di),di=null))),Kb(d,f),xr(f),null;case 5:Cb(f);var T=Xl(vf.current);if(y=f.type,d!==null&&f.stateNode!=null)YC(d,f,y,k,T),d.ref!==f.ref&&(f.flags|=512,f.flags|=2097152);else{if(!k){if(f.stateNode===null)throw Error(n(166));return xr(f),null}if(d=Xl(Hi.current),Sg(f)){k=f.stateNode,y=f.type;var E=f.memoizedProps;switch(k[Oa]=f,k[Ho]=E,d=(f.mode&1)!==0,y){case"dialog":$t("cancel",k),$t("close",k);break;case"iframe":case"object":case"embed":$t("load",k);break;case"video":case"audio":for(T=0;T<Fo.length;T++)$t(Fo[T],k);break;case"source":$t("error",k);break;case"img":case"image":case"link":$t("error",k),$t("load",k);break;case"details":$t("toggle",k);break;case"input":Oe(k,E),$t("invalid",k);break;case"select":k._wrapperState={wasMultiple:!!E.multiple},$t("invalid",k);break;case"textarea":Rh(k,E),$t("invalid",k)}Mh(y,E),T=null;for(var D in E)if(E.hasOwnProperty(D)){var U=E[D];D==="children"?typeof U=="string"?k.textContent!==U&&(E.suppressHydrationWarning!==!0&&de(k.textContent,U,d),T=["children",U]):typeof U=="number"&&k.textContent!==""+U&&(E.suppressHydrationWarning!==!0&&de(k.textContent,U,d),T=["children",""+U]):i.hasOwnProperty(D)&&U!=null&&D==="onScroll"&&$t("scroll",k)}switch(y){case"input":Te(k),Hr(k,E,!0);break;case"textarea":Te(k),Bp(k);break;case"select":case"option":break;default:typeof E.onClick=="function"&&(k.onclick=pe)}k=T,f.updateQueue=k,k!==null&&(f.flags|=4)}else{D=T.nodeType===9?T:T.ownerDocument,d==="http://www.w3.org/1999/xhtml"&&(d=ed(y)),d==="http://www.w3.org/1999/xhtml"?y==="script"?(d=D.createElement("div"),d.innerHTML="<script><\/script>",d=d.removeChild(d.firstChild)):typeof k.is=="string"?d=D.createElement(y,{is:k.is}):(d=D.createElement(y),y==="select"&&(D=d,k.multiple?D.multiple=!0:k.size&&(D.size=k.size))):d=D.createElementNS(d,y),d[Oa]=f,d[Ho]=k,ZC(d,f,!1,!1),f.stateNode=d;e:{switch(D=ms(y,k),y){case"dialog":$t("cancel",d),$t("close",d),T=k;break;case"iframe":case"object":case"embed":$t("load",d),T=k;break;case"video":case"audio":for(T=0;T<Fo.length;T++)$t(Fo[T],d);T=k;break;case"source":$t("error",d),T=k;break;case"img":case"image":case"link":$t("error",d),$t("load",d),T=k;break;case"details":$t("toggle",d),T=k;break;case"input":Oe(d,k),T=at(d,k),$t("invalid",d);break;case"option":T=k;break;case"select":d._wrapperState={wasMultiple:!!k.multiple},T=Y({},k,{value:void 0}),$t("invalid",d);break;case"textarea":Rh(d,k),T=Qc(d,k),$t("invalid",d);break;default:T=k}Mh(y,T),U=T;for(E in U)if(U.hasOwnProperty(E)){var J=U[E];E==="style"?nd(d,J):E==="dangerouslySetInnerHTML"?(J=J?J.__html:void 0,J!=null&&Fp(d,J)):E==="children"?typeof J=="string"?(y!=="textarea"||J!=="")&&wo(d,J):typeof J=="number"&&wo(d,""+J):E!=="suppressContentEditableWarning"&&E!=="suppressHydrationWarning"&&E!=="autoFocus"&&(i.hasOwnProperty(E)?J!=null&&E==="onScroll"&&$t("scroll",d):J!=null&&P(d,E,J,D))}switch(y){case"input":Te(d),Hr(d,k,!1);break;case"textarea":Te(d),Bp(d);break;case"option":k.value!=null&&d.setAttribute("value",""+Ce(k.value));break;case"select":d.multiple=!!k.multiple,E=k.value,E!=null?Oi(d,!!k.multiple,E,!1):k.defaultValue!=null&&Oi(d,!!k.multiple,k.defaultValue,!0);break;default:typeof T.onClick=="function"&&(d.onclick=pe)}switch(y){case"button":case"input":case"select":case"textarea":k=!!k.autoFocus;break e;case"img":k=!0;break e;default:k=!1}}k&&(f.flags|=4)}f.ref!==null&&(f.flags|=512,f.flags|=2097152)}return xr(f),null;case 6:if(d&&f.stateNode!=null)JC(d,f,d.memoizedProps,k);else{if(typeof k!="string"&&f.stateNode===null)throw Error(n(166));if(y=Xl(vf.current),Xl(Hi.current),Sg(f)){if(k=f.stateNode,y=f.memoizedProps,k[Oa]=f,(E=k.nodeValue!==y)&&(d=ha,d!==null))switch(d.tag){case 3:de(k.nodeValue,y,(d.mode&1)!==0);break;case 5:d.memoizedProps.suppressHydrationWarning!==!0&&de(k.nodeValue,y,(d.mode&1)!==0)}E&&(f.flags|=4)}else k=(y.nodeType===9?y:y.ownerDocument).createTextNode(k),k[Oa]=f,f.stateNode=k}return xr(f),null;case 13:if(Yt(hn),k=f.memoizedState,d===null||d.memoizedState!==null&&d.memoizedState.dehydrated!==null){if(tn&&fa!==null&&(f.mode&1)!==0&&(f.flags&128)===0)eC(),Md(),f.flags|=98560,E=!1;else if(E=Sg(f),k!==null&&k.dehydrated!==null){if(d===null){if(!E)throw Error(n(318));if(E=f.memoizedState,E=E!==null?E.dehydrated:null,!E)throw Error(n(317));E[Oa]=f}else Md(),(f.flags&128)===0&&(f.memoizedState=null),f.flags|=4;xr(f),E=!1}else di!==null&&(iw(di),di=null),E=!0;if(!E)return f.flags&65536?f:null}return(f.flags&128)!==0?(f.lanes=y,f):(k=k!==null,k!==(d!==null&&d.memoizedState!==null)&&k&&(f.child.flags|=8192,(f.mode&1)!==0&&(d===null||(hn.current&1)!==0?Ln===0&&(Ln=3):lw())),f.updateQueue!==null&&(f.flags|=4),xr(f),null);case 4:return Fd(),Kb(d,f),d===null&&zo(f.stateNode.containerInfo),xr(f),null;case 10:return jb(f.type._context),xr(f),null;case 17:return qr(f.type)&&wg(),xr(f),null;case 19:if(Yt(hn),E=f.memoizedState,E===null)return xr(f),null;if(k=(f.flags&128)!==0,D=E.rendering,D===null)if(k)kf(E,!1);else{if(Ln!==0||d!==null&&(d.flags&128)!==0)for(d=f.child;d!==null;){if(D=Og(d),D!==null){for(f.flags|=128,kf(E,!1),k=D.updateQueue,k!==null&&(f.updateQueue=k,f.flags|=4),f.subtreeFlags=0,k=y,y=f.child;y!==null;)E=y,d=k,E.flags&=14680066,D=E.alternate,D===null?(E.childLanes=0,E.lanes=d,E.child=null,E.subtreeFlags=0,E.memoizedProps=null,E.memoizedState=null,E.updateQueue=null,E.dependencies=null,E.stateNode=null):(E.childLanes=D.childLanes,E.lanes=D.lanes,E.child=D.child,E.subtreeFlags=0,E.deletions=null,E.memoizedProps=D.memoizedProps,E.memoizedState=D.memoizedState,E.updateQueue=D.updateQueue,E.type=D.type,d=D.dependencies,E.dependencies=d===null?null:{lanes:d.lanes,firstContext:d.firstContext}),y=y.sibling;return Gt(hn,hn.current&1|2),f.child}d=d.sibling}E.tail!==null&&dn()>Wd&&(f.flags|=128,k=!0,kf(E,!1),f.lanes=4194304)}else{if(!k)if(d=Og(D),d!==null){if(f.flags|=128,k=!0,y=d.updateQueue,y!==null&&(f.updateQueue=y,f.flags|=4),kf(E,!0),E.tail===null&&E.tailMode==="hidden"&&!D.alternate&&!tn)return xr(f),null}else 2*dn()-E.renderingStartTime>Wd&&y!==1073741824&&(f.flags|=128,k=!0,kf(E,!1),f.lanes=4194304);E.isBackwards?(D.sibling=f.child,f.child=D):(y=E.last,y!==null?y.sibling=D:f.child=D,E.last=D)}return E.tail!==null?(f=E.tail,E.rendering=f,E.tail=f.sibling,E.renderingStartTime=dn(),f.sibling=null,y=hn.current,Gt(hn,k?y&1|2:y&1),f):(xr(f),null);case 22:case 23:return ow(),k=f.memoizedState!==null,d!==null&&d.memoizedState!==null!==k&&(f.flags|=8192),k&&(f.mode&1)!==0?(ma&1073741824)!==0&&(xr(f),f.subtreeFlags&6&&(f.flags|=8192)):xr(f),null;case 24:return null;case 25:return null}throw Error(n(156,f.tag))}function RH(d,f){switch(gb(f),f.tag){case 1:return qr(f.type)&&wg(),d=f.flags,d&65536?(f.flags=d&-65537|128,f):null;case 3:return Fd(),Yt(Ur),Yt(pr),Ab(),d=f.flags,(d&65536)!==0&&(d&128)===0?(f.flags=d&-65537|128,f):null;case 5:return Cb(f),null;case 13:if(Yt(hn),d=f.memoizedState,d!==null&&d.dehydrated!==null){if(f.alternate===null)throw Error(n(340));Md()}return d=f.flags,d&65536?(f.flags=d&-65537|128,f):null;case 19:return Yt(hn),null;case 4:return Fd(),null;case 10:return jb(f.type._context),null;case 22:case 23:return ow(),null;case 24:return null;default:return null}}var $g=!1,yr=!1,IH=typeof WeakSet=="function"?WeakSet:Set,Re=null;function $d(d,f){var y=d.ref;if(y!==null)if(typeof y=="function")try{y(null)}catch(k){yn(d,f,k)}else y.current=null}function Zb(d,f,y){try{y()}catch(k){yn(d,f,k)}}var XC=!1;function MH(d,f){if(Pe=zl,d=of(),lf(d)){if("selectionStart"in d)var y={start:d.selectionStart,end:d.selectionEnd};else e:{y=(y=d.ownerDocument)&&y.defaultView||window;var k=y.getSelection&&y.getSelection();if(k&&k.rangeCount!==0){y=k.anchorNode;var T=k.anchorOffset,E=k.focusNode;k=k.focusOffset;try{y.nodeType,E.nodeType}catch{y=null;break e}var D=0,U=-1,J=-1,ue=0,ye=0,je=d,xe=null;t:for(;;){for(var Ee;je!==y||T!==0&&je.nodeType!==3||(U=D+T),je!==E||k!==0&&je.nodeType!==3||(J=D+k),je.nodeType===3&&(D+=je.nodeValue.length),(Ee=je.firstChild)!==null;)xe=je,je=Ee;for(;;){if(je===d)break t;if(xe===y&&++ue===T&&(U=D),xe===E&&++ye===k&&(J=D),(Ee=je.nextSibling)!==null)break;je=xe,xe=je.parentNode}je=Ee}y=U===-1||J===-1?null:{start:U,end:J}}else y=null}y=y||{start:0,end:0}}else y=null;for(Ue={focusedElem:d,selectionRange:y},zl=!1,Re=f;Re!==null;)if(f=Re,d=f.child,(f.subtreeFlags&1028)!==0&&d!==null)d.return=f,Re=d;else for(;Re!==null;){f=Re;try{var Le=f.alternate;if((f.flags&1024)!==0)switch(f.tag){case 0:case 11:case 15:break;case 1:if(Le!==null){var De=Le.memoizedProps,Nn=Le.memoizedState,se=f.stateNode,ee=se.getSnapshotBeforeUpdate(f.elementType===f.type?De:ui(f.type,De),Nn);se.__reactInternalSnapshotBeforeUpdate=ee}break;case 3:var oe=f.stateNode.containerInfo;oe.nodeType===1?oe.textContent="":oe.nodeType===9&&oe.documentElement&&oe.removeChild(oe.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(_e){yn(f,f.return,_e)}if(d=f.sibling,d!==null){d.return=f.return,Re=d;break}Re=f.return}return Le=XC,XC=!1,Le}function _f(d,f,y){var k=f.updateQueue;if(k=k!==null?k.lastEffect:null,k!==null){var T=k=k.next;do{if((T.tag&d)===d){var E=T.destroy;T.destroy=void 0,E!==void 0&&Zb(f,y,E)}T=T.next}while(T!==k)}}function Hg(d,f){if(f=f.updateQueue,f=f!==null?f.lastEffect:null,f!==null){var y=f=f.next;do{if((y.tag&d)===d){var k=y.create;y.destroy=k()}y=y.next}while(y!==f)}}function Yb(d){var f=d.ref;if(f!==null){var y=d.stateNode;d.tag,d=y,typeof f=="function"?f(d):f.current=d}}function QC(d){var f=d.alternate;f!==null&&(d.alternate=null,QC(f)),d.child=null,d.deletions=null,d.sibling=null,d.tag===5&&(f=d.stateNode,f!==null&&(delete f[Oa],delete f[Ho],delete f[Wo],delete f[ub],delete f[hb])),d.stateNode=null,d.return=null,d.dependencies=null,d.memoizedProps=null,d.memoizedState=null,d.pendingProps=null,d.stateNode=null,d.updateQueue=null}function eT(d){return d.tag===5||d.tag===3||d.tag===4}function tT(d){e:for(;;){for(;d.sibling===null;){if(d.return===null||eT(d.return))return null;d=d.return}for(d.sibling.return=d.return,d=d.sibling;d.tag!==5&&d.tag!==6&&d.tag!==18;){if(d.flags&2||d.child===null||d.tag===4)continue e;d.child.return=d,d=d.child}if(!(d.flags&2))return d.stateNode}}function Jb(d,f,y){var k=d.tag;if(k===5||k===6)d=d.stateNode,f?y.nodeType===8?y.parentNode.insertBefore(d,f):y.insertBefore(d,f):(y.nodeType===8?(f=y.parentNode,f.insertBefore(d,y)):(f=y,f.appendChild(d)),y=y._reactRootContainer,y!=null||f.onclick!==null||(f.onclick=pe));else if(k!==4&&(d=d.child,d!==null))for(Jb(d,f,y),d=d.sibling;d!==null;)Jb(d,f,y),d=d.sibling}function Xb(d,f,y){var k=d.tag;if(k===5||k===6)d=d.stateNode,f?y.insertBefore(d,f):y.appendChild(d);else if(k!==4&&(d=d.child,d!==null))for(Xb(d,f,y),d=d.sibling;d!==null;)Xb(d,f,y),d=d.sibling}var er=null,hi=!1;function Zo(d,f,y){for(y=y.child;y!==null;)nT(d,f,y),y=y.sibling}function nT(d,f,y){if(aa&&typeof aa.onCommitFiberUnmount=="function")try{aa.onCommitFiberUnmount(Il,y)}catch{}switch(y.tag){case 5:yr||$d(y,f);case 6:var k=er,T=hi;er=null,Zo(d,f,y),er=k,hi=T,er!==null&&(hi?(d=er,y=y.stateNode,d.nodeType===8?d.parentNode.removeChild(y):d.removeChild(y)):er.removeChild(y.stateNode));break;case 18:er!==null&&(hi?(d=er,y=y.stateNode,d.nodeType===8?pf(d.parentNode,y):d.nodeType===1&&pf(d,y),oa(d)):pf(er,y.stateNode));break;case 4:k=er,T=hi,er=y.stateNode.containerInfo,hi=!0,Zo(d,f,y),er=k,hi=T;break;case 0:case 11:case 14:case 15:if(!yr&&(k=y.updateQueue,k!==null&&(k=k.lastEffect,k!==null))){T=k=k.next;do{var E=T,D=E.destroy;E=E.tag,D!==void 0&&((E&2)!==0||(E&4)!==0)&&Zb(y,f,D),T=T.next}while(T!==k)}Zo(d,f,y);break;case 1:if(!yr&&($d(y,f),k=y.stateNode,typeof k.componentWillUnmount=="function"))try{k.props=y.memoizedProps,k.state=y.memoizedState,k.componentWillUnmount()}catch(U){yn(y,f,U)}Zo(d,f,y);break;case 21:Zo(d,f,y);break;case 22:y.mode&1?(yr=(k=yr)||y.memoizedState!==null,Zo(d,f,y),yr=k):Zo(d,f,y);break;default:Zo(d,f,y)}}function rT(d){var f=d.updateQueue;if(f!==null){d.updateQueue=null;var y=d.stateNode;y===null&&(y=d.stateNode=new IH),f.forEach(function(k){var T=VH.bind(null,d,k);y.has(k)||(y.add(k),k.then(T,T))})}}function fi(d,f){var y=f.deletions;if(y!==null)for(var k=0;k<y.length;k++){var T=y[k];try{var E=d,D=f,U=D;e:for(;U!==null;){switch(U.tag){case 5:er=U.stateNode,hi=!1;break e;case 3:er=U.stateNode.containerInfo,hi=!0;break e;case 4:er=U.stateNode.containerInfo,hi=!0;break e}U=U.return}if(er===null)throw Error(n(160));nT(E,D,T),er=null,hi=!1;var J=T.alternate;J!==null&&(J.return=null),T.return=null}catch(ue){yn(T,f,ue)}}if(f.subtreeFlags&12854)for(f=f.child;f!==null;)aT(f,d),f=f.sibling}function aT(d,f){var y=d.alternate,k=d.flags;switch(d.tag){case 0:case 11:case 14:case 15:if(fi(f,d),Vi(d),k&4){try{_f(3,d,d.return),Hg(3,d)}catch(De){yn(d,d.return,De)}try{_f(5,d,d.return)}catch(De){yn(d,d.return,De)}}break;case 1:fi(f,d),Vi(d),k&512&&y!==null&&$d(y,y.return);break;case 5:if(fi(f,d),Vi(d),k&512&&y!==null&&$d(y,y.return),d.flags&32){var T=d.stateNode;try{wo(T,"")}catch(De){yn(d,d.return,De)}}if(k&4&&(T=d.stateNode,T!=null)){var E=d.memoizedProps,D=y!==null?y.memoizedProps:E,U=d.type,J=d.updateQueue;if(d.updateQueue=null,J!==null)try{U==="input"&&E.type==="radio"&&E.name!=null&&cn(T,E),ms(U,D);var ue=ms(U,E);for(D=0;D<J.length;D+=2){var ye=J[D],je=J[D+1];ye==="style"?nd(T,je):ye==="dangerouslySetInnerHTML"?Fp(T,je):ye==="children"?wo(T,je):P(T,ye,je,ue)}switch(U){case"input":On(T,E);break;case"textarea":Dp(T,E);break;case"select":var xe=T._wrapperState.wasMultiple;T._wrapperState.wasMultiple=!!E.multiple;var Ee=E.value;Ee!=null?Oi(T,!!E.multiple,Ee,!1):xe!==!!E.multiple&&(E.defaultValue!=null?Oi(T,!!E.multiple,E.defaultValue,!0):Oi(T,!!E.multiple,E.multiple?[]:"",!1))}T[Ho]=E}catch(De){yn(d,d.return,De)}}break;case 6:if(fi(f,d),Vi(d),k&4){if(d.stateNode===null)throw Error(n(162));T=d.stateNode,E=d.memoizedProps;try{T.nodeValue=E}catch(De){yn(d,d.return,De)}}break;case 3:if(fi(f,d),Vi(d),k&4&&y!==null&&y.memoizedState.isDehydrated)try{oa(f.containerInfo)}catch(De){yn(d,d.return,De)}break;case 4:fi(f,d),Vi(d);break;case 13:fi(f,d),Vi(d),T=d.child,T.flags&8192&&(E=T.memoizedState!==null,T.stateNode.isHidden=E,!E||T.alternate!==null&&T.alternate.memoizedState!==null||(tw=dn())),k&4&&rT(d);break;case 22:if(ye=y!==null&&y.memoizedState!==null,d.mode&1?(yr=(ue=yr)||ye,fi(f,d),yr=ue):fi(f,d),Vi(d),k&8192){if(ue=d.memoizedState!==null,(d.stateNode.isHidden=ue)&&!ye&&(d.mode&1)!==0)for(Re=d,ye=d.child;ye!==null;){for(je=Re=ye;Re!==null;){switch(xe=Re,Ee=xe.child,xe.tag){case 0:case 11:case 14:case 15:_f(4,xe,xe.return);break;case 1:$d(xe,xe.return);var Le=xe.stateNode;if(typeof Le.componentWillUnmount=="function"){k=xe,y=xe.return;try{f=k,Le.props=f.memoizedProps,Le.state=f.memoizedState,Le.componentWillUnmount()}catch(De){yn(k,y,De)}}break;case 5:$d(xe,xe.return);break;case 22:if(xe.memoizedState!==null){oT(je);continue}}Ee!==null?(Ee.return=xe,Re=Ee):oT(je)}ye=ye.sibling}e:for(ye=null,je=d;;){if(je.tag===5){if(ye===null){ye=je;try{T=je.stateNode,ue?(E=T.style,typeof E.setProperty=="function"?E.setProperty("display","none","important"):E.display="none"):(U=je.stateNode,J=je.memoizedProps.style,D=J!=null&&J.hasOwnProperty("display")?J.display:null,U.style.display=Ih("display",D))}catch(De){yn(d,d.return,De)}}}else if(je.tag===6){if(ye===null)try{je.stateNode.nodeValue=ue?"":je.memoizedProps}catch(De){yn(d,d.return,De)}}else if((je.tag!==22&&je.tag!==23||je.memoizedState===null||je===d)&&je.child!==null){je.child.return=je,je=je.child;continue}if(je===d)break e;for(;je.sibling===null;){if(je.return===null||je.return===d)break e;ye===je&&(ye=null),je=je.return}ye===je&&(ye=null),je.sibling.return=je.return,je=je.sibling}}break;case 19:fi(f,d),Vi(d),k&4&&rT(d);break;case 21:break;default:fi(f,d),Vi(d)}}function Vi(d){var f=d.flags;if(f&2){try{e:{for(var y=d.return;y!==null;){if(eT(y)){var k=y;break e}y=y.return}throw Error(n(160))}switch(k.tag){case 5:var T=k.stateNode;k.flags&32&&(wo(T,""),k.flags&=-33);var E=tT(d);Xb(d,E,T);break;case 3:case 4:var D=k.stateNode.containerInfo,U=tT(d);Jb(d,U,D);break;default:throw Error(n(161))}}catch(J){yn(d,d.return,J)}d.flags&=-3}f&4096&&(d.flags&=-4097)}function LH(d,f,y){Re=d,iT(d)}function iT(d,f,y){for(var k=(d.mode&1)!==0;Re!==null;){var T=Re,E=T.child;if(T.tag===22&&k){var D=T.memoizedState!==null||$g;if(!D){var U=T.alternate,J=U!==null&&U.memoizedState!==null||yr;U=$g;var ue=yr;if($g=D,(yr=J)&&!ue)for(Re=T;Re!==null;)D=Re,J=D.child,D.tag===22&&D.memoizedState!==null?lT(T):J!==null?(J.return=D,Re=J):lT(T);for(;E!==null;)Re=E,iT(E),E=E.sibling;Re=T,$g=U,yr=ue}sT(d)}else(T.subtreeFlags&8772)!==0&&E!==null?(E.return=T,Re=E):sT(d)}}function sT(d){for(;Re!==null;){var f=Re;if((f.flags&8772)!==0){var y=f.alternate;try{if((f.flags&8772)!==0)switch(f.tag){case 0:case 11:case 15:yr||Hg(5,f);break;case 1:var k=f.stateNode;if(f.flags&4&&!yr)if(y===null)k.componentDidMount();else{var T=f.elementType===f.type?y.memoizedProps:ui(f.type,y.memoizedProps);k.componentDidUpdate(T,y.memoizedState,k.__reactInternalSnapshotBeforeUpdate)}var E=f.updateQueue;E!==null&&oC(f,E,k);break;case 3:var D=f.updateQueue;if(D!==null){if(y=null,f.child!==null)switch(f.child.tag){case 5:y=f.child.stateNode;break;case 1:y=f.child.stateNode}oC(f,D,y)}break;case 5:var U=f.stateNode;if(y===null&&f.flags&4){y=U;var J=f.memoizedProps;switch(f.type){case"button":case"input":case"select":case"textarea":J.autoFocus&&y.focus();break;case"img":J.src&&(y.src=J.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(f.memoizedState===null){var ue=f.alternate;if(ue!==null){var ye=ue.memoizedState;if(ye!==null){var je=ye.dehydrated;je!==null&&oa(je)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}yr||f.flags&512&&Yb(f)}catch(xe){yn(f,f.return,xe)}}if(f===d){Re=null;break}if(y=f.sibling,y!==null){y.return=f.return,Re=y;break}Re=f.return}}function oT(d){for(;Re!==null;){var f=Re;if(f===d){Re=null;break}var y=f.sibling;if(y!==null){y.return=f.return,Re=y;break}Re=f.return}}function lT(d){for(;Re!==null;){var f=Re;try{switch(f.tag){case 0:case 11:case 15:var y=f.return;try{Hg(4,f)}catch(J){yn(f,y,J)}break;case 1:var k=f.stateNode;if(typeof k.componentDidMount=="function"){var T=f.return;try{k.componentDidMount()}catch(J){yn(f,T,J)}}var E=f.return;try{Yb(f)}catch(J){yn(f,E,J)}break;case 5:var D=f.return;try{Yb(f)}catch(J){yn(f,D,J)}}}catch(J){yn(f,f.return,J)}if(f===d){Re=null;break}var U=f.sibling;if(U!==null){U.return=f.return,Re=U;break}Re=f.return}}var DH=Math.ceil,Wg=I.ReactCurrentDispatcher,Qb=I.ReactCurrentOwner,Da=I.ReactCurrentBatchConfig,Pt=0,Vn=null,An=null,tr=0,ma=0,Hd=Vo(0),Ln=0,Sf=null,ec=0,Vg=0,ew=0,Cf=null,Kr=null,tw=0,Wd=1/0,Ls=null,Ug=!1,nw=null,Yo=null,qg=!1,Jo=null,Gg=0,Tf=0,rw=null,Kg=-1,Zg=0;function Or(){return(Pt&6)!==0?dn():Kg!==-1?Kg:Kg=dn()}function Xo(d){return(d.mode&1)===0?1:(Pt&2)!==0&&tr!==0?tr&-tr:bH.transition!==null?(Zg===0&&(Zg=Xp()),Zg):(d=Ct,d!==0||(d=window.event,d=d===void 0?16:kt(d.type)),d)}function mi(d,f,y,k){if(50<Tf)throw Tf=0,rw=null,Error(n(185));ia(d,y,k),((Pt&2)===0||d!==Vn)&&(d===Vn&&((Pt&2)===0&&(Vg|=y),Ln===4&&Qo(d,tr)),Zr(d,k),y===1&&Pt===0&&(f.mode&1)===0&&(Wd=dn()+500,Ng&&qo()))}function Zr(d,f){var y=d.callbackNode;cd(d,f);var k=qt(d,d===Vn?tr:0);if(k===0)y!==null&&Hh(y),d.callbackNode=null,d.callbackPriority=0;else if(f=k&-k,d.callbackPriority!==f){if(y!=null&&Hh(y),f===1)d.tag===0?vH(dT.bind(null,d)):ZS(dT.bind(null,d)),mr(function(){(Pt&6)===0&&qo()}),y=null;else{switch(Co(k)){case 1:y=Wh;break;case 4:y=Jp;break;case 16:y=od;break;case 536870912:y=No;break;default:y=od}y=yT(y,cT.bind(null,d))}d.callbackPriority=f,d.callbackNode=y}}function cT(d,f){if(Kg=-1,Zg=0,(Pt&6)!==0)throw Error(n(327));var y=d.callbackNode;if(Vd()&&d.callbackNode!==y)return null;var k=qt(d,d===Vn?tr:0);if(k===0)return null;if((k&30)!==0||(k&d.expiredLanes)!==0||f)f=Yg(d,k);else{f=k;var T=Pt;Pt|=2;var E=hT();(Vn!==d||tr!==f)&&(Ls=null,Wd=dn()+500,nc(d,f));do try{zH();break}catch(U){uT(d,U)}while(!0);wb(),Wg.current=E,Pt=T,An!==null?f=0:(Vn=null,tr=0,f=Ln)}if(f!==0){if(f===2&&(T=hr(d),T!==0&&(k=T,f=aw(d,T))),f===1)throw y=Sf,nc(d,0),Qo(d,k),Zr(d,dn()),y;if(f===6)Qo(d,k);else{if(T=d.current.alternate,(k&30)===0&&!BH(T)&&(f=Yg(d,k),f===2&&(E=hr(d),E!==0&&(k=E,f=aw(d,E))),f===1))throw y=Sf,nc(d,0),Qo(d,k),Zr(d,dn()),y;switch(d.finishedWork=T,d.finishedLanes=k,f){case 0:case 1:throw Error(n(345));case 2:rc(d,Kr,Ls);break;case 3:if(Qo(d,k),(k&130023424)===k&&(f=tw+500-dn(),10<f)){if(qt(d,0)!==0)break;if(T=d.suspendedLanes,(T&k)!==k){Or(),d.pingedLanes|=d.suspendedLanes&T;break}d.timeoutHandle=In(rc.bind(null,d,Kr,Ls),f);break}rc(d,Kr,Ls);break;case 4:if(Qo(d,k),(k&4194240)===k)break;for(f=d.eventTimes,T=-1;0<k;){var D=31-it(k);E=1<<D,D=f[D],D>T&&(T=D),k&=~E}if(k=T,k=dn()-k,k=(120>k?120:480>k?480:1080>k?1080:1920>k?1920:3e3>k?3e3:4320>k?4320:1960*DH(k/1960))-k,10<k){d.timeoutHandle=In(rc.bind(null,d,Kr,Ls),k);break}rc(d,Kr,Ls);break;case 5:rc(d,Kr,Ls);break;default:throw Error(n(329))}}}return Zr(d,dn()),d.callbackNode===y?cT.bind(null,d):null}function aw(d,f){var y=Cf;return d.current.memoizedState.isDehydrated&&(nc(d,f).flags|=256),d=Yg(d,f),d!==2&&(f=Kr,Kr=y,f!==null&&iw(f)),d}function iw(d){Kr===null?Kr=d:Kr.push.apply(Kr,d)}function BH(d){for(var f=d;;){if(f.flags&16384){var y=f.updateQueue;if(y!==null&&(y=y.stores,y!==null))for(var k=0;k<y.length;k++){var T=y[k],E=T.getSnapshot;T=T.value;try{if(!da(E(),T))return!1}catch{return!1}}}if(y=f.child,f.subtreeFlags&16384&&y!==null)y.return=f,f=y;else{if(f===d)break;for(;f.sibling===null;){if(f.return===null||f.return===d)return!0;f=f.return}f.sibling.return=f.return,f=f.sibling}}return!0}function Qo(d,f){for(f&=~ew,f&=~Vg,d.suspendedLanes|=f,d.pingedLanes&=~f,d=d.expirationTimes;0<f;){var y=31-it(f),k=1<<y;d[y]=-1,f&=~k}}function dT(d){if((Pt&6)!==0)throw Error(n(327));Vd();var f=qt(d,0);if((f&1)===0)return Zr(d,dn()),null;var y=Yg(d,f);if(d.tag!==0&&y===2){var k=hr(d);k!==0&&(f=k,y=aw(d,k))}if(y===1)throw y=Sf,nc(d,0),Qo(d,f),Zr(d,dn()),y;if(y===6)throw Error(n(345));return d.finishedWork=d.current.alternate,d.finishedLanes=f,rc(d,Kr,Ls),Zr(d,dn()),null}function sw(d,f){var y=Pt;Pt|=1;try{return d(f)}finally{Pt=y,Pt===0&&(Wd=dn()+500,Ng&&qo())}}function tc(d){Jo!==null&&Jo.tag===0&&(Pt&6)===0&&Vd();var f=Pt;Pt|=1;var y=Da.transition,k=Ct;try{if(Da.transition=null,Ct=1,d)return d()}finally{Ct=k,Da.transition=y,Pt=f,(Pt&6)===0&&qo()}}function ow(){ma=Hd.current,Yt(Hd)}function nc(d,f){d.finishedWork=null,d.finishedLanes=0;var y=d.timeoutHandle;if(y!==-1&&(d.timeoutHandle=-1,Tn(y)),An!==null)for(y=An.return;y!==null;){var k=y;switch(gb(k),k.tag){case 1:k=k.type.childContextTypes,k!=null&&wg();break;case 3:Fd(),Yt(Ur),Yt(pr),Ab();break;case 5:Cb(k);break;case 4:Fd();break;case 13:Yt(hn);break;case 19:Yt(hn);break;case 10:jb(k.type._context);break;case 22:case 23:ow()}y=y.return}if(Vn=d,An=d=el(d.current,null),tr=ma=f,Ln=0,Sf=null,ew=Vg=ec=0,Kr=Cf=null,Jl!==null){for(f=0;f<Jl.length;f++)if(y=Jl[f],k=y.interleaved,k!==null){y.interleaved=null;var T=k.next,E=y.pending;if(E!==null){var D=E.next;E.next=T,k.next=D}y.pending=k}Jl=null}return d}function uT(d,f){do{var y=An;try{if(wb(),Rg.current=Dg,Ig){for(var k=fn.memoizedState;k!==null;){var T=k.queue;T!==null&&(T.pending=null),k=k.next}Ig=!1}if(Ql=0,Wn=Mn=fn=null,bf=!1,wf=0,Qb.current=null,y===null||y.return===null){Ln=1,Sf=f,An=null;break}e:{var E=d,D=y.return,U=y,J=f;if(f=tr,U.flags|=32768,J!==null&&typeof J=="object"&&typeof J.then=="function"){var ue=J,ye=U,je=ye.tag;if((ye.mode&1)===0&&(je===0||je===11||je===15)){var xe=ye.alternate;xe?(ye.updateQueue=xe.updateQueue,ye.memoizedState=xe.memoizedState,ye.lanes=xe.lanes):(ye.updateQueue=null,ye.memoizedState=null)}var Ee=LC(D);if(Ee!==null){Ee.flags&=-257,DC(Ee,D,U,E,f),Ee.mode&1&&MC(E,ue,f),f=Ee,J=ue;var Le=f.updateQueue;if(Le===null){var De=new Set;De.add(J),f.updateQueue=De}else Le.add(J);break e}else{if((f&1)===0){MC(E,ue,f),lw();break e}J=Error(n(426))}}else if(tn&&U.mode&1){var Nn=LC(D);if(Nn!==null){(Nn.flags&65536)===0&&(Nn.flags|=256),DC(Nn,D,U,E,f),vb(zd(J,U));break e}}E=J=zd(J,U),Ln!==4&&(Ln=2),Cf===null?Cf=[E]:Cf.push(E),E=D;do{switch(E.tag){case 3:E.flags|=65536,f&=-f,E.lanes|=f;var se=RC(E,J,f);sC(E,se);break e;case 1:U=J;var ee=E.type,oe=E.stateNode;if((E.flags&128)===0&&(typeof ee.getDerivedStateFromError=="function"||oe!==null&&typeof oe.componentDidCatch=="function"&&(Yo===null||!Yo.has(oe)))){E.flags|=65536,f&=-f,E.lanes|=f;var _e=IC(E,U,f);sC(E,_e);break e}}E=E.return}while(E!==null)}mT(y)}catch(ze){f=ze,An===y&&y!==null&&(An=y=y.return);continue}break}while(!0)}function hT(){var d=Wg.current;return Wg.current=Dg,d===null?Dg:d}function lw(){(Ln===0||Ln===3||Ln===2)&&(Ln=4),Vn===null||(ec&268435455)===0&&(Vg&268435455)===0||Qo(Vn,tr)}function Yg(d,f){var y=Pt;Pt|=2;var k=hT();(Vn!==d||tr!==f)&&(Ls=null,nc(d,f));do try{FH();break}catch(T){uT(d,T)}while(!0);if(wb(),Pt=y,Wg.current=k,An!==null)throw Error(n(261));return Vn=null,tr=0,Ln}function FH(){for(;An!==null;)fT(An)}function zH(){for(;An!==null&&!Z0();)fT(An)}function fT(d){var f=xT(d.alternate,d,ma);d.memoizedProps=d.pendingProps,f===null?mT(d):An=f,Qb.current=null}function mT(d){var f=d;do{var y=f.alternate;if(d=f.return,(f.flags&32768)===0){if(y=OH(y,f,ma),y!==null){An=y;return}}else{if(y=RH(y,f),y!==null){y.flags&=32767,An=y;return}if(d!==null)d.flags|=32768,d.subtreeFlags=0,d.deletions=null;else{Ln=6,An=null;return}}if(f=f.sibling,f!==null){An=f;return}An=f=d}while(f!==null);Ln===0&&(Ln=5)}function rc(d,f,y){var k=Ct,T=Da.transition;try{Da.transition=null,Ct=1,$H(d,f,y,k)}finally{Da.transition=T,Ct=k}return null}function $H(d,f,y,k){do Vd();while(Jo!==null);if((Pt&6)!==0)throw Error(n(327));y=d.finishedWork;var T=d.finishedLanes;if(y===null)return null;if(d.finishedWork=null,d.finishedLanes=0,y===d.current)throw Error(n(177));d.callbackNode=null,d.callbackPriority=0;var E=y.lanes|y.childLanes;if(xn(d,E),d===Vn&&(An=Vn=null,tr=0),(y.subtreeFlags&2064)===0&&(y.flags&2064)===0||qg||(qg=!0,yT(od,function(){return Vd(),null})),E=(y.flags&15990)!==0,(y.subtreeFlags&15990)!==0||E){E=Da.transition,Da.transition=null;var D=Ct;Ct=1;var U=Pt;Pt|=4,Qb.current=null,MH(d,y),aT(y,d),Pa(Ue),zl=!!Pe,Ue=Pe=null,d.current=y,LH(y),sd(),Pt=U,Ct=D,Da.transition=E}else d.current=y;if(qg&&(qg=!1,Jo=d,Gg=T),E=d.pendingLanes,E===0&&(Yo=null),Ml(y.stateNode),Zr(d,dn()),f!==null)for(k=d.onRecoverableError,y=0;y<f.length;y++)T=f[y],k(T.value,{componentStack:T.stack,digest:T.digest});if(Ug)throw Ug=!1,d=nw,nw=null,d;return(Gg&1)!==0&&d.tag!==0&&Vd(),E=d.pendingLanes,(E&1)!==0?d===rw?Tf++:(Tf=0,rw=d):Tf=0,qo(),null}function Vd(){if(Jo!==null){var d=Co(Gg),f=Da.transition,y=Ct;try{if(Da.transition=null,Ct=16>d?16:d,Jo===null)var k=!1;else{if(d=Jo,Jo=null,Gg=0,(Pt&6)!==0)throw Error(n(331));var T=Pt;for(Pt|=4,Re=d.current;Re!==null;){var E=Re,D=E.child;if((Re.flags&16)!==0){var U=E.deletions;if(U!==null){for(var J=0;J<U.length;J++){var ue=U[J];for(Re=ue;Re!==null;){var ye=Re;switch(ye.tag){case 0:case 11:case 15:_f(8,ye,E)}var je=ye.child;if(je!==null)je.return=ye,Re=je;else for(;Re!==null;){ye=Re;var xe=ye.sibling,Ee=ye.return;if(QC(ye),ye===ue){Re=null;break}if(xe!==null){xe.return=Ee,Re=xe;break}Re=Ee}}}var Le=E.alternate;if(Le!==null){var De=Le.child;if(De!==null){Le.child=null;do{var Nn=De.sibling;De.sibling=null,De=Nn}while(De!==null)}}Re=E}}if((E.subtreeFlags&2064)!==0&&D!==null)D.return=E,Re=D;else e:for(;Re!==null;){if(E=Re,(E.flags&2048)!==0)switch(E.tag){case 0:case 11:case 15:_f(9,E,E.return)}var se=E.sibling;if(se!==null){se.return=E.return,Re=se;break e}Re=E.return}}var ee=d.current;for(Re=ee;Re!==null;){D=Re;var oe=D.child;if((D.subtreeFlags&2064)!==0&&oe!==null)oe.return=D,Re=oe;else e:for(D=ee;Re!==null;){if(U=Re,(U.flags&2048)!==0)try{switch(U.tag){case 0:case 11:case 15:Hg(9,U)}}catch(ze){yn(U,U.return,ze)}if(U===D){Re=null;break e}var _e=U.sibling;if(_e!==null){_e.return=U.return,Re=_e;break e}Re=U.return}}if(Pt=T,qo(),aa&&typeof aa.onPostCommitFiberRoot=="function")try{aa.onPostCommitFiberRoot(Il,d)}catch{}k=!0}return k}finally{Ct=y,Da.transition=f}}return!1}function pT(d,f,y){f=zd(y,f),f=RC(d,f,1),d=Ko(d,f,1),f=Or(),d!==null&&(ia(d,1,f),Zr(d,f))}function yn(d,f,y){if(d.tag===3)pT(d,d,y);else for(;f!==null;){if(f.tag===3){pT(f,d,y);break}else if(f.tag===1){var k=f.stateNode;if(typeof f.type.getDerivedStateFromError=="function"||typeof k.componentDidCatch=="function"&&(Yo===null||!Yo.has(k))){d=zd(y,d),d=IC(f,d,1),f=Ko(f,d,1),d=Or(),f!==null&&(ia(f,1,d),Zr(f,d));break}}f=f.return}}function HH(d,f,y){var k=d.pingCache;k!==null&&k.delete(f),f=Or(),d.pingedLanes|=d.suspendedLanes&y,Vn===d&&(tr&y)===y&&(Ln===4||Ln===3&&(tr&130023424)===tr&&500>dn()-tw?nc(d,0):ew|=y),Zr(d,f)}function gT(d,f){f===0&&((d.mode&1)===0?f=1:(f=_o,_o<<=1,(_o&130023424)===0&&(_o=4194304)));var y=Or();d=Rs(d,f),d!==null&&(ia(d,f,y),Zr(d,y))}function WH(d){var f=d.memoizedState,y=0;f!==null&&(y=f.retryLane),gT(d,y)}function VH(d,f){var y=0;switch(d.tag){case 13:var k=d.stateNode,T=d.memoizedState;T!==null&&(y=T.retryLane);break;case 19:k=d.stateNode;break;default:throw Error(n(314))}k!==null&&k.delete(f),gT(d,y)}var xT;xT=function(d,f,y){if(d!==null)if(d.memoizedProps!==f.pendingProps||Ur.current)Gr=!0;else{if((d.lanes&y)===0&&(f.flags&128)===0)return Gr=!1,EH(d,f,y);Gr=(d.flags&131072)!==0}else Gr=!1,tn&&(f.flags&1048576)!==0&&YS(f,_g,f.index);switch(f.lanes=0,f.tag){case 2:var k=f.type;zg(d,f),d=f.pendingProps;var T=Od(f,pr.current);Bd(f,y),T=Ob(null,f,k,d,T,y);var E=Rb();return f.flags|=1,typeof T=="object"&&T!==null&&typeof T.render=="function"&&T.$$typeof===void 0?(f.tag=1,f.memoizedState=null,f.updateQueue=null,qr(k)?(E=!0,jg(f)):E=!1,f.memoizedState=T.state!==null&&T.state!==void 0?T.state:null,_b(f),T.updater=Bg,f.stateNode=T,T._reactInternals=f,Fb(f,k,d,y),f=Wb(null,f,k,!0,E,y)):(f.tag=0,tn&&E&&pb(f),Er(null,f,T,y),f=f.child),f;case 16:k=f.elementType;e:{switch(zg(d,f),d=f.pendingProps,T=k._init,k=T(k._payload),f.type=k,T=f.tag=qH(k),d=ui(k,d),T){case 0:f=Hb(null,f,k,d,y);break e;case 1:f=WC(null,f,k,d,y);break e;case 11:f=BC(null,f,k,d,y);break e;case 14:f=FC(null,f,k,ui(k.type,d),y);break e}throw Error(n(306,k,""))}return f;case 0:return k=f.type,T=f.pendingProps,T=f.elementType===k?T:ui(k,T),Hb(d,f,k,T,y);case 1:return k=f.type,T=f.pendingProps,T=f.elementType===k?T:ui(k,T),WC(d,f,k,T,y);case 3:e:{if(VC(f),d===null)throw Error(n(387));k=f.pendingProps,E=f.memoizedState,T=E.element,iC(d,f),Eg(f,k,null,y);var D=f.memoizedState;if(k=D.element,E.isDehydrated)if(E={element:k,isDehydrated:!1,cache:D.cache,pendingSuspenseBoundaries:D.pendingSuspenseBoundaries,transitions:D.transitions},f.updateQueue.baseState=E,f.memoizedState=E,f.flags&256){T=zd(Error(n(423)),f),f=UC(d,f,k,y,T);break e}else if(k!==T){T=zd(Error(n(424)),f),f=UC(d,f,k,y,T);break e}else for(fa=$i(f.stateNode.containerInfo.firstChild),ha=f,tn=!0,di=null,y=rC(f,null,k,y),f.child=y;y;)y.flags=y.flags&-3|4096,y=y.sibling;else{if(Md(),k===T){f=Ms(d,f,y);break e}Er(d,f,k,y)}f=f.child}return f;case 5:return lC(f),d===null&&yb(f),k=f.type,T=f.pendingProps,E=d!==null?d.memoizedProps:null,D=T.children,pt(k,T)?D=null:E!==null&&pt(k,E)&&(f.flags|=32),HC(d,f),Er(d,f,D,y),f.child;case 6:return d===null&&yb(f),null;case 13:return qC(d,f,y);case 4:return Sb(f,f.stateNode.containerInfo),k=f.pendingProps,d===null?f.child=Ld(f,null,k,y):Er(d,f,k,y),f.child;case 11:return k=f.type,T=f.pendingProps,T=f.elementType===k?T:ui(k,T),BC(d,f,k,T,y);case 7:return Er(d,f,f.pendingProps,y),f.child;case 8:return Er(d,f,f.pendingProps.children,y),f.child;case 12:return Er(d,f,f.pendingProps.children,y),f.child;case 10:e:{if(k=f.type._context,T=f.pendingProps,E=f.memoizedProps,D=T.value,Gt(Tg,k._currentValue),k._currentValue=D,E!==null)if(da(E.value,D)){if(E.children===T.children&&!Ur.current){f=Ms(d,f,y);break e}}else for(E=f.child,E!==null&&(E.return=f);E!==null;){var U=E.dependencies;if(U!==null){D=E.child;for(var J=U.firstContext;J!==null;){if(J.context===k){if(E.tag===1){J=Is(-1,y&-y),J.tag=2;var ue=E.updateQueue;if(ue!==null){ue=ue.shared;var ye=ue.pending;ye===null?J.next=J:(J.next=ye.next,ye.next=J),ue.pending=J}}E.lanes|=y,J=E.alternate,J!==null&&(J.lanes|=y),Nb(E.return,y,f),U.lanes|=y;break}J=J.next}}else if(E.tag===10)D=E.type===f.type?null:E.child;else if(E.tag===18){if(D=E.return,D===null)throw Error(n(341));D.lanes|=y,U=D.alternate,U!==null&&(U.lanes|=y),Nb(D,y,f),D=E.sibling}else D=E.child;if(D!==null)D.return=E;else for(D=E;D!==null;){if(D===f){D=null;break}if(E=D.sibling,E!==null){E.return=D.return,D=E;break}D=D.return}E=D}Er(d,f,T.children,y),f=f.child}return f;case 9:return T=f.type,k=f.pendingProps.children,Bd(f,y),T=Ma(T),k=k(T),f.flags|=1,Er(d,f,k,y),f.child;case 14:return k=f.type,T=ui(k,f.pendingProps),T=ui(k.type,T),FC(d,f,k,T,y);case 15:return zC(d,f,f.type,f.pendingProps,y);case 17:return k=f.type,T=f.pendingProps,T=f.elementType===k?T:ui(k,T),zg(d,f),f.tag=1,qr(k)?(d=!0,jg(f)):d=!1,Bd(f,y),EC(f,k,T),Fb(f,k,T,y),Wb(null,f,k,!0,d,y);case 19:return KC(d,f,y);case 22:return $C(d,f,y)}throw Error(n(156,f.tag))};function yT(d,f){return Yp(d,f)}function UH(d,f,y,k){this.tag=d,this.key=y,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=f,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=k,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ba(d,f,y,k){return new UH(d,f,y,k)}function cw(d){return d=d.prototype,!(!d||!d.isReactComponent)}function qH(d){if(typeof d=="function")return cw(d)?1:0;if(d!=null){if(d=d.$$typeof,d===q)return 11;if(d===G)return 14}return 2}function el(d,f){var y=d.alternate;return y===null?(y=Ba(d.tag,f,d.key,d.mode),y.elementType=d.elementType,y.type=d.type,y.stateNode=d.stateNode,y.alternate=d,d.alternate=y):(y.pendingProps=f,y.type=d.type,y.flags=0,y.subtreeFlags=0,y.deletions=null),y.flags=d.flags&14680064,y.childLanes=d.childLanes,y.lanes=d.lanes,y.child=d.child,y.memoizedProps=d.memoizedProps,y.memoizedState=d.memoizedState,y.updateQueue=d.updateQueue,f=d.dependencies,y.dependencies=f===null?null:{lanes:f.lanes,firstContext:f.firstContext},y.sibling=d.sibling,y.index=d.index,y.ref=d.ref,y}function Jg(d,f,y,k,T,E){var D=2;if(k=d,typeof d=="function")cw(d)&&(D=1);else if(typeof d=="string")D=5;else e:switch(d){case z:return ac(y.children,T,E,f);case $:D=8,T|=8;break;case K:return d=Ba(12,y,f,T|2),d.elementType=K,d.lanes=E,d;case he:return d=Ba(13,y,f,T),d.elementType=he,d.lanes=E,d;case ne:return d=Ba(19,y,f,T),d.elementType=ne,d.lanes=E,d;case Q:return Xg(y,T,E,f);default:if(typeof d=="object"&&d!==null)switch(d.$$typeof){case X:D=10;break e;case te:D=9;break e;case q:D=11;break e;case G:D=14;break e;case H:D=16,k=null;break e}throw Error(n(130,d==null?d:typeof d,""))}return f=Ba(D,y,f,T),f.elementType=d,f.type=k,f.lanes=E,f}function ac(d,f,y,k){return d=Ba(7,d,k,f),d.lanes=y,d}function Xg(d,f,y,k){return d=Ba(22,d,k,f),d.elementType=Q,d.lanes=y,d.stateNode={isHidden:!1},d}function dw(d,f,y){return d=Ba(6,d,null,f),d.lanes=y,d}function uw(d,f,y){return f=Ba(4,d.children!==null?d.children:[],d.key,f),f.lanes=y,f.stateNode={containerInfo:d.containerInfo,pendingChildren:null,implementation:d.implementation},f}function GH(d,f,y,k,T){this.tag=f,this.containerInfo=d,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=So(0),this.expirationTimes=So(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=So(0),this.identifierPrefix=k,this.onRecoverableError=T,this.mutableSourceEagerHydrationData=null}function hw(d,f,y,k,T,E,D,U,J){return d=new GH(d,f,y,U,J),f===1?(f=1,E===!0&&(f|=8)):f=0,E=Ba(3,null,null,f),d.current=E,E.stateNode=d,E.memoizedState={element:k,isDehydrated:y,cache:null,transitions:null,pendingSuspenseBoundaries:null},_b(E),d}function KH(d,f,y){var k=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:M,key:k==null?null:""+k,children:d,containerInfo:f,implementation:y}}function vT(d){if(!d)return Uo;d=d._reactInternals;e:{if(Ri(d)!==d||d.tag!==1)throw Error(n(170));var f=d;do{switch(f.tag){case 3:f=f.stateNode.context;break e;case 1:if(qr(f.type)){f=f.stateNode.__reactInternalMemoizedMergedChildContext;break e}}f=f.return}while(f!==null);throw Error(n(171))}if(d.tag===1){var y=d.type;if(qr(y))return GS(d,y,f)}return f}function bT(d,f,y,k,T,E,D,U,J){return d=hw(y,k,!0,d,T,E,D,U,J),d.context=vT(null),y=d.current,k=Or(),T=Xo(y),E=Is(k,T),E.callback=f??null,Ko(y,E,T),d.current.lanes=T,ia(d,T,k),Zr(d,k),d}function Qg(d,f,y,k){var T=f.current,E=Or(),D=Xo(T);return y=vT(y),f.context===null?f.context=y:f.pendingContext=y,f=Is(E,D),f.payload={element:d},k=k===void 0?null:k,k!==null&&(f.callback=k),d=Ko(T,f,D),d!==null&&(mi(d,T,D,E),Pg(d,T,D)),D}function ex(d){return d=d.current,d.child?(d.child.tag===5,d.child.stateNode):null}function wT(d,f){if(d=d.memoizedState,d!==null&&d.dehydrated!==null){var y=d.retryLane;d.retryLane=y!==0&&y<f?y:f}}function fw(d,f){wT(d,f),(d=d.alternate)&&wT(d,f)}function ZH(){return null}var jT=typeof reportError=="function"?reportError:function(d){console.error(d)};function mw(d){this._internalRoot=d}tx.prototype.render=mw.prototype.render=function(d){var f=this._internalRoot;if(f===null)throw Error(n(409));Qg(d,f,null,null)},tx.prototype.unmount=mw.prototype.unmount=function(){var d=this._internalRoot;if(d!==null){this._internalRoot=null;var f=d.containerInfo;tc(function(){Qg(null,d,null,null)}),f[Dt]=null}};function tx(d){this._internalRoot=d}tx.prototype.unstable_scheduleHydration=function(d){if(d){var f=hd();d={blockedOn:null,target:d,priority:f};for(var y=0;y<Rn.length&&f!==0&&f<Rn[y].priority;y++);Rn.splice(y,0,d),y===0&&fd(d)}};function pw(d){return!(!d||d.nodeType!==1&&d.nodeType!==9&&d.nodeType!==11)}function nx(d){return!(!d||d.nodeType!==1&&d.nodeType!==9&&d.nodeType!==11&&(d.nodeType!==8||d.nodeValue!==" react-mount-point-unstable "))}function NT(){}function YH(d,f,y,k,T){if(T){if(typeof k=="function"){var E=k;k=function(){var ue=ex(D);E.call(ue)}}var D=bT(f,k,d,0,null,!1,!1,"",NT);return d._reactRootContainer=D,d[Dt]=D.current,zo(d.nodeType===8?d.parentNode:d),tc(),D}for(;T=d.lastChild;)d.removeChild(T);if(typeof k=="function"){var U=k;k=function(){var ue=ex(J);U.call(ue)}}var J=hw(d,0,!1,null,null,!1,!1,"",NT);return d._reactRootContainer=J,d[Dt]=J.current,zo(d.nodeType===8?d.parentNode:d),tc(function(){Qg(f,J,y,k)}),J}function rx(d,f,y,k,T){var E=y._reactRootContainer;if(E){var D=E;if(typeof T=="function"){var U=T;T=function(){var J=ex(D);U.call(J)}}Qg(f,D,d,T)}else D=YH(y,f,d,T,k);return ex(D)}dd=function(d){switch(d.tag){case 3:var f=d.stateNode;if(f.current.memoizedState.isDehydrated){var y=nt(f.pendingLanes);y!==0&&(ii(f,y|1),Zr(f,dn()),(Pt&6)===0&&(Wd=dn()+500,qo()))}break;case 13:tc(function(){var k=Rs(d,1);if(k!==null){var T=Or();mi(k,d,1,T)}}),fw(d,1)}},ys=function(d){if(d.tag===13){var f=Rs(d,134217728);if(f!==null){var y=Or();mi(f,d,134217728,y)}fw(d,134217728)}},ud=function(d){if(d.tag===13){var f=Xo(d),y=Rs(d,f);if(y!==null){var k=Or();mi(y,d,f,k)}fw(d,f)}},hd=function(){return Ct},Ll=function(d,f){var y=Ct;try{return Ct=d,f()}finally{Ct=y}},rd=function(d,f,y){switch(f){case"input":if(On(d,y),f=y.name,y.type==="radio"&&f!=null){for(y=d;y.parentNode;)y=y.parentNode;for(y=y.querySelectorAll("input[name="+JSON.stringify(""+f)+'][type="radio"]'),f=0;f<y.length;f++){var k=y[f];if(k!==d&&k.form===d.form){var T=Pd(k);if(!T)throw Error(n(90));fe(k),On(k,T)}}}break;case"textarea":Dp(d,y);break;case"select":f=y.value,f!=null&&Oi(d,!!y.multiple,f,!1)}},Vp=sw,Up=tc;var JH={usingClientEntryPoint:!1,Events:[Ts,As,Pd,Hp,Wp,sw]},Af={findFiberByHostInstance:Cs,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},XH={bundleType:Af.bundleType,version:Af.version,rendererPackageName:Af.rendererPackageName,rendererConfig:Af.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:I.ReactCurrentDispatcher,findHostInstanceByFiber:function(d){return d=Kp(d),d===null?null:d.stateNode},findFiberByHostInstance:Af.findFiberByHostInstance||ZH,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var ax=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ax.isDisabled&&ax.supportsFiber)try{Il=ax.inject(XH),aa=ax}catch{}}return Yr.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=JH,Yr.createPortal=function(d,f){var y=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!pw(f))throw Error(n(200));return KH(d,f,null,y)},Yr.createRoot=function(d,f){if(!pw(d))throw Error(n(299));var y=!1,k="",T=jT;return f!=null&&(f.unstable_strictMode===!0&&(y=!0),f.identifierPrefix!==void 0&&(k=f.identifierPrefix),f.onRecoverableError!==void 0&&(T=f.onRecoverableError)),f=hw(d,1,!1,null,null,y,!1,k,T),d[Dt]=f.current,zo(d.nodeType===8?d.parentNode:d),new mw(f)},Yr.findDOMNode=function(d){if(d==null)return null;if(d.nodeType===1)return d;var f=d._reactInternals;if(f===void 0)throw typeof d.render=="function"?Error(n(188)):(d=Object.keys(d).join(","),Error(n(268,d)));return d=Kp(f),d=d===null?null:d.stateNode,d},Yr.flushSync=function(d){return tc(d)},Yr.hydrate=function(d,f,y){if(!nx(f))throw Error(n(200));return rx(null,d,f,!0,y)},Yr.hydrateRoot=function(d,f,y){if(!pw(d))throw Error(n(405));var k=y!=null&&y.hydratedSources||null,T=!1,E="",D=jT;if(y!=null&&(y.unstable_strictMode===!0&&(T=!0),y.identifierPrefix!==void 0&&(E=y.identifierPrefix),y.onRecoverableError!==void 0&&(D=y.onRecoverableError)),f=bT(f,null,d,1,y??null,T,!1,E,D),d[Dt]=f.current,zo(d),k)for(d=0;d<k.length;d++)y=k[d],T=y._getVersion,T=T(y._source),f.mutableSourceEagerHydrationData==null?f.mutableSourceEagerHydrationData=[y,T]:f.mutableSourceEagerHydrationData.push(y,T);return new tx(f)},Yr.render=function(d,f,y){if(!nx(f))throw Error(n(200));return rx(null,d,f,!1,y)},Yr.unmountComponentAtNode=function(d){if(!nx(d))throw Error(n(40));return d._reactRootContainer?(tc(function(){rx(null,null,d,!1,function(){d._reactRootContainer=null,d[Dt]=null})}),!0):!1},Yr.unstable_batchedUpdates=sw,Yr.unstable_renderSubtreeIntoContainer=function(d,f,y,k){if(!nx(y))throw Error(n(200));if(d==null||d._reactInternals===void 0)throw Error(n(38));return rx(d,f,y,!1,k)},Yr.version="18.3.1-next-f1338f8080-20240426",Yr}var IT;function fR(){if(IT)return vw.exports;IT=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),vw.exports=iW(),vw.exports}var MT;function sW(){if(MT)return sx;MT=1;var e=fR();return sx.createRoot=e.createRoot,sx.hydrateRoot=e.hydrateRoot,sx}var oW=sW();const lW=Qa(oW);var LT="popstate";function cW(e={}){function t(a,i){let{pathname:s,search:o,hash:l}=a.location;return yj("",{pathname:s,search:o,hash:l},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function n(a,i){return typeof i=="string"?i:km(i)}return uW(t,n,null,e)}function on(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function qa(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function dW(){return Math.random().toString(36).substring(2,10)}function DT(e,t){return{usr:e.state,key:e.key,idx:t}}function yj(e,t,n=null,a){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?eh(t):t,state:n,key:t&&t.key||a||dW()}}function km({pathname:e="/",search:t="",hash:n=""}){return t&&t!=="?"&&(e+=t.charAt(0)==="?"?t:"?"+t),n&&n!=="#"&&(e+=n.charAt(0)==="#"?n:"#"+n),e}function eh(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let a=e.indexOf("?");a>=0&&(t.search=e.substring(a),e=e.substring(0,a)),e&&(t.pathname=e)}return t}function uW(e,t,n,a={}){let{window:i=document.defaultView,v5Compat:s=!1}=a,o=i.history,l="POP",c=null,h=m();h==null&&(h=0,o.replaceState({...o.state,idx:h},""));function m(){return(o.state||{idx:null}).idx}function p(){l="POP";let _=m(),S=_==null?null:_-h;h=_,c&&c({action:l,location:N.location,delta:S})}function x(_,S){l="PUSH";let A=yj(N.location,_,S);h=m()+1;let P=DT(A,h),I=N.createHref(A);try{o.pushState(P,"",I)}catch(O){if(O instanceof DOMException&&O.name==="DataCloneError")throw O;i.location.assign(I)}s&&c&&c({action:l,location:N.location,delta:1})}function b(_,S){l="REPLACE";let A=yj(N.location,_,S);h=m();let P=DT(A,h),I=N.createHref(A);o.replaceState(P,"",I),s&&c&&c({action:l,location:N.location,delta:0})}function j(_){return hW(_)}let N={get action(){return l},get location(){return e(i,o)},listen(_){if(c)throw new Error("A history only accepts one active listener");return i.addEventListener(LT,p),c=_,()=>{i.removeEventListener(LT,p),c=null}},createHref(_){return t(i,_)},createURL:j,encodeLocation(_){let S=j(_);return{pathname:S.pathname,search:S.search,hash:S.hash}},push:x,replace:b,go(_){return o.go(_)}};return N}function hW(e,t=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),on(n,"No window.location.(origin|href) available to create URL");let a=typeof e=="string"?e:km(e);return a=a.replace(/ $/,"%20"),!t&&a.startsWith("//")&&(a=n+a),new URL(a,n)}function mR(e,t,n="/"){return fW(e,t,n,!1)}function fW(e,t,n,a){let i=typeof t=="string"?eh(t):t,s=to(i.pathname||"/",n);if(s==null)return null;let o=pR(e);mW(o);let l=null;for(let c=0;l==null&&c<o.length;++c){let h=_W(s);l=NW(o[c],h,a)}return l}function pR(e,t=[],n=[],a="",i=!1){let s=(o,l,c=i,h)=>{let m={relativePath:h===void 0?o.path||"":h,caseSensitive:o.caseSensitive===!0,childrenIndex:l,route:o};if(m.relativePath.startsWith("/")){if(!m.relativePath.startsWith(a)&&c)return;on(m.relativePath.startsWith(a),`Absolute route path "${m.relativePath}" nested under path "${a}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),m.relativePath=m.relativePath.slice(a.length)}let p=Ys([a,m.relativePath]),x=n.concat(m);o.children&&o.children.length>0&&(on(o.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${p}".`),pR(o.children,t,x,p,c)),!(o.path==null&&!o.index)&&t.push({path:p,score:wW(p,o.index),routesMeta:x})};return e.forEach((o,l)=>{if(o.path===""||!o.path?.includes("?"))s(o,l);else for(let c of gR(o.path))s(o,l,!0,c)}),t}function gR(e){let t=e.split("/");if(t.length===0)return[];let[n,...a]=t,i=n.endsWith("?"),s=n.replace(/\?$/,"");if(a.length===0)return i?[s,""]:[s];let o=gR(a.join("/")),l=[];return l.push(...o.map(c=>c===""?s:[s,c].join("/"))),i&&l.push(...o),l.map(c=>e.startsWith("/")&&c===""?"/":c)}function mW(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:jW(t.routesMeta.map(a=>a.childrenIndex),n.routesMeta.map(a=>a.childrenIndex)))}var pW=/^:[\w-]+$/,gW=3,xW=2,yW=1,vW=10,bW=-2,BT=e=>e==="*";function wW(e,t){let n=e.split("/"),a=n.length;return n.some(BT)&&(a+=bW),t&&(a+=xW),n.filter(i=>!BT(i)).reduce((i,s)=>i+(pW.test(s)?gW:s===""?yW:vW),a)}function jW(e,t){return e.length===t.length&&e.slice(0,-1).every((a,i)=>a===t[i])?e[e.length-1]-t[t.length-1]:0}function NW(e,t,n=!1){let{routesMeta:a}=e,i={},s="/",o=[];for(let l=0;l<a.length;++l){let c=a[l],h=l===a.length-1,m=s==="/"?t:t.slice(s.length)||"/",p=Ny({path:c.relativePath,caseSensitive:c.caseSensitive,end:h},m),x=c.route;if(!p&&h&&n&&!a[a.length-1].route.index&&(p=Ny({path:c.relativePath,caseSensitive:c.caseSensitive,end:!1},m)),!p)return null;Object.assign(i,p.params),o.push({params:i,pathname:Ys([s,p.pathname]),pathnameBase:AW(Ys([s,p.pathnameBase])),route:x}),p.pathnameBase!=="/"&&(s=Ys([s,p.pathnameBase]))}return o}function Ny(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,a]=kW(e.path,e.caseSensitive,e.end),i=t.match(n);if(!i)return null;let s=i[0],o=s.replace(/(.)\/+$/,"$1"),l=i.slice(1);return{params:a.reduce((h,{paramName:m,isOptional:p},x)=>{if(m==="*"){let j=l[x]||"";o=s.slice(0,s.length-j.length).replace(/(.)\/+$/,"$1")}const b=l[x];return p&&!b?h[m]=void 0:h[m]=(b||"").replace(/%2F/g,"/"),h},{}),pathname:s,pathnameBase:o,pattern:e}}function kW(e,t=!1,n=!0){qa(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 a=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,l,c)=>(a.push({paramName:l,isOptional:c!=null}),c?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(a.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),a]}function _W(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return qa(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function to(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,a=e.charAt(n);return a&&a!=="/"?null:e.slice(n)||"/"}var xR=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,SW=e=>xR.test(e);function CW(e,t="/"){let{pathname:n,search:a="",hash:i=""}=typeof e=="string"?eh(e):e,s;if(n)if(SW(n))s=n;else{if(n.includes("//")){let o=n;n=n.replace(/\/\/+/g,"/"),qa(!1,`Pathnames cannot have embedded double slashes - normalizing ${o} -> ${n}`)}n.startsWith("/")?s=FT(n.substring(1),"/"):s=FT(n,t)}else s=t;return{pathname:s,search:PW(a),hash:EW(i)}}function FT(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function jw(e,t,n,a){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(a)}]. 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 TW(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function yk(e){let t=TW(e);return t.map((n,a)=>a===t.length-1?n.pathname:n.pathnameBase)}function vk(e,t,n,a=!1){let i;typeof e=="string"?i=eh(e):(i={...e},on(!i.pathname||!i.pathname.includes("?"),jw("?","pathname","search",i)),on(!i.pathname||!i.pathname.includes("#"),jw("#","pathname","hash",i)),on(!i.search||!i.search.includes("#"),jw("#","search","hash",i)));let s=e===""||i.pathname==="",o=s?"/":i.pathname,l;if(o==null)l=n;else{let p=t.length-1;if(!a&&o.startsWith("..")){let x=o.split("/");for(;x[0]==="..";)x.shift(),p-=1;i.pathname=x.join("/")}l=p>=0?t[p]:"/"}let c=CW(i,l),h=o&&o!=="/"&&o.endsWith("/"),m=(s||o===".")&&n.endsWith("/");return!c.pathname.endsWith("/")&&(h||m)&&(c.pathname+="/"),c}var Ys=e=>e.join("/").replace(/\/\/+/g,"/"),AW=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),PW=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,EW=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,OW=class{constructor(e,t,n,a=!1){this.status=e,this.statusText=t||"",this.internal=a,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function RW(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function IW(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var yR=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function vR(e,t){let n=e;if(typeof n!="string"||!xR.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let a=n,i=!1;if(yR)try{let s=new URL(window.location.href),o=n.startsWith("//")?new URL(s.protocol+n):new URL(n),l=to(o.pathname,t);o.origin===s.origin&&l!=null?n=l+o.search+o.hash:i=!0}catch{qa(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:a,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var bR=["POST","PUT","PATCH","DELETE"];new Set(bR);var MW=["GET",...bR];new Set(MW);var th=v.createContext(null);th.displayName="DataRouter";var Ov=v.createContext(null);Ov.displayName="DataRouterState";var LW=v.createContext(!1),wR=v.createContext({isTransitioning:!1});wR.displayName="ViewTransition";var DW=v.createContext(new Map);DW.displayName="Fetchers";var BW=v.createContext(null);BW.displayName="Await";var Sa=v.createContext(null);Sa.displayName="Navigation";var tp=v.createContext(null);tp.displayName="Location";var Si=v.createContext({outlet:null,matches:[],isDataRoute:!1});Si.displayName="Route";var bk=v.createContext(null);bk.displayName="RouteError";var jR="REACT_ROUTER_ERROR",FW="REDIRECT",zW="ROUTE_ERROR_RESPONSE";function $W(e){if(e.startsWith(`${jR}:${FW}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.location=="string"&&typeof t.reloadDocument=="boolean"&&typeof t.replace=="boolean")return t}catch{}}function HW(e){if(e.startsWith(`${jR}:${zW}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new OW(t.status,t.statusText,t.data)}catch{}}function WW(e,{relative:t}={}){on(nh(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:a}=v.useContext(Sa),{hash:i,pathname:s,search:o}=np(e,{relative:t}),l=s;return n!=="/"&&(l=s==="/"?n:Ys([n,s])),a.createHref({pathname:l,search:o,hash:i})}function nh(){return v.useContext(tp)!=null}function Yn(){return on(nh(),"useLocation() may be used only in the context of a <Router> component."),v.useContext(tp).location}var NR="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function kR(e){v.useContext(Sa).static||v.useLayoutEffect(e)}function rh(){let{isDataRoute:e}=v.useContext(Si);return e?rV():VW()}function VW(){on(nh(),"useNavigate() may be used only in the context of a <Router> component.");let e=v.useContext(th),{basename:t,navigator:n}=v.useContext(Sa),{matches:a}=v.useContext(Si),{pathname:i}=Yn(),s=JSON.stringify(yk(a)),o=v.useRef(!1);return kR(()=>{o.current=!0}),v.useCallback((c,h={})=>{if(qa(o.current,NR),!o.current)return;if(typeof c=="number"){n.go(c);return}let m=vk(c,JSON.parse(s),i,h.relative==="path");e==null&&t!=="/"&&(m.pathname=m.pathname==="/"?t:Ys([t,m.pathname])),(h.replace?n.replace:n.push)(m,h.state,h)},[t,n,s,i,e])}v.createContext(null);function UW(){let{matches:e}=v.useContext(Si),t=e[e.length-1];return t?t.params:{}}function np(e,{relative:t}={}){let{matches:n}=v.useContext(Si),{pathname:a}=Yn(),i=JSON.stringify(yk(n));return v.useMemo(()=>vk(e,JSON.parse(i),a,t==="path"),[e,i,a,t])}function qW(e,t){return _R(e,t)}function _R(e,t,n,a,i){on(nh(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:s}=v.useContext(Sa),{matches:o}=v.useContext(Si),l=o[o.length-1],c=l?l.params:{},h=l?l.pathname:"/",m=l?l.pathnameBase:"/",p=l&&l.route;{let A=p&&p.path||"";CR(h,!p||A.endsWith("*")||A.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${h}" (under <Route path="${A}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
Please change the parent <Route path="${A}"> to <Route path="${A==="/"?"*":`${A}/*`}">.`)}let x=Yn(),b;if(t){let A=typeof t=="string"?eh(t):t;on(m==="/"||A.pathname?.startsWith(m),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${m}" but pathname "${A.pathname}" was given in the \`location\` prop.`),b=A}else b=x;let j=b.pathname||"/",N=j;if(m!=="/"){let A=m.replace(/^\//,"").split("/");N="/"+j.replace(/^\//,"").split("/").slice(A.length).join("/")}let _=mR(e,{pathname:N});qa(p||_!=null,`No routes matched location "${b.pathname}${b.search}${b.hash}" `),qa(_==null||_[_.length-1].route.element!==void 0||_[_.length-1].route.Component!==void 0||_[_.length-1].route.lazy!==void 0,`Matched leaf route at location "${b.pathname}${b.search}${b.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let S=JW(_&&_.map(A=>Object.assign({},A,{params:Object.assign({},c,A.params),pathname:Ys([m,s.encodeLocation?s.encodeLocation(A.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:A.pathname]),pathnameBase:A.pathnameBase==="/"?m:Ys([m,s.encodeLocation?s.encodeLocation(A.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:A.pathnameBase])})),o,n,a,i);return t&&S?v.createElement(tp.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...b},navigationType:"POP"}},S):S}function GW(){let e=nV(),t=RW(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,a="rgba(200,200,200, 0.5)",i={padding:"0.5rem",backgroundColor:a},s={padding:"2px 4px",backgroundColor:a},o=null;return console.error("Error handled by React Router default ErrorBoundary:",e),o=v.createElement(v.Fragment,null,v.createElement("p",null,"💿 Hey developer 👋"),v.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",v.createElement("code",{style:s},"ErrorBoundary")," or"," ",v.createElement("code",{style:s},"errorElement")," prop on your route.")),v.createElement(v.Fragment,null,v.createElement("h2",null,"Unexpected Application Error!"),v.createElement("h3",{style:{fontStyle:"italic"}},t),n?v.createElement("pre",{style:i},n):null,o)}var KW=v.createElement(GW,null),SR=class extends v.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:t.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error("React Router caught the following error during render",e)}render(){let e=this.state.error;if(this.context&&typeof e=="object"&&e&&"digest"in e&&typeof e.digest=="string"){const n=HW(e.digest);n&&(e=n)}let t=e!==void 0?v.createElement(Si.Provider,{value:this.props.routeContext},v.createElement(bk.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?v.createElement(ZW,{error:e},t):t}};SR.contextType=LW;var Nw=new WeakMap;function ZW({children:e,error:t}){let{basename:n}=v.useContext(Sa);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let a=$W(t.digest);if(a){let i=Nw.get(t);if(i)throw i;let s=vR(a.location,n);if(yR&&!Nw.get(t))if(s.isExternal||a.reloadDocument)window.location.href=s.absoluteURL||s.to;else{const o=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(s.to,{replace:a.replace}));throw Nw.set(t,o),o}return v.createElement("meta",{httpEquiv:"refresh",content:`0;url=${s.absoluteURL||s.to}`})}}return e}function YW({routeContext:e,match:t,children:n}){let a=v.useContext(th);return a&&a.static&&a.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(a.staticContext._deepestRenderedBoundaryId=t.route.id),v.createElement(Si.Provider,{value:e},n)}function JW(e,t=[],n=null,a=null,i=null){if(e==null){if(!n)return null;if(n.errors)e=n.matches;else if(t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let s=e,o=n?.errors;if(o!=null){let m=s.findIndex(p=>p.route.id&&o?.[p.route.id]!==void 0);on(m>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(",")}`),s=s.slice(0,Math.min(s.length,m+1))}let l=!1,c=-1;if(n)for(let m=0;m<s.length;m++){let p=s[m];if((p.route.HydrateFallback||p.route.hydrateFallbackElement)&&(c=m),p.route.id){let{loaderData:x,errors:b}=n,j=p.route.loader&&!x.hasOwnProperty(p.route.id)&&(!b||b[p.route.id]===void 0);if(p.route.lazy||j){l=!0,c>=0?s=s.slice(0,c+1):s=[s[0]];break}}}let h=n&&a?(m,p)=>{a(m,{location:n.location,params:n.matches?.[0]?.params??{},unstable_pattern:IW(n.matches),errorInfo:p})}:void 0;return s.reduceRight((m,p,x)=>{let b,j=!1,N=null,_=null;n&&(b=o&&p.route.id?o[p.route.id]:void 0,N=p.route.errorElement||KW,l&&(c<0&&x===0?(CR("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),j=!0,_=null):c===x&&(j=!0,_=p.route.hydrateFallbackElement||null)));let S=t.concat(s.slice(0,x+1)),A=()=>{let P;return b?P=N:j?P=_:p.route.Component?P=v.createElement(p.route.Component,null):p.route.element?P=p.route.element:P=m,v.createElement(YW,{match:p,routeContext:{outlet:m,matches:S,isDataRoute:n!=null},children:P})};return n&&(p.route.ErrorBoundary||p.route.errorElement||x===0)?v.createElement(SR,{location:n.location,revalidation:n.revalidation,component:N,error:b,children:A(),routeContext:{outlet:null,matches:S,isDataRoute:!0},onError:h}):A()},null)}function wk(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function XW(e){let t=v.useContext(th);return on(t,wk(e)),t}function QW(e){let t=v.useContext(Ov);return on(t,wk(e)),t}function eV(e){let t=v.useContext(Si);return on(t,wk(e)),t}function jk(e){let t=eV(e),n=t.matches[t.matches.length-1];return on(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function tV(){return jk("useRouteId")}function nV(){let e=v.useContext(bk),t=QW("useRouteError"),n=jk("useRouteError");return e!==void 0?e:t.errors?.[n]}function rV(){let{router:e}=XW("useNavigate"),t=jk("useNavigate"),n=v.useRef(!1);return kR(()=>{n.current=!0}),v.useCallback(async(i,s={})=>{qa(n.current,NR),n.current&&(typeof i=="number"?await e.navigate(i):await e.navigate(i,{fromRouteId:t,...s}))},[e,t])}var zT={};function CR(e,t,n){!t&&!zT[e]&&(zT[e]=!0,qa(!1,n))}v.memo(aV);function aV({routes:e,future:t,state:n,onError:a}){return _R(e,void 0,n,a,t)}function TR({to:e,replace:t,state:n,relative:a}){on(nh(),"<Navigate> may be used only in the context of a <Router> component.");let{static:i}=v.useContext(Sa);qa(!i,"<Navigate> must not be used on the initial render in a <StaticRouter>. This is a no-op, but you should modify your code so the <Navigate> is only ever rendered in response to some user interaction or state change.");let{matches:s}=v.useContext(Si),{pathname:o}=Yn(),l=rh(),c=vk(e,yk(s),o,a==="path"),h=JSON.stringify(c);return v.useEffect(()=>{l(JSON.parse(h),{replace:t,state:n,relative:a})},[l,h,a,t,n]),null}function He(e){on(!1,"A <Route> is only ever to be used as the child of <Routes> element, never rendered directly. Please wrap your <Route> in a <Routes>.")}function iV({basename:e="/",children:t=null,location:n,navigationType:a="POP",navigator:i,static:s=!1,unstable_useTransitions:o}){on(!nh(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),c=v.useMemo(()=>({basename:l,navigator:i,static:s,unstable_useTransitions:o,future:{}}),[l,i,s,o]);typeof n=="string"&&(n=eh(n));let{pathname:h="/",search:m="",hash:p="",state:x=null,key:b="default"}=n,j=v.useMemo(()=>{let N=to(h,l);return N==null?null:{location:{pathname:N,search:m,hash:p,state:x,key:b},navigationType:a}},[l,h,m,p,x,b,a]);return qa(j!=null,`<Router basename="${l}"> is not able to match the URL "${h}${m}${p}" because it does not start with the basename, so the <Router> won't render anything.`),j==null?null:v.createElement(Sa.Provider,{value:c},v.createElement(tp.Provider,{children:t,value:j}))}function sV({children:e,location:t}){return qW(vj(e),t)}function vj(e,t=[]){let n=[];return v.Children.forEach(e,(a,i)=>{if(!v.isValidElement(a))return;let s=[...t,i];if(a.type===v.Fragment){n.push.apply(n,vj(a.props.children,s));return}on(a.type===He,`[${typeof a.type=="string"?a.type:a.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),on(!a.props.index||!a.props.children,"An index route cannot have child routes.");let o={id:a.props.id||s.join("-"),caseSensitive:a.props.caseSensitive,element:a.props.element,Component:a.props.Component,index:a.props.index,path:a.props.path,middleware:a.props.middleware,loader:a.props.loader,action:a.props.action,hydrateFallbackElement:a.props.hydrateFallbackElement,HydrateFallback:a.props.HydrateFallback,errorElement:a.props.errorElement,ErrorBoundary:a.props.ErrorBoundary,hasErrorBoundary:a.props.hasErrorBoundary===!0||a.props.ErrorBoundary!=null||a.props.errorElement!=null,shouldRevalidate:a.props.shouldRevalidate,handle:a.props.handle,lazy:a.props.lazy};a.props.children&&(o.children=vj(a.props.children,s)),n.push(o)}),n}var ry="get",ay="application/x-www-form-urlencoded";function Rv(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function oV(e){return Rv(e)&&e.tagName.toLowerCase()==="button"}function lV(e){return Rv(e)&&e.tagName.toLowerCase()==="form"}function cV(e){return Rv(e)&&e.tagName.toLowerCase()==="input"}function dV(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function uV(e,t){return e.button===0&&(!t||t==="_self")&&!dV(e)}var ox=null;function hV(){if(ox===null)try{new FormData(document.createElement("form"),0),ox=!1}catch{ox=!0}return ox}var fV=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function kw(e){return e!=null&&!fV.has(e)?(qa(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${ay}"`),null):e}function mV(e,t){let n,a,i,s,o;if(lV(e)){let l=e.getAttribute("action");a=l?to(l,t):null,n=e.getAttribute("method")||ry,i=kw(e.getAttribute("enctype"))||ay,s=new FormData(e)}else if(oV(e)||cV(e)&&(e.type==="submit"||e.type==="image")){let l=e.form;if(l==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let c=e.getAttribute("formaction")||l.getAttribute("action");if(a=c?to(c,t):null,n=e.getAttribute("formmethod")||l.getAttribute("method")||ry,i=kw(e.getAttribute("formenctype"))||kw(l.getAttribute("enctype"))||ay,s=new FormData(l,e),!hV()){let{name:h,type:m,value:p}=e;if(m==="image"){let x=h?`${h}.`:"";s.append(`${x}x`,"0"),s.append(`${x}y`,"0")}else h&&s.append(h,p)}}else{if(Rv(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=ry,a=null,i=ay,o=e}return s&&i==="text/plain"&&(o=s,s=void 0),{action:a,method:n.toLowerCase(),encType:i,formData:s,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Nk(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function pV(e,t,n,a){let i=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return n?i.pathname.endsWith("/")?i.pathname=`${i.pathname}_.${a}`:i.pathname=`${i.pathname}.${a}`:i.pathname==="/"?i.pathname=`_root.${a}`:t&&to(i.pathname,t)==="/"?i.pathname=`${t.replace(/\/$/,"")}/_root.${a}`:i.pathname=`${i.pathname.replace(/\/$/,"")}.${a}`,i}async function gV(e,t){if(e.id in t)return t[e.id];try{let n=await import(e.module);return t[e.id]=n,n}catch(n){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(n),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function xV(e){return e==null?!1:e.href==null?e.rel==="preload"&&typeof e.imageSrcSet=="string"&&typeof e.imageSizes=="string":typeof e.rel=="string"&&typeof e.href=="string"}async function yV(e,t,n){let a=await Promise.all(e.map(async i=>{let s=t.routes[i.route.id];if(s){let o=await gV(s,n);return o.links?o.links():[]}return[]}));return jV(a.flat(1).filter(xV).filter(i=>i.rel==="stylesheet"||i.rel==="preload").map(i=>i.rel==="stylesheet"?{...i,rel:"prefetch",as:"style"}:{...i,rel:"prefetch"}))}function $T(e,t,n,a,i,s){let o=(c,h)=>n[h]?c.route.id!==n[h].route.id:!0,l=(c,h)=>n[h].pathname!==c.pathname||n[h].route.path?.endsWith("*")&&n[h].params["*"]!==c.params["*"];return s==="assets"?t.filter((c,h)=>o(c,h)||l(c,h)):s==="data"?t.filter((c,h)=>{let m=a.routes[c.route.id];if(!m||!m.hasLoader)return!1;if(o(c,h)||l(c,h))return!0;if(c.route.shouldRevalidate){let p=c.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:c.params,defaultShouldRevalidate:!0});if(typeof p=="boolean")return p}return!0}):[]}function vV(e,t,{includeHydrateFallback:n}={}){return bV(e.map(a=>{let i=t.routes[a.route.id];if(!i)return[];let s=[i.module];return i.clientActionModule&&(s=s.concat(i.clientActionModule)),i.clientLoaderModule&&(s=s.concat(i.clientLoaderModule)),n&&i.hydrateFallbackModule&&(s=s.concat(i.hydrateFallbackModule)),i.imports&&(s=s.concat(i.imports)),s}).flat(1))}function bV(e){return[...new Set(e)]}function wV(e){let t={},n=Object.keys(e).sort();for(let a of n)t[a]=e[a];return t}function jV(e,t){let n=new Set;return new Set(t),e.reduce((a,i)=>{let s=JSON.stringify(wV(i));return n.has(s)||(n.add(s),a.push({key:s,link:i})),a},[])}function AR(){let e=v.useContext(th);return Nk(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function NV(){let e=v.useContext(Ov);return Nk(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var kk=v.createContext(void 0);kk.displayName="FrameworkContext";function PR(){let e=v.useContext(kk);return Nk(e,"You must render this element inside a <HydratedRouter> element"),e}function kV(e,t){let n=v.useContext(kk),[a,i]=v.useState(!1),[s,o]=v.useState(!1),{onFocus:l,onBlur:c,onMouseEnter:h,onMouseLeave:m,onTouchStart:p}=t,x=v.useRef(null);v.useEffect(()=>{if(e==="render"&&o(!0),e==="viewport"){let N=S=>{S.forEach(A=>{o(A.isIntersecting)})},_=new IntersectionObserver(N,{threshold:.5});return x.current&&_.observe(x.current),()=>{_.disconnect()}}},[e]),v.useEffect(()=>{if(a){let N=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(N)}}},[a]);let b=()=>{i(!0)},j=()=>{i(!1),o(!1)};return n?e!=="intent"?[s,x,{}]:[s,x,{onFocus:Ef(l,b),onBlur:Ef(c,j),onMouseEnter:Ef(h,b),onMouseLeave:Ef(m,j),onTouchStart:Ef(p,b)}]:[!1,x,{}]}function Ef(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function _V({page:e,...t}){let{router:n}=AR(),a=v.useMemo(()=>mR(n.routes,e,n.basename),[n.routes,e,n.basename]);return a?v.createElement(CV,{page:e,matches:a,...t}):null}function SV(e){let{manifest:t,routeModules:n}=PR(),[a,i]=v.useState([]);return v.useEffect(()=>{let s=!1;return yV(e,t,n).then(o=>{s||i(o)}),()=>{s=!0}},[e,t,n]),a}function CV({page:e,matches:t,...n}){let a=Yn(),{future:i,manifest:s,routeModules:o}=PR(),{basename:l}=AR(),{loaderData:c,matches:h}=NV(),m=v.useMemo(()=>$T(e,t,h,s,a,"data"),[e,t,h,s,a]),p=v.useMemo(()=>$T(e,t,h,s,a,"assets"),[e,t,h,s,a]),x=v.useMemo(()=>{if(e===a.pathname+a.search+a.hash)return[];let N=new Set,_=!1;if(t.forEach(A=>{let P=s.routes[A.route.id];!P||!P.hasLoader||(!m.some(I=>I.route.id===A.route.id)&&A.route.id in c&&o[A.route.id]?.shouldRevalidate||P.hasClientLoader?_=!0:N.add(A.route.id))}),N.size===0)return[];let S=pV(e,l,i.unstable_trailingSlashAwareDataRequests,"data");return _&&N.size>0&&S.searchParams.set("_routes",t.filter(A=>N.has(A.route.id)).map(A=>A.route.id).join(",")),[S.pathname+S.search]},[l,i.unstable_trailingSlashAwareDataRequests,c,a,s,m,t,e,o]),b=v.useMemo(()=>vV(p,s),[p,s]),j=SV(p);return v.createElement(v.Fragment,null,x.map(N=>v.createElement("link",{key:N,rel:"prefetch",as:"fetch",href:N,...n})),b.map(N=>v.createElement("link",{key:N,rel:"modulepreload",href:N,...n})),j.map(({key:N,link:_})=>v.createElement("link",{key:N,nonce:n.nonce,..._})))}function TV(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var AV=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{AV&&(window.__reactRouterVersion="7.12.0")}catch{}function PV({basename:e,children:t,unstable_useTransitions:n,window:a}){let i=v.useRef();i.current==null&&(i.current=cW({window:a,v5Compat:!0}));let s=i.current,[o,l]=v.useState({action:s.action,location:s.location}),c=v.useCallback(h=>{n===!1?l(h):v.startTransition(()=>l(h))},[n]);return v.useLayoutEffect(()=>s.listen(c),[s,c]),v.createElement(iV,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:s,unstable_useTransitions:n})}var ER=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,_t=v.forwardRef(function({onClick:t,discover:n="render",prefetch:a="none",relative:i,reloadDocument:s,replace:o,state:l,target:c,to:h,preventScrollReset:m,viewTransition:p,unstable_defaultShouldRevalidate:x,...b},j){let{basename:N,unstable_useTransitions:_}=v.useContext(Sa),S=typeof h=="string"&&ER.test(h),A=vR(h,N);h=A.to;let P=WW(h,{relative:i}),[I,O,M]=kV(a,b),z=IV(h,{replace:o,state:l,target:c,preventScrollReset:m,relative:i,viewTransition:p,unstable_defaultShouldRevalidate:x,unstable_useTransitions:_});function $(X){t&&t(X),X.defaultPrevented||z(X)}let K=v.createElement("a",{...b,...M,href:A.absoluteURL||P,onClick:A.isExternal||s?t:$,ref:TV(j,O),target:c,"data-discover":!S&&n==="render"?"true":void 0});return I&&!S?v.createElement(v.Fragment,null,K,v.createElement(_V,{page:P})):K});_t.displayName="Link";var EV=v.forwardRef(function({"aria-current":t="page",caseSensitive:n=!1,className:a="",end:i=!1,style:s,to:o,viewTransition:l,children:c,...h},m){let p=np(o,{relative:h.relative}),x=Yn(),b=v.useContext(Ov),{navigator:j,basename:N}=v.useContext(Sa),_=b!=null&&FV(p)&&l===!0,S=j.encodeLocation?j.encodeLocation(p).pathname:p.pathname,A=x.pathname,P=b&&b.navigation&&b.navigation.location?b.navigation.location.pathname:null;n||(A=A.toLowerCase(),P=P?P.toLowerCase():null,S=S.toLowerCase()),P&&N&&(P=to(P,N)||P);const I=S!=="/"&&S.endsWith("/")?S.length-1:S.length;let O=A===S||!i&&A.startsWith(S)&&A.charAt(I)==="/",M=P!=null&&(P===S||!i&&P.startsWith(S)&&P.charAt(S.length)==="/"),z={isActive:O,isPending:M,isTransitioning:_},$=O?t:void 0,K;typeof a=="function"?K=a(z):K=[a,O?"active":null,M?"pending":null,_?"transitioning":null].filter(Boolean).join(" ");let X=typeof s=="function"?s(z):s;return v.createElement(_t,{...h,"aria-current":$,className:K,ref:m,style:X,to:o,viewTransition:l},typeof c=="function"?c(z):c)});EV.displayName="NavLink";var OV=v.forwardRef(({discover:e="render",fetcherKey:t,navigate:n,reloadDocument:a,replace:i,state:s,method:o=ry,action:l,onSubmit:c,relative:h,preventScrollReset:m,viewTransition:p,unstable_defaultShouldRevalidate:x,...b},j)=>{let{unstable_useTransitions:N}=v.useContext(Sa),_=DV(),S=BV(l,{relative:h}),A=o.toLowerCase()==="get"?"get":"post",P=typeof l=="string"&&ER.test(l),I=O=>{if(c&&c(O),O.defaultPrevented)return;O.preventDefault();let M=O.nativeEvent.submitter,z=M?.getAttribute("formmethod")||o,$=()=>_(M||O.currentTarget,{fetcherKey:t,method:z,navigate:n,replace:i,state:s,relative:h,preventScrollReset:m,viewTransition:p,unstable_defaultShouldRevalidate:x});N&&n!==!1?v.startTransition(()=>$()):$()};return v.createElement("form",{ref:j,method:A,action:S,onSubmit:a?c:I,...b,"data-discover":!P&&e==="render"?"true":void 0})});OV.displayName="Form";function RV(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function OR(e){let t=v.useContext(th);return on(t,RV(e)),t}function IV(e,{target:t,replace:n,state:a,preventScrollReset:i,relative:s,viewTransition:o,unstable_defaultShouldRevalidate:l,unstable_useTransitions:c}={}){let h=rh(),m=Yn(),p=np(e,{relative:s});return v.useCallback(x=>{if(uV(x,t)){x.preventDefault();let b=n!==void 0?n:km(m)===km(p),j=()=>h(e,{replace:b,state:a,preventScrollReset:i,relative:s,viewTransition:o,unstable_defaultShouldRevalidate:l});c?v.startTransition(()=>j()):j()}},[m,h,p,n,a,t,e,i,s,o,l,c])}var MV=0,LV=()=>`__${String(++MV)}__`;function DV(){let{router:e}=OR("useSubmit"),{basename:t}=v.useContext(Sa),n=tV(),a=e.fetch,i=e.navigate;return v.useCallback(async(s,o={})=>{let{action:l,method:c,encType:h,formData:m,body:p}=mV(s,t);if(o.navigate===!1){let x=o.fetcherKey||LV();await a(x,n,o.action||l,{unstable_defaultShouldRevalidate:o.unstable_defaultShouldRevalidate,preventScrollReset:o.preventScrollReset,formData:m,body:p,formMethod:o.method||c,formEncType:o.encType||h,flushSync:o.flushSync})}else await i(o.action||l,{unstable_defaultShouldRevalidate:o.unstable_defaultShouldRevalidate,preventScrollReset:o.preventScrollReset,formData:m,body:p,formMethod:o.method||c,formEncType:o.encType||h,replace:o.replace,state:o.state,fromRouteId:n,flushSync:o.flushSync,viewTransition:o.viewTransition})},[a,i,t,n])}function BV(e,{relative:t}={}){let{basename:n}=v.useContext(Sa),a=v.useContext(Si);on(a,"useFormAction must be used inside a RouteContext");let[i]=a.matches.slice(-1),s={...np(e||".",{relative:t})},o=Yn();if(e==null){s.search=o.search;let l=new URLSearchParams(s.search),c=l.getAll("index");if(c.some(m=>m==="")){l.delete("index"),c.filter(p=>p).forEach(p=>l.append("index",p));let m=l.toString();s.search=m?`?${m}`:""}}return(!e||e===".")&&i.route.index&&(s.search=s.search?s.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(s.pathname=s.pathname==="/"?n:Ys([n,s.pathname])),km(s)}function FV(e,{relative:t}={}){let n=v.useContext(wR);on(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:a}=OR("useViewTransitionState"),i=np(e,{relative:t});if(!n.isTransitioning)return!1;let s=to(n.currentLocation.pathname,a)||n.currentLocation.pathname,o=to(n.nextLocation.pathname,a)||n.nextLocation.pathname;return Ny(i.pathname,o)!=null||Ny(i.pathname,s)!=null}var Ci=fR();const zV=Qa(Ci);function RR(e){var t,n,a="";if(typeof e=="string"||typeof e=="number")a+=e;else if(typeof e=="object")if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=RR(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}function Ut(){for(var e,t,n=0,a="",i=arguments.length;n<i;n++)(e=arguments[n])&&(t=RR(e))&&(a&&(a+=" "),a+=t);return a}const _k="-",$V=e=>{const t=WV(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:a}=e;return{getClassGroupId:o=>{const l=o.split(_k);return l[0]===""&&l.length!==1&&l.shift(),IR(l,t)||HV(o)},getConflictingClassGroupIds:(o,l)=>{const c=n[o]||[];return l&&a[o]?[...c,...a[o]]:c}}},IR=(e,t)=>{if(e.length===0)return t.classGroupId;const n=e[0],a=t.nextPart.get(n),i=a?IR(e.slice(1),a):void 0;if(i)return i;if(t.validators.length===0)return;const s=e.join(_k);return t.validators.find(({validator:o})=>o(s))?.classGroupId},HT=/^\[(.+)\]$/,HV=e=>{if(HT.test(e)){const t=HT.exec(e)[1],n=t?.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},WV=e=>{const{theme:t,prefix:n}=e,a={nextPart:new Map,validators:[]};return UV(Object.entries(e.classGroups),n).forEach(([s,o])=>{bj(o,a,s,t)}),a},bj=(e,t,n,a)=>{e.forEach(i=>{if(typeof i=="string"){const s=i===""?t:WT(t,i);s.classGroupId=n;return}if(typeof i=="function"){if(VV(i)){bj(i(a),t,n,a);return}t.validators.push({validator:i,classGroupId:n});return}Object.entries(i).forEach(([s,o])=>{bj(o,WT(t,s),n,a)})})},WT=(e,t)=>{let n=e;return t.split(_k).forEach(a=>{n.nextPart.has(a)||n.nextPart.set(a,{nextPart:new Map,validators:[]}),n=n.nextPart.get(a)}),n},VV=e=>e.isThemeGetter,UV=(e,t)=>t?e.map(([n,a])=>{const i=a.map(s=>typeof s=="string"?t+s:typeof s=="object"?Object.fromEntries(Object.entries(s).map(([o,l])=>[t+o,l])):s);return[n,i]}):e,qV=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,a=new Map;const i=(s,o)=>{n.set(s,o),t++,t>e&&(t=0,a=n,n=new Map)};return{get(s){let o=n.get(s);if(o!==void 0)return o;if((o=a.get(s))!==void 0)return i(s,o),o},set(s,o){n.has(s)?n.set(s,o):i(s,o)}}},MR="!",GV=e=>{const{separator:t,experimentalParseClassName:n}=e,a=t.length===1,i=t[0],s=t.length,o=l=>{const c=[];let h=0,m=0,p;for(let _=0;_<l.length;_++){let S=l[_];if(h===0){if(S===i&&(a||l.slice(_,_+s)===t)){c.push(l.slice(m,_)),m=_+s;continue}if(S==="/"){p=_;continue}}S==="["?h++:S==="]"&&h--}const x=c.length===0?l:l.substring(m),b=x.startsWith(MR),j=b?x.substring(1):x,N=p&&p>m?p-m:void 0;return{modifiers:c,hasImportantModifier:b,baseClassName:j,maybePostfixModifierPosition:N}};return n?l=>n({className:l,parseClassName:o}):o},KV=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(a=>{a[0]==="["?(t.push(...n.sort(),a),n=[]):n.push(a)}),t.push(...n.sort()),t},ZV=e=>({cache:qV(e.cacheSize),parseClassName:GV(e),...$V(e)}),YV=/\s+/,JV=(e,t)=>{const{parseClassName:n,getClassGroupId:a,getConflictingClassGroupIds:i}=t,s=[],o=e.trim().split(YV);let l="";for(let c=o.length-1;c>=0;c-=1){const h=o[c],{modifiers:m,hasImportantModifier:p,baseClassName:x,maybePostfixModifierPosition:b}=n(h);let j=!!b,N=a(j?x.substring(0,b):x);if(!N){if(!j){l=h+(l.length>0?" "+l:l);continue}if(N=a(x),!N){l=h+(l.length>0?" "+l:l);continue}j=!1}const _=KV(m).join(":"),S=p?_+MR:_,A=S+N;if(s.includes(A))continue;s.push(A);const P=i(N,j);for(let I=0;I<P.length;++I){const O=P[I];s.push(S+O)}l=h+(l.length>0?" "+l:l)}return l};function XV(){let e=0,t,n,a="";for(;e<arguments.length;)(t=arguments[e++])&&(n=LR(t))&&(a&&(a+=" "),a+=n);return a}const LR=e=>{if(typeof e=="string")return e;let t,n="";for(let a=0;a<e.length;a++)e[a]&&(t=LR(e[a]))&&(n&&(n+=" "),n+=t);return n};function QV(e,...t){let n,a,i,s=o;function o(c){const h=t.reduce((m,p)=>p(m),e());return n=ZV(h),a=n.cache.get,i=n.cache.set,s=l,l(c)}function l(c){const h=a(c);if(h)return h;const m=JV(c,n);return i(c,m),m}return function(){return s(XV.apply(null,arguments))}}const Jt=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},DR=/^\[(?:([a-z-]+):)?(.+)\]$/i,eU=/^\d+\/\d+$/,tU=new Set(["px","full","screen"]),nU=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,rU=/\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$/,aU=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,iU=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,sU=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Ds=e=>_u(e)||tU.has(e)||eU.test(e),nl=e=>ah(e,"length",mU),_u=e=>!!e&&!Number.isNaN(Number(e)),_w=e=>ah(e,"number",_u),Of=e=>!!e&&Number.isInteger(Number(e)),oU=e=>e.endsWith("%")&&_u(e.slice(0,-1)),vt=e=>DR.test(e),rl=e=>nU.test(e),lU=new Set(["length","size","percentage"]),cU=e=>ah(e,lU,BR),dU=e=>ah(e,"position",BR),uU=new Set(["image","url"]),hU=e=>ah(e,uU,gU),fU=e=>ah(e,"",pU),Rf=()=>!0,ah=(e,t,n)=>{const a=DR.exec(e);return a?a[1]?typeof t=="string"?a[1]===t:t.has(a[1]):n(a[2]):!1},mU=e=>rU.test(e)&&!aU.test(e),BR=()=>!1,pU=e=>iU.test(e),gU=e=>sU.test(e),xU=()=>{const e=Jt("colors"),t=Jt("spacing"),n=Jt("blur"),a=Jt("brightness"),i=Jt("borderColor"),s=Jt("borderRadius"),o=Jt("borderSpacing"),l=Jt("borderWidth"),c=Jt("contrast"),h=Jt("grayscale"),m=Jt("hueRotate"),p=Jt("invert"),x=Jt("gap"),b=Jt("gradientColorStops"),j=Jt("gradientColorStopPositions"),N=Jt("inset"),_=Jt("margin"),S=Jt("opacity"),A=Jt("padding"),P=Jt("saturate"),I=Jt("scale"),O=Jt("sepia"),M=Jt("skew"),z=Jt("space"),$=Jt("translate"),K=()=>["auto","contain","none"],X=()=>["auto","hidden","clip","visible","scroll"],te=()=>["auto",vt,t],q=()=>[vt,t],he=()=>["",Ds,nl],ne=()=>["auto",_u,vt],G=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],H=()=>["solid","dashed","dotted","double","none"],Q=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],W=()=>["start","end","center","between","around","evenly","stretch"],ie=()=>["","0",vt],Y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],V=()=>[_u,vt];return{cacheSize:500,separator:":",theme:{colors:[Rf],spacing:[Ds,nl],blur:["none","",rl,vt],brightness:V(),borderColor:[e],borderRadius:["none","","full",rl,vt],borderSpacing:q(),borderWidth:he(),contrast:V(),grayscale:ie(),hueRotate:V(),invert:ie(),gap:q(),gradientColorStops:[e],gradientColorStopPositions:[oU,nl],inset:te(),margin:te(),opacity:V(),padding:q(),saturate:V(),scale:V(),sepia:ie(),skew:V(),space:q(),translate:q()},classGroups:{aspect:[{aspect:["auto","square","video",vt]}],container:["container"],columns:[{columns:[rl]}],"break-after":[{"break-after":Y()}],"break-before":[{"break-before":Y()}],"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:[...G(),vt]}],overflow:[{overflow:X()}],"overflow-x":[{"overflow-x":X()}],"overflow-y":[{"overflow-y":X()}],overscroll:[{overscroll:K()}],"overscroll-x":[{"overscroll-x":K()}],"overscroll-y":[{"overscroll-y":K()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[N]}],"inset-x":[{"inset-x":[N]}],"inset-y":[{"inset-y":[N]}],start:[{start:[N]}],end:[{end:[N]}],top:[{top:[N]}],right:[{right:[N]}],bottom:[{bottom:[N]}],left:[{left:[N]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Of,vt]}],basis:[{basis:te()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",vt]}],grow:[{grow:ie()}],shrink:[{shrink:ie()}],order:[{order:["first","last","none",Of,vt]}],"grid-cols":[{"grid-cols":[Rf]}],"col-start-end":[{col:["auto",{span:["full",Of,vt]},vt]}],"col-start":[{"col-start":ne()}],"col-end":[{"col-end":ne()}],"grid-rows":[{"grid-rows":[Rf]}],"row-start-end":[{row:["auto",{span:[Of,vt]},vt]}],"row-start":[{"row-start":ne()}],"row-end":[{"row-end":ne()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",vt]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",vt]}],gap:[{gap:[x]}],"gap-x":[{"gap-x":[x]}],"gap-y":[{"gap-y":[x]}],"justify-content":[{justify:["normal",...W()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...W(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...W(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[A]}],px:[{px:[A]}],py:[{py:[A]}],ps:[{ps:[A]}],pe:[{pe:[A]}],pt:[{pt:[A]}],pr:[{pr:[A]}],pb:[{pb:[A]}],pl:[{pl:[A]}],m:[{m:[_]}],mx:[{mx:[_]}],my:[{my:[_]}],ms:[{ms:[_]}],me:[{me:[_]}],mt:[{mt:[_]}],mr:[{mr:[_]}],mb:[{mb:[_]}],ml:[{ml:[_]}],"space-x":[{"space-x":[z]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[z]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",vt,t]}],"min-w":[{"min-w":[vt,t,"min","max","fit"]}],"max-w":[{"max-w":[vt,t,"none","full","min","max","fit","prose",{screen:[rl]},rl]}],h:[{h:[vt,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[vt,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[vt,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[vt,t,"auto","min","max","fit"]}],"font-size":[{text:["base",rl,nl]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",_w]}],"font-family":[{font:[Rf]}],"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",vt]}],"line-clamp":[{"line-clamp":["none",_u,_w]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Ds,vt]}],"list-image":[{"list-image":["none",vt]}],"list-style-type":[{list:["none","disc","decimal",vt]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[S]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[S]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...H(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Ds,nl]}],"underline-offset":[{"underline-offset":["auto",Ds,vt]}],"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:q()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",vt]}],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",vt]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[S]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...G(),dU]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",cU]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},hU]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[j]}],"gradient-via-pos":[{via:[j]}],"gradient-to-pos":[{to:[j]}],"gradient-from":[{from:[b]}],"gradient-via":[{via:[b]}],"gradient-to":[{to:[b]}],rounded:[{rounded:[s]}],"rounded-s":[{"rounded-s":[s]}],"rounded-e":[{"rounded-e":[s]}],"rounded-t":[{"rounded-t":[s]}],"rounded-r":[{"rounded-r":[s]}],"rounded-b":[{"rounded-b":[s]}],"rounded-l":[{"rounded-l":[s]}],"rounded-ss":[{"rounded-ss":[s]}],"rounded-se":[{"rounded-se":[s]}],"rounded-ee":[{"rounded-ee":[s]}],"rounded-es":[{"rounded-es":[s]}],"rounded-tl":[{"rounded-tl":[s]}],"rounded-tr":[{"rounded-tr":[s]}],"rounded-br":[{"rounded-br":[s]}],"rounded-bl":[{"rounded-bl":[s]}],"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":[S]}],"border-style":[{border:[...H(),"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":[S]}],"divide-style":[{divide:H()}],"border-color":[{border:[i]}],"border-color-x":[{"border-x":[i]}],"border-color-y":[{"border-y":[i]}],"border-color-s":[{"border-s":[i]}],"border-color-e":[{"border-e":[i]}],"border-color-t":[{"border-t":[i]}],"border-color-r":[{"border-r":[i]}],"border-color-b":[{"border-b":[i]}],"border-color-l":[{"border-l":[i]}],"divide-color":[{divide:[i]}],"outline-style":[{outline:["",...H()]}],"outline-offset":[{"outline-offset":[Ds,vt]}],"outline-w":[{outline:[Ds,nl]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:he()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[S]}],"ring-offset-w":[{"ring-offset":[Ds,nl]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",rl,fU]}],"shadow-color":[{shadow:[Rf]}],opacity:[{opacity:[S]}],"mix-blend":[{"mix-blend":[...Q(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":Q()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[a]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":["","none",rl,vt]}],grayscale:[{grayscale:[h]}],"hue-rotate":[{"hue-rotate":[m]}],invert:[{invert:[p]}],saturate:[{saturate:[P]}],sepia:[{sepia:[O]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[a]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[h]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[m]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[S]}],"backdrop-saturate":[{"backdrop-saturate":[P]}],"backdrop-sepia":[{"backdrop-sepia":[O]}],"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",vt]}],duration:[{duration:V()}],ease:[{ease:["linear","in","out","in-out",vt]}],delay:[{delay:V()}],animate:[{animate:["none","spin","ping","pulse","bounce",vt]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[I]}],"scale-x":[{"scale-x":[I]}],"scale-y":[{"scale-y":[I]}],rotate:[{rotate:[Of,vt]}],"translate-x":[{"translate-x":[$]}],"translate-y":[{"translate-y":[$]}],"skew-x":[{"skew-x":[M]}],"skew-y":[{"skew-y":[M]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",vt]}],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",vt]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":q()}],"scroll-mx":[{"scroll-mx":q()}],"scroll-my":[{"scroll-my":q()}],"scroll-ms":[{"scroll-ms":q()}],"scroll-me":[{"scroll-me":q()}],"scroll-mt":[{"scroll-mt":q()}],"scroll-mr":[{"scroll-mr":q()}],"scroll-mb":[{"scroll-mb":q()}],"scroll-ml":[{"scroll-ml":q()}],"scroll-p":[{"scroll-p":q()}],"scroll-px":[{"scroll-px":q()}],"scroll-py":[{"scroll-py":q()}],"scroll-ps":[{"scroll-ps":q()}],"scroll-pe":[{"scroll-pe":q()}],"scroll-pt":[{"scroll-pt":q()}],"scroll-pr":[{"scroll-pr":q()}],"scroll-pb":[{"scroll-pb":q()}],"scroll-pl":[{"scroll-pl":q()}],"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"]}],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",vt]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[Ds,nl,_w]}],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"]}}},yU=QV(xU);function Se(...e){return yU(Ut(e))}function Wt(e,t,{checkForDefaultPrevented:n=!0}={}){return function(i){if(e?.(i),n===!1||!i.defaultPrevented)return t?.(i)}}function VT(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function FR(...e){return t=>{let n=!1;const a=e.map(i=>{const s=VT(i,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let i=0;i<a.length;i++){const s=a[i];typeof s=="function"?s():VT(e[i],null)}}}}function na(...e){return v.useCallback(FR(...e),e)}function vU(e,t){const n=v.createContext(t),a=s=>{const{children:o,...l}=s,c=v.useMemo(()=>l,Object.values(l));return r.jsx(n.Provider,{value:c,children:o})};a.displayName=e+"Provider";function i(s){const o=v.useContext(n);if(o)return o;if(t!==void 0)return t;throw new Error(`\`${s}\` must be used within \`${e}\``)}return[a,i]}function ih(e,t=[]){let n=[];function a(s,o){const l=v.createContext(o),c=n.length;n=[...n,o];const h=p=>{const{scope:x,children:b,...j}=p,N=x?.[e]?.[c]||l,_=v.useMemo(()=>j,Object.values(j));return r.jsx(N.Provider,{value:_,children:b})};h.displayName=s+"Provider";function m(p,x){const b=x?.[e]?.[c]||l,j=v.useContext(b);if(j)return j;if(o!==void 0)return o;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[h,m]}const i=()=>{const s=n.map(o=>v.createContext(o));return function(l){const c=l?.[e]||s;return v.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])}};return i.scopeName=e,[a,bU(i,...t)]}function bU(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const a=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return function(s){const o=a.reduce((l,{useScope:c,scopeName:h})=>{const p=c(s)[`__scope${h}`];return{...l,...p}},{});return v.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])}};return n.scopeName=t.scopeName,n}var Lu=v.forwardRef((e,t)=>{const{children:n,...a}=e,i=v.Children.toArray(n),s=i.find(wU);if(s){const o=s.props.children,l=i.map(c=>c===s?v.Children.count(o)>1?v.Children.only(null):v.isValidElement(o)?o.props.children:null:c);return r.jsx(wj,{...a,ref:t,children:v.isValidElement(o)?v.cloneElement(o,void 0,l):null})}return r.jsx(wj,{...a,ref:t,children:n})});Lu.displayName="Slot";var wj=v.forwardRef((e,t)=>{const{children:n,...a}=e;if(v.isValidElement(n)){const i=NU(n);return v.cloneElement(n,{...jU(a,n.props),ref:t?FR(t,i):i})}return v.Children.count(n)>1?v.Children.only(null):null});wj.displayName="SlotClone";var zR=({children:e})=>r.jsx(r.Fragment,{children:e});function wU(e){return v.isValidElement(e)&&e.type===zR}function jU(e,t){const n={...t};for(const a in t){const i=e[a],s=t[a];/^on[A-Z]/.test(a)?i&&s?n[a]=(...l)=>{s(...l),i(...l)}:i&&(n[a]=i):a==="style"?n[a]={...i,...s}:a==="className"&&(n[a]=[i,s].filter(Boolean).join(" "))}return{...e,...n}}function NU(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function $R(e){const t=e+"CollectionProvider",[n,a]=ih(t),[i,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=b=>{const{scope:j,children:N}=b,_=an.useRef(null),S=an.useRef(new Map).current;return r.jsx(i,{scope:j,itemMap:S,collectionRef:_,children:N})};o.displayName=t;const l=e+"CollectionSlot",c=an.forwardRef((b,j)=>{const{scope:N,children:_}=b,S=s(l,N),A=na(j,S.collectionRef);return r.jsx(Lu,{ref:A,children:_})});c.displayName=l;const h=e+"CollectionItemSlot",m="data-radix-collection-item",p=an.forwardRef((b,j)=>{const{scope:N,children:_,...S}=b,A=an.useRef(null),P=na(j,A),I=s(h,N);return an.useEffect(()=>(I.itemMap.set(A,{ref:A,...S}),()=>{I.itemMap.delete(A)})),r.jsx(Lu,{[m]:"",ref:P,children:_})});p.displayName=h;function x(b){const j=s(e+"CollectionConsumer",b);return an.useCallback(()=>{const _=j.collectionRef.current;if(!_)return[];const S=Array.from(_.querySelectorAll(`[${m}]`));return Array.from(j.itemMap.values()).sort((I,O)=>S.indexOf(I.ref.current)-S.indexOf(O.ref.current))},[j.collectionRef,j.itemMap])}return[{Provider:o,Slot:c,ItemSlot:p},x,a]}var kU=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],gn=kU.reduce((e,t)=>{const n=v.forwardRef((a,i)=>{const{asChild:s,...o}=a,l=s?Lu:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),r.jsx(l,{...o,ref:i})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function HR(e,t){e&&Ci.flushSync(()=>e.dispatchEvent(t))}function Ga(e){const t=v.useRef(e);return v.useEffect(()=>{t.current=e}),v.useMemo(()=>(...n)=>t.current?.(...n),[])}function _U(e,t=globalThis?.document){const n=Ga(e);v.useEffect(()=>{const a=i=>{i.key==="Escape"&&n(i)};return t.addEventListener("keydown",a,{capture:!0}),()=>t.removeEventListener("keydown",a,{capture:!0})},[n,t])}var SU="DismissableLayer",jj="dismissableLayer.update",CU="dismissableLayer.pointerDownOutside",TU="dismissableLayer.focusOutside",UT,WR=v.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Sk=v.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:a,onPointerDownOutside:i,onFocusOutside:s,onInteractOutside:o,onDismiss:l,...c}=e,h=v.useContext(WR),[m,p]=v.useState(null),x=m?.ownerDocument??globalThis?.document,[,b]=v.useState({}),j=na(t,z=>p(z)),N=Array.from(h.layers),[_]=[...h.layersWithOutsidePointerEventsDisabled].slice(-1),S=N.indexOf(_),A=m?N.indexOf(m):-1,P=h.layersWithOutsidePointerEventsDisabled.size>0,I=A>=S,O=PU(z=>{const $=z.target,K=[...h.branches].some(X=>X.contains($));!I||K||(i?.(z),o?.(z),z.defaultPrevented||l?.())},x),M=EU(z=>{const $=z.target;[...h.branches].some(X=>X.contains($))||(s?.(z),o?.(z),z.defaultPrevented||l?.())},x);return _U(z=>{A===h.layers.size-1&&(a?.(z),!z.defaultPrevented&&l&&(z.preventDefault(),l()))},x),v.useEffect(()=>{if(m)return n&&(h.layersWithOutsidePointerEventsDisabled.size===0&&(UT=x.body.style.pointerEvents,x.body.style.pointerEvents="none"),h.layersWithOutsidePointerEventsDisabled.add(m)),h.layers.add(m),qT(),()=>{n&&h.layersWithOutsidePointerEventsDisabled.size===1&&(x.body.style.pointerEvents=UT)}},[m,x,n,h]),v.useEffect(()=>()=>{m&&(h.layers.delete(m),h.layersWithOutsidePointerEventsDisabled.delete(m),qT())},[m,h]),v.useEffect(()=>{const z=()=>b({});return document.addEventListener(jj,z),()=>document.removeEventListener(jj,z)},[]),r.jsx(gn.div,{...c,ref:j,style:{pointerEvents:P?I?"auto":"none":void 0,...e.style},onFocusCapture:Wt(e.onFocusCapture,M.onFocusCapture),onBlurCapture:Wt(e.onBlurCapture,M.onBlurCapture),onPointerDownCapture:Wt(e.onPointerDownCapture,O.onPointerDownCapture)})});Sk.displayName=SU;var AU="DismissableLayerBranch",VR=v.forwardRef((e,t)=>{const n=v.useContext(WR),a=v.useRef(null),i=na(t,a);return v.useEffect(()=>{const s=a.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),r.jsx(gn.div,{...e,ref:i})});VR.displayName=AU;function PU(e,t=globalThis?.document){const n=Ga(e),a=v.useRef(!1),i=v.useRef(()=>{});return v.useEffect(()=>{const s=l=>{if(l.target&&!a.current){let c=function(){UR(CU,n,h,{discrete:!0})};const h={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",i.current),i.current=c,t.addEventListener("click",i.current,{once:!0})):c()}else t.removeEventListener("click",i.current);a.current=!1},o=window.setTimeout(()=>{t.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(o),t.removeEventListener("pointerdown",s),t.removeEventListener("click",i.current)}},[t,n]),{onPointerDownCapture:()=>a.current=!0}}function EU(e,t=globalThis?.document){const n=Ga(e),a=v.useRef(!1);return v.useEffect(()=>{const i=s=>{s.target&&!a.current&&UR(TU,n,{originalEvent:s},{discrete:!1})};return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:()=>a.current=!0,onBlurCapture:()=>a.current=!1}}function qT(){const e=new CustomEvent(jj);document.dispatchEvent(e)}function UR(e,t,n,{discrete:a}){const i=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),a?HR(i,s):i.dispatchEvent(s)}var OU=Sk,RU=VR,_m=globalThis?.document?v.useLayoutEffect:()=>{},IU="Portal",Ck=v.forwardRef((e,t)=>{const{container:n,...a}=e,[i,s]=v.useState(!1);_m(()=>s(!0),[]);const o=n||i&&globalThis?.document?.body;return o?zV.createPortal(r.jsx(gn.div,{...a,ref:t}),o):null});Ck.displayName=IU;function MU(e,t){return v.useReducer((n,a)=>t[n][a]??n,e)}var sh=e=>{const{present:t,children:n}=e,a=LU(t),i=typeof n=="function"?n({present:a.isPresent}):v.Children.only(n),s=na(a.ref,DU(i));return typeof n=="function"||a.isPresent?v.cloneElement(i,{ref:s}):null};sh.displayName="Presence";function LU(e){const[t,n]=v.useState(),a=v.useRef({}),i=v.useRef(e),s=v.useRef("none"),o=e?"mounted":"unmounted",[l,c]=MU(o,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return v.useEffect(()=>{const h=lx(a.current);s.current=l==="mounted"?h:"none"},[l]),_m(()=>{const h=a.current,m=i.current;if(m!==e){const x=s.current,b=lx(h);e?c("MOUNT"):b==="none"||h?.display==="none"?c("UNMOUNT"):c(m&&x!==b?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,c]),_m(()=>{if(t){let h;const m=t.ownerDocument.defaultView??window,p=b=>{const N=lx(a.current).includes(b.animationName);if(b.target===t&&N&&(c("ANIMATION_END"),!i.current)){const _=t.style.animationFillMode;t.style.animationFillMode="forwards",h=m.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=_)})}},x=b=>{b.target===t&&(s.current=lx(a.current))};return t.addEventListener("animationstart",x),t.addEventListener("animationcancel",p),t.addEventListener("animationend",p),()=>{m.clearTimeout(h),t.removeEventListener("animationstart",x),t.removeEventListener("animationcancel",p),t.removeEventListener("animationend",p)}}else c("ANIMATION_END")},[t,c]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:v.useCallback(h=>{h&&(a.current=getComputedStyle(h)),n(h)},[])}}function lx(e){return e?.animationName||"none"}function DU(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function Iv({prop:e,defaultProp:t,onChange:n=()=>{}}){const[a,i]=BU({defaultProp:t,onChange:n}),s=e!==void 0,o=s?e:a,l=Ga(n),c=v.useCallback(h=>{if(s){const p=typeof h=="function"?h(e):h;p!==e&&l(p)}else i(h)},[s,e,i,l]);return[o,c]}function BU({defaultProp:e,onChange:t}){const n=v.useState(e),[a]=n,i=v.useRef(a),s=Ga(t);return v.useEffect(()=>{i.current!==a&&(s(a),i.current=a)},[a,i,s]),n}var FU="VisuallyHidden",Tk=v.forwardRef((e,t)=>r.jsx(gn.span,{...e,ref:t,style:{position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal",...e.style}}));Tk.displayName=FU;var Ak="ToastProvider",[Pk,zU,$U]=$R("Toast"),[qR]=ih("Toast",[$U]),[HU,Mv]=qR(Ak),GR=e=>{const{__scopeToast:t,label:n="Notification",duration:a=5e3,swipeDirection:i="right",swipeThreshold:s=50,children:o}=e,[l,c]=v.useState(null),[h,m]=v.useState(0),p=v.useRef(!1),x=v.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${Ak}\`. Expected non-empty \`string\`.`),r.jsx(Pk.Provider,{scope:t,children:r.jsx(HU,{scope:t,label:n,duration:a,swipeDirection:i,swipeThreshold:s,toastCount:h,viewport:l,onViewportChange:c,onToastAdd:v.useCallback(()=>m(b=>b+1),[]),onToastRemove:v.useCallback(()=>m(b=>b-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:x,children:o})})};GR.displayName=Ak;var KR="ToastViewport",WU=["F8"],Nj="toast.viewportPause",kj="toast.viewportResume",ZR=v.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:a=WU,label:i="Notifications ({hotkey})",...s}=e,o=Mv(KR,n),l=zU(n),c=v.useRef(null),h=v.useRef(null),m=v.useRef(null),p=v.useRef(null),x=na(t,p,o.onViewportChange),b=a.join("+").replace(/Key/g,"").replace(/Digit/g,""),j=o.toastCount>0;v.useEffect(()=>{const _=S=>{a.length!==0&&a.every(P=>S[P]||S.code===P)&&p.current?.focus()};return document.addEventListener("keydown",_),()=>document.removeEventListener("keydown",_)},[a]),v.useEffect(()=>{const _=c.current,S=p.current;if(j&&_&&S){const A=()=>{if(!o.isClosePausedRef.current){const M=new CustomEvent(Nj);S.dispatchEvent(M),o.isClosePausedRef.current=!0}},P=()=>{if(o.isClosePausedRef.current){const M=new CustomEvent(kj);S.dispatchEvent(M),o.isClosePausedRef.current=!1}},I=M=>{!_.contains(M.relatedTarget)&&P()},O=()=>{_.contains(document.activeElement)||P()};return _.addEventListener("focusin",A),_.addEventListener("focusout",I),_.addEventListener("pointermove",A),_.addEventListener("pointerleave",O),window.addEventListener("blur",A),window.addEventListener("focus",P),()=>{_.removeEventListener("focusin",A),_.removeEventListener("focusout",I),_.removeEventListener("pointermove",A),_.removeEventListener("pointerleave",O),window.removeEventListener("blur",A),window.removeEventListener("focus",P)}}},[j,o.isClosePausedRef]);const N=v.useCallback(({tabbingDirection:_})=>{const A=l().map(P=>{const I=P.ref.current,O=[I,...nq(I)];return _==="forwards"?O:O.reverse()});return(_==="forwards"?A.reverse():A).flat()},[l]);return v.useEffect(()=>{const _=p.current;if(_){const S=A=>{const P=A.altKey||A.ctrlKey||A.metaKey;if(A.key==="Tab"&&!P){const O=document.activeElement,M=A.shiftKey;if(A.target===_&&M){h.current?.focus();return}const K=N({tabbingDirection:M?"backwards":"forwards"}),X=K.findIndex(te=>te===O);Sw(K.slice(X+1))?A.preventDefault():M?h.current?.focus():m.current?.focus()}};return _.addEventListener("keydown",S),()=>_.removeEventListener("keydown",S)}},[l,N]),r.jsxs(RU,{ref:c,role:"region","aria-label":i.replace("{hotkey}",b),tabIndex:-1,style:{pointerEvents:j?void 0:"none"},children:[j&&r.jsx(_j,{ref:h,onFocusFromOutsideViewport:()=>{const _=N({tabbingDirection:"forwards"});Sw(_)}}),r.jsx(Pk.Slot,{scope:n,children:r.jsx(gn.ol,{tabIndex:-1,...s,ref:x})}),j&&r.jsx(_j,{ref:m,onFocusFromOutsideViewport:()=>{const _=N({tabbingDirection:"backwards"});Sw(_)}})]})});ZR.displayName=KR;var YR="ToastFocusProxy",_j=v.forwardRef((e,t)=>{const{__scopeToast:n,onFocusFromOutsideViewport:a,...i}=e,s=Mv(YR,n);return r.jsx(Tk,{"aria-hidden":!0,tabIndex:0,...i,ref:t,style:{position:"fixed"},onFocus:o=>{const l=o.relatedTarget;!s.viewport?.contains(l)&&a()}})});_j.displayName=YR;var Lv="Toast",VU="toast.swipeStart",UU="toast.swipeMove",qU="toast.swipeCancel",GU="toast.swipeEnd",JR=v.forwardRef((e,t)=>{const{forceMount:n,open:a,defaultOpen:i,onOpenChange:s,...o}=e,[l=!0,c]=Iv({prop:a,defaultProp:i,onChange:s});return r.jsx(sh,{present:n||l,children:r.jsx(YU,{open:l,...o,ref:t,onClose:()=>c(!1),onPause:Ga(e.onPause),onResume:Ga(e.onResume),onSwipeStart:Wt(e.onSwipeStart,h=>{h.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:Wt(e.onSwipeMove,h=>{const{x:m,y:p}=h.detail.delta;h.currentTarget.setAttribute("data-swipe","move"),h.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${m}px`),h.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:Wt(e.onSwipeCancel,h=>{h.currentTarget.setAttribute("data-swipe","cancel"),h.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),h.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),h.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),h.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:Wt(e.onSwipeEnd,h=>{const{x:m,y:p}=h.detail.delta;h.currentTarget.setAttribute("data-swipe","end"),h.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),h.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),h.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${m}px`),h.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),c(!1)})})})});JR.displayName=Lv;var[KU,ZU]=qR(Lv,{onClose(){}}),YU=v.forwardRef((e,t)=>{const{__scopeToast:n,type:a="foreground",duration:i,open:s,onClose:o,onEscapeKeyDown:l,onPause:c,onResume:h,onSwipeStart:m,onSwipeMove:p,onSwipeCancel:x,onSwipeEnd:b,...j}=e,N=Mv(Lv,n),[_,S]=v.useState(null),A=na(t,ne=>S(ne)),P=v.useRef(null),I=v.useRef(null),O=i||N.duration,M=v.useRef(0),z=v.useRef(O),$=v.useRef(0),{onToastAdd:K,onToastRemove:X}=N,te=Ga(()=>{_?.contains(document.activeElement)&&N.viewport?.focus(),o()}),q=v.useCallback(ne=>{!ne||ne===1/0||(window.clearTimeout($.current),M.current=new Date().getTime(),$.current=window.setTimeout(te,ne))},[te]);v.useEffect(()=>{const ne=N.viewport;if(ne){const G=()=>{q(z.current),h?.()},H=()=>{const Q=new Date().getTime()-M.current;z.current=z.current-Q,window.clearTimeout($.current),c?.()};return ne.addEventListener(Nj,H),ne.addEventListener(kj,G),()=>{ne.removeEventListener(Nj,H),ne.removeEventListener(kj,G)}}},[N.viewport,O,c,h,q]),v.useEffect(()=>{s&&!N.isClosePausedRef.current&&q(O)},[s,O,N.isClosePausedRef,q]),v.useEffect(()=>(K(),()=>X()),[K,X]);const he=v.useMemo(()=>_?aI(_):null,[_]);return N.viewport?r.jsxs(r.Fragment,{children:[he&&r.jsx(JU,{__scopeToast:n,role:"status","aria-live":a==="foreground"?"assertive":"polite","aria-atomic":!0,children:he}),r.jsx(KU,{scope:n,onClose:te,children:Ci.createPortal(r.jsx(Pk.ItemSlot,{scope:n,children:r.jsx(OU,{asChild:!0,onEscapeKeyDown:Wt(l,()=>{N.isFocusedToastEscapeKeyDownRef.current||te(),N.isFocusedToastEscapeKeyDownRef.current=!1}),children:r.jsx(gn.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":N.swipeDirection,...j,ref:A,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:Wt(e.onKeyDown,ne=>{ne.key==="Escape"&&(l?.(ne.nativeEvent),ne.nativeEvent.defaultPrevented||(N.isFocusedToastEscapeKeyDownRef.current=!0,te()))}),onPointerDown:Wt(e.onPointerDown,ne=>{ne.button===0&&(P.current={x:ne.clientX,y:ne.clientY})}),onPointerMove:Wt(e.onPointerMove,ne=>{if(!P.current)return;const G=ne.clientX-P.current.x,H=ne.clientY-P.current.y,Q=!!I.current,W=["left","right"].includes(N.swipeDirection),ie=["left","up"].includes(N.swipeDirection)?Math.min:Math.max,Y=W?ie(0,G):0,V=W?0:ie(0,H),re=ne.pointerType==="touch"?10:2,be={x:Y,y:V},ge={originalEvent:ne,delta:be};Q?(I.current=be,cx(UU,p,ge,{discrete:!1})):GT(be,N.swipeDirection,re)?(I.current=be,cx(VU,m,ge,{discrete:!1}),ne.target.setPointerCapture(ne.pointerId)):(Math.abs(G)>re||Math.abs(H)>re)&&(P.current=null)}),onPointerUp:Wt(e.onPointerUp,ne=>{const G=I.current,H=ne.target;if(H.hasPointerCapture(ne.pointerId)&&H.releasePointerCapture(ne.pointerId),I.current=null,P.current=null,G){const Q=ne.currentTarget,W={originalEvent:ne,delta:G};GT(G,N.swipeDirection,N.swipeThreshold)?cx(GU,b,W,{discrete:!0}):cx(qU,x,W,{discrete:!0}),Q.addEventListener("click",ie=>ie.preventDefault(),{once:!0})}})})})}),N.viewport)})]}):null}),JU=e=>{const{__scopeToast:t,children:n,...a}=e,i=Mv(Lv,t),[s,o]=v.useState(!1),[l,c]=v.useState(!1);return eq(()=>o(!0)),v.useEffect(()=>{const h=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(h)},[]),l?null:r.jsx(Ck,{asChild:!0,children:r.jsx(Tk,{...a,children:s&&r.jsxs(r.Fragment,{children:[i.label," ",n]})})})},XU="ToastTitle",XR=v.forwardRef((e,t)=>{const{__scopeToast:n,...a}=e;return r.jsx(gn.div,{...a,ref:t})});XR.displayName=XU;var QU="ToastDescription",QR=v.forwardRef((e,t)=>{const{__scopeToast:n,...a}=e;return r.jsx(gn.div,{...a,ref:t})});QR.displayName=QU;var eI="ToastAction",tI=v.forwardRef((e,t)=>{const{altText:n,...a}=e;return n.trim()?r.jsx(rI,{altText:n,asChild:!0,children:r.jsx(Ek,{...a,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${eI}\`. Expected non-empty \`string\`.`),null)});tI.displayName=eI;var nI="ToastClose",Ek=v.forwardRef((e,t)=>{const{__scopeToast:n,...a}=e,i=ZU(nI,n);return r.jsx(rI,{asChild:!0,children:r.jsx(gn.button,{type:"button",...a,ref:t,onClick:Wt(e.onClick,i.onClose)})})});Ek.displayName=nI;var rI=v.forwardRef((e,t)=>{const{__scopeToast:n,altText:a,...i}=e;return r.jsx(gn.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":a||void 0,...i,ref:t})});function aI(e){const t=[];return Array.from(e.childNodes).forEach(a=>{if(a.nodeType===a.TEXT_NODE&&a.textContent&&t.push(a.textContent),tq(a)){const i=a.ariaHidden||a.hidden||a.style.display==="none",s=a.dataset.radixToastAnnounceExclude==="";if(!i)if(s){const o=a.dataset.radixToastAnnounceAlt;o&&t.push(o)}else t.push(...aI(a))}}),t}function cx(e,t,n,{discrete:a}){const i=n.originalEvent.currentTarget,s=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),a?HR(i,s):i.dispatchEvent(s)}var GT=(e,t,n=0)=>{const a=Math.abs(e.x),i=Math.abs(e.y),s=a>i;return t==="left"||t==="right"?s&&a>n:!s&&i>n};function eq(e=()=>{}){const t=Ga(e);_m(()=>{let n=0,a=0;return n=window.requestAnimationFrame(()=>a=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(a)}},[t])}function tq(e){return e.nodeType===e.ELEMENT_NODE}function nq(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const i=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||i?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Sw(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var rq=GR,iI=ZR,sI=JR,oI=XR,lI=QR,cI=tI,dI=Ek;const KT=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,ZT=Ut,rp=(e,t)=>n=>{var a;if(t?.variants==null)return ZT(e,n?.class,n?.className);const{variants:i,defaultVariants:s}=t,o=Object.keys(i).map(h=>{const m=n?.[h],p=s?.[h];if(m===null)return null;const x=KT(m)||KT(p);return i[h][x]}),l=n&&Object.entries(n).reduce((h,m)=>{let[p,x]=m;return x===void 0||(h[p]=x),h},{}),c=t==null||(a=t.compoundVariants)===null||a===void 0?void 0:a.reduce((h,m)=>{let{class:p,className:x,...b}=m;return Object.entries(b).every(j=>{let[N,_]=j;return Array.isArray(_)?_.includes({...s,...l}[N]):{...s,...l}[N]===_})?[...h,p,x]:h},[]);return ZT(e,o,c,n?.class,n?.className)};const aq=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),uI=(...e)=>e.filter((t,n,a)=>!!t&&t.trim()!==""&&a.indexOf(t)===n).join(" ").trim();var iq={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"};const sq=v.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:a,className:i="",children:s,iconNode:o,...l},c)=>v.createElement("svg",{ref:c,...iq,width:t,height:t,stroke:e,strokeWidth:a?Number(n)*24/Number(t):n,className:uI("lucide",i),...l},[...o.map(([h,m])=>v.createElement(h,m)),...Array.isArray(s)?s:[s]]));const ve=(e,t)=>{const n=v.forwardRef(({className:a,...i},s)=>v.createElement(sq,{ref:s,iconNode:t,className:uI(`lucide-${aq(e)}`,a),...i}));return n.displayName=`${e}`,n};const hI=ve("Activity",[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]);const oq=ve("AlignCenter",[["path",{d:"M17 12H7",key:"16if0g"}],["path",{d:"M19 18H5",key:"18s9l3"}],["path",{d:"M21 6H3",key:"1jwq7v"}]]);const lq=ve("AlignLeft",[["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M17 18H3",key:"1amg6g"}],["path",{d:"M21 6H3",key:"1jwq7v"}]]);const cq=ve("AlignRight",[["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M21 18H7",key:"1ygte8"}],["path",{d:"M21 6H3",key:"1jwq7v"}]]);const dq=ve("Anchor",[["path",{d:"M12 22V8",key:"qkxhtm"}],["path",{d:"M5 12H2a10 10 0 0 0 20 0h-3",key:"1hv3nh"}],["circle",{cx:"12",cy:"5",r:"3",key:"rqqgnr"}]]);const YT=ve("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]]);const Dv=ve("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);const uq=ve("BedDouble",[["path",{d:"M2 20v-8a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v8",key:"1k78r4"}],["path",{d:"M4 10V6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4",key:"fb3tl2"}],["path",{d:"M12 4v6",key:"1dcgq2"}],["path",{d:"M2 18h20",key:"ajqnye"}]]);const hq=ve("Bed",[["path",{d:"M2 4v16",key:"vw9hq8"}],["path",{d:"M2 8h18a2 2 0 0 1 2 2v10",key:"1dgv2r"}],["path",{d:"M2 17h20",key:"18nfp3"}],["path",{d:"M6 8v9",key:"1yriud"}]]);const fI=ve("Beer",[["path",{d:"M17 11h1a3 3 0 0 1 0 6h-1",key:"1yp76v"}],["path",{d:"M9 12v6",key:"1u1cab"}],["path",{d:"M13 12v6",key:"1sugkk"}],["path",{d:"M14 7.5c-1 0-1.44.5-3 .5s-2-.5-3-.5-1.72.5-2.5.5a2.5 2.5 0 0 1 0-5c.78 0 1.57.5 2.5.5S9.44 2 11 2s2 1.5 3 1.5 1.72-.5 2.5-.5a2.5 2.5 0 0 1 0 5c-.78 0-1.5-.5-2.5-.5Z",key:"1510fo"}],["path",{d:"M5 8v12a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2V8",key:"19jb7n"}]]);const fq=ve("Bird",[["path",{d:"M16 7h.01",key:"1kdx03"}],["path",{d:"M3.4 18H12a8 8 0 0 0 8-8V7a4 4 0 0 0-7.28-2.3L2 20",key:"oj1oa8"}],["path",{d:"m20 7 2 .5-2 .5",key:"12nv4d"}],["path",{d:"M10 18v3",key:"1yea0a"}],["path",{d:"M14 17.75V21",key:"1pymcb"}],["path",{d:"M7 18a6 6 0 0 0 3.84-10.61",key:"1npnn0"}]]);const mq=ve("Bold",[["path",{d:"M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8",key:"mg9rjx"}]]);const pq=ve("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);const gq=ve("Building",[["rect",{width:"16",height:"20",x:"4",y:"2",rx:"2",ry:"2",key:"76otgf"}],["path",{d:"M9 22v-4h6v4",key:"r93iot"}],["path",{d:"M8 6h.01",key:"1dz90k"}],["path",{d:"M16 6h.01",key:"1x0f13"}],["path",{d:"M12 6h.01",key:"1vi96p"}],["path",{d:"M12 10h.01",key:"1nrarc"}],["path",{d:"M12 14h.01",key:"1etili"}],["path",{d:"M16 10h.01",key:"1m94wz"}],["path",{d:"M16 14h.01",key:"1gbofw"}],["path",{d:"M8 10h.01",key:"19clt8"}],["path",{d:"M8 14h.01",key:"6423bh"}]]);const Ok=ve("Calendar",[["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M16 2v4",key:"4m81vk"}],["rect",{width:"18",height:"18",x:"3",y:"4",rx:"2",key:"1hopcy"}],["path",{d:"M3 10h18",key:"8toen8"}]]);const xq=ve("Camera",[["path",{d:"M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z",key:"1tc9qg"}],["circle",{cx:"12",cy:"13",r:"3",key:"1vg3eu"}]]);const yq=ve("Car",[["path",{d:"M19 17h2c.6 0 1-.4 1-1v-3c0-.9-.7-1.7-1.5-1.9C18.7 10.6 16 10 16 10s-1.3-1.4-2.2-2.3c-.5-.4-1.1-.7-1.8-.7H5c-.6 0-1.1.4-1.4.9l-1.4 2.9A3.7 3.7 0 0 0 2 12v4c0 .6.4 1 1 1h2",key:"5owen"}],["circle",{cx:"7",cy:"17",r:"2",key:"u2ysq9"}],["path",{d:"M9 17h6",key:"r8uit2"}],["circle",{cx:"17",cy:"17",r:"2",key:"axvx0g"}]]);const vq=ve("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"}]]);const Rk=ve("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);const ap=ve("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);const mI=ve("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);const Ik=ve("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);const pI=ve("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);const Qe=ve("CircleAlert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);const bq=ve("CircleArrowDown",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 8v8",key:"napkw2"}],["path",{d:"m8 12 4 4 4-4",key:"k98ssh"}]]);const wq=ve("CircleArrowUp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]);const um=ve("CircleCheckBig",[["path",{d:"M21.801 10A10 10 0 1 1 17 3.335",key:"yps3ct"}],["path",{d:"m9 11 3 3L22 4",key:"1pflzl"}]]);const jq=ve("CircleX",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]]);const gI=ve("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);const xI=ve("CloudRain",[["path",{d:"M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242",key:"1pljnt"}],["path",{d:"M16 14v6",key:"1j4efv"}],["path",{d:"M8 14v6",key:"17c4r9"}],["path",{d:"M12 16v6",key:"c8a4gj"}]]);const Nq=ve("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);const kq=ve("Code",[["polyline",{points:"16 18 22 12 16 6",key:"z7tu5w"}],["polyline",{points:"8 6 2 12 8 18",key:"1eg1df"}]]);const bt=ve("Coffee",[["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M14 2v2",key:"6buw04"}],["path",{d:"M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1",key:"pwadti"}],["path",{d:"M6 2v2",key:"colzsn"}]]);const Mk=ve("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"}]]);const _q=ve("DollarSign",[["line",{x1:"12",x2:"12",y1:"2",y2:"22",key:"7eqyqh"}],["path",{d:"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6",key:"1b0p4s"}]]);const Lk=ve("Droplets",[["path",{d:"M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z",key:"1ptgy4"}],["path",{d:"M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97",key:"1sl1rz"}]]);const Ka=ve("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"}]]);const Sq=ve("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"}]]);const Cq=ve("Facebook",[["path",{d:"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z",key:"1jg4f8"}]]);const Tq=ve("FileText",[["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:"M10 9H8",key:"b1mrlr"}],["path",{d:"M16 13H8",key:"t4e002"}],["path",{d:"M16 17H8",key:"z1uh3a"}]]);const yc=ve("Fish",[["path",{d:"M6.5 12c.94-3.46 4.94-6 8.5-6 3.56 0 6.06 2.54 7 6-.94 3.47-3.44 6-7 6s-7.56-2.53-8.5-6Z",key:"15baut"}],["path",{d:"M18 12v.5",key:"18hhni"}],["path",{d:"M16 17.93a9.77 9.77 0 0 1 0-11.86",key:"16dt7o"}],["path",{d:"M7 10.67C7 8 5.58 5.97 2.73 5.5c-1 1.5-1 5 .23 6.5-1.24 1.5-1.24 5-.23 6.5C5.58 18.03 7 16 7 13.33",key:"l9di03"}],["path",{d:"M10.46 7.26C10.2 5.88 9.17 4.24 8 3h5.8a2 2 0 0 1 1.98 1.67l.23 1.4",key:"1kjonw"}],["path",{d:"m16.01 17.93-.23 1.4A2 2 0 0 1 13.8 21H9.5a5.96 5.96 0 0 0 1.49-3.98",key:"1zlm23"}]]);const Aq=ve("Gauge",[["path",{d:"m12 14 4-4",key:"9kzdfg"}],["path",{d:"M3.34 19a10 10 0 1 1 17.32 0",key:"19p75a"}]]);const Pq=ve("Gift",[["rect",{x:"3",y:"8",width:"18",height:"4",rx:"1",key:"bkv52"}],["path",{d:"M12 8v13",key:"1c76mn"}],["path",{d:"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7",key:"6wjy6b"}],["path",{d:"M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",key:"1ihvrl"}]]);const Eq=ve("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"}]]);const Oq=ve("Heading2",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M21 18h-4c0-4 4-3 4-6 0-1.5-2-2.5-4-1",key:"9jr5yi"}]]);const Rq=ve("Heading3",[["path",{d:"M4 12h8",key:"17cfdx"}],["path",{d:"M4 18V6",key:"1rz3zl"}],["path",{d:"M12 18V6",key:"zqpxq5"}],["path",{d:"M17.5 10.5c1.7-1 3.5 0 3.5 1.5a2 2 0 0 1-2 2",key:"68ncm8"}],["path",{d:"M17 17.5c2 1.5 4 .3 4-1.5a2 2 0 0 0-2-2",key:"1ejuhz"}]]);const Iq=ve("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"}]]);const Du=ve("ImageOff",[["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}],["path",{d:"M10.41 10.41a2 2 0 1 1-2.83-2.83",key:"1bzlo9"}],["line",{x1:"13.5",x2:"6",y1:"13.5",y2:"21",key:"1q0aeu"}],["line",{x1:"18",x2:"21",y1:"12",y2:"15",key:"5mozeu"}],["path",{d:"M3.59 3.59A1.99 1.99 0 0 0 3 5v14a2 2 0 0 0 2 2h14c.55 0 1.052-.22 1.41-.59",key:"mmje98"}],["path",{d:"M21 15V5a2 2 0 0 0-2-2H9",key:"43el77"}]]);const Mq=ve("Image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);const yI=ve("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);const Lq=ve("Instagram",[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"5",ry:"5",key:"2e1cvw"}],["path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z",key:"9exkf1"}],["line",{x1:"17.5",x2:"17.51",y1:"6.5",y2:"6.5",key:"r4j83e"}]]);const Dq=ve("Italic",[["line",{x1:"19",x2:"10",y1:"4",y2:"4",key:"15jd3p"}],["line",{x1:"14",x2:"5",y1:"20",y2:"20",key:"bu0au3"}],["line",{x1:"15",x2:"9",y1:"4",y2:"20",key:"uljnxc"}]]);const Bq=ve("LayoutDashboard",[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]);const Fq=ve("Link",[["path",{d:"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71",key:"1cjeqo"}],["path",{d:"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71",key:"19qd67"}]]);const zq=ve("ListOrdered",[["path",{d:"M10 12h11",key:"6m4ad9"}],["path",{d:"M10 18h11",key:"11hvi2"}],["path",{d:"M10 6h11",key:"c7qv1k"}],["path",{d:"M4 10h2",key:"16xx2s"}],["path",{d:"M4 6h1v4",key:"cnovpq"}],["path",{d:"M6 18H4c0-1 2-2 2-3s-1-1.5-2-1",key:"m9a95d"}]]);const $q=ve("List",[["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 18h.01",key:"1tta3j"}],["path",{d:"M3 6h.01",key:"1rqtza"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 18h13",key:"1lx6n3"}],["path",{d:"M8 6h13",key:"ik3vkj"}]]);const Fr=ve("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);const JT=ve("Lock",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 10 0v4",key:"fwvmzm"}]]);const Sj=ve("LogOut",[["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}],["polyline",{points:"16 17 21 12 16 7",key:"1gabdz"}],["line",{x1:"21",x2:"9",y1:"12",y2:"12",key:"1uyos4"}]]);const Hq=ve("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"}]]);const We=ve("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"}]]);const Bu=ve("Map",[["path",{d:"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0z",key:"169xi5"}],["path",{d:"M15 5.764v15",key:"1pn4in"}],["path",{d:"M9 3.236v15",key:"1uimfh"}]]);const vI=ve("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);const bI=ve("MessageSquare",[["path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z",key:"1lielz"}]]);const wt=ve("Mountain",[["path",{d:"m8 3 4 8 5-5 5 15H2L8 3z",key:"otkl63"}]]);const Wq=ve("Music",[["path",{d:"M9 18V5l12-2v13",key:"1jmyc2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["circle",{cx:"18",cy:"16",r:"3",key:"1hluhg"}]]);const Vq=ve("Navigation",[["polygon",{points:"3 11 22 2 13 21 11 13 3 11",key:"1ltx0t"}]]);const Uq=ve("Pencil",[["path",{d:"M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z",key:"1a8usu"}],["path",{d:"m15 5 4 4",key:"1mk7zo"}]]);const qq=ve("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"}]]);const Gq=ve("Pilcrow",[["path",{d:"M13 4v16",key:"8vvj80"}],["path",{d:"M17 4v16",key:"7dpous"}],["path",{d:"M19 4H9.5a4.5 4.5 0 0 0 0 9H13",key:"sh4n9v"}]]);const Kq=ve("Quote",[["path",{d:"M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"rib7q0"}],["path",{d:"M5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2 1 1 0 0 1 1 1v1a2 2 0 0 1-2 2 1 1 0 0 0-1 1v2a1 1 0 0 0 1 1 6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z",key:"1ymkrd"}]]);const wI=ve("Radio",[["path",{d:"M4.9 19.1C1 15.2 1 8.8 4.9 4.9",key:"1vaf9d"}],["path",{d:"M7.8 16.2c-2.3-2.3-2.3-6.1 0-8.5",key:"u1ii0m"}],["circle",{cx:"12",cy:"12",r:"2",key:"1c9p78"}],["path",{d:"M16.2 7.8c2.3 2.3 2.3 6.1 0 8.5",key:"1j5fej"}],["path",{d:"M19.1 4.9C23 8.8 23 15.1 19.1 19",key:"10b0cb"}]]);const Zq=ve("RefreshCcw",[["path",{d:"M21 12a9 9 0 0 0-9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"14sxne"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}],["path",{d:"M3 12a9 9 0 0 0 9 9 9.75 9.75 0 0 0 6.74-2.74L21 16",key:"1hlbsb"}],["path",{d:"M16 16h5v5",key:"ccwih5"}]]);const Sm=ve("RefreshCw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);const Yq=ve("RemoveFormatting",[["path",{d:"M4 7V4h16v3",key:"9msm58"}],["path",{d:"M5 20h6",key:"1h6pxn"}],["path",{d:"M13 4 8 20",key:"kqq6aj"}],["path",{d:"m15 15 5 5",key:"me55sn"}],["path",{d:"m20 15-5 5",key:"11p7ol"}]]);const Jq=ve("Save",[["path",{d:"M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z",key:"1c8476"}],["path",{d:"M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7",key:"1ydtos"}],["path",{d:"M7 3v4a1 1 0 0 0 1 1h7",key:"t51u73"}]]);const Xq=ve("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);const XT=ve("Shell",[["path",{d:"M14 11a2 2 0 1 1-4 0 4 4 0 0 1 8 0 6 6 0 0 1-12 0 8 8 0 0 1 16 0 10 10 0 1 1-20 0 11.93 11.93 0 0 1 2.42-7.22 2 2 0 1 1 3.16 2.44",key:"1cn552"}]]);const Qq=ve("ShieldAlert",[["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"}],["path",{d:"M12 8v4",key:"1got3b"}],["path",{d:"M12 16h.01",key:"1drbdi"}]]);const eG=ve("ShieldCheck",[["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"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);const tG=ve("ShoppingBag",[["path",{d:"M6 2 3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4Z",key:"hou9p0"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M16 10a4 4 0 0 1-8 0",key:"1ltviw"}]]);const nG=ve("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"}]]);const Fu=ve("Star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);const rG=ve("Strikethrough",[["path",{d:"M16 4H9a3 3 0 0 0-2.83 4",key:"43sutm"}],["path",{d:"M14 12a4 4 0 0 1 0 8H6",key:"nlfj13"}],["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}]]);const aG=ve("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"}]]);const iG=ve("Trash2",[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]]);const Dk=ve("Trees",[["path",{d:"M10 10v.2A3 3 0 0 1 8.9 16H5a3 3 0 0 1-1-5.8V10a3 3 0 0 1 6 0Z",key:"1l6gj6"}],["path",{d:"M7 16v6",key:"1a82de"}],["path",{d:"M13 19v3",key:"13sx9i"}],["path",{d:"M12 19h8.3a1 1 0 0 0 .7-1.7L18 14h.3a1 1 0 0 0 .7-1.7L16 9h.2a1 1 0 0 0 .8-1.7L13 3l-1.4 1.5",key:"1sj9kv"}]]);const gt=ve("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"}]]);const sG=ve("TriangleAlert",[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);const oG=ve("Underline",[["path",{d:"M6 4v6a6 6 0 0 0 12 0V4",key:"9kb039"}],["line",{x1:"4",x2:"20",y1:"20",y2:"20",key:"nun2al"}]]);const QT=ve("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"}]]);const lG=ve("User",[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]]);const eA=ve("UtensilsCrossed",[["path",{d:"m16 2-2.3 2.3a3 3 0 0 0 0 4.2l1.8 1.8a3 3 0 0 0 4.2 0L22 8",key:"n7qcjb"}],["path",{d:"M15 15 3.3 3.3a4.2 4.2 0 0 0 0 6l7.3 7.3c.7.7 2 .7 2.8 0L15 15Zm0 0 7 7",key:"d0u48b"}],["path",{d:"m2.1 21.8 6.4-6.3",key:"yn04lh"}],["path",{d:"m19 5-7 7",key:"194lzd"}]]);const rt=ve("Utensils",[["path",{d:"M3 2v7c0 1.1.9 2 2 2h4a2 2 0 0 0 2-2V2",key:"cjf0a3"}],["path",{d:"M7 2v20",key:"1473qp"}],["path",{d:"M21 15V2a5 5 0 0 0-5 5v6c0 1.1.9 2 2 2h3Zm0 0v7",key:"j28e5"}]]);const ky=ve("Waves",[["path",{d:"M2 6c.6.5 1.2 1 2.5 1C7 7 7 5 9.5 5c2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"knzxuh"}],["path",{d:"M2 12c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"2jd2cc"}],["path",{d:"M2 18c.6.5 1.2 1 2.5 1 2.5 0 2.5-2 5-2 2.6 0 2.4 2 5 2 2.5 0 2.5-2 5-2 1.3 0 1.9.5 2.5 1",key:"rd2r6e"}]]);const cG=ve("WifiOff",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);const dG=ve("Wifi",[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]]);const uG=ve("Wind",[["path",{d:"M12.8 19.6A2 2 0 1 0 14 16H2",key:"148xed"}],["path",{d:"M17.5 8a2.5 2.5 0 1 1 2 4H2",key:"1u4tom"}],["path",{d:"M9.8 4.4A2 2 0 1 1 11 8H2",key:"75valh"}]]);const Nt=ve("Wine",[["path",{d:"M8 22h8",key:"rmew8v"}],["path",{d:"M7 10h10",key:"1101jm"}],["path",{d:"M12 15v7",key:"t2xh3l"}],["path",{d:"M12 15a5 5 0 0 0 5-5c0-2-.5-4-2-8H9c-1.5 4-2 6-2 8a5 5 0 0 0 5 5Z",key:"10ffi3"}]]);const hG=ve("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"}]]);const Uc=ve("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),fG=rq,jI=an.forwardRef(({className:e,...t},n)=>r.jsx(iI,{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}));jI.displayName=iI.displayName;const mG=rp("data-[swipe=move]:transition-none group relative pointer-events-auto 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=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full data-[state=closed]:slide-out-to-right-full",{variants:{variant:{default:"bg-background border",destructive:"group destructive border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),NI=an.forwardRef(({className:e,variant:t,...n},a)=>r.jsx(sI,{ref:a,className:Se(mG({variant:t}),e),...n}));NI.displayName=sI.displayName;const pG=an.forwardRef(({className:e,...t},n)=>r.jsx(cI,{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 hover:bg-secondary focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-destructive/30 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive",e),...t}));pG.displayName=cI.displayName;const kI=an.forwardRef(({className:e,...t},n)=>r.jsx(dI,{ref:n,className:Se("absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-2 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:r.jsx(Uc,{className:"h-4 w-4"})}));kI.displayName=dI.displayName;const _I=an.forwardRef(({className:e,...t},n)=>r.jsx(oI,{ref:n,className:Se("text-sm font-semibold",e),...t}));_I.displayName=oI.displayName;const SI=an.forwardRef(({className:e,...t},n)=>r.jsx(lI,{ref:n,className:Se("text-sm opacity-90",e),...t}));SI.displayName=lI.displayName;const gG=1;let Cw=0;function xG(){return Cw=(Cw+1)%Number.MAX_VALUE,Cw.toString()}const Ir={state:{toasts:[]},listeners:[],getState:()=>Ir.state,setState:e=>{typeof e=="function"?Ir.state=e(Ir.state):Ir.state={...Ir.state,...e},Ir.listeners.forEach(t=>t(Ir.state))},subscribe:e=>(Ir.listeners.push(e),()=>{Ir.listeners=Ir.listeners.filter(t=>t!==e)})},yG=({...e})=>{const t=xG(),n=i=>Ir.setState(s=>({...s,toasts:s.toasts.map(o=>o.id===t?{...o,...i}:o)})),a=()=>Ir.setState(i=>({...i,toasts:i.toasts.filter(s=>s.id!==t)}));return Ir.setState(i=>({...i,toasts:[{...e,id:t,dismiss:a},...i.toasts].slice(0,gG)})),{id:t,dismiss:a,update:n}};function ip(){const[e,t]=v.useState(Ir.getState());return v.useEffect(()=>Ir.subscribe(a=>{t(a)}),[]),v.useEffect(()=>{const n=[];return e.toasts.forEach(a=>{if(a.duration===1/0)return;const i=setTimeout(()=>{a.dismiss()},a.duration||5e3);n.push(i)}),()=>{n.forEach(a=>clearTimeout(a))}},[e.toasts]),{toast:yG,toasts:e.toasts}}function vG(){const{toasts:e}=ip();return r.jsxs(fG,{children:[e.map(({id:t,title:n,description:a,action:i,...s})=>r.jsxs(NI,{...s,children:[r.jsxs("div",{className:"grid gap-1",children:[n&&r.jsx(_I,{children:n}),a&&r.jsx(SI,{children:a})]}),i,r.jsx(kI,{})]},t)),r.jsx(jI,{})]})}var Ji=function(){return Ji=Object.assign||function(t){for(var n,a=1,i=arguments.length;a<i;a++){n=arguments[a];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=n[s])}return t},Ji.apply(this,arguments)};function CI(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,a=Object.getOwnPropertySymbols(e);i<a.length;i++)t.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(n[a[i]]=e[a[i]]);return n}function bG(e,t,n,a){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function l(m){try{h(a.next(m))}catch(p){o(p)}}function c(m){try{h(a.throw(m))}catch(p){o(p)}}function h(m){m.done?s(m.value):i(m.value).then(l,c)}h((a=a.apply(e,t||[])).next())})}function wG(e,t,n){if(n||arguments.length===2)for(var a=0,i=t.length,s;a<i;a++)(s||!(a in t))&&(s||(s=Array.prototype.slice.call(t,0,a)),s[a]=t[a]);return e.concat(s||Array.prototype.slice.call(t))}const jG=e=>e?(...t)=>e(...t):(...t)=>fetch(...t);class Bk extends Error{constructor(t,n="FunctionsError",a){super(t),this.name=n,this.context=a}toJSON(){return{name:this.name,message:this.message,context:this.context}}}class NG extends Bk{constructor(t){super("Failed to send a request to the Edge Function","FunctionsFetchError",t)}}class tA extends Bk{constructor(t){super("Relay Error invoking the Edge Function","FunctionsRelayError",t)}}class nA extends Bk{constructor(t){super("Edge Function returned a non-2xx status code","FunctionsHttpError",t)}}var Cj;(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"})(Cj||(Cj={}));class kG{constructor(t,{headers:n={},customFetch:a,region:i=Cj.Any}={}){this.url=t,this.headers=n,this.region=i,this.fetch=jG(a)}setAuth(t){this.headers.Authorization=`Bearer ${t}`}invoke(t){return bG(this,arguments,void 0,function*(n,a={}){var i,s;let o,l,c;try{const{headers:h,method:m,body:p,signal:x,timeout:b}=a;let j={},{region:N}=a;N||(N=this.region);const _=new URL(`${this.url}/${n}`);N&&N!=="any"&&(j["x-region"]=N,_.searchParams.set("forceFunctionRegion",N));let S;const A=!!h&&Object.keys(h).some($=>$.toLowerCase()==="content-type");p&&!A?typeof Blob<"u"&&p instanceof Blob||p instanceof ArrayBuffer?(j["Content-Type"]="application/octet-stream",S=p):typeof p=="string"?(j["Content-Type"]="text/plain",S=p):typeof FormData<"u"&&p instanceof FormData?S=p:(j["Content-Type"]="application/json",S=JSON.stringify(p)):p&&typeof p!="string"&&!(typeof Blob<"u"&&p instanceof Blob)&&!(p instanceof ArrayBuffer)&&!(typeof FormData<"u"&&p instanceof FormData)?S=JSON.stringify(p):S=p;let P=x;b&&(l=new AbortController,o=setTimeout(()=>l.abort(),b),x?(P=l.signal,c=()=>l.abort(),x.addEventListener("abort",c)):P=l.signal);const I=yield this.fetch(_.toString(),{method:m||"POST",headers:Object.assign(Object.assign(Object.assign({},j),this.headers),h),body:S,signal:P}).catch($=>{throw new NG($)}),O=I.headers.get("x-relay-error");if(O&&O==="true")throw new tA(I);if(!I.ok)throw new nA(I);let M=((i=I.headers.get("Content-Type"))!==null&&i!==void 0?i:"text/plain").split(";")[0].trim().toLowerCase(),z;return M==="application/json"?z=yield I.json():M==="application/octet-stream"||M==="application/pdf"?z=yield I.blob():M==="text/event-stream"?z=I:M==="multipart/form-data"?z=yield I.formData():z=yield I.text(),{data:z,error:null,response:I}}catch(h){return{data:null,error:h,response:h instanceof nA||h instanceof tA?h.context:void 0}}finally{o&&clearTimeout(o),c&&((s=a.signal)===null||s===void 0||s.removeEventListener("abort",c))}})}}var qn={},Ud={},qd={},Gd={},Kd={},Zd={},_G=function(){if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw new Error("unable to locate global object")},zu=_G();const SG=zu.fetch,CG=zu.fetch.bind(zu),TG=zu.Headers,AG=zu.Request,PG=zu.Response,EG=Object.freeze(Object.defineProperty({__proto__:null,Headers:TG,Request:AG,Response:PG,default:CG,fetch:SG},Symbol.toStringTag,{value:"Module"})),OG=ep(EG);var dx={},rA;function TI(){if(rA)return dx;rA=1,Object.defineProperty(dx,"__esModule",{value:!0});class e extends Error{constructor(n){super(n.message),this.name="PostgrestError",this.details=n.details,this.hint=n.hint,this.code=n.code}}return dx.default=e,dx}var aA;function AI(){if(aA)return Zd;aA=1;var e=Zd&&Zd.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Zd,"__esModule",{value:!0});const t=e(OG),n=e(TI());class a{constructor(s){var o,l;this.shouldThrowOnError=!1,this.method=s.method,this.url=s.url,this.headers=new Headers(s.headers),this.schema=s.schema,this.body=s.body,this.shouldThrowOnError=(o=s.shouldThrowOnError)!==null&&o!==void 0?o:!1,this.signal=s.signal,this.isMaybeSingle=(l=s.isMaybeSingle)!==null&&l!==void 0?l:!1,s.fetch?this.fetch=s.fetch:typeof fetch>"u"?this.fetch=t.default:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(s,o){return this.headers=new Headers(this.headers),this.headers.set(s,o),this}then(s,o){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");const l=this.fetch;let c=l(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async h=>{var m,p,x,b;let j=null,N=null,_=null,S=h.status,A=h.statusText;if(h.ok){if(this.method!=="HEAD"){const M=await h.text();M===""||(this.headers.get("Accept")==="text/csv"||this.headers.get("Accept")&&(!((m=this.headers.get("Accept"))===null||m===void 0)&&m.includes("application/vnd.pgrst.plan+text"))?N=M:N=JSON.parse(M))}const I=(p=this.headers.get("Prefer"))===null||p===void 0?void 0:p.match(/count=(exact|planned|estimated)/),O=(x=h.headers.get("content-range"))===null||x===void 0?void 0:x.split("/");I&&O&&O.length>1&&(_=parseInt(O[1])),this.isMaybeSingle&&this.method==="GET"&&Array.isArray(N)&&(N.length>1?(j={code:"PGRST116",details:`Results contain ${N.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},N=null,_=null,S=406,A="Not Acceptable"):N.length===1?N=N[0]:N=null)}else{const I=await h.text();try{j=JSON.parse(I),Array.isArray(j)&&h.status===404&&(N=[],j=null,S=200,A="OK")}catch{h.status===404&&I===""?(S=204,A="No Content"):j={message:I}}if(j&&this.isMaybeSingle&&(!((b=j?.details)===null||b===void 0)&&b.includes("0 rows"))&&(j=null,S=200,A="OK"),j&&this.shouldThrowOnError)throw new n.default(j)}return{error:j,data:N,count:_,status:S,statusText:A}});return this.shouldThrowOnError||(c=c.catch(h=>{var m,p,x;return{error:{message:`${(m=h?.name)!==null&&m!==void 0?m:"FetchError"}: ${h?.message}`,details:`${(p=h?.stack)!==null&&p!==void 0?p:""}`,hint:"",code:`${(x=h?.code)!==null&&x!==void 0?x:""}`},data:null,count:null,status:0,statusText:""}})),c.then(s,o)}returns(){return this}overrideTypes(){return this}}return Zd.default=a,Zd}var iA;function PI(){if(iA)return Kd;iA=1;var e=Kd&&Kd.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(Kd,"__esModule",{value:!0});const t=e(AI());class n extends t.default{select(i){let s=!1;const o=(i??"*").split("").map(l=>/\s/.test(l)&&!s?"":(l==='"'&&(s=!s),l)).join("");return this.url.searchParams.set("select",o),this.headers.append("Prefer","return=representation"),this}order(i,{ascending:s=!0,nullsFirst:o,foreignTable:l,referencedTable:c=l}={}){const h=c?`${c}.order`:"order",m=this.url.searchParams.get(h);return this.url.searchParams.set(h,`${m?`${m},`:""}${i}.${s?"asc":"desc"}${o===void 0?"":o?".nullsfirst":".nullslast"}`),this}limit(i,{foreignTable:s,referencedTable:o=s}={}){const l=typeof o>"u"?"limit":`${o}.limit`;return this.url.searchParams.set(l,`${i}`),this}range(i,s,{foreignTable:o,referencedTable:l=o}={}){const c=typeof l>"u"?"offset":`${l}.offset`,h=typeof l>"u"?"limit":`${l}.limit`;return this.url.searchParams.set(c,`${i}`),this.url.searchParams.set(h,`${s-i+1}`),this}abortSignal(i){return this.signal=i,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return this.method==="GET"?this.headers.set("Accept","application/json"):this.headers.set("Accept","application/vnd.pgrst.object+json"),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:i=!1,verbose:s=!1,settings:o=!1,buffers:l=!1,wal:c=!1,format:h="text"}={}){var m;const p=[i?"analyze":null,s?"verbose":null,o?"settings":null,l?"buffers":null,c?"wal":null].filter(Boolean).join("|"),x=(m=this.headers.get("Accept"))!==null&&m!==void 0?m:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${h}; for="${x}"; options=${p};`),h==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(i){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${i}`),this}}return Kd.default=n,Kd}var sA;function Fk(){if(sA)return Gd;sA=1;var e=Gd&&Gd.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(Gd,"__esModule",{value:!0});const t=e(PI());class n extends t.default{eq(i,s){return this.url.searchParams.append(i,`eq.${s}`),this}neq(i,s){return this.url.searchParams.append(i,`neq.${s}`),this}gt(i,s){return this.url.searchParams.append(i,`gt.${s}`),this}gte(i,s){return this.url.searchParams.append(i,`gte.${s}`),this}lt(i,s){return this.url.searchParams.append(i,`lt.${s}`),this}lte(i,s){return this.url.searchParams.append(i,`lte.${s}`),this}like(i,s){return this.url.searchParams.append(i,`like.${s}`),this}likeAllOf(i,s){return this.url.searchParams.append(i,`like(all).{${s.join(",")}}`),this}likeAnyOf(i,s){return this.url.searchParams.append(i,`like(any).{${s.join(",")}}`),this}ilike(i,s){return this.url.searchParams.append(i,`ilike.${s}`),this}ilikeAllOf(i,s){return this.url.searchParams.append(i,`ilike(all).{${s.join(",")}}`),this}ilikeAnyOf(i,s){return this.url.searchParams.append(i,`ilike(any).{${s.join(",")}}`),this}is(i,s){return this.url.searchParams.append(i,`is.${s}`),this}in(i,s){const o=Array.from(new Set(s)).map(l=>typeof l=="string"&&new RegExp("[,()]").test(l)?`"${l}"`:`${l}`).join(",");return this.url.searchParams.append(i,`in.(${o})`),this}contains(i,s){return typeof s=="string"?this.url.searchParams.append(i,`cs.${s}`):Array.isArray(s)?this.url.searchParams.append(i,`cs.{${s.join(",")}}`):this.url.searchParams.append(i,`cs.${JSON.stringify(s)}`),this}containedBy(i,s){return typeof s=="string"?this.url.searchParams.append(i,`cd.${s}`):Array.isArray(s)?this.url.searchParams.append(i,`cd.{${s.join(",")}}`):this.url.searchParams.append(i,`cd.${JSON.stringify(s)}`),this}rangeGt(i,s){return this.url.searchParams.append(i,`sr.${s}`),this}rangeGte(i,s){return this.url.searchParams.append(i,`nxl.${s}`),this}rangeLt(i,s){return this.url.searchParams.append(i,`sl.${s}`),this}rangeLte(i,s){return this.url.searchParams.append(i,`nxr.${s}`),this}rangeAdjacent(i,s){return this.url.searchParams.append(i,`adj.${s}`),this}overlaps(i,s){return typeof s=="string"?this.url.searchParams.append(i,`ov.${s}`):this.url.searchParams.append(i,`ov.{${s.join(",")}}`),this}textSearch(i,s,{config:o,type:l}={}){let c="";l==="plain"?c="pl":l==="phrase"?c="ph":l==="websearch"&&(c="w");const h=o===void 0?"":`(${o})`;return this.url.searchParams.append(i,`${c}fts${h}.${s}`),this}match(i){return Object.entries(i).forEach(([s,o])=>{this.url.searchParams.append(s,`eq.${o}`)}),this}not(i,s,o){return this.url.searchParams.append(i,`not.${s}.${o}`),this}or(i,{foreignTable:s,referencedTable:o=s}={}){const l=o?`${o}.or`:"or";return this.url.searchParams.append(l,`(${i})`),this}filter(i,s,o){return this.url.searchParams.append(i,`${s}.${o}`),this}}return Gd.default=n,Gd}var oA;function EI(){if(oA)return qd;oA=1;var e=qd&&qd.__importDefault||function(a){return a&&a.__esModule?a:{default:a}};Object.defineProperty(qd,"__esModule",{value:!0});const t=e(Fk());class n{constructor(i,{headers:s={},schema:o,fetch:l}){this.url=i,this.headers=new Headers(s),this.schema=o,this.fetch=l}select(i,{head:s=!1,count:o}={}){const l=s?"HEAD":"GET";let c=!1;const h=(i??"*").split("").map(m=>/\s/.test(m)&&!c?"":(m==='"'&&(c=!c),m)).join("");return this.url.searchParams.set("select",h),o&&this.headers.append("Prefer",`count=${o}`),new t.default({method:l,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch})}insert(i,{count:s,defaultToNull:o=!0}={}){var l;const c="POST";if(s&&this.headers.append("Prefer",`count=${s}`),o||this.headers.append("Prefer","missing=default"),Array.isArray(i)){const h=i.reduce((m,p)=>m.concat(Object.keys(p)),[]);if(h.length>0){const m=[...new Set(h)].map(p=>`"${p}"`);this.url.searchParams.set("columns",m.join(","))}}return new t.default({method:c,url:this.url,headers:this.headers,schema:this.schema,body:i,fetch:(l=this.fetch)!==null&&l!==void 0?l:fetch})}upsert(i,{onConflict:s,ignoreDuplicates:o=!1,count:l,defaultToNull:c=!0}={}){var h;const m="POST";if(this.headers.append("Prefer",`resolution=${o?"ignore":"merge"}-duplicates`),s!==void 0&&this.url.searchParams.set("on_conflict",s),l&&this.headers.append("Prefer",`count=${l}`),c||this.headers.append("Prefer","missing=default"),Array.isArray(i)){const p=i.reduce((x,b)=>x.concat(Object.keys(b)),[]);if(p.length>0){const x=[...new Set(p)].map(b=>`"${b}"`);this.url.searchParams.set("columns",x.join(","))}}return new t.default({method:m,url:this.url,headers:this.headers,schema:this.schema,body:i,fetch:(h=this.fetch)!==null&&h!==void 0?h:fetch})}update(i,{count:s}={}){var o;const l="PATCH";return s&&this.headers.append("Prefer",`count=${s}`),new t.default({method:l,url:this.url,headers:this.headers,schema:this.schema,body:i,fetch:(o=this.fetch)!==null&&o!==void 0?o:fetch})}delete({count:i}={}){var s;const o="DELETE";return i&&this.headers.append("Prefer",`count=${i}`),new t.default({method:o,url:this.url,headers:this.headers,schema:this.schema,fetch:(s=this.fetch)!==null&&s!==void 0?s:fetch})}}return qd.default=n,qd}var lA;function RG(){if(lA)return Ud;lA=1;var e=Ud&&Ud.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Ud,"__esModule",{value:!0});const t=e(EI()),n=e(Fk());class a{constructor(s,{headers:o={},schema:l,fetch:c}={}){this.url=s,this.headers=new Headers(o),this.schemaName=l,this.fetch=c}from(s){const o=new URL(`${this.url}/${s}`);return new t.default(o,{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch})}schema(s){return new a(this.url,{headers:this.headers,schema:s,fetch:this.fetch})}rpc(s,o={},{head:l=!1,get:c=!1,count:h}={}){var m;let p;const x=new URL(`${this.url}/rpc/${s}`);let b;l||c?(p=l?"HEAD":"GET",Object.entries(o).filter(([N,_])=>_!==void 0).map(([N,_])=>[N,Array.isArray(_)?`{${_.join(",")}}`:`${_}`]).forEach(([N,_])=>{x.searchParams.append(N,_)})):(p="POST",b=o);const j=new Headers(this.headers);return h&&j.set("Prefer",`count=${h}`),new n.default({method:p,url:x,headers:j,schema:this.schemaName,body:b,fetch:(m=this.fetch)!==null&&m!==void 0?m:fetch})}}return Ud.default=a,Ud}var cA;function IG(){if(cA)return qn;cA=1;var e=qn&&qn.__importDefault||function(l){return l&&l.__esModule?l:{default:l}};Object.defineProperty(qn,"__esModule",{value:!0}),qn.PostgrestError=qn.PostgrestBuilder=qn.PostgrestTransformBuilder=qn.PostgrestFilterBuilder=qn.PostgrestQueryBuilder=qn.PostgrestClient=void 0;const t=e(RG());qn.PostgrestClient=t.default;const n=e(EI());qn.PostgrestQueryBuilder=n.default;const a=e(Fk());qn.PostgrestFilterBuilder=a.default;const i=e(PI());qn.PostgrestTransformBuilder=i.default;const s=e(AI());qn.PostgrestBuilder=s.default;const o=e(TI());return qn.PostgrestError=o.default,qn.default={PostgrestClient:t.default,PostgrestQueryBuilder:n.default,PostgrestFilterBuilder:a.default,PostgrestTransformBuilder:i.default,PostgrestBuilder:s.default,PostgrestError:o.default},qn}var MG=IG();const LG=Qa(MG),{PostgrestClient:DG,PostgrestQueryBuilder:V5e,PostgrestFilterBuilder:U5e,PostgrestTransformBuilder:q5e,PostgrestBuilder:G5e,PostgrestError:K5e}=LG;class BG{constructor(){}static detectEnvironment(){var t;if(typeof WebSocket<"u")return{type:"native",wsConstructor:WebSocket};const n=globalThis;if(typeof globalThis<"u"&&typeof n.WebSocket<"u")return{type:"native",wsConstructor:n.WebSocket};const a=typeof global<"u"?global:void 0;if(a&&typeof a.WebSocket<"u")return{type:"native",wsConstructor:a.WebSocket};if(typeof globalThis<"u"&&typeof n.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"&&n.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 i=globalThis.process;if(i){const s=i.versions;if(s&&s.node)return{type:"unsupported",error:"Node.js detected but native WebSocket not found.",workaround:"Ensure you are running Node.js 22+ or provide a WebSocket implementation via the transport option."}}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.wsConstructor)return t.wsConstructor;let n=t.error||"WebSocket not supported in this environment.";throw t.workaround&&(n+=`
Suggested solution: ${t.workaround}`),new Error(n)}static isWebSocketSupported(){try{return this.detectEnvironment().type==="native"}catch{return!1}}}const FG="2.112.4",zG=`realtime-js/${FG}`,$G="1.0.0",OI="2.0.0",HG=OI,WG=1e4,VG=100,ul={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},RI={close:"phx_close",error:"phx_error",join:"phx_join",leave:"phx_leave",access_token:"access_token"},Tj={connecting:"connecting",closing:"closing",closed:"closed"};class UG{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 a=[t.join_ref,t.ref,t.topic,t.event,t.payload];return n(JSON.stringify(a))}_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,a;const i=(a=(n=t.payload)===null||n===void 0?void 0:n.payload)!==null&&a!==void 0?a:new ArrayBuffer(0);return this._encodeUserBroadcastPush(t,this.BINARY_ENCODING,i)}_encodeJsonUserBroadcastPush(t){var n,a;const i=(a=(n=t.payload)===null||n===void 0?void 0:n.payload)!==null&&a!==void 0?a:{},o=new TextEncoder().encode(JSON.stringify(i)).buffer;return this._encodeUserBroadcastPush(t,this.JSON_ENCODING,o)}_encodeUserBroadcastPush(t,n,a){var i,s;const o=new TextEncoder,l=o.encode(t.topic),c=o.encode((i=t.ref)!==null&&i!==void 0?i:""),h=o.encode((s=t.join_ref)!==null&&s!==void 0?s:""),m=o.encode(t.payload.event),p=this.allowedMetadataKeys?this._pick(t.payload,this.allowedMetadataKeys):{},x=o.encode(Object.keys(p).length===0?"":JSON.stringify(p));if(h.length>255)throw new Error(`joinRef length ${h.length} exceeds maximum of 255`);if(c.length>255)throw new Error(`ref length ${c.length} exceeds maximum of 255`);if(l.length>255)throw new Error(`topic length ${l.length} exceeds maximum of 255`);if(m.length>255)throw new Error(`userEvent length ${m.length} exceeds maximum of 255`);if(x.length>255)throw new Error(`metadata length ${x.length} exceeds maximum of 255`);const b=this.USER_BROADCAST_PUSH_META_LENGTH+h.length+c.length+l.length+m.length+x.length,j=new ArrayBuffer(this.HEADER_LENGTH+b),N=new DataView(j),_=new Uint8Array(j);let S=0;N.setUint8(S++,this.KINDS.userBroadcastPush),N.setUint8(S++,h.length),N.setUint8(S++,c.length),N.setUint8(S++,l.length),N.setUint8(S++,m.length),N.setUint8(S++,x.length),N.setUint8(S++,n),_.set(h,S),S+=h.length,_.set(c,S),S+=c.length,_.set(l,S),S+=l.length,_.set(m,S),S+=m.length,_.set(x,S),S+=x.length;var A=new Uint8Array(j.byteLength+a.byteLength);return A.set(new Uint8Array(j),0),A.set(new Uint8Array(a),j.byteLength),A.buffer}decode(t,n){if(this._isArrayBuffer(t)){let a=this._binaryDecode(t);return n(a)}if(typeof t=="string"){const a=JSON.parse(t),[i,s,o,l,c]=a;return n({join_ref:i,ref:s,topic:o,event:l,payload:c})}return n({})}_binaryDecode(t){const n=new DataView(t),a=n.getUint8(0),i=new TextDecoder;if(a===this.KINDS.userBroadcast)return this._decodeUserBroadcast(t,n,i)}_decodeUserBroadcast(t,n,a){const i=n.getUint8(1),s=n.getUint8(2),o=n.getUint8(3),l=n.getUint8(4);let c=this.HEADER_LENGTH+4;const h=a.decode(t.slice(c,c+i));c=c+i;const m=a.decode(t.slice(c,c+s));c=c+s;const p=a.decode(t.slice(c,c+o));c=c+o;const x=t.slice(c,t.byteLength),b=l===this.JSON_ENCODING?JSON.parse(a.decode(x)):x,j={type:this.BROADCAST_EVENT,event:m,payload:b};return o>0&&(j.meta=JSON.parse(p)),{join_ref:null,ref:null,topic:h,event:this.BROADCAST_EVENT,payload:j}}_isArrayBuffer(t){var n;return t instanceof ArrayBuffer||((n=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(([a])=>n.includes(a)))}}var Kt;(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"})(Kt||(Kt={}));const dA=(e,t,n={})=>{var a;const i=(a=n.skipTypes)!==null&&a!==void 0?a:[];return t?Object.keys(t).reduce((s,o)=>(s[o]=qG(o,e,t,i),s),{}):{}},qG=(e,t,n,a)=>{const i=t.find(l=>l.name===e),s=i?.type,o=n[e];return s&&!a.includes(s)?II(s,o):Aj(o)},II=(e,t)=>{if(e.charAt(0)==="_"){const n=e.slice(1,e.length);return YG(t,n)}switch(e){case Kt.bool:return GG(t);case Kt.float4:case Kt.float8:case Kt.int2:case Kt.int4:case Kt.int8:case Kt.numeric:case Kt.oid:return KG(t);case Kt.json:case Kt.jsonb:return ZG(t);case Kt.timestamp:return JG(t);case Kt.abstime:case Kt.date:case Kt.daterange:case Kt.int4range:case Kt.int8range:case Kt.money:case Kt.reltime:case Kt.text:case Kt.time:case Kt.timestamptz:case Kt.timetz:case Kt.tsrange:case Kt.tstzrange:return Aj(t);default:return Aj(t)}},Aj=e=>e,GG=e=>{switch(e){case"t":return!0;case"f":return!1;default:return e}},KG=e=>{if(typeof e=="string"){const t=parseFloat(e);if(!Number.isNaN(t))return t}return e},ZG=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch{return e}return e},YG=(e,t)=>{if(typeof e!="string")return e;const n=e.length-1,a=e[n];if(e[0]==="{"&&a==="}"){let s;const o=e.slice(1,n);try{s=JSON.parse("["+o+"]")}catch{s=o?o.split(","):[]}return s.map(l=>II(t,l))}return e},JG=e=>typeof e=="string"?e.replace(" ","T"):e,MI=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 Su=e=>typeof e=="function"?e:function(){return e},XG=typeof self<"u"?self:null,mu=typeof window<"u"?window:null,Zi=XG||mu||globalThis,QG="2.0.0",eK=1e4,tK=1e3,nK=100,Yi={connecting:0,open:1,closing:2,closed:3},Jr={closed:"closed",errored:"errored",joined:"joined",joining:"joining",leaving:"leaving"},$s={close:"phx_close",error:"phx_error",join:"phx_join",reply:"phx_reply",leave:"phx_leave"},Pj={longpoll:"longpoll",websocket:"websocket"},rK={complete:4},Ej="base64url.bearer.phx.",ux=class{constructor(e,t,n,a){this.channel=e,this.event=t,this.payload=n||function(){return{}},this.receivedResp=null,this.timeout=a,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(a=>a.status===e).forEach(a=>a.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})}},LI=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))}},aK=class{constructor(e,t,n){this.state=Jr.closed,this.topic=e,this.params=Su(t||{}),this.socket=n,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new ux(this,$s.join,this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new LI(()=>{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=Jr.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(a=>a.send()),this.pushBuffer=[]}),this.joinPush.receive("error",a=>{this.state=Jr.errored,this.socket.hasLogger()&&this.socket.log("channel",`error ${this.topic}`,a),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.hasLogger()&&this.socket.log("channel",`close ${this.topic}`),this.state=Jr.closed,this.socket.remove(this)}),this.onError(a=>{this.socket.hasLogger()&&this.socket.log("channel",`error ${this.topic}`,a),this.isJoining()&&this.joinPush.reset(),this.state=Jr.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 ux(this,$s.leave,Su({}),this.timeout).send(),this.state=Jr.errored,this.joinPush.reset(),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.on($s.reply,(a,i)=>{this.trigger(this.replyEventName(i),a)})}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}teardown(){this.pushBuffer.forEach(e=>e.destroy()),this.pushBuffer=[],this.rejoinTimer.reset(),this.joinPush.destroy(),this.state=Jr.closed,this.bindings=[]}onClose(e){this.on($s.close,e)}onError(e){return this.on($s.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 a=new ux(this,e,function(){return t},n);return this.canPush()?a.send():(a.startTimeout(),this.pushBuffer.push(a)),a}leave(e=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=Jr.leaving;let t=()=>{this.socket.hasLogger()&&this.socket.log("channel",`leave ${this.topic}`),this.trigger($s.close,"leave")},n=new ux(this,$s.leave,Su({}),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,a){return this.topic!==e?!1:a&&a!==this.joinRef()?(this.socket.hasLogger()&&this.socket.log("channel","dropping outdated message",{topic:e,event:t,payload:n,joinRef:a}),!1):!0}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=Jr.joining,this.joinPush.resend(e))}trigger(e,t,n,a){let i=this.onMessage(e,t,n,a);if(t&&!i)throw new Error("channel onMessage callbacks must return the payload, modified or unmodified");let s=this.bindings.filter(o=>o.event===e&&this.filterBindings(o,t,n));for(let o=0;o<s.length;o++)s[o].callback(i,n,a||this.joinRef())}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===Jr.closed}isErrored(){return this.state===Jr.errored}isJoined(){return this.state===Jr.joined}isJoining(){return this.state===Jr.joining}isLeaving(){return this.state===Jr.leaving}},_y=class{static request(e,t,n,a,i,s,o){if(Zi.XDomainRequest){let l=new Zi.XDomainRequest;return this.xdomainRequest(l,e,t,a,i,s,o)}else if(Zi.XMLHttpRequest){let l=new Zi.XMLHttpRequest;return this.xhrRequest(l,e,t,n,a,i,s,o)}else{if(Zi.fetch&&Zi.AbortController)return this.fetchRequest(e,t,n,a,i,s,o);throw new Error("No suitable XMLHttpRequest implementation found")}}static fetchRequest(e,t,n,a,i,s,o){let l={method:e,headers:n,body:a},c=null;return i&&(c=new AbortController,setTimeout(()=>c.abort(),i),l.signal=c.signal),Zi.fetch(t,l).then(h=>h.text()).then(h=>this.parseJSON(h)).then(h=>o&&o(h)).catch(h=>{h.name==="AbortError"&&s?s():o&&o(null)}),c}static xdomainRequest(e,t,n,a,i,s,o){return e.timeout=i,e.open(t,n),e.onload=()=>{let l=this.parseJSON(e.responseText);o&&o(l)},s&&(e.ontimeout=s),e.onprogress=()=>{},e.send(a),e}static xhrRequest(e,t,n,a,i,s,o,l){e.open(t,n,!0),e.timeout=s;for(let[c,h]of Object.entries(a))e.setRequestHeader(c,h);return e.onerror=()=>l&&l(null),e.onreadystatechange=()=>{if(e.readyState===rK.complete&&l){let c=this.parseJSON(e.responseText);l(c)}},o&&(e.ontimeout=o),e.send(i),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 a in e){if(!Object.prototype.hasOwnProperty.call(e,a))continue;let i=t?`${t}[${a}]`:a,s=e[a];typeof s=="object"?n.push(this.serialize(s,i)):n.push(encodeURIComponent(i)+"="+encodeURIComponent(s))}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)}`}},iK=e=>{let t="",n=new Uint8Array(e),a=n.byteLength;for(let i=0;i<a;i++)t+=String.fromCharCode(n[i]);return btoa(t)},Yd=class{constructor(e,t){t&&t.length===2&&t[1].startsWith(Ej)&&(this.authToken=atob(t[1].slice(Ej.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=Yi.connecting,setTimeout(()=>this.poll(),0)}normalizeEndpoint(e){return e.replace("ws://","http://").replace("wss://","https://").replace(new RegExp("(.*)/"+Pj.websocket),"$1/"+Pj.longpoll)}endpointURL(){return _y.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(e,t,n){this.close(e,t,n),this.readyState=Yi.connecting}ontimeout(){this.onerror("timeout"),this.closeAndRetry(1005,"timeout",!1)}isActive(){return this.readyState===Yi.open||this.readyState===Yi.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:a,messages:i}=t;if(n===410&&this.token!==null){this.onerror(410),this.closeAndRetry(3410,"session_gone",!1);return}this.token=a}else n=0;switch(n){case 200:i.forEach(s=>{setTimeout(()=>this.onmessage({data:s}),0)}),this.poll();break;case 204:this.poll();break;case 410:this.readyState=Yi.open,this.onopen({}),this.poll();break;case 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=iK(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,t=0){this.awaitingBatchAck=!0;const n=t+nK,a=e.slice(t,n);this.ajax("POST",{"Content-Type":"application/x-ndjson"},a.join(`
`),()=>this.onerror("timeout"),i=>{!i||i.status!==200?(this.awaitingBatchAck=!1,this.onerror(i&&i.status),this.closeAndRetry(1011,"internal server error",!1)):n<e.length?this.batchSend(e,n):this.batchBuffer.length>0?(this.batchSend(this.batchBuffer),this.batchBuffer=[]):this.awaitingBatchAck=!1})}close(e,t,n){for(let i of this.reqs)i.abort();this.readyState=Yi.closed;let a=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",a)):this.onclose(a)}ajax(e,t,n,a,i){let s,o=()=>{this.reqs.delete(s),a()};s=_y.request(e,this.endpointURL(),t,n,this.timeout,o,l=>{this.reqs.delete(s),this.isActive()&&i(l)}),this.reqs.add(s)}},sK=class Xf{constructor(t,n={}){let a=n.events||{state:"presence_state",diff:"presence_diff"};this.state=Object.create(null),this.pendingDiffs=[],this.channel=t,this.joinRef=null,this.caller={onJoin:function(){},onLeave:function(){},onSync:function(){}},this.channel.on(a.state,i=>{let{onJoin:s,onLeave:o,onSync:l}=this.caller;this.joinRef=this.channel.joinRef(),this.state=Xf.syncState(this.state,i,s,o),this.pendingDiffs.forEach(c=>{this.state=Xf.syncDiff(this.state,c,s,o)}),this.pendingDiffs=[],l()}),this.channel.on(a.diff,i=>{let{onJoin:s,onLeave:o,onSync:l}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(i):(this.state=Xf.syncDiff(this.state,i,s,o),l())})}onJoin(t){this.caller.onJoin=t}onLeave(t){this.caller.onLeave=t}onSync(t){this.caller.onSync=t}list(t){return Xf.list(this.state,t)}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel.joinRef()}static syncState(t,n,a,i){let s=this.toNullProtoObj(this.clone(t));n=this.toNullProtoObj(n);let o=Object.create(null),l=Object.create(null);return this.map(s,(c,h)=>{n[c]||(l[c]=h)}),this.map(n,(c,h)=>{let m=s[c];if(m){let p=h.metas.map(N=>N.phx_ref),x=m.metas.map(N=>N.phx_ref),b=h.metas.filter(N=>x.indexOf(N.phx_ref)<0),j=m.metas.filter(N=>p.indexOf(N.phx_ref)<0);b.length>0&&(o[c]=h,o[c].metas=b),j.length>0&&(l[c]=this.clone(m),l[c].metas=j)}else o[c]=h}),this.syncDiff(s,{joins:o,leaves:l},a,i)}static syncDiff(t,n,a,i){t=this.toNullProtoObj(t);let{joins:s,leaves:o}=this.clone(n);return a||(a=function(){}),i||(i=function(){}),this.map(s,(l,c)=>{let h=t[l];if(t[l]=this.clone(c),h){let m=t[l].metas.map(x=>x.phx_ref),p=h.metas.filter(x=>m.indexOf(x.phx_ref)<0);t[l].metas.unshift(...p)}a(l,h,c)}),this.map(o,(l,c)=>{let h=t[l];if(!h)return;let m=c.metas.map(p=>p.phx_ref);h.metas=h.metas.filter(p=>m.indexOf(p.phx_ref)<0),i(l,h,c),h.metas.length===0&&delete t[l]}),t}static list(t,n){return n||(n=function(a,i){return i}),this.map(t,(a,i)=>n(a,i))}static map(t,n){return Object.getOwnPropertyNames(t).map(a=>n(a,t[a]))}static toNullProtoObj(t){if(Object.getPrototypeOf(t)===null)return t;let n=Object.create(null);return Object.getOwnPropertyNames(t).forEach(a=>{n[a]=t[a]}),n}static clone(t){return JSON.parse(JSON.stringify(t))}},hx={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,a,i,s,o]=JSON.parse(e);return t({join_ref:n,ref:a,topic:i,event:s,payload:o})}},binaryEncode(e){let{join_ref:t,ref:n,event:a,topic:i,payload:s}=e,o=new TextEncoder,l=o.encode(t),c=o.encode(n),h=o.encode(i),m=o.encode(a);this.assertFieldSize(l.byteLength,"join_ref"),this.assertFieldSize(c.byteLength,"ref"),this.assertFieldSize(h.byteLength,"topic"),this.assertFieldSize(m.byteLength,"event");let p=this.META_LENGTH+l.byteLength+c.byteLength+h.byteLength+m.byteLength,x=new ArrayBuffer(this.HEADER_LENGTH+p),b=new Uint8Array(x),j=new DataView(x),N=0;j.setUint8(N++,this.KINDS.push),j.setUint8(N++,l.byteLength),j.setUint8(N++,c.byteLength),j.setUint8(N++,h.byteLength),j.setUint8(N++,m.byteLength),b.set(l,N),N+=l.byteLength,b.set(c,N),N+=c.byteLength,b.set(h,N),N+=h.byteLength,b.set(m,N),N+=m.byteLength;var _=new Uint8Array(x.byteLength+s.byteLength);return _.set(b,0),_.set(new Uint8Array(s),x.byteLength),_.buffer},assertFieldSize(e,t){if(e>255)throw new Error(`unable to convert ${t} to binary: must be less than or equal to 255 bytes, but is ${e} bytes`)},binaryDecode(e){let t=new DataView(e),n=t.getUint8(0),a=new TextDecoder;switch(n){case this.KINDS.push:return this.decodePush(e,t,a);case this.KINDS.reply:return this.decodeReply(e,t,a);case this.KINDS.broadcast:return this.decodeBroadcast(e,t,a)}},decodePush(e,t,n){let a=t.getUint8(1),i=t.getUint8(2),s=t.getUint8(3),o=this.HEADER_LENGTH+this.META_LENGTH-1,l=n.decode(e.slice(o,o+a));o=o+a;let c=n.decode(e.slice(o,o+i));o=o+i;let h=n.decode(e.slice(o,o+s));o=o+s;let m=e.slice(o,e.byteLength);return{join_ref:l,ref:null,topic:c,event:h,payload:m}},decodeReply(e,t,n){let a=t.getUint8(1),i=t.getUint8(2),s=t.getUint8(3),o=t.getUint8(4),l=this.HEADER_LENGTH+this.META_LENGTH,c=n.decode(e.slice(l,l+a));l=l+a;let h=n.decode(e.slice(l,l+i));l=l+i;let m=n.decode(e.slice(l,l+s));l=l+s;let p=n.decode(e.slice(l,l+o));l=l+o;let x=e.slice(l,e.byteLength),b={status:p,response:x};return{join_ref:c,ref:h,topic:m,event:$s.reply,payload:b}},decodeBroadcast(e,t,n){let a=t.getUint8(1),i=t.getUint8(2),s=this.HEADER_LENGTH+2,o=n.decode(e.slice(s,s+a));s=s+a;let l=n.decode(e.slice(s,s+i));s=s+i;let c=e.slice(s,e.byteLength);return{join_ref:null,ref:null,topic:o,event:l,payload:c}}},oK=class{constructor(e,t={}){this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.fallbackRef=null,this.timeout=t.timeout||eK,this.transport=t.transport||Zi.WebSocket||Yd,this.conn=void 0,this.primaryPassedHealthCheck=!1,this.longPollFallbackMs=t.longPollFallbackMs,this.fallbackTimer=null;let n=null;try{n=Zi&&Zi.sessionStorage}catch{}this.sessionStore=t.sessionStorage||n,this.establishedConnections=0,this.defaultEncoder=hx.encode.bind(hx),this.defaultDecoder=hx.decode.bind(hx),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!==Yd?(this.encode=t.encode||this.defaultEncoder,this.decode=t.decode||this.defaultDecoder):(this.encode=this.defaultEncoder,this.decode=this.defaultDecoder);let a=null;mu&&mu.addEventListener&&(mu.addEventListener("pagehide",i=>{this.conn&&(this.disconnect(),a=this.connectClock)}),mu.addEventListener("pageshow",i=>{a===this.connectClock&&(a=null,this.connect())}),mu.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=i=>t.rejoinAfterMs?t.rejoinAfterMs(i):[1e3,2e3,5e3][i-1]||1e4,this.reconnectAfterMs=i=>t.reconnectAfterMs?t.reconnectAfterMs(i):[10,50,100,150,200,250,500,1e3,2e3][i-1]||5e3,this.logger=t.logger||null,!this.logger&&t.debug&&(this.logger=(i,s,o)=>{console.log(`${i}: ${s}`,o)}),this.longpollerTimeout=t.longpollerTimeout||2e4,this.params=Su(t.params||{}),this.endPoint=`${e}/${Pj.websocket}`,this.vsn=t.vsn||QG,this.heartbeatTimeoutTimer=null,this.heartbeatTimer=null,this.heartbeatSentAt=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new LI(()=>{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&&Su(t.authToken)}getLongPollTransport(){return Yd}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=_y.appendParams(_y.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=Su(e)),!(this.conn&&!this.disconnecting)&&(this.longPollFallbackMs&&this.transport!==Yd?this.connectWithFallback(Yd,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 a=this.onMessage(i=>{i.ref===t&&(this.off([a]),e(Date.now()-n))});return!0}transportName(e){return e===Yd?"LongPoll":e.name}transportConnect(){this.connectClock++,this.closeWasClean=!1;let e;this.authToken&&(e=["phoenix",`${Ej}${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,a=!0,i,s,o=this.transportName(e),l=c=>{this.log("transport",`falling back to ${o}...`,c),this.off([i,s]),a=!1,this.replaceTransport(e),this.transportConnect()};if(this.getSession(`phx:fallback:${o}`))return l("memorized");this.fallbackTimer=setTimeout(l,t),s=this.onError(c=>{this.log("transport","error",c),a&&!n&&(clearTimeout(this.fallbackTimer),l(c))}),this.fallbackRef&&this.off([this.fallbackRef]),this.fallbackRef=this.onOpen(()=>{if(n=!0,!a){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(new Error("heartbeat timeout")),this.closeWasClean=!1,this.teardown(()=>this.reconnectTimer.scheduleTimeout(),tK,"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 a=this.conn;this.waitForBufferDone(a,()=>{t?a.close(t,n||""):a.close(),this.waitForSocketClosed(a,()=>{this.conn===a&&(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===Yi.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(e),this.clearHeartbeats(),this.closeWasClean||this.reconnectTimer.scheduleTimeout(),this.triggerStateCallbacks("close",e)}onConnError(e){this.hasLogger()&&this.log("transport","error",e);let t=this.transport,n=this.establishedConnections;this.triggerStateCallbacks("error",e,t,n),(t===this.transport||n>0)&&this.triggerChanError(e)}triggerChanError(e){this.channels.forEach(t=>{t.isErrored()||t.isLeaving()||t.isClosed()||t.trigger($s.error,e)})}connectionState(){switch(this.conn&&this.conn.readyState){case Yi.connecting:return"connecting";case Yi.open:return"open";case Yi.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 aK(e,t,this);return this.channels.push(n),n}push(e){if(this.hasLogger()){let{topic:t,event:n,payload:a,ref:i,join_ref:s}=e;this.log("push",`${t} ${n} (${s}, ${i})`,a)}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:a,payload:i,ref:s,join_ref:o}=t;if(s&&s===this.pendingHeartbeatRef){const l=this.heartbeatSentAt?Date.now()-this.heartbeatSentAt:void 0;this.clearHeartbeats();try{this.heartbeatCallback(i.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",`${i.status||""} ${n} ${a} ${s&&"("+s+")"||""}`.trim(),i);for(let l=0;l<this.channels.length;l++){const c=this.channels[l];c.isMember(n,a,i,o)&&c.trigger(a,i,s,o)}this.triggerStateCallbacks("message",t)})}triggerStateCallbacks(e,...t){try{this.stateChangeCallbacks[e].forEach(([n,a])=>{try{a(...t)}catch(i){this.log("error",`error in ${e} callback`,i)}})}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 hm{constructor(t,n){const a=cK(n);this.presence=new sK(t.getChannel(),a),this.presence.onJoin((i,s,o)=>{const l=hm.onJoinPayload(i,s,o);t.getChannel().trigger("presence",l)}),this.presence.onLeave((i,s,o)=>{const l=hm.onLeavePayload(i,s,o);t.getChannel().trigger("presence",l)}),this.presence.onSync(()=>{t.getChannel().trigger("presence",{event:"sync"})})}get state(){return hm.transformState(this.presence.state)}static transformState(t){return t=lK(t),Object.getOwnPropertyNames(t).reduce((n,a)=>{const i=t[a];return n[a]=iy(i),n},{})}static onJoinPayload(t,n,a){const i=uA(n),s=iy(a);return{event:"join",key:t,currentPresences:i,newPresences:s}}static onLeavePayload(t,n,a){const i=uA(n),s=iy(a);return{event:"leave",key:t,currentPresences:i,leftPresences:s}}}function iy(e){return e.metas.map(t=>{const n=Object.getOwnPropertyDescriptors(t),a=Object.defineProperties({},n);return a.presence_ref=a.phx_ref,delete a.phx_ref,delete a.phx_ref_prev,a})}function lK(e){return JSON.parse(JSON.stringify(e))}function cK(e){return e?.events&&{events:e.events}}function uA(e){return e?.metas?iy(e):[]}var hA;(function(e){e.SYNC="sync",e.JOIN="join",e.LEAVE="leave"})(hA||(hA={}));class dK{get state(){return this.presenceAdapter.state}constructor(t,n){this.channel=t,this.presenceAdapter=new hm(this.channel.channelAdapter,n)}}function uK(e){if(e instanceof Error)return e;if(typeof e=="string")return new Error(e);if(e&&typeof e=="object"){const t=e;if(typeof t.code=="number"){const n=typeof t.reason=="string"&&t.reason?` (${t.reason})`:"";return new Error(`socket closed: ${t.code}${n}`,{cause:e})}return new Error("channel error: transport failure",{cause:e})}return new Error("channel error: connection lost")}class hK{constructor(t,n,a){const i=fK(a);this.channel=t.getSocket().channel(n,i),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,a){let i;try{i=this.channel.push(t,n,a)}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>VG){const s=this.channel.pushBuffer.shift();s.cancelTimeout(),this.socket.log("channel",`discarded push due to buffer overflow: ${s.event}`,s.payload())}return i}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===ul.joined}isJoined(){return this.state===ul.joined}isJoining(){return this.state===ul.joining}isClosed(){return this.state===ul.closed}isLeaving(){return this.state===ul.leaving}updateFilterBindings(t){this.channel.filterBindings=t}updatePayloadTransform(t){this.channel.onMessage=t}getChannel(){return this.channel}}function fK(e){return{config:Object.assign({broadcast:{ack:!1,self:!1},presence:{key:"",enabled:!1},private:!1},e.config)}}const mK=/[,()"\\]/,pK=e=>mK.test(e)||e!==e.trim(),gK=e=>`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`,fA=e=>{const t=e===null?"null":String(e);return pK(t)?gK(t):t},xK=e=>e===null?"null":String(e),yK=(e,t)=>{if(e==="in"){const n=Array.isArray(t)?t:[t];if(n.length===0)throw new Error("Realtime `in` filter requires at least one value.");return`in.(${Array.from(new Set(n)).map(i=>fA(i)).join(",")})`}return e==="is"?`is.${xK(t)}`:`${e}.${fA(t)}`};class vK{constructor(){this.filters=[]}add(t,n,a,i=!1){const s=i?"not.":"";return this.filters.push(`${t}=${s}${yK(n,a)}`),this}eq(t,n){return this.add(t,"eq",n)}neq(t,n){return this.add(t,"neq",n)}gt(t,n){return this.add(t,"gt",n)}gte(t,n){return this.add(t,"gte",n)}lt(t,n){return this.add(t,"lt",n)}lte(t,n){return this.add(t,"lte",n)}in(t,n){return this.add(t,"in",n)}like(t,n){return this.add(t,"like",n)}ilike(t,n){return this.add(t,"ilike",n)}match(t,n){return this.add(t,"match",n)}imatch(t,n){return this.add(t,"imatch",n)}is(t,n){return this.add(t,"is",n)}isDistinct(t,n){return this.add(t,"isdistinct",n)}not(t,n,a){return this.add(t,n,a,!0)}build(){return this.filters.join(",")}toString(){return this.build()}}var mA;(function(e){e.ALL="*",e.INSERT="INSERT",e.UPDATE="UPDATE",e.DELETE="DELETE"})(mA||(mA={}));var vc;(function(e){e.BROADCAST="broadcast",e.PRESENCE="presence",e.POSTGRES_CHANGES="postgres_changes",e.SYSTEM="system"})(vc||(vc={}));var Hs;(function(e){e.SUBSCRIBED="SUBSCRIBED",e.TIMED_OUT="TIMED_OUT",e.CLOSED="CLOSED",e.CHANNEL_ERROR="CHANNEL_ERROR"})(Hs||(Hs={}));class Ws{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:{}},a){var i,s;if(this.topic=t,this.params=n,this.socket=a,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 hK(this.socket.socketAdapter,t,this.params),this.presence=new dK(this),this._onClose(()=>{this.socket._remove(this)}),this._updateFilterTransform(),this.broadcastEndpointURL=MI(this.socket.socketAdapter.endPointURL()),this.private=this.params.config.private||!1,!this.private&&(!((s=(i=this.params.config)===null||i===void 0?void 0:i.broadcast)===null||s===void 0)&&s.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 a,i,s;if(this.socket.isConnected()||this.socket.connect(),this.channelAdapter.isClosed()){const{config:{broadcast:o,presence:l,private:c}}=this.params,h=(i=(a=this.bindings.postgres_changes)===null||a===void 0?void 0:a.map(b=>b.filter))!==null&&i!==void 0?i:[],m=!!this.bindings[vc.PRESENCE]&&this.bindings[vc.PRESENCE].length>0||((s=this.params.config.presence)===null||s===void 0?void 0:s.enabled)===!0,p={},x={broadcast:o,presence:Object.assign(Object.assign({},l),{enabled:m}),postgres_changes:h,private:c};this.socket.accessTokenValue&&(p.access_token=this.socket.accessTokenValue),this._onError(b=>{t?.(Hs.CHANNEL_ERROR,uK(b))}),this._onClose(()=>t?.(Hs.CLOSED)),this.updateJoinPayload(Object.assign({config:x},p)),this._updateFilterMessage(),this.channelAdapter.subscribe(n).receive("ok",async({postgres_changes:b})=>{if(this.socket._isManualToken()||this.socket.setAuth(),b===void 0){t?.(Hs.SUBSCRIBED);return}this._updatePostgresBindings(b,t)}).receive("error",b=>{this.state=ul.errored;const j=Object.values(b).join(", ")||"error";t?.(Hs.CHANNEL_ERROR,new Error(j,{cause:b}))}).receive("timeout",()=>{t?.(Hs.TIMED_OUT)})}return this}_updatePostgresBindings(t,n){var a;const i=this.bindings.postgres_changes,s=(a=i?.length)!==null&&a!==void 0?a:0,o=[];for(let l=0;l<s;l++){const c=i[l],{filter:{event:h,schema:m,table:p,filter:x}}=c,b=t&&t[l];if(b&&b.event===h&&Ws.isFilterValueEqual(b.schema,m)&&Ws.isFilterValueEqual(b.table,p)&&Ws.isFilterValueEqual(b.filter,x))o.push(Object.assign(Object.assign({},c),{id:b.id}));else{this.unsubscribe(),this.state=ul.errored,n?.(Hs.CHANNEL_ERROR,new Error("mismatch between server and client bindings for postgres changes"));return}}this.bindings.postgres_changes=o,this.state!=ul.errored&&n&&n(Hs.SUBSCRIBED)}presenceState(){return this.presence.state}async track(t,n={}){return await this.send({type:"presence",event:"track",payload:t},n)}async untrack(t={}){return await this.send({type:"presence",event:"untrack"},t)}on(t,n,a){const i=this.channelAdapter.isJoined()||this.channelAdapter.isJoining(),s=t===vc.PRESENCE||t===vc.POSTGRES_CHANGES;if(i&&s)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,a)}async httpSend(t,n,a={}){var i;if(n==null)return Promise.reject(new Error("Payload is required for httpSend()"));const s=n instanceof ArrayBuffer||ArrayBuffer.isView(n),o={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":s?"application/octet-stream":"application/json"};this.socket.accessTokenValue&&(o.Authorization=`Bearer ${this.socket.accessTokenValue}`);const l=new URL(this.broadcastEndpointURL);l.pathname+=`/${encodeURIComponent(this.subTopic)}/events/${encodeURIComponent(t)}`,this.private&&l.searchParams.set("private","true");const c={method:"POST",headers:o,body:s?n:JSON.stringify(n)},h=await this._fetchWithTimeout(l.toString(),c,(i=a.timeout)!==null&&i!==void 0?i:this.timeout);if(h.status===202)return{success:!0};if(h.status===404)return Promise.reject(new Error("httpSend() requires Realtime server v2.97.0 or newer; the endpoint returned 404. Update your Supabase CLI to a recent version, or upgrade the Realtime server in your self-hosted setup. See https://github.com/supabase/supabase-js/blob/master/packages/core/realtime-js/migrations/httpsend-server-version.md"));let m=h.statusText;try{const p=await h.json();m=p.error||p.message||m}catch{}return Promise.reject(new Error(m))}async send(t,n={}){var a,i;if(!this.channelAdapter.canPush()&&t.type==="broadcast"){const s="Realtime send() is automatically falling back to REST API. This behavior will be deprecated in the future. Please use httpSend() explicitly for REST delivery.";this.socket.hasLogger()?this.socket.log("channel",s):console.warn(s);const{event:o,payload:l}=t,c={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"};this.socket.accessTokenValue&&(c.Authorization=`Bearer ${this.socket.accessTokenValue}`);const h={method:"POST",headers:c,body:JSON.stringify({messages:[{topic:this.subTopic,event:o,payload:l,private:this.private}]})};try{const m=await this._fetchWithTimeout(this.broadcastEndpointURL,h,(a=n.timeout)!==null&&a!==void 0?a:this.timeout);return await((i=m.body)===null||i===void 0?void 0:i.cancel()),m.ok?"ok":"error"}catch(m){return m instanceof Error&&m.name==="AbortError"?"timed out":"error"}}else return new Promise(s=>{var o,l,c;const h=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)&&s("ok"),h.receive("ok",()=>s("ok")),h.receive("error",()=>s("error")),h.receive("timeout",()=>s("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,a){const i=new AbortController,s=setTimeout(()=>i.abort(),a),o=await this.socket.fetch(t,Object.assign(Object.assign({},n),{signal:i.signal}));return clearTimeout(s),o}_on(t,n,a){var i;const s=t.toLocaleLowerCase(),o=n?.filter;if((o instanceof vK||typeof o=="object"&&o!==null&&typeof o.build=="function")&&(n=Object.assign(Object.assign({},n),{filter:o.build()})),s===vc.POSTGRES_CHANGES&&((i=this.bindings[s])===null||i===void 0?void 0:i.find(m=>Ws.isSamePostgresFilter(m.filter,n))))return this.socket.log("error",`duplicate \`postgres_changes\` binding for ${this.topic} ignored`,n),this;const l=this.channelAdapter.on(t,a),c={type:s,filter:n,callback:a,ref:l};return this.bindings[s]?this.bindings[s].push(c):this.bindings[s]=[c],this._updateFilterMessage(),this}_onClose(t){this.channelAdapter.onClose(t)}_onError(t){this.channelAdapter.onError(t)}_updateFilterMessage(){this.channelAdapter.updateFilterBindings((t,n,a)=>{var i,s,o,l,c,h,m;const p=t.event.toLocaleLowerCase();if(this._notThisChannelEvent(p,a))return!1;const x=(i=this.bindings[p])===null||i===void 0?void 0:i.find(b=>b.ref===t.ref);if(!x)return!0;if(["broadcast","presence","postgres_changes"].includes(p))if("id"in x){const b=x.id,j=(s=x.filter)===null||s===void 0?void 0:s.event;return b&&((o=n.ids)===null||o===void 0?void 0:o.includes(b))&&(j==="*"||j?.toLocaleLowerCase()===((l=n.data)===null||l===void 0?void 0:l.type.toLocaleLowerCase()))}else{const b=(h=(c=x?.filter)===null||c===void 0?void 0:c.event)===null||h===void 0?void 0:h.toLocaleLowerCase();return b==="*"||b===((m=n?.event)===null||m===void 0?void 0:m.toLocaleLowerCase())}else return x.type.toLocaleLowerCase()===p})}_notThisChannelEvent(t,n){const{close:a,error:i,leave:s,join:o}=RI;return n&&[a,i,s,o].includes(t)&&n!==this.joinPush.ref}_updateFilterTransform(){this.channelAdapter.updatePayloadTransform((t,n,a)=>{if(typeof n=="object"&&"ids"in n){const i=n.data,{schema:s,table:o,commit_timestamp:l,type:c,errors:h}=i;return Object.assign(Object.assign({},{schema:s,table:o,commit_timestamp:l,eventType:c,new:{},old:{},errors:h}),this._getPayloadRecords(i))}return n})}copyBindings(t){if(this.joinedOnce)throw new Error("cannot copy bindings into joined channel");for(const n in t.bindings)for(const a of t.bindings[n])this._on(a.type,a.filter,a.callback)}static isFilterValueEqual(t,n){return(t??void 0)===(n??void 0)}static isSamePostgresFilter(t,n){var a,i,s,o;const l=(i=(a=t?.select)===null||a===void 0?void 0:a.join())!==null&&i!==void 0?i:void 0,c=(o=(s=n?.select)===null||s===void 0?void 0:s.join())!==null&&o!==void 0?o:void 0;return t?.event===n?.event&&Ws.isFilterValueEqual(t?.schema,n?.schema)&&Ws.isFilterValueEqual(t?.table,n?.table)&&Ws.isFilterValueEqual(t?.filter,n?.filter)&&l===c}_getPayloadRecords(t){const n={new:{},old:{}};return(t.type==="INSERT"||t.type==="UPDATE")&&(n.new=dA(t.columns,t.record)),(t.type==="UPDATE"||t.type==="DELETE")&&(n.old=dA(t.columns,t.old_record)),n}}class bK{constructor(t,n){this.socket=new oK(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,a,i=1e4){return new Promise(s=>{setTimeout(()=>s("timeout"),i),this.socket.disconnect(()=>{t(),s("ok")},n,a)})}push(t){this.socket.push(t)}log(t,n,a){this.socket.log(t,n,a)}hasLogger(){return this.socket.hasLogger()}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()==Tj.connecting}isDisconnecting(){return this.socket.connectionState()==Tj.closing}connectionState(){return this.socket.connectionState()}endPointURL(){return this.socket.endPointURL()}sendHeartbeat(){this.socket.sendHeartbeat()}getSocket(){return this.socket}}const pA={HEARTBEAT_INTERVAL:25e3},wK=[1e3,2e3,5e3,1e4],jK=1e4;function NK(){const e=new Map;return{get length(){return e.size},clear(){e.clear()},getItem(t){return e.has(t)?e.get(t):null},key(t){var n;return(n=Array.from(e.keys())[t])!==null&&n!==void 0?n:null},removeItem(t){e.delete(t)},setItem(t,n){e.set(t,String(n))}}}function kK(){try{if(typeof globalThis<"u"&&globalThis.sessionStorage)return globalThis.sessionStorage}catch{}return NK()}const _K=`
addEventListener("message", (e) => {
if (e.data.event === "start") {
setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval);
}
});`;class SK{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 a;if(this.channels=new Array,this.accessTokenValue=null,this.accessToken=null,this.apiKey=null,this.httpEndpoint="",this.headers={},this.params={},this.ref=0,this.serializer=new UG,this._manuallySetToken=!1,this._authPromise=null,this._authGeneration=0,this._workerHeartbeatTimer=void 0,this._pendingWorkerHeartbeatRef=null,this._pendingDisconnectTimer=null,this._disconnectOnEmptyChannelsAfterMs=0,this._resolveFetch=s=>s?(...o)=>s(...o):(...o)=>fetch(...o),!(!((a=n?.params)===null||a===void 0)&&a.apikey))throw new Error("API key is required to connect to Realtime");this.apiKey=n.params.apikey;const i=this._initializeOptions(n);this.socketAdapter=new bK(t,i),this.httpEndpoint=MI(t),this.fetch=this._resolveFetch(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 new Error(`WebSocket not available: ${n}`)}this._handleNodeJsRaceCondition()}}endpointURL(){return this.socketAdapter.endPointURL()}async disconnect(t,n){return this._cancelPendingDisconnect(),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(),n}async removeAllChannels(){const t=this.channels.map(async a=>{const i=await a.unsubscribe();return a.teardown(),i}),n=await Promise.all(t);return await this.disconnect(),n}log(t,n,a){this.socketAdapter.log(t,n,a)}hasLogger(){return this.socketAdapter.hasLogger()}connectionState(){return this.socketAdapter.connectionState()||Tj.closed}isConnected(){return this.socketAdapter.isConnected()}isConnecting(){return this.socketAdapter.isConnecting()}isDisconnecting(){return this.socketAdapter.isDisconnecting()}channel(t,n={config:{}}){const a=`realtime:${t}`,i=this.getChannels().find(s=>s.topic===a);if(i)return i;{const s=new Ws(`realtime:${t}`,n,this);return this._cancelPendingDisconnect(),this.channels.push(s),s}}push(t){this.socketAdapter.push(t)}async setAuth(t=null){const n=++this._authGeneration,a=this._performAuth(t,n);n===this._authGeneration&&(this._authPromise=a);try{await a}finally{this._authPromise===a&&(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),this.channels.length===0&&(this.log("transport","no channels remaining, scheduling disconnect"),this._schedulePendingDisconnect())}_schedulePendingDisconnect(){if(this._cancelPendingDisconnect(),this._disconnectOnEmptyChannelsAfterMs===0){this.log("transport","disconnecting immediately - no channels"),this.disconnect();return}this._pendingDisconnectTimer=setTimeout(()=>{this._pendingDisconnectTimer=null,this.channels.length===0&&(this.log("transport","deferred disconnect fired - no channels, disconnecting"),this.disconnect())},this._disconnectOnEmptyChannelsAfterMs),this.log("transport",`deferred disconnect scheduled in ${this._disconnectOnEmptyChannelsAfterMs}ms`)}_cancelPendingDisconnect(){this._pendingDisconnectTimer!==null&&(this.log("transport","pending disconnect cancelled - channel activity detected"),clearTimeout(this._pendingDisconnectTimer),this._pendingDisconnectTimer=null)}async _performAuth(t,n){let a,i=!1;if(t)a=t,i=!0;else if(this.accessToken)try{a=await this.accessToken()}catch(s){this.log("error","Error fetching access token from callback",s),a=this.accessTokenValue}else a=this.accessTokenValue;n===this._authGeneration&&(this.accessToken?this._manuallySetToken=!1:i&&(this._manuallySetToken=!0),this.accessTokenValue!=a&&(this.accessTokenValue=a,this.channels.forEach(s=>{const o={access_token:a,version:zG};s.updateJoinPayload(o),s.joinedOnce&&s.channelAdapter.isJoined()&&s.channelAdapter.push(RI.access_token,{access_token:a})})))}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,a)=>{n!=="disconnected"&&(n=="sent"&&this._setAuthSafely(),t&&t(n,a))}}_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 a=new Blob([_K],{type:"application/javascript"});n=URL.createObjectURL(a)}return n}_initializeOptions(t){var n,a,i,s,o,l,c,h,m,p,x,b;this.worker=(n=t?.worker)!==null&&n!==void 0?n:!1,this.accessToken=(a=t?.accessToken)!==null&&a!==void 0?a:null;const j={};j.timeout=(i=t?.timeout)!==null&&i!==void 0?i:WG,j.heartbeatIntervalMs=(s=t?.heartbeatIntervalMs)!==null&&s!==void 0?s:pA.HEARTBEAT_INTERVAL,this._disconnectOnEmptyChannelsAfterMs=(o=t?.disconnectOnEmptyChannelsAfterMs)!==null&&o!==void 0?o:2*((l=t?.heartbeatIntervalMs)!==null&&l!==void 0?l:pA.HEARTBEAT_INTERVAL),j.transport=(c=t?.transport)!==null&&c!==void 0?c:BG.getWebSocketConstructor(),j.params=t?.params,j.logger=t?.logger,j.heartbeatCallback=this._wrapHeartbeatCallback(t?.heartbeatCallback),j.sessionStorage=(h=t?.sessionStorage)!==null&&h!==void 0?h:kK(),j.reconnectAfterMs=(m=t?.reconnectAfterMs)!==null&&m!==void 0?m:(A=>wK[A-1]||jK);let N,_;const S=(p=t?.vsn)!==null&&p!==void 0?p:HG;switch(S){case $G:N=(A,P)=>P(JSON.stringify(A)),_=(A,P)=>P(JSON.parse(A));break;case OI:N=this.serializer.encode.bind(this.serializer),_=this.serializer.decode.bind(this.serializer);break;default:throw new Error(`Unsupported serializer version: ${j.vsn}`)}if(j.vsn=S,j.encode=(x=t?.encode)!==null&&x!==void 0?x:N,j.decode=(b=t?.decode)!==null&&b!==void 0?b:_,j.beforeReconnect=this._reconnectAuth.bind(this),(t?.logLevel||t?.log_level)&&(this.logLevel=t.logLevel||t.log_level,j.params=Object.assign(Object.assign({},j.params),{log_level:this.logLevel})),this.worker){if(typeof window<"u"&&!window.Worker)throw new Error("Web Worker is not supported");this.workerUrl=t?.workerUrl,j.autoSendHeartbeat=!this.worker}return j}async _reconnectAuth(){await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()}}var Cm=class extends Error{constructor(e,t){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)&&t.icebergType?.includes("CommitState")===!0}isNotFound(){return this.status===404}isConflict(){return this.status===409}isAuthenticationTimeout(){return this.status===419}};function CK(e,t,n){const a=new URL(t,e);if(n)for(const[i,s]of Object.entries(n))s!==void 0&&a.searchParams.set(i,s);return a.toString()}async function TK(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 AK(e){const t=e.fetchImpl??globalThis.fetch;return{async request({method:n,path:a,query:i,body:s,headers:o}){const l=CK(e.baseUrl,a,i),c=await TK(e.auth),h=await t(l,{method:n,headers:{...s?{"Content-Type":"application/json"}:{},...c,...o},body:s?JSON.stringify(s):void 0}),m=await h.text(),p=(h.headers.get("content-type")||"").includes("application/json"),x=p&&m?JSON.parse(m):m;if(!h.ok){const b=p?x:void 0,j=b?.error;throw new Cm(j?.message??`Request failed with status ${h.status}`,{status:h.status,icebergType:j?.type,icebergCode:j?.code,details:b})}return{status:h.status,headers:h.headers,data:x}}}}function fx(e){return e.join("")}var PK=class{constructor(e,t=""){this.client=e,this.prefix=t}async listNamespaces(e){const t=e?{parent:fx(e.namespace)}:void 0;return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces`,query:t})).data.namespaces.map(a=>({namespace:a}))}async createNamespace(e,t){const n={namespace:e.namespace,properties: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/${fx(e.namespace)}`})}async loadNamespaceMetadata(e){return{properties:(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${fx(e.namespace)}`})).data.properties}}async namespaceExists(e){try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${fx(e.namespace)}`}),!0}catch(t){if(t instanceof Cm&&t.status===404)return!1;throw t}}async createNamespaceIfNotExists(e,t){try{return await this.createNamespace(e,t)}catch(n){if(n instanceof Cm&&n.status===409)return;throw n}}};function Jd(e){return e.join("")}var EK=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/${Jd(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/${Jd(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/${Jd(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/${Jd(e.namespace)}/tables/${e.name}`,query:{purgeRequested:String(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/${Jd(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/${Jd(e.namespace)}/tables/${e.name}`,headers:t}),!0}catch(n){if(n instanceof Cm&&n.status===404)return!1;throw n}}async createTableIfNotExists(e,t){try{return await this.createTable(e,t)}catch(n){if(n instanceof Cm&&n.status===409)return await this.loadTable({namespace:e.namespace,name:t.name});throw n}}},OK=class{constructor(e){let t="v1";e.catalogName&&(t+=`/${e.catalogName}`);const n=e.baseUrl.endsWith("/")?e.baseUrl:`${e.baseUrl}/`;this.client=AK({baseUrl:n,auth:e.auth,fetchImpl:e.fetch}),this.accessDelegation=e.accessDelegation?.join(","),this.namespaceOps=new PK(this.client,t),this.tableOps=new EK(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)}async 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 Tm(e){"@babel/helpers - typeof";return Tm=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},Tm(e)}function RK(e,t){if(Tm(e)!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(Tm(a)!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function IK(e){var t=RK(e,"string");return Tm(t)=="symbol"?t:t+""}function MK(e,t,n){return(t=IK(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gA(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function qe(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?gA(Object(n),!0).forEach(function(a){MK(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gA(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}var Bv=class extends Error{constructor(e,t="storage",n,a){super(e),this.__isStorageError=!0,this.namespace=t,this.name=t==="vectors"?"StorageVectorsError":"StorageError",this.status=n,this.statusCode=a}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}};function Fv(e){return typeof e=="object"&&e!==null&&"__isStorageError"in e}var Oj=class extends Bv{constructor(e,t,n,a="storage",i){super(e,a,t,n),this.name=a==="vectors"?"StorageVectorsApiError":"StorageApiError",this.status=t,this.statusCode=n,this.code=i}toJSON(){return qe(qe({},super.toJSON()),{},{code:this.code})}},DI=class extends Bv{constructor(e,t,n="storage"){super(e,n),this.name=n==="vectors"?"StorageVectorsUnknownError":"StorageUnknownError",this.originalError=t}};function Sy(e,t,n){const a=qe({},e),i=t.toLowerCase();for(const s of Object.keys(a))s.toLowerCase()===i&&delete a[s];return a[i]=n,a}function LK(e){const t={};for(const[n,a]of Object.entries(e))t[n.toLowerCase()]=a;return t}const DK=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),BK=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)},Rj=e=>{if(Array.isArray(e))return e.map(n=>Rj(n));if(typeof e=="function"||e!==Object(e))return e;const t={};return Object.entries(e).forEach(([n,a])=>{const i=n.replace(/([-_][a-z])/gi,s=>s.toUpperCase().replace(/[-_]/g,""));t[i]=Rj(a)}),t},FK=e=>!e||typeof e!="string"||e.length===0||e.length>100||e.trim()!==e||e.includes("/")||e.includes("\\")?!1:/^[\w!.\*'() &$@=;:+,?-]+$/.test(e),BI=e=>e.split("/").map(encodeURIComponent).join("/"),xA=e=>{if(typeof e=="object"&&e!==null){const t=e;if(typeof t.msg=="string")return t.msg;if(typeof t.message=="string")return t.message;if(typeof t.error_description=="string")return t.error_description;if(typeof t.error=="string")return t.error;if(typeof t.error=="object"&&t.error!==null){const n=t.error;if(typeof n.message=="string")return n.message}}return JSON.stringify(e)},zK=async(e,t,n,a)=>{if(e!==null&&typeof e=="object"&&"json"in e&&typeof e.json=="function"){const i=e;let s=parseInt(String(i.status),10);Number.isFinite(s)||(s=500),i.json().then(o=>{const l=o?.statusCode||o?.code||s+"";t(new Oj(xA(o),s,l,a,o?.code))}).catch(()=>{const o=s+"";t(new Oj(i.statusText||`HTTP ${s} error`,s,o,a))})}else t(new DI(xA(e),e,a))},$K=(e,t,n,a)=>{const i={method:e,headers:t?.headers||{}};if(e==="GET"||e==="HEAD"||!a)return qe(qe({},i),n);if(BK(a)){var s;const o=t?.headers||{};let l;for(const[c,h]of Object.entries(o))c.toLowerCase()==="content-type"&&(l=h);i.headers=Sy(o,"Content-Type",(s=l)!==null&&s!==void 0?s:"application/json"),i.body=JSON.stringify(a)}else i.body=a;return t?.duplex&&(i.duplex=t.duplex),qe(qe({},i),n)};async function If(e,t,n,a,i,s,o){return new Promise((l,c)=>{e(n,$K(t,a,i,s)).then(h=>{if(!h.ok)throw h;if(a?.noResolveJson)return h;if(o==="vectors"){const m=h.headers.get("content-type");if(h.headers.get("content-length")==="0"||h.status===204)return{};if(!m||!m.includes("application/json"))return{}}return h.json()}).then(h=>l(h)).catch(h=>zK(h,c,a,o))})}function FI(e="storage"){return{get:async(t,n,a,i)=>If(t,"GET",n,a,i,void 0,e),post:async(t,n,a,i,s)=>If(t,"POST",n,i,s,a,e),put:async(t,n,a,i,s)=>If(t,"PUT",n,i,s,a,e),head:async(t,n,a,i)=>If(t,"HEAD",n,qe(qe({},a),{},{noResolveJson:!0}),i,void 0,e),remove:async(t,n,a,i,s)=>If(t,"DELETE",n,i,s,a,e)}}const HK=FI("storage"),{get:Am,post:xi,put:Ij,head:WK,remove:Pm}=HK,xa=FI("vectors");var oh=class{constructor(e,t={},n,a="storage"){this.shouldThrowOnError=!1,this.url=e,this.headers=LK(t),this.fetch=DK(n),this.namespace=a}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(e,t){return this.headers=Sy(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(Fv(n))return{data:null,error:n};throw n}}};let zI;zI=Symbol.toStringTag;var VK=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[zI]="StreamDownloadBuilder",this.promise=null}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 e.downloadFn()).body,error:null}}catch(t){if(e.shouldThrowOnError)throw t;if(Fv(t))return{data:null,error:t};throw t}}};let $I;$I=Symbol.toStringTag;var UK=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[$I]="BlobDownloadBuilder",this.promise=null}asStream(){return new VK(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(Fv(t))return{data:null,error:t};throw t}}};const Tw={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},yA={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};var qK=class extends oh{constructor(e,t={},n,a){super(e,t,a,"storage"),this.bucketId=n}async uploadOrUpdate(e,t,n,a){var i=this;return i.handleOperation(async()=>{let s;const o=qe(qe({},yA),a);let l=qe(qe({},i.headers),e==="POST"&&{"x-upsert":String(o.upsert)});const c=o.metadata;if(typeof Blob<"u"&&n instanceof Blob?(s=new FormData,s.append("cacheControl",o.cacheControl),c&&s.append("metadata",i.encodeMetadata(c)),s.append("",n)):typeof FormData<"u"&&n instanceof FormData?(s=n,s.has("cacheControl")||s.append("cacheControl",o.cacheControl),c&&!s.has("metadata")&&s.append("metadata",i.encodeMetadata(c))):(s=n,l["cache-control"]=`max-age=${o.cacheControl}`,l["content-type"]=o.contentType,c&&(l["x-metadata"]=i.toBase64(i.encodeMetadata(c))),(typeof ReadableStream<"u"&&s instanceof ReadableStream||s&&typeof s=="object"&&"pipe"in s&&typeof s.pipe=="function")&&!o.duplex&&(o.duplex="half")),a?.headers)for(const[x,b]of Object.entries(a.headers))l=Sy(l,x,b);const h=i._removeEmptyFolders(t),m=i._getFinalPath(h),p=await(e=="PUT"?Ij:xi)(i.fetch,`${i.url}/object/${m}`,s,qe({headers:l},o?.duplex?{duplex:o.duplex}:{}));return{path:h,id:p.Id,fullPath:p.Key}})}async upload(e,t,n){return this.uploadOrUpdate("POST",e,t,n)}async uploadToSignedUrl(e,t,n,a){var i=this;const s=i._removeEmptyFolders(e),o=i._getFinalPath(s),l=new URL(i.url+`/object/upload/sign/${o}`);return l.searchParams.set("token",t),i.handleOperation(async()=>{let c;const h=qe(qe({},yA),a);let m=qe(qe({},i.headers),{"x-upsert":String(h.upsert)});const p=h.metadata;if(typeof Blob<"u"&&n instanceof Blob?(c=new FormData,c.append("cacheControl",h.cacheControl),p&&c.append("metadata",i.encodeMetadata(p)),c.append("",n)):typeof FormData<"u"&&n instanceof FormData?(c=n,c.has("cacheControl")||c.append("cacheControl",h.cacheControl),p&&!c.has("metadata")&&c.append("metadata",i.encodeMetadata(p))):(c=n,m["cache-control"]=`max-age=${h.cacheControl}`,m["content-type"]=h.contentType,p&&(m["x-metadata"]=i.toBase64(i.encodeMetadata(p))),(typeof ReadableStream<"u"&&c instanceof ReadableStream||c&&typeof c=="object"&&"pipe"in c&&typeof c.pipe=="function")&&!h.duplex&&(h.duplex="half")),a?.headers)for(const[x,b]of Object.entries(a.headers))m=Sy(m,x,b);return{path:s,fullPath:(await Ij(i.fetch,l.toString(),c,qe({headers:m},h?.duplex?{duplex:h.duplex}:{}))).Key}})}async createSignedUploadUrl(e,t){var n=this;return n.handleOperation(async()=>{let a=n._getFinalPath(e);const i=qe({},n.headers);t?.upsert&&(i["x-upsert"]="true");const s=await xi(n.fetch,`${n.url}/object/upload/sign/${a}`,{},{headers:i}),o=new URL(n.url+s.url),l=o.searchParams.get("token");if(!l)throw new Bv("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 a=this;return a.handleOperation(async()=>await xi(a.fetch,`${a.url}/object/move`,{bucketId:a.bucketId,sourceKey:e,destinationKey:t,destinationBucket:n?.destinationBucket},{headers:a.headers}))}async copy(e,t,n){var a=this;return a.handleOperation(async()=>({path:(await xi(a.fetch,`${a.url}/object/copy`,{bucketId:a.bucketId,sourceKey:e,destinationKey:t,destinationBucket:n?.destinationBucket},{headers:a.headers})).Key}))}async createSignedUrl(e,t,n){var a=this;return a.handleOperation(async()=>{let i=a._getFinalPath(e);const s=typeof n?.transform=="object"&&n.transform!==null&&Object.keys(n.transform).length>0;let o=await xi(a.fetch,`${a.url}/object/sign/${i}`,qe({expiresIn:t},s?{transform:n.transform}:{}),{headers:a.headers});const l=new URLSearchParams;n?.download&&l.set("download",n.download===!0?"":n.download),n?.cacheNonce!=null&&l.set("cacheNonce",String(n.cacheNonce));const c=l.toString();return{signedUrl:encodeURI(`${a.url}${o.signedURL}${c?`&${c}`:""}`)}})}async createSignedUrls(e,t,n){var a=this;return a.handleOperation(async()=>{const i=await xi(a.fetch,`${a.url}/object/sign/${a.bucketId}`,{expiresIn:t,paths:e},{headers:a.headers}),s=new URLSearchParams;n?.download&&s.set("download",n.download===!0?"":n.download),n?.cacheNonce!=null&&s.set("cacheNonce",String(n.cacheNonce));const o=s.toString();return i.map(l=>qe(qe({},l),{},{signedUrl:l.signedURL?encodeURI(`${a.url}${l.signedURL}${o?`&${o}`:""}`):null}))})}download(e,t,n){const a=typeof t?.transform=="object"&&t.transform!==null&&Object.keys(t.transform).length>0?"render/image/authenticated":"object",i=new URLSearchParams;t?.transform&&this.applyTransformOptsToQuery(i,t.transform),t?.cacheNonce!=null&&i.set("cacheNonce",String(t.cacheNonce));const s=i.toString(),o=this._getFinalPath(e),l=()=>Am(this.fetch,`${this.url}/${a}/${o}${s?`?${s}`:""}`,{headers:this.headers,noResolveJson:!0},n);return new UK(l,this.shouldThrowOnError)}async info(e){var t=this;const n=t._getFinalPath(e);return t.handleOperation(async()=>Rj(await Am(t.fetch,`${t.url}/object/info/${n}`,{headers:t.headers})))}async exists(e){var t=this;const n=t._getFinalPath(e);try{return await WK(t.fetch,`${t.url}/object/${n}`,{headers:t.headers}),{data:!0,error:null}}catch(i){if(t.shouldThrowOnError)throw i;if(Fv(i)){var a;const s=i instanceof Oj?i.status:i instanceof DI?(a=i.originalError)===null||a===void 0?void 0:a.status:void 0;if(s!==void 0&&[400,404].includes(s))return{data:!1,error:i}}throw i}}getPublicUrl(e,t){const n=this._getFinalPath(e),a=new URLSearchParams;t?.download&&a.set("download",t.download===!0?"":t.download),t?.transform&&this.applyTransformOptsToQuery(a,t.transform),t?.cacheNonce!=null&&a.set("cacheNonce",String(t.cacheNonce));const i=a.toString(),s=typeof t?.transform=="object"&&t.transform!==null&&Object.keys(t.transform).length>0?"render/image":"object";return{data:{publicUrl:encodeURI(`${this.url}/${s}/public/${n}`)+(i?`?${i}`:"")}}}async remove(e){var t=this;return t.handleOperation(async()=>await Pm(t.fetch,`${t.url}/object/${t.bucketId}`,{prefixes:e},{headers:t.headers}))}async purgeCache(e,t,n){var a=this;return a.handleOperation(async()=>{const i=BI(a._getFinalPath(e)),s=new URLSearchParams;t?.transformations&&s.set("transformations","true");const o=s.toString();return await Pm(a.fetch,`${a.url}/cdn/${i}${o?`?${o}`:""}`,{},{headers:a.headers},n)})}async list(e,t,n){var a=this;return a.handleOperation(async()=>{const i=t?.sortBy?qe(qe({},Tw.sortBy),t.sortBy):Tw.sortBy,s=qe(qe(qe({},Tw),t),{},{sortBy:i,prefix:e||""});return await xi(a.fetch,`${a.url}/object/list/${a.bucketId}`,s,{headers:a.headers},n)})}async listV2(e,t){var n=this;return n.handleOperation(async()=>{const a=qe({},e);return await xi(n.fetch,`${n.url}/object/list-v2/${n.bucketId}`,a,{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 GK="2.112.4",sp={"X-Client-Info":`storage-js/${GK}`};var KK=class extends oh{constructor(e,t={},n,a){const i=new URL(e);a?.useNewHostname&&/supabase\.(co|in|red)$/.test(i.hostname)&&!i.hostname.includes("storage.supabase.")&&(i.hostname=i.hostname.replace("supabase.","storage.supabase."));const s=i.href.replace(/\/$/,""),o=qe(qe({},sp),t);super(s,o,n,"storage")}async listBuckets(e){var t=this;return t.handleOperation(async()=>{const n=t.listBucketOptionsToQueryString(e);return await Am(t.fetch,`${t.url}/bucket${n}`,{headers:t.headers})})}async getBucket(e){var t=this;return t.handleOperation(async()=>await Am(t.fetch,`${t.url}/bucket/${e}`,{headers:t.headers}))}async createBucket(e,t={public:!1}){var n=this;return n.handleOperation(async()=>await xi(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 Ij(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 xi(t.fetch,`${t.url}/bucket/${e}/empty`,{},{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await Pm(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}async purgeBucketCache(e,t,n){var a=this;return a.handleOperation(async()=>{const i=new URLSearchParams;t?.transformations&&i.set("transformations","true");const s=i.toString();return await Pm(a.fetch,`${a.url}/cdn/${BI(e)}${s?`?${s}`:""}`,{},{headers:a.headers},n)})}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():""}},ZK=class extends oh{constructor(e,t={},n){const a=e.replace(/\/$/,""),i=qe(qe({},sp),t);super(a,i,n,"storage")}async createBucket(e){var t=this;return t.handleOperation(async()=>await xi(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?.limit!==void 0&&n.set("limit",e.limit.toString()),e?.offset!==void 0&&n.set("offset",e.offset.toString()),e?.sortColumn&&n.set("sortColumn",e.sortColumn),e?.sortOrder&&n.set("sortOrder",e.sortOrder),e?.search&&n.set("search",e.search);const a=n.toString(),i=a?`${t.url}/bucket?${a}`:`${t.url}/bucket`;return await Am(t.fetch,i,{headers:t.headers})})}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await Pm(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}from(e){var t=this;if(!FK(e))throw new Bv("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 OK({baseUrl:this.url,catalogName:e,auth:{type:"custom",getHeaders:async()=>t.headers},fetch:this.fetch}),a=this.shouldThrowOnError;return new Proxy(n,{get(i,s){const o=i[s];return typeof o!="function"?o:async(...l)=>{try{return{data:await o.apply(i,l),error:null}}catch(c){if(a)throw c;return{data:null,error:c}}}}})}},YK=class extends oh{constructor(e,t={},n){const a=e.replace(/\/$/,""),i=qe(qe({},sp),{},{"Content-Type":"application/json"},t);super(a,i,n,"vectors")}async createIndex(e){var t=this;return t.handleOperation(async()=>await xa.post(t.fetch,`${t.url}/CreateIndex`,e,{headers:t.headers})||{})}async getIndex(e,t){var n=this;return n.handleOperation(async()=>await xa.post(n.fetch,`${n.url}/GetIndex`,{vectorBucketName:e,indexName:t},{headers:n.headers}))}async listIndexes(e){var t=this;return t.handleOperation(async()=>await xa.post(t.fetch,`${t.url}/ListIndexes`,e,{headers:t.headers}))}async deleteIndex(e,t){var n=this;return n.handleOperation(async()=>await xa.post(n.fetch,`${n.url}/DeleteIndex`,{vectorBucketName:e,indexName:t},{headers:n.headers})||{})}},JK=class extends oh{constructor(e,t={},n){const a=e.replace(/\/$/,""),i=qe(qe({},sp),{},{"Content-Type":"application/json"},t);super(a,i,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 xa.post(t.fetch,`${t.url}/PutVectors`,e,{headers:t.headers})||{})}async getVectors(e){var t=this;return t.handleOperation(async()=>await xa.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");if(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 xa.post(t.fetch,`${t.url}/ListVectors`,e,{headers:t.headers}))}async queryVectors(e){var t=this;return t.handleOperation(async()=>await xa.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 xa.post(t.fetch,`${t.url}/DeleteVectors`,e,{headers:t.headers})||{})}},XK=class extends oh{constructor(e,t={},n){const a=e.replace(/\/$/,""),i=qe(qe({},sp),{},{"Content-Type":"application/json"},t);super(a,i,n,"vectors")}async createBucket(e){var t=this;return t.handleOperation(async()=>await xa.post(t.fetch,`${t.url}/CreateVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}async getBucket(e){var t=this;return t.handleOperation(async()=>await xa.post(t.fetch,`${t.url}/GetVectorBucket`,{vectorBucketName:e},{headers:t.headers}))}async listBuckets(e={}){var t=this;return t.handleOperation(async()=>await xa.post(t.fetch,`${t.url}/ListVectorBuckets`,e,{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await xa.post(t.fetch,`${t.url}/DeleteVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}},QK=class extends XK{constructor(e,t={}){super(e,t.headers||{},t.fetch)}from(e){return new eZ(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)}},eZ=class extends YK{constructor(e,t,n,a){super(e,t,a),this.vectorBucketName=n}async createIndex(e){var t=()=>super.createIndex,n=this;return t().call(n,qe(qe({},e),{},{vectorBucketName:n.vectorBucketName}))}async listIndexes(e={}){var t=()=>super.listIndexes,n=this;return t().call(n,qe(qe({},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 tZ(this.url,this.headers,this.vectorBucketName,e,this.fetch)}},tZ=class extends JK{constructor(e,t,n,a,i){super(e,t,i),this.vectorBucketName=n,this.indexName=a}async putVectors(e){var t=()=>super.putVectors,n=this;return t().call(n,qe(qe({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async getVectors(e){var t=()=>super.getVectors,n=this;return t().call(n,qe(qe({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async listVectors(e={}){var t=()=>super.listVectors,n=this;return t().call(n,qe(qe({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async queryVectors(e){var t=()=>super.queryVectors,n=this;return t().call(n,qe(qe({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async deleteVectors(e){var t=()=>super.deleteVectors,n=this;return t().call(n,qe(qe({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}},nZ=class extends KK{constructor(e,t={},n,a){super(e,t,n,a)}from(e){return new qK(this.url,this.headers,e,this.fetch)}get vectors(){return new QK(this.url+"/vector",{headers:this.headers,fetch:this.fetch})}get analytics(){return new ZK(this.url+"/iceberg",this.headers,this.fetch)}};const rZ="2.30.0",aZ={"X-Client-Info":`supabase-js/${rZ}`};var mx={exports:{}},vA;function iZ(){return vA||(vA=1,(function(e,t){var n=typeof globalThis<"u"&&globalThis||typeof self<"u"&&self||typeof ix<"u"&&ix,a=(function(){function s(){this.fetch=!1,this.DOMException=n.DOMException}return s.prototype=n,new s})();(function(s){(function(o){var l=typeof s<"u"&&s||typeof self<"u"&&self||typeof ix<"u"&&ix||{},c={searchParams:"URLSearchParams"in l,iterable:"Symbol"in l&&"iterator"in Symbol,blob:"FileReader"in l&&"Blob"in l&&(function(){try{return new Blob,!0}catch{return!1}})(),formData:"FormData"in l,arrayBuffer:"ArrayBuffer"in l};function h(G){return G&&DataView.prototype.isPrototypeOf(G)}if(c.arrayBuffer)var m=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],p=ArrayBuffer.isView||function(G){return G&&m.indexOf(Object.prototype.toString.call(G))>-1};function x(G){if(typeof G!="string"&&(G=String(G)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(G)||G==="")throw new TypeError('Invalid character in header field name: "'+G+'"');return G.toLowerCase()}function b(G){return typeof G!="string"&&(G=String(G)),G}function j(G){var H={next:function(){var Q=G.shift();return{done:Q===void 0,value:Q}}};return c.iterable&&(H[Symbol.iterator]=function(){return H}),H}function N(G){this.map={},G instanceof N?G.forEach(function(H,Q){this.append(Q,H)},this):Array.isArray(G)?G.forEach(function(H){if(H.length!=2)throw new TypeError("Headers constructor: expected name/value pair to be length 2, found"+H.length);this.append(H[0],H[1])},this):G&&Object.getOwnPropertyNames(G).forEach(function(H){this.append(H,G[H])},this)}N.prototype.append=function(G,H){G=x(G),H=b(H);var Q=this.map[G];this.map[G]=Q?Q+", "+H:H},N.prototype.delete=function(G){delete this.map[x(G)]},N.prototype.get=function(G){return G=x(G),this.has(G)?this.map[G]:null},N.prototype.has=function(G){return this.map.hasOwnProperty(x(G))},N.prototype.set=function(G,H){this.map[x(G)]=b(H)},N.prototype.forEach=function(G,H){for(var Q in this.map)this.map.hasOwnProperty(Q)&&G.call(H,this.map[Q],Q,this)},N.prototype.keys=function(){var G=[];return this.forEach(function(H,Q){G.push(Q)}),j(G)},N.prototype.values=function(){var G=[];return this.forEach(function(H){G.push(H)}),j(G)},N.prototype.entries=function(){var G=[];return this.forEach(function(H,Q){G.push([Q,H])}),j(G)},c.iterable&&(N.prototype[Symbol.iterator]=N.prototype.entries);function _(G){if(!G._noBody){if(G.bodyUsed)return Promise.reject(new TypeError("Already read"));G.bodyUsed=!0}}function S(G){return new Promise(function(H,Q){G.onload=function(){H(G.result)},G.onerror=function(){Q(G.error)}})}function A(G){var H=new FileReader,Q=S(H);return H.readAsArrayBuffer(G),Q}function P(G){var H=new FileReader,Q=S(H),W=/charset=([A-Za-z0-9_-]+)/.exec(G.type),ie=W?W[1]:"utf-8";return H.readAsText(G,ie),Q}function I(G){for(var H=new Uint8Array(G),Q=new Array(H.length),W=0;W<H.length;W++)Q[W]=String.fromCharCode(H[W]);return Q.join("")}function O(G){if(G.slice)return G.slice(0);var H=new Uint8Array(G.byteLength);return H.set(new Uint8Array(G)),H.buffer}function M(){return this.bodyUsed=!1,this._initBody=function(G){this.bodyUsed=this.bodyUsed,this._bodyInit=G,G?typeof G=="string"?this._bodyText=G:c.blob&&Blob.prototype.isPrototypeOf(G)?this._bodyBlob=G:c.formData&&FormData.prototype.isPrototypeOf(G)?this._bodyFormData=G:c.searchParams&&URLSearchParams.prototype.isPrototypeOf(G)?this._bodyText=G.toString():c.arrayBuffer&&c.blob&&h(G)?(this._bodyArrayBuffer=O(G.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):c.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(G)||p(G))?this._bodyArrayBuffer=O(G):this._bodyText=G=Object.prototype.toString.call(G):(this._noBody=!0,this._bodyText=""),this.headers.get("content-type")||(typeof G=="string"?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):c.searchParams&&URLSearchParams.prototype.isPrototypeOf(G)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},c.blob&&(this.blob=function(){var G=_(this);if(G)return G;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer){var G=_(this);return G||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer))}else{if(c.blob)return this.blob().then(A);throw new Error("could not read as ArrayBuffer")}},this.text=function(){var G=_(this);if(G)return G;if(this._bodyBlob)return P(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(I(this._bodyArrayBuffer));if(this._bodyFormData)throw new Error("could not read FormData body as text");return Promise.resolve(this._bodyText)},c.formData&&(this.formData=function(){return this.text().then(X)}),this.json=function(){return this.text().then(JSON.parse)},this}var z=["CONNECT","DELETE","GET","HEAD","OPTIONS","PATCH","POST","PUT","TRACE"];function $(G){var H=G.toUpperCase();return z.indexOf(H)>-1?H:G}function K(G,H){if(!(this instanceof K))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');H=H||{};var Q=H.body;if(G instanceof K){if(G.bodyUsed)throw new TypeError("Already read");this.url=G.url,this.credentials=G.credentials,H.headers||(this.headers=new N(G.headers)),this.method=G.method,this.mode=G.mode,this.signal=G.signal,!Q&&G._bodyInit!=null&&(Q=G._bodyInit,G.bodyUsed=!0)}else this.url=String(G);if(this.credentials=H.credentials||this.credentials||"same-origin",(H.headers||!this.headers)&&(this.headers=new N(H.headers)),this.method=$(H.method||this.method||"GET"),this.mode=H.mode||this.mode||null,this.signal=H.signal||this.signal||(function(){if("AbortController"in l){var Y=new AbortController;return Y.signal}})(),this.referrer=null,(this.method==="GET"||this.method==="HEAD")&&Q)throw new TypeError("Body not allowed for GET or HEAD requests");if(this._initBody(Q),(this.method==="GET"||this.method==="HEAD")&&(H.cache==="no-store"||H.cache==="no-cache")){var W=/([?&])_=[^&]*/;if(W.test(this.url))this.url=this.url.replace(W,"$1_="+new Date().getTime());else{var ie=/\?/;this.url+=(ie.test(this.url)?"&":"?")+"_="+new Date().getTime()}}}K.prototype.clone=function(){return new K(this,{body:this._bodyInit})};function X(G){var H=new FormData;return G.trim().split("&").forEach(function(Q){if(Q){var W=Q.split("="),ie=W.shift().replace(/\+/g," "),Y=W.join("=").replace(/\+/g," ");H.append(decodeURIComponent(ie),decodeURIComponent(Y))}}),H}function te(G){var H=new N,Q=G.replace(/\r?\n[\t ]+/g," ");return Q.split("\r").map(function(W){return W.indexOf(`
`)===0?W.substr(1,W.length):W}).forEach(function(W){var ie=W.split(":"),Y=ie.shift().trim();if(Y){var V=ie.join(":").trim();try{H.append(Y,V)}catch(re){console.warn("Response "+re.message)}}}),H}M.call(K.prototype);function q(G,H){if(!(this instanceof q))throw new TypeError('Please use the "new" operator, this DOM object constructor cannot be called as a function.');if(H||(H={}),this.type="default",this.status=H.status===void 0?200:H.status,this.status<200||this.status>599)throw new RangeError("Failed to construct 'Response': The status provided (0) is outside the range [200, 599].");this.ok=this.status>=200&&this.status<300,this.statusText=H.statusText===void 0?"":""+H.statusText,this.headers=new N(H.headers),this.url=H.url||"",this._initBody(G)}M.call(q.prototype),q.prototype.clone=function(){return new q(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new N(this.headers),url:this.url})},q.error=function(){var G=new q(null,{status:200,statusText:""});return G.ok=!1,G.status=0,G.type="error",G};var he=[301,302,303,307,308];q.redirect=function(G,H){if(he.indexOf(H)===-1)throw new RangeError("Invalid status code");return new q(null,{status:H,headers:{location:G}})},o.DOMException=l.DOMException;try{new o.DOMException}catch{o.DOMException=function(H,Q){this.message=H,this.name=Q;var W=Error(H);this.stack=W.stack},o.DOMException.prototype=Object.create(Error.prototype),o.DOMException.prototype.constructor=o.DOMException}function ne(G,H){return new Promise(function(Q,W){var ie=new K(G,H);if(ie.signal&&ie.signal.aborted)return W(new o.DOMException("Aborted","AbortError"));var Y=new XMLHttpRequest;function V(){Y.abort()}Y.onload=function(){var ge={statusText:Y.statusText,headers:te(Y.getAllResponseHeaders()||"")};ie.url.indexOf("file://")===0&&(Y.status<200||Y.status>599)?ge.status=200:ge.status=Y.status,ge.url="responseURL"in Y?Y.responseURL:ge.headers.get("X-Request-URL");var Ne="response"in Y?Y.response:Y.responseText;setTimeout(function(){Q(new q(Ne,ge))},0)},Y.onerror=function(){setTimeout(function(){W(new TypeError("Network request failed"))},0)},Y.ontimeout=function(){setTimeout(function(){W(new TypeError("Network request timed out"))},0)},Y.onabort=function(){setTimeout(function(){W(new o.DOMException("Aborted","AbortError"))},0)};function re(ge){try{return ge===""&&l.location.href?l.location.href:ge}catch{return ge}}if(Y.open(ie.method,re(ie.url),!0),ie.credentials==="include"?Y.withCredentials=!0:ie.credentials==="omit"&&(Y.withCredentials=!1),"responseType"in Y&&(c.blob?Y.responseType="blob":c.arrayBuffer&&(Y.responseType="arraybuffer")),H&&typeof H.headers=="object"&&!(H.headers instanceof N||l.Headers&&H.headers instanceof l.Headers)){var be=[];Object.getOwnPropertyNames(H.headers).forEach(function(ge){be.push(x(ge)),Y.setRequestHeader(ge,b(H.headers[ge]))}),ie.headers.forEach(function(ge,Ne){be.indexOf(Ne)===-1&&Y.setRequestHeader(Ne,ge)})}else ie.headers.forEach(function(ge,Ne){Y.setRequestHeader(Ne,ge)});ie.signal&&(ie.signal.addEventListener("abort",V),Y.onreadystatechange=function(){Y.readyState===4&&ie.signal.removeEventListener("abort",V)}),Y.send(typeof ie._bodyInit>"u"?null:ie._bodyInit)})}return ne.polyfill=!0,l.fetch||(l.fetch=ne,l.Headers=N,l.Request=K,l.Response=q),o.Headers=N,o.Request=K,o.Response=q,o.fetch=ne,Object.defineProperty(o,"__esModule",{value:!0}),o})({})})(a),a.fetch.ponyfill=!0,delete a.fetch.polyfill;var i=n.fetch?n:a;t=i.fetch,t.default=i.fetch,t.fetch=i.fetch,t.Headers=i.Headers,t.Request=i.Request,t.Response=i.Response,e.exports=t})(mx,mx.exports)),mx.exports}var zk=iZ();const HI=Qa(zk),sZ=hR({__proto__:null,default:HI},[zk]);var oZ=function(e,t,n,a){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function l(m){try{h(a.next(m))}catch(p){o(p)}}function c(m){try{h(a.throw(m))}catch(p){o(p)}}function h(m){m.done?s(m.value):i(m.value).then(l,c)}h((a=a.apply(e,t||[])).next())})};const lZ=e=>{let t;return e?t=e:typeof fetch>"u"?t=HI:t=fetch,(...n)=>t(...n)},cZ=()=>typeof Headers>"u"?zk.Headers:Headers,dZ=(e,t,n)=>{const a=lZ(n),i=cZ();return(s,o)=>oZ(void 0,void 0,void 0,function*(){var l;const c=(l=yield t())!==null&&l!==void 0?l:e;let h=new i(o?.headers);return h.has("apikey")||h.set("apikey",e),h.has("Authorization")||h.set("Authorization",`Bearer ${c}`),a(s,Object.assign(Object.assign({},o),{headers:h}))})};function uZ(e){return e.replace(/\/$/,"")}function hZ(e,t){const{db:n,auth:a,realtime:i,global:s}=e,{db:o,auth:l,realtime:c,global:h}=t;return{db:Object.assign(Object.assign({},o),n),auth:Object.assign(Object.assign({},l),a),realtime:Object.assign(Object.assign({},c),i),global:Object.assign(Object.assign({},h),s)}}const fZ="modulepreload",mZ=function(e){return"/"+e},bA={},pZ=function(t,n,a){let i=Promise.resolve();if(n&&n.length>0){let h=function(m){return Promise.all(m.map(p=>Promise.resolve(p).then(x=>({status:"fulfilled",value:x}),x=>({status:"rejected",reason:x}))))};var o=h;document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),c=l?.nonce||l?.getAttribute("nonce");i=h(n.map(m=>{if(m=mZ(m),m in bA)return;bA[m]=!0;const p=m.endsWith(".css"),x=p?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${m}"]${x}`))return;const b=document.createElement("link");if(b.rel=p?"stylesheet":fZ,p||(b.as="script"),b.crossOrigin="",b.href=m,c&&b.setAttribute("nonce",c),document.head.appendChild(b),p)return new Promise((j,N)=>{b.addEventListener("load",j),b.addEventListener("error",()=>N(new Error(`Unable to preload CSS for ${m}`)))})}))}function s(l){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=l,window.dispatchEvent(c),!c.defaultPrevented)throw l}return i.then(l=>{for(const c of l||[])c.status==="rejected"&&s(c.reason);return t().catch(s)})};function gZ(e){return Math.round(Date.now()/1e3)+e}function xZ(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){const t=Math.random()*16|0;return(e=="x"?t:t&3|8).toString(16)})}const zs=()=>typeof document<"u",ic={tested:!1,writable:!1},sy=()=>{if(!zs())return!1;try{if(typeof globalThis.localStorage!="object")return!1}catch{return!1}if(ic.tested)return ic.writable;const e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e),globalThis.localStorage.removeItem(e),ic.tested=!0,ic.writable=!0}catch{ic.tested=!0,ic.writable=!1}return ic.writable};function Xr(e,t){var n;t||(t=((n=window?.location)===null||n===void 0?void 0:n.href)||""),e=e.replace(/[\[\]]/g,"\\$&");const a=new RegExp("[?&#]"+e+"(=([^&#]*)|&|#|$)"),i=a.exec(t);return i?i[2]?decodeURIComponent(i[2].replace(/\+/g," ")):"":null}const WI=e=>{let t;return e?t=e:typeof fetch>"u"?t=async(...n)=>await(await pZ(async()=>{const{fetch:a}=await Promise.resolve().then(()=>sZ);return{fetch:a}},[])).fetch(...n):t=fetch,(...n)=>t(...n)},yZ=e=>typeof e=="object"&&e!==null&&"status"in e&&"ok"in e&&"json"in e&&typeof e.json=="function",Mf=async(e,t,n)=>{await e.setItem(t,JSON.stringify(n))},px=async(e,t)=>{const n=await e.getItem(t);if(!n)return null;try{return JSON.parse(n)}catch{return n}},Aw=async(e,t)=>{await e.removeItem(t)};function vZ(e){const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";let n="",a,i,s,o,l,c,h,m=0;for(e=e.replace("-","+").replace("_","/");m<e.length;)o=t.indexOf(e.charAt(m++)),l=t.indexOf(e.charAt(m++)),c=t.indexOf(e.charAt(m++)),h=t.indexOf(e.charAt(m++)),a=o<<2|l>>4,i=(l&15)<<4|c>>2,s=(c&3)<<6|h,n=n+String.fromCharCode(a),c!=64&&i!=0&&(n=n+String.fromCharCode(i)),h!=64&&s!=0&&(n=n+String.fromCharCode(s));return n}class zv{constructor(){this.promise=new zv.promiseConstructor((t,n)=>{this.resolve=t,this.reject=n})}}zv.promiseConstructor=Promise;function wA(e){const t=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i,n=e.split(".");if(n.length!==3)throw new Error("JWT is not valid: not a JWT structure");if(!t.test(n[1]))throw new Error("JWT is not valid: payload is not in base64url format");const a=n[1];return JSON.parse(vZ(a))}function bZ(e){return new Promise(t=>{setTimeout(()=>t(null),e)})}function wZ(e,t){return new Promise((a,i)=>{(async()=>{for(let s=0;s<1/0;s++)try{const o=await e(s);if(!t(s,null,o)){a(o);return}}catch(o){if(!t(s,o)){i(o);return}}})()})}function jZ(e){return("0"+e.toString(16)).substr(-2)}function gx(){const t=new Uint32Array(56);if(typeof crypto>"u"){const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",a=n.length;let i="";for(let s=0;s<56;s++)i+=n.charAt(Math.floor(Math.random()*a));return i}return crypto.getRandomValues(t),Array.from(t,jZ).join("")}async function NZ(e){const n=new TextEncoder().encode(e),a=await crypto.subtle.digest("SHA-256",n),i=new Uint8Array(a);return Array.from(i).map(s=>String.fromCharCode(s)).join("")}function kZ(e){return btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function xx(e){if(typeof crypto>"u")return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),e;const t=await NZ(e);return kZ(t)}const _Z="__stack_guard__",SZ="__",CZ=/__stack_guard__([a-zA-Z0-9_-]+)__/;let jA=!1,$k;function Mj(e){var t,n;$k();let a;try{throw new Error}catch(s){a=s}const i=(n=(t=a.stack)===null||t===void 0?void 0:t.split(`
`))!==null&&n!==void 0?n:[];for(let s=0;s<i.length;s+=1){const l=i[s].match(CZ);if(l&&l[1]===e)return!0}return!1}async function Lj(e,t){await $k();const n=`${_Z}${e}${SZ}`;return await{[n]:async()=>await t()}[n]()}$k=async()=>{jA||(jA=!0,await Lj("ENV_CHECK",async()=>{const e=Mj("ENV_CHECK");return e||console.warn("@supabase/gotrue-js: Stack guards not supported in this environment. Generally not an issue but may point to a very conservative transpilation environment (use ES2017 or above) that implements async/await with generators, or this is a JavaScript engine that does not support async/await stack traces."),e}))};class Hk extends Error{constructor(t,n){super(t),this.__isAuthError=!0,this.name="AuthError",this.status=n}}function Et(e){return typeof e=="object"&&e!==null&&"__isAuthError"in e}class TZ extends Hk{constructor(t,n){super(t,n),this.name="AuthApiError",this.status=n}toJSON(){return{name:this.name,message:this.message,status:this.status}}}function AZ(e){return Et(e)&&e.name==="AuthApiError"}class VI extends Hk{constructor(t,n){super(t),this.name="AuthUnknownError",this.originalError=n}}class lh extends Hk{constructor(t,n,a){super(t),this.name=n,this.status=a}toJSON(){return{name:this.name,message:this.message,status:this.status}}}class Xd extends lh{constructor(){super("Auth session missing!","AuthSessionMissingError",400)}}class Pw extends lh{constructor(){super("Auth session or user missing","AuthInvalidTokenResponseError",500)}}class yx extends lh{constructor(t){super(t,"AuthInvalidCredentialsError",400)}}class Bs extends lh{constructor(t,n=null){super(t,"AuthImplicitGrantRedirectError",500),this.details=null,this.details=n}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}class Ew extends lh{constructor(t,n=null){super(t,"AuthPKCEGrantCodeExchangeError",500),this.details=null,this.details=n}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}class Dj extends lh{constructor(t,n){super(t,"AuthRetryableFetchError",n)}}function NA(e){return Et(e)&&e.name==="AuthRetryableFetchError"}var PZ=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,a=Object.getOwnPropertySymbols(e);i<a.length;i++)t.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(n[a[i]]=e[a[i]]);return n};const Qf=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),EZ=[502,503,504];async function kA(e){if(!yZ(e))throw new Dj(Qf(e),0);if(EZ.includes(e.status))throw new Dj(Qf(e),e.status);let t;try{t=await e.json()}catch(n){throw new VI(Qf(n),n)}throw new TZ(Qf(t),e.status||500)}const OZ=(e,t,n,a)=>{const i={method:e,headers:t?.headers||{}};return e==="GET"?i:(i.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},t?.headers),i.body=JSON.stringify(a),Object.assign(Object.assign({},i),n))};async function Lt(e,t,n,a){var i;const s=Object.assign({},a?.headers);a?.jwt&&(s.Authorization=`Bearer ${a.jwt}`);const o=(i=a?.query)!==null&&i!==void 0?i:{};a?.redirectTo&&(o.redirect_to=a.redirectTo);const l=Object.keys(o).length?"?"+new URLSearchParams(o).toString():"",c=await RZ(e,t,n+l,{headers:s,noResolveJson:a?.noResolveJson},{},a?.body);return a?.xform?a?.xform(c):{data:Object.assign({},c),error:null}}async function RZ(e,t,n,a,i,s){const o=OZ(t,a,i,s);let l;try{l=await e(n,o)}catch(c){throw console.error(c),new Dj(Qf(c),0)}if(l.ok||await kA(l),a?.noResolveJson)return l;try{return await l.json()}catch(c){await kA(c)}}function al(e){var t;let n=null;DZ(e)&&(n=Object.assign({},e),n.expires_at=gZ(e.expires_in));const a=(t=e.user)!==null&&t!==void 0?t:e;return{data:{session:n,user:a},error:null}}function bc(e){var t;return{data:{user:(t=e.user)!==null&&t!==void 0?t:e},error:null}}function IZ(e){return{data:e,error:null}}function MZ(e){const{action_link:t,email_otp:n,hashed_token:a,redirect_to:i,verification_type:s}=e,o=PZ(e,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),l={action_link:t,email_otp:n,hashed_token:a,redirect_to:i,verification_type:s},c=Object.assign({},o);return{data:{properties:l,user:c},error:null}}function LZ(e){return e}function DZ(e){return e.access_token&&e.refresh_token&&e.expires_in}var BZ=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,a=Object.getOwnPropertySymbols(e);i<a.length;i++)t.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(n[a[i]]=e[a[i]]);return n};class FZ{constructor({url:t="",headers:n={},fetch:a}){this.url=t,this.headers=n,this.fetch=WI(a),this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)}}async signOut(t,n="global"){try{return await Lt(this.fetch,"POST",`${this.url}/logout?scope=${n}`,{headers:this.headers,jwt:t,noResolveJson:!0}),{data:null,error:null}}catch(a){if(Et(a))return{data:null,error:a};throw a}}async inviteUserByEmail(t,n={}){try{return await Lt(this.fetch,"POST",`${this.url}/invite`,{body:{email:t,data:n.data},headers:this.headers,redirectTo:n.redirectTo,xform:bc})}catch(a){if(Et(a))return{data:{user:null},error:a};throw a}}async generateLink(t){try{const{options:n}=t,a=BZ(t,["options"]),i=Object.assign(Object.assign({},a),n);return"newEmail"in a&&(i.new_email=a?.newEmail,delete i.newEmail),await Lt(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:i,headers:this.headers,xform:MZ,redirectTo:n?.redirectTo})}catch(n){if(Et(n))return{data:{properties:null,user:null},error:n};throw n}}async createUser(t){try{return await Lt(this.fetch,"POST",`${this.url}/admin/users`,{body:t,headers:this.headers,xform:bc})}catch(n){if(Et(n))return{data:{user:null},error:n};throw n}}async listUsers(t){var n,a,i,s,o,l,c;try{const h={nextPage:null,lastPage:0,total:0},m=await Lt(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(a=(n=t?.page)===null||n===void 0?void 0:n.toString())!==null&&a!==void 0?a:"",per_page:(s=(i=t?.perPage)===null||i===void 0?void 0:i.toString())!==null&&s!==void 0?s:""},xform:LZ});if(m.error)throw m.error;const p=await m.json(),x=(o=m.headers.get("x-total-count"))!==null&&o!==void 0?o:0,b=(c=(l=m.headers.get("link"))===null||l===void 0?void 0:l.split(","))!==null&&c!==void 0?c:[];return b.length>0&&(b.forEach(j=>{const N=parseInt(j.split(";")[0].split("=")[1].substring(0,1)),_=JSON.parse(j.split(";")[1].split("=")[1]);h[`${_}Page`]=N}),h.total=parseInt(x)),{data:Object.assign(Object.assign({},p),h),error:null}}catch(h){if(Et(h))return{data:{users:[]},error:h};throw h}}async getUserById(t){try{return await Lt(this.fetch,"GET",`${this.url}/admin/users/${t}`,{headers:this.headers,xform:bc})}catch(n){if(Et(n))return{data:{user:null},error:n};throw n}}async updateUserById(t,n){try{return await Lt(this.fetch,"PUT",`${this.url}/admin/users/${t}`,{body:n,headers:this.headers,xform:bc})}catch(a){if(Et(a))return{data:{user:null},error:a};throw a}}async deleteUser(t,n=!1){try{return await Lt(this.fetch,"DELETE",`${this.url}/admin/users/${t}`,{headers:this.headers,body:{should_soft_delete:n},xform:bc})}catch(a){if(Et(a))return{data:{user:null},error:a};throw a}}async _listFactors(t){try{const{data:n,error:a}=await Lt(this.fetch,"GET",`${this.url}/admin/users/${t.userId}/factors`,{headers:this.headers,xform:i=>({data:{factors:i},error:null})});return{data:n,error:a}}catch(n){if(Et(n))return{data:null,error:n};throw n}}async _deleteFactor(t){try{return{data:await Lt(this.fetch,"DELETE",`${this.url}/admin/users/${t.userId}/factors/${t.id}`,{headers:this.headers}),error:null}}catch(n){if(Et(n))return{data:null,error:n};throw n}}}const zZ="2.43.1",$Z="http://localhost:9999",HZ="supabase.auth.token",WZ={"X-Client-Info":`gotrue-js/${zZ}`},_A=10,SA={getItem:e=>sy()?globalThis.localStorage.getItem(e):null,setItem:(e,t)=>{sy()&&globalThis.localStorage.setItem(e,t)},removeItem:e=>{sy()&&globalThis.localStorage.removeItem(e)}};function VZ(){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)}}VZ();const UZ={url:$Z,storageKey:HZ,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:WZ,flowType:"implicit",debug:!1},vx=30*1e3,CA=3;class Em{constructor(t){var n;this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.broadcastChannel=null,this.instanceID=Em.nextInstanceID,Em.nextInstanceID+=1,this.instanceID>0&&zs()&&console.warn("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.");const a=Object.assign(Object.assign({},UZ),t);if(this.logDebugMessages=a.debug,this.inMemorySession=null,this.storageKey=a.storageKey,this.autoRefreshToken=a.autoRefreshToken,this.persistSession=a.persistSession,this.storage=a.storage||SA,this.admin=new FZ({url:a.url,headers:a.headers,fetch:a.fetch}),this.url=a.url,this.headers=a.headers,this.fetch=WI(a.fetch),this.detectSessionInUrl=a.detectSessionInUrl,this.flowType=a.flowType,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)},this.persistSession&&this.storage===SA&&!sy()&&console.warn(`No storage option exists to persist the session, which may result in unexpected behavior when using auth.
If you want to set persistSession to true, please provide a storage option or you may set persistSession to false to disable this warning.`),zs()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(i){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",i)}(n=this.broadcastChannel)===null||n===void 0||n.addEventListener("message",async i=>{this._debug("received broadcast notification from other tab or client",i),await this._notifyAllSubscribers(i.data.event,i.data.session,!1)})}this.initialize()}_debug(...t){return this.logDebugMessages&&console.log(`GoTrueClient@${this.instanceID} ${new Date().toISOString()}`,...t),this}initialize(){return this.initializePromise?this.initializePromise:this._initialize()}async _initialize(){if(this.initializePromise)throw new Error("Double call of #_initialize()");return this.initializePromise=Lj("_initialize",async()=>{try{const t=zs()?await this._isPKCEFlow():!1;if(this._debug("#_initialize()","begin","is PKCE flow",t),t||this.detectSessionInUrl&&this._isImplicitGrantFlow()){const{data:n,error:a}=await this._getSessionFromUrl(t);if(a)return this._debug("#_initialize()","error detecting session from URL",a),await this._removeSession(),{error:a};const{session:i,redirectType:s}=n;return this._debug("#_initialize()","detected session in URL",i,"redirect type",s),await this._saveSession(i),setTimeout(async()=>{s==="recovery"?await this._notifyAllSubscribers("PASSWORD_RECOVERY",i):await this._notifyAllSubscribers("SIGNED_IN",i)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(t){return Et(t)?{error:t}:{error:new VI("Unexpected error during initialization",t)}}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}),await this.initializePromise}async signUp(t){var n,a,i;try{await this._removeSession();let s;if("email"in t){const{email:m,password:p,options:x}=t;let b=null,j=null;if(this.flowType==="pkce"){const N=gx();await Mf(this.storage,`${this.storageKey}-code-verifier`,N),b=await xx(N),j=N===b?"plain":"s256"}s=await Lt(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:x?.emailRedirectTo,body:{email:m,password:p,data:(n=x?.data)!==null&&n!==void 0?n:{},gotrue_meta_security:{captcha_token:x?.captchaToken},code_challenge:b,code_challenge_method:j},xform:al})}else if("phone"in t){const{phone:m,password:p,options:x}=t;s=await Lt(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:m,password:p,data:(a=x?.data)!==null&&a!==void 0?a:{},channel:(i=x?.channel)!==null&&i!==void 0?i:"sms",gotrue_meta_security:{captcha_token:x?.captchaToken}},xform:al})}else throw new yx("You must provide either an email or phone number and a password");const{data:o,error:l}=s;if(l||!o)return{data:{user:null,session:null},error:l};const c=o.session,h=o.user;return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",c)),{data:{user:h,session:c},error:null}}catch(s){if(Et(s))return{data:{user:null,session:null},error:s};throw s}}async signInWithPassword(t){try{await this._removeSession();let n;if("email"in t){const{email:s,password:o,options:l}=t;n=await Lt(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:s,password:o,gotrue_meta_security:{captcha_token:l?.captchaToken}},xform:al})}else if("phone"in t){const{phone:s,password:o,options:l}=t;n=await Lt(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:s,password:o,gotrue_meta_security:{captcha_token:l?.captchaToken}},xform:al})}else throw new yx("You must provide either an email or phone number and a password");const{data:a,error:i}=n;return i?{data:{user:null,session:null},error:i}:!a||!a.session||!a.user?{data:{user:null,session:null},error:new Pw}:(a.session&&(await this._saveSession(a.session),await this._notifyAllSubscribers("SIGNED_IN",a.session)),{data:{user:a.user,session:a.session},error:i})}catch(n){if(Et(n))return{data:{user:null,session:null},error:n};throw n}}async signInWithOAuth(t){var n,a,i,s;return await this._removeSession(),await this._handleProviderSignIn(t.provider,{redirectTo:(n=t.options)===null||n===void 0?void 0:n.redirectTo,scopes:(a=t.options)===null||a===void 0?void 0:a.scopes,queryParams:(i=t.options)===null||i===void 0?void 0:i.queryParams,skipBrowserRedirect:(s=t.options)===null||s===void 0?void 0:s.skipBrowserRedirect})}async exchangeCodeForSession(t){const n=await px(this.storage,`${this.storageKey}-code-verifier`),{data:a,error:i}=await Lt(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:t,code_verifier:n},xform:al});return await Aw(this.storage,`${this.storageKey}-code-verifier`),i?{data:{user:null,session:null},error:i}:!a||!a.session||!a.user?{data:{user:null,session:null},error:new Pw}:(a.session&&(await this._saveSession(a.session),await this._notifyAllSubscribers("SIGNED_IN",a.session)),{data:a,error:i})}async signInWithIdToken(t){await this._removeSession();try{const{options:n,provider:a,token:i,access_token:s,nonce:o}=t,l=await Lt(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:a,id_token:i,access_token:s,nonce:o,gotrue_meta_security:{captcha_token:n?.captchaToken}},xform:al}),{data:c,error:h}=l;return h?{data:{user:null,session:null},error:h}:!c||!c.session||!c.user?{data:{user:null,session:null},error:new Pw}:(c.session&&(await this._saveSession(c.session),await this._notifyAllSubscribers("SIGNED_IN",c.session)),{data:c,error:h})}catch(n){if(Et(n))return{data:{user:null,session:null},error:n};throw n}}async signInWithOtp(t){var n,a,i,s,o;try{if(await this._removeSession(),"email"in t){const{email:l,options:c}=t;let h=null,m=null;if(this.flowType==="pkce"){const x=gx();await Mf(this.storage,`${this.storageKey}-code-verifier`,x),h=await xx(x),m=x===h?"plain":"s256"}const{error:p}=await Lt(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:l,data:(n=c?.data)!==null&&n!==void 0?n:{},create_user:(a=c?.shouldCreateUser)!==null&&a!==void 0?a:!0,gotrue_meta_security:{captcha_token:c?.captchaToken},code_challenge:h,code_challenge_method:m},redirectTo:c?.emailRedirectTo});return{data:{user:null,session:null},error:p}}if("phone"in t){const{phone:l,options:c}=t,{data:h,error:m}=await Lt(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:l,data:(i=c?.data)!==null&&i!==void 0?i:{},create_user:(s=c?.shouldCreateUser)!==null&&s!==void 0?s:!0,gotrue_meta_security:{captcha_token:c?.captchaToken},channel:(o=c?.channel)!==null&&o!==void 0?o:"sms"}});return{data:{user:null,session:null,messageId:h?.message_id},error:m}}throw new yx("You must provide either an email or phone number.")}catch(l){if(Et(l))return{data:{user:null,session:null},error:l};throw l}}async verifyOtp(t){var n,a;try{t.type!=="email_change"&&t.type!=="phone_change"&&await this._removeSession();const{data:i,error:s}=await Lt(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},t),{gotrue_meta_security:{captcha_token:(n=t.options)===null||n===void 0?void 0:n.captchaToken}}),redirectTo:(a=t.options)===null||a===void 0?void 0:a.redirectTo,xform:al});if(s)throw s;if(!i)throw new Error("An error occurred on token verification.");const o=i.session,l=i.user;return o?.access_token&&(await this._saveSession(o),await this._notifyAllSubscribers("SIGNED_IN",o)),{data:{user:l,session:o},error:null}}catch(i){if(Et(i))return{data:{user:null,session:null},error:i};throw i}}async signInWithSSO(t){var n,a,i;try{return await this._removeSession(),await Lt(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:(a=(n=t.options)===null||n===void 0?void 0:n.redirectTo)!==null&&a!==void 0?a:void 0}),!((i=t?.options)===null||i===void 0)&&i.captchaToken?{gotrue_meta_security:{captcha_token:t.options.captchaToken}}:null),{skip_http_redirect:!0}),headers:this.headers,xform:IZ})}catch(s){if(Et(s))return{data:null,error:s};throw s}}async reauthenticate(){try{return await this._useSession(async t=>{const{data:{session:n},error:a}=t;if(a)throw a;if(!n)throw new Xd;const{error:i}=await Lt(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:n.access_token});return{data:{user:null,session:null},error:i}})}catch(t){if(Et(t))return{data:{user:null,session:null},error:t};throw t}}async resend(t){try{t.type!="email_change"&&t.type!="phone_change"&&await this._removeSession();const n=`${this.url}/resend`;if("email"in t){const{email:a,type:i,options:s}=t,{error:o}=await Lt(this.fetch,"POST",n,{headers:this.headers,body:{email:a,type:i,gotrue_meta_security:{captcha_token:s?.captchaToken}},redirectTo:s?.emailRedirectTo});return{data:{user:null,session:null},error:o}}else if("phone"in t){const{phone:a,type:i,options:s}=t,{data:o,error:l}=await Lt(this.fetch,"POST",n,{headers:this.headers,body:{phone:a,type:i,gotrue_meta_security:{captcha_token:s?.captchaToken}}});return{data:{user:null,session:null,messageId:o?.message_id},error:l}}throw new yx("You must provide either an email or phone number and a type")}catch(n){if(Et(n))return{data:{user:null,session:null},error:n};throw n}}async getSession(){return this._useSession(async t=>t)}async _useSession(t){return await Lj("_useSession",async()=>{const n=await this.__loadSession();return await t(n)})}async __loadSession(){if(this._debug("#__loadSession()","begin"),this.logDebugMessages&&!Mj("_useSession"))throw new Error("Please use #_useSession()");Mj("_initialize")||await this.initializePromise;try{let t=null;if(this.persistSession){const s=await px(this.storage,this.storageKey);this._debug("#getSession()","session from storage",s),s!==null&&(this._isValidSession(s)?t=s:(this._debug("#getSession()","session from storage is not valid"),await this._removeSession()))}else t=this.inMemorySession,this._debug("#getSession()","session from memory",t);if(!t)return{data:{session:null},error:null};const n=t.expires_at?t.expires_at<=Date.now()/1e3:!1;if(this._debug("#__loadSession()",`session has${n?"":" not"} expired`,"expires_at",t.expires_at),!n)return{data:{session:t},error:null};const{session:a,error:i}=await this._callRefreshToken(t.refresh_token);return i?{data:{session:null},error:i}:{data:{session:a},error:null}}finally{this._debug("#__loadSession()","end")}}async getUser(t){try{return await this._useSession(async n=>{var a,i;if(!t){const{data:s,error:o}=n;if(o)throw o;t=(i=(a=s.session)===null||a===void 0?void 0:a.access_token)!==null&&i!==void 0?i:void 0}return await Lt(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:t,xform:bc})})}catch(n){if(Et(n))return{data:{user:null},error:n};throw n}}async updateUser(t,n={}){try{return await this._useSession(async a=>{const{data:i,error:s}=a;if(s)throw s;if(!i.session)throw new Xd;const o=i.session,{data:l,error:c}=await Lt(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:n?.emailRedirectTo,body:t,jwt:o.access_token,xform:bc});if(c)throw c;return o.user=l.user,await this._saveSession(o),await this._notifyAllSubscribers("USER_UPDATED",o),{data:{user:o.user},error:null}})}catch(a){if(Et(a))return{data:{user:null},error:a};throw a}}_decodeJWT(t){return wA(t)}async setSession(t){try{if(!t.access_token||!t.refresh_token)throw new Xd;const n=Date.now()/1e3;let a=n,i=!0,s=null;const o=wA(t.access_token);if(o.exp&&(a=o.exp,i=a<=n),i){const{session:l,error:c}=await this._callRefreshToken(t.refresh_token);if(c)return{data:{user:null,session:null},error:c};if(!l)return{data:{user:null,session:null},error:null};s=l}else{const{data:l,error:c}=await this.getUser(t.access_token);if(c)throw c;s={access_token:t.access_token,refresh_token:t.refresh_token,user:l.user,token_type:"bearer",expires_in:a-n,expires_at:a},await this._saveSession(s),await this._notifyAllSubscribers("SIGNED_IN",s)}return{data:{user:s.user,session:s},error:null}}catch(n){if(Et(n))return{data:{session:null,user:null},error:n};throw n}}async refreshSession(t){try{return await this._useSession(async n=>{var a;if(!t){const{data:o,error:l}=n;if(l)throw l;t=(a=o.session)!==null&&a!==void 0?a:void 0}if(!t?.refresh_token)throw new Xd;const{session:i,error:s}=await this._callRefreshToken(t.refresh_token);return s?{data:{user:null,session:null},error:s}:i?{data:{user:i.user,session:i},error:null}:{data:{user:null,session:null},error:null}})}catch(n){if(Et(n))return{data:{user:null,session:null},error:n};throw n}}async _getSessionFromUrl(t){try{if(!zs())throw new Bs("No browser detected.");if(this.flowType==="implicit"&&!this._isImplicitGrantFlow())throw new Bs("Not a valid implicit grant flow url.");if(this.flowType=="pkce"&&!t)throw new Ew("Not a valid PKCE flow url.");if(t){const _=Xr("code");if(!_)throw new Ew("No code detected.");const{data:S,error:A}=await this.exchangeCodeForSession(_);if(A)throw A;if(!S.session)throw new Ew("No session detected.");let P=new URL(window.location.href);return P.searchParams.delete("code"),window.history.replaceState(window.history.state,"",P.toString()),{data:{session:S.session,redirectType:null},error:null}}const n=Xr("error_description");if(n){const _=Xr("error_code");if(!_)throw new Bs("No error_code detected.");const S=Xr("error");throw S?new Bs(n,{error:S,code:_}):new Bs("No error detected.")}const a=Xr("provider_token"),i=Xr("provider_refresh_token"),s=Xr("access_token");if(!s)throw new Bs("No access_token detected.");const o=Xr("expires_in");if(!o)throw new Bs("No expires_in detected.");const l=Xr("refresh_token");if(!l)throw new Bs("No refresh_token detected.");const c=Xr("token_type");if(!c)throw new Bs("No token_type detected.");const m=Math.round(Date.now()/1e3)+parseInt(o),{data:p,error:x}=await this.getUser(s);if(x)throw x;const b=p.user,j={provider_token:a,provider_refresh_token:i,access_token:s,expires_in:parseInt(o),expires_at:m,refresh_token:l,token_type:c,user:b},N=Xr("type");return window.location.hash="",this._debug("#_getSessionFromUrl()","clearing window.location.hash"),{data:{session:j,redirectType:N},error:null}}catch(n){if(Et(n))return{data:{session:null,redirectType:null},error:n};throw n}}_isImplicitGrantFlow(){return zs()&&(!!Xr("access_token")||!!Xr("error_description"))}async _isPKCEFlow(){const t=await px(this.storage,`${this.storageKey}-code-verifier`);return!!Xr("code")&&!!t}async signOut({scope:t}={scope:"global"}){return await this._useSession(async n=>{var a;const{data:i,error:s}=n;if(s)return{error:s};const o=(a=i.session)===null||a===void 0?void 0:a.access_token;if(o){const{error:l}=await this.admin.signOut(o,t);if(l&&!(AZ(l)&&(l.status===404||l.status===401)))return{error:l}}return t!=="others"&&(await this._removeSession(),await Aw(this.storage,`${this.storageKey}-code-verifier`),await this._notifyAllSubscribers("SIGNED_OUT",null)),{error:null}})}onAuthStateChange(t){const n=xZ(),a={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,a),this._emitInitialSession(n),{data:{subscription:a}}}async _emitInitialSession(t){return await this._useSession(async n=>{var a,i;try{const{data:{session:s},error:o}=n;if(o)throw o;await((a=this.stateChangeEmitters.get(t))===null||a===void 0?void 0:a.callback("INITIAL_SESSION",s)),this._debug("INITIAL_SESSION","callback id",t,"session",s)}catch(s){await((i=this.stateChangeEmitters.get(t))===null||i===void 0?void 0:i.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",t,"error",s),console.error(s)}})}async resetPasswordForEmail(t,n={}){let a=null,i=null;if(this.flowType==="pkce"){const s=gx();await Mf(this.storage,`${this.storageKey}-code-verifier`,s),a=await xx(s),i=s===a?"plain":"s256"}try{return await Lt(this.fetch,"POST",`${this.url}/recover`,{body:{email:t,code_challenge:a,code_challenge_method:i,gotrue_meta_security:{captcha_token:n.captchaToken}},headers:this.headers,redirectTo:n.redirectTo})}catch(s){if(Et(s))return{data:null,error:s};throw s}}async _refreshAccessToken(t){const n=`#_refreshAccessToken(${t.substring(0,5)}...)`;this._debug(n,"begin");try{const a=Date.now();return await wZ(async i=>(await bZ(i*200),this._debug(n,"refreshing attempt",i),await Lt(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:t},headers:this.headers,xform:al})),(i,s,o)=>o&&o.error&&NA(o.error)&&Date.now()+(i+1)*200-a<vx)}catch(a){if(this._debug(n,"error",a),Et(a))return{data:{session:null,user:null},error:a};throw a}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 a=await this._getUrlForProvider(t,{redirectTo:n.redirectTo,scopes:n.scopes,queryParams:n.queryParams});return this._debug("#_handleProviderSignIn()","provider",t,"options",n,"url",a),zs()&&!n.skipBrowserRedirect&&window.location.assign(a),{data:{provider:t,url:a},error:null}}async _recoverAndRefresh(){var t;const n="#_recoverAndRefresh()";this._debug(n,"begin");try{const a=await px(this.storage,this.storageKey);if(this._debug(n,"session from storage",a),!this._isValidSession(a)){this._debug(n,"session is not valid"),a!==null&&await this._removeSession();return}const i=Math.round(Date.now()/1e3),s=((t=a.expires_at)!==null&&t!==void 0?t:1/0)<i+_A;if(this._debug(n,`session has${s?"":" not"} expired with margin of ${_A}s`),s){if(this.autoRefreshToken&&a.refresh_token){const{error:o}=await this._callRefreshToken(a.refresh_token);o&&(console.error(o),NA(o)||(this._debug(n,"refresh failed with a non-retryable error, removing the session",o),await this._removeSession()))}}else await this._notifyAllSubscribers("SIGNED_IN",a)}catch(a){this._debug(n,"error",a),console.error(a);return}finally{this._debug(n,"end")}}async _callRefreshToken(t){var n,a;if(!t)throw new Xd;if(this.refreshingDeferred)return this.refreshingDeferred.promise;const i=`#_callRefreshToken(${t.substring(0,5)}...)`;this._debug(i,"begin");try{this.refreshingDeferred=new zv;const{data:s,error:o}=await this._refreshAccessToken(t);if(o)throw o;if(!s.session)throw new Xd;await this._saveSession(s.session),await this._notifyAllSubscribers("TOKEN_REFRESHED",s.session);const l={session:s.session,error:null};return this.refreshingDeferred.resolve(l),l}catch(s){if(this._debug(i,"error",s),Et(s)){const o={session:null,error:s};return(n=this.refreshingDeferred)===null||n===void 0||n.resolve(o),o}throw(a=this.refreshingDeferred)===null||a===void 0||a.reject(s),s}finally{this.refreshingDeferred=null,this._debug(i,"end")}}async _notifyAllSubscribers(t,n,a=!0){const i=`#_notifyAllSubscribers(${t})`;this._debug(i,"begin",n,`broadcast = ${a}`);try{this.broadcastChannel&&a&&this.broadcastChannel.postMessage({event:t,session:n});const s=[],o=Array.from(this.stateChangeEmitters.values()).map(async l=>{try{await l.callback(t,n)}catch(c){s.push(c)}});if(await Promise.all(o),s.length>0){for(let l=0;l<s.length;l+=1)console.error(s[l]);throw s[0]}}finally{this._debug(i,"end")}}async _saveSession(t){this._debug("#_saveSession()",t),this.persistSession||(this.inMemorySession=t),this.persistSession&&t.expires_at&&await this._persistSession(t)}_persistSession(t){return this._debug("#_persistSession()",t),Mf(this.storage,this.storageKey,t)}async _removeSession(){this._debug("#_removeSession()"),this.persistSession?await Aw(this.storage,this.storageKey):this.inMemorySession=null}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");const t=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{t&&zs()&&window?.removeEventListener&&window.removeEventListener("visibilitychange",t)}catch(n){console.error("removing visibilitychange callback failed",n)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");const t=setInterval(()=>this._autoRefreshTokenTick(),vx);this.autoRefreshTicker=t,t&&typeof t=="object"&&typeof t.unref=="function"?t.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(t),await this._autoRefreshTokenTick()}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const t=this.autoRefreshTicker;this.autoRefreshTicker=null,t&&clearInterval(t)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");try{const t=Date.now();try{return await this._useSession(async n=>{const{data:{session:a}}=n;if(!a||!a.refresh_token||!a.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const i=Math.floor((a.expires_at*1e3-t)/vx);this._debug("#_autoRefreshTokenTick()",`access token expires in ${i} ticks, a tick lasts ${vx}ms, refresh threshold is ${CA} ticks`),i<=CA&&await this._callRefreshToken(a.refresh_token)})}catch(n){console.error("Auto refresh tick failed with error. This is likely a transient error.",n)}}finally{this._debug("#_autoRefreshTokenTick()","end")}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!zs()||!window?.addEventListener)return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>await this._onVisibilityChanged(!1),window?.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(t){console.error("_handleVisibilityChange",t)}}async _onVisibilityChanged(t){this._debug(`#_onVisibilityChanged(${t})`,"visibilityState",document.visibilityState),document.visibilityState==="visible"?(t||(await this.initializePromise,await this._recoverAndRefresh(),this._debug("#_onVisibilityChanged()","finished waiting for initialize, _recoverAndRefresh")),this.autoRefreshToken&&this._startAutoRefresh()):document.visibilityState==="hidden"&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(t,n){const a=[`provider=${encodeURIComponent(t)}`];if(n?.redirectTo&&a.push(`redirect_to=${encodeURIComponent(n.redirectTo)}`),n?.scopes&&a.push(`scopes=${encodeURIComponent(n.scopes)}`),this.flowType==="pkce"){const i=gx();await Mf(this.storage,`${this.storageKey}-code-verifier`,i);const s=await xx(i),o=i===s?"plain":"s256";this._debug("PKCE","code verifier",`${i.substring(0,5)}...`,"code challenge",s,"method",o);const l=new URLSearchParams({code_challenge:`${encodeURIComponent(s)}`,code_challenge_method:`${encodeURIComponent(o)}`});a.push(l.toString())}if(n?.queryParams){const i=new URLSearchParams(n.queryParams);a.push(i.toString())}return`${this.url}/authorize?${a.join("&")}`}async _unenroll(t){try{return await this._useSession(async n=>{var a;const{data:i,error:s}=n;return s?{data:null,error:s}:await Lt(this.fetch,"DELETE",`${this.url}/factors/${t.factorId}`,{headers:this.headers,jwt:(a=i?.session)===null||a===void 0?void 0:a.access_token})})}catch(n){if(Et(n))return{data:null,error:n};throw n}}async _enroll(t){try{return await this._useSession(async n=>{var a,i;const{data:s,error:o}=n;if(o)return{data:null,error:o};const{data:l,error:c}=await Lt(this.fetch,"POST",`${this.url}/factors`,{body:{friendly_name:t.friendlyName,factor_type:t.factorType,issuer:t.issuer},headers:this.headers,jwt:(a=s?.session)===null||a===void 0?void 0:a.access_token});return c?{data:null,error:c}:(!((i=l?.totp)===null||i===void 0)&&i.qr_code&&(l.totp.qr_code=`data:image/svg+xml;utf-8,${l.totp.qr_code}`),{data:l,error:null})})}catch(n){if(Et(n))return{data:null,error:n};throw n}}async _verify(t){try{return await this._useSession(async n=>{var a;const{data:i,error:s}=n;if(s)return{data:null,error:s};const{data:o,error:l}=await Lt(this.fetch,"POST",`${this.url}/factors/${t.factorId}/verify`,{body:{code:t.code,challenge_id:t.challengeId},headers:this.headers,jwt:(a=i?.session)===null||a===void 0?void 0:a.access_token});return l?{data:null,error:l}:(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+o.expires_in},o)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",o),{data:o,error:l})})}catch(n){if(Et(n))return{data:null,error:n};throw n}}async _challenge(t){try{return await this._useSession(async n=>{var a;const{data:i,error:s}=n;return s?{data:null,error:s}:await Lt(this.fetch,"POST",`${this.url}/factors/${t.factorId}/challenge`,{headers:this.headers,jwt:(a=i?.session)===null||a===void 0?void 0:a.access_token})})}catch(n){if(Et(n))return{data:null,error:n};throw n}}async _challengeAndVerify(t){const{data:n,error:a}=await this._challenge({factorId:t.factorId});return a?{data:null,error:a}:await this._verify({factorId:t.factorId,challengeId:n.id,code:t.code})}async _listFactors(){const{data:{user:t},error:n}=await this.getUser();if(n)return{data:null,error:n};const a=t?.factors||[],i=a.filter(s=>s.factor_type==="totp"&&s.status==="verified");return{data:{all:a,totp:i},error:null}}async _getAuthenticatorAssuranceLevel(){return await this._useSession(async t=>{var n,a;const{data:{session:i},error:s}=t;if(s)return{data:null,error:s};if(!i)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const o=this._decodeJWT(i.access_token);let l=null;o.aal&&(l=o.aal);let c=l;((a=(n=i.user.factors)===null||n===void 0?void 0:n.filter(p=>p.status==="verified"))!==null&&a!==void 0?a:[]).length>0&&(c="aal2");const m=o.amr||[];return{data:{currentLevel:l,nextLevel:c,currentAuthenticationMethods:m},error:null}})}}Em.nextInstanceID=0;class qZ extends Em{constructor(t){super(t)}}var GZ=function(e,t,n,a){function i(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function l(m){try{h(a.next(m))}catch(p){o(p)}}function c(m){try{h(a.throw(m))}catch(p){o(p)}}function h(m){m.done?s(m.value):i(m.value).then(l,c)}h((a=a.apply(e,t||[])).next())})};const KZ={headers:aZ},ZZ={schema:"public"},YZ={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},JZ={};class XZ{constructor(t,n,a){var i,s,o,l,c,h,m,p;if(this.supabaseUrl=t,this.supabaseKey=n,!t)throw new Error("supabaseUrl is required.");if(!n)throw new Error("supabaseKey is required.");const x=uZ(t);this.realtimeUrl=`${x}/realtime/v1`.replace(/^http/i,"ws"),this.authUrl=`${x}/auth/v1`,this.storageUrl=`${x}/storage/v1`,this.functionsUrl=`${x}/functions/v1`;const b=`sb-${new URL(this.authUrl).hostname.split(".")[0]}-auth-token`,j={db:ZZ,realtime:JZ,auth:Object.assign(Object.assign({},YZ),{storageKey:b}),global:KZ},N=hZ(a??{},j);this.storageKey=(s=(i=N.auth)===null||i===void 0?void 0:i.storageKey)!==null&&s!==void 0?s:"",this.headers=(l=(o=N.global)===null||o===void 0?void 0:o.headers)!==null&&l!==void 0?l:{},this.auth=this._initSupabaseAuthClient((c=N.auth)!==null&&c!==void 0?c:{},this.headers,(h=N.global)===null||h===void 0?void 0:h.fetch),this.fetch=dZ(n,this._getAccessToken.bind(this),(m=N.global)===null||m===void 0?void 0:m.fetch),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers},N.realtime)),this.rest=new DG(`${x}/rest/v1`,{headers:this.headers,schema:(p=N.db)===null||p===void 0?void 0:p.schema,fetch:this.fetch}),this._listenForAuthEvents()}get functions(){return new kG(this.functionsUrl,{headers:this.headers,customFetch:this.fetch})}get storage(){return new nZ(this.storageUrl,this.headers,this.fetch)}from(t){return this.rest.from(t)}rpc(t,n={},a){return this.rest.rpc(t,n,a)}channel(t,n={config:{}}){return this.realtime.channel(t,n)}getChannels(){return this.realtime.getChannels()}removeChannel(t){return this.realtime.removeChannel(t)}removeAllChannels(){return this.realtime.removeAllChannels()}_getAccessToken(){var t,n;return GZ(this,void 0,void 0,function*(){const{data:a}=yield this.auth.getSession();return(n=(t=a.session)===null||t===void 0?void 0:t.access_token)!==null&&n!==void 0?n:null})}_initSupabaseAuthClient({autoRefreshToken:t,persistSession:n,detectSessionInUrl:a,storage:i,storageKey:s,flowType:o,debug:l},c,h){const m={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new qZ({url:this.authUrl,headers:Object.assign(Object.assign({},m),c),storageKey:s,autoRefreshToken:t,persistSession:n,detectSessionInUrl:a,storage:i,flowType:o,debug:l,fetch:h})}_initRealtimeClient(t){return new SK(this.realtimeUrl,Object.assign(Object.assign({},t),{params:Object.assign({apikey:this.supabaseKey},t?.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((n,a)=>{this._handleTokenChanged(n,"CLIENT",a?.access_token)})}_handleTokenChanged(t,n,a){(t==="TOKEN_REFRESHED"||t==="SIGNED_IN")&&this.changedAccessToken!==a?(this.realtime.setAuth(a??null),this.changedAccessToken=a):t==="SIGNED_OUT"&&(this.realtime.setAuth(this.supabaseKey),n=="STORAGE"&&this.auth.signOut(),this.changedAccessToken=void 0)}}const UI=(e,t,n)=>new XZ(e,t,n),QZ="https://spqooonhwsqbwfvmzhan.supabase.co",eY="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InNwcW9vb25od3NxYndmdm16aGFuIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzA0MDQxMTAsImV4cCI6MjA4NTk4MDExMH0.0akpiJQGUtPiV7pCC5Sqp0EdKN5cGvGi297SsdSuIog",pu=UI(QZ,eY),tY=v.createContext(void 0),nY=({children:e})=>{const{toast:t}=ip(),[n,a]=v.useState(null),[i,s]=v.useState(null),[o,l]=v.useState(!0),c=v.useCallback(async b=>{s(b),a(b?.user??null),l(!1)},[]);v.useEffect(()=>{(async()=>{try{const{data:{session:N}}=await pu.auth.getSession();c(N)}catch(N){console.error("Error getting session:",N),l(!1)}})();const{data:{subscription:j}}=pu.auth.onAuthStateChange(async(N,_)=>{c(_)});return()=>j?.unsubscribe()},[c]);const h=v.useCallback(async(b,j,N)=>{const{error:_}=await pu.auth.signUp({email:b,password:j,options:N});return _&&t({variant:"destructive",title:"Sign up Failed",description:_.message||"Something went wrong"}),{error:_}},[t]),m=v.useCallback(async(b,j)=>{const{error:N}=await pu.auth.signInWithPassword({email:b,password:j});return N&&t({variant:"destructive",title:"Sign in Failed",description:N.message||"Something went wrong"}),{error:N}},[t]),p=v.useCallback(async()=>{const{error:b}=await pu.auth.signOut();return b&&t({variant:"destructive",title:"Sign out Failed",description:b.message||"Something went wrong"}),{error:b}},[t]),x=v.useMemo(()=>({user:n,session:i,loading:o,isAuthenticated:!!n,signUp:h,signIn:m,signOut:p,signup:h,login:m,logout:p}),[n,i,o,h,m,p]);return r.jsx(tY.Provider,{value:x,children:e})},em="https://spqooonhwsqbwfvmzhan.supabase.co",oy="sb_publishable_d882tHcPnJZPeAK5jufH-w_Gvss8RWj",qI=(e,t=4)=>e?e.length<=t*2?"***":`${e.substring(0,t)}...${e.substring(e.length-t)}`:"MISSING/UNDEFINED";console.group("🔌 [Supabase] Client Initialization Debug");console.log("timestamp:",new Date().toISOString());console.log("URL Configured:",qI(em,8));console.log("Key Configured:",qI(oy,8));let GI=null;try{(!em||!em.startsWith("https://"))&&console.error("CRITICAL: Invalid Supabase URL format. Must start with https://",em),(!oy||oy.length<20)&&console.error("CRITICAL: Supabase Anon Key appears invalid or too short."),GI=UI(em,oy,{auth:{persistSession:!0,autoRefreshToken:!0,detectSessionInUrl:!0}}),console.log("✅ Supabase client instance created successfully.")}catch(e){console.error("⌠FATAL: Failed to initialize Supabase client:",e)}console.groupEnd();const Ht=GI,KI=v.createContext(),ch=()=>v.useContext(KI),rY=({children:e})=>{const[t,n]=v.useState(!1),[a,i]=v.useState(null),[s,o]=v.useState(!0);v.useEffect(()=>{console.log("🔄 [AdminAuthContext] Initializing..."),(async()=>{try{if(!Ht){console.error("⌠[AdminAuthContext] Supabase client is not initialized."),o(!1);return}console.log("🔠[AdminAuthContext] Checking for existing session...");const{data:{session:p},error:x}=await Ht.auth.getSession();x&&console.error("⌠[AdminAuthContext] Error getting session:",x),p?(console.log("✅ [AdminAuthContext] Active session found for user:",p.user.id),n(!0),i(p.user)):(console.log("â„¹ï¸ [AdminAuthContext] No active session found"),n(!1),i(null))}catch(p){console.error("⌠[AdminAuthContext] Unexpected error checking session:",p)}finally{o(!1)}})();const{data:{subscription:m}}=Ht.auth.onAuthStateChange(async(p,x)=>{console.log(`🔠[AdminAuthContext] Auth State Change detected: ${p}`),x?(n(!0),i(x.user)):(n(!1),i(null)),o(!1)});return()=>{m?.unsubscribe()}},[]);const l=async(h,m)=>{if(console.group("🚀 [AdminAuthContext] Login Process Started"),console.log(`Attempting login for email: ${h}`),!Ht)return console.error("⌠[AdminAuthContext] Supabase client missing."),console.groupEnd(),{success:!1,error:"System Error: Database client not initialized."};if(!h||!m)return console.error("⌠[AdminAuthContext] Login failed: Missing email or password"),console.groupEnd(),{success:!1,error:"Email and password are required."};try{o(!0);const p=new Promise((N,_)=>{setTimeout(()=>_(new Error("Connection timed out. The server took too long to respond (10s).")),1e4)}),x=Ht.auth.signInWithPassword({email:h,password:m}),{data:b,error:j}=await Promise.race([x,p]);return j?(console.error("⌠[AdminAuthContext] Supabase Auth Error:",j),console.log("Error details:",{message:j.message,status:j.status,name:j.name}),console.groupEnd(),o(!1),{success:!1,error:j.message,details:j}):b?.user?(console.log("✅ [AdminAuthContext] Login successful. User ID:",b.user.id),n(!0),i(b.user),console.groupEnd(),{success:!0,data:b}):(console.error("⌠[AdminAuthContext] Login succeeded but no user returned."),console.groupEnd(),o(!1),{success:!1,error:"Login failed: No user data returned."})}catch(p){return console.error("⌠[AdminAuthContext] Exception during login:",p),console.groupEnd(),o(!1),{success:!1,error:p.message||"An unexpected network error occurred.",details:p}}},c=async()=>{console.log("🚪 [AdminAuthContext] Logging out...");try{if(!Ht)throw new Error("Supabase client missing");const{error:h}=await Ht.auth.signOut();if(h)throw h;n(!1),i(null),console.log("✅ [AdminAuthContext] Logout successful")}catch(h){console.error("⌠[AdminAuthContext] Error signing out:",h)}};return r.jsx(KI.Provider,{value:{isAuthenticated:t,user:a,loading:s,login:l,logout:c},children:e})},aY=[{id:"astoria",label:"Astoria"},{id:"portland",label:"Portland"},{id:"eugene",label:"Eugene"},{id:"seattle",label:"Seattle"},{id:"out-of-state",label:"Out of State"}],iY=[{id:"1-2",label:"1-2 Days"},{id:"3-4",label:"3-4 Days"},{id:"5-7",label:"5-7 Days"},{id:"7+",label:"7+ Days"}],sY=[{id:"adventure",label:"Adventure"},{id:"relaxing",label:"Relaxing"},{id:"foodie",label:"Foodie"},{id:"family",label:"Family"},{id:"photography",label:"Photography"}],Qd={astoria:{name:"Astoria",type:["foodie","photography","adventure"],highlights:"Astoria Column, Maritime Museum, local breweries"},"cannon-beach":{name:"Cannon Beach",type:["relaxing","photography","family"],highlights:"Haystack Rock, Ecola State Park, Art Galleries"},tillamook:{name:"Tillamook",type:["family","foodie"],highlights:"Tillamook Creamery, Cape Meares Lighthouse"},"lincoln-city":{name:"Lincoln City",type:["family","relaxing"],highlights:"Kite flying, Glass floats, 7 miles of beach"},"depoe-bay":{name:"Depoe Bay",type:["adventure","photography"],highlights:"Whale Watching, Boiler Bay"},newport:{name:"Newport",type:["family","foodie"],highlights:"Oregon Coast Aquarium, Historic Bayfront, Local Seafood"},waldport:{name:"Waldport",type:["relaxing","family"],highlights:"Crabbing, Alsea Bay Bridge, quiet beaches"},yachats:{name:"Yachats",type:["adventure","photography","relaxing"],highlights:"Thor's Well, Cape Perpetua, tidepools"},florence:{name:"Florence",type:["adventure","family"],highlights:"Oregon Dunes, Sandboarding, Historic Old Town"},"coos-bay":{name:"Coos Bay",type:["adventure","photography"],highlights:"Cape Arago Hwy, Shore Acres, rugged cliffs"},bandon:{name:"Bandon",type:["relaxing","photography","foodie"],highlights:"Face Rock, Bandon Dunes, local cheese"},"gold-beach":{name:"Gold Beach",type:["adventure","photography"],highlights:"Rogue River, Jet Boats, rugged beaches"},brookings:{name:"Brookings",type:["adventure","photography"],highlights:"Samuel H. Boardman Corridor, warm coastal weather"}},Wk=[{from:"astoria",to:"cannon-beach",time:"30 min",hours:.5},{from:"cannon-beach",to:"tillamook",time:"1 hour",hours:1},{from:"tillamook",to:"lincoln-city",time:"45 min",hours:.75},{from:"lincoln-city",to:"newport",time:"1 hour",hours:1},{from:"newport",to:"florence",time:"1.5 hours",hours:1.5},{from:"florence",to:"coos-bay",time:"1 hour",hours:1},{from:"coos-bay",to:"bandon",time:"30 min",hours:.5},{from:"bandon",to:"gold-beach",time:"1 hour",hours:1},{from:"gold-beach",to:"brookings",time:"1 hour",hours:1},{from:"astoria",to:"brookings",time:"5.5 hours",hours:5.5}],oY={"1-2":"one town or two neighboring towns","3-4":"a coastal region","5-7":"half the coast","7+":"full Oregon Coast"},lY=(e,t)=>{const n=Wk.find(a=>a.from===e&&a.to===t||a.from===t&&a.to===e);return n?n.time:null},cY=e=>{let t=0;for(let n=0;n<e.length-1;n++){const a=Wk.find(i=>i.from===e[n]&&i.to===e[n+1]||i.from===e[n+1]&&i.to===e[n]);a&&(t+=a.hours)}return t},dY=(e,t,n)=>{let a=[];e==="astoria"||e==="seattle"||e==="portland"?a=["astoria","cannon-beach","tillamook","lincoln-city","depoe-bay","newport","yachats","florence","coos-bay","bandon","gold-beach","brookings"]:e==="eugene"?a=["florence","yachats","newport","coos-bay","bandon","gold-beach","brookings"]:a=["cannon-beach","lincoln-city","newport","yachats","florence","bandon","brookings"];const i=Object.keys(Qd).filter(b=>Qd[b].type.includes(n));let s=a.filter(b=>i.includes(b));s.length<2&&(s=[...new Set([...s,...a])]);let o=2,l=2;t==="1-2"?(o=2,l=2):t==="3-4"?(o=4,l=4):t==="5-7"?(o=6,l=6):(o=10,l=8);const c=s.slice(0,o),h=cY(c);let m=null;return l>=7&&h<3?(m=`It looks like you planned 7+ days but your route is fairly concentrated. For example, the drive from ${Qd[c[0]]?.name} to ${Qd[c[c.length-1]]?.name} is only a few hours total. I'd recommend 2-3 days to really explore that stretch rather than 7. Want me to extend your trip further down the coast to fill the week?`,o=Math.min(10,a.length)):l<=2&&h>4&&(m=`You've selected a very long route for just 1-2 days! Driving from ${Qd[c[0]]?.name} down the coast takes considerable time. I've narrowed it down to keep your driving under 2 hours so you can actually enjoy the stops.`,o=2),{towns:a.slice(0,o).map(b=>({id:b,...Qd[b]})),numDays:l,validationMessage:m}},ZI=v.createContext();function YI(){return v.useContext(ZI)}const TA=[{id:1,sender:"ai",text:"Hey! Planning an Oregon Coast trip? Tell me where you're starting from and how many days you have - I'll put together a personalized itinerary for you."}];function uY({children:e}){const[t,n]=v.useState(()=>{const b=localStorage.getItem("tripPlannerMessages");return b?JSON.parse(b):TA}),[a,i]=v.useState(()=>{const b=localStorage.getItem("tripPlannerAnswers");return b?JSON.parse(b):{start:null,days:null,type:null}}),[s,o]=v.useState(()=>{const b=localStorage.getItem("tripPlannerState");return b||"ASK_START"}),[l,c]=v.useState(!1);v.useEffect(()=>{localStorage.setItem("tripPlannerMessages",JSON.stringify(t))},[t]),v.useEffect(()=>{localStorage.setItem("tripPlannerAnswers",JSON.stringify(a))},[a]),v.useEffect(()=>{localStorage.setItem("tripPlannerState",s)},[s]);const x={messages:t,addMessage:b=>{n(j=>[...j,{...b,id:Date.now()+Math.random()}])},answers:a,updateAnswer:(b,j)=>{i(N=>({...N,[b]:j}))},chatState:s,setChatState:o,resetChat:()=>{n(TA),i({start:null,days:null,type:null}),o("ASK_START")},isOpen:l,setIsOpen:c,geographicData:{drivingDistances:Wk,dayRecommendations:oY}};return r.jsx(ZI.Provider,{value:x,children:e})}const lt=(e,t="town")=>t==="town"?`${e} Hotels and Travel Guide`:`${e} | Oregon Coast Hotels and Travel Guide`,ct=e=>`Discover the best hotels, accommodations, and travel guide for ${e}, Oregon. Find lodging options, attractions, dining, and travel tips.`,kl=(e="")=>{const t="https://oregoncoastal.com";if(!e||typeof e!="string"||e==="/")return`${t}/`;const n=e.endsWith("/")&&e.length>1?e.slice(0,-1):e,a=n.startsWith("/")?n:`/${n}`;return`${t}${a}`},Vk=(e,t)=>t||"https://oregoncoastal.com/default-og-image.jpg",hY=(e,t=null)=>{const n="https://oregoncoastal.com",a=e.split("/").filter(s=>s),i=[{"@type":"ListItem",position:1,name:"Home",item:n}];if(a.length>0)if(a[0]==="town"&&t){let s=`${n}/`;t.region==="North Coast"?s+="north-coast":t.region==="Central Coast"?s+="central-coast":s+="south-coast",i.push({"@type":"ListItem",position:2,name:t.region||"Region",item:s}),i.push({"@type":"ListItem",position:3,name:t.name||"Town",item:`${n}${e}`})}else i.push({"@type":"ListItem",position:2,name:a[0].replace(/-/g," ").replace(/\b\w/g,s=>s.toUpperCase()),item:`${n}/${a[0]}`});return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:i}},fY=(e,t,n)=>e?{"@context":"https://schema.org","@type":"LocalBusiness",name:e.name||"Oregon Coastal Town",description:e.description||`Travel information for ${e.name}`,url:t,image:n,address:{"@type":"PostalAddress",addressLocality:e.name,addressRegion:"OR",addressCountry:"US"},geo:e.geo?{"@type":"GeoCoordinates",latitude:e.geo.lat,longitude:e.geo.lng}:void 0}:null,uo=(e,t,n,a)=>{if(!a)return;let i=document.querySelector(e);i?i.setAttribute(n,a):(i=t(),i.setAttribute(n,a),document.head.appendChild(i))},JI=e=>{uo('link[rel="canonical"]',()=>{const t=document.createElement("link");return t.setAttribute("rel","canonical"),t},"href",e)},XI=e=>{uo('meta[name="description"]',()=>{const t=document.createElement("meta");return t.setAttribute("name","description"),t},"content",e)},QI=e=>{uo('meta[property="og:url"]',()=>{const t=document.createElement("meta");return t.setAttribute("property","og:url"),t},"content",e)},eM=e=>{uo('meta[property="og:title"]',()=>{const t=document.createElement("meta");return t.setAttribute("property","og:title"),t},"content",e)},tM=e=>{uo('meta[property="og:description"]',()=>{const t=document.createElement("meta");return t.setAttribute("property","og:description"),t},"content",e)},nM=e=>{uo('meta[property="og:image"]',()=>{const t=document.createElement("meta");return t.setAttribute("property","og:image"),t},"content",e)},rM=e=>{uo('meta[name="twitter:title"]',()=>{const t=document.createElement("meta");return t.setAttribute("name","twitter:title"),t},"content",e)},aM=e=>{uo('meta[name="twitter:description"]',()=>{const t=document.createElement("meta");return t.setAttribute("name","twitter:description"),t},"content",e)},iM=e=>{uo('meta[name="twitter:image"]',()=>{const t=document.createElement("meta");return t.setAttribute("name","twitter:image"),t},"content",e)},AA=e=>{let t=document.querySelector('meta[name="robots"]');e?t?t.setAttribute("content","noindex"):(t=document.createElement("meta"),t.setAttribute("name","robots"),t.setAttribute("content","noindex"),document.head.appendChild(t)):t&&t.remove()},mY=()=>{if(typeof window>"u"||window._seoObserverInitialized)return;window._seoObserverInitialized=!0;const e=(a,i)=>{const s=document.querySelectorAll(a);if(s.length>1){const o=s[s.length-1].getAttribute(i);s[0].setAttribute(i,o);for(let l=1;l<s.length;l++)s[l].remove()}},t=()=>{e('link[rel="canonical"]',"href"),e('meta[name="description"]',"content"),e('meta[property="og:url"]',"content"),e('meta[property="og:title"]',"content"),e('meta[property="og:description"]',"content"),e('meta[property="og:image"]',"content"),e('meta[name="twitter:title"]',"content"),e('meta[name="twitter:description"]',"content"),e('meta[name="twitter:image"]',"content"),e('meta[name="robots"]',"content")};new MutationObserver(a=>{let i=!1;for(const s of a)if(s.addedNodes.length>0){i=!0;break}i&&t()}).observe(document.head,{childList:!0}),t()};function pY(e){if(typeof Proxy>"u")return e;const t=new Map,n=(...a)=>e(...a);return new Proxy(n,{get:(a,i)=>i==="create"?e:(t.has(i)||t.set(i,e(i)),t.get(i))})}function $v(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}const Bj=e=>Array.isArray(e);function sM(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let a=0;a<n;a++)if(t[a]!==e[a])return!1;return!0}function Om(e){return typeof e=="string"||Array.isArray(e)}function PA(e){const t=[{},{}];return e?.values.forEach((n,a)=>{t[0][a]=n.get(),t[1][a]=n.getVelocity()}),t}function Uk(e,t,n,a){if(typeof t=="function"){const[i,s]=PA(a);t=t(n!==void 0?n:e.custom,i,s)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,s]=PA(a);t=t(n!==void 0?n:e.custom,i,s)}return t}function Hv(e,t,n){const a=e.getProps();return Uk(a,t,n!==void 0?n:a.custom,e)}const qk=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Gk=["initial",...qk],op=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],qc=new Set(op),Js=e=>e*1e3,Xs=e=>e/1e3,gY={type:"spring",stiffness:500,damping:25,restSpeed:10},xY=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),yY={type:"keyframes",duration:.8},vY={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},bY=(e,{keyframes:t})=>t.length>2?yY:qc.has(e)?e.startsWith("scale")?xY(t[1]):gY:vY;function Kk(e,t){return e?e[t]||e.default||e:void 0}const wY={useManualTiming:!1},jY=e=>e!==null;function Wv(e,{repeat:t,repeatType:n="loop"},a){const i=e.filter(jY),s=t&&n!=="loop"&&t%2===1?0:i.length-1;return!s||a===void 0?i[s]:a}const ba=e=>e;let oM=ba;function NY(e){let t=new Set,n=new Set,a=!1,i=!1;const s=new WeakSet;let o={delta:0,timestamp:0,isProcessing:!1};function l(h){s.has(h)&&(c.schedule(h),e()),h(o)}const c={schedule:(h,m=!1,p=!1)=>{const b=p&&a?t:n;return m&&s.add(h),b.has(h)||b.add(h),h},cancel:h=>{n.delete(h),s.delete(h)},process:h=>{if(o=h,a){i=!0;return}a=!0,[t,n]=[n,t],t.forEach(l),t.clear(),a=!1,i&&(i=!1,c.process(h))}};return c}const bx=["read","resolveKeyframes","update","preRender","render","postRender"],kY=40;function lM(e,t){let n=!1,a=!0;const i={delta:0,timestamp:0,isProcessing:!1},s=()=>n=!0,o=bx.reduce((S,A)=>(S[A]=NY(s),S),{}),{read:l,resolveKeyframes:c,update:h,preRender:m,render:p,postRender:x}=o,b=()=>{const S=performance.now();n=!1,i.delta=a?1e3/60:Math.max(Math.min(S-i.timestamp,kY),1),i.timestamp=S,i.isProcessing=!0,l.process(i),c.process(i),h.process(i),m.process(i),p.process(i),x.process(i),i.isProcessing=!1,n&&t&&(a=!1,e(b))},j=()=>{n=!0,a=!0,i.isProcessing||e(b)};return{schedule:bx.reduce((S,A)=>{const P=o[A];return S[A]=(I,O=!1,M=!1)=>(n||j(),P.schedule(I,O,M)),S},{}),cancel:S=>{for(let A=0;A<bx.length;A++)o[bx[A]].cancel(S)},state:i,steps:o}}const{schedule:en,cancel:xl,state:rr,steps:Ow}=lM(typeof requestAnimationFrame<"u"?requestAnimationFrame:ba,!0),cM=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,_Y=1e-7,SY=12;function CY(e,t,n,a,i){let s,o,l=0;do o=t+(n-t)/2,s=cM(o,a,i)-e,s>0?n=o:t=o;while(Math.abs(s)>_Y&&++l<SY);return o}function lp(e,t,n,a){if(e===t&&n===a)return ba;const i=s=>CY(s,0,1,e,n);return s=>s===0||s===1?s:cM(i(s),t,a)}const dM=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,uM=e=>t=>1-e(1-t),hM=lp(.33,1.53,.69,.99),Zk=uM(hM),fM=dM(Zk),mM=e=>(e*=2)<1?.5*Zk(e):.5*(2-Math.pow(2,-10*(e-1))),Yk=e=>1-Math.sin(Math.acos(e)),pM=uM(Yk),gM=dM(Yk),xM=e=>/^0[^.\s]+$/u.test(e);function TY(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||xM(e):!0}const yM=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),vM=e=>t=>typeof t=="string"&&t.startsWith(e),bM=vM("--"),AY=vM("var(--"),Jk=e=>AY(e)?PY.test(e.split("/*")[0].trim()):!1,PY=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,EY=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function OY(e){const t=EY.exec(e);if(!t)return[,];const[,n,a,i]=t;return[`--${n??a}`,i]}function wM(e,t,n=1){const[a,i]=OY(e);if(!a)return;const s=window.getComputedStyle(t).getPropertyValue(a);if(s){const o=s.trim();return yM(o)?parseFloat(o):o}return Jk(i)?wM(i,t,n+1):i}const no=(e,t,n)=>n>t?t:n<e?e:n,dh={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Rm={...dh,transform:e=>no(0,1,e)},wx={...dh,default:1},cp=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),ol=cp("deg"),ts=cp("%"),Je=cp("px"),RY=cp("vh"),IY=cp("vw"),EA={...ts,parse:e=>ts.parse(e)/100,transform:e=>ts.transform(e*100)},MY=new Set(["width","height","top","left","right","bottom","x","y","translateX","translateY"]),OA=e=>e===dh||e===Je,RA=(e,t)=>parseFloat(e.split(", ")[t]),IA=(e,t)=>(n,{transform:a})=>{if(a==="none"||!a)return 0;const i=a.match(/^matrix3d\((.+)\)$/u);if(i)return RA(i[1],t);{const s=a.match(/^matrix\((.+)\)$/u);return s?RA(s[1],e):0}},LY=new Set(["x","y","z"]),DY=op.filter(e=>!LY.has(e));function BY(e){const t=[];return DY.forEach(n=>{const a=e.getValue(n);a!==void 0&&(t.push([n,a.get()]),a.set(n.startsWith("scale")?1:0))}),t}const $u={width:({x:e},{paddingLeft:t="0",paddingRight:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),height:({y:e},{paddingTop:t="0",paddingBottom:n="0"})=>e.max-e.min-parseFloat(t)-parseFloat(n),top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:IA(4,13),y:IA(5,14)};$u.translateX=$u.x;$u.translateY=$u.y;const jM=e=>t=>t.test(e),FY={test:e=>e==="auto",parse:e=>e},NM=[dh,Je,ts,ol,IY,RY,FY],MA=e=>NM.find(jM(e)),Tc=new Set;let Fj=!1,zj=!1;function kM(){if(zj){const e=Array.from(Tc).filter(a=>a.needsMeasurement),t=new Set(e.map(a=>a.element)),n=new Map;t.forEach(a=>{const i=BY(a);i.length&&(n.set(a,i),a.render())}),e.forEach(a=>a.measureInitialState()),t.forEach(a=>{a.render();const i=n.get(a);i&&i.forEach(([s,o])=>{var l;(l=a.getValue(s))===null||l===void 0||l.set(o)})}),e.forEach(a=>a.measureEndState()),e.forEach(a=>{a.suspendedScrollY!==void 0&&window.scrollTo(0,a.suspendedScrollY)})}zj=!1,Fj=!1,Tc.forEach(e=>e.complete()),Tc.clear()}function _M(){Tc.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(zj=!0)})}function zY(){_M(),kM()}class Xk{constructor(t,n,a,i,s,o=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=a,this.motionValue=i,this.element=s,this.isAsync=o}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Tc.add(this),Fj||(Fj=!0,en.read(_M),en.resolveKeyframes(kM))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:a,motionValue:i}=this;for(let s=0;s<t.length;s++)if(t[s]===null)if(s===0){const o=i?.get(),l=t[t.length-1];if(o!==void 0)t[0]=o;else if(a&&n){const c=a.readValue(n,l);c!=null&&(t[0]=c)}t[0]===void 0&&(t[0]=l),i&&o===void 0&&i.set(t[0])}else t[s]=t[s-1]}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(){this.isComplete=!0,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe),Tc.delete(this)}cancel(){this.isComplete||(this.isScheduled=!1,Tc.delete(this))}resume(){this.isComplete||this.scheduleResolve()}}const fm=e=>Math.round(e*1e5)/1e5,Qk=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function $Y(e){return e==null}const HY=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,e2=(e,t)=>n=>!!(typeof n=="string"&&HY.test(n)&&n.startsWith(e)||t&&!$Y(n)&&Object.prototype.hasOwnProperty.call(n,t)),SM=(e,t,n)=>a=>{if(typeof a!="string")return a;const[i,s,o,l]=a.match(Qk);return{[e]:parseFloat(i),[t]:parseFloat(s),[n]:parseFloat(o),alpha:l!==void 0?parseFloat(l):1}},WY=e=>no(0,255,e),Rw={...dh,transform:e=>Math.round(WY(e))},jc={test:e2("rgb","red"),parse:SM("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:a=1})=>"rgba("+Rw.transform(e)+", "+Rw.transform(t)+", "+Rw.transform(n)+", "+fm(Rm.transform(a))+")"};function VY(e){let t="",n="",a="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),a=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),a=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,a+=a,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(a,16),alpha:i?parseInt(i,16)/255:1}}const $j={test:e2("#"),parse:VY,transform:jc.transform},vu={test:e2("hsl","hue"),parse:SM("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:a=1})=>"hsla("+Math.round(e)+", "+ts.transform(fm(t))+", "+ts.transform(fm(n))+", "+fm(Rm.transform(a))+")"},br={test:e=>jc.test(e)||$j.test(e)||vu.test(e),parse:e=>jc.test(e)?jc.parse(e):vu.test(e)?vu.parse(e):$j.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?jc.transform(e):vu.transform(e)},UY=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function qY(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(Qk))===null||t===void 0?void 0:t.length)||0)+(((n=e.match(UY))===null||n===void 0?void 0:n.length)||0)>0}const CM="number",TM="color",GY="var",KY="var(",LA="${}",ZY=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Im(e){const t=e.toString(),n=[],a={color:[],number:[],var:[]},i=[];let s=0;const l=t.replace(ZY,c=>(br.test(c)?(a.color.push(s),i.push(TM),n.push(br.parse(c))):c.startsWith(KY)?(a.var.push(s),i.push(GY),n.push(c)):(a.number.push(s),i.push(CM),n.push(parseFloat(c))),++s,LA)).split(LA);return{values:n,split:l,indexes:a,types:i}}function AM(e){return Im(e).values}function PM(e){const{split:t,types:n}=Im(e),a=t.length;return i=>{let s="";for(let o=0;o<a;o++)if(s+=t[o],i[o]!==void 0){const l=n[o];l===CM?s+=fm(i[o]):l===TM?s+=br.transform(i[o]):s+=i[o]}return s}}const YY=e=>typeof e=="number"?0:e;function JY(e){const t=AM(e);return PM(e)(t.map(YY))}const yl={test:qY,parse:AM,createTransformer:PM,getAnimatableNone:JY},XY=new Set(["brightness","contrast","saturate","opacity"]);function QY(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[a]=n.match(Qk)||[];if(!a)return e;const i=n.replace(a,"");let s=XY.has(t)?1:0;return a!==n&&(s*=100),t+"("+s+i+")"}const eJ=/\b([a-z-]*)\(.*?\)/gu,Hj={...yl,getAnimatableNone:e=>{const t=e.match(eJ);return t?t.map(QY).join(" "):e}},tJ={borderWidth:Je,borderTopWidth:Je,borderRightWidth:Je,borderBottomWidth:Je,borderLeftWidth:Je,borderRadius:Je,radius:Je,borderTopLeftRadius:Je,borderTopRightRadius:Je,borderBottomRightRadius:Je,borderBottomLeftRadius:Je,width:Je,maxWidth:Je,height:Je,maxHeight:Je,top:Je,right:Je,bottom:Je,left:Je,padding:Je,paddingTop:Je,paddingRight:Je,paddingBottom:Je,paddingLeft:Je,margin:Je,marginTop:Je,marginRight:Je,marginBottom:Je,marginLeft:Je,backgroundPositionX:Je,backgroundPositionY:Je},nJ={rotate:ol,rotateX:ol,rotateY:ol,rotateZ:ol,scale:wx,scaleX:wx,scaleY:wx,scaleZ:wx,skew:ol,skewX:ol,skewY:ol,distance:Je,translateX:Je,translateY:Je,translateZ:Je,x:Je,y:Je,z:Je,perspective:Je,transformPerspective:Je,opacity:Rm,originX:EA,originY:EA,originZ:Je},DA={...dh,transform:Math.round},t2={...tJ,...nJ,zIndex:DA,size:Je,fillOpacity:Rm,strokeOpacity:Rm,numOctaves:DA},rJ={...t2,color:br,backgroundColor:br,outlineColor:br,fill:br,stroke:br,borderColor:br,borderTopColor:br,borderRightColor:br,borderBottomColor:br,borderLeftColor:br,filter:Hj,WebkitFilter:Hj},n2=e=>rJ[e];function EM(e,t){let n=n2(e);return n!==Hj&&(n=yl),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const aJ=new Set(["auto","none","0"]);function iJ(e,t,n){let a=0,i;for(;a<e.length&&!i;){const s=e[a];typeof s=="string"&&!aJ.has(s)&&Im(s).values.length&&(i=e[a]),a++}if(i&&n)for(const s of t)e[s]=EM(n,i)}class OM extends Xk{constructor(t,n,a,i,s){super(t,n,a,i,s,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:a}=this;if(!n||!n.current)return;super.readKeyframes();for(let c=0;c<t.length;c++){let h=t[c];if(typeof h=="string"&&(h=h.trim(),Jk(h))){const m=wM(h,n.current);m!==void 0&&(t[c]=m),c===t.length-1&&(this.finalKeyframe=h)}}if(this.resolveNoneKeyframes(),!MY.has(a)||t.length!==2)return;const[i,s]=t,o=MA(i),l=MA(s);if(o!==l)if(OA(o)&&OA(l))for(let c=0;c<t.length;c++){const h=t[c];typeof h=="string"&&(t[c]=parseFloat(h))}else this.needsMeasurement=!0}resolveNoneKeyframes(){const{unresolvedKeyframes:t,name:n}=this,a=[];for(let i=0;i<t.length;i++)TY(t[i])&&a.push(i);a.length&&iJ(t,a,n)}measureInitialState(){const{element:t,unresolvedKeyframes:n,name:a}=this;if(!t||!t.current)return;a==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=$u[a](t.measureViewportBox(),window.getComputedStyle(t.current)),n[0]=this.measuredOrigin;const i=n[n.length-1];i!==void 0&&t.getValue(a,i).jump(i,!1)}measureEndState(){var t;const{element:n,name:a,unresolvedKeyframes:i}=this;if(!n||!n.current)return;const s=n.getValue(a);s&&s.jump(this.measuredOrigin,!1);const o=i.length-1,l=i[o];i[o]=$u[a](n.measureViewportBox(),window.getComputedStyle(n.current)),l!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=l),!((t=this.removedTransforms)===null||t===void 0)&&t.length&&this.removedTransforms.forEach(([c,h])=>{n.getValue(c).set(h)}),this.resolveNoneKeyframes()}}function r2(e){return typeof e=="function"}let ly;function sJ(){ly=void 0}const ns={now:()=>(ly===void 0&&ns.set(rr.isProcessing||wY.useManualTiming?rr.timestamp:performance.now()),ly),set:e=>{ly=e,queueMicrotask(sJ)}},BA=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(yl.test(e)||e==="0")&&!e.startsWith("url("));function oJ(e){const t=e[0];if(e.length===1)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t)return!0}function lJ(e,t,n,a){const i=e[0];if(i===null)return!1;if(t==="display"||t==="visibility")return!0;const s=e[e.length-1],o=BA(i,t),l=BA(s,t);return!o||!l?!1:oJ(e)||(n==="spring"||r2(n))&&a}const cJ=40;class RM{constructor({autoplay:t=!0,delay:n=0,type:a="keyframes",repeat:i=0,repeatDelay:s=0,repeatType:o="loop",...l}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=ns.now(),this.options={autoplay:t,delay:n,type:a,repeat:i,repeatDelay:s,repeatType:o,...l},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt?this.resolvedAt-this.createdAt>cJ?this.resolvedAt:this.createdAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&zY(),this._resolved}onKeyframesResolved(t,n){this.resolvedAt=ns.now(),this.hasAttemptedResolve=!0;const{name:a,type:i,velocity:s,delay:o,onComplete:l,onUpdate:c,isGenerator:h}=this.options;if(!h&&!lJ(t,a,i,s))if(o)this.options.duration=0;else{c?.(Wv(t,this.options,n)),l?.(),this.resolveFinishedPromise();return}const m=this.initPlayback(t,n);m!==!1&&(this._resolved={keyframes:t,finalKeyframe:n,...m},this.onPostResolved())}onPostResolved(){}then(t,n){return this.currentFinishedPromise.then(t,n)}flatten(){this.options.type="keyframes",this.options.ease="linear"}updateFinishedPromise(){this.currentFinishedPromise=new Promise(t=>{this.resolveFinishedPromise=t})}}const Hu=(e,t,n)=>{const a=t-e;return a===0?1:(n-e)/a},IM=(e,t,n=10)=>{let a="";const i=Math.max(Math.round(t/n),2);for(let s=0;s<i;s++)a+=e(Hu(0,i-1,s))+", ";return`linear(${a.substring(0,a.length-2)})`};function MM(e,t){return t?e*(1e3/t):0}const dJ=5;function LM(e,t,n){const a=Math.max(t-dJ,0);return MM(n-e(a),t-a)}const wn={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1},Iw=.001;function uJ({duration:e=wn.duration,bounce:t=wn.bounce,velocity:n=wn.velocity,mass:a=wn.mass}){let i,s,o=1-t;o=no(wn.minDamping,wn.maxDamping,o),e=no(wn.minDuration,wn.maxDuration,Xs(e)),o<1?(i=h=>{const m=h*o,p=m*e,x=m-n,b=Wj(h,o),j=Math.exp(-p);return Iw-x/b*j},s=h=>{const p=h*o*e,x=p*n+n,b=Math.pow(o,2)*Math.pow(h,2)*e,j=Math.exp(-p),N=Wj(Math.pow(h,2),o);return(-i(h)+Iw>0?-1:1)*((x-b)*j)/N}):(i=h=>{const m=Math.exp(-h*e),p=(h-n)*e+1;return-Iw+m*p},s=h=>{const m=Math.exp(-h*e),p=(n-h)*(e*e);return m*p});const l=5/e,c=fJ(i,s,l);if(e=Js(e),isNaN(c))return{stiffness:wn.stiffness,damping:wn.damping,duration:e};{const h=Math.pow(c,2)*a;return{stiffness:h,damping:o*2*Math.sqrt(a*h),duration:e}}}const hJ=12;function fJ(e,t,n){let a=n;for(let i=1;i<hJ;i++)a=a-e(a)/t(a);return a}function Wj(e,t){return e*Math.sqrt(1-t*t)}const Vj=2e4;function DM(e){let t=0;const n=50;let a=e.next(t);for(;!a.done&&t<Vj;)t+=n,a=e.next(t);return t>=Vj?1/0:t}const mJ=["duration","bounce"],pJ=["stiffness","damping","mass"];function FA(e,t){return t.some(n=>e[n]!==void 0)}function gJ(e){let t={velocity:wn.velocity,stiffness:wn.stiffness,damping:wn.damping,mass:wn.mass,isResolvedFromDuration:!1,...e};if(!FA(e,pJ)&&FA(e,mJ))if(e.visualDuration){const n=e.visualDuration,a=2*Math.PI/(n*1.2),i=a*a,s=2*no(.05,1,1-e.bounce)*Math.sqrt(i);t={...t,mass:wn.mass,stiffness:i,damping:s}}else{const n=uJ(e);t={...t,...n,mass:wn.mass},t.isResolvedFromDuration=!0}return t}function BM(e=wn.visualDuration,t=wn.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:a,restDelta:i}=n;const s=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],l={done:!1,value:s},{stiffness:c,damping:h,mass:m,duration:p,velocity:x,isResolvedFromDuration:b}=gJ({...n,velocity:-Xs(n.velocity||0)}),j=x||0,N=h/(2*Math.sqrt(c*m)),_=o-s,S=Xs(Math.sqrt(c/m)),A=Math.abs(_)<5;a||(a=A?wn.restSpeed.granular:wn.restSpeed.default),i||(i=A?wn.restDelta.granular:wn.restDelta.default);let P;if(N<1){const O=Wj(S,N);P=M=>{const z=Math.exp(-N*S*M);return o-z*((j+N*S*_)/O*Math.sin(O*M)+_*Math.cos(O*M))}}else if(N===1)P=O=>o-Math.exp(-S*O)*(_+(j+S*_)*O);else{const O=S*Math.sqrt(N*N-1);P=M=>{const z=Math.exp(-N*S*M),$=Math.min(O*M,300);return o-z*((j+N*S*_)*Math.sinh($)+O*_*Math.cosh($))/O}}const I={calculatedDuration:b&&p||null,next:O=>{const M=P(O);if(b)l.done=O>=p;else{let z=0;N<1&&(z=O===0?Js(j):LM(P,O,M));const $=Math.abs(z)<=a,K=Math.abs(o-M)<=i;l.done=$&&K}return l.value=l.done?o:M,l},toString:()=>{const O=Math.min(DM(I),Vj),M=IM(z=>I.next(O*z).value,O,30);return O+"ms "+M}};return I}function zA({keyframes:e,velocity:t=0,power:n=.8,timeConstant:a=325,bounceDamping:i=10,bounceStiffness:s=500,modifyTarget:o,min:l,max:c,restDelta:h=.5,restSpeed:m}){const p=e[0],x={done:!1,value:p},b=$=>l!==void 0&&$<l||c!==void 0&&$>c,j=$=>l===void 0?c:c===void 0||Math.abs(l-$)<Math.abs(c-$)?l:c;let N=n*t;const _=p+N,S=o===void 0?_:o(_);S!==_&&(N=S-p);const A=$=>-N*Math.exp(-$/a),P=$=>S+A($),I=$=>{const K=A($),X=P($);x.done=Math.abs(K)<=h,x.value=x.done?S:X};let O,M;const z=$=>{b(x.value)&&(O=$,M=BM({keyframes:[x.value,j(x.value)],velocity:LM(P,$,x.value),damping:i,stiffness:s,restDelta:h,restSpeed:m}))};return z(0),{calculatedDuration:null,next:$=>{let K=!1;return!M&&O===void 0&&(K=!0,I($),z($)),O!==void 0&&$>=O?M.next($-O):(!K&&I($),x)}}}const xJ=lp(.42,0,1,1),yJ=lp(0,0,.58,1),FM=lp(.42,0,.58,1),vJ=e=>Array.isArray(e)&&typeof e[0]!="number",a2=e=>Array.isArray(e)&&typeof e[0]=="number",bJ={linear:ba,easeIn:xJ,easeInOut:FM,easeOut:yJ,circIn:Yk,circInOut:gM,circOut:pM,backIn:Zk,backInOut:fM,backOut:hM,anticipate:mM},$A=e=>{if(a2(e)){oM(e.length===4);const[t,n,a,i]=e;return lp(t,n,a,i)}else if(typeof e=="string")return bJ[e];return e},wJ=(e,t)=>n=>t(e(n)),dp=(...e)=>e.reduce(wJ),mn=(e,t,n)=>e+(t-e)*n;function Mw(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function jJ({hue:e,saturation:t,lightness:n,alpha:a}){e/=360,t/=100,n/=100;let i=0,s=0,o=0;if(!t)i=s=o=n;else{const l=n<.5?n*(1+t):n+t-n*t,c=2*n-l;i=Mw(c,l,e+1/3),s=Mw(c,l,e),o=Mw(c,l,e-1/3)}return{red:Math.round(i*255),green:Math.round(s*255),blue:Math.round(o*255),alpha:a}}function Cy(e,t){return n=>n>0?t:e}const Lw=(e,t,n)=>{const a=e*e,i=n*(t*t-a)+a;return i<0?0:Math.sqrt(i)},NJ=[$j,jc,vu],kJ=e=>NJ.find(t=>t.test(e));function HA(e){const t=kJ(e);if(!t)return!1;let n=t.parse(e);return t===vu&&(n=jJ(n)),n}const WA=(e,t)=>{const n=HA(e),a=HA(t);if(!n||!a)return Cy(e,t);const i={...n};return s=>(i.red=Lw(n.red,a.red,s),i.green=Lw(n.green,a.green,s),i.blue=Lw(n.blue,a.blue,s),i.alpha=mn(n.alpha,a.alpha,s),jc.transform(i))},Uj=new Set(["none","hidden"]);function _J(e,t){return Uj.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function SJ(e,t){return n=>mn(e,t,n)}function i2(e){return typeof e=="number"?SJ:typeof e=="string"?Jk(e)?Cy:br.test(e)?WA:AJ:Array.isArray(e)?zM:typeof e=="object"?br.test(e)?WA:CJ:Cy}function zM(e,t){const n=[...e],a=n.length,i=e.map((s,o)=>i2(s)(s,t[o]));return s=>{for(let o=0;o<a;o++)n[o]=i[o](s);return n}}function CJ(e,t){const n={...e,...t},a={};for(const i in n)e[i]!==void 0&&t[i]!==void 0&&(a[i]=i2(e[i])(e[i],t[i]));return i=>{for(const s in a)n[s]=a[s](i);return n}}function TJ(e,t){var n;const a=[],i={color:0,var:0,number:0};for(let s=0;s<t.values.length;s++){const o=t.types[s],l=e.indexes[o][i[o]],c=(n=e.values[l])!==null&&n!==void 0?n:0;a[s]=c,i[o]++}return a}const AJ=(e,t)=>{const n=yl.createTransformer(t),a=Im(e),i=Im(t);return a.indexes.var.length===i.indexes.var.length&&a.indexes.color.length===i.indexes.color.length&&a.indexes.number.length>=i.indexes.number.length?Uj.has(e)&&!i.values.length||Uj.has(t)&&!a.values.length?_J(e,t):dp(zM(TJ(a,i),i.values),n):Cy(e,t)};function $M(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?mn(e,t,n):i2(e)(e,t)}function PJ(e,t,n){const a=[],i=n||$M,s=e.length-1;for(let o=0;o<s;o++){let l=i(e[o],e[o+1]);if(t){const c=Array.isArray(t)?t[o]||ba:t;l=dp(c,l)}a.push(l)}return a}function EJ(e,t,{clamp:n=!0,ease:a,mixer:i}={}){const s=e.length;if(oM(s===t.length),s===1)return()=>t[0];if(s===2&&e[0]===e[1])return()=>t[1];e[0]>e[s-1]&&(e=[...e].reverse(),t=[...t].reverse());const o=PJ(t,a,i),l=o.length,c=h=>{let m=0;if(l>1)for(;m<e.length-2&&!(h<e[m+1]);m++);const p=Hu(e[m],e[m+1],h);return o[m](p)};return n?h=>c(no(e[0],e[s-1],h)):c}function OJ(e,t){const n=e[e.length-1];for(let a=1;a<=t;a++){const i=Hu(0,t,a);e.push(mn(n,1,i))}}function RJ(e){const t=[0];return OJ(t,e.length-1),t}function IJ(e,t){return e.map(n=>n*t)}function MJ(e,t){return e.map(()=>t||FM).splice(0,e.length-1)}function Ty({duration:e=300,keyframes:t,times:n,ease:a="easeInOut"}){const i=vJ(a)?a.map($A):$A(a),s={done:!1,value:t[0]},o=IJ(n&&n.length===t.length?n:RJ(t),e),l=EJ(o,t,{ease:Array.isArray(i)?i:MJ(t,i)});return{calculatedDuration:e,next:c=>(s.value=l(c),s.done=c>=e,s)}}const LJ=e=>{const t=({timestamp:n})=>e(n);return{start:()=>en.update(t,!0),stop:()=>xl(t),now:()=>rr.isProcessing?rr.timestamp:ns.now()}},DJ={decay:zA,inertia:zA,tween:Ty,keyframes:Ty,spring:BM},BJ=e=>e/100;class s2 extends RM{constructor(t){super(t),this.holdTime=null,this.cancelTime=null,this.currentTime=0,this.playbackSpeed=1,this.pendingPlayState="running",this.startTime=null,this.state="idle",this.stop=()=>{if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.teardown();const{onStop:c}=this.options;c&&c()};const{name:n,motionValue:a,element:i,keyframes:s}=this.options,o=i?.KeyframeResolver||Xk,l=(c,h)=>this.onKeyframesResolved(c,h);this.resolver=new o(s,l,n,a,i),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(t){const{type:n="keyframes",repeat:a=0,repeatDelay:i=0,repeatType:s,velocity:o=0}=this.options,l=r2(n)?n:DJ[n]||Ty;let c,h;l!==Ty&&typeof t[0]!="number"&&(c=dp(BJ,$M(t[0],t[1])),t=[0,100]);const m=l({...this.options,keyframes:t});s==="mirror"&&(h=l({...this.options,keyframes:[...t].reverse(),velocity:-o})),m.calculatedDuration===null&&(m.calculatedDuration=DM(m));const{calculatedDuration:p}=m,x=p+i,b=x*(a+1)-i;return{generator:m,mirroredGenerator:h,mapPercentToKeyframes:c,calculatedDuration:p,resolvedDuration:x,totalDuration:b}}onPostResolved(){const{autoplay:t=!0}=this.options;this.play(),this.pendingPlayState==="paused"||!t?this.pause():this.state=this.pendingPlayState}tick(t,n=!1){const{resolved:a}=this;if(!a){const{keyframes:$}=this.options;return{done:!0,value:$[$.length-1]}}const{finalKeyframe:i,generator:s,mirroredGenerator:o,mapPercentToKeyframes:l,keyframes:c,calculatedDuration:h,totalDuration:m,resolvedDuration:p}=a;if(this.startTime===null)return s.next(0);const{delay:x,repeat:b,repeatType:j,repeatDelay:N,onUpdate:_}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-m/this.speed,this.startTime)),n?this.currentTime=t:this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=Math.round(t-this.startTime)*this.speed;const S=this.currentTime-x*(this.speed>=0?1:-1),A=this.speed>=0?S<0:S>m;this.currentTime=Math.max(S,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=m);let P=this.currentTime,I=s;if(b){const $=Math.min(this.currentTime,m)/p;let K=Math.floor($),X=$%1;!X&&$>=1&&(X=1),X===1&&K--,K=Math.min(K,b+1),K%2&&(j==="reverse"?(X=1-X,N&&(X-=N/p)):j==="mirror"&&(I=o)),P=no(0,1,X)*p}const O=A?{done:!1,value:c[0]}:I.next(P);l&&(O.value=l(O.value));let{done:M}=O;!A&&h!==null&&(M=this.speed>=0?this.currentTime>=m:this.currentTime<=0);const z=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&M);return z&&i!==void 0&&(O.value=Wv(c,this.options,i)),_&&_(O.value),z&&this.finish(),O}get duration(){const{resolved:t}=this;return t?Xs(t.calculatedDuration):0}get time(){return Xs(this.currentTime)}set time(t){t=Js(t),this.currentTime=t,this.holdTime!==null||this.speed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.speed)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;this.playbackSpeed=t,n&&(this.time=Xs(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState="running";return}if(this.isStopped)return;const{driver:t=LJ,onPlay:n,startTime:a}=this.options;this.driver||(this.driver=t(s=>this.tick(s))),n&&n();const i=this.driver.now();this.holdTime!==null?this.startTime=i-this.holdTime:this.startTime?this.state==="finished"&&(this.startTime=i):this.startTime=a??this.calcStartTime(),this.state==="finished"&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state="running",this.driver.start()}pause(){var t;if(!this._resolved){this.pendingPlayState="paused";return}this.state="paused",this.holdTime=(t=this.currentTime)!==null&&t!==void 0?t:0}complete(){this.state!=="running"&&this.play(),this.pendingPlayState=this.state="finished",this.holdTime=null}finish(){this.teardown(),this.state="finished";const{onComplete:t}=this.options;t&&t()}cancel(){this.cancelTime!==null&&this.tick(this.cancelTime),this.teardown(),this.updateFinishedPromise()}teardown(){this.state="idle",this.stopDriver(),this.resolveFinishedPromise(),this.updateFinishedPromise(),this.startTime=this.cancelTime=null,this.resolver.cancel()}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}}const FJ=new Set(["opacity","clipPath","filter","transform"]);function o2(e){let t;return()=>(t===void 0&&(t=e()),t)}const zJ={linearEasing:void 0};function $J(e,t){const n=o2(e);return()=>{var a;return(a=zJ[t])!==null&&a!==void 0?a:n()}}const Ay=$J(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing");function HM(e){return!!(typeof e=="function"&&Ay()||!e||typeof e=="string"&&(e in qj||Ay())||a2(e)||Array.isArray(e)&&e.every(HM))}const tm=([e,t,n,a])=>`cubic-bezier(${e}, ${t}, ${n}, ${a})`,qj={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:tm([0,.65,.55,1]),circOut:tm([.55,0,1,.45]),backIn:tm([.31,.01,.66,-.59]),backOut:tm([.33,1.53,.69,.99])};function WM(e,t){if(e)return typeof e=="function"&&Ay()?IM(e,t):a2(e)?tm(e):Array.isArray(e)?e.map(n=>WM(n,t)||qj.easeOut):qj[e]}function HJ(e,t,n,{delay:a=0,duration:i=300,repeat:s=0,repeatType:o="loop",ease:l="easeInOut",times:c}={}){const h={[t]:n};c&&(h.offset=c);const m=WM(l,i);return Array.isArray(m)&&(h.easing=m),e.animate(h,{delay:a,duration:i,easing:Array.isArray(m)?"linear":m,fill:"both",iterations:s+1,direction:o==="reverse"?"alternate":"normal"})}function VA(e,t){e.timeline=t,e.onfinish=null}const WJ=o2(()=>Object.hasOwnProperty.call(Element.prototype,"animate")),Py=10,VJ=2e4;function UJ(e){return r2(e.type)||e.type==="spring"||!HM(e.ease)}function qJ(e,t){const n=new s2({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0});let a={done:!1,value:e[0]};const i=[];let s=0;for(;!a.done&&s<VJ;)a=n.sample(s),i.push(a.value),s+=Py;return{times:void 0,keyframes:i,duration:s-Py,ease:"linear"}}const VM={anticipate:mM,backInOut:fM,circInOut:gM};function GJ(e){return e in VM}class UA extends RM{constructor(t){super(t);const{name:n,motionValue:a,element:i,keyframes:s}=this.options;this.resolver=new OM(s,(o,l)=>this.onKeyframesResolved(o,l),n,a,i),this.resolver.scheduleResolve()}initPlayback(t,n){var a;let{duration:i=300,times:s,ease:o,type:l,motionValue:c,name:h,startTime:m}=this.options;if(!(!((a=c.owner)===null||a===void 0)&&a.current))return!1;if(typeof o=="string"&&Ay()&&GJ(o)&&(o=VM[o]),UJ(this.options)){const{onComplete:x,onUpdate:b,motionValue:j,element:N,..._}=this.options,S=qJ(t,_);t=S.keyframes,t.length===1&&(t[1]=t[0]),i=S.duration,s=S.times,o=S.ease,l="keyframes"}const p=HJ(c.owner.current,h,t,{...this.options,duration:i,times:s,ease:o});return p.startTime=m??this.calcStartTime(),this.pendingTimeline?(VA(p,this.pendingTimeline),this.pendingTimeline=void 0):p.onfinish=()=>{const{onComplete:x}=this.options;c.set(Wv(t,this.options,n)),x&&x(),this.cancel(),this.resolveFinishedPromise()},{animation:p,duration:i,times:s,type:l,ease:o,keyframes:t}}get duration(){const{resolved:t}=this;if(!t)return 0;const{duration:n}=t;return Xs(n)}get time(){const{resolved:t}=this;if(!t)return 0;const{animation:n}=t;return Xs(n.currentTime||0)}set time(t){const{resolved:n}=this;if(!n)return;const{animation:a}=n;a.currentTime=Js(t)}get speed(){const{resolved:t}=this;if(!t)return 1;const{animation:n}=t;return n.playbackRate}set speed(t){const{resolved:n}=this;if(!n)return;const{animation:a}=n;a.playbackRate=t}get state(){const{resolved:t}=this;if(!t)return"idle";const{animation:n}=t;return n.playState}get startTime(){const{resolved:t}=this;if(!t)return null;const{animation:n}=t;return n.startTime}attachTimeline(t){if(!this._resolved)this.pendingTimeline=t;else{const{resolved:n}=this;if(!n)return ba;const{animation:a}=n;VA(a,t)}return ba}play(){if(this.isStopped)return;const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.playState==="finished"&&this.updateFinishedPromise(),n.play()}pause(){const{resolved:t}=this;if(!t)return;const{animation:n}=t;n.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state==="idle")return;this.resolveFinishedPromise(),this.updateFinishedPromise();const{resolved:t}=this;if(!t)return;const{animation:n,keyframes:a,duration:i,type:s,ease:o,times:l}=t;if(n.playState==="idle"||n.playState==="finished")return;if(this.time){const{motionValue:h,onUpdate:m,onComplete:p,element:x,...b}=this.options,j=new s2({...b,keyframes:a,duration:i,type:s,ease:o,times:l,isGenerator:!0}),N=Js(this.time);h.setWithVelocity(j.sample(N-Py).value,j.sample(N).value,Py)}const{onStop:c}=this.options;c&&c(),this.cancel()}complete(){const{resolved:t}=this;t&&t.animation.finish()}cancel(){const{resolved:t}=this;t&&t.animation.cancel()}static supports(t){const{motionValue:n,name:a,repeatDelay:i,repeatType:s,damping:o,type:l}=t;return WJ()&&a&&FJ.has(a)&&n&&n.owner&&n.owner.current instanceof HTMLElement&&!n.owner.getProps().onUpdate&&!i&&s!=="mirror"&&o!==0&&l!=="inertia"}}const KJ=o2(()=>window.ScrollTimeline!==void 0);class ZJ{constructor(t){this.stop=()=>this.runAll("stop"),this.animations=t.filter(Boolean)}then(t,n){return Promise.all(this.animations).then(t).catch(n)}getAll(t){return this.animations[0][t]}setAll(t,n){for(let a=0;a<this.animations.length;a++)this.animations[a][t]=n}attachTimeline(t,n){const a=this.animations.map(i=>KJ()&&i.attachTimeline?i.attachTimeline(t):n(i));return()=>{a.forEach((i,s)=>{i&&i(),this.animations[s].stop()})}}get time(){return this.getAll("time")}set time(t){this.setAll("time",t)}get speed(){return this.getAll("speed")}set speed(t){this.setAll("speed",t)}get startTime(){return this.getAll("startTime")}get duration(){let t=0;for(let n=0;n<this.animations.length;n++)t=Math.max(t,this.animations[n].duration);return t}runAll(t){this.animations.forEach(n=>n[t]())}flatten(){this.runAll("flatten")}play(){this.runAll("play")}pause(){this.runAll("pause")}cancel(){this.runAll("cancel")}complete(){this.runAll("complete")}}function YJ({when:e,delay:t,delayChildren:n,staggerChildren:a,staggerDirection:i,repeat:s,repeatType:o,repeatDelay:l,from:c,elapsed:h,...m}){return!!Object.keys(m).length}const l2=(e,t,n,a={},i,s)=>o=>{const l=Kk(a,e)||{},c=l.delay||a.delay||0;let{elapsed:h=0}=a;h=h-Js(c);let m={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...l,delay:-h,onUpdate:x=>{t.set(x),l.onUpdate&&l.onUpdate(x)},onComplete:()=>{o(),l.onComplete&&l.onComplete()},name:e,motionValue:t,element:s?void 0:i};YJ(l)||(m={...m,...bY(e,m)}),m.duration&&(m.duration=Js(m.duration)),m.repeatDelay&&(m.repeatDelay=Js(m.repeatDelay)),m.from!==void 0&&(m.keyframes[0]=m.from);let p=!1;if((m.type===!1||m.duration===0&&!m.repeatDelay)&&(m.duration=0,m.delay===0&&(p=!0)),p&&!s&&t.get()!==void 0){const x=Wv(m.keyframes,l);if(x!==void 0)return en.update(()=>{m.onUpdate(x),m.onComplete()}),new ZJ([])}return!s&&UA.supports(m)?new UA(m):new s2(m)},JJ=e=>!!(e&&typeof e=="object"&&e.mix&&e.toValue),XJ=e=>Bj(e)?e[e.length-1]||0:e;function c2(e,t){e.indexOf(t)===-1&&e.push(t)}function d2(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}class u2{constructor(){this.subscriptions=[]}add(t){return c2(this.subscriptions,t),()=>d2(this.subscriptions,t)}notify(t,n,a){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,a);else for(let s=0;s<i;s++){const o=this.subscriptions[s];o&&o(t,n,a)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const qA=30,QJ=e=>!isNaN(parseFloat(e));class eX{constructor(t,n={}){this.version="11.15.0",this.canTrackVelocity=null,this.events={},this.updateAndNotify=(a,i=!0)=>{const s=ns.now();this.updatedAt!==s&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(a),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),i&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=ns.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=QJ(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new u2);const a=this.events[t].add(n);return t==="change"?()=>{a(),en.read(()=>{this.events.change.getSize()||this.stop()})}:a}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t,n=!0){!n||!this.passiveEffect?this.updateAndNotify(t,n):this.passiveEffect(t,this.updateAndNotify)}setWithVelocity(t,n,a){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-a}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=ns.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>qA)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,qA);return MM(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function Mm(e,t){return new eX(e,t)}function tX(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,Mm(n))}function nX(e,t){const n=Hv(e,t);let{transitionEnd:a={},transition:i={},...s}=n||{};s={...s,...a};for(const o in s){const l=XJ(s[o]);tX(e,o,l)}}const h2=e=>e.replace(/([a-z])([A-Z])/gu,"$1-$2").toLowerCase(),rX="framerAppearId",UM="data-"+h2(rX);function qM(e){return e.props[UM]}const Nr=e=>!!(e&&e.getVelocity);function aX(e){return!!(Nr(e)&&e.add)}function Gj(e,t){const n=e.getValue("willChange");if(aX(n))return n.add(t)}function iX({protectedKeys:e,needsAnimating:t},n){const a=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,a}function GM(e,t,{delay:n=0,transitionOverride:a,type:i}={}){var s;let{transition:o=e.getDefaultTransition(),transitionEnd:l,...c}=t;a&&(o=a);const h=[],m=i&&e.animationState&&e.animationState.getState()[i];for(const p in c){const x=e.getValue(p,(s=e.latestValues[p])!==null&&s!==void 0?s:null),b=c[p];if(b===void 0||m&&iX(m,p))continue;const j={delay:n,...Kk(o||{},p)};let N=!1;if(window.MotionHandoffAnimation){const S=qM(e);if(S){const A=window.MotionHandoffAnimation(S,p,en);A!==null&&(j.startTime=A,N=!0)}}Gj(e,p),x.start(l2(p,x,b,e.shouldReduceMotion&&qc.has(p)?{type:!1}:j,e,N));const _=x.animation;_&&h.push(_)}return l&&Promise.all(h).then(()=>{en.update(()=>{l&&nX(e,l)})}),h}function Kj(e,t,n={}){var a;const i=Hv(e,t,n.type==="exit"?(a=e.presenceContext)===null||a===void 0?void 0:a.custom:void 0);let{transition:s=e.getDefaultTransition()||{}}=i||{};n.transitionOverride&&(s=n.transitionOverride);const o=i?()=>Promise.all(GM(e,i,n)):()=>Promise.resolve(),l=e.variantChildren&&e.variantChildren.size?(h=0)=>{const{delayChildren:m=0,staggerChildren:p,staggerDirection:x}=s;return sX(e,t,m+h,p,x,n)}:()=>Promise.resolve(),{when:c}=s;if(c){const[h,m]=c==="beforeChildren"?[o,l]:[l,o];return h().then(()=>m())}else return Promise.all([o(),l(n.delay)])}function sX(e,t,n=0,a=0,i=1,s){const o=[],l=(e.variantChildren.size-1)*a,c=i===1?(h=0)=>h*a:(h=0)=>l-h*a;return Array.from(e.variantChildren).sort(oX).forEach((h,m)=>{h.notify("AnimationStart",t),o.push(Kj(h,t,{...s,delay:n+c(m)}).then(()=>h.notify("AnimationComplete",t)))}),Promise.all(o)}function oX(e,t){return e.sortNodePosition(t)}function lX(e,t,n={}){e.notify("AnimationStart",t);let a;if(Array.isArray(t)){const i=t.map(s=>Kj(e,s,n));a=Promise.all(i)}else if(typeof t=="string")a=Kj(e,t,n);else{const i=typeof t=="function"?Hv(e,t,n.custom):t;a=Promise.all(GM(e,i,n))}return a.then(()=>{e.notify("AnimationComplete",t)})}const cX=Gk.length;function KM(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?KM(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;n<cX;n++){const a=Gk[n],i=e.props[a];(Om(i)||i===!1)&&(t[a]=i)}return t}const dX=[...qk].reverse(),uX=qk.length;function hX(e){return t=>Promise.all(t.map(({animation:n,options:a})=>lX(e,n,a)))}function fX(e){let t=hX(e),n=GA(),a=!0;const i=c=>(h,m)=>{var p;const x=Hv(e,m,c==="exit"?(p=e.presenceContext)===null||p===void 0?void 0:p.custom:void 0);if(x){const{transition:b,transitionEnd:j,...N}=x;h={...h,...N,...j}}return h};function s(c){t=c(e)}function o(c){const{props:h}=e,m=KM(e.parent)||{},p=[],x=new Set;let b={},j=1/0;for(let _=0;_<uX;_++){const S=dX[_],A=n[S],P=h[S]!==void 0?h[S]:m[S],I=Om(P),O=S===c?A.isActive:null;O===!1&&(j=_);let M=P===m[S]&&P!==h[S]&&I;if(M&&a&&e.manuallyAnimateOnMount&&(M=!1),A.protectedKeys={...b},!A.isActive&&O===null||!P&&!A.prevProp||$v(P)||typeof P=="boolean")continue;const z=mX(A.prevProp,P);let $=z||S===c&&A.isActive&&!M&&I||_>j&&I,K=!1;const X=Array.isArray(P)?P:[P];let te=X.reduce(i(S),{});O===!1&&(te={});const{prevResolvedValues:q={}}=A,he={...q,...te},ne=Q=>{$=!0,x.has(Q)&&(K=!0,x.delete(Q)),A.needsAnimating[Q]=!0;const W=e.getValue(Q);W&&(W.liveStyle=!1)};for(const Q in he){const W=te[Q],ie=q[Q];if(b.hasOwnProperty(Q))continue;let Y=!1;Bj(W)&&Bj(ie)?Y=!sM(W,ie):Y=W!==ie,Y?W!=null?ne(Q):x.add(Q):W!==void 0&&x.has(Q)?ne(Q):A.protectedKeys[Q]=!0}A.prevProp=P,A.prevResolvedValues=te,A.isActive&&(b={...b,...te}),a&&e.blockInitialAnimation&&($=!1),$&&(!(M&&z)||K)&&p.push(...X.map(Q=>({animation:Q,options:{type:S}})))}if(x.size){const _={};x.forEach(S=>{const A=e.getBaseTarget(S),P=e.getValue(S);P&&(P.liveStyle=!0),_[S]=A??null}),p.push({animation:_})}let N=!!p.length;return a&&(h.initial===!1||h.initial===h.animate)&&!e.manuallyAnimateOnMount&&(N=!1),a=!1,N?t(p):Promise.resolve()}function l(c,h){var m;if(n[c].isActive===h)return Promise.resolve();(m=e.variantChildren)===null||m===void 0||m.forEach(x=>{var b;return(b=x.animationState)===null||b===void 0?void 0:b.setActive(c,h)}),n[c].isActive=h;const p=o(c);for(const x in n)n[x].protectedKeys={};return p}return{animateChanges:o,setActive:l,setAnimateFunction:s,getState:()=>n,reset:()=>{n=GA(),a=!0}}}function mX(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!sM(t,e):!1}function sc(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function GA(){return{animate:sc(!0),whileInView:sc(),whileHover:sc(),whileTap:sc(),whileDrag:sc(),whileFocus:sc(),exit:sc()}}class _l{constructor(t){this.isMounted=!1,this.node=t}update(){}}class pX extends _l{constructor(t){super(t),t.animationState||(t.animationState=fX(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();$v(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)===null||t===void 0||t.call(this)}}let gX=0;class xX extends _l{constructor(){super(...arguments),this.id=gX++}update(){if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:a}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===a)return;const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>n(this.id))}mount(){const{register:t}=this.node.presenceContext||{};t&&(this.unmount=t(this.id))}unmount(){}}const yX={animation:{Feature:pX},exit:{Feature:xX}},pi={x:!1,y:!1};function ZM(){return pi.x||pi.y}function vX(e,t,n){var a;if(e instanceof Element)return[e];if(typeof e=="string"){let i=document;const s=(a=void 0)!==null&&a!==void 0?a:i.querySelectorAll(e);return s?Array.from(s):[]}return Array.from(e)}function YM(e,t){const n=vX(e),a=new AbortController,i={passive:!0,...t,signal:a.signal};return[n,i,()=>a.abort()]}function KA(e){return t=>{t.pointerType==="touch"||ZM()||e(t)}}function bX(e,t,n={}){const[a,i,s]=YM(e,n),o=KA(l=>{const{target:c}=l,h=t(l);if(!h||!c)return;const m=KA(p=>{h(p),c.removeEventListener("pointerleave",m)});c.addEventListener("pointerleave",m,i)});return a.forEach(l=>{l.addEventListener("pointerenter",o,i)}),s}const f2=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,nm=new WeakSet;function ZA(e){return t=>{t.key==="Enter"&&e(t)}}function Dw(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const wX=(e,t)=>{const n=e.currentTarget;if(!n)return;const a=ZA(()=>{if(nm.has(n))return;Dw(n,"down");const i=ZA(()=>{Dw(n,"up")}),s=()=>Dw(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",s,t)});n.addEventListener("keydown",a,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",a),t)},jX=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function NX(e){return jX.has(e.tagName)||e.tabIndex!==-1}const JM=(e,t)=>t?e===t?!0:JM(e,t.parentElement):!1;function YA(e){return f2(e)&&!ZM()}function kX(e,t,n={}){const[a,i,s]=YM(e,n),o=l=>{const c=l.currentTarget;if(!YA(l)||nm.has(c))return;nm.add(c);const h=t(l),m=(b,j)=>{window.removeEventListener("pointerup",p),window.removeEventListener("pointercancel",x),!(!YA(b)||!nm.has(c))&&(nm.delete(c),h&&h(b,{success:j}))},p=b=>{m(b,n.useGlobalTarget||JM(c,b.target))},x=b=>{m(b,!1)};window.addEventListener("pointerup",p,i),window.addEventListener("pointercancel",x,i)};return a.forEach(l=>{NX(l)||(l.tabIndex=0),(n.useGlobalTarget?window:l).addEventListener("pointerdown",o,i),l.addEventListener("focus",h=>wX(h,i),i)}),s}function _X(e){return e==="x"||e==="y"?pi[e]?null:(pi[e]=!0,()=>{pi[e]=!1}):pi.x||pi.y?null:(pi.x=pi.y=!0,()=>{pi.x=pi.y=!1})}function up(e){return{point:{x:e.pageX,y:e.pageY}}}const SX=e=>t=>f2(t)&&e(t,up(t));function Lm(e,t,n,a={passive:!0}){return e.addEventListener(t,n,a),()=>e.removeEventListener(t,n)}function mm(e,t,n,a){return Lm(e,t,SX(n),a)}const JA=(e,t)=>Math.abs(e-t);function CX(e,t){const n=JA(e.x,t.x),a=JA(e.y,t.y);return Math.sqrt(n**2+a**2)}class XM{constructor(t,n,{transformPagePoint:a,contextWindow:i,dragSnapToOrigin:s=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const p=Fw(this.lastMoveEventInfo,this.history),x=this.startEvent!==null,b=CX(p.offset,{x:0,y:0})>=3;if(!x&&!b)return;const{point:j}=p,{timestamp:N}=rr;this.history.push({...j,timestamp:N});const{onStart:_,onMove:S}=this.handlers;x||(_&&_(this.lastMoveEvent,p),this.startEvent=this.lastMoveEvent),S&&S(this.lastMoveEvent,p)},this.handlePointerMove=(p,x)=>{this.lastMoveEvent=p,this.lastMoveEventInfo=Bw(x,this.transformPagePoint),en.update(this.updatePoint,!0)},this.handlePointerUp=(p,x)=>{this.end();const{onEnd:b,onSessionEnd:j,resumeAnimation:N}=this.handlers;if(this.dragSnapToOrigin&&N&&N(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const _=Fw(p.type==="pointercancel"?this.lastMoveEventInfo:Bw(x,this.transformPagePoint),this.history);this.startEvent&&b&&b(p,_),j&&j(p,_)},!f2(t))return;this.dragSnapToOrigin=s,this.handlers=n,this.transformPagePoint=a,this.contextWindow=i||window;const o=up(t),l=Bw(o,this.transformPagePoint),{point:c}=l,{timestamp:h}=rr;this.history=[{...c,timestamp:h}];const{onSessionStart:m}=n;m&&m(t,Fw(l,this.history)),this.removeListeners=dp(mm(this.contextWindow,"pointermove",this.handlePointerMove),mm(this.contextWindow,"pointerup",this.handlePointerUp),mm(this.contextWindow,"pointercancel",this.handlePointerUp))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),xl(this.updatePoint)}}function Bw(e,t){return t?{point:t(e.point)}:e}function XA(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Fw({point:e},t){return{point:e,delta:XA(e,QM(t)),offset:XA(e,TX(t)),velocity:AX(t,.1)}}function TX(e){return e[0]}function QM(e){return e[e.length-1]}function AX(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,a=null;const i=QM(e);for(;n>=0&&(a=e[n],!(i.timestamp-a.timestamp>Js(t)));)n--;if(!a)return{x:0,y:0};const s=Xs(i.timestamp-a.timestamp);if(s===0)return{x:0,y:0};const o={x:(i.x-a.x)/s,y:(i.y-a.y)/s};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}function bu(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}const eL=1e-4,PX=1-eL,EX=1+eL,tL=.01,OX=0-tL,RX=0+tL;function Na(e){return e.max-e.min}function IX(e,t,n){return Math.abs(e-t)<=n}function QA(e,t,n,a=.5){e.origin=a,e.originPoint=mn(t.min,t.max,e.origin),e.scale=Na(n)/Na(t),e.translate=mn(n.min,n.max,e.origin)-e.originPoint,(e.scale>=PX&&e.scale<=EX||isNaN(e.scale))&&(e.scale=1),(e.translate>=OX&&e.translate<=RX||isNaN(e.translate))&&(e.translate=0)}function pm(e,t,n,a){QA(e.x,t.x,n.x,a?a.originX:void 0),QA(e.y,t.y,n.y,a?a.originY:void 0)}function eP(e,t,n){e.min=n.min+t.min,e.max=e.min+Na(t)}function MX(e,t,n){eP(e.x,t.x,n.x),eP(e.y,t.y,n.y)}function tP(e,t,n){e.min=t.min-n.min,e.max=e.min+Na(t)}function gm(e,t,n){tP(e.x,t.x,n.x),tP(e.y,t.y,n.y)}function LX(e,{min:t,max:n},a){return t!==void 0&&e<t?e=a?mn(t,e,a.min):Math.max(e,t):n!==void 0&&e>n&&(e=a?mn(n,e,a.max):Math.min(e,n)),e}function nP(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function DX(e,{top:t,left:n,bottom:a,right:i}){return{x:nP(e.x,n,i),y:nP(e.y,t,a)}}function rP(e,t){let n=t.min-e.min,a=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,a]=[a,n]),{min:n,max:a}}function BX(e,t){return{x:rP(e.x,t.x),y:rP(e.y,t.y)}}function FX(e,t){let n=.5;const a=Na(e),i=Na(t);return i>a?n=Hu(t.min,t.max-a,e.min):a>i&&(n=Hu(e.min,e.max-i,t.min)),no(0,1,n)}function zX(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const Zj=.35;function $X(e=Zj){return e===!1?e=0:e===!0&&(e=Zj),{x:aP(e,"left","right"),y:aP(e,"top","bottom")}}function aP(e,t,n){return{min:iP(e,t),max:iP(e,n)}}function iP(e,t){return typeof e=="number"?e:e[t]||0}const sP=()=>({translate:0,scale:1,origin:0,originPoint:0}),wu=()=>({x:sP(),y:sP()}),oP=()=>({min:0,max:0}),kn=()=>({x:oP(),y:oP()});function $a(e){return[e("x"),e("y")]}function nL({top:e,left:t,right:n,bottom:a}){return{x:{min:t,max:n},y:{min:e,max:a}}}function HX({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function WX(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),a=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:a.y,right:a.x}}function zw(e){return e===void 0||e===1}function Yj({scale:e,scaleX:t,scaleY:n}){return!zw(e)||!zw(t)||!zw(n)}function uc(e){return Yj(e)||rL(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function rL(e){return lP(e.x)||lP(e.y)}function lP(e){return e&&e!=="0%"}function Ey(e,t,n){const a=e-n,i=t*a;return n+i}function cP(e,t,n,a,i){return i!==void 0&&(e=Ey(e,i,a)),Ey(e,n,a)+t}function Jj(e,t=0,n=1,a,i){e.min=cP(e.min,t,n,a,i),e.max=cP(e.max,t,n,a,i)}function aL(e,{x:t,y:n}){Jj(e.x,t.translate,t.scale,t.originPoint),Jj(e.y,n.translate,n.scale,n.originPoint)}const dP=.999999999999,uP=1.0000000000001;function VX(e,t,n,a=!1){const i=n.length;if(!i)return;t.x=t.y=1;let s,o;for(let l=0;l<i;l++){s=n[l],o=s.projectionDelta;const{visualElement:c}=s.options;c&&c.props.style&&c.props.style.display==="contents"||(a&&s.options.layoutScroll&&s.scroll&&s!==s.root&&Nu(e,{x:-s.scroll.offset.x,y:-s.scroll.offset.y}),o&&(t.x*=o.x.scale,t.y*=o.y.scale,aL(e,o)),a&&uc(s.latestValues)&&Nu(e,s.latestValues))}t.x<uP&&t.x>dP&&(t.x=1),t.y<uP&&t.y>dP&&(t.y=1)}function ju(e,t){e.min=e.min+t,e.max=e.max+t}function hP(e,t,n,a,i=.5){const s=mn(e.min,e.max,i);Jj(e,t,n,s,a)}function Nu(e,t){hP(e.x,t.x,t.scaleX,t.scale,t.originX),hP(e.y,t.y,t.scaleY,t.scale,t.originY)}function iL(e,t){return nL(WX(e.getBoundingClientRect(),t))}function UX(e,t,n){const a=iL(e,n),{scroll:i}=t;return i&&(ju(a.x,i.offset.x),ju(a.y,i.offset.y)),a}const sL=({current:e})=>e?e.ownerDocument.defaultView:null,qX=new WeakMap;class GX{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=kn(),this.visualElement=t}start(t,{snapToCursor:n=!1}={}){const{presenceContext:a}=this.visualElement;if(a&&a.isPresent===!1)return;const i=m=>{const{dragSnapToOrigin:p}=this.getProps();p?this.pauseAnimation():this.stopAnimation(),n&&this.snapToCursor(up(m).point)},s=(m,p)=>{const{drag:x,dragPropagation:b,onDragStart:j}=this.getProps();if(x&&!b&&(this.openDragLock&&this.openDragLock(),this.openDragLock=_X(x),!this.openDragLock))return;this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),$a(_=>{let S=this.getAxisMotionValue(_).get()||0;if(ts.test(S)){const{projection:A}=this.visualElement;if(A&&A.layout){const P=A.layout.layoutBox[_];P&&(S=Na(P)*(parseFloat(S)/100))}}this.originPoint[_]=S}),j&&en.postRender(()=>j(m,p)),Gj(this.visualElement,"transform");const{animationState:N}=this.visualElement;N&&N.setActive("whileDrag",!0)},o=(m,p)=>{const{dragPropagation:x,dragDirectionLock:b,onDirectionLock:j,onDrag:N}=this.getProps();if(!x&&!this.openDragLock)return;const{offset:_}=p;if(b&&this.currentDirection===null){this.currentDirection=KX(_),this.currentDirection!==null&&j&&j(this.currentDirection);return}this.updateAxis("x",p.point,_),this.updateAxis("y",p.point,_),this.visualElement.render(),N&&N(m,p)},l=(m,p)=>this.stop(m,p),c=()=>$a(m=>{var p;return this.getAnimationState(m)==="paused"&&((p=this.getAxisMotionValue(m).animation)===null||p===void 0?void 0:p.play())}),{dragSnapToOrigin:h}=this.getProps();this.panSession=new XM(t,{onSessionStart:i,onStart:s,onMove:o,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:h,contextWindow:sL(this.visualElement)})}stop(t,n){const a=this.isDragging;if(this.cancel(),!a)return;const{velocity:i}=n;this.startAnimation(i);const{onDragEnd:s}=this.getProps();s&&en.postRender(()=>s(t,n))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;const{dragPropagation:a}=this.getProps();!a&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}updateAxis(t,n,a){const{drag:i}=this.getProps();if(!a||!jx(t,i,this.currentDirection))return;const s=this.getAxisMotionValue(t);let o=this.originPoint[t]+a[t];this.constraints&&this.constraints[t]&&(o=LX(o,this.constraints[t],this.elastic[t])),s.set(o)}resolveConstraints(){var t;const{dragConstraints:n,dragElastic:a}=this.getProps(),i=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(t=this.visualElement.projection)===null||t===void 0?void 0:t.layout,s=this.constraints;n&&bu(n)?this.constraints||(this.constraints=this.resolveRefConstraints()):n&&i?this.constraints=DX(i.layoutBox,n):this.constraints=!1,this.elastic=$X(a),s!==this.constraints&&i&&this.constraints&&!this.hasMutatedConstraints&&$a(o=>{this.constraints!==!1&&this.getAxisMotionValue(o)&&(this.constraints[o]=zX(i.layoutBox[o],this.constraints[o]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!bu(t))return!1;const a=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const s=UX(a,i.root,this.visualElement.getTransformPagePoint());let o=BX(i.layout.layoutBox,s);if(n){const l=n(HX(o));this.hasMutatedConstraints=!!l,l&&(o=nL(l))}return o}startAnimation(t){const{drag:n,dragMomentum:a,dragElastic:i,dragTransition:s,dragSnapToOrigin:o,onDragTransitionEnd:l}=this.getProps(),c=this.constraints||{},h=$a(m=>{if(!jx(m,n,this.currentDirection))return;let p=c&&c[m]||{};o&&(p={min:0,max:0});const x=i?200:1e6,b=i?40:1e7,j={type:"inertia",velocity:a?t[m]:0,bounceStiffness:x,bounceDamping:b,timeConstant:750,restDelta:1,restSpeed:10,...s,...p};return this.startAxisValueAnimation(m,j)});return Promise.all(h).then(l)}startAxisValueAnimation(t,n){const a=this.getAxisMotionValue(t);return Gj(this.visualElement,t),a.start(l2(t,a,0,n,this.visualElement,!1))}stopAnimation(){$a(t=>this.getAxisMotionValue(t).stop())}pauseAnimation(){$a(t=>{var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.pause()})}getAnimationState(t){var n;return(n=this.getAxisMotionValue(t).animation)===null||n===void 0?void 0:n.state}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,a=this.visualElement.getProps(),i=a[n];return i||this.visualElement.getValue(t,(a.initial?a.initial[t]:void 0)||0)}snapToCursor(t){$a(n=>{const{drag:a}=this.getProps();if(!jx(n,a,this.currentDirection))return;const{projection:i}=this.visualElement,s=this.getAxisMotionValue(n);if(i&&i.layout){const{min:o,max:l}=i.layout.layoutBox[n];s.set(t[n]-mn(o,l,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:a}=this.visualElement;if(!bu(n)||!a||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};$a(o=>{const l=this.getAxisMotionValue(o);if(l&&this.constraints!==!1){const c=l.get();i[o]=FX({min:c,max:c},this.constraints[o])}});const{transformTemplate:s}=this.visualElement.getProps();this.visualElement.current.style.transform=s?s({},""):"none",a.root&&a.root.updateScroll(),a.updateLayout(),this.resolveConstraints(),$a(o=>{if(!jx(o,t,null))return;const l=this.getAxisMotionValue(o),{min:c,max:h}=this.constraints[o];l.set(mn(c,h,i[o]))})}addListeners(){if(!this.visualElement.current)return;qX.set(this.visualElement,this);const t=this.visualElement.current,n=mm(t,"pointerdown",c=>{const{drag:h,dragListener:m=!0}=this.getProps();h&&m&&this.start(c)}),a=()=>{const{dragConstraints:c}=this.getProps();bu(c)&&c.current&&(this.constraints=this.resolveRefConstraints())},{projection:i}=this.visualElement,s=i.addEventListener("measure",a);i&&!i.layout&&(i.root&&i.root.updateScroll(),i.updateLayout()),en.read(a);const o=Lm(window,"resize",()=>this.scalePositionWithinConstraints()),l=i.addEventListener("didUpdate",(({delta:c,hasLayoutChanged:h})=>{this.isDragging&&h&&($a(m=>{const p=this.getAxisMotionValue(m);p&&(this.originPoint[m]+=c[m].translate,p.set(p.get()+c[m].translate))}),this.visualElement.render())}));return()=>{o(),n(),s(),l&&l()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:a=!1,dragPropagation:i=!1,dragConstraints:s=!1,dragElastic:o=Zj,dragMomentum:l=!0}=t;return{...t,drag:n,dragDirectionLock:a,dragPropagation:i,dragConstraints:s,dragElastic:o,dragMomentum:l}}}function jx(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function KX(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class ZX extends _l{constructor(t){super(t),this.removeGroupControls=ba,this.removeListeners=ba,this.controls=new GX(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||ba}unmount(){this.removeGroupControls(),this.removeListeners()}}const fP=e=>(t,n)=>{e&&en.postRender(()=>e(t,n))};class YX extends _l{constructor(){super(...arguments),this.removePointerDownListener=ba}onPointerDown(t){this.session=new XM(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:sL(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:a,onPanEnd:i}=this.node.getProps();return{onSessionStart:fP(t),onStart:fP(n),onMove:a,onEnd:(s,o)=>{delete this.session,i&&en.postRender(()=>i(s,o))}}}mount(){this.removePointerDownListener=mm(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}const Vv=v.createContext(null);function JX(){const e=v.useContext(Vv);if(e===null)return[!0,null];const{isPresent:t,onExitComplete:n,register:a}=e,i=v.useId();v.useEffect(()=>a(i),[]);const s=v.useCallback(()=>n&&n(i),[i,n]);return!t&&n?[!1,s]:[!0]}const m2=v.createContext({}),oL=v.createContext({}),cy={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function mP(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const Lf={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(Je.test(e))e=parseFloat(e);else return e;const n=mP(e,t.target.x),a=mP(e,t.target.y);return`${n}% ${a}%`}},XX={correct:(e,{treeScale:t,projectionDelta:n})=>{const a=e,i=yl.parse(e);if(i.length>5)return a;const s=yl.createTransformer(e),o=typeof i[0]!="number"?1:0,l=n.x.scale*t.x,c=n.y.scale*t.y;i[0+o]/=l,i[1+o]/=c;const h=mn(l,c,.5);return typeof i[2+o]=="number"&&(i[2+o]/=h),typeof i[3+o]=="number"&&(i[3+o]/=h),s(i)}},Oy={};function QX(e){Object.assign(Oy,e)}const{schedule:p2}=lM(queueMicrotask,!1);class eQ extends v.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:a,layoutId:i}=this.props,{projection:s}=t;QX(tQ),s&&(n.group&&n.group.add(s),a&&a.register&&i&&a.register(s),s.root.didUpdate(),s.addEventListener("animationComplete",()=>{this.safeToRemove()}),s.setOptions({...s.options,onExitComplete:()=>this.safeToRemove()})),cy.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:a,drag:i,isPresent:s}=this.props,o=a.projection;return o&&(o.isPresent=s,i||t.layoutDependency!==n||n===void 0?o.willUpdate():this.safeToRemove(),t.isPresent!==s&&(s?o.promote():o.relegate()||en.postRender(()=>{const l=o.getStack();(!l||!l.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{projection:t}=this.props.visualElement;t&&(t.root.didUpdate(),p2.postRender(()=>{!t.currentAnimation&&t.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:a}=this.props,{projection:i}=t;i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),a&&a.deregister&&a.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function lL(e){const[t,n]=JX(),a=v.useContext(m2);return r.jsx(eQ,{...e,layoutGroup:a,switchLayoutGroup:v.useContext(oL),isPresent:t,safeToRemove:n})}const tQ={borderRadius:{...Lf,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:Lf,borderTopRightRadius:Lf,borderBottomLeftRadius:Lf,borderBottomRightRadius:Lf,boxShadow:XX},cL=["TopLeft","TopRight","BottomLeft","BottomRight"],nQ=cL.length,pP=e=>typeof e=="string"?parseFloat(e):e,gP=e=>typeof e=="number"||Je.test(e);function rQ(e,t,n,a,i,s){i?(e.opacity=mn(0,n.opacity!==void 0?n.opacity:1,aQ(a)),e.opacityExit=mn(t.opacity!==void 0?t.opacity:1,0,iQ(a))):s&&(e.opacity=mn(t.opacity!==void 0?t.opacity:1,n.opacity!==void 0?n.opacity:1,a));for(let o=0;o<nQ;o++){const l=`border${cL[o]}Radius`;let c=xP(t,l),h=xP(n,l);if(c===void 0&&h===void 0)continue;c||(c=0),h||(h=0),c===0||h===0||gP(c)===gP(h)?(e[l]=Math.max(mn(pP(c),pP(h),a),0),(ts.test(h)||ts.test(c))&&(e[l]+="%")):e[l]=h}(t.rotate||n.rotate)&&(e.rotate=mn(t.rotate||0,n.rotate||0,a))}function xP(e,t){return e[t]!==void 0?e[t]:e.borderRadius}const aQ=dL(0,.5,pM),iQ=dL(.5,.95,ba);function dL(e,t,n){return a=>a<e?0:a>t?1:n(Hu(e,t,a))}function yP(e,t){e.min=t.min,e.max=t.max}function Fa(e,t){yP(e.x,t.x),yP(e.y,t.y)}function vP(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function bP(e,t,n,a,i){return e-=t,e=Ey(e,1/n,a),i!==void 0&&(e=Ey(e,1/i,a)),e}function sQ(e,t=0,n=1,a=.5,i,s=e,o=e){if(ts.test(t)&&(t=parseFloat(t),t=mn(o.min,o.max,t/100)-o.min),typeof t!="number")return;let l=mn(s.min,s.max,a);e===s&&(l-=t),e.min=bP(e.min,t,n,l,i),e.max=bP(e.max,t,n,l,i)}function wP(e,t,[n,a,i],s,o){sQ(e,t[n],t[a],t[i],t.scale,s,o)}const oQ=["x","scaleX","originX"],lQ=["y","scaleY","originY"];function jP(e,t,n,a){wP(e.x,t,oQ,n?n.x:void 0,a?a.x:void 0),wP(e.y,t,lQ,n?n.y:void 0,a?a.y:void 0)}function NP(e){return e.translate===0&&e.scale===1}function uL(e){return NP(e.x)&&NP(e.y)}function kP(e,t){return e.min===t.min&&e.max===t.max}function cQ(e,t){return kP(e.x,t.x)&&kP(e.y,t.y)}function _P(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function hL(e,t){return _P(e.x,t.x)&&_P(e.y,t.y)}function SP(e){return Na(e.x)/Na(e.y)}function CP(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}class dQ{constructor(){this.members=[]}add(t){c2(this.members,t),t.scheduleRender()}remove(t){if(d2(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){const n=this.members.findIndex(i=>t===i);if(n===0)return!1;let a;for(let i=n;i>=0;i--){const s=this.members[i];if(s.isPresent!==!1){a=s;break}}return a?(this.promote(a),!0):!1}promote(t,n){const a=this.lead;if(t!==a&&(this.prevLead=a,this.lead=t,t.show(),a)){a.instance&&a.scheduleRender(),t.scheduleRender(),t.resumeFrom=a,n&&(t.resumeFrom.preserveOpacity=!0),a.snapshot&&(t.snapshot=a.snapshot,t.snapshot.latestValues=a.animationValues||a.latestValues),t.root&&t.root.isUpdating&&(t.isLayoutDirty=!0);const{crossfade:i}=t.options;i===!1&&a.hide()}}exitAnimationComplete(){this.members.forEach(t=>{const{options:n,resumingFrom:a}=t;n.onExitComplete&&n.onExitComplete(),a&&a.options.onExitComplete&&a.options.onExitComplete()})}scheduleRender(){this.members.forEach(t=>{t.instance&&t.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}}function uQ(e,t,n){let a="";const i=e.x.translate/t.x,s=e.y.translate/t.y,o=n?.z||0;if((i||s||o)&&(a=`translate3d(${i}px, ${s}px, ${o}px) `),(t.x!==1||t.y!==1)&&(a+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:h,rotate:m,rotateX:p,rotateY:x,skewX:b,skewY:j}=n;h&&(a=`perspective(${h}px) ${a}`),m&&(a+=`rotate(${m}deg) `),p&&(a+=`rotateX(${p}deg) `),x&&(a+=`rotateY(${x}deg) `),b&&(a+=`skewX(${b}deg) `),j&&(a+=`skewY(${j}deg) `)}const l=e.x.scale*t.x,c=e.y.scale*t.y;return(l!==1||c!==1)&&(a+=`scale(${l}, ${c})`),a||"none"}const hQ=(e,t)=>e.depth-t.depth;class fQ{constructor(){this.children=[],this.isDirty=!1}add(t){c2(this.children,t),this.isDirty=!0}remove(t){d2(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(hQ),this.isDirty=!1,this.children.forEach(t)}}function dy(e){const t=Nr(e)?e.get():e;return JJ(t)?t.toValue():t}function mQ(e,t){const n=ns.now(),a=({timestamp:i})=>{const s=i-n;s>=t&&(xl(a),e(s-t))};return en.read(a,!0),()=>xl(a)}function pQ(e){return e instanceof SVGElement&&e.tagName!=="svg"}function gQ(e,t,n){const a=Nr(e)?e:Mm(e);return a.start(l2("",a,t,n)),a.animation}const hc={type:"projectionFrame",totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},rm=typeof window<"u"&&window.MotionDebug!==void 0,$w=["","X","Y","Z"],xQ={visibility:"hidden"},TP=1e3;let yQ=0;function Hw(e,t,n,a){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),a&&(a[e]=0))}function fL(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=qM(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:s}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",en,!(i||s))}const{parent:a}=e;a&&!a.hasCheckedOptimisedAppear&&fL(a)}function mL({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:a,resetTransform:i}){return class{constructor(o={},l=t?.()){this.id=yQ++,this.animationId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,rm&&(hc.totalNodes=hc.resolvedTargetDeltas=hc.recalculatedProjection=0),this.nodes.forEach(wQ),this.nodes.forEach(SQ),this.nodes.forEach(CQ),this.nodes.forEach(jQ),rm&&window.MotionDebug.record(hc)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=o,this.root=l?l.root||l:this,this.path=l?[...l.path,l]:[],this.parent=l,this.depth=l?l.depth+1:0;for(let c=0;c<this.path.length;c++)this.path[c].shouldResetTransform=!0;this.root===this&&(this.nodes=new fQ)}addEventListener(o,l){return this.eventHandlers.has(o)||this.eventHandlers.set(o,new u2),this.eventHandlers.get(o).add(l)}notifyListeners(o,...l){const c=this.eventHandlers.get(o);c&&c.notify(...l)}hasListeners(o){return this.eventHandlers.has(o)}mount(o,l=this.root.hasTreeAnimated){if(this.instance)return;this.isSVG=pQ(o),this.instance=o;const{layoutId:c,layout:h,visualElement:m}=this.options;if(m&&!m.current&&m.mount(o),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),l&&(h||c)&&(this.isLayoutDirty=!0),e){let p;const x=()=>this.root.updateBlockedByResize=!1;e(o,()=>{this.root.updateBlockedByResize=!0,p&&p(),p=mQ(x,250),cy.hasAnimatedSinceResize&&(cy.hasAnimatedSinceResize=!1,this.nodes.forEach(PP))})}c&&this.root.registerSharedNode(c,this),this.options.animate!==!1&&m&&(c||h)&&this.addEventListener("didUpdate",({delta:p,hasLayoutChanged:x,hasRelativeTargetChanged:b,layout:j})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const N=this.options.transition||m.getDefaultTransition()||OQ,{onLayoutAnimationStart:_,onLayoutAnimationComplete:S}=m.getProps(),A=!this.targetLayout||!hL(this.targetLayout,j)||b,P=!x&&b;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||P||x&&(A||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(p,P);const I={...Kk(N,"layout"),onPlay:_,onComplete:S};(m.shouldReduceMotion||this.options.layoutRoot)&&(I.delay=0,I.type=!1),this.startAnimation(I)}else x||PP(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=j})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const o=this.getStack();o&&o.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,xl(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(TQ),this.animationId++)}getTransformTemplate(){const{visualElement:o}=this.options;return o&&o.getProps().transformTemplate}willUpdate(o=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&fL(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let m=0;m<this.path.length;m++){const p=this.path[m];p.shouldResetTransform=!0,p.updateScroll("snapshot"),p.options.layoutRoot&&p.willUpdate(!1)}const{layoutId:l,layout:c}=this.options;if(l===void 0&&!c)return;const h=this.getTransformTemplate();this.prevTransformTemplateValue=h?h(this.latestValues,""):void 0,this.updateSnapshot(),o&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(AP);return}this.isUpdating||this.nodes.forEach(kQ),this.isUpdating=!1,this.nodes.forEach(_Q),this.nodes.forEach(vQ),this.nodes.forEach(bQ),this.clearAllSnapshots();const l=ns.now();rr.delta=no(0,1e3/60,l-rr.timestamp),rr.timestamp=l,rr.isProcessing=!0,Ow.update.process(rr),Ow.preRender.process(rr),Ow.render.process(rr),rr.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,p2.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(NQ),this.sharedNodes.forEach(AQ)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,en.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){en.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure())}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let c=0;c<this.path.length;c++)this.path[c].updateScroll();const o=this.layout;this.layout=this.measure(!1),this.layoutCorrected=kn(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:l}=this.options;l&&l.notify("LayoutMeasure",this.layout.layoutBox,o?o.layoutBox:void 0)}updateScroll(o="measure"){let l=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===o&&(l=!1),l){const c=a(this.instance);this.scroll={animationId:this.root.animationId,phase:o,isRoot:c,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:c}}}resetTransform(){if(!i)return;const o=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,l=this.projectionDelta&&!uL(this.projectionDelta),c=this.getTransformTemplate(),h=c?c(this.latestValues,""):void 0,m=h!==this.prevTransformTemplateValue;o&&(l||uc(this.latestValues)||m)&&(i(this.instance,h),this.shouldResetTransform=!1,this.scheduleRender())}measure(o=!0){const l=this.measurePageBox();let c=this.removeElementScroll(l);return o&&(c=this.removeTransform(c)),RQ(c),{animationId:this.root.animationId,measuredBox:l,layoutBox:c,latestValues:{},source:this.id}}measurePageBox(){var o;const{visualElement:l}=this.options;if(!l)return kn();const c=l.measureViewportBox();if(!(((o=this.scroll)===null||o===void 0?void 0:o.wasRoot)||this.path.some(IQ))){const{scroll:m}=this.root;m&&(ju(c.x,m.offset.x),ju(c.y,m.offset.y))}return c}removeElementScroll(o){var l;const c=kn();if(Fa(c,o),!((l=this.scroll)===null||l===void 0)&&l.wasRoot)return c;for(let h=0;h<this.path.length;h++){const m=this.path[h],{scroll:p,options:x}=m;m!==this.root&&p&&x.layoutScroll&&(p.wasRoot&&Fa(c,o),ju(c.x,p.offset.x),ju(c.y,p.offset.y))}return c}applyTransform(o,l=!1){const c=kn();Fa(c,o);for(let h=0;h<this.path.length;h++){const m=this.path[h];!l&&m.options.layoutScroll&&m.scroll&&m!==m.root&&Nu(c,{x:-m.scroll.offset.x,y:-m.scroll.offset.y}),uc(m.latestValues)&&Nu(c,m.latestValues)}return uc(this.latestValues)&&Nu(c,this.latestValues),c}removeTransform(o){const l=kn();Fa(l,o);for(let c=0;c<this.path.length;c++){const h=this.path[c];if(!h.instance||!uc(h.latestValues))continue;Yj(h.latestValues)&&h.updateSnapshot();const m=kn(),p=h.measurePageBox();Fa(m,p),jP(l,h.latestValues,h.snapshot?h.snapshot.layoutBox:void 0,m)}return uc(this.latestValues)&&jP(l,this.latestValues),l}setTargetDelta(o){this.targetDelta=o,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(o){this.options={...this.options,...o,crossfade:o.crossfade!==void 0?o.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==rr.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(o=!1){var l;const c=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=c.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=c.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=c.isSharedProjectionDirty);const h=!!this.resumingFrom||this!==c;if(!(o||h&&this.isSharedProjectionDirty||this.isProjectionDirty||!((l=this.parent)===null||l===void 0)&&l.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:p,layoutId:x}=this.options;if(!(!this.layout||!(p||x))){if(this.resolvedRelativeTargetAt=rr.timestamp,!this.targetDelta&&!this.relativeTarget){const b=this.getClosestProjectingParent();b&&b.layout&&this.animationProgress!==1?(this.relativeParent=b,this.forceRelativeParentToResolveTarget(),this.relativeTarget=kn(),this.relativeTargetOrigin=kn(),gm(this.relativeTargetOrigin,this.layout.layoutBox,b.layout.layoutBox),Fa(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(!(!this.relativeTarget&&!this.targetDelta)){if(this.target||(this.target=kn(),this.targetWithTransforms=kn()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),MX(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):Fa(this.target,this.layout.layoutBox),aL(this.target,this.targetDelta)):Fa(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;const b=this.getClosestProjectingParent();b&&!!b.resumingFrom==!!this.resumingFrom&&!b.options.layoutScroll&&b.target&&this.animationProgress!==1?(this.relativeParent=b,this.forceRelativeParentToResolveTarget(),this.relativeTarget=kn(),this.relativeTargetOrigin=kn(),gm(this.relativeTargetOrigin,this.target,b.target),Fa(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}rm&&hc.resolvedTargetDeltas++}}}getClosestProjectingParent(){if(!(!this.parent||Yj(this.parent.latestValues)||rL(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){var o;const l=this.getLead(),c=!!this.resumingFrom||this!==l;let h=!0;if((this.isProjectionDirty||!((o=this.parent)===null||o===void 0)&&o.isProjectionDirty)&&(h=!1),c&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(h=!1),this.resolvedRelativeTargetAt===rr.timestamp&&(h=!1),h)return;const{layout:m,layoutId:p}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(m||p))return;Fa(this.layoutCorrected,this.layout.layoutBox);const x=this.treeScale.x,b=this.treeScale.y;VX(this.layoutCorrected,this.treeScale,this.path,c),l.layout&&!l.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(l.target=l.layout.layoutBox,l.targetWithTransforms=kn());const{target:j}=l;if(!j){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(vP(this.prevProjectionDelta.x,this.projectionDelta.x),vP(this.prevProjectionDelta.y,this.projectionDelta.y)),pm(this.projectionDelta,this.layoutCorrected,j,this.latestValues),(this.treeScale.x!==x||this.treeScale.y!==b||!CP(this.projectionDelta.x,this.prevProjectionDelta.x)||!CP(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",j)),rm&&hc.recalculatedProjection++}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(o=!0){var l;if((l=this.options.visualElement)===null||l===void 0||l.scheduleRender(),o){const c=this.getStack();c&&c.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=wu(),this.projectionDelta=wu(),this.projectionDeltaWithTransform=wu()}setAnimationOrigin(o,l=!1){const c=this.snapshot,h=c?c.latestValues:{},m={...this.latestValues},p=wu();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!l;const x=kn(),b=c?c.source:void 0,j=this.layout?this.layout.source:void 0,N=b!==j,_=this.getStack(),S=!_||_.members.length<=1,A=!!(N&&!S&&this.options.crossfade===!0&&!this.path.some(EQ));this.animationProgress=0;let P;this.mixTargetDelta=I=>{const O=I/1e3;EP(p.x,o.x,O),EP(p.y,o.y,O),this.setTargetDelta(p),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(gm(x,this.layout.layoutBox,this.relativeParent.layout.layoutBox),PQ(this.relativeTarget,this.relativeTargetOrigin,x,O),P&&cQ(this.relativeTarget,P)&&(this.isProjectionDirty=!1),P||(P=kn()),Fa(P,this.relativeTarget)),N&&(this.animationValues=m,rQ(m,h,this.latestValues,O,A,S)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=O},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(o){this.notifyListeners("animationStart"),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&(xl(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=en.update(()=>{cy.hasAnimatedSinceResize=!0,this.currentAnimation=gQ(0,TP,{...o,onUpdate:l=>{this.mixTargetDelta(l),o.onUpdate&&o.onUpdate(l)},onComplete:()=>{o.onComplete&&o.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const o=this.getStack();o&&o.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(TP),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const o=this.getLead();let{targetWithTransforms:l,target:c,layout:h,latestValues:m}=o;if(!(!l||!c||!h)){if(this!==o&&this.layout&&h&&pL(this.options.animationType,this.layout.layoutBox,h.layoutBox)){c=this.target||kn();const p=Na(this.layout.layoutBox.x);c.x.min=o.target.x.min,c.x.max=c.x.min+p;const x=Na(this.layout.layoutBox.y);c.y.min=o.target.y.min,c.y.max=c.y.min+x}Fa(l,c),Nu(l,m),pm(this.projectionDeltaWithTransform,this.layoutCorrected,l,m)}}registerSharedNode(o,l){this.sharedNodes.has(o)||this.sharedNodes.set(o,new dQ),this.sharedNodes.get(o).add(l);const h=l.options.initialPromotionConfig;l.promote({transition:h?h.transition:void 0,preserveFollowOpacity:h&&h.shouldPreserveFollowOpacity?h.shouldPreserveFollowOpacity(l):void 0})}isLead(){const o=this.getStack();return o?o.lead===this:!0}getLead(){var o;const{layoutId:l}=this.options;return l?((o=this.getStack())===null||o===void 0?void 0:o.lead)||this:this}getPrevLead(){var o;const{layoutId:l}=this.options;return l?(o=this.getStack())===null||o===void 0?void 0:o.prevLead:void 0}getStack(){const{layoutId:o}=this.options;if(o)return this.root.sharedNodes.get(o)}promote({needsReset:o,transition:l,preserveFollowOpacity:c}={}){const h=this.getStack();h&&h.promote(this,c),o&&(this.projectionDelta=void 0,this.needsReset=!0),l&&this.setOptions({transition:l})}relegate(){const o=this.getStack();return o?o.relegate(this):!1}resetSkewAndRotation(){const{visualElement:o}=this.options;if(!o)return;let l=!1;const{latestValues:c}=o;if((c.z||c.rotate||c.rotateX||c.rotateY||c.rotateZ||c.skewX||c.skewY)&&(l=!0),!l)return;const h={};c.z&&Hw("z",o,h,this.animationValues);for(let m=0;m<$w.length;m++)Hw(`rotate${$w[m]}`,o,h,this.animationValues),Hw(`skew${$w[m]}`,o,h,this.animationValues);o.render();for(const m in h)o.setStaticValue(m,h[m]),this.animationValues&&(this.animationValues[m]=h[m]);o.scheduleRender()}getProjectionStyles(o){var l,c;if(!this.instance||this.isSVG)return;if(!this.isVisible)return xQ;const h={visibility:""},m=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,h.opacity="",h.pointerEvents=dy(o?.pointerEvents)||"",h.transform=m?m(this.latestValues,""):"none",h;const p=this.getLead();if(!this.projectionDelta||!this.layout||!p.target){const N={};return this.options.layoutId&&(N.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,N.pointerEvents=dy(o?.pointerEvents)||""),this.hasProjected&&!uc(this.latestValues)&&(N.transform=m?m({},""):"none",this.hasProjected=!1),N}const x=p.animationValues||p.latestValues;this.applyTransformsToTarget(),h.transform=uQ(this.projectionDeltaWithTransform,this.treeScale,x),m&&(h.transform=m(x,h.transform));const{x:b,y:j}=this.projectionDelta;h.transformOrigin=`${b.origin*100}% ${j.origin*100}% 0`,p.animationValues?h.opacity=p===this?(c=(l=x.opacity)!==null&&l!==void 0?l:this.latestValues.opacity)!==null&&c!==void 0?c:1:this.preserveOpacity?this.latestValues.opacity:x.opacityExit:h.opacity=p===this?x.opacity!==void 0?x.opacity:"":x.opacityExit!==void 0?x.opacityExit:0;for(const N in Oy){if(x[N]===void 0)continue;const{correct:_,applyTo:S}=Oy[N],A=h.transform==="none"?x[N]:_(x[N],p);if(S){const P=S.length;for(let I=0;I<P;I++)h[S[I]]=A}else h[N]=A}return this.options.layoutId&&(h.pointerEvents=p===this?dy(o?.pointerEvents)||"":"none"),h}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(o=>{var l;return(l=o.currentAnimation)===null||l===void 0?void 0:l.stop()}),this.root.nodes.forEach(AP),this.root.sharedNodes.clear()}}}function vQ(e){e.updateLayout()}function bQ(e){var t;const n=((t=e.resumeFrom)===null||t===void 0?void 0:t.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&n&&e.hasListeners("didUpdate")){const{layoutBox:a,measuredBox:i}=e.layout,{animationType:s}=e.options,o=n.source!==e.layout.source;s==="size"?$a(p=>{const x=o?n.measuredBox[p]:n.layoutBox[p],b=Na(x);x.min=a[p].min,x.max=x.min+b}):pL(s,n.layoutBox,a)&&$a(p=>{const x=o?n.measuredBox[p]:n.layoutBox[p],b=Na(a[p]);x.max=x.min+b,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[p].max=e.relativeTarget[p].min+b)});const l=wu();pm(l,a,n.layoutBox);const c=wu();o?pm(c,e.applyTransform(i,!0),n.measuredBox):pm(c,a,n.layoutBox);const h=!uL(l);let m=!1;if(!e.resumeFrom){const p=e.getClosestProjectingParent();if(p&&!p.resumeFrom){const{snapshot:x,layout:b}=p;if(x&&b){const j=kn();gm(j,n.layoutBox,x.layoutBox);const N=kn();gm(N,a,b.layoutBox),hL(j,N)||(m=!0),p.options.layoutRoot&&(e.relativeTarget=N,e.relativeTargetOrigin=j,e.relativeParent=p)}}}e.notifyListeners("didUpdate",{layout:a,snapshot:n,delta:c,layoutDelta:l,hasLayoutChanged:h,hasRelativeTargetChanged:m})}else if(e.isLead()){const{onExitComplete:a}=e.options;a&&a()}e.options.transition=void 0}function wQ(e){rm&&hc.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function jQ(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function NQ(e){e.clearSnapshot()}function AP(e){e.clearMeasurements()}function kQ(e){e.isLayoutDirty=!1}function _Q(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function PP(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function SQ(e){e.resolveTargetDelta()}function CQ(e){e.calcProjection()}function TQ(e){e.resetSkewAndRotation()}function AQ(e){e.removeLeadSnapshot()}function EP(e,t,n){e.translate=mn(t.translate,0,n),e.scale=mn(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function OP(e,t,n,a){e.min=mn(t.min,n.min,a),e.max=mn(t.max,n.max,a)}function PQ(e,t,n,a){OP(e.x,t.x,n.x,a),OP(e.y,t.y,n.y,a)}function EQ(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const OQ={duration:.45,ease:[.4,0,.1,1]},RP=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),IP=RP("applewebkit/")&&!RP("chrome/")?Math.round:ba;function MP(e){e.min=IP(e.min),e.max=IP(e.max)}function RQ(e){MP(e.x),MP(e.y)}function pL(e,t,n){return e==="position"||e==="preserve-aspect"&&!IX(SP(t),SP(n),.2)}function IQ(e){var t;return e!==e.root&&((t=e.scroll)===null||t===void 0?void 0:t.wasRoot)}const MQ=mL({attachResizeListener:(e,t)=>Lm(e,"resize",t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Ww={current:void 0},gL=mL({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Ww.current){const e=new MQ({});e.mount(window),e.setOptions({layoutScroll:!0}),Ww.current=e}return Ww.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),LQ={pan:{Feature:YX},drag:{Feature:ZX,ProjectionNode:gL,MeasureLayout:lL}};function LP(e,t,n){const{props:a}=e;e.animationState&&a.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,s=a[i];s&&en.postRender(()=>s(t,up(t)))}class DQ extends _l{mount(){const{current:t}=this.node;t&&(this.unmount=bX(t,n=>(LP(this.node,n,"Start"),a=>LP(this.node,a,"End"))))}unmount(){}}class BQ extends _l{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=dp(Lm(this.node.current,"focus",()=>this.onFocus()),Lm(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function DP(e,t,n){const{props:a}=e;e.animationState&&a.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),s=a[i];s&&en.postRender(()=>s(t,up(t)))}class FQ extends _l{mount(){const{current:t}=this.node;t&&(this.unmount=kX(t,n=>(DP(this.node,n,"Start"),(a,{success:i})=>DP(this.node,a,i?"End":"Cancel")),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}}const Xj=new WeakMap,Vw=new WeakMap,zQ=e=>{const t=Xj.get(e.target);t&&t(e)},$Q=e=>{e.forEach(zQ)};function HQ({root:e,...t}){const n=e||document;Vw.has(n)||Vw.set(n,{});const a=Vw.get(n),i=JSON.stringify(t);return a[i]||(a[i]=new IntersectionObserver($Q,{root:e,...t})),a[i]}function WQ(e,t,n){const a=HQ(t);return Xj.set(e,n),a.observe(e),()=>{Xj.delete(e),a.unobserve(e)}}const VQ={some:0,all:1};class UQ extends _l{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();const{viewport:t={}}=this.node.getProps(),{root:n,margin:a,amount:i="some",once:s}=t,o={root:n?n.current:void 0,rootMargin:a,threshold:typeof i=="number"?i:VQ[i]},l=c=>{const{isIntersecting:h}=c;if(this.isInView===h||(this.isInView=h,s&&!h&&this.hasEnteredView))return;h&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",h);const{onViewportEnter:m,onViewportLeave:p}=this.node.getProps(),x=h?m:p;x&&x(c)};return WQ(this.node.current,o,l)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(qQ(t,n))&&this.startObserver()}unmount(){}}function qQ({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const GQ={inView:{Feature:UQ},tap:{Feature:FQ},focus:{Feature:BQ},hover:{Feature:DQ}},KQ={layout:{ProjectionNode:gL,MeasureLayout:lL}},g2=v.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"}),Uv=v.createContext({}),x2=typeof window<"u",xL=x2?v.useLayoutEffect:v.useEffect,yL=v.createContext({strict:!1});function ZQ(e,t,n,a,i){var s,o;const{visualElement:l}=v.useContext(Uv),c=v.useContext(yL),h=v.useContext(Vv),m=v.useContext(g2).reducedMotion,p=v.useRef(null);a=a||c.renderer,!p.current&&a&&(p.current=a(e,{visualState:t,parent:l,props:n,presenceContext:h,blockInitialAnimation:h?h.initial===!1:!1,reducedMotionConfig:m}));const x=p.current,b=v.useContext(oL);x&&!x.projection&&i&&(x.type==="html"||x.type==="svg")&&YQ(p.current,n,i,b);const j=v.useRef(!1);v.useInsertionEffect(()=>{x&&j.current&&x.update(n,h)});const N=n[UM],_=v.useRef(!!N&&!(!((s=window.MotionHandoffIsComplete)===null||s===void 0)&&s.call(window,N))&&((o=window.MotionHasOptimisedAnimation)===null||o===void 0?void 0:o.call(window,N)));return xL(()=>{x&&(j.current=!0,window.MotionIsMounted=!0,x.updateFeatures(),p2.render(x.render),_.current&&x.animationState&&x.animationState.animateChanges())}),v.useEffect(()=>{x&&(!_.current&&x.animationState&&x.animationState.animateChanges(),_.current&&(queueMicrotask(()=>{var S;(S=window.MotionHandoffMarkAsComplete)===null||S===void 0||S.call(window,N)}),_.current=!1))}),x}function YQ(e,t,n,a){const{layoutId:i,layout:s,drag:o,dragConstraints:l,layoutScroll:c,layoutRoot:h}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:vL(e.parent)),e.projection.setOptions({layoutId:i,layout:s,alwaysMeasureLayout:!!o||l&&bu(l),visualElement:e,animationType:typeof s=="string"?s:"both",initialPromotionConfig:a,layoutScroll:c,layoutRoot:h})}function vL(e){if(e)return e.options.allowProjection!==!1?e.projection:vL(e.parent)}function JQ(e,t,n){return v.useCallback(a=>{a&&e.mount&&e.mount(a),t&&(a?t.mount(a):t.unmount()),n&&(typeof n=="function"?n(a):bu(n)&&(n.current=a))},[t])}function qv(e){return $v(e.animate)||Gk.some(t=>Om(e[t]))}function bL(e){return!!(qv(e)||e.variants)}function XQ(e,t){if(qv(e)){const{initial:n,animate:a}=e;return{initial:n===!1||Om(n)?n:void 0,animate:Om(a)?a:void 0}}return e.inherit!==!1?t:{}}function QQ(e){const{initial:t,animate:n}=XQ(e,v.useContext(Uv));return v.useMemo(()=>({initial:t,animate:n}),[BP(t),BP(n)])}function BP(e){return Array.isArray(e)?e.join(" "):e}const FP={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]},Wu={};for(const e in FP)Wu[e]={isEnabled:t=>FP[e].some(n=>!!t[n])};function eee(e){for(const t in e)Wu[t]={...Wu[t],...e[t]}}const tee=Symbol.for("motionComponentSymbol");function nee({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:a,Component:i}){e&&eee(e);function s(l,c){let h;const m={...v.useContext(g2),...l,layoutId:ree(l)},{isStatic:p}=m,x=QQ(l),b=a(l,p);if(!p&&x2){aee();const j=iee(m);h=j.MeasureLayout,x.visualElement=ZQ(i,b,m,t,j.ProjectionNode)}return r.jsxs(Uv.Provider,{value:x,children:[h&&x.visualElement?r.jsx(h,{visualElement:x.visualElement,...m}):null,n(i,l,JQ(b,x.visualElement,c),b,p,x.visualElement)]})}const o=v.forwardRef(s);return o[tee]=i,o}function ree({layoutId:e}){const t=v.useContext(m2).id;return t&&e!==void 0?t+"-"+e:e}function aee(e,t){v.useContext(yL).strict}function iee(e){const{drag:t,layout:n}=Wu;if(!t&&!n)return{};const a={...t,...n};return{MeasureLayout:t?.isEnabled(e)||n?.isEnabled(e)?a.MeasureLayout:void 0,ProjectionNode:a.ProjectionNode}}const see=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function y2(e){return typeof e!="string"||e.includes("-")?!1:!!(see.indexOf(e)>-1||/[A-Z]/u.test(e))}function wL(e,{style:t,vars:n},a,i){Object.assign(e.style,t,i&&i.getProjectionStyles(a));for(const s in n)e.style.setProperty(s,n[s])}const jL=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]);function NL(e,t,n,a){wL(e,t,void 0,a);for(const i in t.attrs)e.setAttribute(jL.has(i)?i:h2(i),t.attrs[i])}function kL(e,{layout:t,layoutId:n}){return qc.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Oy[e]||e==="opacity")}function v2(e,t,n){var a;const{style:i}=e,s={};for(const o in i)(Nr(i[o])||t.style&&Nr(t.style[o])||kL(o,e)||((a=n?.getValue(o))===null||a===void 0?void 0:a.liveStyle)!==void 0)&&(s[o]=i[o]);return s}function _L(e,t,n){const a=v2(e,t,n);for(const i in e)if(Nr(e[i])||Nr(t[i])){const s=op.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;a[s]=e[i]}return a}function b2(e){const t=v.useRef(null);return t.current===null&&(t.current=e()),t.current}function oee({scrapeMotionValuesFromProps:e,createRenderState:t,onMount:n},a,i,s){const o={latestValues:lee(a,i,s,e),renderState:t()};return n&&(o.mount=l=>n(a,l,o)),o}const SL=e=>(t,n)=>{const a=v.useContext(Uv),i=v.useContext(Vv),s=()=>oee(e,t,a,i);return n?s():b2(s)};function lee(e,t,n,a){const i={},s=a(e,{});for(const x in s)i[x]=dy(s[x]);let{initial:o,animate:l}=e;const c=qv(e),h=bL(e);t&&h&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),l===void 0&&(l=t.animate));let m=n?n.initial===!1:!1;m=m||o===!1;const p=m?l:o;if(p&&typeof p!="boolean"&&!$v(p)){const x=Array.isArray(p)?p:[p];for(let b=0;b<x.length;b++){const j=Uk(e,x[b]);if(j){const{transitionEnd:N,transition:_,...S}=j;for(const A in S){let P=S[A];if(Array.isArray(P)){const I=m?P.length-1:0;P=P[I]}P!==null&&(i[A]=P)}for(const A in N)i[A]=N[A]}}}return i}const w2=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),CL=()=>({...w2(),attrs:{}}),TL=(e,t)=>t&&typeof e=="number"?t.transform(e):e,cee={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},dee=op.length;function uee(e,t,n){let a="",i=!0;for(let s=0;s<dee;s++){const o=op[s],l=e[o];if(l===void 0)continue;let c=!0;if(typeof l=="number"?c=l===(o.startsWith("scale")?1:0):c=parseFloat(l)===0,!c||n){const h=TL(l,t2[o]);if(!c){i=!1;const m=cee[o]||o;a+=`${m}(${h}) `}n&&(t[o]=h)}}return a=a.trim(),n?a=n(t,i?"":a):i&&(a="none"),a}function j2(e,t,n){const{style:a,vars:i,transformOrigin:s}=e;let o=!1,l=!1;for(const c in t){const h=t[c];if(qc.has(c)){o=!0;continue}else if(bM(c)){i[c]=h;continue}else{const m=TL(h,t2[c]);c.startsWith("origin")?(l=!0,s[c]=m):a[c]=m}}if(t.transform||(o||n?a.transform=uee(t,e.transform,n):a.transform&&(a.transform="none")),l){const{originX:c="50%",originY:h="50%",originZ:m=0}=s;a.transformOrigin=`${c} ${h} ${m}`}}function zP(e,t,n){return typeof e=="string"?e:Je.transform(t+n*e)}function hee(e,t,n){const a=zP(t,e.x,e.width),i=zP(n,e.y,e.height);return`${a} ${i}`}const fee={offset:"stroke-dashoffset",array:"stroke-dasharray"},mee={offset:"strokeDashoffset",array:"strokeDasharray"};function pee(e,t,n=1,a=0,i=!0){e.pathLength=1;const s=i?fee:mee;e[s.offset]=Je.transform(-a);const o=Je.transform(t),l=Je.transform(n);e[s.array]=`${o} ${l}`}function N2(e,{attrX:t,attrY:n,attrScale:a,originX:i,originY:s,pathLength:o,pathSpacing:l=1,pathOffset:c=0,...h},m,p){if(j2(e,h,p),m){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:x,style:b,dimensions:j}=e;x.transform&&(j&&(b.transform=x.transform),delete x.transform),j&&(i!==void 0||s!==void 0||b.transform)&&(b.transformOrigin=hee(j,i!==void 0?i:.5,s!==void 0?s:.5)),t!==void 0&&(x.x=t),n!==void 0&&(x.y=n),a!==void 0&&(x.scale=a),o!==void 0&&pee(x,o,l,c,!1)}const k2=e=>typeof e=="string"&&e.toLowerCase()==="svg",gee={useVisualState:SL({scrapeMotionValuesFromProps:_L,createRenderState:CL,onMount:(e,t,{renderState:n,latestValues:a})=>{en.read(()=>{try{n.dimensions=typeof t.getBBox=="function"?t.getBBox():t.getBoundingClientRect()}catch{n.dimensions={x:0,y:0,width:0,height:0}}}),en.render(()=>{N2(n,a,k2(t.tagName),e.transformTemplate),NL(t,n)})}})},xee={useVisualState:SL({scrapeMotionValuesFromProps:v2,createRenderState:w2})};function AL(e,t,n){for(const a in t)!Nr(t[a])&&!kL(a,n)&&(e[a]=t[a])}function yee({transformTemplate:e},t){return v.useMemo(()=>{const n=w2();return j2(n,t,e),Object.assign({},n.vars,n.style)},[t])}function vee(e,t){const n=e.style||{},a={};return AL(a,n,e),Object.assign(a,yee(e,t)),a}function bee(e,t){const n={},a=vee(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,a.userSelect=a.WebkitUserSelect=a.WebkitTouchCallout="none",a.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=a,n}const wee=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","ignoreStrict","viewport"]);function Ry(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||wee.has(e)}let PL=e=>!Ry(e);function jee(e){e&&(PL=t=>t.startsWith("on")?!Ry(t):e(t))}try{jee(require("@emotion/is-prop-valid").default)}catch{}function Nee(e,t,n){const a={};for(const i in e)i==="values"&&typeof e.values=="object"||(PL(i)||n===!0&&Ry(i)||!t&&!Ry(i)||e.draggable&&i.startsWith("onDrag"))&&(a[i]=e[i]);return a}function kee(e,t,n,a){const i=v.useMemo(()=>{const s=CL();return N2(s,t,k2(a),e.transformTemplate),{...s.attrs,style:{...s.style}}},[t]);if(e.style){const s={};AL(s,e.style,e),i.style={...s,...i.style}}return i}function _ee(e=!1){return(n,a,i,{latestValues:s},o)=>{const c=(y2(n)?kee:bee)(a,s,o,n),h=Nee(a,typeof n=="string",e),m=n!==v.Fragment?{...h,...c,ref:i}:{},{children:p}=a,x=v.useMemo(()=>Nr(p)?p.get():p,[p]);return v.createElement(n,{...m,children:x})}}function See(e,t){return function(a,{forwardMotionProps:i}={forwardMotionProps:!1}){const o={...y2(a)?gee:xee,preloadedFeatures:e,useRender:_ee(i),createVisualElement:t,Component:a};return nee(o)}}const Qj={current:null},EL={current:!1};function Cee(){if(EL.current=!0,!!x2)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Qj.current=e.matches;e.addListener(t),t()}else Qj.current=!1}function Tee(e,t,n){for(const a in t){const i=t[a],s=n[a];if(Nr(i))e.addValue(a,i);else if(Nr(s))e.addValue(a,Mm(i,{owner:e}));else if(s!==i)if(e.hasValue(a)){const o=e.getValue(a);o.liveStyle===!0?o.jump(i):o.hasAnimated||o.set(i)}else{const o=e.getStaticValue(a);e.addValue(a,Mm(o!==void 0?o:i,{owner:e}))}}for(const a in n)t[a]===void 0&&e.removeValue(a);return t}const $P=new WeakMap,Aee=[...NM,br,yl],Pee=e=>Aee.find(jM(e)),HP=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];class Eee{scrapeMotionValuesFromProps(t,n,a){return{}}constructor({parent:t,props:n,presenceContext:a,reducedMotionConfig:i,blockInitialAnimation:s,visualState:o},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Xk,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const x=ns.now();this.renderScheduledAt<x&&(this.renderScheduledAt=x,en.render(this.render,!1,!0))};const{latestValues:c,renderState:h}=o;this.latestValues=c,this.baseTarget={...c},this.initialValues=n.initial?{...c}:{},this.renderState=h,this.parent=t,this.props=n,this.presenceContext=a,this.depth=t?t.depth+1:0,this.reducedMotionConfig=i,this.options=l,this.blockInitialAnimation=!!s,this.isControllingVariants=qv(n),this.isVariantNode=bL(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:m,...p}=this.scrapeMotionValuesFromProps(n,{},this);for(const x in p){const b=p[x];c[x]!==void 0&&Nr(b)&&b.set(c[x],!1)}}mount(t){this.current=t,$P.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((n,a)=>this.bindToMotionValue(a,n)),EL.current||Cee(),this.shouldReduceMotion=this.reducedMotionConfig==="never"?!1:this.reducedMotionConfig==="always"?!0:Qj.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){$P.delete(this.current),this.projection&&this.projection.unmount(),xl(this.notifyUpdate),xl(this.render),this.valueSubscriptions.forEach(t=>t()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(const t in this.events)this.events[t].clear();for(const t in this.features){const n=this.features[t];n&&(n.unmount(),n.isMounted=!1)}this.current=null}bindToMotionValue(t,n){this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)();const a=qc.has(t),i=n.on("change",l=>{this.latestValues[t]=l,this.props.onUpdate&&en.preRender(this.notifyUpdate),a&&this.projection&&(this.projection.isTransformDirty=!0)}),s=n.on("renderRequest",this.scheduleRender);let o;window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),s(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in Wu){const n=Wu[t];if(!n)continue;const{isEnabled:a,Feature:i}=n;if(!this.features[t]&&i&&a(this.props)&&(this.features[t]=new i(this)),this.features[t]){const s=this.features[t];s.isMounted?s.update():(s.mount(),s.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):kn()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let a=0;a<HP.length;a++){const i=HP[a];this.propEventSubscriptions[i]&&(this.propEventSubscriptions[i](),delete this.propEventSubscriptions[i]);const s="on"+i,o=t[s];o&&(this.propEventSubscriptions[i]=this.on(i,o))}this.prevMotionValues=Tee(this,this.scrapeMotionValuesFromProps(t,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(t){return this.props.variants?this.props.variants[t]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(t){const n=this.getClosestVariantNode();if(n)return n.variantChildren&&n.variantChildren.add(t),()=>n.variantChildren.delete(t)}addValue(t,n){const a=this.values.get(t);n!==a&&(a&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let a=this.values.get(t);return a===void 0&&n!==void 0&&(a=Mm(n===null?void 0:n,{owner:this}),this.addValue(t,a)),a}readValue(t,n){var a;let i=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:(a=this.getBaseTargetFromProps(this.props,t))!==null&&a!==void 0?a:this.readValueFromInstance(this.current,t,this.options);return i!=null&&(typeof i=="string"&&(yM(i)||xM(i))?i=parseFloat(i):!Pee(i)&&yl.test(n)&&(i=EM(t,n)),this.setBaseTarget(t,Nr(i)?i.get():i)),Nr(i)?i.get():i}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var n;const{initial:a}=this.props;let i;if(typeof a=="string"||typeof a=="object"){const o=Uk(this.props,a,(n=this.presenceContext)===null||n===void 0?void 0:n.custom);o&&(i=o[t])}if(a&&i!==void 0)return i;const s=this.getBaseTargetFromProps(this.props,t);return s!==void 0&&!Nr(s)?s:this.initialValues[t]!==void 0&&i===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new u2),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}}class OL extends Eee{constructor(){super(...arguments),this.KeyframeResolver=OM}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){return t.style?t.style[n]:void 0}removeValueFromRenderState(t,{vars:n,style:a}){delete n[t],delete a[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Nr(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}function Oee(e){return window.getComputedStyle(e)}class Ree extends OL{constructor(){super(...arguments),this.type="html",this.renderInstance=wL}readValueFromInstance(t,n){if(qc.has(n)){const a=n2(n);return a&&a.default||0}else{const a=Oee(t),i=(bM(n)?a.getPropertyValue(n):a[n])||0;return typeof i=="string"?i.trim():i}}measureInstanceViewportBox(t,{transformPagePoint:n}){return iL(t,n)}build(t,n,a){j2(t,n,a.transformTemplate)}scrapeMotionValuesFromProps(t,n,a){return v2(t,n,a)}}class Iee extends OL{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=kn}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(qc.has(n)){const a=n2(n);return a&&a.default||0}return n=jL.has(n)?n:h2(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,a){return _L(t,n,a)}build(t,n,a){N2(t,n,this.isSVGTag,a.transformTemplate)}renderInstance(t,n,a,i){NL(t,n,a,i)}mount(t){this.isSVGTag=k2(t.tagName),super.mount(t)}}const Mee=(e,t)=>y2(e)?new Iee(t):new Ree(t,{allowProjection:e!==v.Fragment}),Lee=See({...yX,...GQ,...LQ,...KQ},Mee),F=pY(Lee);class Dee extends v.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(n&&t.isPresent&&!this.props.isPresent){const a=this.props.sizeRef.current;a.height=n.offsetHeight||0,a.width=n.offsetWidth||0,a.top=n.offsetTop,a.left=n.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function Bee({children:e,isPresent:t}){const n=v.useId(),a=v.useRef(null),i=v.useRef({width:0,height:0,top:0,left:0}),{nonce:s}=v.useContext(g2);return v.useInsertionEffect(()=>{const{width:o,height:l,top:c,left:h}=i.current;if(t||!a.current||!o||!l)return;a.current.dataset.motionPopId=n;const m=document.createElement("style");return s&&(m.nonce=s),document.head.appendChild(m),m.sheet&&m.sheet.insertRule(`
[data-motion-pop-id="${n}"] {
position: absolute !important;
width: ${o}px !important;
height: ${l}px !important;
top: ${c}px !important;
left: ${h}px !important;
}
`),()=>{document.head.removeChild(m)}},[t]),r.jsx(Dee,{isPresent:t,childRef:a,sizeRef:i,children:v.cloneElement(e,{ref:a})})}const Fee=({children:e,initial:t,isPresent:n,onExitComplete:a,custom:i,presenceAffectsLayout:s,mode:o})=>{const l=b2(zee),c=v.useId(),h=v.useCallback(p=>{l.set(p,!0);for(const x of l.values())if(!x)return;a&&a()},[l,a]),m=v.useMemo(()=>({id:c,initial:t,isPresent:n,custom:i,onExitComplete:h,register:p=>(l.set(p,!1),()=>l.delete(p))}),s?[Math.random(),h]:[n,h]);return v.useMemo(()=>{l.forEach((p,x)=>l.set(x,!1))},[n]),v.useEffect(()=>{!n&&!l.size&&a&&a()},[n]),o==="popLayout"&&(e=r.jsx(Bee,{isPresent:n,children:e})),r.jsx(Vv.Provider,{value:m,children:e})};function zee(){return new Map}const Nx=e=>e.key||"";function WP(e){const t=[];return v.Children.forEach(e,n=>{v.isValidElement(n)&&t.push(n)}),t}const ka=({children:e,exitBeforeEnter:t,custom:n,initial:a=!0,onExitComplete:i,presenceAffectsLayout:s=!0,mode:o="sync"})=>{const l=v.useMemo(()=>WP(e),[e]),c=l.map(Nx),h=v.useRef(!0),m=v.useRef(l),p=b2(()=>new Map),[x,b]=v.useState(l),[j,N]=v.useState(l);xL(()=>{h.current=!1,m.current=l;for(let A=0;A<j.length;A++){const P=Nx(j[A]);c.includes(P)?p.delete(P):p.get(P)!==!0&&p.set(P,!1)}},[j,c.length,c.join("-")]);const _=[];if(l!==x){let A=[...l];for(let P=0;P<j.length;P++){const I=j[P],O=Nx(I);c.includes(O)||(A.splice(P,0,I),_.push(I))}o==="wait"&&_.length&&(A=_),N(WP(A)),b(l);return}const{forceRender:S}=v.useContext(m2);return r.jsx(r.Fragment,{children:j.map(A=>{const P=Nx(A),I=l===j||c.includes(P),O=()=>{if(p.has(P))p.set(P,!0);else return;let M=!0;p.forEach(z=>{z||(M=!1)}),M&&(S?.(),N(m.current),i&&i())};return r.jsx(Fee,{isPresent:I,initial:!h.current||a?void 0:!1,custom:I?void 0:n,presenceAffectsLayout:s,mode:o,onExitComplete:I?void 0:O,children:A},P)})})},VP=[{id:"bc",name:"BritishColumbiaCoastal.com",title:"British Columbia",description:"Explore the rugged coastlines, pristine islands, and wild beauty of BC.",url:"https://britishcolumbiacoastal.com/",dotPos:{top:"15%",left:"45%"}},{id:"puget",name:"PugetSoundCoastal.com",title:"Puget Sound",description:"Discover the islands, inlets, and maritime culture of the Sound.",url:"https://pugetsoundcoastal.com",dotPos:{top:"35%",left:"60%"}},{id:"wa",name:"WashingtonCoastal.com",title:"Washington Coast",description:"Experience dramatic sea stacks, temperate rainforests, and endless beaches.",url:"https://washingtoncoastal.com",dotPos:{top:"45%",left:"35%"}},{id:"or",name:"OregonCoastal.com",title:"Oregon Coast",description:"Journey through iconic vistas, historic lighthouses, and coastal towns.",url:"https://oregoncoastal.com",dotPos:{top:"75%",left:"30%"}},{id:"waterfalls",name:"WaterfallsOregon.com",title:"Oregon Waterfalls",description:"Discover the hidden gems and cascading beauty of inland Oregon waterfalls.",url:"https://waterfallsoregon.com",dotPos:{top:"70%",left:"50%"}},{id:"whalewatching",name:"WhaleWatching.live",title:"Whale Watching Live",description:"Track live whale sightings, hydrophones, and alerts across the Pacific Northwest coast.",url:"https://whalewatching.live"}],$ee=[{id:"cascadia",name:"cascadiazone.com",title:"CASCADIA ZONE",description:"Outfit your next adventure with premium lifestyle apparel inspired by the wild Pacific Northwest.",url:"https://cascadiazone.com"},{id:"paperly",name:"thepaperlyco.com",title:"PAPERLY CO.",description:"Browse beautifully crafted art prints, stationery, and minimalist designs inspired by nature.",url:"https://thepaperlyco.com"},{id:"fungi",name:"fungiemporium.com",title:"FUNGI EMPORIUM",description:"Delve into the forest floor with unique goods and accessories celebrating mycology and foraging.",url:"https://fungiemporium.com"}],RL=()=>{const[e,t]=v.useState(!1),[n,a]=v.useState("explore"),[i,s]=v.useState(null),o=v.useRef(null);return v.useEffect(()=>{const l=h=>{o.current&&!o.current.contains(h.target)&&t(!1)},c=h=>{h.key==="Escape"&&t(!1)};return e&&(document.addEventListener("mousedown",l),document.addEventListener("keydown",c)),()=>{document.removeEventListener("mousedown",l),document.removeEventListener("keydown",c)}},[e]),r.jsxs("div",{className:"fixed bottom-4 right-4 md:bottom-auto md:top-[24px] md:right-4 z-[100] flex flex-col items-end",children:[r.jsxs("button",{onClick:()=>t(!e),className:"rounded-full h-14 w-14 md:h-12 md:w-auto px-0 md:px-4 shadow-lg bg-blue-600 text-white hover:bg-blue-700 flex items-center justify-center gap-2 transition-transform hover:scale-105 z-[101] outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2","aria-expanded":e,"aria-haspopup":"true","aria-label":"Toggle Regional Destinations",children:[r.jsx(Eq,{className:"w-6 h-6 md:w-5 md:h-5"}),r.jsx("span",{className:"hidden md:inline font-medium",children:"Explore PNW"})]}),r.jsx(ka,{children:e&&r.jsxs(F.div,{ref:o,initial:{opacity:0,y:15,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:15,scale:.95},transition:{duration:.2,ease:"easeOut"},className:"absolute bottom-20 md:bottom-auto md:top-14 right-0 w-[calc(100vw-2rem)] max-w-[calc(100vw-2rem)] sm:w-[380px] md:w-[950px] md:max-w-5xl bg-white rounded-2xl shadow-2xl border border-gray-200 flex flex-col max-h-[75vh] md:max-h-[85vh] origin-bottom-right md:origin-top-right overflow-hidden z-[102]",children:[r.jsxs("div",{className:"flex justify-between items-center px-4 py-3 border-b border-gray-100 bg-gray-50/50 flex-shrink-0",children:[r.jsxs("h2",{className:"text-lg md:text-xl font-serif font-bold text-blue-800 flex items-center gap-2 truncate",children:[r.jsx(Bu,{className:"w-5 h-5 flex-shrink-0"})," ",r.jsx("span",{className:"truncate",children:"Pacific Northwest"})]}),r.jsx("button",{onClick:()=>t(!1),className:"h-11 w-11 md:h-8 md:w-8 text-gray-500 hover:text-gray-900 hover:bg-gray-100 rounded-full flex items-center justify-center flex-shrink-0 transition-colors outline-none focus:ring-2 focus:ring-blue-500","aria-label":"Close widget",children:r.jsx(Uc,{className:"w-6 h-6 md:w-5 md:h-5"})})]}),r.jsxs("div",{className:"flex flex-col md:flex-row overflow-y-auto overflow-x-hidden",style:{scrollbarWidth:"thin"},children:[r.jsx("div",{className:"w-full md:w-[60%] relative bg-blue-50/20 p-4 md:p-6 flex items-center justify-center border-b md:border-b-0 md:border-r border-gray-100 min-h-[260px] md:min-h-[550px] flex-shrink-0",children:r.jsxs("div",{className:"relative w-full max-w-[260px] md:max-w-[500px] aspect-[3/4] mx-auto rounded-xl overflow-hidden shadow-sm border border-gray-200/50 bg-white",children:[r.jsx("img",{src:"https://horizons-cdn.hostinger.com/53bdac05-f4b5-4d91-861a-bb0bd4d29cfa/b36c12359c0d442619f526556769e4bf.webp",alt:"Watercolor map of the Pacific Northwest",className:"w-full h-full object-cover object-center opacity-95 hover:opacity-100 transition-opacity duration-300 pointer-events-none select-none"}),VP.filter(l=>l.dotPos).map(l=>r.jsxs("div",{className:"absolute group",style:{top:l.dotPos.top,left:l.dotPos.left},onMouseEnter:()=>n==="explore"&&s(l.id),onMouseLeave:()=>s(null),onClick:()=>{n!=="explore"&&a("explore"),s(l.id)},children:[r.jsxs("div",{className:`relative flex items-center justify-center w-11 h-11 md:w-12 md:h-12 -ml-[22px] -mt-[22px] md:-ml-6 md:-mt-6 cursor-pointer transition-transform duration-300 ${i===l.id&&n==="explore"?"scale-110 z-10":"scale-100 z-0"}`,children:[r.jsx("div",{className:`absolute w-6 h-6 md:w-8 md:h-8 rounded-full animate-ping opacity-30 ${l.id==="or"||l.id==="waterfalls"?"bg-blue-800":"bg-blue-600"}`}),r.jsx(We,{className:`w-6 h-6 md:w-8 md:h-8 drop-shadow-lg relative z-10 ${i===l.id||l.id==="or"||l.id==="waterfalls"?"text-blue-800 fill-blue-800/20":"text-slate-800 fill-white"}`})]}),r.jsx("div",{className:`absolute left-1/2 -translate-x-1/2 mt-0 px-3 py-1.5 bg-gray-900/90 backdrop-blur-sm text-white text-xs font-medium rounded-md whitespace-nowrap transition-opacity pointer-events-none shadow-lg z-20 ${i===l.id&&n==="explore"?"opacity-100":"opacity-0"}`,children:l.title})]},l.id))]})}),r.jsxs("div",{className:"w-full md:w-[40%] bg-white flex flex-col h-[550px]",children:[r.jsxs("div",{className:"flex border-b border-gray-100 p-2 gap-2 bg-gray-50/30",children:[r.jsxs("button",{onClick:()=>a("explore"),className:`flex-1 flex items-center justify-center gap-2 py-2 px-4 rounded-lg font-medium text-sm transition-all duration-200 ${n==="explore"?"bg-blue-50 text-blue-700 shadow-sm border border-blue-100/50":"text-gray-500 hover:text-gray-700 hover:bg-gray-100 border border-transparent"}`,children:[r.jsx(Mk,{className:"w-4 h-4"})," Explore"]}),r.jsxs("button",{onClick:()=>a("shop"),className:`flex-1 flex items-center justify-center gap-2 py-2 px-4 rounded-lg font-medium text-sm transition-all duration-200 ${n==="shop"?"bg-blue-50 text-blue-700 shadow-sm border border-blue-100/50":"text-gray-500 hover:text-gray-700 hover:bg-gray-100 border border-transparent"}`,children:[r.jsx(tG,{className:"w-4 h-4"})," Shop"]})]}),r.jsx("div",{className:"flex-1 overflow-y-auto p-4 md:p-5",style:{scrollbarWidth:"thin"},children:r.jsx(ka,{mode:"wait",children:n==="explore"?r.jsxs(F.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},exit:{opacity:0,x:10},transition:{duration:.2},className:"flex flex-col gap-3",children:[r.jsx("p",{className:"text-sm text-gray-600 mb-2 md:mb-1",children:"Select a region to explore our network of travel guides."}),r.jsx("div",{className:"grid grid-cols-1 gap-3 md:gap-3 pb-4 md:pb-0",children:VP.map(l=>r.jsxs("a",{href:l.url,target:"_blank",rel:"noopener noreferrer",className:`block p-4 rounded-xl border transition-all duration-300 group relative overflow-hidden focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 ${i===l.id?"border-blue-600 shadow-md bg-blue-50 md:scale-[1.02]":"border-gray-200 hover:border-blue-300 hover:bg-gray-50 shadow-sm"}`,onMouseEnter:()=>s(l.id),onMouseLeave:()=>s(null),children:[r.jsxs("div",{className:"flex justify-between items-start mb-1.5",children:[r.jsx("h3",{className:"font-serif font-bold text-base md:text-lg text-gray-900 group-hover:text-blue-700 transition-colors leading-tight",children:l.title}),r.jsx(Ka,{className:`w-4 h-4 mt-0.5 transition-colors ${i===l.id?"text-blue-600":"text-gray-400"}`})]}),r.jsx("p",{className:"text-[11px] md:text-xs font-bold text-blue-600/80 mb-2 uppercase tracking-wider",children:l.name}),r.jsx("p",{className:"text-sm text-gray-600 leading-relaxed group-hover:text-gray-900 transition-colors",children:l.description})]},l.id))})]},"explore"):r.jsxs(F.div,{initial:{opacity:0,x:10},animate:{opacity:1,x:0},exit:{opacity:0,x:-10},transition:{duration:.2},className:"flex flex-col gap-3",children:[r.jsx("p",{className:"text-sm text-gray-600 mb-2 md:mb-1",children:"Shop our collection of Pacific Northwest apparel, art, and gear."}),r.jsx("div",{className:"grid grid-cols-1 gap-3 md:gap-3 pb-4 md:pb-0",children:$ee.map(l=>r.jsxs("a",{href:l.url,target:"_blank",rel:"noopener noreferrer",className:"block p-4 rounded-xl border border-gray-200 hover:border-blue-300 hover:bg-gray-50 shadow-sm transition-all duration-300 group relative overflow-hidden focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 hover:shadow-md hover:scale-[1.02]",children:[r.jsxs("div",{className:"flex justify-between items-start mb-1.5",children:[r.jsx("h3",{className:"font-serif font-bold text-base md:text-lg text-gray-900 group-hover:text-blue-700 transition-colors leading-tight",children:l.title}),r.jsx(Ka,{className:"w-4 h-4 mt-0.5 text-gray-400 group-hover:text-blue-600 transition-colors"})]}),r.jsx("p",{className:"text-[11px] md:text-xs font-bold text-blue-600/80 mb-2 uppercase tracking-wider",children:l.name}),r.jsx("p",{className:"text-sm text-gray-600 leading-relaxed group-hover:text-gray-900 transition-colors",children:l.description})]},l.id))})]},"shop")})})]})]})]})})]})};function Hee(){const{messages:e,addMessage:t,answers:n,updateAnswer:a,chatState:i,setChatState:s,resetChat:o}=YI();return{handleUserResponse:(h,m=null,p=null)=>{window.dataLayer&&window.dataLayer.push({event:"chat_message_sent",message_count:e.length+1}),t({sender:"user",text:h}),setTimeout(()=>{let x=i;if(i==="ASK_START"){const b=m||h;a("start",b),typeof window.gtag=="function"&&window.gtag("event","chat_question_answered",{question_step:1,question_name:"start_location",answer_value:b}),t({sender:"ai",text:"Got it! How many days do you have for this trip? (e.g., 1-2, 3-4, 5-7, 7+)"}),x="ASK_DAYS"}else if(i==="ASK_DAYS"){const b=m||h;a("days",b),typeof window.gtag=="function"&&window.gtag("event","chat_question_answered",{question_step:2,question_name:"days",answer_value:b}),t({sender:"ai",text:"Perfect. And what kind of vibe are you looking for? (Adventure, Relaxing, Foodie, Family, Photography)"}),x="ASK_TYPE"}else if(i==="ASK_TYPE"){const b=m||h;a("type",b),typeof window.gtag=="function"&&window.gtag("event","chat_question_answered",{question_step:3,question_name:"trip_type",answer_value:b});const j={...n,type:b},{towns:N,numDays:_,validationMessage:S}=dY(j.start,j.days,j.type);typeof window.gtag=="function"&&window.gtag("event","chat_itinerary_generated",{start_location:j.start,trip_days:j.days,trip_type:j.type,stop_count:N.length,stops:N.map(O=>O.name).join(", ")});const A=N.map(O=>encodeURIComponent(O.name)).join(","),P=N.map(O=>O.name).join(", ");let I="";S&&(I+=`*Note: ${S}*
`),I+=`Based on your choices, ${N[0]?.name||"the coast"} to ${N[N.length-1]?.name||"the south"} is a great ${_}-day drive! Here is a recommended breakdown with driving times:
`,N.forEach((O,M)=>{if(I+=`Day 1: ${O.name} (emphasizing ${O.highlights}).
`,M<N.length-1){const z=lY(O.id,N[M+1].id);z&&(I+=` 🚗 Drive time to next stop: ~${z}
`)}}),I+=`
Want to save this as your personal Trip Scrapbook? I'll pre-load everything for you.`,t({sender:"ai",text:I,action:{type:"build_scrapbook",label:"Build My Scrapbook",url:`https://mypnwtrip.com/setup?location=${A}&days=${_}&utm_source=oregoncoastal.com&utm_medium=trip_chat&utm_campaign=scrapbook_handoff`,trackingData:{location:P,start_location:j.start,trip_days:j.days,trip_type:j.type,stop_count:N.length}}}),x="DONE"}else if(i==="DONE")if(h.toLowerCase().includes("restart")||h.toLowerCase().includes("reset")||h.toLowerCase().includes("start over")){o();return}else t({sender:"ai",text:"Enjoy your trip! Type 'start over' if you want to plan a different route."});s(x)},800)},getQuickSelectOptions:()=>{switch(i){case"ASK_START":return aY;case"ASK_DAYS":return iY;case"ASK_TYPE":return sY;default:return[]}}}}const Wee=({message:e})=>{const t=e.sender==="ai",n=a=>{a.type==="build_scrapbook"&&window.dataLayer&&window.dataLayer.push({event:"scrapbook_conversion",destination:"mypnwtrip.com",trip_location:a.trackingData?.location||"Unknown"}),window.open(a.url,"_blank")};return r.jsx(F.div,{initial:{opacity:0,y:10,scale:.95},animate:{opacity:1,y:0,scale:1},className:Se("flex w-full mb-4",t?"justify-start":"justify-end"),children:r.jsxs("div",{className:Se("flex max-w-[85%] items-end gap-2",t?"flex-row":"flex-row-reverse"),children:[r.jsx("div",{className:Se("w-8 h-8 rounded-full flex items-center justify-center flex-shrink-0 shadow-sm",t?"bg-[hsl(var(--chat-secondary))] text-[hsl(var(--chat-text))]":"bg-[hsl(var(--chat-primary))] text-white"),children:t?r.jsx(pq,{size:16}):r.jsx(lG,{size:16})}),r.jsxs("div",{className:"flex flex-col gap-2",children:[r.jsx("div",{className:Se("px-4 py-3 rounded-2xl text-sm leading-relaxed shadow-sm",t?"bg-white text-[hsl(var(--chat-text))] border border-[hsl(var(--chat-border))] rounded-bl-none":"bg-[hsl(var(--chat-primary))] text-white rounded-br-none"),children:r.jsx("div",{className:"whitespace-pre-wrap",children:e.text})}),e.action&&r.jsxs("button",{onClick:()=>n(e.action),className:"flex items-center justify-center gap-2 px-4 py-2 bg-[hsl(var(--chat-accent))] text-[hsl(var(--chat-text))] font-bold text-xs uppercase tracking-widest rounded-full hover:bg-[hsl(var(--chat-accent))/0.8] transition-all shadow-md active:scale-95 self-start",children:[e.action.label,r.jsx(Ka,{size:12})]})]})]})})},Vee=({options:e,onSelect:t})=>!e||e.length===0?null:r.jsx(F.div,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.5,duration:.3},className:"flex flex-wrap gap-2 p-4 bg-[hsl(var(--chat-background))] border-t border-[hsl(var(--chat-border))]",children:e.map(n=>r.jsx("button",{onClick:()=>t(n),className:"px-4 py-2 rounded-full text-xs font-medium border border-[hsl(var(--chat-primary))] text-[hsl(var(--chat-primary))] hover:bg-[hsl(var(--chat-primary))] hover:text-white transition-colors",children:n.label},n.id))}),Uee=()=>{const{isOpen:e,setIsOpen:t,messages:n,chatState:a,answers:i}=YI(),{handleUserResponse:s,getQuickSelectOptions:o}=Hee(),[l,c]=v.useState(""),h=v.useRef(null),m=()=>{h.current?.scrollIntoView({behavior:"smooth"})};v.useEffect(()=>{e&&m()},[n,e]);const p=()=>{typeof window.gtag=="function"&&window.gtag("event","chat_opened"),window.dataLayer&&window.dataLayer.push({event:"chat_opened",chat_name:"Oregon Coastal Concierge"}),t(!0)},x=()=>{if(a!=="DONE"){let S=0;i.type?S=3:i.days?S=2:i.start&&(S=1),typeof window.gtag=="function"&&window.gtag("event","chat_abandoned",{last_step_completed:S})}t(!1)},b=S=>{const A=S.target.closest("a, button");if(!A)return;if((A.tagName==="A"&&A.href&&A.href.includes("mypnwtrip.com")||A.textContent&&A.textContent.includes("Build My Scrapbook"))&&typeof window.gtag=="function"){const I=n.find(M=>M.action&&M.action.type==="build_scrapbook"),O=I?.action?.trackingData||{};window.gtag("event","chat_scrapbook_click",{start_location:O.start_location||i.start||"",trip_days:O.trip_days||i.days||"",trip_type:O.trip_type||i.type||"",stop_count:O.stop_count||0,destination_url:A.href||I?.action?.url||"",source_site:"oregoncoastal.com"})}},j=S=>{S.preventDefault(),l.trim()&&(s(l),c(""))},N=S=>{s(S.label,S.id,S.label)},_=o();return r.jsxs("div",{className:"fixed bottom-4 right-4 md:bottom-6 md:right-6 z-[9999] flex flex-col items-end font-sans",children:[r.jsx(ka,{children:!e&&r.jsxs(F.button,{initial:{scale:0,opacity:0},animate:{scale:1,opacity:1},exit:{scale:0,opacity:0},whileHover:{scale:1.05},whileTap:{scale:.95},onClick:p,className:"flex items-center gap-2 px-5 py-3 md:h-14 md:w-auto rounded-full bg-[hsl(var(--chat-primary))] text-white shadow-xl hover:shadow-2xl transition-all",children:[r.jsx(Bu,{size:24}),r.jsx("span",{className:"font-semibold text-sm md:text-base whitespace-nowrap",children:"Plan My Trip"})]})}),r.jsx(ka,{children:e&&r.jsxs(F.div,{initial:{opacity:0,y:20,scale:.95},animate:{opacity:1,y:0,scale:1},exit:{opacity:0,y:20,scale:.95},transition:{duration:.2},className:"absolute bottom-0 right-0 w-[calc(100vw-2rem)] sm:w-[420px] h-[65vh] max-h-[600px] min-h-[450px] bg-[hsl(var(--chat-background))] rounded-2xl shadow-2xl flex flex-col overflow-hidden border border-[hsl(var(--chat-border))] origin-bottom-right",children:[r.jsxs("div",{className:"flex items-center justify-between px-5 py-4 bg-[hsl(var(--chat-primary))] text-white flex-shrink-0",children:[r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(Bu,{size:20}),r.jsx("h3",{className:"font-serif font-bold text-lg tracking-wide uppercase",children:"Trip Planner AI"})]}),r.jsx("button",{onClick:x,className:"text-white/80 hover:text-white hover:bg-white/10 rounded-full p-1 transition-colors","aria-label":"Close Chat",children:r.jsx(Uc,{size:20})})]}),r.jsxs("div",{className:"flex-1 overflow-y-auto p-4 custom-scrollbar bg-[hsl(var(--chat-background))] space-y-4",onClick:b,children:[n.map(S=>r.jsx(Wee,{message:S},S.id)),r.jsx("div",{ref:h})]}),r.jsxs("div",{className:"flex-shrink-0 flex flex-col bg-white",children:[_.length>0&&r.jsx(Vee,{options:_,onSelect:N}),r.jsxs("form",{onSubmit:j,className:"flex items-center gap-2 p-3 border-t border-[hsl(var(--chat-border))]",children:[r.jsx("input",{type:"text",value:l,onChange:S=>c(S.target.value),placeholder:"Type your response...",className:"flex-1 bg-gray-50 border border-[hsl(var(--chat-border))] rounded-full px-4 py-2 text-sm text-[hsl(var(--chat-text))] placeholder-gray-400 focus:outline-none focus:border-[hsl(var(--chat-primary))] focus:ring-1 focus:ring-[hsl(var(--chat-primary))] transition-all"}),r.jsx("button",{type:"submit",disabled:!l.trim(),className:"w-10 h-10 rounded-full bg-[hsl(var(--chat-primary))] text-white flex items-center justify-center disabled:opacity-50 disabled:cursor-not-allowed hover:bg-[hsl(var(--chat-primary))/0.9] transition-colors flex-shrink-0",children:r.jsx(Xq,{size:18,className:"ml-0.5"})})]})]})]})})]})};var Uw={exports:{}},qw,UP;function qee(){if(UP)return qw;UP=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return qw=e,qw}var Gw,qP;function Gee(){if(qP)return Gw;qP=1;var e=qee();function t(){}function n(){}return n.resetWarningCache=t,Gw=function(){function a(o,l,c,h,m,p){if(p!==e){var x=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw x.name="Invariant Violation",x}}a.isRequired=a;function i(){return a}var s={array:a,bigint:a,bool:a,func:a,number:a,object:a,string:a,symbol:a,any:a,arrayOf:i,element:a,elementType:a,instanceOf:i,node:a,objectOf:i,oneOf:i,oneOfType:i,shape:i,exact:i,checkPropTypes:n,resetWarningCache:t};return s.PropTypes=s,s},Gw}var GP;function Kee(){return GP||(GP=1,Uw.exports=Gee()()),Uw.exports}var Zee=Kee();const nn=Qa(Zee);var Kw,KP;function Yee(){if(KP)return Kw;KP=1;function e(l){return l&&typeof l=="object"&&"default"in l?l.default:l}var t=Wc(),n=e(t);function a(l,c,h){return c in l?Object.defineProperty(l,c,{value:h,enumerable:!0,configurable:!0,writable:!0}):l[c]=h,l}function i(l,c){l.prototype=Object.create(c.prototype),l.prototype.constructor=l,l.__proto__=c}var s=!!(typeof window<"u"&&window.document&&window.document.createElement);function o(l,c,h){if(typeof l!="function")throw new Error("Expected reducePropsToState to be a function.");if(typeof c!="function")throw new Error("Expected handleStateChangeOnClient to be a function.");if(typeof h<"u"&&typeof h!="function")throw new Error("Expected mapStateOnServer to either be undefined or a function.");function m(p){return p.displayName||p.name||"Component"}return function(x){if(typeof x!="function")throw new Error("Expected WrappedComponent to be a React component.");var b=[],j;function N(){j=l(b.map(function(S){return S.props})),_.canUseDOM?c(j):h&&(j=h(j))}var _=(function(S){i(A,S);function A(){return S.apply(this,arguments)||this}A.peek=function(){return j},A.rewind=function(){if(A.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var O=j;return j=void 0,b=[],O};var P=A.prototype;return P.UNSAFE_componentWillMount=function(){b.push(this),N()},P.componentDidUpdate=function(){N()},P.componentWillUnmount=function(){var O=b.indexOf(this);b.splice(O,1),N()},P.render=function(){return n.createElement(x,this.props)},A})(t.PureComponent);return a(_,"displayName","SideEffect("+m(x)+")"),a(_,"canUseDOM",s),_}}return Kw=o,Kw}var Jee=Yee();const Xee=Qa(Jee);var Zw,ZP;function Qee(){if(ZP)return Zw;ZP=1;var e=typeof Element<"u",t=typeof Map=="function",n=typeof Set=="function",a=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function i(s,o){if(s===o)return!0;if(s&&o&&typeof s=="object"&&typeof o=="object"){if(s.constructor!==o.constructor)return!1;var l,c,h;if(Array.isArray(s)){if(l=s.length,l!=o.length)return!1;for(c=l;c--!==0;)if(!i(s[c],o[c]))return!1;return!0}var m;if(t&&s instanceof Map&&o instanceof Map){if(s.size!==o.size)return!1;for(m=s.entries();!(c=m.next()).done;)if(!o.has(c.value[0]))return!1;for(m=s.entries();!(c=m.next()).done;)if(!i(c.value[1],o.get(c.value[0])))return!1;return!0}if(n&&s instanceof Set&&o instanceof Set){if(s.size!==o.size)return!1;for(m=s.entries();!(c=m.next()).done;)if(!o.has(c.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(s)&&ArrayBuffer.isView(o)){if(l=s.length,l!=o.length)return!1;for(c=l;c--!==0;)if(s[c]!==o[c])return!1;return!0}if(s.constructor===RegExp)return s.source===o.source&&s.flags===o.flags;if(s.valueOf!==Object.prototype.valueOf&&typeof s.valueOf=="function"&&typeof o.valueOf=="function")return s.valueOf()===o.valueOf();if(s.toString!==Object.prototype.toString&&typeof s.toString=="function"&&typeof o.toString=="function")return s.toString()===o.toString();if(h=Object.keys(s),l=h.length,l!==Object.keys(o).length)return!1;for(c=l;c--!==0;)if(!Object.prototype.hasOwnProperty.call(o,h[c]))return!1;if(e&&s instanceof Element)return!1;for(c=l;c--!==0;)if(!((h[c]==="_owner"||h[c]==="__v"||h[c]==="__o")&&s.$$typeof)&&!i(s[h[c]],o[h[c]]))return!1;return!0}return s!==s&&o!==o}return Zw=function(o,l){try{return i(o,l)}catch(c){if((c.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw c}},Zw}var ete=Qee();const tte=Qa(ete);var Yw,YP;function nte(){if(YP)return Yw;YP=1;var e=Object.getOwnPropertySymbols,t=Object.prototype.hasOwnProperty,n=Object.prototype.propertyIsEnumerable;function a(s){if(s==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(s)}function i(){try{if(!Object.assign)return!1;var s=new String("abc");if(s[5]="de",Object.getOwnPropertyNames(s)[0]==="5")return!1;for(var o={},l=0;l<10;l++)o["_"+String.fromCharCode(l)]=l;var c=Object.getOwnPropertyNames(o).map(function(m){return o[m]});if(c.join("")!=="0123456789")return!1;var h={};return"abcdefghijklmnopqrst".split("").forEach(function(m){h[m]=m}),Object.keys(Object.assign({},h)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}return Yw=i()?Object.assign:function(s,o){for(var l,c=a(s),h,m=1;m<arguments.length;m++){l=Object(arguments[m]);for(var p in l)t.call(l,p)&&(c[p]=l[p]);if(e){h=e(l);for(var x=0;x<h.length;x++)n.call(l,h[x])&&(c[h[x]]=l[h[x]])}}return c},Yw}var rte=nte();const ate=Qa(rte);var Ac={BODY:"bodyAttributes",HTML:"htmlAttributes",TITLE:"titleAttributes"},ot={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"};Object.keys(ot).map(function(e){return ot[e]});var rn={CHARSET:"charset",CSS_TEXT:"cssText",HREF:"href",HTTPEQUIV:"http-equiv",INNER_HTML:"innerHTML",ITEM_PROP:"itemprop",NAME:"name",PROPERTY:"property",REL:"rel",SRC:"src",TARGET:"target"},Iy={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},Dm={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate"},ite=Object.keys(Iy).reduce(function(e,t){return e[Iy[t]]=t,e},{}),ste=[ot.NOSCRIPT,ot.SCRIPT,ot.STYLE],wi="data-react-helmet",ote=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},lte=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},cte=(function(){function e(t,n){for(var a=0;a<n.length;a++){var i=n[a];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(t,n,a){return n&&e(t.prototype,n),a&&e(t,a),t}})(),Qr=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},dte=function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)},JP=function(e,t){var n={};for(var a in e)t.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(e,a)&&(n[a]=e[a]);return n},ute=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t&&(typeof t=="object"||typeof t=="function")?t:e},eN=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return n===!1?String(t):String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},hte=function(t){var n=Cu(t,ot.TITLE),a=Cu(t,Dm.TITLE_TEMPLATE);if(a&&n)return a.replace(/%s/g,function(){return Array.isArray(n)?n.join(""):n});var i=Cu(t,Dm.DEFAULT_TITLE);return n||i||void 0},fte=function(t){return Cu(t,Dm.ON_CHANGE_CLIENT_STATE)||function(){}},Jw=function(t,n){return n.filter(function(a){return typeof a[t]<"u"}).map(function(a){return a[t]}).reduce(function(a,i){return Qr({},a,i)},{})},mte=function(t,n){return n.filter(function(a){return typeof a[ot.BASE]<"u"}).map(function(a){return a[ot.BASE]}).reverse().reduce(function(a,i){if(!a.length)for(var s=Object.keys(i),o=0;o<s.length;o++){var l=s[o],c=l.toLowerCase();if(t.indexOf(c)!==-1&&i[c])return a.concat(i)}return a},[])},Df=function(t,n,a){var i={};return a.filter(function(s){return Array.isArray(s[t])?!0:(typeof s[t]<"u"&&yte("Helmet: "+t+' should be of type "Array". Instead found type "'+ote(s[t])+'"'),!1)}).map(function(s){return s[t]}).reverse().reduce(function(s,o){var l={};o.filter(function(x){for(var b=void 0,j=Object.keys(x),N=0;N<j.length;N++){var _=j[N],S=_.toLowerCase();n.indexOf(S)!==-1&&!(b===rn.REL&&x[b].toLowerCase()==="canonical")&&!(S===rn.REL&&x[S].toLowerCase()==="stylesheet")&&(b=S),n.indexOf(_)!==-1&&(_===rn.INNER_HTML||_===rn.CSS_TEXT||_===rn.ITEM_PROP)&&(b=_)}if(!b||!x[b])return!1;var A=x[b].toLowerCase();return i[b]||(i[b]={}),l[b]||(l[b]={}),i[b][A]?!1:(l[b][A]=!0,!0)}).reverse().forEach(function(x){return s.push(x)});for(var c=Object.keys(l),h=0;h<c.length;h++){var m=c[h],p=ate({},i[m],l[m]);i[m]=p}return s},[]).reverse()},Cu=function(t,n){for(var a=t.length-1;a>=0;a--){var i=t[a];if(i.hasOwnProperty(n))return i[n]}return null},pte=function(t){return{baseTag:mte([rn.HREF,rn.TARGET],t),bodyAttributes:Jw(Ac.BODY,t),defer:Cu(t,Dm.DEFER),encode:Cu(t,Dm.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:Jw(Ac.HTML,t),linkTags:Df(ot.LINK,[rn.REL,rn.HREF],t),metaTags:Df(ot.META,[rn.NAME,rn.CHARSET,rn.HTTPEQUIV,rn.PROPERTY,rn.ITEM_PROP],t),noscriptTags:Df(ot.NOSCRIPT,[rn.INNER_HTML],t),onChangeClientState:fte(t),scriptTags:Df(ot.SCRIPT,[rn.SRC,rn.INNER_HTML],t),styleTags:Df(ot.STYLE,[rn.CSS_TEXT],t),title:hte(t),titleAttributes:Jw(Ac.TITLE,t)}},tN=(function(){var e=Date.now();return function(t){var n=Date.now();n-e>16?(e=n,t(n)):setTimeout(function(){tN(t)},0)}})(),XP=function(t){return clearTimeout(t)},gte=typeof window<"u"?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||tN:global.requestAnimationFrame||tN,xte=typeof window<"u"?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||XP:global.cancelAnimationFrame||XP,yte=function(t){return console&&typeof console.warn=="function"&&console.warn(t)},Bf=null,vte=function(t){Bf&&xte(Bf),t.defer?Bf=gte(function(){QP(t,function(){Bf=null})}):(QP(t),Bf=null)},QP=function(t,n){var a=t.baseTag,i=t.bodyAttributes,s=t.htmlAttributes,o=t.linkTags,l=t.metaTags,c=t.noscriptTags,h=t.onChangeClientState,m=t.scriptTags,p=t.styleTags,x=t.title,b=t.titleAttributes;nN(ot.BODY,i),nN(ot.HTML,s),bte(x,b);var j={baseTag:eu(ot.BASE,a),linkTags:eu(ot.LINK,o),metaTags:eu(ot.META,l),noscriptTags:eu(ot.NOSCRIPT,c),scriptTags:eu(ot.SCRIPT,m),styleTags:eu(ot.STYLE,p)},N={},_={};Object.keys(j).forEach(function(S){var A=j[S],P=A.newTags,I=A.oldTags;P.length&&(N[S]=P),I.length&&(_[S]=j[S].oldTags)}),n&&n(),h(t,N,_)},IL=function(t){return Array.isArray(t)?t.join(""):t},bte=function(t,n){typeof t<"u"&&document.title!==t&&(document.title=IL(t)),nN(ot.TITLE,n)},nN=function(t,n){var a=document.getElementsByTagName(t)[0];if(a){for(var i=a.getAttribute(wi),s=i?i.split(","):[],o=[].concat(s),l=Object.keys(n),c=0;c<l.length;c++){var h=l[c],m=n[h]||"";a.getAttribute(h)!==m&&a.setAttribute(h,m),s.indexOf(h)===-1&&s.push(h);var p=o.indexOf(h);p!==-1&&o.splice(p,1)}for(var x=o.length-1;x>=0;x--)a.removeAttribute(o[x]);s.length===o.length?a.removeAttribute(wi):a.getAttribute(wi)!==l.join(",")&&a.setAttribute(wi,l.join(","))}},eu=function(t,n){var a=document.head||document.querySelector(ot.HEAD),i=a.querySelectorAll(t+"["+wi+"]"),s=Array.prototype.slice.call(i),o=[],l=void 0;return n&&n.length&&n.forEach(function(c){var h=document.createElement(t);for(var m in c)if(c.hasOwnProperty(m))if(m===rn.INNER_HTML)h.innerHTML=c.innerHTML;else if(m===rn.CSS_TEXT)h.styleSheet?h.styleSheet.cssText=c.cssText:h.appendChild(document.createTextNode(c.cssText));else{var p=typeof c[m]>"u"?"":c[m];h.setAttribute(m,p)}h.setAttribute(wi,"true"),s.some(function(x,b){return l=b,h.isEqualNode(x)})?s.splice(l,1):o.push(h)}),s.forEach(function(c){return c.parentNode.removeChild(c)}),o.forEach(function(c){return a.appendChild(c)}),{oldTags:s,newTags:o}},ML=function(t){return Object.keys(t).reduce(function(n,a){var i=typeof t[a]<"u"?a+'="'+t[a]+'"':""+a;return n?n+" "+i:i},"")},wte=function(t,n,a,i){var s=ML(a),o=IL(n);return s?"<"+t+" "+wi+'="true" '+s+">"+eN(o,i)+"</"+t+">":"<"+t+" "+wi+'="true">'+eN(o,i)+"</"+t+">"},jte=function(t,n,a){return n.reduce(function(i,s){var o=Object.keys(s).filter(function(h){return!(h===rn.INNER_HTML||h===rn.CSS_TEXT)}).reduce(function(h,m){var p=typeof s[m]>"u"?m:m+'="'+eN(s[m],a)+'"';return h?h+" "+p:p},""),l=s.innerHTML||s.cssText||"",c=ste.indexOf(t)===-1;return i+"<"+t+" "+wi+'="true" '+o+(c?"/>":">"+l+"</"+t+">")},"")},LL=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(t).reduce(function(a,i){return a[Iy[i]||i]=t[i],a},n)},Nte=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(t).reduce(function(a,i){return a[ite[i]||i]=t[i],a},n)},kte=function(t,n,a){var i,s=(i={key:n},i[wi]=!0,i),o=LL(a,s);return[an.createElement(ot.TITLE,o,n)]},_te=function(t,n){return n.map(function(a,i){var s,o=(s={key:i},s[wi]=!0,s);return Object.keys(a).forEach(function(l){var c=Iy[l]||l;if(c===rn.INNER_HTML||c===rn.CSS_TEXT){var h=a.innerHTML||a.cssText;o.dangerouslySetInnerHTML={__html:h}}else o[c]=a[l]}),an.createElement(t,o)})},Fs=function(t,n,a){switch(t){case ot.TITLE:return{toComponent:function(){return kte(t,n.title,n.titleAttributes)},toString:function(){return wte(t,n.title,n.titleAttributes,a)}};case Ac.BODY:case Ac.HTML:return{toComponent:function(){return LL(n)},toString:function(){return ML(n)}};default:return{toComponent:function(){return _te(t,n)},toString:function(){return jte(t,n,a)}}}},DL=function(t){var n=t.baseTag,a=t.bodyAttributes,i=t.encode,s=t.htmlAttributes,o=t.linkTags,l=t.metaTags,c=t.noscriptTags,h=t.scriptTags,m=t.styleTags,p=t.title,x=p===void 0?"":p,b=t.titleAttributes;return{base:Fs(ot.BASE,n,i),bodyAttributes:Fs(Ac.BODY,a,i),htmlAttributes:Fs(Ac.HTML,s,i),link:Fs(ot.LINK,o,i),meta:Fs(ot.META,l,i),noscript:Fs(ot.NOSCRIPT,c,i),script:Fs(ot.SCRIPT,h,i),style:Fs(ot.STYLE,m,i),title:Fs(ot.TITLE,{title:x,titleAttributes:b},i)}},Ste=function(t){var n,a;return a=n=(function(i){dte(s,i);function s(){return lte(this,s),ute(this,i.apply(this,arguments))}return s.prototype.shouldComponentUpdate=function(l){return!tte(this.props,l)},s.prototype.mapNestedChildrenToProps=function(l,c){if(!c)return null;switch(l.type){case ot.SCRIPT:case ot.NOSCRIPT:return{innerHTML:c};case ot.STYLE:return{cssText:c}}throw new Error("<"+l.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},s.prototype.flattenArrayTypeChildren=function(l){var c,h=l.child,m=l.arrayTypeChildren,p=l.newChildProps,x=l.nestedChildren;return Qr({},m,(c={},c[h.type]=[].concat(m[h.type]||[],[Qr({},p,this.mapNestedChildrenToProps(h,x))]),c))},s.prototype.mapObjectTypeChildren=function(l){var c,h,m=l.child,p=l.newProps,x=l.newChildProps,b=l.nestedChildren;switch(m.type){case ot.TITLE:return Qr({},p,(c={},c[m.type]=b,c.titleAttributes=Qr({},x),c));case ot.BODY:return Qr({},p,{bodyAttributes:Qr({},x)});case ot.HTML:return Qr({},p,{htmlAttributes:Qr({},x)})}return Qr({},p,(h={},h[m.type]=Qr({},x),h))},s.prototype.mapArrayTypeChildrenToProps=function(l,c){var h=Qr({},c);return Object.keys(l).forEach(function(m){var p;h=Qr({},h,(p={},p[m]=l[m],p))}),h},s.prototype.warnOnInvalidChildren=function(l,c){return!0},s.prototype.mapChildrenToProps=function(l,c){var h=this,m={};return an.Children.forEach(l,function(p){if(!(!p||!p.props)){var x=p.props,b=x.children,j=JP(x,["children"]),N=Nte(j);switch(h.warnOnInvalidChildren(p,b),p.type){case ot.LINK:case ot.META:case ot.NOSCRIPT:case ot.SCRIPT:case ot.STYLE:m=h.flattenArrayTypeChildren({child:p,arrayTypeChildren:m,newChildProps:N,nestedChildren:b});break;default:c=h.mapObjectTypeChildren({child:p,newProps:c,newChildProps:N,nestedChildren:b});break}}}),c=this.mapArrayTypeChildrenToProps(m,c),c},s.prototype.render=function(){var l=this.props,c=l.children,h=JP(l,["children"]),m=Qr({},h);return c&&(m=this.mapChildrenToProps(c,m)),an.createElement(t,m)},cte(s,null,[{key:"canUseDOM",set:function(l){t.canUseDOM=l}}]),s})(an.Component),n.propTypes={base:nn.object,bodyAttributes:nn.object,children:nn.oneOfType([nn.arrayOf(nn.node),nn.node]),defaultTitle:nn.string,defer:nn.bool,encodeSpecialCharacters:nn.bool,htmlAttributes:nn.object,link:nn.arrayOf(nn.object),meta:nn.arrayOf(nn.object),noscript:nn.arrayOf(nn.object),onChangeClientState:nn.func,script:nn.arrayOf(nn.object),style:nn.arrayOf(nn.object),title:nn.string,titleAttributes:nn.object,titleTemplate:nn.string},n.defaultProps={defer:!0,encodeSpecialCharacters:!0},n.peek=t.peek,n.rewind=function(){var i=t.rewind();return i||(i=DL({baseTag:[],bodyAttributes:{},htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),i},a},Cte=function(){return null},Tte=Xee(pte,vte,DL)(Cte),$e=Ste(Tte);$e.renderStatic=$e.rewind;const ke={astoria:{name:"Astoria",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/87a5cf9fdfd9ec73beb75e0d07deb515.png",description:"Perched at the mouth of the Columbia River, Astoria is a historic port city known for its Victorian homes, maritime heritage, and vibrant arts scene.",geo:{lat:46.1879,lng:-123.8306},route:"/town/astoria"},warrenton:{name:"Warrenton",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2b4ad5459baa2eff0c839a7b1e3e1bbf.png",description:"Located across the bay from Astoria, Warrenton offers access to Fort Stevens State Park and the Peter Iredale shipwreck.",geo:{lat:46.1637,lng:-123.9235},route:"/town/warrenton"},gearhart:{name:"Gearhart",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/a30ccf37bb76d25057d131c04184a76b.png",description:"A quiet, upscale beach town known for its dunes, wide beaches, and the oldest golf course in the western United States.",geo:{lat:46.0276,lng:-123.9182},route:"/town/gearhart"},seaside:{name:"Seaside",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/20f258c255a9c7d65b2c4e69ce5a6277.jpg",description:"A classic Oregon beach town with a bustling promenade, historic carousel, and family-friendly attractions.",geo:{lat:45.9932,lng:-123.9226},route:"/town/seaside"},"cannon-beach":{name:"Cannon Beach",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/3216bd81b56b8430ef0b545406c874cd.png",description:"Home to the iconic Haystack Rock, known for its expansive sandy beaches and vibrant arts scene.",geo:{lat:45.8918,lng:-123.9615},route:"/town/cannon-beach"},"tolovana-park":{name:"Tolovana Park",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/df132b49e7e22090d7fedc15ea9e28d2.jpg",description:"A quieter extension of Cannon Beach, offering great views of Haystack Rock from the south.",geo:{lat:45.8756,lng:-123.9609},route:"/town/tolovana-park"},"arch-cape":{name:"Arch Cape",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/978ecb912e958e7a22ad702dcb8fefaa.jpg",description:"A quiet residential community south of Cannon Beach, offering solitude and rugged beauty.",geo:{lat:45.8038,lng:-123.9604},route:"/town/arch-cape"},manzanita:{name:"Manzanita",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/9d7d8979eea1edad26a0451b02380165.png",description:"A charming village between the ocean and Neahkahnie Mountain, known for its laid-back vibe.",geo:{lat:45.7184,lng:-123.9351},route:"/town/manzanita"},nehalem:{name:"Nehalem",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/b78866b24d75d9c38bc56102578e861b.jpg",description:"Located on the banks of the Nehalem River, a hub for fishing, kayaking, and antique shopping.",geo:{lat:45.7169,lng:-123.8967},route:"/town/nehalem"},wheeler:{name:"Wheeler",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/23f1bedbd7ec035f6b6aace6d446ee76.jpg",description:"A tiny, picturesque town on Nehalem Bay, known for its antique stores and stunning sunsets.",geo:{lat:45.6888,lng:-123.8824},route:"/town/wheeler"},"rockaway-beach":{name:"Rockaway Beach",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/4f9c0d6463249a23d3c5e2ee7757b62a.png",description:"Known for its 7 miles of flat sandy beach and the iconic Twin Rocks.",geo:{lat:45.6133,lng:-123.9431},route:"/town/rockaway-beach"},garibaldi:{name:"Garibaldi",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c9f7d9719b4e4f4dca5f081eea37a170.jpg",description:"A working fishing village at the north end of Tillamook Bay, famous for its marina and crabbing.",geo:{lat:45.5598,lng:-123.9101},route:"/town/garibaldi"},"bay-city":{name:"Bay City",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2c6a6470930383c59decc0a4ba187072.jpg",description:"Located on Tillamook Bay, known for its oysters and clamming.",geo:{lat:45.5222,lng:-123.8893},route:"/town/bay-city"},tillamook:{name:"Tillamook",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/5fadb3209ab4d93136e5d943bd4785aa.jpg",description:"Famous for the Tillamook Creamery, a hub for agriculture and history.",geo:{lat:45.4562,lng:-123.844},route:"/town/tillamook"},netarts:{name:"Netarts",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/b4066023187b60adc59587c738bf4819.jpg",description:"A quiet community on Netarts Bay, excellent for crabbing and clamming.",geo:{lat:45.4312,lng:-123.9443},route:"/town/netarts"},oceanside:{name:"Oceanside",region:"North Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/503f9681cb9be60c3efc61c144628252.jpg",description:"Built into a steep hillside, known for its tunnel through Maxwell Point.",geo:{lat:45.459,lng:-123.9702},route:"/town/oceanside"},"pacific-city":{name:"Pacific City",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/6ed44670bdc554cfd33f8e8444def284.jpg",description:"Home to the other Haystack Rock and the giant Cape Kiwanda sand dune.",geo:{lat:45.2032,lng:-123.9629},route:"/town/pacific-city"},neskowin:{name:"Neskowin",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/f3238bab609a3f5a75aad2f4370317a7.jpg",description:"A quiet village known for Proposal Rock and the ancient Ghost Forest.",geo:{lat:45.1118,lng:-123.9873},route:"/town/neskowin"},"lincoln-city":{name:"Lincoln City",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/4b7ba56a47e804904a0e87f9ebad9b07.webp",description:"Spanning seven miles of beach, known for glass floats and kite flying.",geo:{lat:44.9729,lng:-124.0113},route:"/town/lincoln-city"},"gleneden-beach":{name:"Gleneden Beach",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/198018a5878ad5fcf6cafddb42efb27d.webp",description:"A sophisticated coastal retreat known for the Salishan Coastal Lodge.",geo:{lat:44.8879,lng:-124.0326},route:"/town/gleneden-beach"},"depoe-bay":{name:"Depoe Bay",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2c57f533ae0506195f5f5c9a0953d506.webp",description:"The whale watching capital with the world's smallest navigable harbor.",geo:{lat:44.8066,lng:-124.0601},route:"/town/depoe-bay"},"otter-rock":{name:"Otter Rock",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/db7f80fe48b5bd85006a138f546efff8.webp",description:"Home to the Devil's Punchbowl and a popular surfing beach.",geo:{lat:44.4167,lng:-124.0833},route:"/town/otter-rock"},newport:{name:"Newport",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c6fc2828b4f0e652c620d7b1874dcdab.webp",description:"Oregon's Marine Discovery Capital, home to the historic bayfront.",geo:{lat:44.6349,lng:-124.0554},route:"/town/newport"},"south-beach":{name:"South Beach",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e1e041b89722871843a1b35e49288748.webp",description:"Home to Oregon Coast Aquarium and pristine beaches.",geo:{lat:44.6333,lng:-124.0667},route:"/town/south-beach"},"seal-rock":{name:"Seal Rock",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/8827892cb93ca1b0cd53550f0936dcde.webp",description:"A hidden gem known for Elephant Rock and massive tide pools.",geo:{lat:44.4987,lng:-124.0829},route:"/seal-rock"},toledo:{name:"Toledo",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/457d2a9a2f4957025e208eca9ea65735.webp",description:"Located inland on the Yaquina River, an industrial town with a growing art scene.",geo:{lat:44.6215,lng:-123.9373},route:"/town/toledo"},waldport:{name:"Waldport",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/f29f63a80e5ae25aecbbc6b26c9d6390.webp",description:"Where the Alsea River meets the ocean, famous for crabbing.",geo:{lat:44.4267,lng:-124.0733},route:"/town/waldport"},yachats:{name:"Yachats",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e7a98346b0f2453dedf2c0e629d0d68c.webp",description:"Gem of the Oregon Coast, featuring Thor's Well and Cape Perpetua.",geo:{lat:44.3112,lng:-124.1049},route:"/town/yachats"},florence:{name:"Florence",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/f96e6b74688eedfb4225959efeeff861.webp",description:"Gateway to the Oregon Dunes and home to Heceta Head Lighthouse.",geo:{lat:43.9826,lng:-124.0998},route:"/town/florence"},"dune-city":{name:"Dune City",region:"Central Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c2bb95a8f717d26828623d6733b9a799.webp",description:"The City of Lakes, offering access to Siltcoos and Woahink Lakes.",geo:{lat:43.8967,lng:-124.113},route:"/town/dune-city"},reedsport:{name:"Reedsport",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/b944ec2da4c83a081237a386e2b441de.jpg",description:"Located at the junction of the Umpqua River and the coast, home to elk viewing.",geo:{lat:43.6987,lng:-124.0963},route:"/town/reedsport"},"winchester-bay":{name:"Winchester Bay",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2f37573b78ca4f0f6ac0a59604cf403c.webp",description:"Known for the Umpqua River Lighthouse and massive dunes.",geo:{lat:43.6781,lng:-124.1751},route:"/town/winchester-bay"},gardiner:{name:"Gardiner",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/b4066023187b60adc59587c738bf4819.jpg",description:"A historic riverfront town on the banks of the Umpqua River.",geo:{lat:43.7312,lng:-124.1102},route:"/town/gardiner"},lakeside:{name:"Lakeside",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e921b311af063b364aecb010b4f38a5a.webp",description:"Nestled on Tenmile Lakes, a paradise for boating and fishing.",geo:{lat:43.5684,lng:-124.1675},route:"/town/lakeside"},"north-bend":{name:"North Bend",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/072208077f88884fb8012cdedd684f53.webp",description:"Known for the McCullough Memorial Bridge and the Oregon Dunes.",geo:{lat:43.4065,lng:-124.2243},route:"/town/north-bend"},"coos-bay":{name:"Coos Bay",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/32c0d973a9704cf199b61ec4477d1531.webp",description:"The largest city on the Oregon Coast, known for Shore Acres State Park.",geo:{lat:43.3665,lng:-124.2179},route:"/town/coos-bay"},charleston:{name:"Charleston",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/5485f2d012062e22311e617cd36550a7.jpg",description:"Distinctive fishing village with marina and scenic Cape Arago Beach Loop.",geo:{lat:43.3569,lng:-124.3199},route:"/town/charleston"},bandon:{name:"Bandon",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/5b77b21e59bd04defe28f5074f5126d6.webp",description:"Famous for sea stacks at Face Rock and world-class golf.",geo:{lat:43.1086,lng:-124.4048},route:"/town/bandon"},langlois:{name:"Langlois",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/17bd9faa00a2de20cd5caa78364dd87c.webp",description:"A charming community famous for windsurfing at Floras Lake.",geo:{lat:42.9238,lng:-124.4534},route:"/town/langlois"},"port-orford":{name:"Port Orford",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2a920d94b7ea480bbad4676664281550.webp",description:"The westernmost city in the lower 48 states, known for Battle Rock.",geo:{lat:42.7457,lng:-124.4984},route:"/town/port-orford"},"gold-beach":{name:"Gold Beach",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c877cc6b256faf5d4fc943c9cf11f331.webp",description:"Where the Wild Rogue River Meets the Pacific.",geo:{lat:42.4091,lng:-124.4187},route:"/town/gold-beach"},brookings:{name:"Brookings",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/d70e7940aab86e455bd557529fff3fdd.webp",description:"Oregon's warmest coastal city with dramatic sea stacks.",geo:{lat:42.0534,lng:-124.2844},route:"/town/brookings"},harbor:{name:"Harbor",region:"South Coast",heroImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c83af0560b4f8c977f60d521543eadef.webp",description:"Located south of Brookings, known for the busy port and lily bulb farms.",geo:{lat:42.0543,lng:-124.269},route:"/town/harbor"}},zr={northCoast:[ke.astoria,ke.warrenton,ke.gearhart,ke.seaside,ke["cannon-beach"],ke["arch-cape"],ke.manzanita,ke.nehalem,ke.wheeler,ke["rockaway-beach"],ke.garibaldi,ke["bay-city"],ke.tillamook,ke.netarts,ke.oceanside],centralCoast:[ke["pacific-city"],ke.neskowin,ke["lincoln-city"],ke["gleneden-beach"],ke["depoe-bay"],ke["otter-rock"],ke.newport,ke["seal-rock"],ke["south-beach"],ke.waldport,ke.yachats,ke.florence,ke["dune-city"]],southCoast:[ke.reedsport,ke["winchester-bay"],ke.gardiner,ke["north-bend"],ke["coos-bay"],ke.charleston,ke.bandon,ke.langlois,ke["port-orford"],ke["gold-beach"],ke.brookings,ke.harbor]},Ge=()=>{const[e,t]=v.useState(!1),[n,a]=v.useState(null),[i,s]=v.useState(!1),o=Yn(),l=o.pathname==="/";v.useEffect(()=>{const b=()=>s(window.scrollY>50);return window.addEventListener("scroll",b),()=>window.removeEventListener("scroll",b)},[]),v.useEffect(()=>{t(!1),a(null)},[o.pathname]);const c=l&&!i?"bg-transparent":"bg-[var(--nav-bg)] shadow-md border-b border-[var(--nav-border)]",h=l?"fixed top-0 left-0 right-0":"sticky top-0",m={"North Coast":"/north-coast","Central Coast":"/central-coast","South Coast":"/south-coast"},p={"North Coast":zr.northCoast,"Central Coast":zr.centralCoast,"South Coast":zr.southCoast},x=({title:b,regionKey:j,isMobile:N=!1})=>N?r.jsx("div",{className:"border-b border-[var(--nav-border)]",children:r.jsx(_t,{to:m[j],className:"block py-3 px-4 text-[var(--nav-text)] font-sans tracking-[0.15em] uppercase text-xs hover:bg-[var(--nav-hover)] transition-colors",children:b})}):r.jsxs("div",{className:"relative group flex items-center h-full",onMouseEnter:()=>a(j),onMouseLeave:()=>a(null),children:[r.jsxs(_t,{to:m[j],className:"text-[var(--nav-text)] font-sans tracking-[0.15em] uppercase text-xs hover:bg-[var(--nav-hover)] transition-colors flex items-center gap-1 h-full px-2 rounded-sm",children:[b,r.jsx(ap,{className:"w-3 h-3 opacity-70"})]}),r.jsx(ka,{children:n===j&&r.jsxs(F.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:10},transition:{duration:.15},className:"absolute top-full left-0 mt-0 w-56 bg-[var(--nav-bg)] border border-[var(--nav-border)] shadow-xl py-2 z-50 max-h-[70vh] overflow-y-auto custom-scrollbar rounded-b-md",children:[r.jsx("div",{className:"px-4 py-3 border-b border-[var(--nav-border)] bg-[var(--nav-hover)] mb-2",children:r.jsx(_t,{to:m[j],className:"text-xs font-bold text-[var(--nav-text)] uppercase tracking-widest hover:text-white/80",children:"View All Towns"})}),p[j].map((_,S)=>r.jsx(_t,{to:_.route,className:"block px-4 py-2 text-sm text-[var(--nav-text)] hover:bg-[var(--nav-hover)] transition-colors border-b border-[var(--nav-border)] last:border-0",children:_.name},S))]})})]});return r.jsxs("nav",{className:`${h} w-full z-50 transition-colors duration-300 ${c}`,children:[r.jsx("div",{className:"max-w-7xl mx-auto px-6 hidden lg:block relative",children:r.jsxs("div",{className:"flex items-center justify-between h-24 relative",children:[r.jsxs("div",{className:"flex items-center gap-4 h-full",children:[r.jsx(_t,{to:"/",className:"text-[var(--nav-text)] font-sans tracking-[0.15em] uppercase text-xs hover:bg-[var(--nav-hover)] transition-colors h-full flex items-center px-2 rounded-sm",children:"HOME"}),r.jsx("span",{className:"text-white/40",children:"·"}),r.jsx(x,{title:"NORTH COAST",regionKey:"North Coast"}),r.jsx("span",{className:"text-white/40",children:"·"}),r.jsx(x,{title:"CENTRAL COAST",regionKey:"Central Coast"})]}),r.jsx(_t,{to:"/",className:"absolute left-1/2 transform -translate-x-1/2 flex items-center mt-6 pb-[18px]",children:r.jsx("img",{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2543bbb56c2bd1e5a7aeddeb85168a0f.png",alt:"Oregon Coastal logo",className:"h-20 w-auto transition-transform hover:scale-105 drop-shadow-md"})}),r.jsxs("div",{className:"flex items-center gap-4 h-full relative right-[160px]",children:[r.jsx(x,{title:"SOUTH COAST",regionKey:"South Coast"}),r.jsx("span",{className:"text-white/40",children:"·"}),r.jsx(_t,{to:"/maps",className:"text-[var(--nav-text)] font-sans tracking-[0.15em] uppercase text-xs hover:bg-[var(--nav-hover)] transition-colors h-full flex items-center px-2 gap-1 rounded-sm",children:"🗺 MAPS"})]})]})}),r.jsxs("div",{className:"lg:hidden px-4 py-4 flex items-center justify-between",children:[r.jsx(_t,{to:"/",className:"z-50 pb-[18px]",children:r.jsx("img",{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2543bbb56c2bd1e5a7aeddeb85168a0f.png",alt:"Oregon Coastal logo",className:"h-14 w-auto drop-shadow-md"})}),r.jsx("button",{onClick:()=>t(!e),className:"p-2 text-[var(--nav-text)] hover:bg-[var(--nav-hover)] rounded-lg transition-colors z-50",children:e?r.jsx(Uc,{className:"w-7 h-7"}):r.jsx(vI,{className:"w-7 h-7"})})]}),r.jsx(ka,{children:e&&r.jsx(F.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},className:"lg:hidden bg-[var(--nav-bg)] border-t border-[var(--nav-border)] overflow-hidden",children:r.jsxs("div",{className:"px-4 py-2 space-y-1",children:[r.jsx(_t,{to:"/",className:"block py-3 px-4 text-[var(--nav-text)] font-sans tracking-[0.15em] uppercase text-xs hover:bg-[var(--nav-hover)] transition-colors border-b border-[var(--nav-border)]",children:"HOME"}),r.jsx(x,{title:"NORTH COAST",regionKey:"North Coast",isMobile:!0}),r.jsx(x,{title:"CENTRAL COAST",regionKey:"Central Coast",isMobile:!0}),r.jsx(x,{title:"SOUTH COAST",regionKey:"South Coast",isMobile:!0}),r.jsx(_t,{to:"/maps",className:"block py-3 px-4 text-[var(--nav-text)] font-sans tracking-[0.15em] uppercase text-xs hover:bg-[var(--nav-hover)] transition-colors border-b border-[var(--nav-border)]",children:"🗺 MAPS"})]})})}),r.jsx("div",{className:"absolute top-0 right-0 w-0 h-0 pointer-events-none z-[100]",children:r.jsx("div",{className:"pointer-events-auto",children:r.jsx(RL,{})})})]})},Ate=()=>{const e=[{url:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/45970d6c15a8cfac4b27b3e288a79085.jpg",alt:"Dramatic Oregon Coast cliffs with ocean waves"},{url:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/130698e6c74193a0e1992539980d58b4.jpg",alt:"Scenic Oregon Coast beach at sunset"},{url:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/d5b6ae631715d7031d839b478f9ab448.jpg",alt:"Rugged Oregon Coast shoreline landscape"}],[t,n]=v.useState(0);return v.useEffect(()=>{const i=setInterval(()=>{n(s=>(s+1)%e.length)},6e3);return()=>clearInterval(i)},[e.length]),r.jsxs("section",{className:"relative w-full h-screen overflow-hidden bg-[#0d1f26]",children:[r.jsx("div",{className:"absolute inset-0",children:r.jsx(ka,{initial:!1,children:r.jsx(F.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:1.5,ease:"easeInOut"},className:"absolute inset-0 w-full h-full",children:r.jsx("img",{src:e[t].url,alt:e[t].alt,className:"w-full h-full object-cover object-center"})},t)})}),r.jsx("div",{className:"absolute inset-0 z-10 bg-gradient-to-b from-black/40 via-black/20 to-black/80",style:{opacity:"var(--hero-overlay-opacity)"},"aria-hidden":"true"}),r.jsx("div",{className:"absolute inset-0 z-20 hero-grain-overlay pointer-events-none","aria-hidden":"true"}),r.jsx("div",{className:"absolute inset-0 z-30 flex items-center justify-center px-4",children:r.jsxs("div",{className:"text-center max-w-4xl text-white",children:[r.jsx("h1",{className:"hero-title-serif text-white text-6xl sm:text-7xl md:text-8xl lg:text-9xl mb-6 leading-none drop-shadow-2xl",children:"OREGON COAST"}),r.jsxs("div",{className:"flex items-center justify-center gap-4 mb-6 opacity-95",children:[r.jsx("div",{className:"h-px bg-white/70 w-12 sm:w-16 md:w-20"}),r.jsx("h2",{className:"hero-subtitle-serif text-white text-sm sm:text-base md:text-lg tracking-widest drop-shadow-md",children:"HOTELS AND TRAVEL GUIDE"}),r.jsx("div",{className:"h-px bg-white/70 w-12 sm:w-16 md:w-20"})]}),r.jsxs("p",{className:"text-white max-w-[700px] mx-auto px-4 drop-shadow-lg leading-relaxed flex flex-col gap-3",children:[r.jsx("span",{className:"font-serif italic text-xl sm:text-2xl md:text-3xl text-white/100",children:"Rugged cliffs. Sandy beaches. Charming towns."}),r.jsx("span",{className:"font-sans font-light text-base sm:text-lg text-white/90",children:"Your perfect Pacific Northwest getaway starts here."})]})]})})]})},Ye=()=>{const e={"North Coast":[],"Central Coast":[],"South Coast":[]};Object.entries(ke).forEach(([a,i])=>{let s=i.region;s==="Northern Coast"&&(s="North Coast"),s==="Southern Coast"&&(s="South Coast"),e[s]&&e[s].push({name:i.name,slug:a})});const t=[{name:"Facebook",url:"https://www.facebook.com/OregonCoastal",icon:r.jsx(Cq,{className:"w-5 h-5"})},{name:"Instagram",url:"https://www.instagram.com/oregoncoastal/",icon:r.jsx(Lq,{className:"w-5 h-5"})},{name:"TikTok",url:"https://www.tiktok.com/@oregoncoastal",icon:r.jsx(Wq,{className:"w-5 h-5"})}],n={"@context":"https://schema.org","@type":"WebSite",name:"Oregon Coastal Travel Guide",url:"https://oregoncoastal.com",potentialAction:{"@type":"SearchAction",target:"https://oregoncoastal.com/search?q={search_term_string}","query-input":"required name=search_term_string"}};return r.jsxs("footer",{className:"bg-parchment pt-20 pb-12 border-t border-border",children:[r.jsx($e,{children:r.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)})}),r.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:[r.jsxs("div",{className:"flex flex-col items-center mb-16 space-y-8",children:[r.jsx(_t,{to:"/",children:r.jsx("img",{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/5aec0a78c050127441439c73de956f1f.png",alt:"Oregon Coastal Logo",className:"w-[140px] h-auto hover:opacity-90 transition-opacity"})}),r.jsx("div",{className:"flex items-center space-x-6",children:t.map(a=>r.jsx("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"p-3 rounded-md bg-sage text-white shadow-soft hover:bg-sage/90 hover:-translate-y-1 transition-all duration-300","aria-label":a.name,children:a.icon},a.name))})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-12 mb-16",children:["North Coast","Central Coast","South Coast"].map(a=>r.jsxs("div",{className:"space-y-6",children:[r.jsx(_t,{to:`/${a.toLowerCase().replace(" ","-")}`,className:"block text-xl font-serif font-bold uppercase tracking-widest text-primary border-b border-border pb-4 hover:text-sage transition-colors",children:a}),r.jsx("div",{className:"grid grid-cols-2 gap-x-6 gap-y-3",children:e[a].map(i=>r.jsx(_t,{to:`/town/${i.slug}`,className:"block text-foreground hover:text-sage font-sans text-sm tracking-wide transition-colors truncate",children:i.name},i.slug))})]},a))}),r.jsxs("div",{className:"border-t border-border pt-12 text-center",children:[r.jsx("p",{className:"font-serif italic text-sage mb-4 text-lg",children:"Exploring the Pacific Northwest"}),r.jsxs("p",{className:"text-foreground font-sans text-sm tracking-widest uppercase mb-8",children:["© ",new Date().getFullYear()," Oregon Coastal Travel Guide"]}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-center space-y-2 sm:space-y-0 sm:space-x-2 text-sm font-sans text-foreground",children:[r.jsx("span",{children:"Want to make a correction?"}),r.jsx("a",{href:"mailto:info@oregoncoastal.com",className:"text-sage hover:text-primary font-medium transition-colors",children:"info@oregoncoastal.com"})]})]})]})]})},Pte=({image:e,title:t,author:n,description:a,price:i,buttonText:s,buttonVariant:o="primary",externalUrl:l})=>{const h=`
px-6 py-3 font-sans font-medium uppercase tracking-widest transition-all duration-300 text-xs sm:text-sm inline-block text-center w-full
shadow-editorial rounded-none hover:-translate-y-1
${o==="primary"?"bg-sage text-white hover:bg-primary":"bg-white text-primary hover:text-sage hover:bg-parchment"}
`;return r.jsxs(F.div,{whileHover:{y:-4},transition:{duration:.3},className:"editorial-card overflow-hidden flex flex-col h-full group",children:[r.jsx("div",{className:"h-64 overflow-hidden relative bg-parchment p-8 flex items-center justify-center",children:r.jsx("img",{src:e,alt:t,className:"max-h-full max-w-full object-contain drop-shadow-md transition-transform duration-700 group-hover:scale-105"})}),r.jsxs("div",{className:"p-6 md:p-8 flex flex-col flex-grow bg-white",children:[r.jsx("h3",{className:"text-xl md:text-2xl font-serif font-bold uppercase tracking-widest text-primary mb-2 leading-tight",children:t}),n&&r.jsx("p",{className:"subheading text-sm mb-5",children:n}),r.jsx("p",{className:"text-foreground font-sans mb-8 leading-relaxed flex-grow whitespace-pre-line text-sm md:text-base",children:a}),r.jsxs("div",{className:"pt-6 mt-auto flex flex-col sm:flex-row items-center justify-between gap-4",children:[r.jsx("span",{className:"text-2xl font-serif font-bold text-primary tracking-widest",children:i}),l?r.jsx("a",{href:l,target:"_blank",rel:"noopener noreferrer",className:h,children:s}):r.jsx("button",{className:h,onClick:()=>{const m=document.createElement("div");m.className="fixed bottom-4 right-4 bg-white shadow-editorial rounded-none p-4 z-50 flex items-center animate-in slide-in-from-bottom-5",m.innerHTML=`<span class="text-sm font-sans text-primary">Adding ${t} to cart functionality coming soon!</span>`,document.body.appendChild(m),setTimeout(()=>m.remove(),3e3)},children:s})]})]})]})},Ete=()=>{const e=[{id:3,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/7b7557a5114d7222dde2b4cdf56146b3.png",title:"Introducing Window Into Yachats — Your Guide to Oregon's Most Beautiful Coastal Gem!",author:"",description:`I'm thrilled to share my new app, Window Into Yachats, featuring my own photography of this stunning little town on the Oregon Coast. Whether you're planning a trip or just dreaming of the sea, this is your complete guide to everything Yachats has to offer.
All in one place, all at your fingertips. 👇`,price:"Free",buttonText:"GET THE APP",buttonVariant:"primary",externalUrl:"https://www.yachats.app"},{id:1,image:"https://images.unsplash.com/photo-1598438974262-f69a002f0195",title:"Window into Waldport for iPad",author:"By Daniel Wollin",description:"Experience the charm of Waldport through this digital collection. Perfect for iPad, this high-resolution visual journey captures the serene bays, forest trails, and bridge views that define this coastal gem. Includes exclusive commentary and travel tips for the perfect weekend getaway.",price:"$9.99",buttonText:"BUY NOW",buttonVariant:"secondary",externalUrl:"http://bit.ly/1aP5wI7"},{id:2,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/9185c608795968cb7a79186f58fcb31f.png",title:"Window into Yachats – Hard Cover Book",author:"By Daniel Wollin",description:"A stunning coffee table book featuring the rugged beauty of Yachats. From the crashing waves of Cape Perpetua to the quiet moments in town, this premium hardcover edition features 32 pages of professional photography, local history, and hidden spots known only to locals.",price:"$26.99",buttonText:"BUY NOW",buttonVariant:"secondary",externalUrl:"https://www.lulu.com/shop/daniel-wollin/window-into-yachats/hardcover/product-p6wwyme.html?page=1&pageSize=4"}];return r.jsx("section",{className:"bg-gray-50 py-24 px-4 border-t border-gray-100",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-center mb-16",children:[r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4 tracking-tight",children:"Apps and Books"}),r.jsx("div",{className:"h-1 w-24 bg-[#2d5016] mx-auto rounded-full mb-6"}),r.jsx("p",{className:"text-xl text-gray-600 max-w-2xl mx-auto",children:"Bring a piece of the Oregon Coast home with you. Discover our exclusive digital guides and premium photography books."})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 lg:gap-12",children:e.map((t,n)=>r.jsx(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6,delay:n*.2},children:r.jsx(Pte,{...t})},t.id))})]})})},Ote=e=>!e||!Array.isArray(e)||e.length===0?null:{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.map(t=>({"@type":"Question",name:t.question||"",acceptedAnswer:{"@type":"Answer",text:t.answer||""}}))},Rte=({question:e,answer:t})=>{const[n,a]=v.useState(!1);return r.jsxs("div",{className:"shadow-editorial bg-white mb-4 rounded-none",children:[r.jsxs("button",{onClick:()=>a(!n),className:"w-full py-5 flex items-center justify-between text-left hover:bg-parchment/50 transition-colors group px-6","aria-expanded":n,children:[r.jsx("span",{className:"font-serif font-bold text-lg md:text-xl text-primary group-hover:text-sage transition-colors pr-8",children:e}),r.jsx("span",{className:"text-sage flex-shrink-0",children:n?r.jsx(pI,{className:"w-5 h-5"}):r.jsx(ap,{className:"w-5 h-5"})})]}),r.jsx(ka,{children:n&&r.jsx(F.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},transition:{duration:.3,ease:"easeInOut"},className:"overflow-hidden",children:r.jsx("div",{className:"p-6 text-foreground font-sans leading-relaxed text-base md:text-lg bg-parchment/20",children:t})})})]})},hp=({faqs:e,title:t="Frequently Asked Questions"})=>{if(!e||e.length===0)return null;const n=Ote(e);return r.jsxs("section",{className:"py-20 bg-parchment",children:[n&&r.jsx($e,{children:r.jsx("script",{type:"application/ld+json",children:JSON.stringify(n)})}),r.jsxs("div",{className:"max-w-4xl mx-auto px-4",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("p",{className:"subheading text-lg md:text-xl mb-4",children:"Travel insights"}),r.jsx("h2",{className:"text-3xl md:text-5xl font-serif font-bold uppercase tracking-widest text-primary mb-6",children:t}),r.jsx("div",{className:"w-24 h-px bg-sage mx-auto"})]}),r.jsx("div",{className:"space-y-4",children:e.map((a,i)=>r.jsx(Rte,{question:a.question,answer:a.answer},i))})]})]})},Xw=[{id:"killer-whales",name:"Killer Whales",icon:yc,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/d22f5d4c42383b7d49e7612828a0cd56.png",altText:"Killer Whales infographic",available:!0},{id:"whales",name:"Whales",icon:yc,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/fc7ad6dce875108397af51f212950b44.jpg",altText:"Whales infographic",available:!0},{id:"seals",name:"Seals",icon:yc,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/4197eb0a425842076bd797e1f1c2995f.jpg",altText:"Seals infographic",available:!0},{id:"sea-lions",name:"Sea Lions",icon:yc,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/25965a0e909ad1eb24933087f802d4dc.jpg",altText:"Sea Lions infographic",available:!0},{id:"seaweed",name:"Seaweed",icon:ky,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/d275d0516579c3b5b16f77936d3281ea.jpg",altText:"Seaweed infographic",available:!0},{id:"clams",name:"Clams",icon:XT,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/9d2f373d0a4ff5336ac8f6bf3056f817.jpg",altText:"Clams infographic",available:!0},{id:"crabs",name:"Crabs",icon:XT,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/3e8d6798331caefe0adec7c520f4049c.jpg",altText:"Crabs infographic",available:!0},{id:"octopus",name:"Octopus",icon:ky,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/cca2030c6e2e7761a06ae1cd97472bf4.jpg",altText:"Octopus infographic",available:!0},{id:"sea-birds",name:"Sea Birds",icon:fq,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/81da0b9253bdf67afc04390b68a6404e.jpg",altText:"Sea Birds infographic",available:!0},{id:"ocean-fish",name:"Ocean Fish",icon:yc,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/dc5ee625e85e559c2d8c0bc33279127d.jpg",altText:"Ocean Fish infographic",available:!0},{id:"river-fish",name:"River Fish",icon:dq,image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/a513f3241ee7ce8b13bba9a17b90c751.jpg",altText:"River Fish infographic",available:!0}],Ite=()=>{const[e,t]=v.useState(Xw[0]);return r.jsx("section",{className:"py-20 px-4 bg-white border-y border-border",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-center mb-16",children:[r.jsx("p",{className:"subheading text-lg md:text-xl mb-4",children:"Discover the natural inhabitants"}),r.jsx("h2",{className:"text-3xl md:text-5xl font-serif font-bold uppercase tracking-widest text-primary mb-6",children:"Wildlife Guide"}),r.jsx("div",{className:"w-24 h-px bg-sage mx-auto mb-6"}),r.jsx("p",{className:"text-lg font-sans text-foreground max-w-3xl mx-auto",children:"Explore the diverse marine life and coastal wildlife that call the Oregon Coast home. From majestic whales to colorful tide pool creatures, discover what makes our coast unique."})]}),r.jsxs("div",{className:"hidden md:grid md:grid-cols-[280px_1fr] gap-10",children:[r.jsx(F.div,{initial:{opacity:0,x:-30},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"space-y-3",children:Xw.map(n=>{const a=n.icon,i=e.id===n.id;return r.jsxs("button",{onClick:()=>t(n),className:`w-full text-left px-6 py-4 rounded-md font-sans font-medium uppercase tracking-widest text-sm transition-all duration-300 flex items-center gap-3 ${i?"bg-sage text-white shadow-soft":"bg-parchment text-primary hover:bg-border/50 border border-transparent"}`,children:[r.jsx(a,{className:`w-4 h-4 ${i?"text-white":"text-sage"}`}),r.jsx("span",{className:"flex-1",children:n.name})]},n.id)})}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},className:"editorial-card overflow-hidden border border-border",children:r.jsx(ka,{mode:"wait",children:r.jsxs(F.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:-10},transition:{duration:.3},className:"p-8 md:p-12 bg-white",children:[r.jsx("h3",{className:"text-2xl font-serif font-bold uppercase tracking-widest text-primary mb-8 border-b border-border pb-4",children:e.name}),r.jsx("div",{className:"wildlife-image-container bg-parchment p-4 rounded-md",children:r.jsx("img",{src:e.image,alt:e.altText,className:"w-full h-auto object-contain drop-shadow-sm"})})]},e.id)})})]}),r.jsxs("div",{className:"md:hidden",children:[r.jsx("div",{className:"overflow-x-auto pb-4 mb-6 custom-scrollbar -mx-4 px-4",children:r.jsx("div",{className:"flex gap-3 min-w-max",children:Xw.map(n=>{const a=n.icon,i=e.id===n.id;return r.jsxs("button",{onClick:()=>t(n),className:`px-5 py-3 rounded-md font-sans font-medium uppercase tracking-widest text-xs whitespace-nowrap transition-all duration-300 flex items-center gap-2 ${i?"bg-sage text-white shadow-soft":"bg-parchment text-primary border border-border"}`,children:[r.jsx(a,{className:`w-4 h-4 ${i?"text-white":"text-sage"}`}),r.jsx("span",{children:n.name})]},n.id)})})}),r.jsx(F.div,{initial:{opacity:0},whileInView:{opacity:1},viewport:{once:!0},className:"editorial-card overflow-hidden border border-border",children:r.jsx(ka,{mode:"wait",children:r.jsxs(F.div,{initial:{opacity:0,scale:.98},animate:{opacity:1,scale:1},exit:{opacity:0,scale:.98},transition:{duration:.3},className:"p-6 bg-white",children:[r.jsx("h3",{className:"text-xl font-serif font-bold uppercase tracking-widest text-primary mb-6 border-b border-border pb-4",children:e.name}),r.jsx("div",{className:"bg-parchment p-2 rounded-md",children:r.jsx("img",{src:e.image,alt:e.altText,className:"w-full h-auto object-contain"})})]},e.id)})})]})]})})},Mt=({name:e="OregonCoastal.com",description:t="OregonCoastal.com is an Oregon Coast travel guide featuring hotels, destinations, attractions, dining, and trip-planning information.",geo:n,url:a="https://oregoncoastal.com/",type:i="LocalBusiness",breadcrumbs:s})=>{const o={"@context":"https://schema.org","@type":i,name:e,description:t,url:a,sameAs:["https://www.facebook.com/OregonCoastal","https://www.etsy.com/shop/OregonCoastal"]};n&&(o.geo={"@type":"GeoCoordinates",latitude:n.lat,longitude:n.lng});const l=s?{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:s.map((c,h)=>({"@type":"ListItem",position:h+1,name:c.name,item:c.url.startsWith("http")?c.url:`https://oregoncoastal.com${c.url}`}))}:null;return r.jsxs($e,{children:[r.jsx("script",{type:"application/ld+json",children:JSON.stringify(o)}),l&&r.jsx("script",{type:"application/ld+json",children:JSON.stringify(l)})]})},Mte=()=>{const e=Object.values(ke).map(n=>n.name),t=[...e,...e];return r.jsx("div",{className:"w-full bg-parchment border-y border-border py-4 overflow-hidden relative flex",children:r.jsx("div",{className:"flex animate-marquee whitespace-nowrap",children:t.map((n,a)=>r.jsxs("div",{className:"flex items-center mx-4",children:[r.jsx("span",{className:"font-serif italic text-sage text-lg px-4",children:n}),r.jsx("span",{className:"text-border mx-2",children:"•"})]},a))})})},Lte=({name:e,description:t,slug:n,image:a})=>r.jsxs(F.div,{whileHover:{y:-4},className:"editorial-card overflow-hidden flex flex-col h-full group",children:[r.jsxs(_t,{to:`/town/${n}`,className:"block h-64 overflow-hidden relative",children:[r.jsx("img",{src:a,alt:`Explore ${e}`,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105"}),r.jsx("div",{className:"absolute inset-0 bg-black/10 group-hover:bg-transparent transition-colors duration-300"})]}),r.jsxs("div",{className:"p-6 md:p-8 flex flex-col flex-grow bg-white",children:[r.jsx("h3",{className:"text-2xl md:text-3xl font-serif font-bold uppercase tracking-widest text-primary mb-3",children:e}),r.jsx("p",{className:"font-serif italic text-sage mb-6 leading-relaxed line-clamp-3 flex-grow text-base md:text-lg",children:t}),r.jsxs(_t,{to:`/town/${n}`,className:"inline-flex items-center text-sage font-sans font-medium tracking-widest hover:text-primary transition-colors mt-auto group-hover:translate-x-1 duration-300 uppercase text-sm",children:["Explore ",r.jsx(Dv,{className:"ml-2 w-4 h-4"})]})]})]}),Dte=()=>{const e=[ke.astoria,ke["cannon-beach"],ke.newport,ke.yachats,ke.bandon,ke.brookings].filter(Boolean);return r.jsx("section",{className:"py-20 px-4 bg-white relative border-b border-border",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.p,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"subheading text-xl mb-4",children:"Curated destinations along the coast"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.1},className:"text-4xl md:text-5xl font-serif font-bold uppercase tracking-widest text-primary",children:"Explore the Towns"}),r.jsx("div",{className:"w-24 h-px bg-sage mx-auto mt-8"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 md:gap-10",children:e.map((t,n)=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.1},children:r.jsx(Lte,{name:t.name,description:t.description,slug:t.route.split("/").pop(),image:t.heroImage})},t.name))})]})})},Bte=()=>{const e=rh(),t=Yn(),n="Oregon Coast Hotels and Travel Guide",a="Plan your perfect trip with our Oregon Coast Hotels and Travel Guide. Discover the best accommodations, oceanfront lodging, attractions, dining, and travel tips across the beautiful Oregon Coast.",i=kl(t.pathname),s=Vk("Oregon Coast","https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/ef2a8c8e278e0a6afb62c1ed916892d4.jpg");v.useEffect(()=>{const h=document.createElement("script");return h.src="https://www.viator.com/orion/partner/widget.js",h.async=!0,document.body.appendChild(h),document.title=n,JI(i),XI(a),QI(i),eM(n),tM(a),nM(s),rM(n),aM(a),iM(s),()=>{document.body.contains(h)&&document.body.removeChild(h)}},[t.pathname,i,n,a,s]);const o=()=>{e("/host"),window.scrollTo(0,0)},l=[{question:"What are the three regions of the Oregon Coast?",answer:"The Oregon Coast is divided into the North Coast (Astoria to Pacific City), Central Coast (Lincoln City to Florence), and South Coast (Reedsport to Brookings)."},{question:"When is the best time to visit the Oregon Coast?",answer:"Summer (July-September) offers the warmest weather, while Winter provides dramatic storm watching. Fall (September-October) is often considered the 'locals' secret' for great weather and fewer crowds."},{question:"Where are the best hotels on the Oregon Coast?",answer:"The best hotels are scattered across the coast, from luxury oceanfront resorts in Cannon Beach and Salishan to cozy boutique inns in Yachats and Bandon."},{question:"What are the best towns for family-friendly hotels?",answer:"Seaside and Lincoln City are top choices for families, offering beachfront hotels with pools, easy access to arcades, and family-friendly dining."},{question:"What are the most romantic hotels for couples?",answer:"For a romantic getaway, consider luxury lodges in Cannon Beach, secluded cliffside retreats near Depoe Bay, or intimate bed and breakfasts in Astoria."},{question:"Are there pet-friendly hotels on the Oregon Coast?",answer:"Yes, the Oregon Coast is incredibly dog-friendly! Many hotels, motels, and vacation rentals welcome pets, especially in towns like Lincoln City, Seaside, and Florence."}],c={"@context":"https://schema.org","@type":"Organization",name:"Oregon Coast Hotels and Travel Guide",url:"https://oregoncoastal.com/"};return r.jsxs(r.Fragment,{children:[r.jsx("noscript",{children:r.jsx("iframe",{src:"https://www.googletagmanager.com/ns.html?id=GTM-MNX8L3BH",height:"0",width:"0",style:{display:"none",visibility:"hidden"}})}),r.jsxs($e,{children:[r.jsx("script",{type:"application/ld+json",children:JSON.stringify(c)}),r.jsx("script",{type:"text/javascript",children:`(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-MNX8L3BH');`})]}),r.jsx(Mt,{}),r.jsxs("div",{className:"min-h-screen bg-background flex flex-col font-sans",children:[r.jsx(Ge,{}),r.jsx("div",{className:"relative",children:r.jsx(Ate,{})}),r.jsx(Mte,{}),r.jsx("section",{className:"bg-parchment py-24 px-4 flex-grow border-b border-border",children:r.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[r.jsx(F.p,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"subheading text-xl md:text-2xl mb-6",children:"The Pacific Northwest calls"}),r.jsx(F.h2,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.1},className:"text-4xl md:text-6xl font-serif font-bold uppercase tracking-widest text-primary mb-8",children:"Discover Oregon's Coastal Beauty"}),r.jsx("div",{className:"w-24 h-px bg-sage mx-auto mb-10"}),r.jsx(F.p,{initial:{opacity:0},whileInView:{opacity:1},viewport:{once:!0},transition:{delay:.2},className:"text-lg md:text-xl text-foreground font-sans leading-relaxed",children:"From rugged cliffs to sandy beaches, charming coastal towns to world-class dining, the Oregon Coast offers unforgettable experiences for every traveler. Plan your perfect getaway in the Pacific Northwest with our curated guides."})]})}),r.jsx(Dte,{}),r.jsx(Ite,{}),r.jsx("section",{className:"py-20 bg-parchment border-y border-border",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-4",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("p",{className:"subheading text-lg mb-4",children:"Curated experiences"}),r.jsx("h2",{className:"text-3xl md:text-5xl font-serif font-bold uppercase tracking-widest text-primary mb-6",children:"Recommended Tours"}),r.jsx("div",{className:"w-24 h-px bg-sage mx-auto"})]}),r.jsx("div",{className:"editorial-card p-4 md:p-8 bg-white",children:r.jsx("div",{"data-vi-partner-id":"P00287872","data-vi-widget-ref":"W-ac581dda-8b2c-4289-b142-c09c1933db68",className:"min-h-[250px]"})})]})}),r.jsx(hp,{faqs:l,title:"Trip Planning FAQs"}),r.jsx(Ete,{}),r.jsx("section",{className:"py-24 px-4 bg-white border-t border-border",children:r.jsx("div",{className:"max-w-4xl mx-auto text-center",children:r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.7},className:"editorial-card p-10 md:p-16 bg-parchment",children:[r.jsx("p",{className:"subheading text-xl mb-4",children:"Partner with us"}),r.jsx("h2",{className:"text-3xl md:text-5xl font-serif font-bold uppercase tracking-widest text-primary mb-8 leading-tight",children:"Own a Property on the Coast?"}),r.jsxs("p",{className:"text-lg text-foreground font-sans mb-10 leading-relaxed",children:["We manage Oregon Coast vacation rentals for owners who want a full calendar without the hassle. Our flagship property in Yachats has just ",r.jsx("span",{className:"font-bold text-sage",children:"9 open nights"})," between May and October."]}),r.jsxs("button",{onClick:o,className:"inline-flex items-center gap-3 bg-sage hover:bg-primary text-white font-sans font-medium uppercase tracking-widest px-8 py-4 rounded-md shadow-soft hover:shadow-soft-hover transition-all duration-300",children:["Learn More",r.jsx(Dv,{className:"w-5 h-5"})]})]})})}),r.jsx("section",{className:"bg-parchment py-20 border-t border-border","aria-labelledby":"live-whale-sightings-heading",children:r.jsxs("div",{className:"max-w-6xl mx-auto px-4",children:[r.jsxs("div",{className:"text-center mb-10",children:[r.jsx("h2",{id:"live-whale-sightings-heading",className:"text-3xl md:text-5xl font-serif font-bold uppercase tracking-widest text-primary",children:"Live Whale Sightings Near You"}),r.jsx("div",{className:"w-24 h-px bg-sage mx-auto mt-6"})]}),r.jsx("div",{style:{maxWidth:"900px",margin:"0 auto",padding:"20px 16px"},children:r.jsx("iframe",{src:"https://whalewatching.live/embed-oregoncoastal.html",title:"Live Oregon Coast Whale Sightings",width:"100%",height:"520",style:{border:0,borderRadius:"12px",display:"block"},loading:"lazy",allow:"notifications"})})]})}),r.jsx(Ye,{})]})]})};function Fte(){return r.jsx(TR,{to:"/hotels-map",replace:!0})}function _2(e,t){const n=v.useRef(t);v.useEffect(function(){t!==n.current&&e.attributionControl!=null&&(n.current!=null&&e.attributionControl.removeAttribution(n.current),t!=null&&e.attributionControl.addAttribution(t)),n.current=t},[e,t])}function zte(e,t,n){t.center!==n.center&&e.setLatLng(t.center),t.radius!=null&&t.radius!==n.radius&&e.setRadius(t.radius)}const BL=1;function FL(e){return Object.freeze({__version:BL,map:e})}function zL(e,t){return Object.freeze({...e,...t})}const S2=v.createContext(null),C2=S2.Provider;function uh(){const e=v.useContext(S2);if(e==null)throw new Error("No context provided: useLeafletContext() can only be used in a descendant of <MapContainer>");return e}function T2(e){function t(n,a){const{instance:i,context:s}=e(n).current;return v.useImperativeHandle(a,()=>i),n.children==null?null:an.createElement(C2,{value:s},n.children)}return v.forwardRef(t)}function $L(e){function t(n,a){const[i,s]=v.useState(!1),{instance:o}=e(n,s).current;v.useImperativeHandle(a,()=>o),v.useEffect(function(){i&&o.update()},[o,i,n.children]);const l=o._contentNode;return l?Ci.createPortal(n.children,l):null}return v.forwardRef(t)}function A2(e){function t(n,a){const{instance:i}=e(n).current;return v.useImperativeHandle(a,()=>i),null}return v.forwardRef(t)}function HL(e){return function(n){const a=uh(),i=e(n,a),{instance:s}=i.current,o=v.useRef(n.position),{position:l}=n;return v.useEffect(function(){return s.addTo(a.map),function(){s.remove()}},[a.map,s]),v.useEffect(function(){l!=null&&l!==o.current&&(s.setPosition(l),o.current=l)},[s,l]),i}}function Gv(e,t){const n=v.useRef();v.useEffect(function(){return t!=null&&e.instance.on(t),n.current=t,function(){n.current!=null&&e.instance.off(n.current),n.current=null}},[e,t])}function fp(e,t){const n=e.pane??t.pane;return n?{...e,pane:n}:e}function WL(e,t){return function(a,i){const s=uh(),o=e(fp(a,s),s);return _2(s.map,a.attribution),Gv(o.current,a.eventHandlers),t(o.current,s,a,i),o}}var am={exports:{}};var $te=am.exports,eE;function VL(){return eE||(eE=1,(function(e,t){(function(n,a){a(t)})($te,(function(n){var a="1.9.4";function i(u){var g,w,C,R;for(w=1,C=arguments.length;w<C;w++){R=arguments[w];for(g in R)u[g]=R[g]}return u}var s=Object.create||(function(){function u(){}return function(g){return u.prototype=g,new u}})();function o(u,g){var w=Array.prototype.slice;if(u.bind)return u.bind.apply(u,w.call(arguments,1));var C=w.call(arguments,2);return function(){return u.apply(g,C.length?C.concat(w.call(arguments)):arguments)}}var l=0;function c(u){return"_leaflet_id"in u||(u._leaflet_id=++l),u._leaflet_id}function h(u,g,w){var C,R,B,Z;return Z=function(){C=!1,R&&(B.apply(w,R),R=!1)},B=function(){C?R=arguments:(u.apply(w,arguments),setTimeout(Z,g),C=!0)},B}function m(u,g,w){var C=g[1],R=g[0],B=C-R;return u===C&&w?u:((u-R)%B+B)%B+R}function p(){return!1}function x(u,g){if(g===!1)return u;var w=Math.pow(10,g===void 0?6:g);return Math.round(u*w)/w}function b(u){return u.trim?u.trim():u.replace(/^\s+|\s+$/g,"")}function j(u){return b(u).split(/\s+/)}function N(u,g){Object.prototype.hasOwnProperty.call(u,"options")||(u.options=u.options?s(u.options):{});for(var w in g)u.options[w]=g[w];return u.options}function _(u,g,w){var C=[];for(var R in u)C.push(encodeURIComponent(w?R.toUpperCase():R)+"="+encodeURIComponent(u[R]));return(!g||g.indexOf("?")===-1?"?":"&")+C.join("&")}var S=/\{ *([\w_ -]+) *\}/g;function A(u,g){return u.replace(S,function(w,C){var R=g[C];if(R===void 0)throw new Error("No value provided for variable "+w);return typeof R=="function"&&(R=R(g)),R})}var P=Array.isArray||function(u){return Object.prototype.toString.call(u)==="[object Array]"};function I(u,g){for(var w=0;w<u.length;w++)if(u[w]===g)return w;return-1}var O="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=";function M(u){return window["webkit"+u]||window["moz"+u]||window["ms"+u]}var z=0;function $(u){var g=+new Date,w=Math.max(0,16-(g-z));return z=g+w,window.setTimeout(u,w)}var K=window.requestAnimationFrame||M("RequestAnimationFrame")||$,X=window.cancelAnimationFrame||M("CancelAnimationFrame")||M("CancelRequestAnimationFrame")||function(u){window.clearTimeout(u)};function te(u,g,w){if(w&&K===$)u.call(g);else return K.call(window,o(u,g))}function q(u){u&&X.call(window,u)}var he={__proto__:null,extend:i,create:s,bind:o,get lastId(){return l},stamp:c,throttle:h,wrapNum:m,falseFn:p,formatNum:x,trim:b,splitWords:j,setOptions:N,getParamString:_,template:A,isArray:P,indexOf:I,emptyImageUrl:O,requestFn:K,cancelFn:X,requestAnimFrame:te,cancelAnimFrame:q};function ne(){}ne.extend=function(u){var g=function(){N(this),this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()},w=g.__super__=this.prototype,C=s(w);C.constructor=g,g.prototype=C;for(var R in this)Object.prototype.hasOwnProperty.call(this,R)&&R!=="prototype"&&R!=="__super__"&&(g[R]=this[R]);return u.statics&&i(g,u.statics),u.includes&&(G(u.includes),i.apply(null,[C].concat(u.includes))),i(C,u),delete C.statics,delete C.includes,C.options&&(C.options=w.options?s(w.options):{},i(C.options,u.options)),C._initHooks=[],C.callInitHooks=function(){if(!this._initHooksCalled){w.callInitHooks&&w.callInitHooks.call(this),this._initHooksCalled=!0;for(var B=0,Z=C._initHooks.length;B<Z;B++)C._initHooks[B].call(this)}},g},ne.include=function(u){var g=this.prototype.options;return i(this.prototype,u),u.options&&(this.prototype.options=g,this.mergeOptions(u.options)),this},ne.mergeOptions=function(u){return i(this.prototype.options,u),this},ne.addInitHook=function(u){var g=Array.prototype.slice.call(arguments,1),w=typeof u=="function"?u:function(){this[u].apply(this,g)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(w),this};function G(u){if(!(typeof L>"u"||!L||!L.Mixin)){u=P(u)?u:[u];for(var g=0;g<u.length;g++)u[g]===L.Mixin.Events&&console.warn("Deprecated include of L.Mixin.Events: this property will be removed in future releases, please inherit from L.Evented instead.",new Error().stack)}}var H={on:function(u,g,w){if(typeof u=="object")for(var C in u)this._on(C,u[C],g);else{u=j(u);for(var R=0,B=u.length;R<B;R++)this._on(u[R],g,w)}return this},off:function(u,g,w){if(!arguments.length)delete this._events;else if(typeof u=="object")for(var C in u)this._off(C,u[C],g);else{u=j(u);for(var R=arguments.length===1,B=0,Z=u.length;B<Z;B++)R?this._off(u[B]):this._off(u[B],g,w)}return this},_on:function(u,g,w,C){if(typeof g!="function"){console.warn("wrong listener type: "+typeof g);return}if(this._listens(u,g,w)===!1){w===this&&(w=void 0);var R={fn:g,ctx:w};C&&(R.once=!0),this._events=this._events||{},this._events[u]=this._events[u]||[],this._events[u].push(R)}},_off:function(u,g,w){var C,R,B;if(this._events&&(C=this._events[u],!!C)){if(arguments.length===1){if(this._firingCount)for(R=0,B=C.length;R<B;R++)C[R].fn=p;delete this._events[u];return}if(typeof g!="function"){console.warn("wrong listener type: "+typeof g);return}var Z=this._listens(u,g,w);if(Z!==!1){var ae=C[Z];this._firingCount&&(ae.fn=p,this._events[u]=C=C.slice()),C.splice(Z,1)}}},fire:function(u,g,w){if(!this.listens(u,w))return this;var C=i({},g,{type:u,target:this,sourceTarget:g&&g.sourceTarget||this});if(this._events){var R=this._events[u];if(R){this._firingCount=this._firingCount+1||1;for(var B=0,Z=R.length;B<Z;B++){var ae=R[B],de=ae.fn;ae.once&&this.off(u,de,ae.ctx),de.call(ae.ctx||this,C)}this._firingCount--}}return w&&this._propagateEvent(C),this},listens:function(u,g,w,C){typeof u!="string"&&console.warn('"string" type argument expected');var R=g;typeof g!="function"&&(C=!!g,R=void 0,w=void 0);var B=this._events&&this._events[u];if(B&&B.length&&this._listens(u,R,w)!==!1)return!0;if(C){for(var Z in this._eventParents)if(this._eventParents[Z].listens(u,g,w,C))return!0}return!1},_listens:function(u,g,w){if(!this._events)return!1;var C=this._events[u]||[];if(!g)return!!C.length;w===this&&(w=void 0);for(var R=0,B=C.length;R<B;R++)if(C[R].fn===g&&C[R].ctx===w)return R;return!1},once:function(u,g,w){if(typeof u=="object")for(var C in u)this._on(C,u[C],g,!0);else{u=j(u);for(var R=0,B=u.length;R<B;R++)this._on(u[R],g,w,!0)}return this},addEventParent:function(u){return this._eventParents=this._eventParents||{},this._eventParents[c(u)]=u,this},removeEventParent:function(u){return this._eventParents&&delete this._eventParents[c(u)],this},_propagateEvent:function(u){for(var g in this._eventParents)this._eventParents[g].fire(u.type,i({layer:u.target,propagatedFrom:u.target},u),!0)}};H.addEventListener=H.on,H.removeEventListener=H.clearAllEventListeners=H.off,H.addOneTimeEventListener=H.once,H.fireEvent=H.fire,H.hasEventListeners=H.listens;var Q=ne.extend(H);function W(u,g,w){this.x=w?Math.round(u):u,this.y=w?Math.round(g):g}var ie=Math.trunc||function(u){return u>0?Math.floor(u):Math.ceil(u)};W.prototype={clone:function(){return new W(this.x,this.y)},add:function(u){return this.clone()._add(Y(u))},_add:function(u){return this.x+=u.x,this.y+=u.y,this},subtract:function(u){return this.clone()._subtract(Y(u))},_subtract:function(u){return this.x-=u.x,this.y-=u.y,this},divideBy:function(u){return this.clone()._divideBy(u)},_divideBy:function(u){return this.x/=u,this.y/=u,this},multiplyBy:function(u){return this.clone()._multiplyBy(u)},_multiplyBy:function(u){return this.x*=u,this.y*=u,this},scaleBy:function(u){return new W(this.x*u.x,this.y*u.y)},unscaleBy:function(u){return new W(this.x/u.x,this.y/u.y)},round:function(){return this.clone()._round()},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},floor:function(){return this.clone()._floor()},_floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.clone()._ceil()},_ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},trunc:function(){return this.clone()._trunc()},_trunc:function(){return this.x=ie(this.x),this.y=ie(this.y),this},distanceTo:function(u){u=Y(u);var g=u.x-this.x,w=u.y-this.y;return Math.sqrt(g*g+w*w)},equals:function(u){return u=Y(u),u.x===this.x&&u.y===this.y},contains:function(u){return u=Y(u),Math.abs(u.x)<=Math.abs(this.x)&&Math.abs(u.y)<=Math.abs(this.y)},toString:function(){return"Point("+x(this.x)+", "+x(this.y)+")"}};function Y(u,g,w){return u instanceof W?u:P(u)?new W(u[0],u[1]):u==null?u:typeof u=="object"&&"x"in u&&"y"in u?new W(u.x,u.y):new W(u,g,w)}function V(u,g){if(u)for(var w=g?[u,g]:u,C=0,R=w.length;C<R;C++)this.extend(w[C])}V.prototype={extend:function(u){var g,w;if(!u)return this;if(u instanceof W||typeof u[0]=="number"||"x"in u)g=w=Y(u);else if(u=re(u),g=u.min,w=u.max,!g||!w)return this;return!this.min&&!this.max?(this.min=g.clone(),this.max=w.clone()):(this.min.x=Math.min(g.x,this.min.x),this.max.x=Math.max(w.x,this.max.x),this.min.y=Math.min(g.y,this.min.y),this.max.y=Math.max(w.y,this.max.y)),this},getCenter:function(u){return Y((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,u)},getBottomLeft:function(){return Y(this.min.x,this.max.y)},getTopRight:function(){return Y(this.max.x,this.min.y)},getTopLeft:function(){return this.min},getBottomRight:function(){return this.max},getSize:function(){return this.max.subtract(this.min)},contains:function(u){var g,w;return typeof u[0]=="number"||u instanceof W?u=Y(u):u=re(u),u instanceof V?(g=u.min,w=u.max):g=w=u,g.x>=this.min.x&&w.x<=this.max.x&&g.y>=this.min.y&&w.y<=this.max.y},intersects:function(u){u=re(u);var g=this.min,w=this.max,C=u.min,R=u.max,B=R.x>=g.x&&C.x<=w.x,Z=R.y>=g.y&&C.y<=w.y;return B&&Z},overlaps:function(u){u=re(u);var g=this.min,w=this.max,C=u.min,R=u.max,B=R.x>g.x&&C.x<w.x,Z=R.y>g.y&&C.y<w.y;return B&&Z},isValid:function(){return!!(this.min&&this.max)},pad:function(u){var g=this.min,w=this.max,C=Math.abs(g.x-w.x)*u,R=Math.abs(g.y-w.y)*u;return re(Y(g.x-C,g.y-R),Y(w.x+C,w.y+R))},equals:function(u){return u?(u=re(u),this.min.equals(u.getTopLeft())&&this.max.equals(u.getBottomRight())):!1}};function re(u,g){return!u||u instanceof V?u:new V(u,g)}function be(u,g){if(u)for(var w=g?[u,g]:u,C=0,R=w.length;C<R;C++)this.extend(w[C])}be.prototype={extend:function(u){var g=this._southWest,w=this._northEast,C,R;if(u instanceof Ne)C=u,R=u;else if(u instanceof be){if(C=u._southWest,R=u._northEast,!C||!R)return this}else return u?this.extend(we(u)||ge(u)):this;return!g&&!w?(this._southWest=new Ne(C.lat,C.lng),this._northEast=new Ne(R.lat,R.lng)):(g.lat=Math.min(C.lat,g.lat),g.lng=Math.min(C.lng,g.lng),w.lat=Math.max(R.lat,w.lat),w.lng=Math.max(R.lng,w.lng)),this},pad:function(u){var g=this._southWest,w=this._northEast,C=Math.abs(g.lat-w.lat)*u,R=Math.abs(g.lng-w.lng)*u;return new be(new Ne(g.lat-C,g.lng-R),new Ne(w.lat+C,w.lng+R))},getCenter:function(){return new Ne((this._southWest.lat+this._northEast.lat)/2,(this._southWest.lng+this._northEast.lng)/2)},getSouthWest:function(){return this._southWest},getNorthEast:function(){return this._northEast},getNorthWest:function(){return new Ne(this.getNorth(),this.getWest())},getSouthEast:function(){return new Ne(this.getSouth(),this.getEast())},getWest:function(){return this._southWest.lng},getSouth:function(){return this._southWest.lat},getEast:function(){return this._northEast.lng},getNorth:function(){return this._northEast.lat},contains:function(u){typeof u[0]=="number"||u instanceof Ne||"lat"in u?u=we(u):u=ge(u);var g=this._southWest,w=this._northEast,C,R;return u instanceof be?(C=u.getSouthWest(),R=u.getNorthEast()):C=R=u,C.lat>=g.lat&&R.lat<=w.lat&&C.lng>=g.lng&&R.lng<=w.lng},intersects:function(u){u=ge(u);var g=this._southWest,w=this._northEast,C=u.getSouthWest(),R=u.getNorthEast(),B=R.lat>=g.lat&&C.lat<=w.lat,Z=R.lng>=g.lng&&C.lng<=w.lng;return B&&Z},overlaps:function(u){u=ge(u);var g=this._southWest,w=this._northEast,C=u.getSouthWest(),R=u.getNorthEast(),B=R.lat>g.lat&&C.lat<w.lat,Z=R.lng>g.lng&&C.lng<w.lng;return B&&Z},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(",")},equals:function(u,g){return u?(u=ge(u),this._southWest.equals(u.getSouthWest(),g)&&this._northEast.equals(u.getNorthEast(),g)):!1},isValid:function(){return!!(this._southWest&&this._northEast)}};function ge(u,g){return u instanceof be?u:new be(u,g)}function Ne(u,g,w){if(isNaN(u)||isNaN(g))throw new Error("Invalid LatLng object: ("+u+", "+g+")");this.lat=+u,this.lng=+g,w!==void 0&&(this.alt=+w)}Ne.prototype={equals:function(u,g){if(!u)return!1;u=we(u);var w=Math.max(Math.abs(this.lat-u.lat),Math.abs(this.lng-u.lng));return w<=(g===void 0?1e-9:g)},toString:function(u){return"LatLng("+x(this.lat,u)+", "+x(this.lng,u)+")"},distanceTo:function(u){return Ce.distance(this,we(u))},wrap:function(){return Ce.wrapLatLng(this)},toBounds:function(u){var g=180*u/40075017,w=g/Math.cos(Math.PI/180*this.lat);return ge([this.lat-g,this.lng-w],[this.lat+g,this.lng+w])},clone:function(){return new Ne(this.lat,this.lng,this.alt)}};function we(u,g,w){return u instanceof Ne?u:P(u)&&typeof u[0]!="object"?u.length===3?new Ne(u[0],u[1],u[2]):u.length===2?new Ne(u[0],u[1]):null:u==null?u:typeof u=="object"&&"lat"in u?new Ne(u.lat,"lng"in u?u.lng:u.lon,u.alt):g===void 0?null:new Ne(u,g,w)}var Fe={latLngToPoint:function(u,g){var w=this.projection.project(u),C=this.scale(g);return this.transformation._transform(w,C)},pointToLatLng:function(u,g){var w=this.scale(g),C=this.transformation.untransform(u,w);return this.projection.unproject(C)},project:function(u){return this.projection.project(u)},unproject:function(u){return this.projection.unproject(u)},scale:function(u){return 256*Math.pow(2,u)},zoom:function(u){return Math.log(u/256)/Math.LN2},getProjectedBounds:function(u){if(this.infinite)return null;var g=this.projection.bounds,w=this.scale(u),C=this.transformation.transform(g.min,w),R=this.transformation.transform(g.max,w);return new V(C,R)},infinite:!1,wrapLatLng:function(u){var g=this.wrapLng?m(u.lng,this.wrapLng,!0):u.lng,w=this.wrapLat?m(u.lat,this.wrapLat,!0):u.lat,C=u.alt;return new Ne(w,g,C)},wrapLatLngBounds:function(u){var g=u.getCenter(),w=this.wrapLatLng(g),C=g.lat-w.lat,R=g.lng-w.lng;if(C===0&&R===0)return u;var B=u.getSouthWest(),Z=u.getNorthEast(),ae=new Ne(B.lat-C,B.lng-R),de=new Ne(Z.lat-C,Z.lng-R);return new be(ae,de)}},Ce=i({},Fe,{wrapLng:[-180,180],R:6371e3,distance:function(u,g){var w=Math.PI/180,C=u.lat*w,R=g.lat*w,B=Math.sin((g.lat-u.lat)*w/2),Z=Math.sin((g.lng-u.lng)*w/2),ae=B*B+Math.cos(C)*Math.cos(R)*Z*Z,de=2*Math.atan2(Math.sqrt(ae),Math.sqrt(1-ae));return this.R*de}}),me=6378137,Ae={R:me,MAX_LATITUDE:85.0511287798,project:function(u){var g=Math.PI/180,w=this.MAX_LATITUDE,C=Math.max(Math.min(w,u.lat),-w),R=Math.sin(C*g);return new W(this.R*u.lng*g,this.R*Math.log((1+R)/(1-R))/2)},unproject:function(u){var g=180/Math.PI;return new Ne((2*Math.atan(Math.exp(u.y/this.R))-Math.PI/2)*g,u.x*g/this.R)},bounds:(function(){var u=me*Math.PI;return new V([-u,-u],[u,u])})()};function Te(u,g,w,C){if(P(u)){this._a=u[0],this._b=u[1],this._c=u[2],this._d=u[3];return}this._a=u,this._b=g,this._c=w,this._d=C}Te.prototype={transform:function(u,g){return this._transform(u.clone(),g)},_transform:function(u,g){return g=g||1,u.x=g*(this._a*u.x+this._b),u.y=g*(this._c*u.y+this._d),u},untransform:function(u,g){return g=g||1,new W((u.x/g-this._b)/this._a,(u.y/g-this._d)/this._c)}};function fe(u,g,w,C){return new Te(u,g,w,C)}var tt=i({},Ce,{code:"EPSG:3857",projection:Ae,transformation:(function(){var u=.5/(Math.PI*Ae.R);return fe(u,.5,-u,.5)})()}),at=i({},tt,{code:"EPSG:900913"});function Oe(u){return document.createElementNS("http://www.w3.org/2000/svg",u)}function cn(u,g){var w="",C,R,B,Z,ae,de;for(C=0,B=u.length;C<B;C++){for(ae=u[C],R=0,Z=ae.length;R<Z;R++)de=ae[R],w+=(R?"L":"M")+de.x+" "+de.y;w+=g?Be.svg?"z":"x":""}return w||"M0 0"}var On=document.documentElement.style,Hr="ActiveXObject"in window,Oh=Hr&&!document.addEventListener,bo="msLaunchUri"in navigator&&!("documentMode"in document),Oi=ur("webkit"),Qc=ur("android"),Rh=ur("android 2")||ur("android 3"),Dp=parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1],10),Bp=Qc&&ur("Google")&&Dp<537&&!("AudioNode"in window),ed=!!window.opera,td=!bo&&ur("chrome"),Pl=ur("gecko")&&!Oi&&!ed&&!Hr,Fp=!td&&ur("safari"),wo=ur("phantom"),jo="OTransition"in On,q0=navigator.platform.indexOf("Win")===0,Ih=Hr&&"transition"in On,nd="WebKitCSSMatrix"in window&&"m11"in new window.WebKitCSSMatrix&&!Rh,zp="MozPerspective"in On,Mh=!window.L_DISABLE_3D&&(Ih||nd||zp)&&!jo&&!wo,ms=typeof orientation<"u"||ur("mobile"),Lh=ms&&Oi,Dh=ms&&nd,rd=!window.PointerEvent&&window.MSPointerEvent,ps=!!(window.PointerEvent||rd),gs="ontouchstart"in window||!!window.TouchEvent,$p=!window.L_NO_TOUCH&&(gs||ps),Hp=ms&&ed,Wp=ms&&Pl,Vp=(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI)>1,Up=(function(){var u=!1;try{var g=Object.defineProperty({},"passive",{get:function(){u=!0}});window.addEventListener("testPassiveEventSupport",p,g),window.removeEventListener("testPassiveEventSupport",p,g)}catch{}return u})(),Bh=(function(){return!!document.createElement("canvas").getContext})(),ad=!!(document.createElementNS&&Oe("svg").createSVGRect),El=!!ad&&(function(){var u=document.createElement("div");return u.innerHTML="<svg/>",(u.firstChild&&u.firstChild.namespaceURI)==="http://www.w3.org/2000/svg"})(),Fh=!ad&&(function(){try{var u=document.createElement("div");u.innerHTML='<v:shape adj="1"/>';var g=u.firstChild;return g.style.behavior="url(#default#VML)",g&&typeof g.adj=="object"}catch{return!1}})(),Ol=navigator.platform.indexOf("Mac")===0,G0=navigator.platform.indexOf("Linux")===0;function ur(u){return navigator.userAgent.toLowerCase().indexOf(u)>=0}var Be={ie:Hr,ielt9:Oh,edge:bo,webkit:Oi,android:Qc,android23:Rh,androidStock:Bp,opera:ed,chrome:td,gecko:Pl,safari:Fp,phantom:wo,opera12:jo,win:q0,ie3d:Ih,webkit3d:nd,gecko3d:zp,any3d:Mh,mobile:ms,mobileWebkit:Lh,mobileWebkit3d:Dh,msPointer:rd,pointer:ps,touch:$p,touchNative:gs,mobileOpera:Hp,mobileGecko:Wp,retina:Vp,passiveEvents:Up,canvas:Bh,svg:ad,vml:Fh,inlineSvg:El,mac:Ol,linux:G0},Rl=Be.msPointer?"MSPointerDown":"pointerdown",id=Be.msPointer?"MSPointerMove":"pointermove",qp=Be.msPointer?"MSPointerUp":"pointerup",Gp=Be.msPointer?"MSPointerCancel":"pointercancel",zh={touchstart:Rl,touchmove:id,touchend:qp,touchcancel:Gp},Ri={touchstart:dn,touchmove:sd,touchend:sd,touchcancel:sd},xs={},$h=!1;function K0(u,g,w){return g==="touchstart"&&Z0(),Ri[g]?(w=Ri[g].bind(this,w),u.addEventListener(zh[g],w,!1),w):(console.warn("wrong event specified:",g),p)}function Kp(u,g,w){if(!zh[g]){console.warn("wrong event specified:",g);return}u.removeEventListener(zh[g],w,!1)}function Zp(u){xs[u.pointerId]=u}function Yp(u){xs[u.pointerId]&&(xs[u.pointerId]=u)}function Hh(u){delete xs[u.pointerId]}function Z0(){$h||(document.addEventListener(Rl,Zp,!0),document.addEventListener(id,Yp,!0),document.addEventListener(qp,Hh,!0),document.addEventListener(Gp,Hh,!0),$h=!0)}function sd(u,g){if(g.pointerType!==(g.MSPOINTER_TYPE_MOUSE||"mouse")){g.touches=[];for(var w in xs)g.touches.push(xs[w]);g.changedTouches=[g],u(g)}}function dn(u,g){g.MSPOINTER_TYPE_TOUCH&&g.pointerType===g.MSPOINTER_TYPE_TOUCH&&un(g),sd(u,g)}function Y0(u){var g={},w,C;for(C in u)w=u[C],g[C]=w&&w.bind?w.bind(u):w;return u=g,g.type="dblclick",g.detail=2,g.isTrusted=!1,g._simulated=!0,g}var Wh=200;function Jp(u,g){u.addEventListener("dblclick",g);var w=0,C;function R(B){if(B.detail!==1){C=B.detail;return}if(!(B.pointerType==="mouse"||B.sourceCapabilities&&!B.sourceCapabilities.firesTouchEvents)){var Z=bs(B);if(!(Z.some(function(de){return de instanceof HTMLLabelElement&&de.attributes.for})&&!Z.some(function(de){return de instanceof HTMLInputElement||de instanceof HTMLSelectElement}))){var ae=Date.now();ae-w<=Wh?(C++,C===2&&g(Y0(B))):C=1,w=ae}}}return u.addEventListener("click",R),{dblclick:g,simDblclick:R}}function od(u,g){u.removeEventListener("dblclick",g.dblclick),u.removeEventListener("click",g.simDblclick)}var Vh=So(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),No=So(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),Il=No==="webkitTransition"||No==="OTransition"?No+"End":"transitionend";function aa(u){return typeof u=="string"?document.getElementById(u):u}function Ml(u,g){var w=u.style[g]||u.currentStyle&&u.currentStyle[g];if((!w||w==="auto")&&document.defaultView){var C=document.defaultView.getComputedStyle(u,null);w=C?C[g]:null}return w==="auto"?null:w}function it(u,g,w){var C=document.createElement(u);return C.className=g||"",w&&w.appendChild(C),C}function Zt(u){var g=u.parentNode;g&&g.removeChild(u)}function ld(u){for(;u.firstChild;)u.removeChild(u.firstChild)}function ko(u){var g=u.parentNode;g&&g.lastChild!==u&&g.appendChild(u)}function ai(u){var g=u.parentNode;g&&g.firstChild!==u&&g.insertBefore(u,g.firstChild)}function _o(u,g){if(u.classList!==void 0)return u.classList.contains(g);var w=cd(u);return w.length>0&&new RegExp("(^|\\s)"+g+"(\\s|$)").test(w)}function nt(u,g){if(u.classList!==void 0)for(var w=j(g),C=0,R=w.length;C<R;C++)u.classList.add(w[C]);else if(!_o(u,g)){var B=cd(u);Uh(u,(B?B+" ":"")+g)}}function qt(u,g){u.classList!==void 0?u.classList.remove(g):Uh(u,b((" "+cd(u)+" ").replace(" "+g+" "," ")))}function Uh(u,g){u.className.baseVal===void 0?u.className=g:u.className.baseVal=g}function cd(u){return u.correspondingElement&&(u=u.correspondingElement),u.className.baseVal===void 0?u.className:u.className.baseVal}function hr(u,g){"opacity"in u.style?u.style.opacity=g:"filter"in u.style&&Xp(u,g)}function Xp(u,g){var w=!1,C="DXImageTransform.Microsoft.Alpha";try{w=u.filters.item(C)}catch{if(g===1)return}g=Math.round(g*100),w?(w.Enabled=g!==100,w.Opacity=g):u.style.filter+=" progid:"+C+"(opacity="+g+")"}function So(u){for(var g=document.documentElement.style,w=0;w<u.length;w++)if(u[w]in g)return u[w];return!1}function ia(u,g,w){var C=g||new W(0,0);u.style[Vh]=(Be.ie3d?"translate("+C.x+"px,"+C.y+"px)":"translate3d("+C.x+"px,"+C.y+"px,0)")+(w?" scale("+w+")":"")}function xn(u,g){u._leaflet_pos=g,Be.any3d?ia(u,g):(u.style.left=g.x+"px",u.style.top=g.y+"px")}function ii(u){return u._leaflet_pos||new W(0,0)}var Ct,Co,dd;if("onselectstart"in document)Ct=function(){Xe(window,"selectstart",un)},Co=function(){zt(window,"selectstart",un)};else{var ys=So(["userSelect","WebkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);Ct=function(){if(ys){var u=document.documentElement.style;dd=u[ys],u[ys]="none"}},Co=function(){ys&&(document.documentElement.style[ys]=dd,dd=void 0)}}function ud(){Xe(window,"dragstart",un)}function hd(){zt(window,"dragstart",un)}var Ll,Dl;function To(u){for(;u.tabIndex===-1;)u=u.parentNode;u.style&&(sa(),Ll=u,Dl=u.style.outlineStyle,u.style.outlineStyle="none",Xe(window,"keydown",sa))}function sa(){Ll&&(Ll.style.outlineStyle=Dl,Ll=void 0,Dl=void 0,zt(window,"keydown",sa))}function si(u){do u=u.parentNode;while((!u.offsetWidth||!u.offsetHeight)&&u!==document.body);return u}function Ca(u){var g=u.getBoundingClientRect();return{x:g.width/u.offsetWidth||1,y:g.height/u.offsetHeight||1,boundingClientRect:g}}var Bl={__proto__:null,TRANSFORM:Vh,TRANSITION:No,TRANSITION_END:Il,get:aa,getStyle:Ml,create:it,remove:Zt,empty:ld,toFront:ko,toBack:ai,hasClass:_o,addClass:nt,removeClass:qt,setClass:Uh,getClass:cd,setOpacity:hr,testProp:So,setTransform:ia,setPosition:xn,getPosition:ii,get disableTextSelection(){return Ct},get enableTextSelection(){return Co},disableImageDrag:ud,enableImageDrag:hd,preventOutline:To,restoreOutline:sa,getSizedParentNode:si,getScale:Ca};function Xe(u,g,w,C){if(g&&typeof g=="object")for(var R in g)Gh(u,R,g[R],w);else{g=j(g);for(var B=0,Z=g.length;B<Z;B++)Gh(u,g[B],w,C)}return this}var Rn="_leaflet_events";function zt(u,g,w,C){if(arguments.length===1)qh(u),delete u[Rn];else if(g&&typeof g=="object")for(var R in g)fd(u,R,g[R],w);else if(g=j(g),arguments.length===2)qh(u,function(ae){return I(g,ae)!==-1});else for(var B=0,Z=g.length;B<Z;B++)fd(u,g[B],w,C);return this}function qh(u,g){for(var w in u[Rn]){var C=w.split(/\d/)[0];(!g||g(C))&&fd(u,C,null,null,w)}}var vs={mouseenter:"mouseover",mouseleave:"mouseout",wheel:!("onwheel"in window)&&"mousewheel"};function Gh(u,g,w,C){var R=g+c(w)+(C?"_"+c(C):"");if(u[Rn]&&u[Rn][R])return this;var B=function(ae){return w.call(C||u,ae||window.event)},Z=B;!Be.touchNative&&Be.pointer&&g.indexOf("touch")===0?B=K0(u,g,B):Be.touch&&g==="dblclick"?B=Jp(u,B):"addEventListener"in u?g==="touchstart"||g==="touchmove"||g==="wheel"||g==="mousewheel"?u.addEventListener(vs[g]||g,B,Be.passiveEvents?{passive:!1}:!1):g==="mouseenter"||g==="mouseleave"?(B=function(ae){ae=ae||window.event,$l(u,ae)&&Z(ae)},u.addEventListener(vs[g],B,!1)):u.addEventListener(g,Z,!1):u.attachEvent("on"+g,B),u[Rn]=u[Rn]||{},u[Rn][R]=B}function fd(u,g,w,C,R){R=R||g+c(w)+(C?"_"+c(C):"");var B=u[Rn]&&u[Rn][R];if(!B)return this;!Be.touchNative&&Be.pointer&&g.indexOf("touch")===0?Kp(u,g,B):Be.touch&&g==="dblclick"?od(u,B):"removeEventListener"in u?u.removeEventListener(vs[g]||g,B,!1):u.detachEvent("on"+g,B),u[Rn][R]=null}function Ta(u){return u.stopPropagation?u.stopPropagation():u.originalEvent?u.originalEvent._stopped=!0:u.cancelBubble=!0,this}function md(u){return Gh(u,"wheel",Ta),this}function Fl(u){return Xe(u,"mousedown touchstart dblclick contextmenu",Ta),u._leaflet_disable_click=!0,this}function un(u){return u.preventDefault?u.preventDefault():u.returnValue=!1,this}function oa(u){return un(u),Ta(u),this}function bs(u){if(u.composedPath)return u.composedPath();for(var g=[],w=u.target;w;)g.push(w),w=w.parentNode;return g}function zl(u,g){if(!g)return new W(u.clientX,u.clientY);var w=Ca(g),C=w.boundingClientRect;return new W((u.clientX-C.left)/w.x-g.clientLeft,(u.clientY-C.top)/w.y-g.clientTop)}var J0=Be.linux&&Be.chrome?window.devicePixelRatio:Be.mac?window.devicePixelRatio*3:window.devicePixelRatio>0?2*window.devicePixelRatio:1;function Qp(u){return Be.edge?u.wheelDeltaY/2:u.deltaY&&u.deltaMode===0?-u.deltaY/J0:u.deltaY&&u.deltaMode===1?-u.deltaY*20:u.deltaY&&u.deltaMode===2?-u.deltaY*60:u.deltaX||u.deltaZ?0:u.wheelDelta?(u.wheelDeltaY||u.wheelDelta)/2:u.detail&&Math.abs(u.detail)<32765?-u.detail*20:u.detail?u.detail/-32765*60:0}function $l(u,g){var w=g.relatedTarget;if(!w)return!0;try{for(;w&&w!==u;)w=w.parentNode}catch{return!1}return w!==u}var pd={__proto__:null,on:Xe,off:zt,stopPropagation:Ta,disableScrollPropagation:md,disableClickPropagation:Fl,preventDefault:un,stop:oa,getPropagationPath:bs,getMousePosition:zl,getWheelDelta:Qp,isExternalTarget:$l,addListener:Xe,removeListener:zt},gd=Q.extend({run:function(u,g,w,C){this.stop(),this._el=u,this._inProgress=!0,this._duration=w||.25,this._easeOutPower=1/Math.max(C||.5,.2),this._startPos=ii(u),this._offset=g.subtract(this._startPos),this._startTime=+new Date,this.fire("start"),this._animate()},stop:function(){this._inProgress&&(this._step(!0),this._complete())},_animate:function(){this._animId=te(this._animate,this),this._step()},_step:function(u){var g=+new Date-this._startTime,w=this._duration*1e3;g<w?this._runFrame(this._easeOut(g/w),u):(this._runFrame(1),this._complete())},_runFrame:function(u,g){var w=this._startPos.add(this._offset.multiplyBy(u));g&&w._round(),xn(this._el,w),this.fire("step")},_complete:function(){q(this._animId),this._inProgress=!1,this.fire("end")},_easeOut:function(u){return 1-Math.pow(1-u,this._easeOutPower)}}),kt=Q.extend({options:{crs:tt,center:void 0,zoom:void 0,minZoom:void 0,maxZoom:void 0,layers:[],maxBounds:void 0,renderer:void 0,zoomAnimation:!0,zoomAnimationThreshold:4,fadeAnimation:!0,markerZoomAnimation:!0,transform3DLimit:8388608,zoomSnap:1,zoomDelta:1,trackResize:!0},initialize:function(u,g){g=N(this,g),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this._initContainer(u),this._initLayout(),this._onResize=o(this._onResize,this),this._initEvents(),g.maxBounds&&this.setMaxBounds(g.maxBounds),g.zoom!==void 0&&(this._zoom=this._limitZoom(g.zoom)),g.center&&g.zoom!==void 0&&this.setView(we(g.center),g.zoom,{reset:!0}),this.callInitHooks(),this._zoomAnimated=No&&Be.any3d&&!Be.mobileOpera&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),Xe(this._proxy,Il,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(u,g,w){if(g=g===void 0?this._zoom:this._limitZoom(g),u=this._limitCenter(we(u),g,this.options.maxBounds),w=w||{},this._stop(),this._loaded&&!w.reset&&w!==!0){w.animate!==void 0&&(w.zoom=i({animate:w.animate},w.zoom),w.pan=i({animate:w.animate,duration:w.duration},w.pan));var C=this._zoom!==g?this._tryAnimatedZoom&&this._tryAnimatedZoom(u,g,w.zoom):this._tryAnimatedPan(u,w.pan);if(C)return clearTimeout(this._sizeTimer),this}return this._resetView(u,g,w.pan&&w.pan.noMoveStart),this},setZoom:function(u,g){return this._loaded?this.setView(this.getCenter(),u,{zoom:g}):(this._zoom=u,this)},zoomIn:function(u,g){return u=u||(Be.any3d?this.options.zoomDelta:1),this.setZoom(this._zoom+u,g)},zoomOut:function(u,g){return u=u||(Be.any3d?this.options.zoomDelta:1),this.setZoom(this._zoom-u,g)},setZoomAround:function(u,g,w){var C=this.getZoomScale(g),R=this.getSize().divideBy(2),B=u instanceof W?u:this.latLngToContainerPoint(u),Z=B.subtract(R).multiplyBy(1-1/C),ae=this.containerPointToLatLng(R.add(Z));return this.setView(ae,g,{zoom:w})},_getBoundsCenterZoom:function(u,g){g=g||{},u=u.getBounds?u.getBounds():ge(u);var w=Y(g.paddingTopLeft||g.padding||[0,0]),C=Y(g.paddingBottomRight||g.padding||[0,0]),R=this.getBoundsZoom(u,!1,w.add(C));if(R=typeof g.maxZoom=="number"?Math.min(g.maxZoom,R):R,R===1/0)return{center:u.getCenter(),zoom:R};var B=C.subtract(w).divideBy(2),Z=this.project(u.getSouthWest(),R),ae=this.project(u.getNorthEast(),R),de=this.unproject(Z.add(ae).divideBy(2).add(B),R);return{center:de,zoom:R}},fitBounds:function(u,g){if(u=ge(u),!u.isValid())throw new Error("Bounds are not valid.");var w=this._getBoundsCenterZoom(u,g);return this.setView(w.center,w.zoom,g)},fitWorld:function(u){return this.fitBounds([[-90,-180],[90,180]],u)},panTo:function(u,g){return this.setView(u,this._zoom,{pan:g})},panBy:function(u,g){if(u=Y(u).round(),g=g||{},!u.x&&!u.y)return this.fire("moveend");if(g.animate!==!0&&!this.getSize().contains(u))return this._resetView(this.unproject(this.project(this.getCenter()).add(u)),this.getZoom()),this;if(this._panAnim||(this._panAnim=new gd,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),g.noMoveStart||this.fire("movestart"),g.animate!==!1){nt(this._mapPane,"leaflet-pan-anim");var w=this._getMapPanePos().subtract(u).round();this._panAnim.run(this._mapPane,w,g.duration||.25,g.easeLinearity)}else this._rawPanBy(u),this.fire("move").fire("moveend");return this},flyTo:function(u,g,w){if(w=w||{},w.animate===!1||!Be.any3d)return this.setView(u,g,w);this._stop();var C=this.project(this.getCenter()),R=this.project(u),B=this.getSize(),Z=this._zoom;u=we(u),g=g===void 0?Z:g;var ae=Math.max(B.x,B.y),de=ae*this.getZoomScale(Z,g),pe=R.distanceTo(C)||1,Pe=1.42,Ue=Pe*Pe;function pt(Dt){var Wo=Dt?-1:1,ub=Dt?de:ae,hb=de*de-ae*ae+Wo*Ue*Ue*pe*pe,Cs=2*ub*Ue*pe,Ts=hb/Cs,As=Math.sqrt(Ts*Ts+1)-Ts,Pd=As<1e-9?-18:Math.log(As);return Pd}function In(Dt){return(Math.exp(Dt)-Math.exp(-Dt))/2}function Tn(Dt){return(Math.exp(Dt)+Math.exp(-Dt))/2}function Pr(Dt){return In(Dt)/Tn(Dt)}var mr=pt(0);function $o(Dt){return ae*(Tn(mr)/Tn(mr+Pe*Dt))}function pf(Dt){return ae*(Tn(mr)*Pr(mr+Pe*Dt)-In(mr))/Ue}function $i(Dt){return 1-Math.pow(1-Dt,1.5)}var bg=Date.now(),Ss=(pt(1)-mr)/Pe,Oa=w.duration?1e3*w.duration:1e3*Ss*.8;function Ho(){var Dt=(Date.now()-bg)/Oa,Wo=$i(Dt)*Ss;Dt<=1?(this._flyToFrame=te(Ho,this),this._move(this.unproject(C.add(R.subtract(C).multiplyBy(pf(Wo)/pe)),Z),this.getScaleZoom(ae/$o(Wo),Z),{flyTo:!0})):this._move(u,g)._moveEnd(!0)}return this._moveStart(!0,w.noMoveStart),Ho.call(this),this},flyToBounds:function(u,g){var w=this._getBoundsCenterZoom(u,g);return this.flyTo(w.center,w.zoom,g)},setMaxBounds:function(u){return u=ge(u),this.listens("moveend",this._panInsideMaxBounds)&&this.off("moveend",this._panInsideMaxBounds),u.isValid()?(this.options.maxBounds=u,this._loaded&&this._panInsideMaxBounds(),this.on("moveend",this._panInsideMaxBounds)):(this.options.maxBounds=null,this)},setMinZoom:function(u){var g=this.options.minZoom;return this.options.minZoom=u,this._loaded&&g!==u&&(this.fire("zoomlevelschange"),this.getZoom()<this.options.minZoom)?this.setZoom(u):this},setMaxZoom:function(u){var g=this.options.maxZoom;return this.options.maxZoom=u,this._loaded&&g!==u&&(this.fire("zoomlevelschange"),this.getZoom()>this.options.maxZoom)?this.setZoom(u):this},panInsideBounds:function(u,g){this._enforcingBounds=!0;var w=this.getCenter(),C=this._limitCenter(w,this._zoom,ge(u));return w.equals(C)||this.panTo(C,g),this._enforcingBounds=!1,this},panInside:function(u,g){g=g||{};var w=Y(g.paddingTopLeft||g.padding||[0,0]),C=Y(g.paddingBottomRight||g.padding||[0,0]),R=this.project(this.getCenter()),B=this.project(u),Z=this.getPixelBounds(),ae=re([Z.min.add(w),Z.max.subtract(C)]),de=ae.getSize();if(!ae.contains(B)){this._enforcingBounds=!0;var pe=B.subtract(ae.getCenter()),Pe=ae.extend(B).getSize().subtract(de);R.x+=pe.x<0?-Pe.x:Pe.x,R.y+=pe.y<0?-Pe.y:Pe.y,this.panTo(this.unproject(R),g),this._enforcingBounds=!1}return this},invalidateSize:function(u){if(!this._loaded)return this;u=i({animate:!1,pan:!0},u===!0?{animate:!0}:u);var g=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var w=this.getSize(),C=g.divideBy(2).round(),R=w.divideBy(2).round(),B=C.subtract(R);return!B.x&&!B.y?this:(u.animate&&u.pan?this.panBy(B):(u.pan&&this._rawPanBy(B),this.fire("move"),u.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(o(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:g,newSize:w}))},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(u){if(u=this._locateOptions=i({timeout:1e4,watch:!1},u),!("geolocation"in navigator))return this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this;var g=o(this._handleGeolocationResponse,this),w=o(this._handleGeolocationError,this);return u.watch?this._locationWatchId=navigator.geolocation.watchPosition(g,w,u):navigator.geolocation.getCurrentPosition(g,w,u),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(u){if(this._container._leaflet_id){var g=u.code,w=u.message||(g===1?"permission denied":g===2?"position unavailable":"timeout");this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:g,message:"Geolocation error: "+w+"."})}},_handleGeolocationResponse:function(u){if(this._container._leaflet_id){var g=u.coords.latitude,w=u.coords.longitude,C=new Ne(g,w),R=C.toBounds(u.coords.accuracy*2),B=this._locateOptions;if(B.setView){var Z=this.getBoundsZoom(R);this.setView(C,B.maxZoom?Math.min(Z,B.maxZoom):Z)}var ae={latlng:C,bounds:R,timestamp:u.timestamp};for(var de in u.coords)typeof u.coords[de]=="number"&&(ae[de]=u.coords[de]);this.fire("locationfound",ae)}},addHandler:function(u,g){if(!g)return this;var w=this[u]=new g(this);return this._handlers.push(w),this.options[u]&&w.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch{this._container._leaflet_id=void 0,this._containerId=void 0}this._locationWatchId!==void 0&&this.stopLocate(),this._stop(),Zt(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(q(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload");var u;for(u in this._layers)this._layers[u].remove();for(u in this._panes)Zt(this._panes[u]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(u,g){var w="leaflet-pane"+(u?" leaflet-"+u.replace("Pane","")+"-pane":""),C=it("div",w,g||this._mapPane);return u&&(this._panes[u]=C),C},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var u=this.getPixelBounds(),g=this.unproject(u.getBottomLeft()),w=this.unproject(u.getTopRight());return new be(g,w)},getMinZoom:function(){return this.options.minZoom===void 0?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return this.options.maxZoom===void 0?this._layersMaxZoom===void 0?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(u,g,w){u=ge(u),w=Y(w||[0,0]);var C=this.getZoom()||0,R=this.getMinZoom(),B=this.getMaxZoom(),Z=u.getNorthWest(),ae=u.getSouthEast(),de=this.getSize().subtract(w),pe=re(this.project(ae,C),this.project(Z,C)).getSize(),Pe=Be.any3d?this.options.zoomSnap:1,Ue=de.x/pe.x,pt=de.y/pe.y,In=g?Math.max(Ue,pt):Math.min(Ue,pt);return C=this.getScaleZoom(In,C),Pe&&(C=Math.round(C/(Pe/100))*(Pe/100),C=g?Math.ceil(C/Pe)*Pe:Math.floor(C/Pe)*Pe),Math.max(R,Math.min(B,C))},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new W(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(u,g){var w=this._getTopLeftPoint(u,g);return new V(w,w.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(u){return this.options.crs.getProjectedBounds(u===void 0?this.getZoom():u)},getPane:function(u){return typeof u=="string"?this._panes[u]:u},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(u,g){var w=this.options.crs;return g=g===void 0?this._zoom:g,w.scale(u)/w.scale(g)},getScaleZoom:function(u,g){var w=this.options.crs;g=g===void 0?this._zoom:g;var C=w.zoom(u*w.scale(g));return isNaN(C)?1/0:C},project:function(u,g){return g=g===void 0?this._zoom:g,this.options.crs.latLngToPoint(we(u),g)},unproject:function(u,g){return g=g===void 0?this._zoom:g,this.options.crs.pointToLatLng(Y(u),g)},layerPointToLatLng:function(u){var g=Y(u).add(this.getPixelOrigin());return this.unproject(g)},latLngToLayerPoint:function(u){var g=this.project(we(u))._round();return g._subtract(this.getPixelOrigin())},wrapLatLng:function(u){return this.options.crs.wrapLatLng(we(u))},wrapLatLngBounds:function(u){return this.options.crs.wrapLatLngBounds(ge(u))},distance:function(u,g){return this.options.crs.distance(we(u),we(g))},containerPointToLayerPoint:function(u){return Y(u).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(u){return Y(u).add(this._getMapPanePos())},containerPointToLatLng:function(u){var g=this.containerPointToLayerPoint(Y(u));return this.layerPointToLatLng(g)},latLngToContainerPoint:function(u){return this.layerPointToContainerPoint(this.latLngToLayerPoint(we(u)))},mouseEventToContainerPoint:function(u){return zl(u,this._container)},mouseEventToLayerPoint:function(u){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(u))},mouseEventToLatLng:function(u){return this.layerPointToLatLng(this.mouseEventToLayerPoint(u))},_initContainer:function(u){var g=this._container=aa(u);if(g){if(g._leaflet_id)throw new Error("Map container is already initialized.")}else throw new Error("Map container not found.");Xe(g,"scroll",this._onScroll,this),this._containerId=c(g)},_initLayout:function(){var u=this._container;this._fadeAnimated=this.options.fadeAnimation&&Be.any3d,nt(u,"leaflet-container"+(Be.touch?" leaflet-touch":"")+(Be.retina?" leaflet-retina":"")+(Be.ielt9?" leaflet-oldie":"")+(Be.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":""));var g=Ml(u,"position");g!=="absolute"&&g!=="relative"&&g!=="fixed"&&g!=="sticky"&&(u.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var u=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),xn(this._mapPane,new W(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(nt(u.markerPane,"leaflet-zoom-hide"),nt(u.shadowPane,"leaflet-zoom-hide"))},_resetView:function(u,g,w){xn(this._mapPane,new W(0,0));var C=!this._loaded;this._loaded=!0,g=this._limitZoom(g),this.fire("viewprereset");var R=this._zoom!==g;this._moveStart(R,w)._move(u,g)._moveEnd(R),this.fire("viewreset"),C&&this.fire("load")},_moveStart:function(u,g){return u&&this.fire("zoomstart"),g||this.fire("movestart"),this},_move:function(u,g,w,C){g===void 0&&(g=this._zoom);var R=this._zoom!==g;return this._zoom=g,this._lastCenter=u,this._pixelOrigin=this._getNewPixelOrigin(u),C?w&&w.pinch&&this.fire("zoom",w):((R||w&&w.pinch)&&this.fire("zoom",w),this.fire("move",w)),this},_moveEnd:function(u){return u&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return q(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(u){xn(this._mapPane,this._getMapPanePos().subtract(u))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(u){this._targets={},this._targets[c(this._container)]=this;var g=u?zt:Xe;g(this._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&g(window,"resize",this._onResize,this),Be.any3d&&this.options.transform3DLimit&&(u?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){q(this._resizeRequest),this._resizeRequest=te(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var u=this._getMapPanePos();Math.max(Math.abs(u.x),Math.abs(u.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(u,g){for(var w=[],C,R=g==="mouseout"||g==="mouseover",B=u.target||u.srcElement,Z=!1;B;){if(C=this._targets[c(B)],C&&(g==="click"||g==="preclick")&&this._draggableMoved(C)){Z=!0;break}if(C&&C.listens(g,!0)&&(R&&!$l(B,u)||(w.push(C),R))||B===this._container)break;B=B.parentNode}return!w.length&&!Z&&!R&&this.listens(g,!0)&&(w=[this]),w},_isClickDisabled:function(u){for(;u&&u!==this._container;){if(u._leaflet_disable_click)return!0;u=u.parentNode}},_handleDOMEvent:function(u){var g=u.target||u.srcElement;if(!(!this._loaded||g._leaflet_disable_events||u.type==="click"&&this._isClickDisabled(g))){var w=u.type;w==="mousedown"&&To(g),this._fireDOMEvent(u,w)}},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(u,g,w){if(u.type==="click"){var C=i({},u);C.type="preclick",this._fireDOMEvent(C,C.type,w)}var R=this._findEventTargets(u,g);if(w){for(var B=[],Z=0;Z<w.length;Z++)w[Z].listens(g,!0)&&B.push(w[Z]);R=B.concat(R)}if(R.length){g==="contextmenu"&&un(u);var ae=R[0],de={originalEvent:u};if(u.type!=="keypress"&&u.type!=="keydown"&&u.type!=="keyup"){var pe=ae.getLatLng&&(!ae._radius||ae._radius<=10);de.containerPoint=pe?this.latLngToContainerPoint(ae.getLatLng()):this.mouseEventToContainerPoint(u),de.layerPoint=this.containerPointToLayerPoint(de.containerPoint),de.latlng=pe?ae.getLatLng():this.layerPointToLatLng(de.layerPoint)}for(Z=0;Z<R.length;Z++)if(R[Z].fire(g,de,!0),de.originalEvent._stopped||R[Z].options.bubblingMouseEvents===!1&&I(this._mouseEvents,g)!==-1)return}},_draggableMoved:function(u){return u=u.dragging&&u.dragging.enabled()?u:this,u.dragging&&u.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var u=0,g=this._handlers.length;u<g;u++)this._handlers[u].disable()},whenReady:function(u,g){return this._loaded?u.call(g||this,{target:this}):this.on("load",u,g),this},_getMapPanePos:function(){return ii(this._mapPane)||new W(0,0)},_moved:function(){var u=this._getMapPanePos();return u&&!u.equals([0,0])},_getTopLeftPoint:function(u,g){var w=u&&g!==void 0?this._getNewPixelOrigin(u,g):this.getPixelOrigin();return w.subtract(this._getMapPanePos())},_getNewPixelOrigin:function(u,g){var w=this.getSize()._divideBy(2);return this.project(u,g)._subtract(w)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(u,g,w){var C=this._getNewPixelOrigin(w,g);return this.project(u,g)._subtract(C)},_latLngBoundsToNewLayerBounds:function(u,g,w){var C=this._getNewPixelOrigin(w,g);return re([this.project(u.getSouthWest(),g)._subtract(C),this.project(u.getNorthWest(),g)._subtract(C),this.project(u.getSouthEast(),g)._subtract(C),this.project(u.getNorthEast(),g)._subtract(C)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(u){return this.latLngToLayerPoint(u).subtract(this._getCenterLayerPoint())},_limitCenter:function(u,g,w){if(!w)return u;var C=this.project(u,g),R=this.getSize().divideBy(2),B=new V(C.subtract(R),C.add(R)),Z=this._getBoundsOffset(B,w,g);return Math.abs(Z.x)<=1&&Math.abs(Z.y)<=1?u:this.unproject(C.add(Z),g)},_limitOffset:function(u,g){if(!g)return u;var w=this.getPixelBounds(),C=new V(w.min.add(u),w.max.add(u));return u.add(this._getBoundsOffset(C,g))},_getBoundsOffset:function(u,g,w){var C=re(this.project(g.getNorthEast(),w),this.project(g.getSouthWest(),w)),R=C.min.subtract(u.min),B=C.max.subtract(u.max),Z=this._rebound(R.x,-B.x),ae=this._rebound(R.y,-B.y);return new W(Z,ae)},_rebound:function(u,g){return u+g>0?Math.round(u-g)/2:Math.max(0,Math.ceil(u))-Math.max(0,Math.floor(g))},_limitZoom:function(u){var g=this.getMinZoom(),w=this.getMaxZoom(),C=Be.any3d?this.options.zoomSnap:1;return C&&(u=Math.round(u/C)*C),Math.max(g,Math.min(w,u))},_onPanTransitionStep:function(){this.fire("move")},_onPanTransitionEnd:function(){qt(this._mapPane,"leaflet-pan-anim"),this.fire("moveend")},_tryAnimatedPan:function(u,g){var w=this._getCenterOffset(u)._trunc();return(g&&g.animate)!==!0&&!this.getSize().contains(w)?!1:(this.panBy(w,g),!0)},_createAnimProxy:function(){var u=this._proxy=it("div","leaflet-proxy leaflet-zoom-animated");this._panes.mapPane.appendChild(u),this.on("zoomanim",function(g){var w=Vh,C=this._proxy.style[w];ia(this._proxy,this.project(g.center,g.zoom),this.getZoomScale(g.zoom,1)),C===this._proxy.style[w]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on("load moveend",this._animMoveEnd,this),this._on("unload",this._destroyAnimProxy,this)},_destroyAnimProxy:function(){Zt(this._proxy),this.off("load moveend",this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var u=this.getCenter(),g=this.getZoom();ia(this._proxy,this.project(u,g),this.getZoomScale(g,1))},_catchTransitionEnd:function(u){this._animatingZoom&&u.propertyName.indexOf("transform")>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName("leaflet-zoom-animated").length},_tryAnimatedZoom:function(u,g,w){if(this._animatingZoom)return!0;if(w=w||{},!this._zoomAnimated||w.animate===!1||this._nothingToAnimate()||Math.abs(g-this._zoom)>this.options.zoomAnimationThreshold)return!1;var C=this.getZoomScale(g),R=this._getCenterOffset(u)._divideBy(1-1/C);return w.animate!==!0&&!this.getSize().contains(R)?!1:(te(function(){this._moveStart(!0,w.noMoveStart||!1)._animateZoom(u,g,!0)},this),!0)},_animateZoom:function(u,g,w,C){this._mapPane&&(w&&(this._animatingZoom=!0,this._animateToCenter=u,this._animateToZoom=g,nt(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:u,zoom:g,noUpdate:C}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(o(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&qt(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Ii(u,g){return new kt(u,g)}var Tr=ne.extend({options:{position:"topright"},initialize:function(u){N(this,u)},getPosition:function(){return this.options.position},setPosition:function(u){var g=this._map;return g&&g.removeControl(this),this.options.position=u,g&&g.addControl(this),this},getContainer:function(){return this._container},addTo:function(u){this.remove(),this._map=u;var g=this._container=this.onAdd(u),w=this.getPosition(),C=u._controlCorners[w];return nt(g,"leaflet-control"),w.indexOf("bottom")!==-1?C.insertBefore(g,C.firstChild):C.appendChild(g),this._map.on("unload",this.remove,this),this},remove:function(){return this._map?(Zt(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null,this):this},_refocusOnMap:function(u){this._map&&u&&u.screenX>0&&u.screenY>0&&this._map.getContainer().focus()}}),Mi=function(u){return new Tr(u)};kt.include({addControl:function(u){return u.addTo(this),this},removeControl:function(u){return u.remove(),this},_initControlPos:function(){var u=this._controlCorners={},g="leaflet-",w=this._controlContainer=it("div",g+"control-container",this._container);function C(R,B){var Z=g+R+" "+g+B;u[R+B]=it("div",Z,w)}C("top","left"),C("top","right"),C("bottom","left"),C("bottom","right")},_clearControlPos:function(){for(var u in this._controlCorners)Zt(this._controlCorners[u]);Zt(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Kh=Tr.extend({options:{collapsed:!0,position:"topright",autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(u,g,w,C){return w<C?-1:C<w?1:0}},initialize:function(u,g,w){N(this,w),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1,this._preventClick=!1;for(var C in u)this._addLayer(u[C],C);for(C in g)this._addLayer(g[C],C,!0)},onAdd:function(u){this._initLayout(),this._update(),this._map=u,u.on("zoomend",this._checkDisabledLayers,this);for(var g=0;g<this._layers.length;g++)this._layers[g].layer.on("add remove",this._onLayerChange,this);return this._container},addTo:function(u){return Tr.prototype.addTo.call(this,u),this._expandIfNotCollapsed()},onRemove:function(){this._map.off("zoomend",this._checkDisabledLayers,this);for(var u=0;u<this._layers.length;u++)this._layers[u].layer.off("add remove",this._onLayerChange,this)},addBaseLayer:function(u,g){return this._addLayer(u,g),this._map?this._update():this},addOverlay:function(u,g){return this._addLayer(u,g,!0),this._map?this._update():this},removeLayer:function(u){u.off("add remove",this._onLayerChange,this);var g=this._getLayer(c(u));return g&&this._layers.splice(this._layers.indexOf(g),1),this._map?this._update():this},expand:function(){nt(this._container,"leaflet-control-layers-expanded"),this._section.style.height=null;var u=this._map.getSize().y-(this._container.offsetTop+50);return u<this._section.clientHeight?(nt(this._section,"leaflet-control-layers-scrollbar"),this._section.style.height=u+"px"):qt(this._section,"leaflet-control-layers-scrollbar"),this._checkDisabledLayers(),this},collapse:function(){return qt(this._container,"leaflet-control-layers-expanded"),this},_initLayout:function(){var u="leaflet-control-layers",g=this._container=it("div",u),w=this.options.collapsed;g.setAttribute("aria-haspopup",!0),Fl(g),md(g);var C=this._section=it("section",u+"-list");w&&(this._map.on("click",this.collapse,this),Xe(g,{mouseenter:this._expandSafely,mouseleave:this.collapse},this));var R=this._layersLink=it("a",u+"-toggle",g);R.href="#",R.title="Layers",R.setAttribute("role","button"),Xe(R,{keydown:function(B){B.keyCode===13&&this._expandSafely()},click:function(B){un(B),this._expandSafely()}},this),w||this.expand(),this._baseLayersList=it("div",u+"-base",C),this._separator=it("div",u+"-separator",C),this._overlaysList=it("div",u+"-overlays",C),g.appendChild(C)},_getLayer:function(u){for(var g=0;g<this._layers.length;g++)if(this._layers[g]&&c(this._layers[g].layer)===u)return this._layers[g]},_addLayer:function(u,g,w){this._map&&u.on("add remove",this._onLayerChange,this),this._layers.push({layer:u,name:g,overlay:w}),this.options.sortLayers&&this._layers.sort(o(function(C,R){return this.options.sortFunction(C.layer,R.layer,C.name,R.name)},this)),this.options.autoZIndex&&u.setZIndex&&(this._lastZIndex++,u.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(!this._container)return this;ld(this._baseLayersList),ld(this._overlaysList),this._layerControlInputs=[];var u,g,w,C,R=0;for(w=0;w<this._layers.length;w++)C=this._layers[w],this._addItem(C),g=g||C.overlay,u=u||!C.overlay,R+=C.overlay?0:1;return this.options.hideSingleBase&&(u=u&&R>1,this._baseLayersList.style.display=u?"":"none"),this._separator.style.display=g&&u?"":"none",this},_onLayerChange:function(u){this._handlingClick||this._update();var g=this._getLayer(c(u.target)),w=g.overlay?u.type==="add"?"overlayadd":"overlayremove":u.type==="add"?"baselayerchange":null;w&&this._map.fire(w,g)},_createRadioElement:function(u,g){var w='<input type="radio" class="leaflet-control-layers-selector" name="'+u+'"'+(g?' checked="checked"':"")+"/>",C=document.createElement("div");return C.innerHTML=w,C.firstChild},_addItem:function(u){var g=document.createElement("label"),w=this._map.hasLayer(u.layer),C;u.overlay?(C=document.createElement("input"),C.type="checkbox",C.className="leaflet-control-layers-selector",C.defaultChecked=w):C=this._createRadioElement("leaflet-base-layers_"+c(this),w),this._layerControlInputs.push(C),C.layerId=c(u.layer),Xe(C,"click",this._onInputClick,this);var R=document.createElement("span");R.innerHTML=" "+u.name;var B=document.createElement("span");g.appendChild(B),B.appendChild(C),B.appendChild(R);var Z=u.overlay?this._overlaysList:this._baseLayersList;return Z.appendChild(g),this._checkDisabledLayers(),g},_onInputClick:function(){if(!this._preventClick){var u=this._layerControlInputs,g,w,C=[],R=[];this._handlingClick=!0;for(var B=u.length-1;B>=0;B--)g=u[B],w=this._getLayer(g.layerId).layer,g.checked?C.push(w):g.checked||R.push(w);for(B=0;B<R.length;B++)this._map.hasLayer(R[B])&&this._map.removeLayer(R[B]);for(B=0;B<C.length;B++)this._map.hasLayer(C[B])||this._map.addLayer(C[B]);this._handlingClick=!1,this._refocusOnMap()}},_checkDisabledLayers:function(){for(var u=this._layerControlInputs,g,w,C=this._map.getZoom(),R=u.length-1;R>=0;R--)g=u[R],w=this._getLayer(g.layerId).layer,g.disabled=w.options.minZoom!==void 0&&C<w.options.minZoom||w.options.maxZoom!==void 0&&C>w.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var u=this._section;this._preventClick=!0,Xe(u,"click",un),this.expand();var g=this;setTimeout(function(){zt(u,"click",un),g._preventClick=!1})}}),xd=function(u,g,w){return new Kh(u,g,w)},Ao=Tr.extend({options:{position:"topleft",zoomInText:'<span aria-hidden="true">+</span>',zoomInTitle:"Zoom in",zoomOutText:'<span aria-hidden="true">−</span>',zoomOutTitle:"Zoom out"},onAdd:function(u){var g="leaflet-control-zoom",w=it("div",g+" leaflet-bar"),C=this.options;return this._zoomInButton=this._createButton(C.zoomInText,C.zoomInTitle,g+"-in",w,this._zoomIn),this._zoomOutButton=this._createButton(C.zoomOutText,C.zoomOutTitle,g+"-out",w,this._zoomOut),this._updateDisabled(),u.on("zoomend zoomlevelschange",this._updateDisabled,this),w},onRemove:function(u){u.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(u){!this._disabled&&this._map._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(u.shiftKey?3:1))},_zoomOut:function(u){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(u.shiftKey?3:1))},_createButton:function(u,g,w,C,R){var B=it("a",w,C);return B.innerHTML=u,B.href="#",B.title=g,B.setAttribute("role","button"),B.setAttribute("aria-label",g),Fl(B),Xe(B,"click",oa),Xe(B,"click",R,this),Xe(B,"click",this._refocusOnMap,this),B},_updateDisabled:function(){var u=this._map,g="leaflet-disabled";qt(this._zoomInButton,g),qt(this._zoomOutButton,g),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),(this._disabled||u._zoom===u.getMinZoom())&&(nt(this._zoomOutButton,g),this._zoomOutButton.setAttribute("aria-disabled","true")),(this._disabled||u._zoom===u.getMaxZoom())&&(nt(this._zoomInButton,g),this._zoomInButton.setAttribute("aria-disabled","true"))}});kt.mergeOptions({zoomControl:!0}),kt.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Ao,this.addControl(this.zoomControl))});var eg=function(u){return new Ao(u)},fr=Tr.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(u){var g="leaflet-control-scale",w=it("div",g),C=this.options;return this._addScales(C,g+"-line",w),u.on(C.updateWhenIdle?"moveend":"move",this._update,this),u.whenReady(this._update,this),w},onRemove:function(u){u.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(u,g,w){u.metric&&(this._mScale=it("div",g,w)),u.imperial&&(this._iScale=it("div",g,w))},_update:function(){var u=this._map,g=u.getSize().y/2,w=u.distance(u.containerPointToLatLng([0,g]),u.containerPointToLatLng([this.options.maxWidth,g]));this._updateScales(w)},_updateScales:function(u){this.options.metric&&u&&this._updateMetric(u),this.options.imperial&&u&&this._updateImperial(u)},_updateMetric:function(u){var g=this._getRoundNum(u),w=g<1e3?g+" m":g/1e3+" km";this._updateScale(this._mScale,w,g/u)},_updateImperial:function(u){var g=u*3.2808399,w,C,R;g>5280?(w=g/5280,C=this._getRoundNum(w),this._updateScale(this._iScale,C+" mi",C/w)):(R=this._getRoundNum(g),this._updateScale(this._iScale,R+" ft",R/g))},_updateScale:function(u,g,w){u.style.width=Math.round(this.options.maxWidth*w)+"px",u.innerHTML=g},_getRoundNum:function(u){var g=Math.pow(10,(Math.floor(u)+"").length-1),w=u/g;return w=w>=10?10:w>=5?5:w>=3?3:w>=2?2:1,g*w}}),Po=function(u){return new fr(u)},Zh='<svg aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="12" height="8" viewBox="0 0 12 8" class="leaflet-attribution-flag"><path fill="#4C7BE1" d="M0 0h12v4H0z"/><path fill="#FFD500" d="M0 4h12v3H0z"/><path fill="#E0BC00" d="M0 7h12v1H0z"/></svg>',ws=Tr.extend({options:{position:"bottomright",prefix:'<a href="https://leafletjs.com" title="A JavaScript library for interactive maps">'+(Be.inlineSvg?Zh+" ":"")+"Leaflet</a>"},initialize:function(u){N(this,u),this._attributions={}},onAdd:function(u){u.attributionControl=this,this._container=it("div","leaflet-control-attribution"),Fl(this._container);for(var g in u._layers)u._layers[g].getAttribution&&this.addAttribution(u._layers[g].getAttribution());return this._update(),u.on("layeradd",this._addAttribution,this),this._container},onRemove:function(u){u.off("layeradd",this._addAttribution,this)},_addAttribution:function(u){u.layer.getAttribution&&(this.addAttribution(u.layer.getAttribution()),u.layer.once("remove",function(){this.removeAttribution(u.layer.getAttribution())},this))},setPrefix:function(u){return this.options.prefix=u,this._update(),this},addAttribution:function(u){return u?(this._attributions[u]||(this._attributions[u]=0),this._attributions[u]++,this._update(),this):this},removeAttribution:function(u){return u?(this._attributions[u]&&(this._attributions[u]--,this._update()),this):this},_update:function(){if(this._map){var u=[];for(var g in this._attributions)this._attributions[g]&&u.push(g);var w=[];this.options.prefix&&w.push(this.options.prefix),u.length&&w.push(u.join(", ")),this._container.innerHTML=w.join(' <span aria-hidden="true">|</span> ')}}});kt.mergeOptions({attributionControl:!0}),kt.addInitHook(function(){this.options.attributionControl&&new ws().addTo(this)});var X0=function(u){return new ws(u)};Tr.Layers=Kh,Tr.Zoom=Ao,Tr.Scale=fr,Tr.Attribution=ws,Mi.layers=xd,Mi.zoom=eg,Mi.scale=Po,Mi.attribution=X0;var Wr=ne.extend({initialize:function(u){this._map=u},enable:function(){return this._enabled?this:(this._enabled=!0,this.addHooks(),this)},disable:function(){return this._enabled?(this._enabled=!1,this.removeHooks(),this):this},enabled:function(){return!!this._enabled}});Wr.addTo=function(u,g){return u.addHandler(g,this),this};var Yh={Events:H},Eo=Be.touch?"touchstart mousedown":"mousedown",la=Q.extend({options:{clickTolerance:3},initialize:function(u,g,w,C){N(this,C),this._element=u,this._dragStartTarget=g||u,this._preventOutline=w},enable:function(){this._enabled||(Xe(this._dragStartTarget,Eo,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(la._dragging===this&&this.finishDrag(!0),zt(this._dragStartTarget,Eo,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(u){if(this._enabled&&(this._moved=!1,!_o(this._element,"leaflet-zoom-anim"))){if(u.touches&&u.touches.length!==1){la._dragging===this&&this.finishDrag();return}if(!(la._dragging||u.shiftKey||u.which!==1&&u.button!==1&&!u.touches)&&(la._dragging=this,this._preventOutline&&To(this._element),ud(),Ct(),!this._moving)){this.fire("down");var g=u.touches?u.touches[0]:u,w=si(this._element);this._startPoint=new W(g.clientX,g.clientY),this._startPos=ii(this._element),this._parentScale=Ca(w);var C=u.type==="mousedown";Xe(document,C?"mousemove":"touchmove",this._onMove,this),Xe(document,C?"mouseup":"touchend touchcancel",this._onUp,this)}}},_onMove:function(u){if(this._enabled){if(u.touches&&u.touches.length>1){this._moved=!0;return}var g=u.touches&&u.touches.length===1?u.touches[0]:u,w=new W(g.clientX,g.clientY)._subtract(this._startPoint);!w.x&&!w.y||Math.abs(w.x)+Math.abs(w.y)<this.options.clickTolerance||(w.x/=this._parentScale.x,w.y/=this._parentScale.y,un(u),this._moved||(this.fire("dragstart"),this._moved=!0,nt(document.body,"leaflet-dragging"),this._lastTarget=u.target||u.srcElement,window.SVGElementInstance&&this._lastTarget instanceof window.SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),nt(this._lastTarget,"leaflet-drag-target")),this._newPos=this._startPos.add(w),this._moving=!0,this._lastEvent=u,this._updatePosition())}},_updatePosition:function(){var u={originalEvent:this._lastEvent};this.fire("predrag",u),xn(this._element,this._newPos),this.fire("drag",u)},_onUp:function(){this._enabled&&this.finishDrag()},finishDrag:function(u){qt(document.body,"leaflet-dragging"),this._lastTarget&&(qt(this._lastTarget,"leaflet-drag-target"),this._lastTarget=null),zt(document,"mousemove touchmove",this._onMove,this),zt(document,"mouseup touchend touchcancel",this._onUp,this),hd(),Co();var g=this._moved&&this._moving;this._moving=!1,la._dragging=!1,g&&this.fire("dragend",{noInertia:u,distance:this._newPos.distanceTo(this._startPos)})}});function Jh(u,g,w){var C,R=[1,4,2,8],B,Z,ae,de,pe,Pe,Ue,pt;for(B=0,Pe=u.length;B<Pe;B++)u[B]._code=js(u[B],g);for(ae=0;ae<4;ae++){for(Ue=R[ae],C=[],B=0,Pe=u.length,Z=Pe-1;B<Pe;Z=B++)de=u[B],pe=u[Z],de._code&Ue?pe._code&Ue||(pt=vd(pe,de,Ue,g,w),pt._code=js(pt,g),C.push(pt)):(pe._code&Ue&&(pt=vd(pe,de,Ue,g,w),pt._code=js(pt,g),C.push(pt)),C.push(de));u=C}return u}function tg(u,g){var w,C,R,B,Z,ae,de,pe,Pe;if(!u||u.length===0)throw new Error("latlngs not passed");Vr(u)||(console.warn("latlngs are not flat! Only the first ring will be used"),u=u[0]);var Ue=we([0,0]),pt=ge(u),In=pt.getNorthWest().distanceTo(pt.getSouthWest())*pt.getNorthEast().distanceTo(pt.getNorthWest());In<1700&&(Ue=Xh(u));var Tn=u.length,Pr=[];for(w=0;w<Tn;w++){var mr=we(u[w]);Pr.push(g.project(we([mr.lat-Ue.lat,mr.lng-Ue.lng])))}for(ae=de=pe=0,w=0,C=Tn-1;w<Tn;C=w++)R=Pr[w],B=Pr[C],Z=R.y*B.x-B.y*R.x,de+=(R.x+B.x)*Z,pe+=(R.y+B.y)*Z,ae+=Z*3;ae===0?Pe=Pr[0]:Pe=[de/ae,pe/ae];var $o=g.unproject(Y(Pe));return we([$o.lat+Ue.lat,$o.lng+Ue.lng])}function Xh(u){for(var g=0,w=0,C=0,R=0;R<u.length;R++){var B=we(u[R]);g+=B.lat,w+=B.lng,C++}return we([g/C,w/C])}var Q0={__proto__:null,clipPolygon:Jh,polygonCenter:tg,centroid:Xh};function yd(u,g){if(!g||!u.length)return u.slice();var w=g*g;return u=nb(u,w),u=tb(u,w),u}function ng(u,g,w){return Math.sqrt(Ns(u,g,w,!0))}function eb(u,g,w){return Ns(u,g,w)}function tb(u,g){var w=u.length,C=typeof Uint8Array<"u"?Uint8Array:Array,R=new C(w);R[0]=R[w-1]=1,Qh(u,R,g,0,w-1);var B,Z=[];for(B=0;B<w;B++)R[B]&&Z.push(u[B]);return Z}function Qh(u,g,w,C,R){var B=0,Z,ae,de;for(ae=C+1;ae<=R-1;ae++)de=Ns(u[ae],u[C],u[R],!0),de>B&&(Z=ae,B=de);B>w&&(g[Z]=1,Qh(u,g,w,C,Z),Qh(u,g,w,Z,R))}function nb(u,g){for(var w=[u[0]],C=1,R=0,B=u.length;C<B;C++)rb(u[C],u[R])>g&&(w.push(u[C]),R=C);return R<B-1&&w.push(u[B-1]),w}var ef;function rg(u,g,w,C,R){var B=C?ef:js(u,w),Z=js(g,w),ae,de,pe;for(ef=Z;;){if(!(B|Z))return[u,g];if(B&Z)return!1;ae=B||Z,de=vd(u,g,ae,w,R),pe=js(de,w),ae===B?(u=de,B=pe):(g=de,Z=pe)}}function vd(u,g,w,C,R){var B=g.x-u.x,Z=g.y-u.y,ae=C.min,de=C.max,pe,Pe;return w&8?(pe=u.x+B*(de.y-u.y)/Z,Pe=de.y):w&4?(pe=u.x+B*(ae.y-u.y)/Z,Pe=ae.y):w&2?(pe=de.x,Pe=u.y+Z*(de.x-u.x)/B):w&1&&(pe=ae.x,Pe=u.y+Z*(ae.x-u.x)/B),new W(pe,Pe,R)}function js(u,g){var w=0;return u.x<g.min.x?w|=1:u.x>g.max.x&&(w|=2),u.y<g.min.y?w|=4:u.y>g.max.y&&(w|=8),w}function rb(u,g){var w=g.x-u.x,C=g.y-u.y;return w*w+C*C}function Ns(u,g,w,C){var R=g.x,B=g.y,Z=w.x-R,ae=w.y-B,de=Z*Z+ae*ae,pe;return de>0&&(pe=((u.x-R)*Z+(u.y-B)*ae)/de,pe>1?(R=w.x,B=w.y):pe>0&&(R+=Z*pe,B+=ae*pe)),Z=u.x-R,ae=u.y-B,C?Z*Z+ae*ae:new W(R,B)}function Vr(u){return!P(u[0])||typeof u[0][0]!="object"&&typeof u[0][0]<"u"}function ag(u){return console.warn("Deprecated use of _flat, please use L.LineUtil.isFlat instead."),Vr(u)}function ig(u,g){var w,C,R,B,Z,ae,de,pe;if(!u||u.length===0)throw new Error("latlngs not passed");Vr(u)||(console.warn("latlngs are not flat! Only the first ring will be used"),u=u[0]);var Pe=we([0,0]),Ue=ge(u),pt=Ue.getNorthWest().distanceTo(Ue.getSouthWest())*Ue.getNorthEast().distanceTo(Ue.getNorthWest());pt<1700&&(Pe=Xh(u));var In=u.length,Tn=[];for(w=0;w<In;w++){var Pr=we(u[w]);Tn.push(g.project(we([Pr.lat-Pe.lat,Pr.lng-Pe.lng])))}for(w=0,C=0;w<In-1;w++)C+=Tn[w].distanceTo(Tn[w+1])/2;if(C===0)pe=Tn[0];else for(w=0,B=0;w<In-1;w++)if(Z=Tn[w],ae=Tn[w+1],R=Z.distanceTo(ae),B+=R,B>C){de=(B-C)/R,pe=[ae.x-de*(ae.x-Z.x),ae.y-de*(ae.y-Z.y)];break}var mr=g.unproject(Y(pe));return we([mr.lat+Pe.lat,mr.lng+Pe.lng])}var sg={__proto__:null,simplify:yd,pointToSegmentDistance:ng,closestPointOnSegment:eb,clipSegment:rg,_getEdgeIntersection:vd,_getBitCode:js,_sqClosestPointOnSegment:Ns,isFlat:Vr,_flat:ag,polylineCenter:ig},tf={project:function(u){return new W(u.lng,u.lat)},unproject:function(u){return new Ne(u.y,u.x)},bounds:new V([-180,-90],[180,90])},nf={R:6378137,R_MINOR:6356752314245179e-9,bounds:new V([-2003750834279e-5,-1549657073972e-5],[2003750834279e-5,1876465623138e-5]),project:function(u){var g=Math.PI/180,w=this.R,C=u.lat*g,R=this.R_MINOR/w,B=Math.sqrt(1-R*R),Z=B*Math.sin(C),ae=Math.tan(Math.PI/4-C/2)/Math.pow((1-Z)/(1+Z),B/2);return C=-w*Math.log(Math.max(ae,1e-10)),new W(u.lng*g*w,C)},unproject:function(u){for(var g=180/Math.PI,w=this.R,C=this.R_MINOR/w,R=Math.sqrt(1-C*C),B=Math.exp(-u.y/w),Z=Math.PI/2-2*Math.atan(B),ae=0,de=.1,pe;ae<15&&Math.abs(de)>1e-7;ae++)pe=R*Math.sin(Z),pe=Math.pow((1-pe)/(1+pe),R/2),de=Math.PI/2-2*Math.atan(B*pe)-Z,Z+=de;return new Ne(Z*g,u.x*g/w)}},ab={__proto__:null,LonLat:tf,Mercator:nf,SphericalMercator:Ae},ib=i({},Ce,{code:"EPSG:3395",projection:nf,transformation:(function(){var u=.5/(Math.PI*nf.R);return fe(u,.5,-u,.5)})()}),og=i({},Ce,{code:"EPSG:4326",projection:tf,transformation:fe(1/180,1,-1/180,.5)}),sb=i({},Fe,{projection:tf,transformation:fe(1,0,-1,0),scale:function(u){return Math.pow(2,u)},zoom:function(u){return Math.log(u)/Math.LN2},distance:function(u,g){var w=g.lng-u.lng,C=g.lat-u.lat;return Math.sqrt(w*w+C*C)},infinite:!0});Fe.Earth=Ce,Fe.EPSG3395=ib,Fe.EPSG3857=tt,Fe.EPSG900913=at,Fe.EPSG4326=og,Fe.Simple=sb;var ca=Q.extend({options:{pane:"overlayPane",attribution:null,bubblingMouseEvents:!0},addTo:function(u){return u.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(u){return u&&u.removeLayer(this),this},getPane:function(u){return this._map.getPane(u?this.options[u]||u:this.options.pane)},addInteractiveTarget:function(u){return this._map._targets[c(u)]=this,this},removeInteractiveTarget:function(u){return delete this._map._targets[c(u)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(u){var g=u.target;if(g.hasLayer(this)){if(this._map=g,this._zoomAnimated=g._zoomAnimated,this.getEvents){var w=this.getEvents();g.on(w,this),this.once("remove",function(){g.off(w,this)},this)}this.onAdd(g),this.fire("add"),g.fire("layeradd",{layer:this})}}});kt.include({addLayer:function(u){if(!u._layerAdd)throw new Error("The provided object is not a Layer.");var g=c(u);return this._layers[g]?this:(this._layers[g]=u,u._mapToAdd=this,u.beforeAdd&&u.beforeAdd(this),this.whenReady(u._layerAdd,u),this)},removeLayer:function(u){var g=c(u);return this._layers[g]?(this._loaded&&u.onRemove(this),delete this._layers[g],this._loaded&&(this.fire("layerremove",{layer:u}),u.fire("remove")),u._map=u._mapToAdd=null,this):this},hasLayer:function(u){return c(u)in this._layers},eachLayer:function(u,g){for(var w in this._layers)u.call(g,this._layers[w]);return this},_addLayers:function(u){u=u?P(u)?u:[u]:[];for(var g=0,w=u.length;g<w;g++)this.addLayer(u[g])},_addZoomLimit:function(u){(!isNaN(u.options.maxZoom)||!isNaN(u.options.minZoom))&&(this._zoomBoundLayers[c(u)]=u,this._updateZoomLevels())},_removeZoomLimit:function(u){var g=c(u);this._zoomBoundLayers[g]&&(delete this._zoomBoundLayers[g],this._updateZoomLevels())},_updateZoomLevels:function(){var u=1/0,g=-1/0,w=this._getZoomSpan();for(var C in this._zoomBoundLayers){var R=this._zoomBoundLayers[C].options;u=R.minZoom===void 0?u:Math.min(u,R.minZoom),g=R.maxZoom===void 0?g:Math.max(g,R.maxZoom)}this._layersMaxZoom=g===-1/0?void 0:g,this._layersMinZoom=u===1/0?void 0:u,w!==this._getZoomSpan()&&this.fire("zoomlevelschange"),this.options.maxZoom===void 0&&this._layersMaxZoom&&this.getZoom()>this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),this.options.minZoom===void 0&&this._layersMinZoom&&this.getZoom()<this._layersMinZoom&&this.setZoom(this._layersMinZoom)}});var Li=ca.extend({initialize:function(u,g){N(this,g),this._layers={};var w,C;if(u)for(w=0,C=u.length;w<C;w++)this.addLayer(u[w])},addLayer:function(u){var g=this.getLayerId(u);return this._layers[g]=u,this._map&&this._map.addLayer(u),this},removeLayer:function(u){var g=u in this._layers?u:this.getLayerId(u);return this._map&&this._layers[g]&&this._map.removeLayer(this._layers[g]),delete this._layers[g],this},hasLayer:function(u){var g=typeof u=="number"?u:this.getLayerId(u);return g in this._layers},clearLayers:function(){return this.eachLayer(this.removeLayer,this)},invoke:function(u){var g=Array.prototype.slice.call(arguments,1),w,C;for(w in this._layers)C=this._layers[w],C[u]&&C[u].apply(C,g);return this},onAdd:function(u){this.eachLayer(u.addLayer,u)},onRemove:function(u){this.eachLayer(u.removeLayer,u)},eachLayer:function(u,g){for(var w in this._layers)u.call(g,this._layers[w]);return this},getLayer:function(u){return this._layers[u]},getLayers:function(){var u=[];return this.eachLayer(u.push,u),u},setZIndex:function(u){return this.invoke("setZIndex",u)},getLayerId:function(u){return c(u)}}),Hl=function(u,g){return new Li(u,g)},oi=Li.extend({addLayer:function(u){return this.hasLayer(u)?this:(u.addEventParent(this),Li.prototype.addLayer.call(this,u),this.fire("layeradd",{layer:u}))},removeLayer:function(u){return this.hasLayer(u)?(u in this._layers&&(u=this._layers[u]),u.removeEventParent(this),Li.prototype.removeLayer.call(this,u),this.fire("layerremove",{layer:u})):this},setStyle:function(u){return this.invoke("setStyle",u)},bringToFront:function(){return this.invoke("bringToFront")},bringToBack:function(){return this.invoke("bringToBack")},getBounds:function(){var u=new be;for(var g in this._layers){var w=this._layers[g];u.extend(w.getBounds?w.getBounds():w.getLatLng())}return u}}),lg=function(u,g){return new oi(u,g)},ks=ne.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0],crossOrigin:!1},initialize:function(u){N(this,u)},createIcon:function(u){return this._createIcon("icon",u)},createShadow:function(u){return this._createIcon("shadow",u)},_createIcon:function(u,g){var w=this._getIconUrl(u);if(!w){if(u==="icon")throw new Error("iconUrl not set in Icon options (see the docs).");return null}var C=this._createImg(w,g&&g.tagName==="IMG"?g:null);return this._setIconStyles(C,u),(this.options.crossOrigin||this.options.crossOrigin==="")&&(C.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),C},_setIconStyles:function(u,g){var w=this.options,C=w[g+"Size"];typeof C=="number"&&(C=[C,C]);var R=Y(C),B=Y(g==="shadow"&&w.shadowAnchor||w.iconAnchor||R&&R.divideBy(2,!0));u.className="leaflet-marker-"+g+" "+(w.className||""),B&&(u.style.marginLeft=-B.x+"px",u.style.marginTop=-B.y+"px"),R&&(u.style.width=R.x+"px",u.style.height=R.y+"px")},_createImg:function(u,g){return g=g||document.createElement("img"),g.src=u,g},_getIconUrl:function(u){return Be.retina&&this.options[u+"RetinaUrl"]||this.options[u+"Url"]}});function cg(u){return new ks(u)}var Oo=ks.extend({options:{iconUrl:"marker-icon.png",iconRetinaUrl:"marker-icon-2x.png",shadowUrl:"marker-shadow.png",iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],tooltipAnchor:[16,-28],shadowSize:[41,41]},_getIconUrl:function(u){return typeof Oo.imagePath!="string"&&(Oo.imagePath=this._detectIconPath()),(this.options.imagePath||Oo.imagePath)+ks.prototype._getIconUrl.call(this,u)},_stripUrl:function(u){var g=function(w,C,R){var B=C.exec(w);return B&&B[R]};return u=g(u,/^url\((['"])?(.+)\1\)$/,2),u&&g(u,/^(.*)marker-icon\.png$/,1)},_detectIconPath:function(){var u=it("div","leaflet-default-icon-path",document.body),g=Ml(u,"background-image")||Ml(u,"backgroundImage");if(document.body.removeChild(u),g=this._stripUrl(g),g)return g;var w=document.querySelector('link[href$="leaflet.css"]');return w?w.href.substring(0,w.href.length-11-1):""}}),rf=Wr.extend({initialize:function(u){this._marker=u},addHooks:function(){var u=this._marker._icon;this._draggable||(this._draggable=new la(u,u,!0)),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),nt(u,"leaflet-marker-draggable")},removeHooks:function(){this._draggable.off({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).disable(),this._marker._icon&&qt(this._marker._icon,"leaflet-marker-draggable")},moved:function(){return this._draggable&&this._draggable._moved},_adjustPan:function(u){var g=this._marker,w=g._map,C=this._marker.options.autoPanSpeed,R=this._marker.options.autoPanPadding,B=ii(g._icon),Z=w.getPixelBounds(),ae=w.getPixelOrigin(),de=re(Z.min._subtract(ae).add(R),Z.max._subtract(ae).subtract(R));if(!de.contains(B)){var pe=Y((Math.max(de.max.x,B.x)-de.max.x)/(Z.max.x-de.max.x)-(Math.min(de.min.x,B.x)-de.min.x)/(Z.min.x-de.min.x),(Math.max(de.max.y,B.y)-de.max.y)/(Z.max.y-de.max.y)-(Math.min(de.min.y,B.y)-de.min.y)/(Z.min.y-de.min.y)).multiplyBy(C);w.panBy(pe,{animate:!1}),this._draggable._newPos._add(pe),this._draggable._startPos._add(pe),xn(g._icon,this._draggable._newPos),this._onDrag(u),this._panRequest=te(this._adjustPan.bind(this,u))}},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup&&this._marker.closePopup(),this._marker.fire("movestart").fire("dragstart")},_onPreDrag:function(u){this._marker.options.autoPan&&(q(this._panRequest),this._panRequest=te(this._adjustPan.bind(this,u)))},_onDrag:function(u){var g=this._marker,w=g._shadow,C=ii(g._icon),R=g._map.layerPointToLatLng(C);w&&xn(w,C),g._latlng=R,u.latlng=R,u.oldLatLng=this._oldLatLng,g.fire("move",u).fire("drag",u)},_onDragEnd:function(u){q(this._panRequest),delete this._oldLatLng,this._marker.fire("moveend").fire("dragend",u)}}),li=ca.extend({options:{icon:new Oo,interactive:!0,keyboard:!0,title:"",alt:"Marker",zIndexOffset:0,opacity:1,riseOnHover:!1,riseOffset:250,pane:"markerPane",shadowPane:"shadowPane",bubblingMouseEvents:!1,autoPanOnFocus:!0,draggable:!1,autoPan:!1,autoPanPadding:[50,50],autoPanSpeed:10},initialize:function(u,g){N(this,g),this._latlng=we(u)},onAdd:function(u){this._zoomAnimated=this._zoomAnimated&&u.options.markerZoomAnimation,this._zoomAnimated&&u.on("zoomanim",this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(u){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&u.off("zoomanim",this._animateZoom,this),this._removeIcon(),this._removeShadow()},getEvents:function(){return{zoom:this.update,viewreset:this.update}},getLatLng:function(){return this._latlng},setLatLng:function(u){var g=this._latlng;return this._latlng=we(u),this.update(),this.fire("move",{oldLatLng:g,latlng:this._latlng})},setZIndexOffset:function(u){return this.options.zIndexOffset=u,this.update()},getIcon:function(){return this.options.icon},setIcon:function(u){return this.options.icon=u,this._map&&(this._initIcon(),this.update()),this._popup&&this.bindPopup(this._popup,this._popup.options),this},getElement:function(){return this._icon},update:function(){if(this._icon&&this._map){var u=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(u)}return this},_initIcon:function(){var u=this.options,g="leaflet-zoom-"+(this._zoomAnimated?"animated":"hide"),w=u.icon.createIcon(this._icon),C=!1;w!==this._icon&&(this._icon&&this._removeIcon(),C=!0,u.title&&(w.title=u.title),w.tagName==="IMG"&&(w.alt=u.alt||"")),nt(w,g),u.keyboard&&(w.tabIndex="0",w.setAttribute("role","button")),this._icon=w,u.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex}),this.options.autoPanOnFocus&&Xe(w,"focus",this._panOnFocus,this);var R=u.icon.createShadow(this._shadow),B=!1;R!==this._shadow&&(this._removeShadow(),B=!0),R&&(nt(R,g),R.alt=""),this._shadow=R,u.opacity<1&&this._updateOpacity(),C&&this.getPane().appendChild(this._icon),this._initInteraction(),R&&B&&this.getPane(u.shadowPane).appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),this.options.autoPanOnFocus&&zt(this._icon,"focus",this._panOnFocus,this),Zt(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&Zt(this._shadow),this._shadow=null},_setPos:function(u){this._icon&&xn(this._icon,u),this._shadow&&xn(this._shadow,u),this._zIndex=u.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(u){this._icon&&(this._icon.style.zIndex=this._zIndex+u)},_animateZoom:function(u){var g=this._map._latLngToNewLayerPoint(this._latlng,u.zoom,u.center).round();this._setPos(g)},_initInteraction:function(){if(this.options.interactive&&(nt(this._icon,"leaflet-interactive"),this.addInteractiveTarget(this._icon),rf)){var u=this.options.draggable;this.dragging&&(u=this.dragging.enabled(),this.dragging.disable()),this.dragging=new rf(this),u&&this.dragging.enable()}},setOpacity:function(u){return this.options.opacity=u,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var u=this.options.opacity;this._icon&&hr(this._icon,u),this._shadow&&hr(this._shadow,u)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_panOnFocus:function(){var u=this._map;if(u){var g=this.options.icon.options,w=g.iconSize?Y(g.iconSize):Y(0,0),C=g.iconAnchor?Y(g.iconAnchor):Y(0,0);u.panInside(this._latlng,{paddingTopLeft:C,paddingBottomRight:w.subtract(C)})}},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor}});function ob(u,g){return new li(u,g)}var Di=ca.extend({options:{stroke:!0,color:"#3388ff",weight:3,opacity:1,lineCap:"round",lineJoin:"round",dashArray:null,dashOffset:null,fill:!1,fillColor:null,fillOpacity:.2,fillRule:"evenodd",interactive:!0,bubblingMouseEvents:!0},beforeAdd:function(u){this._renderer=u.getRenderer(this)},onAdd:function(){this._renderer._initPath(this),this._reset(),this._renderer._addPath(this)},onRemove:function(){this._renderer._removePath(this)},redraw:function(){return this._map&&this._renderer._updatePath(this),this},setStyle:function(u){return N(this,u),this._renderer&&(this._renderer._updateStyle(this),this.options.stroke&&u&&Object.prototype.hasOwnProperty.call(u,"weight")&&this._updateBounds()),this},bringToFront:function(){return this._renderer&&this._renderer._bringToFront(this),this},bringToBack:function(){return this._renderer&&this._renderer._bringToBack(this),this},getElement:function(){return this._path},_reset:function(){this._project(),this._update()},_clickTolerance:function(){return(this.options.stroke?this.options.weight/2:0)+(this._renderer.options.tolerance||0)}}),bd=Di.extend({options:{fill:!0,radius:10},initialize:function(u,g){N(this,g),this._latlng=we(u),this._radius=this.options.radius},setLatLng:function(u){var g=this._latlng;return this._latlng=we(u),this.redraw(),this.fire("move",{oldLatLng:g,latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(u){return this.options.radius=this._radius=u,this.redraw()},getRadius:function(){return this._radius},setStyle:function(u){var g=u&&u.radius||this._radius;return Di.prototype.setStyle.call(this,u),this.setRadius(g),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var u=this._radius,g=this._radiusY||u,w=this._clickTolerance(),C=[u+w,g+w];this._pxBounds=new V(this._point.subtract(C),this._point.add(C))},_update:function(){this._map&&this._updatePath()},_updatePath:function(){this._renderer._updateCircle(this)},_empty:function(){return this._radius&&!this._renderer._bounds.intersects(this._pxBounds)},_containsPoint:function(u){return u.distanceTo(this._point)<=this._radius+this._clickTolerance()}});function dg(u,g){return new bd(u,g)}var wd=bd.extend({initialize:function(u,g,w){if(typeof g=="number"&&(g=i({},w,{radius:g})),N(this,g),this._latlng=we(u),isNaN(this.options.radius))throw new Error("Circle radius cannot be NaN");this._mRadius=this.options.radius},setRadius:function(u){return this._mRadius=u,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var u=[this._radius,this._radiusY||this._radius];return new be(this._map.layerPointToLatLng(this._point.subtract(u)),this._map.layerPointToLatLng(this._point.add(u)))},setStyle:Di.prototype.setStyle,_project:function(){var u=this._latlng.lng,g=this._latlng.lat,w=this._map,C=w.options.crs;if(C.distance===Ce.distance){var R=Math.PI/180,B=this._mRadius/Ce.R/R,Z=w.project([g+B,u]),ae=w.project([g-B,u]),de=Z.add(ae).divideBy(2),pe=w.unproject(de).lat,Pe=Math.acos((Math.cos(B*R)-Math.sin(g*R)*Math.sin(pe*R))/(Math.cos(g*R)*Math.cos(pe*R)))/R;(isNaN(Pe)||Pe===0)&&(Pe=B/Math.cos(Math.PI/180*g)),this._point=de.subtract(w.getPixelOrigin()),this._radius=isNaN(Pe)?0:de.x-w.project([pe,u-Pe]).x,this._radiusY=de.y-Z.y}else{var Ue=C.unproject(C.project(this._latlng).subtract([this._mRadius,0]));this._point=w.latLngToLayerPoint(this._latlng),this._radius=this._point.x-w.latLngToLayerPoint(Ue).x}this._updateBounds()}});function Wl(u,g,w){return new wd(u,g,w)}var Ar=Di.extend({options:{smoothFactor:1,noClip:!1},initialize:function(u,g){N(this,g),this._setLatLngs(u)},getLatLngs:function(){return this._latlngs},setLatLngs:function(u){return this._setLatLngs(u),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(u){for(var g=1/0,w=null,C=Ns,R,B,Z=0,ae=this._parts.length;Z<ae;Z++)for(var de=this._parts[Z],pe=1,Pe=de.length;pe<Pe;pe++){R=de[pe-1],B=de[pe];var Ue=C(u,R,B,!0);Ue<g&&(g=Ue,w=C(u,R,B))}return w&&(w.distance=Math.sqrt(g)),w},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");return ig(this._defaultShape(),this._map.options.crs)},getBounds:function(){return this._bounds},addLatLng:function(u,g){return g=g||this._defaultShape(),u=we(u),g.push(u),this._bounds.extend(u),this.redraw()},_setLatLngs:function(u){this._bounds=new be,this._latlngs=this._convertLatLngs(u)},_defaultShape:function(){return Vr(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(u){for(var g=[],w=Vr(u),C=0,R=u.length;C<R;C++)w?(g[C]=we(u[C]),this._bounds.extend(g[C])):g[C]=this._convertLatLngs(u[C]);return g},_project:function(){var u=new V;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,u),this._bounds.isValid()&&u.isValid()&&(this._rawPxBounds=u,this._updateBounds())},_updateBounds:function(){var u=this._clickTolerance(),g=new W(u,u);this._rawPxBounds&&(this._pxBounds=new V([this._rawPxBounds.min.subtract(g),this._rawPxBounds.max.add(g)]))},_projectLatlngs:function(u,g,w){var C=u[0]instanceof Ne,R=u.length,B,Z;if(C){for(Z=[],B=0;B<R;B++)Z[B]=this._map.latLngToLayerPoint(u[B]),w.extend(Z[B]);g.push(Z)}else for(B=0;B<R;B++)this._projectLatlngs(u[B],g,w)},_clipPoints:function(){var u=this._renderer._bounds;if(this._parts=[],!(!this._pxBounds||!this._pxBounds.intersects(u))){if(this.options.noClip){this._parts=this._rings;return}var g=this._parts,w,C,R,B,Z,ae,de;for(w=0,R=0,B=this._rings.length;w<B;w++)for(de=this._rings[w],C=0,Z=de.length;C<Z-1;C++)ae=rg(de[C],de[C+1],u,C,!0),ae&&(g[R]=g[R]||[],g[R].push(ae[0]),(ae[1]!==de[C+1]||C===Z-2)&&(g[R].push(ae[1]),R++))}},_simplifyPoints:function(){for(var u=this._parts,g=this.options.smoothFactor,w=0,C=u.length;w<C;w++)u[w]=yd(u[w],g)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(u,g){var w,C,R,B,Z,ae,de=this._clickTolerance();if(!this._pxBounds||!this._pxBounds.contains(u))return!1;for(w=0,B=this._parts.length;w<B;w++)for(ae=this._parts[w],C=0,Z=ae.length,R=Z-1;C<Z;R=C++)if(!(!g&&C===0)&&ng(u,ae[R],ae[C])<=de)return!0;return!1}});function lb(u,g){return new Ar(u,g)}Ar._flat=ag;var ci=Ar.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw new Error("Must add layer to map before using getCenter()");return tg(this._defaultShape(),this._map.options.crs)},_convertLatLngs:function(u){var g=Ar.prototype._convertLatLngs.call(this,u),w=g.length;return w>=2&&g[0]instanceof Ne&&g[0].equals(g[w-1])&&g.pop(),g},_setLatLngs:function(u){Ar.prototype._setLatLngs.call(this,u),Vr(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Vr(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var u=this._renderer._bounds,g=this.options.weight,w=new W(g,g);if(u=new V(u.min.subtract(w),u.max.add(w)),this._parts=[],!(!this._pxBounds||!this._pxBounds.intersects(u))){if(this.options.noClip){this._parts=this._rings;return}for(var C=0,R=this._rings.length,B;C<R;C++)B=Jh(this._rings[C],u,!0),B.length&&this._parts.push(B)}},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(u){var g=!1,w,C,R,B,Z,ae,de,pe;if(!this._pxBounds||!this._pxBounds.contains(u))return!1;for(B=0,de=this._parts.length;B<de;B++)for(w=this._parts[B],Z=0,pe=w.length,ae=pe-1;Z<pe;ae=Z++)C=w[Z],R=w[ae],C.y>u.y!=R.y>u.y&&u.x<(R.x-C.x)*(u.y-C.y)/(R.y-C.y)+C.x&&(g=!g);return g||Ar.prototype._containsPoint.call(this,u,!0)}});function cb(u,g){return new ci(u,g)}var Aa=oi.extend({initialize:function(u,g){N(this,g),this._layers={},u&&this.addData(u)},addData:function(u){var g=P(u)?u:u.features,w,C,R;if(g){for(w=0,C=g.length;w<C;w++)R=g[w],(R.geometries||R.geometry||R.features||R.coordinates)&&this.addData(R);return this}var B=this.options;if(B.filter&&!B.filter(u))return this;var Z=Ro(u,B);return Z?(Z.feature=Sd(u),Z.defaultOptions=Z.options,this.resetStyle(Z),B.onEachFeature&&B.onEachFeature(u,Z),this.addLayer(Z)):this},resetStyle:function(u){return u===void 0?this.eachLayer(this.resetStyle,this):(u.options=i({},u.defaultOptions),this._setLayerStyle(u,this.options.style),this)},setStyle:function(u){return this.eachLayer(function(g){this._setLayerStyle(g,u)},this)},_setLayerStyle:function(u,g){u.setStyle&&(typeof g=="function"&&(g=g(u.feature)),u.setStyle(g))}});function Ro(u,g){var w=u.type==="Feature"?u.geometry:u,C=w?w.coordinates:null,R=[],B=g&&g.pointToLayer,Z=g&&g.coordsToLatLng||Nd,ae,de,pe,Pe;if(!C&&!w)return null;switch(w.type){case"Point":return ae=Z(C),jd(B,u,ae,g);case"MultiPoint":for(pe=0,Pe=C.length;pe<Pe;pe++)ae=Z(C[pe]),R.push(jd(B,u,ae,g));return new oi(R);case"LineString":case"MultiLineString":return de=Vl(C,w.type==="LineString"?0:1,Z),new Ar(de,g);case"Polygon":case"MultiPolygon":return de=Vl(C,w.type==="Polygon"?1:2,Z),new ci(de,g);case"GeometryCollection":for(pe=0,Pe=w.geometries.length;pe<Pe;pe++){var Ue=Ro({geometry:w.geometries[pe],type:"Feature",properties:u.properties},g);Ue&&R.push(Ue)}return new oi(R);case"FeatureCollection":for(pe=0,Pe=w.features.length;pe<Pe;pe++){var pt=Ro(w.features[pe],g);pt&&R.push(pt)}return new oi(R);default:throw new Error("Invalid GeoJSON object.")}}function jd(u,g,w,C){return u?u(g,w):new li(w,C&&C.markersInheritOptions&&C)}function Nd(u){return new Ne(u[1],u[0],u[2])}function Vl(u,g,w){for(var C=[],R=0,B=u.length,Z;R<B;R++)Z=g?Vl(u[R],g-1,w):(w||Nd)(u[R]),C.push(Z);return C}function kd(u,g){return u=we(u),u.alt!==void 0?[x(u.lng,g),x(u.lat,g),x(u.alt,g)]:[x(u.lng,g),x(u.lat,g)]}function _d(u,g,w,C){for(var R=[],B=0,Z=u.length;B<Z;B++)R.push(g?_d(u[B],Vr(u[B])?0:g-1,w,C):kd(u[B],C));return!g&&w&&R.length>0&&R.push(R[0].slice()),R}function Io(u,g){return u.feature?i({},u.feature,{geometry:g}):Sd(g)}function Sd(u){return u.type==="Feature"||u.type==="FeatureCollection"?u:{type:"Feature",properties:{},geometry:u}}var af={toGeoJSON:function(u){return Io(this,{type:"Point",coordinates:kd(this.getLatLng(),u)})}};li.include(af),wd.include(af),bd.include(af),Ar.include({toGeoJSON:function(u){var g=!Vr(this._latlngs),w=_d(this._latlngs,g?1:0,!1,u);return Io(this,{type:(g?"Multi":"")+"LineString",coordinates:w})}}),ci.include({toGeoJSON:function(u){var g=!Vr(this._latlngs),w=g&&!Vr(this._latlngs[0]),C=_d(this._latlngs,w?2:g?1:0,!0,u);return g||(C=[C]),Io(this,{type:(w?"Multi":"")+"Polygon",coordinates:C})}}),Li.include({toMultiPoint:function(u){var g=[];return this.eachLayer(function(w){g.push(w.toGeoJSON(u).geometry.coordinates)}),Io(this,{type:"MultiPoint",coordinates:g})},toGeoJSON:function(u){var g=this.feature&&this.feature.geometry&&this.feature.geometry.type;if(g==="MultiPoint")return this.toMultiPoint(u);var w=g==="GeometryCollection",C=[];return this.eachLayer(function(R){if(R.toGeoJSON){var B=R.toGeoJSON(u);if(w)C.push(B.geometry);else{var Z=Sd(B);Z.type==="FeatureCollection"?C.push.apply(C,Z.features):C.push(Z)}}}),w?Io(this,{geometries:C,type:"GeometryCollection"}):{type:"FeatureCollection",features:C}}});function ug(u,g){return new Aa(u,g)}var da=ug,Bi=ca.extend({options:{opacity:1,alt:"",interactive:!1,crossOrigin:!1,errorOverlayUrl:"",zIndex:1,className:""},initialize:function(u,g,w){this._url=u,this._bounds=ge(g),N(this,w)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(nt(this._image,"leaflet-interactive"),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){Zt(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(u){return this.options.opacity=u,this._image&&this._updateOpacity(),this},setStyle:function(u){return u.opacity&&this.setOpacity(u.opacity),this},bringToFront:function(){return this._map&&ko(this._image),this},bringToBack:function(){return this._map&&ai(this._image),this},setUrl:function(u){return this._url=u,this._image&&(this._image.src=u),this},setBounds:function(u){return this._bounds=ge(u),this._map&&this._reset(),this},getEvents:function(){var u={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(u.zoomanim=this._animateZoom),u},setZIndex:function(u){return this.options.zIndex=u,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var u=this._url.tagName==="IMG",g=this._image=u?this._url:it("img");if(nt(g,"leaflet-image-layer"),this._zoomAnimated&&nt(g,"leaflet-zoom-animated"),this.options.className&&nt(g,this.options.className),g.onselectstart=p,g.onmousemove=p,g.onload=o(this.fire,this,"load"),g.onerror=o(this._overlayOnError,this,"error"),(this.options.crossOrigin||this.options.crossOrigin==="")&&(g.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),u){this._url=g.src;return}g.src=this._url,g.alt=this.options.alt},_animateZoom:function(u){var g=this._map.getZoomScale(u.zoom),w=this._map._latLngBoundsToNewLayerBounds(this._bounds,u.zoom,u.center).min;ia(this._image,w,g)},_reset:function(){var u=this._image,g=new V(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),w=g.getSize();xn(u,g.min),u.style.width=w.x+"px",u.style.height=w.y+"px"},_updateOpacity:function(){hr(this._image,this.options.opacity)},_updateZIndex:function(){this._image&&this.options.zIndex!==void 0&&this.options.zIndex!==null&&(this._image.style.zIndex=this.options.zIndex)},_overlayOnError:function(){this.fire("error");var u=this.options.errorOverlayUrl;u&&this._url!==u&&(this._url=u,this._image.src=u)},getCenter:function(){return this._bounds.getCenter()}}),hg=function(u,g,w){return new Bi(u,g,w)},sf=Bi.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var u=this._url.tagName==="VIDEO",g=this._image=u?this._url:it("video");if(nt(g,"leaflet-image-layer"),this._zoomAnimated&&nt(g,"leaflet-zoom-animated"),this.options.className&&nt(g,this.options.className),g.onselectstart=p,g.onmousemove=p,g.onloadeddata=o(this.fire,this,"load"),u){for(var w=g.getElementsByTagName("source"),C=[],R=0;R<w.length;R++)C.push(w[R].src);this._url=w.length>0?C:[g.src];return}P(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(g.style,"objectFit")&&(g.style.objectFit="fill"),g.autoplay=!!this.options.autoplay,g.loop=!!this.options.loop,g.muted=!!this.options.muted,g.playsInline=!!this.options.playsInline;for(var B=0;B<this._url.length;B++){var Z=it("source");Z.src=this._url[B],g.appendChild(Z)}}});function fg(u,g,w){return new sf(u,g,w)}var of=Bi.extend({_initImage:function(){var u=this._image=this._url;nt(u,"leaflet-image-layer"),this._zoomAnimated&&nt(u,"leaflet-zoom-animated"),this.options.className&&nt(u,this.options.className),u.onselectstart=p,u.onmousemove=p}});function lf(u,g,w){return new of(u,g,w)}var Pa=ca.extend({options:{interactive:!1,offset:[0,0],className:"",pane:void 0,content:""},initialize:function(u,g){u&&(u instanceof Ne||P(u))?(this._latlng=we(u),N(this,g)):(N(this,u),this._source=g),this.options.content&&(this._content=this.options.content)},openOn:function(u){return u=arguments.length?u:this._source._map,u.hasLayer(this)||u.addLayer(this),this},close:function(){return this._map&&this._map.removeLayer(this),this},toggle:function(u){return this._map?this.close():(arguments.length?this._source=u:u=this._source,this._prepareOpen(),this.openOn(u._map)),this},onAdd:function(u){this._zoomAnimated=u._zoomAnimated,this._container||this._initLayout(),u._fadeAnimated&&hr(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),u._fadeAnimated&&hr(this._container,1),this.bringToFront(),this.options.interactive&&(nt(this._container,"leaflet-interactive"),this.addInteractiveTarget(this._container))},onRemove:function(u){u._fadeAnimated?(hr(this._container,0),this._removeTimeout=setTimeout(o(Zt,void 0,this._container),200)):Zt(this._container),this.options.interactive&&(qt(this._container,"leaflet-interactive"),this.removeInteractiveTarget(this._container))},getLatLng:function(){return this._latlng},setLatLng:function(u){return this._latlng=we(u),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(u){return this._content=u,this.update(),this},getElement:function(){return this._container},update:function(){this._map&&(this._container.style.visibility="hidden",this._updateContent(),this._updateLayout(),this._updatePosition(),this._container.style.visibility="",this._adjustPan())},getEvents:function(){var u={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(u.zoomanim=this._animateZoom),u},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&ko(this._container),this},bringToBack:function(){return this._map&&ai(this._container),this},_prepareOpen:function(u){var g=this._source;if(!g._map)return!1;if(g instanceof oi){g=null;var w=this._source._layers;for(var C in w)if(w[C]._map){g=w[C];break}if(!g)return!1;this._source=g}if(!u)if(g.getCenter)u=g.getCenter();else if(g.getLatLng)u=g.getLatLng();else if(g.getBounds)u=g.getBounds().getCenter();else throw new Error("Unable to get source layer LatLng.");return this.setLatLng(u),this._map&&this.update(),!0},_updateContent:function(){if(this._content){var u=this._contentNode,g=typeof this._content=="function"?this._content(this._source||this):this._content;if(typeof g=="string")u.innerHTML=g;else{for(;u.hasChildNodes();)u.removeChild(u.firstChild);u.appendChild(g)}this.fire("contentupdate")}},_updatePosition:function(){if(this._map){var u=this._map.latLngToLayerPoint(this._latlng),g=Y(this.options.offset),w=this._getAnchor();this._zoomAnimated?xn(this._container,u.add(w)):g=g.add(u).add(w);var C=this._containerBottom=-g.y,R=this._containerLeft=-Math.round(this._containerWidth/2)+g.x;this._container.style.bottom=C+"px",this._container.style.left=R+"px"}},_getAnchor:function(){return[0,0]}});kt.include({_initOverlay:function(u,g,w,C){var R=g;return R instanceof u||(R=new u(C).setContent(g)),w&&R.setLatLng(w),R}}),ca.include({_initOverlay:function(u,g,w,C){var R=w;return R instanceof u?(N(R,C),R._source=this):(R=g&&!C?g:new u(C,this),R.setContent(w)),R}});var Cd=Pa.extend({options:{pane:"popupPane",offset:[0,7],maxWidth:300,minWidth:50,maxHeight:null,autoPan:!0,autoPanPaddingTopLeft:null,autoPanPaddingBottomRight:null,autoPanPadding:[5,5],keepInView:!1,closeButton:!0,autoClose:!0,closeOnEscapeKey:!0,className:""},openOn:function(u){return u=arguments.length?u:this._source._map,!u.hasLayer(this)&&u._popup&&u._popup.options.autoClose&&u.removeLayer(u._popup),u._popup=this,Pa.prototype.openOn.call(this,u)},onAdd:function(u){Pa.prototype.onAdd.call(this,u),u.fire("popupopen",{popup:this}),this._source&&(this._source.fire("popupopen",{popup:this},!0),this._source instanceof Di||this._source.on("preclick",Ta))},onRemove:function(u){Pa.prototype.onRemove.call(this,u),u.fire("popupclose",{popup:this}),this._source&&(this._source.fire("popupclose",{popup:this},!0),this._source instanceof Di||this._source.off("preclick",Ta))},getEvents:function(){var u=Pa.prototype.getEvents.call(this);return(this.options.closeOnClick!==void 0?this.options.closeOnClick:this._map.options.closePopupOnClick)&&(u.preclick=this.close),this.options.keepInView&&(u.moveend=this._adjustPan),u},_initLayout:function(){var u="leaflet-popup",g=this._container=it("div",u+" "+(this.options.className||"")+" leaflet-zoom-animated"),w=this._wrapper=it("div",u+"-content-wrapper",g);if(this._contentNode=it("div",u+"-content",w),Fl(g),md(this._contentNode),Xe(g,"contextmenu",Ta),this._tipContainer=it("div",u+"-tip-container",g),this._tip=it("div",u+"-tip",this._tipContainer),this.options.closeButton){var C=this._closeButton=it("a",u+"-close-button",g);C.setAttribute("role","button"),C.setAttribute("aria-label","Close popup"),C.href="#close",C.innerHTML='<span aria-hidden="true">×</span>',Xe(C,"click",function(R){un(R),this.close()},this)}},_updateLayout:function(){var u=this._contentNode,g=u.style;g.width="",g.whiteSpace="nowrap";var w=u.offsetWidth;w=Math.min(w,this.options.maxWidth),w=Math.max(w,this.options.minWidth),g.width=w+1+"px",g.whiteSpace="",g.height="";var C=u.offsetHeight,R=this.options.maxHeight,B="leaflet-popup-scrolled";R&&C>R?(g.height=R+"px",nt(u,B)):qt(u,B),this._containerWidth=this._container.offsetWidth},_animateZoom:function(u){var g=this._map._latLngToNewLayerPoint(this._latlng,u.zoom,u.center),w=this._getAnchor();xn(this._container,g.add(w))},_adjustPan:function(){if(this.options.autoPan){if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning){this._autopanning=!1;return}var u=this._map,g=parseInt(Ml(this._container,"marginBottom"),10)||0,w=this._container.offsetHeight+g,C=this._containerWidth,R=new W(this._containerLeft,-w-this._containerBottom);R._add(ii(this._container));var B=u.layerPointToContainerPoint(R),Z=Y(this.options.autoPanPadding),ae=Y(this.options.autoPanPaddingTopLeft||Z),de=Y(this.options.autoPanPaddingBottomRight||Z),pe=u.getSize(),Pe=0,Ue=0;B.x+C+de.x>pe.x&&(Pe=B.x+C-pe.x+de.x),B.x-Pe-ae.x<0&&(Pe=B.x-ae.x),B.y+w+de.y>pe.y&&(Ue=B.y+w-pe.y+de.y),B.y-Ue-ae.y<0&&(Ue=B.y-ae.y),(Pe||Ue)&&(this.options.keepInView&&(this._autopanning=!0),u.fire("autopanstart").panBy([Pe,Ue]))}},_getAnchor:function(){return Y(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),Mo=function(u,g){return new Cd(u,g)};kt.mergeOptions({closePopupOnClick:!0}),kt.include({openPopup:function(u,g,w){return this._initOverlay(Cd,u,g,w).openOn(this),this},closePopup:function(u){return u=arguments.length?u:this._popup,u&&u.close(),this}}),ca.include({bindPopup:function(u,g){return this._popup=this._initOverlay(Cd,this._popup,u,g),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(u){return this._popup&&(this instanceof oi||(this._popup._source=this),this._popup._prepareOpen(u||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return this._popup?this._popup.isOpen():!1},setPopupContent:function(u){return this._popup&&this._popup.setContent(u),this},getPopup:function(){return this._popup},_openPopup:function(u){if(!(!this._popup||!this._map)){oa(u);var g=u.layer||u.target;if(this._popup._source===g&&!(g instanceof Di)){this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(u.latlng);return}this._popup._source=g,this.openPopup(u.latlng)}},_movePopup:function(u){this._popup.setLatLng(u.latlng)},_onKeyPress:function(u){u.originalEvent.keyCode===13&&this._openPopup(u)}});var Lo=Pa.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(u){Pa.prototype.onAdd.call(this,u),this.setOpacity(this.options.opacity),u.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(u){Pa.prototype.onRemove.call(this,u),u.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var u=Pa.prototype.getEvents.call(this);return this.options.permanent||(u.preclick=this.close),u},_initLayout:function(){var u="leaflet-tooltip",g=u+" "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=it("div",g),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+c(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(u){var g,w,C=this._map,R=this._container,B=C.latLngToContainerPoint(C.getCenter()),Z=C.layerPointToContainerPoint(u),ae=this.options.direction,de=R.offsetWidth,pe=R.offsetHeight,Pe=Y(this.options.offset),Ue=this._getAnchor();ae==="top"?(g=de/2,w=pe):ae==="bottom"?(g=de/2,w=0):ae==="center"?(g=de/2,w=pe/2):ae==="right"?(g=0,w=pe/2):ae==="left"?(g=de,w=pe/2):Z.x<B.x?(ae="right",g=0,w=pe/2):(ae="left",g=de+(Pe.x+Ue.x)*2,w=pe/2),u=u.subtract(Y(g,w,!0)).add(Pe).add(Ue),qt(R,"leaflet-tooltip-right"),qt(R,"leaflet-tooltip-left"),qt(R,"leaflet-tooltip-top"),qt(R,"leaflet-tooltip-bottom"),nt(R,"leaflet-tooltip-"+ae),xn(R,u)},_updatePosition:function(){var u=this._map.latLngToLayerPoint(this._latlng);this._setPosition(u)},setOpacity:function(u){this.options.opacity=u,this._container&&hr(this._container,u)},_animateZoom:function(u){var g=this._map._latLngToNewLayerPoint(this._latlng,u.zoom,u.center);this._setPosition(g)},_getAnchor:function(){return Y(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}}),Ul=function(u,g){return new Lo(u,g)};kt.include({openTooltip:function(u,g,w){return this._initOverlay(Lo,u,g,w).openOn(this),this},closeTooltip:function(u){return u.close(),this}}),ca.include({bindTooltip:function(u,g){return this._tooltip&&this.isTooltipOpen()&&this.unbindTooltip(),this._tooltip=this._initOverlay(Lo,this._tooltip,u,g),this._initTooltipInteractions(),this._tooltip.options.permanent&&this._map&&this._map.hasLayer(this)&&this.openTooltip(),this},unbindTooltip:function(){return this._tooltip&&(this._initTooltipInteractions(!0),this.closeTooltip(),this._tooltip=null),this},_initTooltipInteractions:function(u){if(!(!u&&this._tooltipHandlersAdded)){var g=u?"off":"on",w={remove:this.closeTooltip,move:this._moveTooltip};this._tooltip.options.permanent?w.add=this._openTooltip:(w.mouseover=this._openTooltip,w.mouseout=this.closeTooltip,w.click=this._openTooltip,this._map?this._addFocusListeners():w.add=this._addFocusListeners),this._tooltip.options.sticky&&(w.mousemove=this._moveTooltip),this[g](w),this._tooltipHandlersAdded=!u}},openTooltip:function(u){return this._tooltip&&(this instanceof oi||(this._tooltip._source=this),this._tooltip._prepareOpen(u)&&(this._tooltip.openOn(this._map),this.getElement?this._setAriaDescribedByOnLayer(this):this.eachLayer&&this.eachLayer(this._setAriaDescribedByOnLayer,this))),this},closeTooltip:function(){if(this._tooltip)return this._tooltip.close()},toggleTooltip:function(){return this._tooltip&&this._tooltip.toggle(this),this},isTooltipOpen:function(){return this._tooltip.isOpen()},setTooltipContent:function(u){return this._tooltip&&this._tooltip.setContent(u),this},getTooltip:function(){return this._tooltip},_addFocusListeners:function(){this.getElement?this._addFocusListenersOnLayer(this):this.eachLayer&&this.eachLayer(this._addFocusListenersOnLayer,this)},_addFocusListenersOnLayer:function(u){var g=typeof u.getElement=="function"&&u.getElement();g&&(Xe(g,"focus",function(){this._tooltip._source=u,this.openTooltip()},this),Xe(g,"blur",this.closeTooltip,this))},_setAriaDescribedByOnLayer:function(u){var g=typeof u.getElement=="function"&&u.getElement();g&&g.setAttribute("aria-describedby",this._tooltip._container.id)},_openTooltip:function(u){if(!(!this._tooltip||!this._map)){if(this._map.dragging&&this._map.dragging.moving()&&!this._openOnceFlag){this._openOnceFlag=!0;var g=this;this._map.once("moveend",function(){g._openOnceFlag=!1,g._openTooltip(u)});return}this._tooltip._source=u.layer||u.target,this.openTooltip(this._tooltip.options.sticky?u.latlng:void 0)}},_moveTooltip:function(u){var g=u.latlng,w,C;this._tooltip.options.sticky&&u.originalEvent&&(w=this._map.mouseEventToContainerPoint(u.originalEvent),C=this._map.containerPointToLayerPoint(w),g=this._map.layerPointToLatLng(C)),this._tooltip.setLatLng(g)}});var Td=ks.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:"leaflet-div-icon"},createIcon:function(u){var g=u&&u.tagName==="DIV"?u:document.createElement("div"),w=this.options;if(w.html instanceof Element?(ld(g),g.appendChild(w.html)):g.innerHTML=w.html!==!1?w.html:"",w.bgPos){var C=Y(w.bgPos);g.style.backgroundPosition=-C.x+"px "+-C.y+"px"}return this._setIconStyles(g,"icon"),g},createShadow:function(){return null}});function mg(u){return new Td(u)}ks.Default=Oo;var Fi=ca.extend({options:{tileSize:256,opacity:1,updateWhenIdle:Be.mobile,updateWhenZooming:!0,updateInterval:200,zIndex:1,bounds:null,minZoom:0,maxZoom:void 0,maxNativeZoom:void 0,minNativeZoom:void 0,noWrap:!1,pane:"tilePane",className:"",keepBuffer:2},initialize:function(u){N(this,u)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView()},beforeAdd:function(u){u._addZoomLimit(this)},onRemove:function(u){this._removeAllTiles(),Zt(this._container),u._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(ko(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(ai(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(u){return this.options.opacity=u,this._updateOpacity(),this},setZIndex:function(u){return this.options.zIndex=u,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){if(this._map){this._removeAllTiles();var u=this._clampZoom(this._map.getZoom());u!==this._tileZoom&&(this._tileZoom=u,this._updateLevels()),this._update()}return this},getEvents:function(){var u={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||(this._onMove=h(this._onMoveEnd,this.options.updateInterval,this)),u.move=this._onMove),this._zoomAnimated&&(u.zoomanim=this._animateZoom),u},createTile:function(){return document.createElement("div")},getTileSize:function(){var u=this.options.tileSize;return u instanceof W?u:new W(u,u)},_updateZIndex:function(){this._container&&this.options.zIndex!==void 0&&this.options.zIndex!==null&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(u){for(var g=this.getPane().children,w=-u(-1/0,1/0),C=0,R=g.length,B;C<R;C++)B=g[C].style.zIndex,g[C]!==this._container&&B&&(w=u(w,+B));isFinite(w)&&(this.options.zIndex=w+u(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!Be.ielt9){hr(this._container,this.options.opacity);var u=+new Date,g=!1,w=!1;for(var C in this._tiles){var R=this._tiles[C];if(!(!R.current||!R.loaded)){var B=Math.min(1,(u-R.loaded)/200);hr(R.el,B),B<1?g=!0:(R.active?w=!0:this._onOpaqueTile(R),R.active=!0)}}w&&!this._noPrune&&this._pruneTiles(),g&&(q(this._fadeFrame),this._fadeFrame=te(this._updateOpacity,this))}},_onOpaqueTile:p,_initContainer:function(){this._container||(this._container=it("div","leaflet-layer "+(this.options.className||"")),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var u=this._tileZoom,g=this.options.maxZoom;if(u!==void 0){for(var w in this._levels)w=Number(w),this._levels[w].el.children.length||w===u?(this._levels[w].el.style.zIndex=g-Math.abs(u-w),this._onUpdateLevel(w)):(Zt(this._levels[w].el),this._removeTilesAtZoom(w),this._onRemoveLevel(w),delete this._levels[w]);var C=this._levels[u],R=this._map;return C||(C=this._levels[u]={},C.el=it("div","leaflet-tile-container leaflet-zoom-animated",this._container),C.el.style.zIndex=g,C.origin=R.project(R.unproject(R.getPixelOrigin()),u).round(),C.zoom=u,this._setZoomTransform(C,R.getCenter(),R.getZoom()),p(C.el.offsetWidth),this._onCreateLevel(C)),this._level=C,C}},_onUpdateLevel:p,_onRemoveLevel:p,_onCreateLevel:p,_pruneTiles:function(){if(this._map){var u,g,w=this._map.getZoom();if(w>this.options.maxZoom||w<this.options.minZoom){this._removeAllTiles();return}for(u in this._tiles)g=this._tiles[u],g.retain=g.current;for(u in this._tiles)if(g=this._tiles[u],g.current&&!g.active){var C=g.coords;this._retainParent(C.x,C.y,C.z,C.z-5)||this._retainChildren(C.x,C.y,C.z,C.z+2)}for(u in this._tiles)this._tiles[u].retain||this._removeTile(u)}},_removeTilesAtZoom:function(u){for(var g in this._tiles)this._tiles[g].coords.z===u&&this._removeTile(g)},_removeAllTiles:function(){for(var u in this._tiles)this._removeTile(u)},_invalidateAll:function(){for(var u in this._levels)Zt(this._levels[u].el),this._onRemoveLevel(Number(u)),delete this._levels[u];this._removeAllTiles(),this._tileZoom=void 0},_retainParent:function(u,g,w,C){var R=Math.floor(u/2),B=Math.floor(g/2),Z=w-1,ae=new W(+R,+B);ae.z=+Z;var de=this._tileCoordsToKey(ae),pe=this._tiles[de];return pe&&pe.active?(pe.retain=!0,!0):(pe&&pe.loaded&&(pe.retain=!0),Z>C?this._retainParent(R,B,Z,C):!1)},_retainChildren:function(u,g,w,C){for(var R=2*u;R<2*u+2;R++)for(var B=2*g;B<2*g+2;B++){var Z=new W(R,B);Z.z=w+1;var ae=this._tileCoordsToKey(Z),de=this._tiles[ae];if(de&&de.active){de.retain=!0;continue}else de&&de.loaded&&(de.retain=!0);w+1<C&&this._retainChildren(R,B,w+1,C)}},_resetView:function(u){var g=u&&(u.pinch||u.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),g,g)},_animateZoom:function(u){this._setView(u.center,u.zoom,!0,u.noUpdate)},_clampZoom:function(u){var g=this.options;return g.minNativeZoom!==void 0&&u<g.minNativeZoom?g.minNativeZoom:g.maxNativeZoom!==void 0&&g.maxNativeZoom<u?g.maxNativeZoom:u},_setView:function(u,g,w,C){var R=Math.round(g);this.options.maxZoom!==void 0&&R>this.options.maxZoom||this.options.minZoom!==void 0&&R<this.options.minZoom?R=void 0:R=this._clampZoom(R);var B=this.options.updateWhenZooming&&R!==this._tileZoom;(!C||B)&&(this._tileZoom=R,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),R!==void 0&&this._update(u),w||this._pruneTiles(),this._noPrune=!!w),this._setZoomTransforms(u,g)},_setZoomTransforms:function(u,g){for(var w in this._levels)this._setZoomTransform(this._levels[w],u,g)},_setZoomTransform:function(u,g,w){var C=this._map.getZoomScale(w,u.zoom),R=u.origin.multiplyBy(C).subtract(this._map._getNewPixelOrigin(g,w)).round();Be.any3d?ia(u.el,R,C):xn(u.el,R)},_resetGrid:function(){var u=this._map,g=u.options.crs,w=this._tileSize=this.getTileSize(),C=this._tileZoom,R=this._map.getPixelWorldBounds(this._tileZoom);R&&(this._globalTileRange=this._pxBoundsToTileRange(R)),this._wrapX=g.wrapLng&&!this.options.noWrap&&[Math.floor(u.project([0,g.wrapLng[0]],C).x/w.x),Math.ceil(u.project([0,g.wrapLng[1]],C).x/w.y)],this._wrapY=g.wrapLat&&!this.options.noWrap&&[Math.floor(u.project([g.wrapLat[0],0],C).y/w.x),Math.ceil(u.project([g.wrapLat[1],0],C).y/w.y)]},_onMoveEnd:function(){!this._map||this._map._animatingZoom||this._update()},_getTiledPixelBounds:function(u){var g=this._map,w=g._animatingZoom?Math.max(g._animateToZoom,g.getZoom()):g.getZoom(),C=g.getZoomScale(w,this._tileZoom),R=g.project(u,this._tileZoom).floor(),B=g.getSize().divideBy(C*2);return new V(R.subtract(B),R.add(B))},_update:function(u){var g=this._map;if(g){var w=this._clampZoom(g.getZoom());if(u===void 0&&(u=g.getCenter()),this._tileZoom!==void 0){var C=this._getTiledPixelBounds(u),R=this._pxBoundsToTileRange(C),B=R.getCenter(),Z=[],ae=this.options.keepBuffer,de=new V(R.getBottomLeft().subtract([ae,-ae]),R.getTopRight().add([ae,-ae]));if(!(isFinite(R.min.x)&&isFinite(R.min.y)&&isFinite(R.max.x)&&isFinite(R.max.y)))throw new Error("Attempted to load an infinite number of tiles");for(var pe in this._tiles){var Pe=this._tiles[pe].coords;(Pe.z!==this._tileZoom||!de.contains(new W(Pe.x,Pe.y)))&&(this._tiles[pe].current=!1)}if(Math.abs(w-this._tileZoom)>1){this._setView(u,w);return}for(var Ue=R.min.y;Ue<=R.max.y;Ue++)for(var pt=R.min.x;pt<=R.max.x;pt++){var In=new W(pt,Ue);if(In.z=this._tileZoom,!!this._isValidTile(In)){var Tn=this._tiles[this._tileCoordsToKey(In)];Tn?Tn.current=!0:Z.push(In)}}if(Z.sort(function(mr,$o){return mr.distanceTo(B)-$o.distanceTo(B)}),Z.length!==0){this._loading||(this._loading=!0,this.fire("loading"));var Pr=document.createDocumentFragment();for(pt=0;pt<Z.length;pt++)this._addTile(Z[pt],Pr);this._level.el.appendChild(Pr)}}}},_isValidTile:function(u){var g=this._map.options.crs;if(!g.infinite){var w=this._globalTileRange;if(!g.wrapLng&&(u.x<w.min.x||u.x>w.max.x)||!g.wrapLat&&(u.y<w.min.y||u.y>w.max.y))return!1}if(!this.options.bounds)return!0;var C=this._tileCoordsToBounds(u);return ge(this.options.bounds).overlaps(C)},_keyToBounds:function(u){return this._tileCoordsToBounds(this._keyToTileCoords(u))},_tileCoordsToNwSe:function(u){var g=this._map,w=this.getTileSize(),C=u.scaleBy(w),R=C.add(w),B=g.unproject(C,u.z),Z=g.unproject(R,u.z);return[B,Z]},_tileCoordsToBounds:function(u){var g=this._tileCoordsToNwSe(u),w=new be(g[0],g[1]);return this.options.noWrap||(w=this._map.wrapLatLngBounds(w)),w},_tileCoordsToKey:function(u){return u.x+":"+u.y+":"+u.z},_keyToTileCoords:function(u){var g=u.split(":"),w=new W(+g[0],+g[1]);return w.z=+g[2],w},_removeTile:function(u){var g=this._tiles[u];g&&(Zt(g.el),delete this._tiles[u],this.fire("tileunload",{tile:g.el,coords:this._keyToTileCoords(u)}))},_initTile:function(u){nt(u,"leaflet-tile");var g=this.getTileSize();u.style.width=g.x+"px",u.style.height=g.y+"px",u.onselectstart=p,u.onmousemove=p,Be.ielt9&&this.options.opacity<1&&hr(u,this.options.opacity)},_addTile:function(u,g){var w=this._getTilePos(u),C=this._tileCoordsToKey(u),R=this.createTile(this._wrapCoords(u),o(this._tileReady,this,u));this._initTile(R),this.createTile.length<2&&te(o(this._tileReady,this,u,null,R)),xn(R,w),this._tiles[C]={el:R,coords:u,current:!0},g.appendChild(R),this.fire("tileloadstart",{tile:R,coords:u})},_tileReady:function(u,g,w){g&&this.fire("tileerror",{error:g,tile:w,coords:u});var C=this._tileCoordsToKey(u);w=this._tiles[C],w&&(w.loaded=+new Date,this._map._fadeAnimated?(hr(w.el,0),q(this._fadeFrame),this._fadeFrame=te(this._updateOpacity,this)):(w.active=!0,this._pruneTiles()),g||(nt(w.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:w.el,coords:u})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),Be.ielt9||!this._map._fadeAnimated?te(this._pruneTiles,this):setTimeout(o(this._pruneTiles,this),250)))},_getTilePos:function(u){return u.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(u){var g=new W(this._wrapX?m(u.x,this._wrapX):u.x,this._wrapY?m(u.y,this._wrapY):u.y);return g.z=u.z,g},_pxBoundsToTileRange:function(u){var g=this.getTileSize();return new V(u.min.unscaleBy(g).floor(),u.max.unscaleBy(g).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var u in this._tiles)if(!this._tiles[u].loaded)return!1;return!0}});function Do(u){return new Fi(u)}var zi=Fi.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(u,g){this._url=u,g=N(this,g),g.detectRetina&&Be.retina&&g.maxZoom>0?(g.tileSize=Math.floor(g.tileSize/2),g.zoomReverse?(g.zoomOffset--,g.minZoom=Math.min(g.maxZoom,g.minZoom+1)):(g.zoomOffset++,g.maxZoom=Math.max(g.minZoom,g.maxZoom-1)),g.minZoom=Math.max(0,g.minZoom)):g.zoomReverse?g.minZoom=Math.min(g.maxZoom,g.minZoom):g.maxZoom=Math.max(g.minZoom,g.maxZoom),typeof g.subdomains=="string"&&(g.subdomains=g.subdomains.split("")),this.on("tileunload",this._onTileRemove)},setUrl:function(u,g){return this._url===u&&g===void 0&&(g=!0),this._url=u,g||this.redraw(),this},createTile:function(u,g){var w=document.createElement("img");return Xe(w,"load",o(this._tileOnLoad,this,g,w)),Xe(w,"error",o(this._tileOnError,this,g,w)),(this.options.crossOrigin||this.options.crossOrigin==="")&&(w.crossOrigin=this.options.crossOrigin===!0?"":this.options.crossOrigin),typeof this.options.referrerPolicy=="string"&&(w.referrerPolicy=this.options.referrerPolicy),w.alt="",w.src=this.getTileUrl(u),w},getTileUrl:function(u){var g={r:Be.retina?"@2x":"",s:this._getSubdomain(u),x:u.x,y:u.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var w=this._globalTileRange.max.y-u.y;this.options.tms&&(g.y=w),g["-y"]=w}return A(this._url,i(g,this.options))},_tileOnLoad:function(u,g){Be.ielt9?setTimeout(o(u,this,null,g),0):u(null,g)},_tileOnError:function(u,g,w){var C=this.options.errorTileUrl;C&&g.getAttribute("src")!==C&&(g.src=C),u(w,g)},_onTileRemove:function(u){u.tile.onload=null},_getZoomForUrl:function(){var u=this._tileZoom,g=this.options.maxZoom,w=this.options.zoomReverse,C=this.options.zoomOffset;return w&&(u=g-u),u+C},_getSubdomain:function(u){var g=Math.abs(u.x+u.y)%this.options.subdomains.length;return this.options.subdomains[g]},_abortLoading:function(){var u,g;for(u in this._tiles)if(this._tiles[u].coords.z!==this._tileZoom&&(g=this._tiles[u].el,g.onload=p,g.onerror=p,!g.complete)){g.src=O;var w=this._tiles[u].coords;Zt(g),delete this._tiles[u],this.fire("tileabort",{tile:g,coords:w})}},_removeTile:function(u){var g=this._tiles[u];if(g)return g.el.setAttribute("src",O),Fi.prototype._removeTile.call(this,u)},_tileReady:function(u,g,w){if(!(!this._map||w&&w.getAttribute("src")===O))return Fi.prototype._tileReady.call(this,u,g,w)}});function cf(u,g){return new zi(u,g)}var ql=zi.extend({defaultWmsParams:{service:"WMS",request:"GetMap",layers:"",styles:"",format:"image/jpeg",transparent:!1,version:"1.1.1"},options:{crs:null,uppercase:!1},initialize:function(u,g){this._url=u;var w=i({},this.defaultWmsParams);for(var C in g)C in this.options||(w[C]=g[C]);g=N(this,g);var R=g.detectRetina&&Be.retina?2:1,B=this.getTileSize();w.width=B.x*R,w.height=B.y*R,this.wmsParams=w},onAdd:function(u){this._crs=this.options.crs||u.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var g=this._wmsVersion>=1.3?"crs":"srs";this.wmsParams[g]=this._crs.code,zi.prototype.onAdd.call(this,u)},getTileUrl:function(u){var g=this._tileCoordsToNwSe(u),w=this._crs,C=re(w.project(g[0]),w.project(g[1])),R=C.min,B=C.max,Z=(this._wmsVersion>=1.3&&this._crs===og?[R.y,R.x,B.y,B.x]:[R.x,R.y,B.x,B.y]).join(","),ae=zi.prototype.getTileUrl.call(this,u);return ae+_(this.wmsParams,ae,this.options.uppercase)+(this.options.uppercase?"&BBOX=":"&bbox=")+Z},setParams:function(u,g){return i(this.wmsParams,u),g||this.redraw(),this}});function pg(u,g){return new ql(u,g)}zi.WMS=ql,cf.wms=pg;var Ea=ca.extend({options:{padding:.1},initialize:function(u){N(this,u),c(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),nt(this._container,"leaflet-zoom-animated")),this.getPane().appendChild(this._container),this._update(),this.on("update",this._updatePaths,this)},onRemove:function(){this.off("update",this._updatePaths,this),this._destroyContainer()},getEvents:function(){var u={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(u.zoomanim=this._onAnimZoom),u},_onAnimZoom:function(u){this._updateTransform(u.center,u.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(u,g){var w=this._map.getZoomScale(g,this._zoom),C=this._map.getSize().multiplyBy(.5+this.options.padding),R=this._map.project(this._center,g),B=C.multiplyBy(-w).add(R).subtract(this._map._getNewPixelOrigin(u,g));Be.any3d?ia(this._container,B,w):xn(this._container,B)},_reset:function(){this._update(),this._updateTransform(this._center,this._zoom);for(var u in this._layers)this._layers[u]._reset()},_onZoomEnd:function(){for(var u in this._layers)this._layers[u]._project()},_updatePaths:function(){for(var u in this._layers)this._layers[u]._update()},_update:function(){var u=this.options.padding,g=this._map.getSize(),w=this._map.containerPointToLayerPoint(g.multiplyBy(-u)).round();this._bounds=new V(w,w.add(g.multiplyBy(1+u*2)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),df=Ea.extend({options:{tolerance:0},getEvents:function(){var u=Ea.prototype.getEvents.call(this);return u.viewprereset=this._onViewPreReset,u},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){Ea.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var u=this._container=document.createElement("canvas");Xe(u,"mousemove",this._onMouseMove,this),Xe(u,"click dblclick mousedown mouseup contextmenu",this._onClick,this),Xe(u,"mouseout",this._handleMouseOut,this),u._leaflet_disable_events=!0,this._ctx=u.getContext("2d")},_destroyContainer:function(){q(this._redrawRequest),delete this._ctx,Zt(this._container),zt(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){var u;this._redrawBounds=null;for(var g in this._layers)u=this._layers[g],u._update();this._redraw()}},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){Ea.prototype._update.call(this);var u=this._bounds,g=this._container,w=u.getSize(),C=Be.retina?2:1;xn(g,u.min),g.width=C*w.x,g.height=C*w.y,g.style.width=w.x+"px",g.style.height=w.y+"px",Be.retina&&this._ctx.scale(2,2),this._ctx.translate(-u.min.x,-u.min.y),this.fire("update")}},_reset:function(){Ea.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(u){this._updateDashArray(u),this._layers[c(u)]=u;var g=u._order={layer:u,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=g),this._drawLast=g,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(u){this._requestRedraw(u)},_removePath:function(u){var g=u._order,w=g.next,C=g.prev;w?w.prev=C:this._drawLast=C,C?C.next=w:this._drawFirst=w,delete u._order,delete this._layers[c(u)],this._requestRedraw(u)},_updatePath:function(u){this._extendRedrawBounds(u),u._project(),u._update(),this._requestRedraw(u)},_updateStyle:function(u){this._updateDashArray(u),this._requestRedraw(u)},_updateDashArray:function(u){if(typeof u.options.dashArray=="string"){var g=u.options.dashArray.split(/[, ]+/),w=[],C,R;for(R=0;R<g.length;R++){if(C=Number(g[R]),isNaN(C))return;w.push(C)}u.options._dashArray=w}else u.options._dashArray=u.options.dashArray},_requestRedraw:function(u){this._map&&(this._extendRedrawBounds(u),this._redrawRequest=this._redrawRequest||te(this._redraw,this))},_extendRedrawBounds:function(u){if(u._pxBounds){var g=(u.options.weight||0)+1;this._redrawBounds=this._redrawBounds||new V,this._redrawBounds.extend(u._pxBounds.min.subtract([g,g])),this._redrawBounds.extend(u._pxBounds.max.add([g,g]))}},_redraw:function(){this._redrawRequest=null,this._redrawBounds&&(this._redrawBounds.min._floor(),this._redrawBounds.max._ceil()),this._clear(),this._draw(),this._redrawBounds=null},_clear:function(){var u=this._redrawBounds;if(u){var g=u.getSize();this._ctx.clearRect(u.min.x,u.min.y,g.x,g.y)}else this._ctx.save(),this._ctx.setTransform(1,0,0,1,0,0),this._ctx.clearRect(0,0,this._container.width,this._container.height),this._ctx.restore()},_draw:function(){var u,g=this._redrawBounds;if(this._ctx.save(),g){var w=g.getSize();this._ctx.beginPath(),this._ctx.rect(g.min.x,g.min.y,w.x,w.y),this._ctx.clip()}this._drawing=!0;for(var C=this._drawFirst;C;C=C.next)u=C.layer,(!g||u._pxBounds&&u._pxBounds.intersects(g))&&u._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(u,g){if(this._drawing){var w,C,R,B,Z=u._parts,ae=Z.length,de=this._ctx;if(ae){for(de.beginPath(),w=0;w<ae;w++){for(C=0,R=Z[w].length;C<R;C++)B=Z[w][C],de[C?"lineTo":"moveTo"](B.x,B.y);g&&de.closePath()}this._fillStroke(de,u)}}},_updateCircle:function(u){if(!(!this._drawing||u._empty())){var g=u._point,w=this._ctx,C=Math.max(Math.round(u._radius),1),R=(Math.max(Math.round(u._radiusY),1)||C)/C;R!==1&&(w.save(),w.scale(1,R)),w.beginPath(),w.arc(g.x,g.y/R,C,0,Math.PI*2,!1),R!==1&&w.restore(),this._fillStroke(w,u)}},_fillStroke:function(u,g){var w=g.options;w.fill&&(u.globalAlpha=w.fillOpacity,u.fillStyle=w.fillColor||w.color,u.fill(w.fillRule||"evenodd")),w.stroke&&w.weight!==0&&(u.setLineDash&&u.setLineDash(g.options&&g.options._dashArray||[]),u.globalAlpha=w.opacity,u.lineWidth=w.weight,u.strokeStyle=w.color,u.lineCap=w.lineCap,u.lineJoin=w.lineJoin,u.stroke())},_onClick:function(u){for(var g=this._map.mouseEventToLayerPoint(u),w,C,R=this._drawFirst;R;R=R.next)w=R.layer,w.options.interactive&&w._containsPoint(g)&&(!(u.type==="click"||u.type==="preclick")||!this._map._draggableMoved(w))&&(C=w);this._fireEvent(C?[C]:!1,u)},_onMouseMove:function(u){if(!(!this._map||this._map.dragging.moving()||this._map._animatingZoom)){var g=this._map.mouseEventToLayerPoint(u);this._handleMouseHover(u,g)}},_handleMouseOut:function(u){var g=this._hoveredLayer;g&&(qt(this._container,"leaflet-interactive"),this._fireEvent([g],u,"mouseout"),this._hoveredLayer=null,this._mouseHoverThrottled=!1)},_handleMouseHover:function(u,g){if(!this._mouseHoverThrottled){for(var w,C,R=this._drawFirst;R;R=R.next)w=R.layer,w.options.interactive&&w._containsPoint(g)&&(C=w);C!==this._hoveredLayer&&(this._handleMouseOut(u),C&&(nt(this._container,"leaflet-interactive"),this._fireEvent([C],u,"mouseover"),this._hoveredLayer=C)),this._fireEvent(this._hoveredLayer?[this._hoveredLayer]:!1,u),this._mouseHoverThrottled=!0,setTimeout(o(function(){this._mouseHoverThrottled=!1},this),32)}},_fireEvent:function(u,g,w){this._map._fireDOMEvent(g,w||g.type,u)},_bringToFront:function(u){var g=u._order;if(g){var w=g.next,C=g.prev;if(w)w.prev=C;else return;C?C.next=w:w&&(this._drawFirst=w),g.prev=this._drawLast,this._drawLast.next=g,g.next=null,this._drawLast=g,this._requestRedraw(u)}},_bringToBack:function(u){var g=u._order;if(g){var w=g.next,C=g.prev;if(C)C.next=w;else return;w?w.prev=C:C&&(this._drawLast=C),g.prev=null,g.next=this._drawFirst,this._drawFirst.prev=g,this._drawFirst=g,this._requestRedraw(u)}}});function uf(u){return Be.canvas?new df(u):null}var Bo=(function(){try{return document.namespaces.add("lvml","urn:schemas-microsoft-com:vml"),function(u){return document.createElement("<lvml:"+u+' class="lvml">')}}catch{}return function(u){return document.createElement("<"+u+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}})(),gg={_initContainer:function(){this._container=it("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Ea.prototype._update.call(this),this.fire("update"))},_initPath:function(u){var g=u._container=Bo("shape");nt(g,"leaflet-vml-shape "+(this.options.className||"")),g.coordsize="1 1",u._path=Bo("path"),g.appendChild(u._path),this._updateStyle(u),this._layers[c(u)]=u},_addPath:function(u){var g=u._container;this._container.appendChild(g),u.options.interactive&&u.addInteractiveTarget(g)},_removePath:function(u){var g=u._container;Zt(g),u.removeInteractiveTarget(g),delete this._layers[c(u)]},_updateStyle:function(u){var g=u._stroke,w=u._fill,C=u.options,R=u._container;R.stroked=!!C.stroke,R.filled=!!C.fill,C.stroke?(g||(g=u._stroke=Bo("stroke")),R.appendChild(g),g.weight=C.weight+"px",g.color=C.color,g.opacity=C.opacity,C.dashArray?g.dashStyle=P(C.dashArray)?C.dashArray.join(" "):C.dashArray.replace(/( *, *)/g," "):g.dashStyle="",g.endcap=C.lineCap.replace("butt","flat"),g.joinstyle=C.lineJoin):g&&(R.removeChild(g),u._stroke=null),C.fill?(w||(w=u._fill=Bo("fill")),R.appendChild(w),w.color=C.fillColor||C.color,w.opacity=C.fillOpacity):w&&(R.removeChild(w),u._fill=null)},_updateCircle:function(u){var g=u._point.round(),w=Math.round(u._radius),C=Math.round(u._radiusY||w);this._setPath(u,u._empty()?"M0 0":"AL "+g.x+","+g.y+" "+w+","+C+" 0,"+65535*360)},_setPath:function(u,g){u._path.v=g},_bringToFront:function(u){ko(u._container)},_bringToBack:function(u){ai(u._container)}},ua=Be.vml?Bo:Oe,_s=Ea.extend({_initContainer:function(){this._container=ua("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=ua("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){Zt(this._container),zt(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){Ea.prototype._update.call(this);var u=this._bounds,g=u.getSize(),w=this._container;(!this._svgSize||!this._svgSize.equals(g))&&(this._svgSize=g,w.setAttribute("width",g.x),w.setAttribute("height",g.y)),xn(w,u.min),w.setAttribute("viewBox",[u.min.x,u.min.y,g.x,g.y].join(" ")),this.fire("update")}},_initPath:function(u){var g=u._path=ua("path");u.options.className&&nt(g,u.options.className),u.options.interactive&&nt(g,"leaflet-interactive"),this._updateStyle(u),this._layers[c(u)]=u},_addPath:function(u){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(u._path),u.addInteractiveTarget(u._path)},_removePath:function(u){Zt(u._path),u.removeInteractiveTarget(u._path),delete this._layers[c(u)]},_updatePath:function(u){u._project(),u._update()},_updateStyle:function(u){var g=u._path,w=u.options;g&&(w.stroke?(g.setAttribute("stroke",w.color),g.setAttribute("stroke-opacity",w.opacity),g.setAttribute("stroke-width",w.weight),g.setAttribute("stroke-linecap",w.lineCap),g.setAttribute("stroke-linejoin",w.lineJoin),w.dashArray?g.setAttribute("stroke-dasharray",w.dashArray):g.removeAttribute("stroke-dasharray"),w.dashOffset?g.setAttribute("stroke-dashoffset",w.dashOffset):g.removeAttribute("stroke-dashoffset")):g.setAttribute("stroke","none"),w.fill?(g.setAttribute("fill",w.fillColor||w.color),g.setAttribute("fill-opacity",w.fillOpacity),g.setAttribute("fill-rule",w.fillRule||"evenodd")):g.setAttribute("fill","none"))},_updatePoly:function(u,g){this._setPath(u,cn(u._parts,g))},_updateCircle:function(u){var g=u._point,w=Math.max(Math.round(u._radius),1),C=Math.max(Math.round(u._radiusY),1)||w,R="a"+w+","+C+" 0 1,0 ",B=u._empty()?"M0 0":"M"+(g.x-w)+","+g.y+R+w*2+",0 "+R+-w*2+",0 ";this._setPath(u,B)},_setPath:function(u,g){u._path.setAttribute("d",g)},_bringToFront:function(u){ko(u._path)},_bringToBack:function(u){ai(u._path)}});Be.vml&&_s.include(gg);function Ad(u){return Be.svg||Be.vml?new _s(u):null}kt.include({getRenderer:function(u){var g=u.options.renderer||this._getPaneRenderer(u.options.pane)||this.options.renderer||this._renderer;return g||(g=this._renderer=this._createRenderer()),this.hasLayer(g)||this.addLayer(g),g},_getPaneRenderer:function(u){if(u==="overlayPane"||u===void 0)return!1;var g=this._paneRenderers[u];return g===void 0&&(g=this._createRenderer({pane:u}),this._paneRenderers[u]=g),g},_createRenderer:function(u){return this.options.preferCanvas&&uf(u)||Ad(u)}});var xg=ci.extend({initialize:function(u,g){ci.prototype.initialize.call(this,this._boundsToLatLngs(u),g)},setBounds:function(u){return this.setLatLngs(this._boundsToLatLngs(u))},_boundsToLatLngs:function(u){return u=ge(u),[u.getSouthWest(),u.getNorthWest(),u.getNorthEast(),u.getSouthEast()]}});function db(u,g){return new xg(u,g)}_s.create=ua,_s.pointsToPath=cn,Aa.geometryToLayer=Ro,Aa.coordsToLatLng=Nd,Aa.coordsToLatLngs=Vl,Aa.latLngToCoords=kd,Aa.latLngsToCoords=_d,Aa.getFeature=Io,Aa.asFeature=Sd,kt.mergeOptions({boxZoom:!0});var Fo=Wr.extend({initialize:function(u){this._map=u,this._container=u._container,this._pane=u._panes.overlayPane,this._resetStateTimeout=0,u.on("unload",this._destroy,this)},addHooks:function(){Xe(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){zt(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){Zt(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){this._resetStateTimeout!==0&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(u){if(!u.shiftKey||u.which!==1&&u.button!==1)return!1;this._clearDeferredResetState(),this._resetState(),Ct(),ud(),this._startPoint=this._map.mouseEventToContainerPoint(u),Xe(document,{contextmenu:oa,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(u){this._moved||(this._moved=!0,this._box=it("div","leaflet-zoom-box",this._container),nt(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(u);var g=new V(this._point,this._startPoint),w=g.getSize();xn(this._box,g.min),this._box.style.width=w.x+"px",this._box.style.height=w.y+"px"},_finish:function(){this._moved&&(Zt(this._box),qt(this._container,"leaflet-crosshair")),Co(),hd(),zt(document,{contextmenu:oa,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(u){if(!(u.which!==1&&u.button!==1)&&(this._finish(),!!this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(o(this._resetState,this),0);var g=new be(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(g).fire("boxzoomend",{boxZoomBounds:g})}},_onKeyDown:function(u){u.keyCode===27&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});kt.addInitHook("addHandler","boxZoom",Fo),kt.mergeOptions({doubleClickZoom:!0});var yg=Wr.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(u){var g=this._map,w=g.getZoom(),C=g.options.zoomDelta,R=u.originalEvent.shiftKey?w-C:w+C;g.options.doubleClickZoom==="center"?g.setZoom(R):g.setZoomAround(u.containerPoint,R)}});kt.addInitHook("addHandler","doubleClickZoom",yg),kt.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var hf=Wr.extend({addHooks:function(){if(!this._draggable){var u=this._map;this._draggable=new la(u._mapPane,u._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),u.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),u.on("zoomend",this._onZoomEnd,this),u.whenReady(this._onZoomEnd,this))}nt(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){qt(this._map._container,"leaflet-grab"),qt(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var u=this._map;if(u._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var g=ge(this._map.options.maxBounds);this._offsetLimit=re(this._map.latLngToContainerPoint(g.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(g.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;u.fire("movestart").fire("dragstart"),u.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(u){if(this._map.options.inertia){var g=this._lastTime=+new Date,w=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(w),this._times.push(g),this._prunePositions(g)}this._map.fire("move",u).fire("drag",u)},_prunePositions:function(u){for(;this._positions.length>1&&u-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var u=this._map.getSize().divideBy(2),g=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=g.subtract(u).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(u,g){return u-(u-g)*this._viscosity},_onPreDragLimit:function(){if(!(!this._viscosity||!this._offsetLimit)){var u=this._draggable._newPos.subtract(this._draggable._startPos),g=this._offsetLimit;u.x<g.min.x&&(u.x=this._viscousLimit(u.x,g.min.x)),u.y<g.min.y&&(u.y=this._viscousLimit(u.y,g.min.y)),u.x>g.max.x&&(u.x=this._viscousLimit(u.x,g.max.x)),u.y>g.max.y&&(u.y=this._viscousLimit(u.y,g.max.y)),this._draggable._newPos=this._draggable._startPos.add(u)}},_onPreDragWrap:function(){var u=this._worldWidth,g=Math.round(u/2),w=this._initialWorldOffset,C=this._draggable._newPos.x,R=(C-g+w)%u+g-w,B=(C+g+w)%u-g-w,Z=Math.abs(R+w)<Math.abs(B+w)?R:B;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=Z},_onDragEnd:function(u){var g=this._map,w=g.options,C=!w.inertia||u.noInertia||this._times.length<2;if(g.fire("dragend",u),C)g.fire("moveend");else{this._prunePositions(+new Date);var R=this._lastPos.subtract(this._positions[0]),B=(this._lastTime-this._times[0])/1e3,Z=w.easeLinearity,ae=R.multiplyBy(Z/B),de=ae.distanceTo([0,0]),pe=Math.min(w.inertiaMaxSpeed,de),Pe=ae.multiplyBy(pe/de),Ue=pe/(w.inertiaDeceleration*Z),pt=Pe.multiplyBy(-Ue/2).round();!pt.x&&!pt.y?g.fire("moveend"):(pt=g._limitOffset(pt,g.options.maxBounds),te(function(){g.panBy(pt,{duration:Ue,easeLinearity:Z,noMoveStart:!0,animate:!0})}))}}});kt.addInitHook("addHandler","dragging",hf),kt.mergeOptions({keyboard:!0,keyboardPanDelta:80});var ff=Wr.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(u){this._map=u,this._setPanDelta(u.options.keyboardPanDelta),this._setZoomDelta(u.options.zoomDelta)},addHooks:function(){var u=this._map._container;u.tabIndex<=0&&(u.tabIndex="0"),Xe(u,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),zt(this._map._container,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.off({focus:this._addHooks,blur:this._removeHooks},this)},_onMouseDown:function(){if(!this._focused){var u=document.body,g=document.documentElement,w=u.scrollTop||g.scrollTop,C=u.scrollLeft||g.scrollLeft;this._map._container.focus(),window.scrollTo(C,w)}},_onFocus:function(){this._focused=!0,this._map.fire("focus")},_onBlur:function(){this._focused=!1,this._map.fire("blur")},_setPanDelta:function(u){var g=this._panKeys={},w=this.keyCodes,C,R;for(C=0,R=w.left.length;C<R;C++)g[w.left[C]]=[-1*u,0];for(C=0,R=w.right.length;C<R;C++)g[w.right[C]]=[u,0];for(C=0,R=w.down.length;C<R;C++)g[w.down[C]]=[0,u];for(C=0,R=w.up.length;C<R;C++)g[w.up[C]]=[0,-1*u]},_setZoomDelta:function(u){var g=this._zoomKeys={},w=this.keyCodes,C,R;for(C=0,R=w.zoomIn.length;C<R;C++)g[w.zoomIn[C]]=u;for(C=0,R=w.zoomOut.length;C<R;C++)g[w.zoomOut[C]]=-u},_addHooks:function(){Xe(document,"keydown",this._onKeyDown,this)},_removeHooks:function(){zt(document,"keydown",this._onKeyDown,this)},_onKeyDown:function(u){if(!(u.altKey||u.ctrlKey||u.metaKey)){var g=u.keyCode,w=this._map,C;if(g in this._panKeys){if(!w._panAnim||!w._panAnim._inProgress)if(C=this._panKeys[g],u.shiftKey&&(C=Y(C).multiplyBy(3)),w.options.maxBounds&&(C=w._limitOffset(Y(C),w.options.maxBounds)),w.options.worldCopyJump){var R=w.wrapLatLng(w.unproject(w.project(w.getCenter()).add(C)));w.panTo(R)}else w.panBy(C)}else if(g in this._zoomKeys)w.setZoom(w.getZoom()+(u.shiftKey?3:1)*this._zoomKeys[g]);else if(g===27&&w._popup&&w._popup.options.closeOnEscapeKey)w.closePopup();else return;oa(u)}}});kt.addInitHook("addHandler","keyboard",ff),kt.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60});var $t=Wr.extend({addHooks:function(){Xe(this._map._container,"wheel",this._onWheelScroll,this),this._delta=0},removeHooks:function(){zt(this._map._container,"wheel",this._onWheelScroll,this)},_onWheelScroll:function(u){var g=Qp(u),w=this._map.options.wheelDebounceTime;this._delta+=g,this._lastMousePos=this._map.mouseEventToContainerPoint(u),this._startTime||(this._startTime=+new Date);var C=Math.max(w-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(o(this._performZoom,this),C),oa(u)},_performZoom:function(){var u=this._map,g=u.getZoom(),w=this._map.options.zoomSnap||0;u._stop();var C=this._delta/(this._map.options.wheelPxPerZoomLevel*4),R=4*Math.log(2/(1+Math.exp(-Math.abs(C))))/Math.LN2,B=w?Math.ceil(R/w)*w:R,Z=u._limitZoom(g+(this._delta>0?B:-B))-g;this._delta=0,this._startTime=null,Z&&(u.options.scrollWheelZoom==="center"?u.setZoom(g+Z):u.setZoomAround(this._lastMousePos,g+Z))}});kt.addInitHook("addHandler","scrollWheelZoom",$t);var mf=600;kt.mergeOptions({tapHold:Be.touchNative&&Be.safari&&Be.mobile,tapTolerance:15});var Gl=Wr.extend({addHooks:function(){Xe(this._map._container,"touchstart",this._onDown,this)},removeHooks:function(){zt(this._map._container,"touchstart",this._onDown,this)},_onDown:function(u){if(clearTimeout(this._holdTimeout),u.touches.length===1){var g=u.touches[0];this._startPos=this._newPos=new W(g.clientX,g.clientY),this._holdTimeout=setTimeout(o(function(){this._cancel(),this._isTapValid()&&(Xe(document,"touchend",un),Xe(document,"touchend touchcancel",this._cancelClickPrevent),this._simulateEvent("contextmenu",g))},this),mf),Xe(document,"touchend touchcancel contextmenu",this._cancel,this),Xe(document,"touchmove",this._onMove,this)}},_cancelClickPrevent:function u(){zt(document,"touchend",un),zt(document,"touchend touchcancel",u)},_cancel:function(){clearTimeout(this._holdTimeout),zt(document,"touchend touchcancel contextmenu",this._cancel,this),zt(document,"touchmove",this._onMove,this)},_onMove:function(u){var g=u.touches[0];this._newPos=new W(g.clientX,g.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(u,g){var w=new MouseEvent(u,{bubbles:!0,cancelable:!0,view:window,screenX:g.screenX,screenY:g.screenY,clientX:g.clientX,clientY:g.clientY});w._simulated=!0,g.target.dispatchEvent(w)}});kt.addInitHook("addHandler","tapHold",Gl),kt.mergeOptions({touchZoom:Be.touch,bounceAtZoomLimits:!0});var zo=Wr.extend({addHooks:function(){nt(this._map._container,"leaflet-touch-zoom"),Xe(this._map._container,"touchstart",this._onTouchStart,this)},removeHooks:function(){qt(this._map._container,"leaflet-touch-zoom"),zt(this._map._container,"touchstart",this._onTouchStart,this)},_onTouchStart:function(u){var g=this._map;if(!(!u.touches||u.touches.length!==2||g._animatingZoom||this._zooming)){var w=g.mouseEventToContainerPoint(u.touches[0]),C=g.mouseEventToContainerPoint(u.touches[1]);this._centerPoint=g.getSize()._divideBy(2),this._startLatLng=g.containerPointToLatLng(this._centerPoint),g.options.touchZoom!=="center"&&(this._pinchStartLatLng=g.containerPointToLatLng(w.add(C)._divideBy(2))),this._startDist=w.distanceTo(C),this._startZoom=g.getZoom(),this._moved=!1,this._zooming=!0,g._stop(),Xe(document,"touchmove",this._onTouchMove,this),Xe(document,"touchend touchcancel",this._onTouchEnd,this),un(u)}},_onTouchMove:function(u){if(!(!u.touches||u.touches.length!==2||!this._zooming)){var g=this._map,w=g.mouseEventToContainerPoint(u.touches[0]),C=g.mouseEventToContainerPoint(u.touches[1]),R=w.distanceTo(C)/this._startDist;if(this._zoom=g.getScaleZoom(R,this._startZoom),!g.options.bounceAtZoomLimits&&(this._zoom<g.getMinZoom()&&R<1||this._zoom>g.getMaxZoom()&&R>1)&&(this._zoom=g._limitZoom(this._zoom)),g.options.touchZoom==="center"){if(this._center=this._startLatLng,R===1)return}else{var B=w._add(C)._divideBy(2)._subtract(this._centerPoint);if(R===1&&B.x===0&&B.y===0)return;this._center=g.unproject(g.project(this._pinchStartLatLng,this._zoom).subtract(B),this._zoom)}this._moved||(g._moveStart(!0,!1),this._moved=!0),q(this._animRequest);var Z=o(g._move,g,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=te(Z,this,!0),un(u)}},_onTouchEnd:function(){if(!this._moved||!this._zooming){this._zooming=!1;return}this._zooming=!1,q(this._animRequest),zt(document,"touchmove",this._onTouchMove,this),zt(document,"touchend touchcancel",this._onTouchEnd,this),this._map.options.zoomAnimation?this._map._animateZoom(this._center,this._map._limitZoom(this._zoom),!0,this._map.options.zoomSnap):this._map._resetView(this._center,this._map._limitZoom(this._zoom))}});kt.addInitHook("addHandler","touchZoom",zo),kt.BoxZoom=Fo,kt.DoubleClickZoom=yg,kt.Drag=hf,kt.Keyboard=ff,kt.ScrollWheelZoom=$t,kt.TapHold=Gl,kt.TouchZoom=zo,n.Bounds=V,n.Browser=Be,n.CRS=Fe,n.Canvas=df,n.Circle=wd,n.CircleMarker=bd,n.Class=ne,n.Control=Tr,n.DivIcon=Td,n.DivOverlay=Pa,n.DomEvent=pd,n.DomUtil=Bl,n.Draggable=la,n.Evented=Q,n.FeatureGroup=oi,n.GeoJSON=Aa,n.GridLayer=Fi,n.Handler=Wr,n.Icon=ks,n.ImageOverlay=Bi,n.LatLng=Ne,n.LatLngBounds=be,n.Layer=ca,n.LayerGroup=Li,n.LineUtil=sg,n.Map=kt,n.Marker=li,n.Mixin=Yh,n.Path=Di,n.Point=W,n.PolyUtil=Q0,n.Polygon=ci,n.Polyline=Ar,n.Popup=Cd,n.PosAnimation=gd,n.Projection=ab,n.Rectangle=xg,n.Renderer=Ea,n.SVG=_s,n.SVGOverlay=of,n.TileLayer=zi,n.Tooltip=Lo,n.Transformation=Te,n.Util=he,n.VideoOverlay=sf,n.bind=o,n.bounds=re,n.canvas=uf,n.circle=Wl,n.circleMarker=dg,n.control=Mi,n.divIcon=mg,n.extend=i,n.featureGroup=lg,n.geoJSON=ug,n.geoJson=da,n.gridLayer=Do,n.icon=cg,n.imageOverlay=hg,n.latLng=we,n.latLngBounds=ge,n.layerGroup=Hl,n.map=Ii,n.marker=ob,n.point=Y,n.polygon=cb,n.polyline=lb,n.popup=Mo,n.rectangle=db,n.setOptions=N,n.stamp=c,n.svg=Ad,n.svgOverlay=lf,n.tileLayer=cf,n.tooltip=Ul,n.transformation=fe,n.version=a,n.videoOverlay=fg;var vg=window.L;n.noConflict=function(){return window.L=vg,this},window.L=n}))})(am,am.exports)),am.exports}var Sl=VL();const mp=Qa(Sl);function UL(e){return e.split(" ").filter(Boolean)}function qL(e,t){UL(t).forEach(n=>{Sl.DomUtil.addClass(e,n)})}function GL(e,t){UL(t).forEach(n=>{Sl.DomUtil.removeClass(e,n)})}function Hte(e,t,n){e!=null&&n!==t&&(t!=null&&t.length>0&&GL(e,t),n!=null&&n.length>0&&qL(e,n))}function pp(e,t,n){return Object.freeze({instance:e,context:t,container:n})}function hh(e,t){return t==null?function(a,i){const s=v.useRef();return s.current||(s.current=e(a,i)),s}:function(a,i){const s=v.useRef();s.current||(s.current=e(a,i));const o=v.useRef(a),{instance:l}=s.current;return v.useEffect(function(){o.current!==a&&(t(l,a,o.current),o.current=a)},[l,a,i]),s}}function P2(e,t){v.useEffect(function(){return(t.layerContainer??t.map).addLayer(e.instance),function(){t.layerContainer?.removeLayer(e.instance),t.map.removeLayer(e.instance)}},[t,e])}function E2(e){return function(n){const a=uh(),i=e(fp(n,a),a);return _2(a.map,n.attribution),Gv(i.current,n.eventHandlers),P2(i.current,a),i}}function KL(e,t){const n=v.useRef();v.useEffect(function(){if(t.pathOptions!==n.current){const i=t.pathOptions??{};e.instance.setStyle(i),n.current=i}},[e,t])}function ZL(e){return function(n){const a=uh(),i=e(fp(n,a),a);return Gv(i.current,n.eventHandlers),P2(i.current,a),KL(i.current,n),i}}function Wte(e){function t(i,s){return pp(e(i),s)}const n=hh(t),a=HL(n);return A2(a)}function YL(e,t){const n=hh(e,t),a=E2(n);return T2(a)}function JL(e,t){const n=hh(e),a=WL(n,t);return $L(a)}function Vte(e,t){const n=hh(e,t),a=ZL(n);return T2(a)}function XL(e,t){const n=hh(e,t),a=E2(n);return A2(a)}function QL(e,t,n){const{opacity:a,zIndex:i}=t;a!=null&&a!==n.opacity&&e.setOpacity(a),i!=null&&i!==n.zIndex&&e.setZIndex(i)}function Ute(e,t,n){t.bounds instanceof Sl.LatLngBounds&&t.bounds!==n.bounds&&e.setBounds(t.bounds),t.opacity!=null&&t.opacity!==n.opacity&&e.setOpacity(t.opacity),t.zIndex!=null&&t.zIndex!==n.zIndex&&e.setZIndex(t.zIndex)}const qte=Object.freeze(Object.defineProperty({__proto__:null,CONTEXT_VERSION:BL,LeafletContext:S2,LeafletProvider:C2,addClassName:qL,createContainerComponent:T2,createControlComponent:Wte,createControlHook:HL,createDivOverlayComponent:$L,createDivOverlayHook:WL,createElementHook:hh,createElementObject:pp,createLayerComponent:YL,createLayerHook:E2,createLeafComponent:A2,createLeafletContext:FL,createOverlayComponent:JL,createPathComponent:Vte,createPathHook:ZL,createTileLayerComponent:XL,extendContext:zL,removeClassName:GL,updateCircle:zte,updateClassName:Hte,updateGridLayer:QL,updateMediaOverlay:Ute,useAttribution:_2,useEventHandlers:Gv,useLayerLifecycle:P2,useLeafletContext:uh,usePathOptions:KL,withPane:fp},Symbol.toStringTag,{value:"Module"}));function Gte(){return uh().map}function rN(){return rN=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},rN.apply(this,arguments)}function Kte({bounds:e,boundsOptions:t,center:n,children:a,className:i,id:s,placeholder:o,style:l,whenReady:c,zoom:h,...m},p){const[x]=v.useState({className:i,id:s,style:l}),[b,j]=v.useState(null);v.useImperativeHandle(p,()=>b?.map??null,[b]);const N=v.useCallback(S=>{if(S!==null&&b===null){const A=new Sl.Map(S,m);n!=null&&h!=null?A.setView(n,h):e!=null&&A.fitBounds(e,t),c!=null&&A.whenReady(c),j(FL(A))}},[]);v.useEffect(()=>()=>{b?.map.remove()},[b]);const _=b?an.createElement(C2,{value:b},a):o??null;return an.createElement("div",rN({},x,{ref:N}),_)}const tE=v.forwardRef(Kte),nE=YL(function({position:t,...n},a){const i=new Sl.Marker(t,n);return pp(i,zL(a,{overlayContainer:i}))},function(t,n,a){n.position!==a.position&&t.setLatLng(n.position),n.icon!=null&&n.icon!==a.icon&&t.setIcon(n.icon),n.zIndexOffset!=null&&n.zIndexOffset!==a.zIndexOffset&&t.setZIndexOffset(n.zIndexOffset),n.opacity!=null&&n.opacity!==a.opacity&&t.setOpacity(n.opacity),t.dragging!=null&&n.draggable!==a.draggable&&(n.draggable===!0?t.dragging.enable():t.dragging.disable())}),eD=JL(function(t,n){const a=new Sl.Popup(t,n.overlayContainer);return pp(a,n)},function(t,n,{position:a},i){v.useEffect(function(){const{instance:o}=t;function l(h){h.popup===o&&(o.update(),i(!0))}function c(h){h.popup===o&&i(!1)}return n.map.on({popupopen:l,popupclose:c}),n.overlayContainer==null?(a!=null&&o.setLatLng(a),o.openOn(n.map)):n.overlayContainer.bindPopup(o),function(){n.map.off({popupopen:l,popupclose:c}),n.overlayContainer?.unbindPopup(),n.map.removeLayer(o)}},[t,n,i,a])}),rE=XL(function({url:t,...n},a){const i=new Sl.TileLayer(t,fp(n,a));return pp(i,a)},function(t,n,a){QL(t,n,a);const{url:i}=n;i!=null&&i!==a.url&&t.setUrl(i)});var Ui={};const Zte=ep(qte);var im={exports:{}},Yte=im.exports,aE;function Jte(){return aE||(aE=1,(function(e,t){(function(n,a){a(t)})(Yte,function(n){var a=L.MarkerClusterGroup=L.FeatureGroup.extend({options:{maxClusterRadius:80,iconCreateFunction:null,clusterPane:L.Marker.prototype.options.pane,spiderfyOnEveryZoom:!1,spiderfyOnMaxZoom:!0,showCoverageOnHover:!0,zoomToBoundsOnClick:!0,singleMarkerMode:!1,disableClusteringAtZoom:null,removeOutsideVisibleBounds:!0,animate:!0,animateAddingMarkers:!1,spiderfyShapePositions:null,spiderfyDistanceMultiplier:1,spiderLegPolylineOptions:{weight:1.5,color:"#222",opacity:.5},chunkedLoading:!1,chunkInterval:200,chunkDelay:50,chunkProgress:null,polygonOptions:{}},initialize:function(s){L.Util.setOptions(this,s),this.options.iconCreateFunction||(this.options.iconCreateFunction=this._defaultIconCreateFunction),this._featureGroup=L.featureGroup(),this._featureGroup.addEventParent(this),this._nonPointGroup=L.featureGroup(),this._nonPointGroup.addEventParent(this),this._inZoomAnimation=0,this._needsClustering=[],this._needsRemoving=[],this._currentShownBounds=null,this._queue=[],this._childMarkerEventHandlers={dragstart:this._childMarkerDragStart,move:this._childMarkerMoved,dragend:this._childMarkerDragEnd};var o=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,o?this._withAnimation:this._noAnimation),this._markerCluster=o?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(s){if(s instanceof L.LayerGroup)return this.addLayers([s]);if(!s.getLatLng)return this._nonPointGroup.addLayer(s),this.fire("layeradd",{layer:s}),this;if(!this._map)return this._needsClustering.push(s),this.fire("layeradd",{layer:s}),this;if(this.hasLayer(s))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(s,this._maxZoom),this.fire("layeradd",{layer:s}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons();var o=s,l=this._zoom;if(s.__parent)for(;o.__parent._zoom>=l;)o=o.__parent;return this._currentShownBounds.contains(o.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(s,o):this._animationAddLayerNonAnimated(s,o)),this},removeLayer:function(s){return s instanceof L.LayerGroup?this.removeLayers([s]):s.getLatLng?this._map?s.__parent?(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(s)),this._removeLayer(s,!0),this.fire("layerremove",{layer:s}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),s.off(this._childMarkerEventHandlers,this),this._featureGroup.hasLayer(s)&&(this._featureGroup.removeLayer(s),s.clusterShow&&s.clusterShow()),this):this:(!this._arraySplice(this._needsClustering,s)&&this.hasLayer(s)&&this._needsRemoving.push({layer:s,latlng:s._latlng}),this.fire("layerremove",{layer:s}),this):(this._nonPointGroup.removeLayer(s),this.fire("layerremove",{layer:s}),this)},addLayers:function(s,o){if(!L.Util.isArray(s))return this.addLayer(s);var l=this._featureGroup,c=this._nonPointGroup,h=this.options.chunkedLoading,m=this.options.chunkInterval,p=this.options.chunkProgress,x=s.length,b=0,j=!0,N;if(this._map){var _=new Date().getTime(),S=L.bind(function(){var P=new Date().getTime();for(this._map&&this._unspiderfy&&this._unspiderfy();b<x;b++){if(h&&b%200===0){var I=new Date().getTime()-P;if(I>m)break}if(N=s[b],N instanceof L.LayerGroup){j&&(s=s.slice(),j=!1),this._extractNonGroupLayers(N,s),x=s.length;continue}if(!N.getLatLng){c.addLayer(N),o||this.fire("layeradd",{layer:N});continue}if(!this.hasLayer(N)&&(this._addLayer(N,this._maxZoom),o||this.fire("layeradd",{layer:N}),N.__parent&&N.__parent.getChildCount()===2)){var O=N.__parent.getAllChildMarkers(),M=O[0]===N?O[1]:O[0];l.removeLayer(M)}}p&&p(b,x,new Date().getTime()-_),b===x?(this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(S,this.options.chunkDelay)},this);S()}else for(var A=this._needsClustering;b<x;b++){if(N=s[b],N instanceof L.LayerGroup){j&&(s=s.slice(),j=!1),this._extractNonGroupLayers(N,s),x=s.length;continue}if(!N.getLatLng){c.addLayer(N);continue}this.hasLayer(N)||A.push(N)}return this},removeLayers:function(s){var o,l,c=s.length,h=this._featureGroup,m=this._nonPointGroup,p=!0;if(!this._map){for(o=0;o<c;o++){if(l=s[o],l instanceof L.LayerGroup){p&&(s=s.slice(),p=!1),this._extractNonGroupLayers(l,s),c=s.length;continue}this._arraySplice(this._needsClustering,l),m.removeLayer(l),this.hasLayer(l)&&this._needsRemoving.push({layer:l,latlng:l._latlng}),this.fire("layerremove",{layer:l})}return this}if(this._unspiderfy){this._unspiderfy();var x=s.slice(),b=c;for(o=0;o<b;o++){if(l=x[o],l instanceof L.LayerGroup){this._extractNonGroupLayers(l,x),b=x.length;continue}this._unspiderfyLayer(l)}}for(o=0;o<c;o++){if(l=s[o],l instanceof L.LayerGroup){p&&(s=s.slice(),p=!1),this._extractNonGroupLayers(l,s),c=s.length;continue}if(!l.__parent){m.removeLayer(l),this.fire("layerremove",{layer:l});continue}this._removeLayer(l,!0,!0),this.fire("layerremove",{layer:l}),h.hasLayer(l)&&(h.removeLayer(l),l.clusterShow&&l.clusterShow())}return this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),this},clearLayers:function(){return this._map||(this._needsClustering=[],this._needsRemoving=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(s){s.off(this._childMarkerEventHandlers,this),delete s.__parent},this),this._map&&this._generateInitialClusters(),this},getBounds:function(){var s=new L.LatLngBounds;this._topClusterLevel&&s.extend(this._topClusterLevel._bounds);for(var o=this._needsClustering.length-1;o>=0;o--)s.extend(this._needsClustering[o].getLatLng());return s.extend(this._nonPointGroup.getBounds()),s},eachLayer:function(s,o){var l=this._needsClustering.slice(),c=this._needsRemoving,h,m,p;for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(l),m=l.length-1;m>=0;m--){for(h=!0,p=c.length-1;p>=0;p--)if(c[p].layer===l[m]){h=!1;break}h&&s.call(o,l[m])}this._nonPointGroup.eachLayer(s,o)},getLayers:function(){var s=[];return this.eachLayer(function(o){s.push(o)}),s},getLayer:function(s){var o=null;return s=parseInt(s,10),this.eachLayer(function(l){L.stamp(l)===s&&(o=l)}),o},hasLayer:function(s){if(!s)return!1;var o,l=this._needsClustering;for(o=l.length-1;o>=0;o--)if(l[o]===s)return!0;for(l=this._needsRemoving,o=l.length-1;o>=0;o--)if(l[o].layer===s)return!1;return!!(s.__parent&&s.__parent._group===this)||this._nonPointGroup.hasLayer(s)},zoomToShowLayer:function(s,o){var l=this._map;typeof o!="function"&&(o=function(){});var c=function(){(l.hasLayer(s)||l.hasLayer(s.__parent))&&!this._inZoomAnimation&&(this._map.off("moveend",c,this),this.off("animationend",c,this),l.hasLayer(s)?o():s.__parent._icon&&(this.once("spiderfied",o,this),s.__parent.spiderfy()))};s._icon&&this._map.getBounds().contains(s.getLatLng())?o():s.__parent._zoom<Math.round(this._map._zoom)?(this._map.on("moveend",c,this),this._map.panTo(s.getLatLng())):(this._map.on("moveend",c,this),this.on("animationend",c,this),s.__parent.zoomToBounds())},onAdd:function(s){this._map=s;var o,l,c;if(!isFinite(this._map.getMaxZoom()))throw"Map has no maxZoom specified";for(this._featureGroup.addTo(s),this._nonPointGroup.addTo(s),this._gridClusters||this._generateInitialClusters(),this._maxLat=s.options.crs.projection.MAX_LATITUDE,o=0,l=this._needsRemoving.length;o<l;o++)c=this._needsRemoving[o],c.newlatlng=c.layer._latlng,c.layer._latlng=c.latlng;for(o=0,l=this._needsRemoving.length;o<l;o++)c=this._needsRemoving[o],this._removeLayer(c.layer,!0),c.layer._latlng=c.newlatlng;this._needsRemoving=[],this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on("zoomend",this._zoomEnd,this),this._map.on("moveend",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),l=this._needsClustering,this._needsClustering=[],this.addLayers(l,!0)},onRemove:function(s){s.off("zoomend",this._zoomEnd,this),s.off("moveend",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim",""),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.remove(),this._nonPointGroup.remove(),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(s){for(var o=s;o&&!o._icon;)o=o.__parent;return o||null},_arraySplice:function(s,o){for(var l=s.length-1;l>=0;l--)if(s[l]===o)return s.splice(l,1),!0},_removeFromGridUnclustered:function(s,o){for(var l=this._map,c=this._gridUnclustered,h=Math.floor(this._map.getMinZoom());o>=h&&c[o].removeObject(s,l.project(s.getLatLng(),o));o--);},_childMarkerDragStart:function(s){s.target.__dragStart=s.target._latlng},_childMarkerMoved:function(s){if(!this._ignoreMove&&!s.target.__dragStart){var o=s.target._popup&&s.target._popup.isOpen();this._moveChild(s.target,s.oldLatLng,s.latlng),o&&s.target.openPopup()}},_moveChild:function(s,o,l){s._latlng=o,this.removeLayer(s),s._latlng=l,this.addLayer(s)},_childMarkerDragEnd:function(s){var o=s.target.__dragStart;delete s.target.__dragStart,o&&this._moveChild(s.target,o,s.target._latlng)},_removeLayer:function(s,o,l){var c=this._gridClusters,h=this._gridUnclustered,m=this._featureGroup,p=this._map,x=Math.floor(this._map.getMinZoom());o&&this._removeFromGridUnclustered(s,this._maxZoom);var b=s.__parent,j=b._markers,N;for(this._arraySplice(j,s);b&&(b._childCount--,b._boundsNeedUpdate=!0,!(b._zoom<x));)o&&b._childCount<=1?(N=b._markers[0]===s?b._markers[1]:b._markers[0],c[b._zoom].removeObject(b,p.project(b._cLatLng,b._zoom)),h[b._zoom].addObject(N,p.project(N.getLatLng(),b._zoom)),this._arraySplice(b.__parent._childClusters,b),b.__parent._markers.push(N),N.__parent=b.__parent,b._icon&&(m.removeLayer(b),l||m.addLayer(N))):b._iconNeedsUpdate=!0,b=b.__parent;delete s.__parent},_isOrIsParent:function(s,o){for(;o;){if(s===o)return!0;o=o.parentNode}return!1},fire:function(s,o,l){if(o&&o.layer instanceof L.MarkerCluster){if(o.originalEvent&&this._isOrIsParent(o.layer._icon,o.originalEvent.relatedTarget))return;s="cluster"+s}L.FeatureGroup.prototype.fire.call(this,s,o,l)},listens:function(s,o){return L.FeatureGroup.prototype.listens.call(this,s,o)||L.FeatureGroup.prototype.listens.call(this,"cluster"+s,o)},_defaultIconCreateFunction:function(s){var o=s.getChildCount(),l=" marker-cluster-";return o<10?l+="small":o<100?l+="medium":l+="large",new L.DivIcon({html:"<div><span>"+o+"</span></div>",className:"marker-cluster"+l,iconSize:new L.Point(40,40)})},_bindEvents:function(){var s=this._map,o=this.options.spiderfyOnMaxZoom,l=this.options.showCoverageOnHover,c=this.options.zoomToBoundsOnClick,h=this.options.spiderfyOnEveryZoom;(o||c||h)&&this.on("clusterclick clusterkeypress",this._zoomOrSpiderfy,this),l&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),s.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(s){var o=s.layer,l=o;if(!(s.type==="clusterkeypress"&&s.originalEvent&&s.originalEvent.keyCode!==13)){for(;l._childClusters.length===1;)l=l._childClusters[0];l._zoom===this._maxZoom&&l._childCount===o._childCount&&this.options.spiderfyOnMaxZoom?o.spiderfy():this.options.zoomToBoundsOnClick&&o.zoomToBounds(),this.options.spiderfyOnEveryZoom&&o.spiderfy(),s.originalEvent&&s.originalEvent.keyCode===13&&this._map._container.focus()}},_showCoverage:function(s){var o=this._map;this._inZoomAnimation||(this._shownPolygon&&o.removeLayer(this._shownPolygon),s.layer.getChildCount()>2&&s.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(s.layer.getConvexHull(),this.options.polygonOptions),o.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var s=this.options.spiderfyOnMaxZoom,o=this.options.showCoverageOnHover,l=this.options.zoomToBoundsOnClick,c=this.options.spiderfyOnEveryZoom,h=this._map;(s||l||c)&&this.off("clusterclick clusterkeypress",this._zoomOrSpiderfy,this),o&&(this.off("clustermouseover",this._showCoverage,this),this.off("clustermouseout",this._hideCoverage,this),h.off("zoomend",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var s=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,s),this._topClusterLevel._recursivelyAddChildrenToMap(null,Math.round(this._map._zoom),s),this._currentShownBounds=s}},_generateInitialClusters:function(){var s=Math.ceil(this._map.getMaxZoom()),o=Math.floor(this._map.getMinZoom()),l=this.options.maxClusterRadius,c=l;typeof l!="function"&&(c=function(){return l}),this.options.disableClusteringAtZoom!==null&&(s=this.options.disableClusteringAtZoom-1),this._maxZoom=s,this._gridClusters={},this._gridUnclustered={};for(var h=s;h>=o;h--)this._gridClusters[h]=new L.DistanceGrid(c(h)),this._gridUnclustered[h]=new L.DistanceGrid(c(h));this._topClusterLevel=new this._markerCluster(this,o-1)},_addLayer:function(s,o){var l=this._gridClusters,c=this._gridUnclustered,h=Math.floor(this._map.getMinZoom()),m,p;for(this.options.singleMarkerMode&&this._overrideMarkerIcon(s),s.on(this._childMarkerEventHandlers,this);o>=h;o--){m=this._map.project(s.getLatLng(),o);var x=l[o].getNearObject(m);if(x){x._addChild(s),s.__parent=x;return}if(x=c[o].getNearObject(m),x){var b=x.__parent;b&&this._removeLayer(x,!1);var j=new this._markerCluster(this,o,x,s);l[o].addObject(j,this._map.project(j._cLatLng,o)),x.__parent=j,s.__parent=j;var N=j;for(p=o-1;p>b._zoom;p--)N=new this._markerCluster(this,p,N),l[p].addObject(N,this._map.project(x.getLatLng(),p));b._addChild(N),this._removeFromGridUnclustered(x,o);return}c[o].addObject(s,m)}this._topClusterLevel._addChild(s),s.__parent=this._topClusterLevel},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(s){s instanceof L.MarkerCluster&&s._iconNeedsUpdate&&s._updateIcon()})},_enqueue:function(s){this._queue.push(s),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var s=0;s<this._queue.length;s++)this._queue[s].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){var s=Math.round(this._map._zoom);this._processQueue(),this._zoom<s&&this._currentShownBounds.intersects(this._getExpandedVisibleBounds())?(this._animationStart(),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,this._getExpandedVisibleBounds()),this._animationZoomIn(this._zoom,s)):this._zoom>s?(this._animationStart(),this._animationZoomOut(this._zoom,s)):this._moveEnd()},_getExpandedVisibleBounds:function(){if(this.options.removeOutsideVisibleBounds){if(L.Browser.mobile)return this._checkBoundsMaxLat(this._map.getBounds())}else return this._mapBoundsInfinite;return this._checkBoundsMaxLat(this._map.getBounds().pad(1))},_checkBoundsMaxLat:function(s){var o=this._maxLat;return o!==void 0&&(s.getNorth()>=o&&(s._northEast.lat=1/0),s.getSouth()<=-o&&(s._southWest.lat=-1/0)),s},_animationAddLayerNonAnimated:function(s,o){if(o===s)this._featureGroup.addLayer(s);else if(o._childCount===2){o._addToMap();var l=o.getAllChildMarkers();this._featureGroup.removeLayer(l[0]),this._featureGroup.removeLayer(l[1])}else o._updateIcon()},_extractNonGroupLayers:function(s,o){var l=s.getLayers(),c=0,h;for(o=o||[];c<l.length;c++){if(h=l[c],h instanceof L.LayerGroup){this._extractNonGroupLayers(h,o);continue}o.push(h)}return o},_overrideMarkerIcon:function(s){var o=s.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[s]}});return o}});L.MarkerClusterGroup.include({_mapBoundsInfinite:new L.LatLngBounds(new L.LatLng(-1/0,-1/0),new L.LatLng(1/0,1/0))}),L.MarkerClusterGroup.include({_noAnimation:{_animationStart:function(){},_animationZoomIn:function(s,o){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),s),this._topClusterLevel._recursivelyAddChildrenToMap(null,o,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationZoomOut:function(s,o){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),s),this._topClusterLevel._recursivelyAddChildrenToMap(null,o,this._getExpandedVisibleBounds()),this.fire("animationend")},_animationAddLayer:function(s,o){this._animationAddLayerNonAnimated(s,o)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=" leaflet-cluster-anim",this._inZoomAnimation++},_animationZoomIn:function(s,o){var l=this._getExpandedVisibleBounds(),c=this._featureGroup,h=Math.floor(this._map.getMinZoom()),m;this._ignoreMove=!0,this._topClusterLevel._recursively(l,s,h,function(p){var x=p._latlng,b=p._markers,j;for(l.contains(x)||(x=null),p._isSingleParent()&&s+1===o?(c.removeLayer(p),p._recursivelyAddChildrenToMap(null,o,l)):(p.clusterHide(),p._recursivelyAddChildrenToMap(x,o,l)),m=b.length-1;m>=0;m--)j=b[m],l.contains(j._latlng)||c.removeLayer(j)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(l,o),c.eachLayer(function(p){!(p instanceof L.MarkerCluster)&&p._icon&&p.clusterShow()}),this._topClusterLevel._recursively(l,s,o,function(p){p._recursivelyRestoreChildPositions(o)}),this._ignoreMove=!1,this._enqueue(function(){this._topClusterLevel._recursively(l,s,h,function(p){c.removeLayer(p),p.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(s,o){this._animationZoomOutSingle(this._topClusterLevel,s-1,o),this._topClusterLevel._recursivelyAddChildrenToMap(null,o,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),s,this._getExpandedVisibleBounds())},_animationAddLayer:function(s,o){var l=this,c=this._featureGroup;c.addLayer(s),o!==s&&(o._childCount>2?(o._updateIcon(),this._forceLayout(),this._animationStart(),s._setPos(this._map.latLngToLayerPoint(o.getLatLng())),s.clusterHide(),this._enqueue(function(){c.removeLayer(s),s.clusterShow(),l._animationEnd()})):(this._forceLayout(),l._animationStart(),l._animationZoomOutSingle(o,this._map.getMaxZoom(),this._zoom)))}},_animationZoomOutSingle:function(s,o,l){var c=this._getExpandedVisibleBounds(),h=Math.floor(this._map.getMinZoom());s._recursivelyAnimateChildrenInAndAddSelfToMap(c,h,o+1,l);var m=this;this._forceLayout(),s._recursivelyBecomeVisible(c,l),this._enqueue(function(){if(s._childCount===1){var p=s._markers[0];this._ignoreMove=!0,p.setLatLng(p.getLatLng()),this._ignoreMove=!1,p.clusterShow&&p.clusterShow()}else s._recursively(c,l,h,function(x){x._recursivelyRemoveChildrenFromMap(c,h,o+1)});m._animationEnd()})},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim","")),this._inZoomAnimation--,this.fire("animationend")},_forceLayout:function(){L.Util.falseFn(document.body.offsetWidth)}}),L.markerClusterGroup=function(s){return new L.MarkerClusterGroup(s)};var i=L.MarkerCluster=L.Marker.extend({options:L.Icon.prototype.options,initialize:function(s,o,l,c){L.Marker.prototype.initialize.call(this,l?l._cLatLng||l.getLatLng():new L.LatLng(0,0),{icon:this,pane:s.options.clusterPane}),this._group=s,this._zoom=o,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,l&&this._addChild(l),c&&this._addChild(c)},getAllChildMarkers:function(s,o){s=s||[];for(var l=this._childClusters.length-1;l>=0;l--)this._childClusters[l].getAllChildMarkers(s,o);for(var c=this._markers.length-1;c>=0;c--)o&&this._markers[c].__dragStart||s.push(this._markers[c]);return s},getChildCount:function(){return this._childCount},zoomToBounds:function(s){for(var o=this._childClusters.slice(),l=this._group._map,c=l.getBoundsZoom(this._bounds),h=this._zoom+1,m=l.getZoom(),p;o.length>0&&c>h;){h++;var x=[];for(p=0;p<o.length;p++)x=x.concat(o[p]._childClusters);o=x}c>h?this._group._map.setView(this._latlng,h):c<=m?this._group._map.setView(this._latlng,m+1):this._group._map.fitBounds(this._bounds,s)},getBounds:function(){var s=new L.LatLngBounds;return s.extend(this._bounds),s},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(s,o){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(s),s instanceof L.MarkerCluster?(o||(this._childClusters.push(s),s.__parent=this),this._childCount+=s._childCount):(o||this._markers.push(s),this._childCount++),this.__parent&&this.__parent._addChild(s,!0)},_setClusterCenter:function(s){this._cLatLng||(this._cLatLng=s._cLatLng||s._latlng)},_resetBounds:function(){var s=this._bounds;s._southWest&&(s._southWest.lat=1/0,s._southWest.lng=1/0),s._northEast&&(s._northEast.lat=-1/0,s._northEast.lng=-1/0)},_recalculateBounds:function(){var s=this._markers,o=this._childClusters,l=0,c=0,h=this._childCount,m,p,x,b;if(h!==0){for(this._resetBounds(),m=0;m<s.length;m++)x=s[m]._latlng,this._bounds.extend(x),l+=x.lat,c+=x.lng;for(m=0;m<o.length;m++)p=o[m],p._boundsNeedUpdate&&p._recalculateBounds(),this._bounds.extend(p._bounds),x=p._wLatLng,b=p._childCount,l+=x.lat*b,c+=x.lng*b;this._latlng=this._wLatLng=new L.LatLng(l/h,c/h),this._boundsNeedUpdate=!1}},_addToMap:function(s){s&&(this._backupLatlng=this._latlng,this.setLatLng(s)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(s,o,l){this._recursively(s,this._group._map.getMinZoom(),l-1,function(c){var h=c._markers,m,p;for(m=h.length-1;m>=0;m--)p=h[m],p._icon&&(p._setPos(o),p.clusterHide())},function(c){var h=c._childClusters,m,p;for(m=h.length-1;m>=0;m--)p=h[m],p._icon&&(p._setPos(o),p.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(s,o,l,c){this._recursively(s,c,o,function(h){h._recursivelyAnimateChildrenIn(s,h._group._map.latLngToLayerPoint(h.getLatLng()).round(),l),h._isSingleParent()&&l-1===c?(h.clusterShow(),h._recursivelyRemoveChildrenFromMap(s,o,l)):h.clusterHide(),h._addToMap()})},_recursivelyBecomeVisible:function(s,o){this._recursively(s,this._group._map.getMinZoom(),o,null,function(l){l.clusterShow()})},_recursivelyAddChildrenToMap:function(s,o,l){this._recursively(l,this._group._map.getMinZoom()-1,o,function(c){if(o!==c._zoom)for(var h=c._markers.length-1;h>=0;h--){var m=c._markers[h];l.contains(m._latlng)&&(s&&(m._backupLatlng=m.getLatLng(),m.setLatLng(s),m.clusterHide&&m.clusterHide()),c._group._featureGroup.addLayer(m))}},function(c){c._addToMap(s)})},_recursivelyRestoreChildPositions:function(s){for(var o=this._markers.length-1;o>=0;o--){var l=this._markers[o];l._backupLatlng&&(l.setLatLng(l._backupLatlng),delete l._backupLatlng)}if(s-1===this._zoom)for(var c=this._childClusters.length-1;c>=0;c--)this._childClusters[c]._restorePosition();else for(var h=this._childClusters.length-1;h>=0;h--)this._childClusters[h]._recursivelyRestoreChildPositions(s)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(s,o,l,c){var h,m;this._recursively(s,o-1,l-1,function(p){for(m=p._markers.length-1;m>=0;m--)h=p._markers[m],(!c||!c.contains(h._latlng))&&(p._group._featureGroup.removeLayer(h),h.clusterShow&&h.clusterShow())},function(p){for(m=p._childClusters.length-1;m>=0;m--)h=p._childClusters[m],(!c||!c.contains(h._latlng))&&(p._group._featureGroup.removeLayer(h),h.clusterShow&&h.clusterShow())})},_recursively:function(s,o,l,c,h){var m=this._childClusters,p=this._zoom,x,b;if(o<=p&&(c&&c(this),h&&p===l&&h(this)),p<o||p<l)for(x=m.length-1;x>=0;x--)b=m[x],b._boundsNeedUpdate&&b._recalculateBounds(),s.intersects(b._bounds)&&b._recursively(s,o,l,c,h)},_isSingleParent:function(){return this._childClusters.length>0&&this._childClusters[0]._childCount===this._childCount}});L.Marker.include({clusterHide:function(){var s=this.options.opacity;return this.setOpacity(0),this.options.opacity=s,this},clusterShow:function(){return this.setOpacity(this.options.opacity)}}),L.DistanceGrid=function(s){this._cellSize=s,this._sqCellSize=s*s,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(s,o){var l=this._getCoord(o.x),c=this._getCoord(o.y),h=this._grid,m=h[c]=h[c]||{},p=m[l]=m[l]||[],x=L.Util.stamp(s);this._objectPoint[x]=o,p.push(s)},updateObject:function(s,o){this.removeObject(s),this.addObject(s,o)},removeObject:function(s,o){var l=this._getCoord(o.x),c=this._getCoord(o.y),h=this._grid,m=h[c]=h[c]||{},p=m[l]=m[l]||[],x,b;for(delete this._objectPoint[L.Util.stamp(s)],x=0,b=p.length;x<b;x++)if(p[x]===s)return p.splice(x,1),b===1&&delete m[l],!0},eachObject:function(s,o){var l,c,h,m,p,x,b,j=this._grid;for(l in j){p=j[l];for(c in p)for(x=p[c],h=0,m=x.length;h<m;h++)b=s.call(o,x[h]),b&&(h--,m--)}},getNearObject:function(s){var o=this._getCoord(s.x),l=this._getCoord(s.y),c,h,m,p,x,b,j,N,_=this._objectPoint,S=this._sqCellSize,A=null;for(c=l-1;c<=l+1;c++)if(p=this._grid[c],p){for(h=o-1;h<=o+1;h++)if(x=p[h],x)for(m=0,b=x.length;m<b;m++)j=x[m],N=this._sqDist(_[L.Util.stamp(j)],s),(N<S||N<=S&&A===null)&&(S=N,A=j)}return A},_getCoord:function(s){var o=Math.floor(s/this._cellSize);return isFinite(o)?o:s},_sqDist:function(s,o){var l=o.x-s.x,c=o.y-s.y;return l*l+c*c}},(function(){L.QuickHull={getDistant:function(s,o){var l=o[1].lat-o[0].lat,c=o[0].lng-o[1].lng;return c*(s.lat-o[0].lat)+l*(s.lng-o[0].lng)},findMostDistantPointFromBaseLine:function(s,o){var l=0,c=null,h=[],m,p,x;for(m=o.length-1;m>=0;m--){if(p=o[m],x=this.getDistant(p,s),x>0)h.push(p);else continue;x>l&&(l=x,c=p)}return{maxPoint:c,newPoints:h}},buildConvexHull:function(s,o){var l=[],c=this.findMostDistantPointFromBaseLine(s,o);return c.maxPoint?(l=l.concat(this.buildConvexHull([s[0],c.maxPoint],c.newPoints)),l=l.concat(this.buildConvexHull([c.maxPoint,s[1]],c.newPoints)),l):[s[0]]},getConvexHull:function(s){var o=!1,l=!1,c=!1,h=!1,m=null,p=null,x=null,b=null,j=null,N=null,_;for(_=s.length-1;_>=0;_--){var S=s[_];(o===!1||S.lat>o)&&(m=S,o=S.lat),(l===!1||S.lat<l)&&(p=S,l=S.lat),(c===!1||S.lng>c)&&(x=S,c=S.lng),(h===!1||S.lng<h)&&(b=S,h=S.lng)}l!==o?(N=p,j=m):(N=b,j=x);var A=[].concat(this.buildConvexHull([N,j],s),this.buildConvexHull([j,N],s));return A}}})(),L.MarkerCluster.include({getConvexHull:function(){var s=this.getAllChildMarkers(),o=[],l,c;for(c=s.length-1;c>=0;c--)l=s[c].getLatLng(),o.push(l);return L.QuickHull.getConvexHull(o)}}),L.MarkerCluster.include({_2PI:Math.PI*2,_circleFootSeparation:25,_circleStartAngle:0,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(!(this._group._spiderfied===this||this._group._inZoomAnimation)){var s=this.getAllChildMarkers(null,!0),o=this._group,l=o._map,c=l.latLngToLayerPoint(this._latlng),h;this._group._unspiderfy(),this._group._spiderfied=this,this._group.options.spiderfyShapePositions?h=this._group.options.spiderfyShapePositions(s.length,c):s.length>=this._circleSpiralSwitchover?h=this._generatePointsSpiral(s.length,c):(c.y+=10,h=this._generatePointsCircle(s.length,c)),this._animationSpiderfy(s,h)}},unspiderfy:function(s){this._group._inZoomAnimation||(this._animationUnspiderfy(s),this._group._spiderfied=null)},_generatePointsCircle:function(s,o){var l=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+s),c=l/this._2PI,h=this._2PI/s,m=[],p,x;for(c=Math.max(c,35),m.length=s,p=0;p<s;p++)x=this._circleStartAngle+p*h,m[p]=new L.Point(o.x+c*Math.cos(x),o.y+c*Math.sin(x))._round();return m},_generatePointsSpiral:function(s,o){var l=this._group.options.spiderfyDistanceMultiplier,c=l*this._spiralLengthStart,h=l*this._spiralFootSeparation,m=l*this._spiralLengthFactor*this._2PI,p=0,x=[],b;for(x.length=s,b=s;b>=0;b--)b<s&&(x[b]=new L.Point(o.x+c*Math.cos(p),o.y+c*Math.sin(p))._round()),p+=h/c+b*5e-4,c+=m/p;return x},_noanimationUnspiderfy:function(){var s=this._group,o=s._map,l=s._featureGroup,c=this.getAllChildMarkers(null,!0),h,m;for(s._ignoreMove=!0,this.setOpacity(1),m=c.length-1;m>=0;m--)h=c[m],l.removeLayer(h),h._preSpiderfyLatlng&&(h.setLatLng(h._preSpiderfyLatlng),delete h._preSpiderfyLatlng),h.setZIndexOffset&&h.setZIndexOffset(0),h._spiderLeg&&(o.removeLayer(h._spiderLeg),delete h._spiderLeg);s.fire("unspiderfied",{cluster:this,markers:c}),s._ignoreMove=!1,s._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(s,o){var l=this._group,c=l._map,h=l._featureGroup,m=this._group.options.spiderLegPolylineOptions,p,x,b,j;for(l._ignoreMove=!0,p=0;p<s.length;p++)j=c.layerPointToLatLng(o[p]),x=s[p],b=new L.Polyline([this._latlng,j],m),c.addLayer(b),x._spiderLeg=b,x._preSpiderfyLatlng=x._latlng,x.setLatLng(j),x.setZIndexOffset&&x.setZIndexOffset(1e6),h.addLayer(x);this.setOpacity(.3),l._ignoreMove=!1,l.fire("spiderfied",{cluster:this,markers:s})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(s,o){var l=this,c=this._group,h=c._map,m=c._featureGroup,p=this._latlng,x=h.latLngToLayerPoint(p),b=L.Path.SVG,j=L.extend({},this._group.options.spiderLegPolylineOptions),N=j.opacity,_,S,A,P,I,O;for(N===void 0&&(N=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),b?(j.opacity=0,j.className=(j.className||"")+" leaflet-cluster-spider-leg"):j.opacity=N,c._ignoreMove=!0,_=0;_<s.length;_++)S=s[_],O=h.layerPointToLatLng(o[_]),A=new L.Polyline([p,O],j),h.addLayer(A),S._spiderLeg=A,b&&(P=A._path,I=P.getTotalLength()+.1,P.style.strokeDasharray=I,P.style.strokeDashoffset=I),S.setZIndexOffset&&S.setZIndexOffset(1e6),S.clusterHide&&S.clusterHide(),m.addLayer(S),S._setPos&&S._setPos(x);for(c._forceLayout(),c._animationStart(),_=s.length-1;_>=0;_--)O=h.layerPointToLatLng(o[_]),S=s[_],S._preSpiderfyLatlng=S._latlng,S.setLatLng(O),S.clusterShow&&S.clusterShow(),b&&(A=S._spiderLeg,P=A._path,P.style.strokeDashoffset=0,A.setStyle({opacity:N}));this.setOpacity(.3),c._ignoreMove=!1,setTimeout(function(){c._animationEnd(),c.fire("spiderfied",{cluster:l,markers:s})},200)},_animationUnspiderfy:function(s){var o=this,l=this._group,c=l._map,h=l._featureGroup,m=s?c._latLngToNewLayerPoint(this._latlng,s.zoom,s.center):c.latLngToLayerPoint(this._latlng),p=this.getAllChildMarkers(null,!0),x=L.Path.SVG,b,j,N,_,S,A;for(l._ignoreMove=!0,l._animationStart(),this.setOpacity(1),j=p.length-1;j>=0;j--)b=p[j],b._preSpiderfyLatlng&&(b.closePopup(),b.setLatLng(b._preSpiderfyLatlng),delete b._preSpiderfyLatlng,A=!0,b._setPos&&(b._setPos(m),A=!1),b.clusterHide&&(b.clusterHide(),A=!1),A&&h.removeLayer(b),x&&(N=b._spiderLeg,_=N._path,S=_.getTotalLength()+.1,_.style.strokeDashoffset=S,N.setStyle({opacity:0})));l._ignoreMove=!1,setTimeout(function(){var P=0;for(j=p.length-1;j>=0;j--)b=p[j],b._spiderLeg&&P++;for(j=p.length-1;j>=0;j--)b=p[j],b._spiderLeg&&(b.clusterShow&&b.clusterShow(),b.setZIndexOffset&&b.setZIndexOffset(0),P>1&&h.removeLayer(b),c.removeLayer(b._spiderLeg),delete b._spiderLeg);l._animationEnd(),l.fire("unspiderfied",{cluster:o,markers:p})},200)}}),L.MarkerClusterGroup.include({_spiderfied:null,unspiderfy:function(){this._unspiderfy.apply(this,arguments)},_spiderfierOnAdd:function(){this._map.on("click",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on("zoomstart",this._unspiderfyZoomStart,this),this._map.on("zoomend",this._noanimationUnspiderfy,this),L.Browser.touch||this._map.getRenderer(this)},_spiderfierOnRemove:function(){this._map.off("click",this._unspiderfyWrapper,this),this._map.off("zoomstart",this._unspiderfyZoomStart,this),this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._map.off("zoomend",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy()},_unspiderfyZoomStart:function(){this._map&&this._map.on("zoomanim",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(s){L.DomUtil.hasClass(this._map._mapPane,"leaflet-touching")||(this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy(s))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(s){this._spiderfied&&this._spiderfied.unspiderfy(s)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(s){s._spiderLeg&&(this._featureGroup.removeLayer(s),s.clusterShow&&s.clusterShow(),s.setZIndexOffset&&s.setZIndexOffset(0),this._map.removeLayer(s._spiderLeg),delete s._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(s){return s?s instanceof L.MarkerClusterGroup?s=s._topClusterLevel.getAllChildMarkers():s instanceof L.LayerGroup?s=s._layers:s instanceof L.MarkerCluster?s=s.getAllChildMarkers():s instanceof L.Marker&&(s=[s]):s=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(s),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(s),this},_flagParentsIconsNeedUpdate:function(s){var o,l;for(o in s)for(l=s[o].__parent;l;)l._iconNeedsUpdate=!0,l=l.__parent},_refreshSingleMarkerModeMarkers:function(s){var o,l;for(o in s)l=s[o],this.hasLayer(l)&&l.setIcon(this._overrideMarkerIcon(l))}}),L.Marker.include({refreshIconOptions:function(s,o){var l=this.options.icon;return L.setOptions(l,s),this.setIcon(l),o&&this.__parent&&this.__parent._group.refreshClusters(this),this}}),n.MarkerClusterGroup=a,n.MarkerCluster=i,Object.defineProperty(n,"__esModule",{value:!0})})})(im,im.exports)),im.exports}const Xte="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAABSCAMAAAAhFXfZAAAC91BMVEVMaXEzeak2f7I4g7g3g7cua5gzeKg8hJo3grY4g7c3grU0gLI2frE0daAubJc2gbQwd6QzeKk2gLMtd5sxdKIua5g1frA2f7IydaM0e6w2fq41fK01eqo3grgubJgta5cxdKI1f7AydaQydaMxc6EubJgvbJkwcZ4ubZkwcJwubZgubJcydqUydKIxapgubJctbJcubZcubJcvbJYubJcvbZkubJctbJctbZcubJg2f7AubJcrbZcubJcubJcua5g3grY0fq8ubJcubJdEkdEwhsw6i88vhswuhcsuhMtBjMgthMsrg8srgss6is8qgcs8i9A9iMYtg8spgcoogMo7hcMngMonf8olfso4gr8kfck5iM8jfMk4iM8he8k1fro7itAgesk2hs8eecgzfLcofssdeMg0hc4cd8g2hcsxeLQbdsgZdcgxeLImfcszhM0vda4xgckzhM4xg84wf8Yxgs4udKsvfcQucqhUndROmdM1fK0wcZ8vb5w0eqpQm9MzeKhXoNVcpdYydKNWn9VZotVKltJFjsIwcJ1Rms9OlslLmtH///8+kc9epdYzd6dbo9VHkMM2f7FHmNBClM8ydqVcpNY9hro3gLM9hLczealQmcw3fa46f7A8gLMxc6I3eagyc6FIldJMl9JSnNRSntNNl9JPnNJFi75UnM9ZodVKksg8kM45jc09e6ZHltFBk883gbRBh7pDk9EwcaBzn784g7dKkcY2i81Om9M7j85Llc81is09g7Q4grY/j9A0eqxKmdFFltBEjcXf6fFImdBCiLxJl9FGlNFBi78yiMxVndEvbpo6js74+vx+psPP3+o/ks5HkcpGmNCjwdZCkNDM3ehYoNJEls+lxNkxh8xHks0+jdC1zd5Lg6r+/v/H2ufz9/o3jM3t8/edvdM/k89Th61OiLBSjbZklbaTt9BfptdjmL1AicBHj8hGk9FAgK1dkLNTjLRekrdClc/k7fM0icy0y9tgp9c4jc2NtM9Dlc8zicxeXZn3AAAAQ3RSTlMAHDdTb4yPA+LtnEQmC4L2EmHqB7XA0d0sr478x4/Yd5i1zOfyPkf1sLVq4Nh3FvjxopQ2/STNuFzUwFIwxKaejILpIBEV9wAABhVJREFUeF6s1NdyFEcYBeBeoQIhRAkLlRDGrhIgY3BJL8CVeKzuyXFzzjkn5ZxzzuScg3PO8cKzu70JkO0LfxdTU//pM9vTu7Xgf6KqOVTb9X7toRrVEfBf1HTVjZccrT/2by1VV928Yty9ZbVuucdz90frG8DBjl9pVApbOstvmMuvVgaNXSfAAd6pGxpy6yxf5ph43pS/4f3uoaGm2rdu72S9xzOvMymkZFq/ptDrk90mhW7e4zl7HLzhxGWPR20xmSxJ/VqldG5m9XhaVOA1DadsNh3Pu5L2N6QtPO/32JpqQBVVk20oy/Pi2s23WEvyfHbe1thadVQttvm7Llf65gGmXK67XtupyoM7HQhmXdLS8oGWJNeOJ3C5fG5XCEJnkez3/oFdsvgJ4l2ANZwhrJKk/7OSXa+3Vw2WJMlKnGkobouYk6T0TyX30klOUnTD9HJ5qpckL3EW/w4XF3Xd0FGywXUrstrclVsqz5Pd/sXFYyDnPdrLcQODmGOK47IZb4CmibmMn+MYRzFZ5jg33ZL/EJrWcszHmANy3ARBK/IXtciJy8VsitPSdE3uuHxzougojcUdr8/32atnz/ev3f/K5wtpxUTpcaI45zusVDpYtZi+jg0oU9b3x74h7+n9ABvYEZeKaVq0sh0AtLKsFtqNBdeT0MrSzwwlq9+x6xAO4tgOtSzbCjrNQQiNvQUbUEubvzBUeGw26yDCsRHCoLkTHDa7IdOLIThs/gHvChszh2CimE8peRs47cxANI0lYNB5y1DljpOF0IhzBDPOZnDOqYYbeGKECbPzWnXludPphw5c2YBq5zlwXphIbO4VDCZ0gnPfUO1TwZoYwAs2ExPCedAu9DAjfQUjzITQb3jNj0KG2Sgt6BHaQUdYzWz+XmBktOHwanXjaSTcwwziBcuMOtwBmqPrTOxFQR/DRKKPqyur0aiW6cULYsx6tBm0jXpR/AUWR6HRq9WVW6MRhIq5jLyjbaCTDCijyYJNpCajdyobP/eTw0iexBAKkJ3gA5KcQb2zBXsIBckn+xVv8jkZSaEFHE+jFEleAEfayRU0MouNoBmB/L50Ai/HSLIHxcrpCvnhSQAuakKp2C/YbCylJjXRVy/z3+Kv/RrNcCo+WUzlVEhzKffnTQnxeN9fWF88fiNCUdSTsaufaChKWInHeysygfpIqagoakW+vV20J8uyl6TyNKEZWV4oRSPyCkWpgOLSbkCObT8o2r6tlG58HQquf6O0v50tB7JM7F4EORd2dx/K0w/KHsVkLPaoYrwgP/y7krr3SSMA4zj+OBgmjYkxcdIJQyQRKgg2viX9Hddi9UBb29LrKR7CVVEEEXWojUkXNyfTNDE14W9gbHJNuhjDettN3ZvbOvdOqCD3Jp/9l+/wJE+9PkYGjx/fqkys3S2rMozM/o2106rfMUINo6hVqz+eu/hd1c4xTg0TAfy5kV+4UG6+IthHTU9woWmxuKNbTfuCSfovBCxq7EtHqvYL4Sm6F8GVxsSXHMQ07TOi1DKtZxjWaaIyi4CXWjxPccUw8WVbMYY5wxC1mzEyXMJWkllpRloi+Kkoq69sxBTlElF6aAxYUbjXNlhlDZilDnM4U5SlN5biRsRHnbx3mbeWjEh4mEyiuJDl5XcWVmX5GvNkFgLWZM5qwsop4/AWfLhU1cR7k1VVvcYCWRkOI6Xy5gmnphCYIkvzuNYzHzosq2oNk2RtSs8khfUOfHIDgR6ysYBaMpl4uEgk2U/oJTs9AaTSwma7dT69geAE2ZpEjUsn2ieJNHeKfrI3EcAGJ2ZaNgVuC8EBctCLc57P5u5led6IOBkIYkuQMrmmjChs4VkfOerHqSBkPzZlhe06RslZ3zMjk2sscqKwY0RcjKK+LWbzd7KiHhkncs/siFJ+V5eXxD34B8nVuJEpGJNmxN2gH3vSvp7J70tF+D1Ej8qUJD1TkErAND2GZwTFg/LubvmgiBG3SOvdlsqFQrkEzJCL1rstlnVFROixZoDDSuXQFHESwVGlcuQcMb/b42NgjLowh5MTDFE3vNB5qStRIErdCQEh6pLPR92anSUb/wAIhldAaDMpGgAAAABJRU5ErkJggg==",Qte=Object.freeze(Object.defineProperty({__proto__:null,default:Xte},Symbol.toStringTag,{value:"Module"})),ene=ep(Qte),tne="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAApCAYAAADAk4LOAAAFgUlEQVR4Aa1XA5BjWRTN2oW17d3YaZtr2962HUzbDNpjszW24mRt28p47v7zq/bXZtrp/lWnXr337j3nPCe85NcypgSFdugCpW5YoDAMRaIMqRi6aKq5E3YqDQO3qAwjVWrD8Ncq/RBpykd8oZUb/kaJutow8r1aP9II0WmLKLIsJyv1w/kqw9Ch2MYdB++12Onxee/QMwvf4/Dk/Lfp/i4nxTXtOoQ4pW5Aj7wpici1A9erdAN2OH64x8OSP9j3Ft3b7aWkTg/Fm91siTra0f9on5sQr9INejH6CUUUpavjFNq1B+Oadhxmnfa8RfEmN8VNAsQhPqF55xHkMzz3jSmChWU6f7/XZKNH+9+hBLOHYozuKQPxyMPUKkrX/K0uWnfFaJGS1QPRtZsOPtr3NsW0uyh6NNCOkU3Yz+bXbT3I8G3xE5EXLXtCXbbqwCO9zPQYPRTZ5vIDXD7U+w7rFDEoUUf7ibHIR4y6bLVPXrz8JVZEql13trxwue/uDivd3fkWRbS6/IA2bID4uk0UpF1N8qLlbBlXs4Ee7HLTfV1j54APvODnSfOWBqtKVvjgLKzF5YdEk5ewRkGlK0i33Eofffc7HT56jD7/6U+qH3Cx7SBLNntH5YIPvODnyfIXZYRVDPqgHtLs5ABHD3YzLuespb7t79FY34DjMwrVrcTuwlT55YMPvOBnRrJ4VXTdNnYug5ucHLBjEpt30701A3Ts+HEa73u6dT3FNWwflY86eMHPk+Yu+i6pzUpRrW7SNDg5JHR4KapmM5Wv2E8Tfcb1HoqqHMHU+uWDD7zg54mz5/2BSnizi9T1Dg4QQXLToGNCkb6tb1NU+QAlGr1++eADrzhn/u8Q2YZhQVlZ5+CAOtqfbhmaUCS1ezNFVm2imDbPmPng5wmz+gwh+oHDce0eUtQ6OGDIyR0uUhUsoO3vfDmmgOezH0mZN59x7MBi++WDL1g/eEiU3avlidO671bkLfwbw5XV2P8Pzo0ydy4t2/0eu33xYSOMOD8hTf4CrBtGMSoXfPLchX+J0ruSePw3LZeK0juPJbYzrhkH0io7B3k164hiGvawhOKMLkrQLyVpZg8rHFW7E2uHOL888IBPlNZ1FPzstSJM694fWr6RwpvcJK60+0HCILTBzZLFNdtAzJaohze60T8qBzyh5ZuOg5e7uwQppofEmf2++DYvmySqGBuKaicF1blQjhuHdvCIMvp8whTTfZzI7RldpwtSzL+F1+wkdZ2TBOW2gIF88PBTzD/gpeREAMEbxnJcaJHNHrpzji0gQCS6hdkEeYt9DF/2qPcEC8RM28Hwmr3sdNyht00byAut2k3gufWNtgtOEOFGUwcXWNDbdNbpgBGxEvKkOQsxivJx33iow0Vw5S6SVTrpVq11ysA2Rp7gTfPfktc6zhtXBBC+adRLshf6sG2RfHPZ5EAc4sVZ83yCN00Fk/4kggu40ZTvIEm5g24qtU4KjBrx/BTTH8ifVASAG7gKrnWxJDcU7x8X6Ecczhm3o6YicvsLXWfh3Ch1W0k8x0nXF+0fFxgt4phz8QvypiwCCFKMqXCnqXExjq10beH+UUA7+nG6mdG/Pu0f3LgFcGrl2s0kNNjpmoJ9o4B29CMO8dMT4Q5ox8uitF6fqsrJOr8qnwNbRzv6hSnG5wP+64C7h9lp30hKNtKdWjtdkbuPA19nJ7Tz3zR/ibgARbhb4AlhavcBebmTHcFl2fvYEnW0ox9xMxKBS8btJ+KiEbq9zA4RthQXDhPa0T9TEe69gWupwc6uBUphquXgf+/FrIjweHQS4/pduMe5ERUMHUd9xv8ZR98CxkS4F2n3EUrUZ10EYNw7BWm9x1GiPssi3GgiGRDKWRYZfXlON+dfNbM+GgIwYdwAAAAASUVORK5CYII=",nne=Object.freeze(Object.defineProperty({__proto__:null,default:tne},Symbol.toStringTag,{value:"Module"})),rne=ep(nne),ane="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAQAAAACach9AAACMUlEQVR4Ae3ShY7jQBAE0Aoz/f9/HTMzhg1zrdKUrJbdx+Kd2nD8VNudfsL/Th///dyQN2TH6f3y/BGpC379rV+S+qqetBOxImNQXL8JCAr2V4iMQXHGNJxeCfZXhSRBcQMfvkOWUdtfzlLgAENmZDcmo2TVmt8OSM2eXxBp3DjHSMFutqS7SbmemzBiR+xpKCNUIRkdkkYxhAkyGoBvyQFEJEefwSmmvBfJuJ6aKqKWnAkvGZOaZXTUgFqYULWNSHUckZuR1HIIimUExutRxwzOLROIG4vKmCKQt364mIlhSyzAf1m9lHZHJZrlAOMMztRRiKimp/rpdJDc9Awry5xTZCte7FHtuS8wJgeYGrex28xNTd086Dik7vUMscQOa8y4DoGtCCSkAKlNwpgNtphjrC6MIHUkR6YWxxs6Sc5xqn222mmCRFzIt8lEdKx+ikCtg91qS2WpwVfBelJCiQJwvzixfI9cxZQWgiSJelKnwBElKYtDOb2MFbhmUigbReQBV0Cg4+qMXSxXSyGUn4UbF8l+7qdSGnTC0XLCmahIgUHLhLOhpVCtw4CzYXvLQWQbJNmxoCsOKAxSgBJno75avolkRw8iIAFcsdc02e9iyCd8tHwmeSSoKTowIgvscSGZUOA7PuCN5b2BX9mQM7S0wYhMNU74zgsPBj3HU7wguAfnxxjFQGBE6pwN+GjME9zHY7zGp8wVxMShYX9NXvEWD3HbwJf4giO4CFIQxXScH1/TM+04kkBiAAAAAElFTkSuQmCC",ine=Object.freeze(Object.defineProperty({__proto__:null,default:ane},Symbol.toStringTag,{value:"Module"})),sne=ep(ine);var iE;function one(){if(iE)return Ui;iE=1;var e=Ui&&Ui.__assign||function(){return e=Object.assign||function(h){for(var m,p=1,x=arguments.length;p<x;p++){m=arguments[p];for(var b in m)Object.prototype.hasOwnProperty.call(m,b)&&(h[b]=m[b])}return h},e.apply(this,arguments)},t=Ui&&Ui.__rest||function(h,m){var p={};for(var x in h)Object.prototype.hasOwnProperty.call(h,x)&&m.indexOf(x)<0&&(p[x]=h[x]);if(h!=null&&typeof Object.getOwnPropertySymbols=="function")for(var b=0,x=Object.getOwnPropertySymbols(h);b<x.length;b++)m.indexOf(x[b])<0&&Object.prototype.propertyIsEnumerable.call(h,x[b])&&(p[x[b]]=h[x[b]]);return p},n=Ui&&Ui.__importDefault||function(h){return h&&h.__esModule?h:{default:h}};Object.defineProperty(Ui,"__esModule",{value:!0});var a=Zte,i=n(VL());Jte(),delete i.default.Icon.Default.prototype._getIconUrl,i.default.Icon.Default.mergeOptions({iconRetinaUrl:ene.default,iconUrl:rne.default,shadowUrl:sne.default});function s(h){var m={},p={};h.children;var x=t(h,["children"]);return Object.entries(x).forEach(function(b){var j,N,_=b[0],S=b[1];_.startsWith("on")?p=e(e({},p),(j={},j[_]=S,j)):m=e(e({},m),(N={},N[_]=S,N))}),{clusterProps:m,clusterEvents:p}}function o(h,m){var p=s(h),x=p.clusterProps,b=p.clusterEvents,j=new i.default.MarkerClusterGroup(x);return Object.entries(b).forEach(function(N){var _=N[0],S=N[1],A="cluster".concat(_.substring(2).toLowerCase());j.on(A,S)}),(0,a.createElementObject)(j,(0,a.extendContext)(m,{layerContainer:j}))}var l=function(h,m,p){},c=(0,a.createPathComponent)(o,l);return Ui.default=c,Ui}var lne=one();const sE=Qa(lne);function cne({hotel:e}){return r.jsx(eD,{className:"custom-popup rounded-xl overflow-hidden shadow-xl border-0",children:r.jsxs("div",{className:"p-0 m-0 w-64 flex flex-col bg-white",children:[r.jsxs("div",{className:"h-36 w-full bg-gray-200 relative overflow-hidden",children:[r.jsx("img",{src:e.googleDrivePhotoPath,alt:e.hotelName,className:"w-full h-full object-cover transition-transform duration-500 hover:scale-105",onError:t=>{t.target.src="https://images.unsplash.com/photo-1582719508461-905c673771fd?auto=format&fit=crop&w=800&q=80"}}),r.jsx("div",{className:"absolute top-3 right-3 bg-purple-600/90 backdrop-blur-sm text-white text-[11px] uppercase tracking-wider font-bold px-2.5 py-1 rounded-md shadow-sm",children:"Featured"})]}),r.jsxs("div",{className:"p-4 flex flex-col gap-3",children:[r.jsxs("div",{children:[r.jsx("h3",{className:"font-bold text-lg text-gray-900 mb-1 leading-tight line-clamp-2",children:e.hotelName}),r.jsxs("p",{className:"text-sm text-gray-500 flex items-center font-medium",children:[r.jsx(We,{className:"w-3.5 h-3.5 mr-1.5 text-purple-500 shrink-0"}),e.city,", ",e.region]})]}),r.jsxs("a",{href:e.expediaLink,target:"_blank",rel:"noreferrer",className:"mt-2 w-full flex items-center justify-center bg-[#000080] text-white py-2.5 px-4 text-sm font-bold rounded-lg hover:bg-[#000050] transition-colors shadow-md hover:shadow-lg active:scale-[0.98] transform",children:["Book on Expedia ",r.jsx(Ka,{className:"w-4 h-4 ml-2 opacity-80"})]})]})]})})}const ce=(e,t,n,a,i)=>{let s=a,o=null;if(s&&s.includes("drive.google.com/uc")){const l=s.match(/id=([^&]+)/);l&&l[1]&&(o=l[1],s=`https://drive.google.com/thumbnail?id=${o}&sz=w1000`)}else s||(o=`PENDING_${e.replace(/[^a-zA-Z0-9]/g,"_")}`,s=`https://drive.google.com/thumbnail?id=${o}&sz=w1000`);return{name:e,link:t,region:n,photoUrl:s,linkRel:i}},st={Astoria:[ce("Best Western Columbia River Waterfront","https://expedia.com/affiliate/QfpjX44","North Coast","https://drive.google.com/uc?export=view&id=1x5znN3_Zya5wN5M61gaydPFfj6MnvViK"),ce("Holiday Inn Express & Suites","https://expedia.com/affiliate/PjUhmvh","North Coast","https://drive.google.com/uc?export=view&id=1LBtMDdzqdpk9L6nZTactv7j09vGe2L3N"),ce("Astoria Rivershore Motel","https://expedia.com/affiliate/YGWyiuj","North Coast","https://drive.google.com/uc?export=view&id=1BEo5GWiZNM4kQ5PmrUnH7j7Pynutgimx"),ce("Astoria Crest Motel","https://expedia.com/affiliate/cYbL3d2","North Coast","https://drive.google.com/uc?export=view&id=1vGThJQdKJHsQnZBoO9BYmrmWEFYmY72m"),ce("Astoria Riverwalk Inn","https://expedia.com/affiliate/kX6zZPo","North Coast","https://drive.google.com/uc?export=view&id=19CZETK8jPu8VE16idF3oyqsnDRMyX-tS"),ce("Lloyd Hotel Astoria Bayfront","https://expedia.com/affiliate/asNemKD","North Coast","https://drive.google.com/uc?export=view&id=1c1ZoIRiZpPMd6D54hP5kK_BEFwQ4FOTq"),ce("Motel 6 Astoria","https://expedia.com/affiliate/m1SSiBR","North Coast","https://drive.google.com/uc?export=view&id=1Nbq2Yajf7417Y4yrputfURalOnXAGpOX")],Warrenton:[ce("Shilo Inn Suites","https://expedia.com/affiliate/wanvQwI","North Coast","https://drive.google.com/uc?export=view&id=12YSsRGnEFx0hvyAeI7zVRBbuRiSOkVxz"),ce("Super 8 by Wyndham","https://expedia.com/affiliate/TqhFo6K","North Coast","https://drive.google.com/uc?export=view&id=16jsqlMj8E8gZy0fp6GJHjqRS2sacCtK7")],Gearhart:[ce("McMenamins Gearhart Hotel","https://expedia.com/affiliate/Ca3XkCC","North Coast","https://drive.google.com/uc?export=view&id=1eWgj6FFXq73fkBGYLoJRFoTZhVLE46Xk"),ce("The Drifthaven at Gearhart","https://expedia.com/affiliate/NRxbXcc","North Coast","https://drive.google.com/uc?export=view&id=14lu5Vldj8TszkqM63Vr-7O2pkNJfd-xV")],Seaside:[ce("Ebb Tide Oceanfront Inn","https://expedia.com/affiliate/gCihDTZ","North Coast","https://drive.google.com/uc?export=view&id=1WvZV-J2zR_DjMT1NPdePBKdVIA9JUVPq"),ce("Hi-Tide Oceanfront Inn","https://expedia.com/affiliate/MrBgPbe","North Coast","https://drive.google.com/uc?export=view&id=1d9DPiFeCJevgeq0HLbrq02vgFR4JmVRK"),ce("Best Western Plus Ocean View Resort","https://expedia.com/affiliate/uRVqF7M","North Coast","https://drive.google.com/uc?export=view&id=1ILYz1JYTyJvYeIavHNFRAe53YJd7p0hP","noopener sponsored"),ce("Ashore Hotel","https://expedia.com/affiliate/mIqAhWk","North Coast","https://drive.google.com/uc?export=view&id=1qHj83z4_FjB_SeAqODv5YOgSKzcqHjiD","noopener sponsored"),ce("Promenade Inn & Suites Oceanfront","https://expedia.com/affiliate/ZYX0G3Z","North Coast","https://drive.google.com/uc?export=view&id=1yiWxhhEJyCjHomVT96GlmQCJfLAhqW-2","noopener sponsored")],"Cannon Beach":[ce("Cannon Beach Hotel","https://expedia.com/affiliate/YIL0Rf0","North Coast","https://drive.google.com/uc?export=view&id=1EPRXy_r-mGg5GTsHjOfC7hVacRfiQkwh"),ce("Cannon Beach Hotel Collection","https://expedia.com/affiliate/mJQ3WmX","North Coast","https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/9bd5ecd0cb968e54320b61fc54bb7081.jpg","noopener sponsored"),ce("The Courtyard","https://expedia.com/affiliate/uk7jbHx","North Coast","https://drive.google.com/uc?export=view&id=16MCqtZC5Ij0QvIr57OymcHlbBwMGpREA","noopener sponsored"),ce("Inn at Cannon Beach","https://expedia.com/affiliate/7ESrxua","North Coast","https://drive.google.com/uc?export=view&id=1HySEUYkYci3WAbOsPrIC76fLgxbMj9nn"),ce("Standard Quarters","https://expedia.com/affiliate/CXAAH16","North Coast","https://drive.google.com/uc?export=view&id=1jKIYHsZd4eyy-vBOMkOAc9AuINZ8dymm","noopener sponsored"),ce("Surfsand Resort","https://expedia.com/affiliates/cannon-beach-hotels-surfsand-resort.zxyRiuV","North Coast","https://drive.google.com/thumbnail?id=1ROSew_0fKuRtLfGlEJmCr1MRIesHrclo&sz=w1000"),ce("The Ocean Lodge","https://expedia.com/affiliates/cannon-beach-hotels-the-ocean-lodge.a40yztM","North Coast","https://drive.google.com/thumbnail?id=1k6kaXjVVDfEG1TzZ3uWw5ciet-_Wc5s1&sz=w1000"),ce("Hallmark Resort - Cannon Beach","https://expedia.com/affiliates/cannon-beach-hotels-hallmark-resort-cannon-beach.nOWaFHg","North Coast","https://drive.google.com/thumbnail?id=16UhUSBoXjJ9yNQEO9AXN7W4qL0B13Jop&sz=w1000"),ce("Schooner's Cove Inn","https://expedia.com/affiliates/oregon-coast-hotels-schooners-cove-inn.lG3twwG","North Coast","https://drive.google.com/thumbnail?id=1hA4jCE7Nn_hPBaMsZFeyxTgL_EyTRZif&sz=w1000"),ce("The Wayside Inn","https://expedia.com/affiliates/cannon-beach-hotels-the-wayside-inn.VoCvR8H","North Coast","https://drive.google.com/thumbnail?id=1q3xIzg87Jkbz8TWY3VzWL9qfuP4qlOz6&sz=w1000"),ce("Lighthouse Inn","https://expedia.com/affiliates/cannon-beach-hotels-lighthouse-inn.Dg0n7fK","North Coast","https://drive.google.com/thumbnail?id=1JjDwc_5BBHqOuaE9cNma4DwpOQXuJfLD&sz=w1000"),ce("Stephanie Inn","https://expedia.com/affiliates/cannon-beach-hotels-stephanie-inn.5UAV9Hb","North Coast","https://drive.google.com/thumbnail?id=1wfFx5GnMT1QcaaASsFP9RoTlyiiF0cEE&sz=w1000")],Manzanita:[ce("The Inn at Manzanita","https://expedia.com/affiliate/dSzC6r5","North Coast","https://drive.google.com/uc?export=view&id=1VHc-nxO6Ob8lgHnEfvMK2fx4DkOLd4lK"),ce("San Dune Inn","https://expedia.com/affiliate/25fZSDA","North Coast","https://drive.google.com/uc?export=view&id=1qELnwYNdySKrorJAs-8UHFzjI7YHwWf4"),ce("Coast Cabins","https://expedia.com/affiliates/manzanita-hotels-coast-cabins.CNuZMkA","North Coast","https://drive.google.com/thumbnail?id=1Lo8J_8NefYLLlCLPoxKP1lqJ8pacvSOw&sz=w1000")],Wheeler:[ce("Old Wheeler Hotel","https://expedia.com/affiliate/LRzfKKT","North Coast","https://drive.google.com/uc?export=view&id=1dXmGp4OYVLzWoaxmUMji3BFFvyoTxuIg"),ce("Wheeler On The Bay Lodge & Marina","https://expedia.com/affiliate/fxYfbBm","North Coast","https://drive.google.com/uc?export=view&id=1xpxZ5cfkOoWJOs2FUHUu9Brfs85LmeDY")],"Rockaway Beach":[ce("Rockaway Beach Resort","https://expedia.com/affiliate/jaA5Vv1","North Coast","https://drive.google.com/uc?export=view&id=1rE8kMjBRR_0vQZRjdIuMj485OZSiJdIL"),ce("Tradewinds Motel","https://expedia.com/affiliate/pKKNCVS","North Coast","https://drive.google.com/uc?export=view&id=12muDlgzFWKrPKlhfgez6BRpcC9-t_hU3"),ce("Silver Sands Motel","https://expedia.com/affiliate/3W3Vw9w","North Coast","https://drive.google.com/uc?export=view&id=1Auv6QQBh-ste1ChVoplfk0FyTyUKu-qH"),ce("Rockaway Shores","https://expedia.com/affiliate/vKSuvyF","North Coast","https://drive.google.com/uc?export=view&id=1OVkmcbEAP01LXvGpr4y0UxwsZ6cBHyBL")],Garibaldi:[ce("The Hotel Garibaldi","https://expedia.com/affiliate/PaiaALs","North Coast","https://drive.google.com/uc?export=view&id=16YlVu67tHaYm0rkdCn3hsZ83pOcwJ_J0"),ce("Garibaldi Inn at the Bay","https://expedia.com/affiliate/ZivFvmb","North Coast","https://drive.google.com/uc?export=view&id=1-SmnBg1y5phNv3I-PbSuxqqQvq8xAygM"),ce("Harborview Inn & RV Park","https://expedia.com/affiliate/3lp1ATL","North Coast","https://drive.google.com/uc?export=view&id=1kQcRGodl8CelPC6Xle877q86St9Z5GaE"),ce("Dall'Onder Ski Hotel","https://expedia.com/affiliate/fCUHC4F","North Coast","https://drive.google.com/uc?export=view&id=1OE7iSeTfyKRis0_wtxiNFh5yFmmplAEa")],Tillamook:[ce("The Tillamook Inn","https://expedia.com/affiliate/f11NvoX","North Coast","https://drive.google.com/uc?export=view&id=1pHVMfrGPPqU9a_B0JddWfeTJ3Gi_cRnH"),ce("Ashley Inn of Tillamook","https://expedia.com/affiliate/BZAE3Qq","North Coast","https://drive.google.com/uc?export=view&id=1nkHg3vQOq0lGERR8kDambFcDPVK5Tg_V"),ce("Western Royal Inn","https://expedia.com/affiliate/SL8Kou9","North Coast","https://drive.google.com/uc?export=view&id=10CoeJU5b02-GsHRq4ozpRz-y--NOTBuy"),ce("The Oceanside Inn","https://expedia.com/affiliate/1wnaCWE","North Coast","https://drive.google.com/uc?export=view&id=1d7AxU6a-Zlq03deiNU8hBUzMWfVMj7FI"),ce("Terimore Bayfront Inn","https://expedia.com/affiliate/pIhnHz5","North Coast","https://drive.google.com/uc?export=view&id=1peh9ptkTUFj-7I85R7YK8P5FixlA_tMd")],Nehalem:[ce("Wheeler on the Bay Lodge and Marina","#","North Coast","https://drive.google.com/thumbnail?id=1xpxZ5cfkOoWJOs2FUHUu9Brfs85LmeDY&sz=w1000"),ce("Old Wheeler Hotel","#","North Coast","https://drive.google.com/thumbnail?id=1dXmGp4OYVLzWoaxmUMji3BFFvyoTxuIg&sz=w1000")],Tolovana:[ce("The Ocean Lodge","https://expedia.com/affiliates/cannon-beach-hotels-the-ocean-lodge.a40yztM","North Coast","https://drive.google.com/thumbnail?id=1k6kaXjVVDfEG1TzZ3uWw5ciet-_Wc5s1&sz=w1000"),ce("Inn at Cannon Beach","#","North Coast","https://drive.google.com/thumbnail?id=1HySEUYkYci3WAbOsPrIC76fLgxbMj9nn&sz=w1000")],"Bay City":[],Netarts:[ce("Terimore Lodging by the Sea","https://expedia.com/affiliates/tillamook-hotels-terimore-inn.dOjg76G","North Coast","https://drive.google.com/thumbnail?id=10iiGC6KxtY1fLqMrNe4oYb3DjK6FLu5X&sz=w1000"),ce("The Surf Inn","https://expedia.com/affiliates/tillamook-hotels-the-netarts-surf-inn.oKM1yC1","North Coast","https://drive.google.com/thumbnail?id=1VBUCo9Oeyq2Hdu-Y5GvM5R_edLphocmN&sz=w1000")],Neskowin:[],Oceanside:[ce("Oceanside Inn","#","North Coast","https://drive.google.com/thumbnail?id=1d7AxU6a-Zlq03deiNU8hBUzMWfVMj7FI&sz=w1000")],"Pacific City":[ce("Pacific City Inn","https://expedia.com/affiliate/q3yGnAm","Central Coast","https://drive.google.com/uc?export=view&id=1TyG43EK4M_aksT8-Z33V4ZMQFyJfAuTY"),ce("Inn at Cape Kiwanda","https://expedia.com/affiliate/5nV2h4H","Central Coast","https://drive.google.com/uc?export=view&id=1hz0kPpMbh9fLtqoLO5fwkgMDnCU7H4pY"),ce("Headlands Coastal Lodge & Spa","https://expedia.com/affiliate/oYGoJbe","Central Coast","https://drive.google.com/uc?export=view&id=1y4SdZK-Xf78OzAnuM-QDPjRs4EQmj3hk"),ce("Surf & Sand Inn","https://expedia.com/affiliate/VJOt3mg","Central Coast","https://drive.google.com/uc?export=view&id=1cC8IHXlRaZ_XbD1h_9IiASo3hmXqKn0E"),ce("The Anchorage Motel","https://expedia.com/affiliate/lFJgsDF","Central Coast","https://drive.google.com/uc?export=view&id=13ljNKgWm-txW8nWvj9hMiNX0Bf38k2uQ")],"Lincoln City":[ce("Siletz Bay Beachfront Hotel","https://expedia.com/affiliate/nLYtYGA","Central Coast","https://drive.google.com/uc?export=view&id=1xStGCSaZxv3C-80wnD6_9LhXKOhGeTya"),ce("Holiday Inn Express & Suites","https://expedia.com/affiliate/9BioOyr","Central Coast","https://drive.google.com/uc?export=view&id=1Vr2VuAOSt-FRdU6lnGCZvqRJS9HIjsj3"),ce("Lincoln Sands Oceanfront Resort","https://expedia.com/affiliate/nt6MsIL","Central Coast","https://drive.google.com/uc?export=view&id=1ytY7rVEEcrnku8p2_edjMEaFg3tNIdTF"),ce("Comfort Inn & Suites","https://expedia.com/affiliate/3i9WO6E","Central Coast","https://drive.google.com/uc?export=view&id=19pSnkMYA2hob_tCgH7tJ8WHQGBn6tNLg"),ce("Surfland Hotel","https://expedia.com/affiliate/yHp1qRA","Central Coast","https://drive.google.com/uc?export=view&id=1CrKhh6LRxpHi5pvlQTnxF8nY6O8m6AY0"),ce("Surftides","https://expedia.com/affiliate/AE2n2l9","Central Coast","https://drive.google.com/uc?export=view&id=1DhmwyUus58b3G8SV-81pz9rCbRbfwzvx"),ce("Salishan Coastal Lodge & Resort","#","Central Coast","https://drive.google.com/thumbnail?id=1kw0K_QmiyARNXfcvDwFVrm96wEzR040b&sz=w1000"),ce("Starfish Manor Oceanfront Hotel","https://expedia.com/affiliates/lincoln-city-hotels-starfish-manor-oceanfront-hotel.TLbavwG","Central Coast","https://drive.google.com/thumbnail?id=1w9LxwX4-Om4V2u2EX5yq94fP1j9IJK_u&sz=w1000"),ce("Sailor Jack's Oceanfront Inn","https://expedia.com/affiliates/lincoln-city-hotels-sailor-jacks-oceanfront-inn.LHbhH1v","Central Coast","https://drive.google.com/thumbnail?id=1vkhliVoXTNeDAfBEvs9t6UHPmFZhey1n&sz=w1000"),ce("The Ashley Inn & Suites","https://expedia.com/affiliates/lincoln-city-hotels-the-ashley-inn-suites.VVEBoQ5","Central Coast","https://drive.google.com/thumbnail?id=1QJzxWlBqJaxOR8Al37txilPzr1ZaB387&sz=w1000")],"Gleneden Beach":[ce("WorldMark Gleneden Beach","https://expedia.com/affiliate/3GoK6ZH","Central Coast","https://drive.google.com/uc?export=view&id=1uwV-FUG5qXqS5yh5OwFqKR6fL0AwhNsL"),ce("Salishan Coastal Lodge","https://expedia.com/affiliate/4HyaGdg","Central Coast","https://drive.google.com/uc?export=view&id=1kw0K_QmiyARNXfcvDwFVrm96wEzR040b")],"Depoe Bay":[ce("WorldMark Depoe Bay","https://expedia.com/affiliate/eDY1POg","Central Coast","https://drive.google.com/uc?export=view&id=1-gTQcwVwd1yVYkiLr09Qu1v3A8ZNlAix"),ce("Travelodge by Wyndham","https://expedia.com/affiliate/LbqzSDy","Central Coast","https://drive.google.com/uc?export=view&id=15ivBt39UH_Y1nevPTTk7zKuZCc4DSSNA"),ce("Clarion Inn Surfrider Resort","https://expedia.com/affiliate/yLjzrer","Central Coast","https://drive.google.com/uc?export=view&id=1HxL8YgfmyAmzoZWI7Ac1lA_jdNxFGGzJ"),ce("Inn at Arch Rock","https://expedia.com/affiliate/Z7JNpW9","Central Coast","https://drive.google.com/uc?export=view&id=1u15yBQVtVYjfFvsbxfCmtLIhlGSO1eLN"),ce("Whale Cove Inn","https://expedia.com/affiliate/nnP5EZA","Central Coast","https://drive.google.com/uc?export=view&id=1nrkeXZQ5HJt3VlYVe68ResOn_jf-8cSF")],"Otter Rock":[ce("Inn At Otter Crest","https://expedia.com/affiliate/7vBCeVz","Central Coast","https://drive.google.com/uc?export=view&id=1w7qvF3-BFOaKYgOLDBI-qrFlZXFweJTs")],Newport:[ce("Holiday Inn Express","https://expedia.com/affiliate/NJBvZWm","Central Coast","https://drive.google.com/uc?export=view&id=1cCxzoeyHPpBCul4NedWSKJagBYX7I0Kn"),ce("Waves Hotel NYE Beach","https://expedia.com/affiliate/WdzNkOX","Central Coast","https://drive.google.com/uc?export=view&id=1vvOEpnEHzrmryhZePSPAifWSAWOXx7-9"),ce("Comfort Inn Newport","https://expedia.com/affiliate/YyNeNTg","Central Coast","https://drive.google.com/uc?export=view&id=1CsqddNFO6LtNYnD-EBX9iQMWnvfJtMCx"),ce("Newport Inn By OYO","https://expedia.com/affiliate/8155hYD","Central Coast","https://drive.google.com/uc?export=view&id=1Ujc4L9pFShO5RhbPEk4vru_Aj4RmEQSw"),ce("Motel 6 Newport","https://expedia.com/affiliate/iNsZsZ3","Central Coast","https://drive.google.com/uc?export=view&id=1YSeVY4W-nkfUAiRWbIaOxy6NTokdOhgU"),ce("Hallmark Resort","https://expedia.com/affiliate/CoJq7jS","Central Coast","https://drive.google.com/uc?export=view&id=1aQqZY84KpksqbrDalNf3wyHV1bHpByOC"),ce("Sylvia Beach Hotel","https://expedia.com/affiliates/newport-hotels-hotel-sylvia.sdqDnG3","Central Coast","https://drive.google.com/thumbnail?id=1fza7mLiTX2YWt2sS9Wlbbcboc7UCNk3A&sz=w1000"),ce("Best Western Plus Agate Beach Inn","https://expedia.com/affiliates/newport-hotels-best-western-plus-agate-beach-inn.fd7bpuM","Central Coast","https://drive.google.com/thumbnail?id=1UwHAzolsdQtKS7eKUQkxcN7W6Ealh3Rv&sz=w1000")],Waldport:[ce("Alsi Resort","https://expedia.com/affiliate/pwGOgvK","Central Coast","https://drive.google.com/uc?export=view&id=1Sk087kLdtYxKanrofG8bQSivI9lMZ6cN"),ce("The Waldport Inn","https://expedia.com/affiliate/zg8fXxb","Central Coast","https://drive.google.com/uc?export=view&id=15cYq67heNExx-QMa9Eq8owvjE3VUZX1O")],Yachats:[ce("Adobe Resort","https://expedia.com/affiliate/gxy00Gh","Central Coast","https://drive.google.com/uc?export=view&id=1oTo6h5QqgBYdCRnj4CQ-heA0Zdm4CfSg"),ce("Silver Surf Motel","https://expedia.com/affiliate/JC4ePNz","Central Coast","https://drive.google.com/uc?export=view&id=1HLIcxQ2RC778P702axcwoj9ifS8kMxXz"),ce("Tillicum Beach Motel","https://expedia.com/affiliate/6hqaWhM","Central Coast","https://drive.google.com/uc?export=view&id=1HA77aRBzgzIkOPUp3Zy4iUdNyQc5tjlm"),ce("Fireside Motel","https://expedia.com/affiliate/JVUAE00","Central Coast","https://drive.google.com/uc?export=view&id=1sfVrLFZUMCb3tFd0kPsPkoL7hy9N95J2"),ce("Overleaf Lodge","https://expedia.com/affiliate/z47trXR","Central Coast","https://drive.google.com/uc?export=view&id=1wLL9HVYmIsWhaZWZ8ZMXd3D5M8evYYAO")],Florence:[ce("Driftwood Shores Resort","https://expedia.com/affiliate/3k08QRP","Central Coast","https://drive.google.com/uc?export=view&id=1jNzUX-iPJXK8O2l__mC6j84qmMF6q8dY"),ce("Economy Inn Florence","https://expedia.com/affiliate/RJe4WrD","Central Coast","https://drive.google.com/uc?export=view&id=1n1DX3eV-Ub7_d76vzcGZ6We-tPm2txhc"),ce("Old Town Inn","https://expedia.com/affiliate/dik1XT7","Central Coast","https://drive.google.com/uc?export=view&id=1I-iQ9xL7EIxjRJeF_5T5QQ_R8OZXr19Q"),ce("Quality Inn Florence","https://expedia.com/affiliate/BHxZCQC","Central Coast","https://drive.google.com/uc?export=view&id=1H2W8qu3T9th5NthZYaBW55UGurnzdZ5l"),ce("River House Inn","https://expedia.com/affiliates/florence-hotels-river-house-inn.06qo0yw","Central Coast","https://drive.google.com/thumbnail?id=1cuxE81Xr-4ZKwFR0ehr6QceDDy51xlD5&sz=w1000"),ce("Best Western Pier Point Inn","https://expedia.com/affiliates/florence-hotels-best-western-pier-point-inn.v0vr7cg","Central Coast","https://drive.google.com/thumbnail?id=1D8ZdZYtd5feASy5ve183UmPedn4nU9ZV&sz=w1000"),ce("Three Rivers Casino Resort","https://expedia.com/affiliates/florence-hotels-three-rivers-casino-resort.a3OJ6Oi","Central Coast","https://drive.google.com/thumbnail?id=1iUZBNmtgIcyVxVDUDWC_B-dAzA5ddnIs&sz=w1000")],"South Beach":[ce("La Quinta Inn & Suites","https://expedia.com/affiliates/newport-hotels-la-quinta-inn-suites-by-wyndham-newport.WYuEQQ4","Central Coast","https://drive.google.com/thumbnail?id=1A_0u0Pz4MDY40Dfbc9UP4EGL9bvBaAQc&sz=w1000"),ce("Holiday Inn Express Newport","https://expedia.com/affiliates/newport-hotels-holiday-inn-express-hotel-suites-newport.XquObDL","Central Coast","https://drive.google.com/thumbnail?id=1MKqsZ1_HQdNgyB-q99g3taEnOXiaY4Zd&sz=w1000"),ce("Motel 6 Newport","#","Central Coast","https://drive.google.com/thumbnail?id=1YSeVY4W-nkfUAiRWbIaOxy6NTokdOhgU&sz=w1000")],Toledo:[],"Seal Rock":[],"Dune City":[ce("Lakeshore Lodge (Nearby)","#","Central Coast","https://drive.google.com/thumbnail?id=1HwXMuo9-Y6GN8ju5Rnu57Ioo94Ug9JJJ&sz=w1000")],Reedsport:[ce("Best Western Salbasgeon Inn & Suites","https://expedia.com/affiliate/T06n3oJ","South Coast","https://drive.google.com/uc?export=view&id=1PSeH0ghu10-P3AGwGqHIzo-d-OIIyb4X"),ce("Economy Inn Reedsport","https://expedia.com/affiliate/86T7wG7","South Coast","https://drive.google.com/uc?export=view&id=1hn10WpkNDpoQCVfbvWnBMcBPbre9gvRG"),ce("Anchor Bay Inn","https://expedia.com/affiliate/mg9V7Qk","South Coast","https://drive.google.com/uc?export=view&id=1BK4Cdwqvbk61T4zVd4hMndaeQJfz3GfD"),ce("Best Budget Inn","https://expedia.com/affiliate/12zpSQt","South Coast","https://drive.google.com/uc?export=view&id=1SLg78_NcTQP6tsxy6Vz7VZYwbiyrN2JM"),ce("Winchester Bay Inn","https://expedia.com/affiliate/5QIauAF","South Coast","https://drive.google.com/uc?export=view&id=1OUkKJX6OtTbN7yRaEX7Yr7wOAUwwzg2T"),ce("Salbasgeon Suites","https://expedia.com/affiliates/reedsport-hotels-best-western-salbasgeon-inn-suites-of-reedsport.Xs4E55G","South Coast","https://drive.google.com/thumbnail?id=1rYJwavhQXaCn1W1o93xoJXOytOAw9JIr&sz=w1000")],"North Bend":[ce("Bay Bridge Motel","https://expedia.com/affiliate/53WLsiz","South Coast","https://drive.google.com/uc?export=view&id=11d6AXEbsSdM1al8UG22Gk9heWn6vpYVO"),ce("City Center Motel","https://expedia.com/affiliate/pFvViER","South Coast","https://drive.google.com/uc?export=view&id=1mY8lJP2bwFGjkEeiN2qFF25pPjNhmQVm"),ce("Quality Inn & Suites at Coos Bay","https://expedia.com/affiliates/north-bend-hotels-quality-inn-suites-at-coos-bay.ErpH1H7","South Coast","https://drive.google.com/thumbnail?id=13CX5aNmedlxyHdHk_-uDtFf6_5h4YXkz&sz=w1000")],"Coos Bay":[ce("Red Lion Hotel","https://expedia.com/affiliate/t4HhQus","South Coast","https://drive.google.com/uc?export=view&id=1pXNjHlzmssb_5PU_8ntIc73M3L5ayw_9"),ce("Best Western Holiday Hotel","https://expedia.com/affiliate/QBNgGrC","South Coast","https://drive.google.com/uc?export=view&id=1O7msqXzjDCJq8GP5hgL9ETTCPzSjbEGn"),ce("Edgewater Inn and Suites","https://expedia.com/affiliate/yIn1SFj","South Coast","https://drive.google.com/uc?export=view&id=1B20JUQLHWkv2XFDaz7eIxb9RVuD_9t3W"),ce("Motel 6 Coos Bay","https://expedia.com/affiliate/jwdeQZX","South Coast","https://drive.google.com/uc?export=view&id=1YhPXwmjKijW91eCzs4f2GLAggBNMfY-s"),ce("Global INN","https://expedia.com/affiliate/gCeHXdQ","South Coast","https://drive.google.com/uc?export=view&id=1yNoMsYfFI4nan4EiccsYzc0hjdIDOZfp"),ce("Bay Point Landing","https://expedia.com/affiliates/oregon-coast-hotels-bay-point-landing.1bzDGYK","South Coast","https://drive.google.com/thumbnail?id=167O3bh9s8ZcO-dTAFt1ymov-IjL_JUaq&sz=w1000")],Bandon:[ce("Bandon Inn","https://expedia.com/affiliate/fYWsXu6","South Coast","https://drive.google.com/uc?export=view&id=1x7bGhNFC3ObVc8NCSBDeUW4s3EdEB03p"),ce("The Inn at Old Town","https://expedia.com/affiliate/LWiynEX","South Coast","https://drive.google.com/uc?export=view&id=18chfohcez8deFM7Op3zDSEdaoAvagyTb"),ce("Bandon Marina Inn","https://expedia.com/affiliate/dlhq2LJ","South Coast","https://drive.google.com/uc?export=view&id=1H1Co5fSnS6ez6hHwwVirXhjZ-4xWbSQF"),ce("Sunset Oceanfront Lodging","https://expedia.com/affiliate/xvYwklk","South Coast","https://drive.google.com/uc?export=view&id=1_FdDD5HWCknzpAOciQAXfMeeBheuh9iY"),ce("La Kris Inn","https://expedia.com/affiliate/D3oIMw4","South Coast","https://drive.google.com/uc?export=view&id=177KeiB22vx9LFKYk_60GV46kskjRS4JQ"),ce("Best Western Inn At Face Rock","https://expedia.com/affiliate/Dexz7KN","South Coast","https://drive.google.com/uc?export=view&id=1_hZhQi6laTYGBAVW4u5grbinSzxI98Zi")],"Port Orford":[ce("The Shoreline Inn & Suites","https://expedia.com/affiliate/Db6lt3X","South Coast","https://drive.google.com/uc?export=view&id=1GDAsJfBP6cKXrRNzBaB1M5yKiwZhlw3P"),ce("Wander Port Orford","https://expedia.com/affiliate/sjFTyJh","South Coast","https://drive.google.com/uc?export=view&id=1ihNKURxEHf5o0FVg7DKUhXU2As_zRTBR"),ce("Shoreline Inn (Nearby)","#","South Coast","https://drive.google.com/thumbnail?id=1GDAsJfBP6cKXrRNzBaB1M5yKiwZhlw3P&sz=w1000")],"Gold Beach":[ce("Gold Beach Inn","https://expedia.com/affiliate/QNb00RP","South Coast","https://drive.google.com/uc?export=view&id=1_F7OwXO2COug73XjjjhfzYWBmGWIOePM"),ce("SureStay Plus Hotel","https://expedia.com/affiliate/0cPwRok","South Coast","https://drive.google.com/uc?export=view&id=1ZbZTQfqRituRytcx1aGel5iQt0ett1tg"),ce("Pacific Reef Hotel & Light Show","https://expedia.com/affiliate/mXanyT0","South Coast","https://drive.google.com/uc?export=view&id=12yFYLkJ1liEGHYEGHZrPfJTpxfkAaroR"),ce("The Wildflower Inn","https://expedia.com/affiliate/jvGnE8h","South Coast","https://drive.google.com/uc?export=view&id=1HI3boJXFE_Qw8IMkrx5_9TlpnR6kLIH6"),ce("Jot's Resort","https://expedia.com/affiliate/sGKGodR","South Coast","https://drive.google.com/uc?export=view&id=12Kc2ZwaIA_sNUtliwFMNO6Mj_LYXDpbG"),ce("Tu Tu Tun Lodge","https://expedia.com/affiliate/4SPDbqz","South Coast","https://drive.google.com/uc?export=view&id=1hvfv_bq8hk2h3noENRkrZjZ8FhF9fxu7")],Brookings:[ce("Brookings Inn Resort","https://expedia.com/affiliate/SBe5yvh","South Coast","https://drive.google.com/uc?export=view&id=10X3lrLUX4ITsCEzR7dHCv3NZ5ZBivmYS"),ce("Harbor Inn","https://expedia.com/affiliate/NoEyGVd","South Coast","https://drive.google.com/uc?export=view&id=1wLhbxw6xoaM1vRdOILeGeh1Zziqi3_u-"),ce("Wild Rivers Motor Lodge","https://expedia.com/affiliate/9mJn4nr","South Coast","https://drive.google.com/uc?export=view&id=18FAB1-eWeEArfQd5Ikk5yY0DCfY3SQYR"),ce("Pacific Sunset Inn","https://expedia.com/affiliate/7CRwd5I","South Coast","https://drive.google.com/uc?export=view&id=1BbkceQKL6KqYvzQMuuj01WWHx9BBhCWG"),ce("AmeriCoast Inn","https://expedia.com/affiliate/Hn0ugAb","South Coast","https://drive.google.com/uc?export=view&id=1FkoF3ap2eSqeOFapzyycIGCVplJhDyvt"),ce("Westward Inn","https://expedia.com/affiliate/gvhFkJN","South Coast","https://drive.google.com/uc?export=view&id=1GiEULewfMDEaOY4B7gwmVKaU4YTcrtZC"),ce("Ocean Suites Motel","https://expedia.com/affiliate/uGryfYs","South Coast","https://drive.google.com/uc?export=view&id=1RzpHfVp4pos14L02Gn2eH2mYKfuVjhBI"),ce("Blue Coast Inn and Suites","https://expedia.com/affiliate/sjA4btE","South Coast","https://drive.google.com/uc?export=view&id=1_J50OaWErf-TCq7dfgqO03dfiTFN9ETS"),ce("Beachfront Inn","https://expedia.com/affiliate/uwE5zg8","South Coast","https://drive.google.com/uc?export=view&id=1gRfXWafjGCBK_pQRXyORmGnqZU6sLy61")],Gardiner:[ce("Economy Inn Reedsport","#","South Coast","https://drive.google.com/thumbnail?id=1hn10WpkNDpoQCVfbvWnBMcBPbre9gvRG&sz=w1000"),ce("Anchor Bay Inn","#","South Coast","https://drive.google.com/thumbnail?id=1BK4Cdwqvbk61T4zVd4hMndaeQJfz3GfD&sz=w1000"),ce("Best Budget Inn","#","South Coast","https://drive.google.com/thumbnail?id=1SLg78_NcTQP6tsxy6Vz7VZYwbiyrN2JM&sz=w1000"),ce("Winchester Bay Inn","#","South Coast","https://drive.google.com/thumbnail?id=1OUkKJX6OtTbN7yRaEX7Yr7wOAUwwzg2T&sz=w1000"),ce("Best Western Salbasgeon Inn & Suites Of Reedsport","#","South Coast","https://drive.google.com/thumbnail?id=1rYJwavhQXaCn1W1o93xoJXOytOAw9JIr&sz=w1000")],"Winchester Bay":[],Lakeside:[ce("Lakeshore Lodge","https://expedia.com/affiliates/lakeside-hotels-lakeshore-lodge.2NMEmYl","South Coast","https://drive.google.com/thumbnail?id=1HwXMuo9-Y6GN8ju5Rnu57Ioo94Ug9JJJ&sz=w1000")],Charleston:[ce("Captain John's Motel","https://expedia.com/affiliates/coos-bay-hotels-capt-johns-motel.nPFBYL0","South Coast","https://drive.google.com/thumbnail?id=1U78vPuO6BVJf8qeMaP0mWeob60Ns2x93&sz=w1000"),ce("Plainview Motel","https://expedia.com/affiliates/coos-bay-hotels-plainview-motel-rv-park.HZmgIML","South Coast","https://drive.google.com/thumbnail?id=15V-eL-bwZgXmpiAw2-kphe-_jm7tJXTO&sz=w1000"),ce("Bay Point Landing","https://expedia.com/affiliates/oregon-coast-hotels-bay-point-landing.1bzDGYK","South Coast","https://drive.google.com/thumbnail?id=167O3bh9s8ZcO-dTAFt1ymov-IjL_JUaq&sz=w1000")],Langlois:[],Harbor:[]},dne=(e,t)=>{let n=0;for(let s=0;s<e.length;s++)n=e.charCodeAt(s)+((n<<5)-n);const a=Math.abs(Math.sin(n+t))*.02-.01,i=Math.abs(Math.cos(n+t))*.02-.01;return{latOffset:a,lngOffset:i}},Qw=e=>e?.toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w-]/g,"")||"",oE=Object.entries(st).flatMap(([e,t])=>{const n=Qw(e),a=ke[n]?.geo||{lat:45,lng:-124};return t.filter(i=>i.name!=="Coming Soon").map((i,s)=>{const o=dne(i.name,s);return{id:`hotel-${Qw(e)}-${Qw(i.name)}`,hotelName:i.name,city:e,region:i.region,expediaLink:i.link,googleDrivePhotoPath:i.photoUrl,lat:a.lat+o.latOffset,lng:a.lng+o.lngOffset}})}),e1=[{id:1,name:"Surf 2 Soul",town:"Astoria",cuisine:"Cajun/Creole",address:"395 11th St, Astoria, OR 97103",lat:46.1882,lng:-123.8301},{id:2,name:"Saigon Street Eats",town:"Astoria",cuisine:"Vietnamese",address:"385 11th St, Astoria, OR 97103",lat:46.1884,lng:-123.8302},{id:3,name:"Taqueria Los Compas",town:"Astoria",cuisine:"Mexican",address:"432 W Marine Dr, Astoria, OR 97103",lat:46.1865,lng:-123.8456},{id:4,name:"Bucket Bites Pasties",town:"Astoria",cuisine:"British/Comfort",address:"490 W Marine Dr, Astoria, OR 97103",lat:46.1863,lng:-123.8471},{id:5,name:"Malia's Grill",town:"Seaside",cuisine:"Hawaiian",address:"1120 Broadway St, Seaside, OR 97138",lat:45.9928,lng:-123.9185},{id:6,name:"Country Squire Kitchen",town:"Tillamook",cuisine:"American/Gastropub",address:"114 Ivy Ave, Tillamook, OR 97141",lat:45.4565,lng:-123.8432},{id:7,name:"Nani Papa'a",town:"Tillamook",cuisine:"Hawaiian",address:"1816 1st St, Tillamook, OR 97141",lat:45.4561,lng:-123.8421},{id:8,name:"Recess",town:"Tillamook",cuisine:"Eclectic/Sandwiches",address:"1910 N Main Ave, Tillamook, OR 97141",lat:45.4682,lng:-123.8435},{id:9,name:"Blue's Beach Burgers",town:"Lincoln City",cuisine:"Burgers/Sandwiches",address:"5040 SE Hwy 101, Lincoln City, OR 97367",lat:44.9295,lng:-124.0152},{id:10,name:"Bobablastic",town:"Lincoln City",cuisine:"Bubble Tea",address:"5040 SE Hwy 101, Lincoln City, OR 97367",lat:44.9296,lng:-124.0153},{id:11,name:"Gyropoulos",town:"Lincoln City",cuisine:"Greek",address:"5040 SE Hwy 101, Lincoln City, OR 97367",lat:44.9294,lng:-124.0151},{id:12,name:"Sha Sha's Poke",town:"Lincoln City",cuisine:"Seafood/Poke",address:"5040 SE Hwy 101, Lincoln City, OR 97367",lat:44.9292,lng:-124.0155},{id:13,name:"Rook & Larder",town:"Lincoln City",cuisine:"Farm to Table",address:"5040 SE Hwy 101, Lincoln City, OR 97367",lat:44.9293,lng:-124.015},{id:14,name:"Taqueria 101",town:"Lincoln City",cuisine:"Mexican/Oaxacan",address:"5040 SE Hwy 101, Lincoln City, OR 97367",lat:44.9297,lng:-124.0154},{id:15,name:"Sushi 101",town:"Lincoln City",cuisine:"Sushi",address:"5040 SE Hwy 101, Lincoln City, OR 97367",lat:44.9291,lng:-124.0156},{id:16,name:"Smoked Out Sandwiches",town:"Lincoln City",cuisine:"Sandwiches/BBQ",address:"5040 SE Hwy 101, Lincoln City, OR 97367",lat:44.9298,lng:-124.0157},{id:17,name:"Momo On The Wheels",town:"Lincoln City",cuisine:"Nepalese",address:"5040 SE Hwy 101, Lincoln City, OR 97367",lat:44.929,lng:-124.0158},{id:18,name:"Cozy Kitchen 101",town:"Lincoln City",cuisine:"Thai",address:"5040 SE Hwy 101, Lincoln City, OR 97367",lat:44.9299,lng:-124.0159},{id:19,name:"Lei Aloha Hawaiian BBQ",town:"Lincoln City",cuisine:"Hawaiian",address:"5040 SE Hwy 101, Lincoln City, OR 97367",lat:44.9289,lng:-124.0149},{id:20,name:"Pat~E~Macs BBQ",town:"Newport",cuisine:"BBQ",address:"2401 N Coast Hwy, Newport, OR 97365",lat:44.6558,lng:-124.0512},{id:21,name:"The Big Cheese",town:"Coos Bay",cuisine:"Gourmet Grilled Cheese",address:"775 N Front St, Coos Bay, OR 97420",lat:43.3742,lng:-124.2125}];var une=Vc.useId||(()=>{}),hne=0;function xm(e){const[t,n]=v.useState(une());return _m(()=>{n(a=>a??String(hne++))},[e]),t?`radix-${t}`:""}var fne=v.createContext(void 0);function tD(e){const t=v.useContext(fne);return e||t||"ltr"}var t1="rovingFocusGroup.onEntryFocus",mne={bubbles:!1,cancelable:!0},Kv="RovingFocusGroup",[aN,nD,pne]=$R(Kv),[gne,rD]=ih(Kv,[pne]),[xne,yne]=gne(Kv),aD=v.forwardRef((e,t)=>r.jsx(aN.Provider,{scope:e.__scopeRovingFocusGroup,children:r.jsx(aN.Slot,{scope:e.__scopeRovingFocusGroup,children:r.jsx(vne,{...e,ref:t})})}));aD.displayName=Kv;var vne=v.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:a,loop:i=!1,dir:s,currentTabStopId:o,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:c,onEntryFocus:h,preventScrollOnEntryFocus:m=!1,...p}=e,x=v.useRef(null),b=na(t,x),j=tD(s),[N=null,_]=Iv({prop:o,defaultProp:l,onChange:c}),[S,A]=v.useState(!1),P=Ga(h),I=nD(n),O=v.useRef(!1),[M,z]=v.useState(0);return v.useEffect(()=>{const $=x.current;if($)return $.addEventListener(t1,P),()=>$.removeEventListener(t1,P)},[P]),r.jsx(xne,{scope:n,orientation:a,dir:j,loop:i,currentTabStopId:N,onItemFocus:v.useCallback($=>_($),[_]),onItemShiftTab:v.useCallback(()=>A(!0),[]),onFocusableItemAdd:v.useCallback(()=>z($=>$+1),[]),onFocusableItemRemove:v.useCallback(()=>z($=>$-1),[]),children:r.jsx(gn.div,{tabIndex:S||M===0?-1:0,"data-orientation":a,...p,ref:b,style:{outline:"none",...e.style},onMouseDown:Wt(e.onMouseDown,()=>{O.current=!0}),onFocus:Wt(e.onFocus,$=>{const K=!O.current;if($.target===$.currentTarget&&K&&!S){const X=new CustomEvent(t1,mne);if($.currentTarget.dispatchEvent(X),!X.defaultPrevented){const te=I().filter(H=>H.focusable),q=te.find(H=>H.active),he=te.find(H=>H.id===N),G=[q,he,...te].filter(Boolean).map(H=>H.ref.current);oD(G,m)}}O.current=!1}),onBlur:Wt(e.onBlur,()=>A(!1))})})}),iD="RovingFocusGroupItem",sD=v.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:a=!0,active:i=!1,tabStopId:s,...o}=e,l=xm(),c=s||l,h=yne(iD,n),m=h.currentTabStopId===c,p=nD(n),{onFocusableItemAdd:x,onFocusableItemRemove:b}=h;return v.useEffect(()=>{if(a)return x(),()=>b()},[a,x,b]),r.jsx(aN.ItemSlot,{scope:n,id:c,focusable:a,active:i,children:r.jsx(gn.span,{tabIndex:m?0:-1,"data-orientation":h.orientation,...o,ref:t,onMouseDown:Wt(e.onMouseDown,j=>{a?h.onItemFocus(c):j.preventDefault()}),onFocus:Wt(e.onFocus,()=>h.onItemFocus(c)),onKeyDown:Wt(e.onKeyDown,j=>{if(j.key==="Tab"&&j.shiftKey){h.onItemShiftTab();return}if(j.target!==j.currentTarget)return;const N=jne(j,h.orientation,h.dir);if(N!==void 0){if(j.metaKey||j.ctrlKey||j.altKey||j.shiftKey)return;j.preventDefault();let S=p().filter(A=>A.focusable).map(A=>A.ref.current);if(N==="last")S.reverse();else if(N==="prev"||N==="next"){N==="prev"&&S.reverse();const A=S.indexOf(j.currentTarget);S=h.loop?Nne(S,A+1):S.slice(A+1)}setTimeout(()=>oD(S))}})})})});sD.displayName=iD;var bne={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function wne(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function jne(e,t,n){const a=wne(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(a))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(a)))return bne[a]}function oD(e,t=!1){const n=document.activeElement;for(const a of e)if(a===n||(a.focus({preventScroll:t}),document.activeElement!==n))return}function Nne(e,t){return e.map((n,a)=>e[(t+a)%e.length])}var kne=aD,_ne=sD,O2="Tabs",[Sne]=ih(O2,[rD]),lD=rD(),[Cne,R2]=Sne(O2),cD=v.forwardRef((e,t)=>{const{__scopeTabs:n,value:a,onValueChange:i,defaultValue:s,orientation:o="horizontal",dir:l,activationMode:c="automatic",...h}=e,m=tD(l),[p,x]=Iv({prop:a,onChange:i,defaultProp:s});return r.jsx(Cne,{scope:n,baseId:xm(),value:p,onValueChange:x,orientation:o,dir:m,activationMode:c,children:r.jsx(gn.div,{dir:m,"data-orientation":o,...h,ref:t})})});cD.displayName=O2;var dD="TabsList",uD=v.forwardRef((e,t)=>{const{__scopeTabs:n,loop:a=!0,...i}=e,s=R2(dD,n),o=lD(n);return r.jsx(kne,{asChild:!0,...o,orientation:s.orientation,dir:s.dir,loop:a,children:r.jsx(gn.div,{role:"tablist","aria-orientation":s.orientation,...i,ref:t})})});uD.displayName=dD;var hD="TabsTrigger",fD=v.forwardRef((e,t)=>{const{__scopeTabs:n,value:a,disabled:i=!1,...s}=e,o=R2(hD,n),l=lD(n),c=gD(o.baseId,a),h=xD(o.baseId,a),m=a===o.value;return r.jsx(_ne,{asChild:!0,...l,focusable:!i,active:m,children:r.jsx(gn.button,{type:"button",role:"tab","aria-selected":m,"aria-controls":h,"data-state":m?"active":"inactive","data-disabled":i?"":void 0,disabled:i,id:c,...s,ref:t,onMouseDown:Wt(e.onMouseDown,p=>{!i&&p.button===0&&p.ctrlKey===!1?o.onValueChange(a):p.preventDefault()}),onKeyDown:Wt(e.onKeyDown,p=>{[" ","Enter"].includes(p.key)&&o.onValueChange(a)}),onFocus:Wt(e.onFocus,()=>{const p=o.activationMode!=="manual";!m&&!i&&p&&o.onValueChange(a)})})})});fD.displayName=hD;var mD="TabsContent",pD=v.forwardRef((e,t)=>{const{__scopeTabs:n,value:a,forceMount:i,children:s,...o}=e,l=R2(mD,n),c=gD(l.baseId,a),h=xD(l.baseId,a),m=a===l.value,p=v.useRef(m);return v.useEffect(()=>{const x=requestAnimationFrame(()=>p.current=!1);return()=>cancelAnimationFrame(x)},[]),r.jsx(sh,{present:i||m,children:({present:x})=>r.jsx(gn.div,{"data-state":m?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":c,hidden:!x,id:h,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:p.current?"0s":void 0},children:x&&s})})});pD.displayName=mD;function gD(e,t){return`${e}-trigger-${t}`}function xD(e,t){return`${e}-content-${t}`}var Tne=cD,yD=uD,vD=fD,bD=pD;const Ane=Tne,wD=v.forwardRef(({className:e,...t},n)=>r.jsx(yD,{ref:n,className:Se("inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground",e),...t}));wD.displayName=yD.displayName;const iN=v.forwardRef(({className:e,...t},n)=>r.jsx(vD,{ref:n,className:Se("inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow",e),...t}));iN.displayName=vD.displayName;const sN=v.forwardRef(({className:e,...t},n)=>r.jsx(bD,{ref:n,className:Se("mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2",e),...t}));sN.displayName=bD.displayName;const gp=v.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:Se("rounded-xl border bg-card text-card-foreground shadow",e),...t}));gp.displayName="Card";const I2=v.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:Se("flex flex-col space-y-1.5 p-6",e),...t}));I2.displayName="CardHeader";const M2=v.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:Se("font-semibold leading-none tracking-tight",e),...t}));M2.displayName="CardTitle";const Pne=v.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:Se("text-sm text-muted-foreground",e),...t}));Pne.displayName="CardDescription";const Zv=v.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:Se("p-6 pt-0",e),...t}));Zv.displayName="CardContent";const Ene=v.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:Se("flex items-center p-6 pt-0",e),...t}));Ene.displayName="CardFooter";delete mp.Icon.Default.prototype._getIconUrl;mp.Icon.Default.mergeOptions({iconRetinaUrl:"https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/images/marker-icon-2x.png",iconUrl:"https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/images/marker-icon.png",shadowUrl:"https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/images/marker-shadow.png"});const One=mp.divIcon({html:'<div class="flex items-center justify-center w-9 h-9 rounded-full bg-purple-600 shadow-lg border-2 border-white ring-2 ring-black/10 transition-transform hover:scale-110"><svg class="w-4 h-4 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 21V5a2 2 0 00-2-2H7a2 2 0 00-2 2v16m14 0h2m-2 0h-5m-9 0H3m2 0h5M9 7h1m-1 4h1m4-4h1m-1 4h1m-5 10v-5a1 1 0 011-1h2a1 1 0 011 1v5m-4 0h4"></path></svg></div>',className:"custom-leaflet-icon",iconSize:[36,36],iconAnchor:[18,18],popupAnchor:[0,-18]}),Rne=mp.divIcon({html:'<div class="flex items-center justify-center w-9 h-9 rounded-full bg-orange-600 shadow-lg border-2 border-white ring-2 ring-black/10 transition-transform hover:scale-110"><svg class="w-4 h-4 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6v6m0 0v6m0-6h6m-6 0H6"></path><path d="M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1v12z"></path></svg></div>',className:"custom-leaflet-icon",iconSize:[36,36],iconAnchor:[18,18],popupAnchor:[0,-18]}),lE=({markers:e})=>{const t=Gte();return v.useEffect(()=>{if(e&&e.length>0){const n=mp.latLngBounds(e.map(a=>[a.lat,a.lng]));t.fitBounds(n,{padding:[50,50],maxZoom:14}),setTimeout(()=>t.invalidateSize(),100)}},[e,t]),null};function cE(){const[e,t]=v.useState(!1);v.useEffect(()=>t(!0),[]);const n=v.useMemo(()=>{const a={};return e1.forEach(i=>{a[i.town]||(a[i.town]=[]),a[i.town].push(i)}),a},[]);return r.jsxs("div",{className:"min-h-screen bg-gray-50 flex flex-col",children:[r.jsxs($e,{children:[r.jsx("title",{children:"Oregon Coast Maps | Hotels & Food Trucks"}),r.jsx("meta",{name:"description",content:"Interactive maps of the Oregon Coast. Find hotels and food trucks, and explore accommodations and dining options."})]}),r.jsx(Ge,{}),r.jsxs("main",{className:"flex-grow flex flex-col pb-12",children:[r.jsx("div",{className:"bg-white px-4 py-8 sm:px-6 lg:px-8 border-b shadow-sm z-10 relative",children:r.jsxs("div",{className:"max-w-7xl mx-auto text-center",children:[r.jsx("h1",{className:"text-3xl sm:text-4xl font-extrabold text-gray-900 tracking-tight",children:"Oregon Coast Interactive Maps"}),r.jsx("p",{className:"mt-4 text-gray-600 max-w-2xl text-lg mx-auto",children:"Explore our curated selection of coastal accommodations and mobile dining. Toggle between Hotels and Food Trucks to find exactly what you need."})]})}),r.jsx("div",{className:"flex-grow p-4 md:p-6 lg:p-8 max-w-[1400px] mx-auto w-full mt-4",children:r.jsxs(Ane,{defaultValue:"hotels",className:"w-full",children:[r.jsx("div",{className:"flex justify-center mb-6",children:r.jsxs(wD,{className:"bg-white border shadow-sm h-12",children:[r.jsxs(iN,{value:"hotels",className:"data-[state=active]:bg-purple-100 data-[state=active]:text-purple-800 text-base px-6",children:[r.jsx(uq,{className:"w-4 h-4 mr-2"})," Hotels Map"]}),r.jsxs(iN,{value:"food-trucks",className:"data-[state=active]:bg-orange-100 data-[state=active]:text-orange-800 text-base px-6",children:[r.jsx(eA,{className:"w-4 h-4 mr-2"})," Food Trucks Map"]})]})}),r.jsx(sN,{value:"hotels",className:"m-0 border-none outline-none focus:ring-0",children:r.jsx("div",{className:"w-full h-[65vh] min-h-[500px] rounded-2xl shadow-md overflow-hidden border border-gray-200 relative bg-gray-100",children:e?r.jsxs(tE,{center:[44.6,-124],zoom:7,className:"w-full h-full z-10",scrollWheelZoom:!0,children:[r.jsx(rE,{attribution:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"}),r.jsx(lE,{markers:oE}),r.jsx(sE,{chunkedLoading:!0,maxClusterRadius:40,children:oE.map(a=>r.jsx(nE,{position:[a.lat,a.lng],icon:One,children:r.jsx(cne,{hotel:a})},a.id))})]}):r.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-gray-50 z-20",children:r.jsxs("div",{className:"flex flex-col items-center",children:[r.jsx("div",{className:"w-10 h-10 border-4 border-purple-200 border-t-purple-600 rounded-full animate-spin mb-4"}),r.jsx("p",{className:"text-gray-500 font-medium",children:"Loading map data..."})]})})})}),r.jsx(sN,{value:"food-trucks",className:"m-0 border-none outline-none focus:ring-0",children:r.jsxs("div",{className:"flex flex-col lg:flex-row gap-6 h-auto lg:h-[65vh] min-h-[500px]",children:[r.jsxs("div",{className:"w-full lg:w-1/3 flex flex-col h-full bg-white rounded-2xl shadow-md border border-gray-200 overflow-hidden",children:[r.jsx("div",{className:"p-4 bg-orange-50 border-b border-orange-100",children:r.jsxs("h2",{className:"text-xl font-bold text-orange-900 flex items-center",children:[r.jsx(eA,{className:"w-5 h-5 mr-2"})," Food Trucks Directory"]})}),r.jsx("div",{className:"flex-1 overflow-y-auto p-4 custom-scrollbar",children:Object.keys(n).map(a=>r.jsxs("div",{className:"mb-6 last:mb-0",children:[r.jsx("h3",{className:"text-lg font-bold text-gray-800 mb-3 pb-1 border-b-2 border-gray-100",children:a}),r.jsx("div",{className:"space-y-3",children:n[a].map(i=>r.jsx(gp,{className:"border border-gray-100 hover:border-orange-200 hover:shadow-md transition-all",children:r.jsxs(Zv,{className:"p-3",children:[r.jsx("h4",{className:"font-bold text-gray-900",children:i.name}),r.jsx("p",{className:"text-sm font-medium text-orange-600 mb-1",children:i.cuisine}),r.jsxs("p",{className:"text-xs text-gray-500 flex items-start",children:[r.jsx(We,{className:"w-3.5 h-3.5 mr-1 flex-shrink-0 mt-0.5"}),i.address]})]})},i.id))})]},a))})]}),r.jsx("div",{className:"w-full lg:w-2/3 h-[50vh] lg:h-full rounded-2xl shadow-md overflow-hidden border border-gray-200 relative bg-gray-100",children:e?r.jsxs(tE,{center:[44.6,-124],zoom:7,className:"w-full h-full z-10",scrollWheelZoom:!0,children:[r.jsx(rE,{attribution:'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>',url:"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"}),r.jsx(lE,{markers:e1}),r.jsx(sE,{chunkedLoading:!0,maxClusterRadius:40,children:e1.map(a=>r.jsx(nE,{position:[a.lat,a.lng],icon:Rne,children:r.jsx(eD,{className:"rounded-xl overflow-hidden shadow-lg border-0",children:r.jsxs("div",{className:"p-1 min-w-[200px]",children:[r.jsx("h3",{className:"font-bold text-lg text-gray-900 mb-1 leading-tight",children:a.name}),r.jsx("div",{className:"inline-block px-2 py-0.5 bg-orange-100 text-orange-700 text-xs font-semibold rounded mb-2",children:a.cuisine}),r.jsxs("div",{className:"text-sm text-gray-600 flex items-start mt-1",children:[r.jsx(We,{className:"w-4 h-4 mr-1.5 flex-shrink-0 mt-0.5 text-gray-400"}),r.jsx("span",{children:a.address})]})]})})},a.id))})]}):r.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-gray-50 z-20",children:r.jsxs("div",{className:"flex flex-col items-center",children:[r.jsx("div",{className:"w-10 h-10 border-4 border-orange-200 border-t-orange-600 rounded-full animate-spin mb-4"}),r.jsx("p",{className:"text-gray-500 font-medium",children:"Loading map data..."})]})})})]})})]})})]}),r.jsx(Ye,{})]})}const sm=v.forwardRef(({className:e,type:t,...n},a)=>r.jsx("input",{type:t,className:Se("flex h-10 w-full rounded-none shadow-editorial bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium 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:a,...n}));sm.displayName="Input";var Ine="Label",jD=v.forwardRef((e,t)=>r.jsx(gn.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));jD.displayName=Ine;var ND=jD;const Mne=rp("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),fc=v.forwardRef(({className:e,...t},n)=>r.jsx(ND,{ref:n,className:Se(Mne(),e),...t}));fc.displayName=ND.displayName;const kD=v.forwardRef(({className:e,...t},n)=>r.jsx("textarea",{className:Se("flex min-h-[80px] w-full rounded-none shadow-editorial bg-background px-3 py-2 text-sm ring-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}));kD.displayName="Textarea";const Lne=rp("inline-flex items-center justify-center rounded-none shadow-editorial text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:-translate-y-0.5",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"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 shadow-none",link:"text-primary underline-offset-4 hover:underline shadow-none hover:-translate-y-0"},size:{default:"h-10 px-4 py-2",sm:"h-9 px-3",lg:"h-11 px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),pn=an.forwardRef(({className:e,variant:t,size:n,asChild:a=!1,...i},s)=>{const o=a?Lu:"button";return r.jsx(o,{className:Se(Lne({variant:t,size:n,className:e})),ref:s,...i})});pn.displayName="Button";var Dne=Object.defineProperty,Bne=(e,t)=>Dne(e,"name",{value:t,configurable:!0});function oN(e,[t,n]){return Math.min(n,Math.max(t,e))}Bne(oN,"clamp");var Fne=Object.defineProperty,fh=(e,t)=>Fne(e,"name",{value:t,configurable:!0}),_D=!!(typeof window<"u"&&window.document&&window.document.createElement);function _n(e,t,{checkForDefaultPrevented:n=!0}={}){return fh(function(i){if(e?.(i),n===!1||!i||!i.defaultPrevented)return t?.(i)},"handleEvent")}fh(_n,"composeEventHandlers");function zne(e){if(!_D)throw new Error("Cannot access window outside of the DOM");return e?.ownerDocument?.defaultView??window}fh(zne,"getOwnerWindow");function lN(e){if(!_D)throw new Error("Cannot access document outside of the DOM");return e?.ownerDocument??document}fh(lN,"getOwnerDocument");function SD(e,t=!1){const{activeElement:n}=lN(e);if(!n?.nodeName)return null;if(CD(n)&&n.contentDocument)return SD(n.contentDocument.body,t);if(t){const a=n.getAttribute("aria-activedescendant");if(a){const i=lN(n).getElementById(a);if(i)return i}}return n}fh(SD,"getActiveElement");function CD(e){return e.tagName==="IFRAME"}fh(CD,"isFrame");var $ne=Object.defineProperty,Ha=(e,t)=>$ne(e,"name",{value:t,configurable:!0});function Hne(e,t){const n=v.createContext(t);n.displayName=e+"Context";const a=Ha(s=>{const{children:o,...l}=s,c=v.useMemo(()=>l,Object.values(l));return r.jsx(n.Provider,{value:c,children:o})},"Provider");a.displayName=e+"Provider";function i(s,o={}){const{optional:l=!1}=o,c=v.useContext(n);if(c)return c;if(t!==void 0)return t;if(!l)throw new Error(`\`${s}\` must be used within \`${e}\``)}return Ha(i,"useContext"),[a,i]}Ha(Hne,"createContext");function xp(e,t=[]){let n=[];function a(s,o){const l=v.createContext(o);l.displayName=s+"Context";const c=n.length;n=[...n,o];const h=Ha(p=>{const{scope:x,children:b,...j}=p,N=x?.[e]?.[c]||l,_=v.useMemo(()=>j,Object.values(j));return r.jsx(N.Provider,{value:_,children:b})},"Provider");h.displayName=s+"Provider";function m(p,x,b={}){const{optional:j=!1}=b,N=x?.[e]?.[c]||l,_=v.useContext(N);if(_)return _;if(o!==void 0)return o;if(!j)throw new Error(`\`${p}\` must be used within \`${s}\``)}return Ha(m,"useContext"),[h,m]}Ha(a,"createContext");const i=Ha(()=>{const s=n.map(o=>v.createContext(o));return Ha(function(l){const c=l?.[e]||s;return v.useMemo(()=>({[`__scope${e}`]:{...l,[e]:c}}),[l,c])},"useScope")},"createScope");return i.scopeName=e,[a,TD(i,...t)]}Ha(xp,"createContextScope");function TD(...e){const t=e[0];if(e.length===1)return t;const n=Ha(()=>{const a=e.map(i=>({useScope:i(),scopeName:i.scopeName}));return Ha(function(s){const o=a.reduce((l,{useScope:c,scopeName:h})=>{const p=c(s)[`__scope${h}`];return{...l,...p}},{});return v.useMemo(()=>({[`__scope${t.scopeName}`]:o}),[o])},"useComposedScopes")},"createScope");return n.scopeName=t.scopeName,n}Ha(TD,"composeContextScopes");var Wne=Object.defineProperty,L2=(e,t)=>Wne(e,"name",{value:t,configurable:!0});function cN(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}L2(cN,"setRef");function AD(...e){return t=>{let n=!1;const a=e.map(i=>{const s=cN(i,t);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let i=0;i<a.length;i++){const s=a[i];typeof s=="function"?s():cN(e[i],null)}}}}L2(AD,"composeRefs");function Sn(...e){return v.useCallback(AD(...e),e)}L2(Sn,"useComposedRefs");var Vne=Object.defineProperty,Ti=(e,t)=>Vne(e,"name",{value:t,configurable:!0});function Rc(e){const t=v.forwardRef((n,a)=>{let{children:i,...s}=n,o=null,l=!1;const c=[];dN(i)&&typeof kx=="function"&&(i=kx(i._payload)),v.Children.forEach(i,x=>{if(RD(x)){l=!0;const b=x;let j="child"in b.props?b.props.child:b.props.children;dN(j)&&typeof kx=="function"&&(j=kx(j._payload)),o=qne(b,j),c.push(o?.props?.children)}else c.push(x)}),o?o=v.cloneElement(o,void 0,c):!l&&v.Children.count(i)===1&&v.isValidElement(i)&&(o=i);const h=o?OD(o):void 0,m=Sn(a,h);if(!o){if(i||i===0)throw new Error(l?Zne(e):Kne(e));return i}const p=ED(s,o.props??{});return o.type!==v.Fragment&&(p.ref=a?m:h),v.cloneElement(o,p)});return t.displayName=`${e}.Slot`,t}Ti(Rc,"createSlot");var PD=Symbol.for("radix.slottable");function Une(e){const t=Ti(n=>"child"in n?n.children(n.child):n.children,"Slottable");return t.displayName=`${e}.Slottable`,t.__radixId=PD,t}Ti(Une,"createSlottable");var qne=Ti((e,t)=>{if("child"in e.props){const n=e.props.child;return v.isValidElement(n)?v.cloneElement(n,void 0,e.props.children(n.props.children)):null}return v.isValidElement(t)?t:null},"getSlottableElementFromSlottable");function ED(e,t){const n={...t};for(const a in t){const i=e[a],s=t[a];/^on[A-Z]/.test(a)?i&&s?n[a]=(...l)=>{const c=s(...l);return i(...l),c}:i&&(n[a]=i):a==="style"?n[a]={...i,...s}:a==="className"&&(n[a]=[i,s].filter(Boolean).join(" "))}return{...e,...n}}Ti(ED,"mergeProps");function OD(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}Ti(OD,"getElementRef");function RD(e){return v.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===PD}Ti(RD,"isSlottable");var Gne=Symbol.for("react.lazy");function dN(e){return e!=null&&typeof e=="object"&&"$$typeof"in e&&e.$$typeof===Gne&&"_payload"in e&&ID(e._payload)}Ti(dN,"isLazyComponent");function ID(e){return typeof e=="object"&&e!==null&&"then"in e}Ti(ID,"isPromiseLike");var Kne=Ti(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),Zne=Ti(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),kx=Vc[" use ".trim().toString()],Yne=Object.defineProperty,Zn=(e,t)=>Yne(e,"name",{value:t,configurable:!0});function MD(e){const t=e+"CollectionProvider",[n,a]=xp(t),[i,s]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=Zn(N=>{const{scope:_,children:S}=N,A=v.useRef(null),P=v.useRef(new Map).current;return r.jsx(i,{scope:_,itemMap:P,collectionRef:A,children:S})},"CollectionProvider");o.displayName=t;const l=e+"CollectionSlot",c=Rc(l),h=v.forwardRef((N,_)=>{const{scope:S,children:A}=N,P=s(l,S),I=Sn(_,P.collectionRef);return r.jsx(c,{ref:I,children:A})});h.displayName=l;const m=e+"CollectionItemSlot",p="data-radix-collection-item",x=Rc(m),b=v.forwardRef((N,_)=>{const{scope:S,children:A,...P}=N,I=v.useRef(null),O=Sn(_,I),M=s(m,S);return v.useEffect(()=>(M.itemMap.set(I,{ref:I,...P}),()=>{M.itemMap.delete(I)})),r.jsx(x,{[p]:"",ref:O,children:A})});b.displayName=m;function j(N){const _=s(e+"CollectionConsumer",N);return v.useCallback(()=>{const A=_.collectionRef.current;if(!A)return[];const P=Array.from(A.querySelectorAll(`[${p}]`));return Array.from(_.itemMap.values()).sort((M,z)=>P.indexOf(M.ref.current)-P.indexOf(z.ref.current))},[_.collectionRef,_.itemMap])}return Zn(j,"useCollection"),[{Provider:o,Slot:h,ItemSlot:b},j,a]}Zn(MD,"createCollection");var dE=new WeakMap,Pn,pa,n1=(pa=class extends Map{constructor(n){super(n);ST(this,Pn);gw(this,Pn,[...super.keys()]),dE.set(this,!0)}set(n,a){return dE.get(this)&&(this.has(n)?vr(this,Pn)[vr(this,Pn).indexOf(n)]=n:vr(this,Pn).push(n)),super.set(n,a),this}insert(n,a,i){const s=this.has(a),o=vr(this,Pn).length,l=D2(n);let c=l>=0?l:o+l;const h=c<0||c>=o?-1:c;if(h===this.size||s&&h===this.size-1||h===-1)return this.set(a,i),this;const m=this.size+(s?0:1);l<0&&c++;const p=[...vr(this,Pn)];let x,b=!1;for(let j=c;j<m;j++)if(c===j){let N=p[j];p[j]===a&&(N=p[j+1]),s&&this.delete(a),x=this.get(N),this.set(a,i)}else{!b&&p[j-1]===a&&(b=!0);const N=p[b?j:j-1],_=x;x=this.get(N),this.delete(N),this.set(N,_)}return this}with(n,a,i){const s=new pa(this);return s.insert(n,a,i),s}before(n){const a=vr(this,Pn).indexOf(n)-1;if(!(a<0))return this.entryAt(a)}setBefore(n,a,i){const s=vr(this,Pn).indexOf(n);return s===-1?this:this.insert(s,a,i)}after(n){let a=vr(this,Pn).indexOf(n);if(a=a===-1||a===this.size-1?-1:a+1,a!==-1)return this.entryAt(a)}setAfter(n,a,i){const s=vr(this,Pn).indexOf(n);return s===-1?this:this.insert(s+1,a,i)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return gw(this,Pn,[]),super.clear()}delete(n){const a=super.delete(n);return a&&vr(this,Pn).splice(vr(this,Pn).indexOf(n),1),a}deleteAt(n){const a=this.keyAt(n);return a!==void 0?this.delete(a):!1}at(n){const a=uy(vr(this,Pn),n);if(a!==void 0)return this.get(a)}entryAt(n){const a=uy(vr(this,Pn),n);if(a!==void 0)return[a,this.get(a)]}indexOf(n){return vr(this,Pn).indexOf(n)}keyAt(n){return uy(vr(this,Pn),n)}from(n,a){const i=this.indexOf(n);if(i===-1)return;let s=i+a;return s<0&&(s=0),s>=this.size&&(s=this.size-1),this.at(s)}keyFrom(n,a){const i=this.indexOf(n);if(i===-1)return;let s=i+a;return s<0&&(s=0),s>=this.size&&(s=this.size-1),this.keyAt(s)}find(n,a){let i=0;for(const s of this){if(Reflect.apply(n,a,[s,i,this]))return s;i++}}findIndex(n,a){let i=0;for(const s of this){if(Reflect.apply(n,a,[s,i,this]))return i;i++}return-1}filter(n,a){const i=[];let s=0;for(const o of this)Reflect.apply(n,a,[o,s,this])&&i.push(o),s++;return new pa(i)}map(n,a){const i=[];let s=0;for(const o of this)i.push([o[0],Reflect.apply(n,a,[o,s,this])]),s++;return new pa(i)}reduce(...n){const[a,i]=n;let s=0,o=i??this.at(0);for(const l of this)s===0&&n.length===1?o=l:o=Reflect.apply(a,this,[o,l,s,this]),s++;return o}reduceRight(...n){const[a,i]=n;let s=i??this.at(-1);for(let o=this.size-1;o>=0;o--){const l=this.at(o);o===this.size-1&&n.length===1?s=l:s=Reflect.apply(a,this,[s,l,o,this])}return s}toSorted(n){const a=[...this.entries()].sort(n);return new pa(a)}toReversed(){const n=new pa;for(let a=this.size-1;a>=0;a--){const i=this.keyAt(a),s=this.get(i);n.set(i,s)}return n}toSpliced(...n){const a=[...this.entries()];return a.splice(...n),new pa(a)}slice(n,a){const i=new pa;let s=this.size-1;if(n===void 0)return i;n<0&&(n=n+this.size),a!==void 0&&a>0&&(s=a-1);for(let o=n;o<=s;o++){const l=this.keyAt(o),c=this.get(l);i.set(l,c)}return i}every(n,a){let i=0;for(const s of this){if(!Reflect.apply(n,a,[s,i,this]))return!1;i++}return!0}some(n,a){let i=0;for(const s of this){if(Reflect.apply(n,a,[s,i,this]))return!0;i++}return!1}},Pn=new WeakMap,Zn(pa,"OrderedDict"),pa);function uy(e,t){if("at"in Array.prototype)return Array.prototype.at.call(e,t);const n=LD(e,t);return n===-1?void 0:e[n]}Zn(uy,"at");function LD(e,t){const n=e.length,a=D2(t),i=a>=0?a:n+a;return i<0||i>=n?-1:i}Zn(LD,"toSafeIndex");function D2(e){return e!==e||e===0?0:Math.trunc(e)}Zn(D2,"toSafeInteger");function Jne(e){const t=e+"CollectionProvider",[n,a]=xp(t),[i,s]=n(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new n1,setItemMap:Zn(()=>{},"setItemMap")}),o=Zn(({state:P,...I})=>P?r.jsx(c,{...I,state:P}):r.jsx(l,{...I}),"CollectionProvider");o.displayName=t;const l=Zn(P=>{const I=_();return r.jsx(c,{...P,state:I})},"CollectionInit");l.displayName=t+"Init";const c=Zn(P=>{const{scope:I,children:O,state:M}=P,z=v.useRef(null),[$,K]=v.useState(null),X=Sn(z,K),[te,q]=M;return v.useEffect(()=>{if(!$)return;const he=FD(()=>{});return he.observe($,{childList:!0,subtree:!0}),()=>{he.disconnect()}},[$]),r.jsx(i,{scope:I,itemMap:te,setItemMap:q,collectionRef:X,collectionRefObject:z,collectionElement:$,children:O})},"CollectionProviderImpl");c.displayName=t+"Impl";const h=e+"CollectionSlot",m=Rc(h),p=v.forwardRef((P,I)=>{const{scope:O,children:M}=P,z=s(h,O),$=Sn(I,z.collectionRef);return r.jsx(m,{ref:$,children:M})});p.displayName=h;const x=e+"CollectionItemSlot",b="data-radix-collection-item",j=Rc(x),N=v.forwardRef((P,I)=>{const{scope:O,children:M,...z}=P,$=v.useRef(null),[K,X]=v.useState(null),te=Sn(I,$,X),q=s(x,O),{setItemMap:he}=q,ne=v.useRef(z);DD(ne.current,z)||(ne.current=z);const G=ne.current;return v.useEffect(()=>{const H=G;return he(Q=>K?Q.has(K)?Q.set(K,{...H,element:K}).toSorted(uN):(Q.set(K,{...H,element:K}),Q.toSorted(uN)):Q),()=>{he(Q=>!K||!Q.has(K)?Q:(Q.delete(K),new n1(Q)))}},[K,G,he]),r.jsx(j,{[b]:"",ref:te,children:M})});N.displayName=x;function _(){return v.useState(new n1)}Zn(_,"useInitCollection");function S(P){const{itemMap:I}=s(e+"CollectionConsumer",P);return I}return Zn(S,"useCollection"),[{Provider:o,Slot:p,ItemSlot:N},{createCollectionScope:a,useCollection:S,useInitCollection:_}]}Zn(Jne,"createCollection");function DD(e,t){if(e===t)return!0;if(typeof e!="object"||typeof t!="object"||e==null||t==null)return!1;const n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(const i of n)if(!Object.prototype.hasOwnProperty.call(t,i)||e[i]!==t[i])return!1;return!0}Zn(DD,"shallowEqual");function BD(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}Zn(BD,"isElementPreceding");function uN(e,t){return!e[1].element||!t[1].element?0:BD(e[1].element,t[1].element)?-1:1}Zn(uN,"sortByDocumentPosition");function FD(e){return new MutationObserver(n=>{for(const a of n)if(a.type==="childList"){e();return}})}Zn(FD,"getChildListObserver");var Xne=Object.defineProperty,Qne=(e,t)=>Xne(e,"name",{value:t,configurable:!0}),ere=v.createContext(void 0);function zD(e){const t=v.useContext(ere);return e||t||"ltr"}Qne(zD,"useDirection");var tre=Object.defineProperty,nre=(e,t)=>tre(e,"name",{value:t,configurable:!0}),rre=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],cr=rre.reduce((e,t)=>{const n=Rc(`Primitive.${t}`),a=v.forwardRef((i,s)=>{const{asChild:o,...l}=i,c=o?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),r.jsx(c,{...l,ref:s})});return a.displayName=`Primitive.${t}`,{...e,[t]:a}},{});function $D(e,t){e&&Ci.flushSync(()=>e.dispatchEvent(t))}nre($D,"dispatchDiscreteCustomEvent");var are=Object.defineProperty,ire=(e,t)=>are(e,"name",{value:t,configurable:!0});function ss(e){const t=v.useRef(e);return v.useEffect(()=>{t.current=e}),v.useMemo(()=>((...n)=>t.current?.(...n)),[])}ire(ss,"useCallbackRef");var sre=Object.defineProperty,Kn=(e,t)=>sre(e,"name",{value:t,configurable:!0}),hN="dismissableLayer.update",ore="dismissableLayer.pointerDownOutside",lre="dismissableLayer.focusOutside",uE,HD=v.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),cre=v.forwardRef(Kn(function(t,n){const{disableOutsidePointerEvents:a=!1,deferPointerDownOutside:i=!1,onEscapeKeyDown:s,onPointerDownOutside:o,onFocusOutside:l,onInteractOutside:c,onDismiss:h,...m}=t,p=v.useContext(HD),[x,b]=v.useState(null),j=x?.ownerDocument??globalThis?.document,[,N]=v.useState({}),_=Sn(n,b),S=Array.from(p.layers),[A]=[...p.layersWithOutsidePointerEventsDisabled].slice(-1),P=A?S.indexOf(A):-1,I=x?S.indexOf(x):-1,O=p.layersWithOutsidePointerEventsDisabled.size>0,M=I>=P,z=v.useRef(!1),$=WD(q=>{o?.(q),c?.(q),q.defaultPrevented||h?.()},{ownerDocument:j,deferPointerDownOutside:i,isDeferredPointerDownOutsideRef:z,dismissableSurfaces:p.dismissableSurfaces,shouldHandlePointerDownOutside:v.useCallback(q=>{if(!(q instanceof Node))return!1;const he=[...p.branches].some(ne=>ne.contains(q));return M&&!he},[p.branches,M])}),K=VD(q=>{if(i&&z.current)return;const he=q.target;[...p.branches].some(G=>G.contains(he))||(l?.(q),c?.(q),q.defaultPrevented||h?.())},j),X=x?I===S.length-1:!1,te=ss(q=>{q.key==="Escape"&&(s?.(q),!q.defaultPrevented&&h&&(q.preventDefault(),h()))});return v.useEffect(()=>{if(X)return j.addEventListener("keydown",te,{capture:!0}),()=>j.removeEventListener("keydown",te,{capture:!0})},[j,X,te]),v.useEffect(()=>{if(x)return a&&(p.layersWithOutsidePointerEventsDisabled.size===0&&(uE=j.body.style.pointerEvents,j.body.style.pointerEvents="none"),p.layersWithOutsidePointerEventsDisabled.add(x)),p.layers.add(x),fN(),()=>{a&&(p.layersWithOutsidePointerEventsDisabled.delete(x),p.layersWithOutsidePointerEventsDisabled.size===0&&(j.body.style.pointerEvents=uE))}},[x,j,a,p]),v.useEffect(()=>()=>{x&&(p.layers.delete(x),p.layersWithOutsidePointerEventsDisabled.delete(x),fN())},[x,p]),v.useEffect(()=>{const q=Kn(()=>N({}),"handleUpdate");return document.addEventListener(hN,q),()=>document.removeEventListener(hN,q)},[]),r.jsx(cr.div,{...m,ref:_,style:{pointerEvents:O?M?"auto":"none":void 0,...t.style},onFocusCapture:_n(t.onFocusCapture,K.onFocusCapture),onBlurCapture:_n(t.onBlurCapture,K.onBlurCapture),onPointerDownCapture:_n(t.onPointerDownCapture,$.onPointerDownCapture)})},"DismissableLayer"));function dre(){const e=v.useContext(HD),[t,n]=v.useState(null);return v.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}Kn(dre,"useDismissableLayerSurface");var ure=Kn(()=>!0,"IS_TRUE");function WD(e,t){const{ownerDocument:n=globalThis?.document,deferPointerDownOutside:a=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:s,shouldHandlePointerDownOutside:o=ure}=t,l=ss(e),c=v.useRef(!1),h=v.useRef(!1),m=v.useRef(new Map),p=v.useRef(()=>{});return v.useEffect(()=>{function x(){h.current=!1,i.current=!1,m.current.clear()}Kn(x,"resetOutsideInteraction");function b(){return Array.from(m.current.values()).some(Boolean)}Kn(b,"isOutsideInteractionIntercepted");function j(P){if(!h.current)return;const I=P.target;I instanceof Node&&[...s].some(M=>M.contains(I))||m.current.set(P.type,!0),P.type==="click"&&window.setTimeout(()=>{h.current&&p.current()},0)}Kn(j,"handleInteractionCapture");function N(P){h.current&&m.current.set(P.type,!1)}Kn(N,"handleInteractionBubble");const _=Kn(P=>{if(P.target&&!c.current){let I=function(){n.removeEventListener("click",p.current);const M=b();x(),M||B2(ore,l,O,{discrete:!0})};if(Kn(I,"handleAndDispatchPointerDownOutsideEvent"),!o(P.target)){n.removeEventListener("click",p.current),x(),c.current=!1;return}const O={originalEvent:P};h.current=!0,i.current=a&&P.button===0,m.current.clear(),!a||P.button!==0?I():(n.removeEventListener("click",p.current),p.current=I,n.addEventListener("click",p.current,{once:!0}))}else n.removeEventListener("click",p.current),x();c.current=!1},"handlePointerDown"),S=["pointerup","mousedown","mouseup","touchstart","touchend","click"];for(const P of S)n.addEventListener(P,j,!0),n.addEventListener(P,N);const A=window.setTimeout(()=>{n.addEventListener("pointerdown",_)},0);return()=>{window.clearTimeout(A),n.removeEventListener("pointerdown",_),n.removeEventListener("click",p.current);for(const P of S)n.removeEventListener(P,j,!0),n.removeEventListener(P,N)}},[n,l,a,i,s,o]),{onPointerDownCapture:Kn(()=>c.current=!0,"onPointerDownCapture")}}Kn(WD,"usePointerDownOutside");function VD(e,t=globalThis?.document){const n=ss(e),a=v.useRef(!1);return v.useEffect(()=>{const i=Kn(s=>{s.target&&!a.current&&B2(lre,n,{originalEvent:s},{discrete:!1})},"handleFocus");return t.addEventListener("focusin",i),()=>t.removeEventListener("focusin",i)},[t,n]),{onFocusCapture:Kn(()=>a.current=!0,"onFocusCapture"),onBlurCapture:Kn(()=>a.current=!1,"onBlurCapture")}}Kn(VD,"useFocusOutside");function fN(){const e=new CustomEvent(hN);document.dispatchEvent(e)}Kn(fN,"dispatchUpdate");function B2(e,t,n,{discrete:a}){const i=n.originalEvent.target,s=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),a?$D(i,s):i.dispatchEvent(s)}Kn(B2,"handleAndDispatchCustomEvent");var hre=Object.defineProperty,F2=(e,t)=>hre(e,"name",{value:t,configurable:!0}),_x=0,tu=null;function fre(e){return z2(),e.children}F2(fre,"FocusGuards");function z2(){v.useEffect(()=>{tu||(tu={start:mN(),end:mN()});const{start:e,end:t}=tu;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement("afterbegin",e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement("beforeend",t),_x++,()=>{_x===1&&(tu?.start.remove(),tu?.end.remove(),tu=null),_x=Math.max(0,_x-1)}},[])}F2(z2,"useFocusGuards");function mN(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}F2(mN,"createFocusGuard");var mre=Object.defineProperty,Mr=(e,t)=>mre(e,"name",{value:t,configurable:!0}),r1="focusScope.autoFocusOnMount",a1="focusScope.autoFocusOnUnmount",hE={bubbles:!1,cancelable:!0},pre=v.forwardRef(Mr(function(t,n){const{loop:a=!1,trapped:i=!1,onMountAutoFocus:s,onUnmountAutoFocus:o,...l}=t,[c,h]=v.useState(null),m=ss(s),p=ss(o),x=v.useRef(null),b=Sn(n,h),j=v.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;v.useEffect(()=>{if(i){let _=function(I){if(j.paused||!c)return;const O=I.target;c.contains(O)?x.current=O:Vs(x.current,{select:!0})},S=function(I){if(j.paused||!c)return;const O=I.relatedTarget;O!==null&&(c.contains(O)||Vs(x.current,{select:!0}))},A=function(I){if(document.activeElement===document.body)for(const M of I)M.removedNodes.length>0&&Vs(c)};Mr(_,"handleFocusIn"),Mr(S,"handleFocusOut"),Mr(A,"handleMutations"),document.addEventListener("focusin",_),document.addEventListener("focusout",S);const P=new MutationObserver(A);return c&&P.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",_),document.removeEventListener("focusout",S),P.disconnect()}}},[i,c,j.paused]),v.useEffect(()=>{if(c){fE.add(j);const _=document.activeElement;if(!c.contains(_)){const A=new CustomEvent(r1,hE);c.addEventListener(r1,m),c.dispatchEvent(A),A.defaultPrevented||(UD(YD($2(c)),{select:!0}),document.activeElement===_&&Vs(c))}return()=>{c.removeEventListener(r1,m),setTimeout(()=>{const A=new CustomEvent(a1,hE);c.addEventListener(a1,p),c.dispatchEvent(A),A.defaultPrevented||Vs(_??document.body,{select:!0}),c.removeEventListener(a1,p),fE.remove(j)},0)}}},[c,m,p,j]);const N=v.useCallback(_=>{if(!a&&!i||j.paused)return;const S=_.key==="Tab"&&!_.altKey&&!_.ctrlKey&&!_.metaKey,A=document.activeElement;if(S&&A){const P=_.currentTarget,[I,O]=qD(P);I&&O?!_.shiftKey&&A===O?(_.preventDefault(),a&&Vs(I,{select:!0})):_.shiftKey&&A===I&&(_.preventDefault(),a&&Vs(O,{select:!0})):A===P&&_.preventDefault()}},[a,i,j.paused]);return r.jsx(cr.div,{tabIndex:-1,...l,ref:b,onKeyDown:N})},"FocusScope"));function UD(e,{select:t=!1}={}){const n=document.activeElement;for(const a of e)if(Vs(a,{select:t}),document.activeElement!==n)return}Mr(UD,"focusFirst");function qD(e){const t=$2(e),n=pN(t,e),a=pN(t.reverse(),e);return[n,a]}Mr(qD,"getTabbableEdges");function $2(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:Mr(a=>{const i=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||i?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},"acceptNode")});for(;n.nextNode();)t.push(n.currentNode);return t}Mr($2,"getTabbableCandidates");function pN(e,t){const n=typeof t.checkVisibility=="function"&&t.checkVisibility({checkVisibilityCSS:!0});for(const a of e)if(!(n?!a.checkVisibility({checkVisibilityCSS:!0}):GD(a,{upTo:t})))return a}Mr(pN,"findVisible");function GD(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}Mr(GD,"isHidden");function KD(e){return e instanceof HTMLInputElement&&"select"in e}Mr(KD,"isSelectableInput");function Vs(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&KD(e)&&t&&e.select()}}Mr(Vs,"focus");var fE=ZD();function ZD(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=gN(e,t),e.unshift(t)},remove(t){e=gN(e,t),e[0]?.resume()}}}Mr(ZD,"createFocusScopesStack");function gN(e,t){const n=[...e],a=n.indexOf(t);return a!==-1&&n.splice(a,1),n}Mr(gN,"arrayRemove");function YD(e){return e.filter(t=>t.tagName!=="A")}Mr(YD,"removeLinks");var or=globalThis?.document?v.useLayoutEffect:()=>{},gre=Object.defineProperty,xre=(e,t)=>gre(e,"name",{value:t,configurable:!0}),yre=Vc[" useId ".trim().toString()]||(()=>{}),vre=0;function H2(e){const[t,n]=v.useState(yre());return or(()=>{e||n(a=>a??String(vre++))},[e]),e||(t?`radix-${t}`:"")}xre(H2,"useId");const bre=["top","right","bottom","left"],vl=Math.min,ga=Math.max,My=Math.round,Sx=Math.floor,rs=e=>({x:e,y:e}),wre={left:"right",right:"left",bottom:"top",top:"bottom"},jre={start:"end",end:"start"};function xN(e,t,n){return ga(e,vl(t,n))}function ro(e,t){return typeof e=="function"?e(t):e}function ao(e){return e.split("-")[0]}function mh(e){return e.split("-")[1]}function W2(e){return e==="x"?"y":"x"}function V2(e){return e==="y"?"height":"width"}function bl(e){return["top","bottom"].includes(ao(e))?"y":"x"}function U2(e){return W2(bl(e))}function Nre(e,t,n){n===void 0&&(n=!1);const a=mh(e),i=U2(e),s=V2(i);let o=i==="x"?a===(n?"end":"start")?"right":"left":a==="start"?"bottom":"top";return t.reference[s]>t.floating[s]&&(o=Ly(o)),[o,Ly(o)]}function kre(e){const t=Ly(e);return[yN(e),t,yN(t)]}function yN(e){return e.replace(/start|end/g,t=>jre[t])}function _re(e,t,n){const a=["left","right"],i=["right","left"],s=["top","bottom"],o=["bottom","top"];switch(e){case"top":case"bottom":return n?t?i:a:t?a:i;case"left":case"right":return t?s:o;default:return[]}}function Sre(e,t,n,a){const i=mh(e);let s=_re(ao(e),n==="start",a);return i&&(s=s.map(o=>o+"-"+i),t&&(s=s.concat(s.map(yN)))),s}function Ly(e){return e.replace(/left|right|bottom|top/g,t=>wre[t])}function Cre(e){return{top:0,right:0,bottom:0,left:0,...e}}function JD(e){return typeof e!="number"?Cre(e):{top:e,right:e,bottom:e,left:e}}function Dy(e){const{x:t,y:n,width:a,height:i}=e;return{width:a,height:i,top:n,left:t,right:t+a,bottom:n+i,x:t,y:n}}function mE(e,t,n){let{reference:a,floating:i}=e;const s=bl(t),o=U2(t),l=V2(o),c=ao(t),h=s==="y",m=a.x+a.width/2-i.width/2,p=a.y+a.height/2-i.height/2,x=a[l]/2-i[l]/2;let b;switch(c){case"top":b={x:m,y:a.y-i.height};break;case"bottom":b={x:m,y:a.y+a.height};break;case"right":b={x:a.x+a.width,y:p};break;case"left":b={x:a.x-i.width,y:p};break;default:b={x:a.x,y:a.y}}switch(mh(t)){case"start":b[o]-=x*(n&&h?-1:1);break;case"end":b[o]+=x*(n&&h?-1:1);break}return b}const Tre=async(e,t,n)=>{const{placement:a="bottom",strategy:i="absolute",middleware:s=[],platform:o}=n,l=s.filter(Boolean),c=await(o.isRTL==null?void 0:o.isRTL(t));let h=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:m,y:p}=mE(h,a,c),x=a,b={},j=0;for(let N=0;N<l.length;N++){const{name:_,fn:S}=l[N],{x:A,y:P,data:I,reset:O}=await S({x:m,y:p,initialPlacement:a,placement:x,strategy:i,middlewareData:b,rects:h,platform:o,elements:{reference:e,floating:t}});m=A??m,p=P??p,b={...b,[_]:{...b[_],...I}},O&&j<=50&&(j++,typeof O=="object"&&(O.placement&&(x=O.placement),O.rects&&(h=O.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):O.rects),{x:m,y:p}=mE(h,x,c)),N=-1)}return{x:m,y:p,placement:x,strategy:i,middlewareData:b}};async function Bm(e,t){var n;t===void 0&&(t={});const{x:a,y:i,platform:s,rects:o,elements:l,strategy:c}=e,{boundary:h="clippingAncestors",rootBoundary:m="viewport",elementContext:p="floating",altBoundary:x=!1,padding:b=0}=ro(t,e),j=JD(b),_=l[x?p==="floating"?"reference":"floating":p],S=Dy(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(_)))==null||n?_:_.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(l.floating)),boundary:h,rootBoundary:m,strategy:c})),A=p==="floating"?{x:a,y:i,width:o.floating.width,height:o.floating.height}:o.reference,P=await(s.getOffsetParent==null?void 0:s.getOffsetParent(l.floating)),I=await(s.isElement==null?void 0:s.isElement(P))?await(s.getScale==null?void 0:s.getScale(P))||{x:1,y:1}:{x:1,y:1},O=Dy(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:A,offsetParent:P,strategy:c}):A);return{top:(S.top-O.top+j.top)/I.y,bottom:(O.bottom-S.bottom+j.bottom)/I.y,left:(S.left-O.left+j.left)/I.x,right:(O.right-S.right+j.right)/I.x}}const Are=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:a,placement:i,rects:s,platform:o,elements:l,middlewareData:c}=t,{element:h,padding:m=0}=ro(e,t)||{};if(h==null)return{};const p=JD(m),x={x:n,y:a},b=U2(i),j=V2(b),N=await o.getDimensions(h),_=b==="y",S=_?"top":"left",A=_?"bottom":"right",P=_?"clientHeight":"clientWidth",I=s.reference[j]+s.reference[b]-x[b]-s.floating[j],O=x[b]-s.reference[b],M=await(o.getOffsetParent==null?void 0:o.getOffsetParent(h));let z=M?M[P]:0;(!z||!await(o.isElement==null?void 0:o.isElement(M)))&&(z=l.floating[P]||s.floating[j]);const $=I/2-O/2,K=z/2-N[j]/2-1,X=vl(p[S],K),te=vl(p[A],K),q=X,he=z-N[j]-te,ne=z/2-N[j]/2+$,G=xN(q,ne,he),H=!c.arrow&&mh(i)!=null&&ne!==G&&s.reference[j]/2-(ne<q?X:te)-N[j]/2<0,Q=H?ne<q?ne-q:ne-he:0;return{[b]:x[b]+Q,data:{[b]:G,centerOffset:ne-G-Q,...H&&{alignmentOffset:Q}},reset:H}}}),Pre=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,a;const{placement:i,middlewareData:s,rects:o,initialPlacement:l,platform:c,elements:h}=t,{mainAxis:m=!0,crossAxis:p=!0,fallbackPlacements:x,fallbackStrategy:b="bestFit",fallbackAxisSideDirection:j="none",flipAlignment:N=!0,..._}=ro(e,t);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const S=ao(i),A=bl(l),P=ao(l)===l,I=await(c.isRTL==null?void 0:c.isRTL(h.floating)),O=x||(P||!N?[Ly(l)]:kre(l)),M=j!=="none";!x&&M&&O.push(...Sre(l,N,j,I));const z=[l,...O],$=await Bm(t,_),K=[];let X=((a=s.flip)==null?void 0:a.overflows)||[];if(m&&K.push($[S]),p){const ne=Nre(i,o,I);K.push($[ne[0]],$[ne[1]])}if(X=[...X,{placement:i,overflows:K}],!K.every(ne=>ne<=0)){var te,q;const ne=(((te=s.flip)==null?void 0:te.index)||0)+1,G=z[ne];if(G)return{data:{index:ne,overflows:X},reset:{placement:G}};let H=(q=X.filter(Q=>Q.overflows[0]<=0).sort((Q,W)=>Q.overflows[1]-W.overflows[1])[0])==null?void 0:q.placement;if(!H)switch(b){case"bestFit":{var he;const Q=(he=X.filter(W=>{if(M){const ie=bl(W.placement);return ie===A||ie==="y"}return!0}).map(W=>[W.placement,W.overflows.filter(ie=>ie>0).reduce((ie,Y)=>ie+Y,0)]).sort((W,ie)=>W[1]-ie[1])[0])==null?void 0:he[0];Q&&(H=Q);break}case"initialPlacement":H=l;break}if(i!==H)return{reset:{placement:H}}}return{}}}};function pE(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function gE(e){return bre.some(t=>e[t]>=0)}const Ere=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:a="referenceHidden",...i}=ro(e,t);switch(a){case"referenceHidden":{const s=await Bm(t,{...i,elementContext:"reference"}),o=pE(s,n.reference);return{data:{referenceHiddenOffsets:o,referenceHidden:gE(o)}}}case"escaped":{const s=await Bm(t,{...i,altBoundary:!0}),o=pE(s,n.floating);return{data:{escapedOffsets:o,escaped:gE(o)}}}default:return{}}}}};async function Ore(e,t){const{placement:n,platform:a,elements:i}=e,s=await(a.isRTL==null?void 0:a.isRTL(i.floating)),o=ao(n),l=mh(n),c=bl(n)==="y",h=["left","top"].includes(o)?-1:1,m=s&&c?-1:1,p=ro(t,e);let{mainAxis:x,crossAxis:b,alignmentAxis:j}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return l&&typeof j=="number"&&(b=l==="end"?j*-1:j),c?{x:b*m,y:x*h}:{x:x*h,y:b*m}}const Rre=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,a;const{x:i,y:s,placement:o,middlewareData:l}=t,c=await Ore(t,e);return o===((n=l.offset)==null?void 0:n.placement)&&(a=l.arrow)!=null&&a.alignmentOffset?{}:{x:i+c.x,y:s+c.y,data:{...c,placement:o}}}}},Ire=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:a,placement:i}=t,{mainAxis:s=!0,crossAxis:o=!1,limiter:l={fn:_=>{let{x:S,y:A}=_;return{x:S,y:A}}},...c}=ro(e,t),h={x:n,y:a},m=await Bm(t,c),p=bl(ao(i)),x=W2(p);let b=h[x],j=h[p];if(s){const _=x==="y"?"top":"left",S=x==="y"?"bottom":"right",A=b+m[_],P=b-m[S];b=xN(A,b,P)}if(o){const _=p==="y"?"top":"left",S=p==="y"?"bottom":"right",A=j+m[_],P=j-m[S];j=xN(A,j,P)}const N=l.fn({...t,[x]:b,[p]:j});return{...N,data:{x:N.x-n,y:N.y-a,enabled:{[x]:s,[p]:o}}}}}},Mre=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:a,placement:i,rects:s,middlewareData:o}=t,{offset:l=0,mainAxis:c=!0,crossAxis:h=!0}=ro(e,t),m={x:n,y:a},p=bl(i),x=W2(p);let b=m[x],j=m[p];const N=ro(l,t),_=typeof N=="number"?{mainAxis:N,crossAxis:0}:{mainAxis:0,crossAxis:0,...N};if(c){const P=x==="y"?"height":"width",I=s.reference[x]-s.floating[P]+_.mainAxis,O=s.reference[x]+s.reference[P]-_.mainAxis;b<I?b=I:b>O&&(b=O)}if(h){var S,A;const P=x==="y"?"width":"height",I=["top","left"].includes(ao(i)),O=s.reference[p]-s.floating[P]+(I&&((S=o.offset)==null?void 0:S[p])||0)+(I?0:_.crossAxis),M=s.reference[p]+s.reference[P]+(I?0:((A=o.offset)==null?void 0:A[p])||0)-(I?_.crossAxis:0);j<O?j=O:j>M&&(j=M)}return{[x]:b,[p]:j}}}},Lre=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,a;const{placement:i,rects:s,platform:o,elements:l}=t,{apply:c=()=>{},...h}=ro(e,t),m=await Bm(t,h),p=ao(i),x=mh(i),b=bl(i)==="y",{width:j,height:N}=s.floating;let _,S;p==="top"||p==="bottom"?(_=p,S=x===(await(o.isRTL==null?void 0:o.isRTL(l.floating))?"start":"end")?"left":"right"):(S=p,_=x==="end"?"top":"bottom");const A=N-m.top-m.bottom,P=j-m.left-m.right,I=vl(N-m[_],A),O=vl(j-m[S],P),M=!t.middlewareData.shift;let z=I,$=O;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&($=P),(a=t.middlewareData.shift)!=null&&a.enabled.y&&(z=A),M&&!x){const X=ga(m.left,0),te=ga(m.right,0),q=ga(m.top,0),he=ga(m.bottom,0);b?$=j-2*(X!==0||te!==0?X+te:ga(m.left,m.right)):z=N-2*(q!==0||he!==0?q+he:ga(m.top,m.bottom))}await c({...t,availableWidth:$,availableHeight:z});const K=await o.getDimensions(l.floating);return j!==K.width||N!==K.height?{reset:{rects:!0}}:{}}}};function Yv(){return typeof window<"u"}function ph(e){return XD(e)?(e.nodeName||"").toLowerCase():"#document"}function wa(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function hs(e){var t;return(t=(XD(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function XD(e){return Yv()?e instanceof Node||e instanceof wa(e).Node:!1}function ji(e){return Yv()?e instanceof Element||e instanceof wa(e).Element:!1}function os(e){return Yv()?e instanceof HTMLElement||e instanceof wa(e).HTMLElement:!1}function xE(e){return!Yv()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof wa(e).ShadowRoot}function yp(e){const{overflow:t,overflowX:n,overflowY:a,display:i}=Ni(e);return/auto|scroll|overlay|hidden|clip/.test(t+a+n)&&!["inline","contents"].includes(i)}function Dre(e){return["table","td","th"].includes(ph(e))}function Jv(e){return[":popover-open",":modal"].some(t=>{try{return e.matches(t)}catch{return!1}})}function q2(e){const t=G2(),n=ji(e)?Ni(e):e;return n.transform!=="none"||n.perspective!=="none"||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||["transform","perspective","filter"].some(a=>(n.willChange||"").includes(a))||["paint","layout","strict","content"].some(a=>(n.contain||"").includes(a))}function Bre(e){let t=wl(e);for(;os(t)&&!Vu(t);){if(q2(t))return t;if(Jv(t))return null;t=wl(t)}return null}function G2(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}function Vu(e){return["html","body","#document"].includes(ph(e))}function Ni(e){return wa(e).getComputedStyle(e)}function Xv(e){return ji(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function wl(e){if(ph(e)==="html")return e;const t=e.assignedSlot||e.parentNode||xE(e)&&e.host||hs(e);return xE(t)?t.host:t}function QD(e){const t=wl(e);return Vu(t)?e.ownerDocument?e.ownerDocument.body:e.body:os(t)&&yp(t)?t:QD(t)}function Fm(e,t,n){var a;t===void 0&&(t=[]),n===void 0&&(n=!0);const i=QD(e),s=i===((a=e.ownerDocument)==null?void 0:a.body),o=wa(i);if(s){const l=vN(o);return t.concat(o,o.visualViewport||[],yp(i)?i:[],l&&n?Fm(l):[])}return t.concat(i,Fm(i,[],n))}function vN(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function e8(e){const t=Ni(e);let n=parseFloat(t.width)||0,a=parseFloat(t.height)||0;const i=os(e),s=i?e.offsetWidth:n,o=i?e.offsetHeight:a,l=My(n)!==s||My(a)!==o;return l&&(n=s,a=o),{width:n,height:a,$:l}}function K2(e){return ji(e)?e:e.contextElement}function Tu(e){const t=K2(e);if(!os(t))return rs(1);const n=t.getBoundingClientRect(),{width:a,height:i,$:s}=e8(t);let o=(s?My(n.width):n.width)/a,l=(s?My(n.height):n.height)/i;return(!o||!Number.isFinite(o))&&(o=1),(!l||!Number.isFinite(l))&&(l=1),{x:o,y:l}}const Fre=rs(0);function t8(e){const t=wa(e);return!G2()||!t.visualViewport?Fre:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function zre(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==wa(e)?!1:t}function Ic(e,t,n,a){t===void 0&&(t=!1),n===void 0&&(n=!1);const i=e.getBoundingClientRect(),s=K2(e);let o=rs(1);t&&(a?ji(a)&&(o=Tu(a)):o=Tu(e));const l=zre(s,n,a)?t8(s):rs(0);let c=(i.left+l.x)/o.x,h=(i.top+l.y)/o.y,m=i.width/o.x,p=i.height/o.y;if(s){const x=wa(s),b=a&&ji(a)?wa(a):a;let j=x,N=vN(j);for(;N&&a&&b!==j;){const _=Tu(N),S=N.getBoundingClientRect(),A=Ni(N),P=S.left+(N.clientLeft+parseFloat(A.paddingLeft))*_.x,I=S.top+(N.clientTop+parseFloat(A.paddingTop))*_.y;c*=_.x,h*=_.y,m*=_.x,p*=_.y,c+=P,h+=I,j=wa(N),N=vN(j)}}return Dy({width:m,height:p,x:c,y:h})}function Z2(e,t){const n=Xv(e).scrollLeft;return t?t.left+n:Ic(hs(e)).left+n}function n8(e,t,n){n===void 0&&(n=!1);const a=e.getBoundingClientRect(),i=a.left+t.scrollLeft-(n?0:Z2(e,a)),s=a.top+t.scrollTop;return{x:i,y:s}}function $re(e){let{elements:t,rect:n,offsetParent:a,strategy:i}=e;const s=i==="fixed",o=hs(a),l=t?Jv(t.floating):!1;if(a===o||l&&s)return n;let c={scrollLeft:0,scrollTop:0},h=rs(1);const m=rs(0),p=os(a);if((p||!p&&!s)&&((ph(a)!=="body"||yp(o))&&(c=Xv(a)),os(a))){const b=Ic(a);h=Tu(a),m.x=b.x+a.clientLeft,m.y=b.y+a.clientTop}const x=o&&!p&&!s?n8(o,c,!0):rs(0);return{width:n.width*h.x,height:n.height*h.y,x:n.x*h.x-c.scrollLeft*h.x+m.x+x.x,y:n.y*h.y-c.scrollTop*h.y+m.y+x.y}}function Hre(e){return Array.from(e.getClientRects())}function Wre(e){const t=hs(e),n=Xv(e),a=e.ownerDocument.body,i=ga(t.scrollWidth,t.clientWidth,a.scrollWidth,a.clientWidth),s=ga(t.scrollHeight,t.clientHeight,a.scrollHeight,a.clientHeight);let o=-n.scrollLeft+Z2(e);const l=-n.scrollTop;return Ni(a).direction==="rtl"&&(o+=ga(t.clientWidth,a.clientWidth)-i),{width:i,height:s,x:o,y:l}}function Vre(e,t){const n=wa(e),a=hs(e),i=n.visualViewport;let s=a.clientWidth,o=a.clientHeight,l=0,c=0;if(i){s=i.width,o=i.height;const h=G2();(!h||h&&t==="fixed")&&(l=i.offsetLeft,c=i.offsetTop)}return{width:s,height:o,x:l,y:c}}function Ure(e,t){const n=Ic(e,!0,t==="fixed"),a=n.top+e.clientTop,i=n.left+e.clientLeft,s=os(e)?Tu(e):rs(1),o=e.clientWidth*s.x,l=e.clientHeight*s.y,c=i*s.x,h=a*s.y;return{width:o,height:l,x:c,y:h}}function yE(e,t,n){let a;if(t==="viewport")a=Vre(e,n);else if(t==="document")a=Wre(hs(e));else if(ji(t))a=Ure(t,n);else{const i=t8(e);a={x:t.x-i.x,y:t.y-i.y,width:t.width,height:t.height}}return Dy(a)}function r8(e,t){const n=wl(e);return n===t||!ji(n)||Vu(n)?!1:Ni(n).position==="fixed"||r8(n,t)}function qre(e,t){const n=t.get(e);if(n)return n;let a=Fm(e,[],!1).filter(l=>ji(l)&&ph(l)!=="body"),i=null;const s=Ni(e).position==="fixed";let o=s?wl(e):e;for(;ji(o)&&!Vu(o);){const l=Ni(o),c=q2(o);!c&&l.position==="fixed"&&(i=null),(s?!c&&!i:!c&&l.position==="static"&&!!i&&["absolute","fixed"].includes(i.position)||yp(o)&&!c&&r8(e,o))?a=a.filter(m=>m!==o):i=l,o=wl(o)}return t.set(e,a),a}function Gre(e){let{element:t,boundary:n,rootBoundary:a,strategy:i}=e;const o=[...n==="clippingAncestors"?Jv(t)?[]:qre(t,this._c):[].concat(n),a],l=o[0],c=o.reduce((h,m)=>{const p=yE(t,m,i);return h.top=ga(p.top,h.top),h.right=vl(p.right,h.right),h.bottom=vl(p.bottom,h.bottom),h.left=ga(p.left,h.left),h},yE(t,l,i));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function Kre(e){const{width:t,height:n}=e8(e);return{width:t,height:n}}function Zre(e,t,n){const a=os(t),i=hs(t),s=n==="fixed",o=Ic(e,!0,s,t);let l={scrollLeft:0,scrollTop:0};const c=rs(0);if(a||!a&&!s)if((ph(t)!=="body"||yp(i))&&(l=Xv(t)),a){const x=Ic(t,!0,s,t);c.x=x.x+t.clientLeft,c.y=x.y+t.clientTop}else i&&(c.x=Z2(i));const h=i&&!a&&!s?n8(i,l):rs(0),m=o.left+l.scrollLeft-c.x-h.x,p=o.top+l.scrollTop-c.y-h.y;return{x:m,y:p,width:o.width,height:o.height}}function i1(e){return Ni(e).position==="static"}function vE(e,t){if(!os(e)||Ni(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return hs(e)===n&&(n=n.ownerDocument.body),n}function a8(e,t){const n=wa(e);if(Jv(e))return n;if(!os(e)){let i=wl(e);for(;i&&!Vu(i);){if(ji(i)&&!i1(i))return i;i=wl(i)}return n}let a=vE(e,t);for(;a&&Dre(a)&&i1(a);)a=vE(a,t);return a&&Vu(a)&&i1(a)&&!q2(a)?n:a||Bre(e)||n}const Yre=async function(e){const t=this.getOffsetParent||a8,n=this.getDimensions,a=await n(e.floating);return{reference:Zre(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function Jre(e){return Ni(e).direction==="rtl"}const Xre={convertOffsetParentRelativeRectToViewportRelativeRect:$re,getDocumentElement:hs,getClippingRect:Gre,getOffsetParent:a8,getElementRects:Yre,getClientRects:Hre,getDimensions:Kre,getScale:Tu,isElement:ji,isRTL:Jre};function Qre(e,t){let n=null,a;const i=hs(e);function s(){var l;clearTimeout(a),(l=n)==null||l.disconnect(),n=null}function o(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),s();const{left:h,top:m,width:p,height:x}=e.getBoundingClientRect();if(l||t(),!p||!x)return;const b=Sx(m),j=Sx(i.clientWidth-(h+p)),N=Sx(i.clientHeight-(m+x)),_=Sx(h),A={rootMargin:-b+"px "+-j+"px "+-N+"px "+-_+"px",threshold:ga(0,vl(1,c))||1};let P=!0;function I(O){const M=O[0].intersectionRatio;if(M!==c){if(!P)return o();M?o(!1,M):a=setTimeout(()=>{o(!1,1e-7)},1e3)}P=!1}try{n=new IntersectionObserver(I,{...A,root:i.ownerDocument})}catch{n=new IntersectionObserver(I,A)}n.observe(e)}return o(!0),s}function eae(e,t,n,a){a===void 0&&(a={});const{ancestorScroll:i=!0,ancestorResize:s=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=a,h=K2(e),m=i||s?[...h?Fm(h):[],...Fm(t)]:[];m.forEach(S=>{i&&S.addEventListener("scroll",n,{passive:!0}),s&&S.addEventListener("resize",n)});const p=h&&l?Qre(h,n):null;let x=-1,b=null;o&&(b=new ResizeObserver(S=>{let[A]=S;A&&A.target===h&&b&&(b.unobserve(t),cancelAnimationFrame(x),x=requestAnimationFrame(()=>{var P;(P=b)==null||P.observe(t)})),n()}),h&&!c&&b.observe(h),b.observe(t));let j,N=c?Ic(e):null;c&&_();function _(){const S=Ic(e);N&&(S.x!==N.x||S.y!==N.y||S.width!==N.width||S.height!==N.height)&&n(),N=S,j=requestAnimationFrame(_)}return n(),()=>{var S;m.forEach(A=>{i&&A.removeEventListener("scroll",n),s&&A.removeEventListener("resize",n)}),p?.(),(S=b)==null||S.disconnect(),b=null,c&&cancelAnimationFrame(j)}}const tae=Rre,nae=Ire,rae=Pre,aae=Lre,iae=Ere,bE=Are,sae=Mre,oae=(e,t,n)=>{const a=new Map,i={platform:Xre,...n},s={...i.platform,_c:a};return Tre(e,t,{...i,platform:s})};var hy=typeof document<"u"?v.useLayoutEffect:v.useEffect;function By(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,a,i;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(a=n;a--!==0;)if(!By(e[a],t[a]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(a=n;a--!==0;)if(!{}.hasOwnProperty.call(t,i[a]))return!1;for(a=n;a--!==0;){const s=i[a];if(!(s==="_owner"&&e.$$typeof)&&!By(e[s],t[s]))return!1}return!0}return e!==e&&t!==t}function i8(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function wE(e,t){const n=i8(e);return Math.round(t*n)/n}function s1(e){const t=v.useRef(e);return hy(()=>{t.current=e}),t}function lae(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:a=[],platform:i,elements:{reference:s,floating:o}={},transform:l=!0,whileElementsMounted:c,open:h}=e,[m,p]=v.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[x,b]=v.useState(a);By(x,a)||b(a);const[j,N]=v.useState(null),[_,S]=v.useState(null),A=v.useCallback(W=>{W!==M.current&&(M.current=W,N(W))},[]),P=v.useCallback(W=>{W!==z.current&&(z.current=W,S(W))},[]),I=s||j,O=o||_,M=v.useRef(null),z=v.useRef(null),$=v.useRef(m),K=c!=null,X=s1(c),te=s1(i),q=s1(h),he=v.useCallback(()=>{if(!M.current||!z.current)return;const W={placement:t,strategy:n,middleware:x};te.current&&(W.platform=te.current),oae(M.current,z.current,W).then(ie=>{const Y={...ie,isPositioned:q.current!==!1};ne.current&&!By($.current,Y)&&($.current=Y,Ci.flushSync(()=>{p(Y)}))})},[x,t,n,te,q]);hy(()=>{h===!1&&$.current.isPositioned&&($.current.isPositioned=!1,p(W=>({...W,isPositioned:!1})))},[h]);const ne=v.useRef(!1);hy(()=>(ne.current=!0,()=>{ne.current=!1}),[]),hy(()=>{if(I&&(M.current=I),O&&(z.current=O),I&&O){if(X.current)return X.current(I,O,he);he()}},[I,O,he,X,K]);const G=v.useMemo(()=>({reference:M,floating:z,setReference:A,setFloating:P}),[A,P]),H=v.useMemo(()=>({reference:I,floating:O}),[I,O]),Q=v.useMemo(()=>{const W={position:n,left:0,top:0};if(!H.floating)return W;const ie=wE(H.floating,m.x),Y=wE(H.floating,m.y);return l?{...W,transform:"translate("+ie+"px, "+Y+"px)",...i8(H.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:ie,top:Y}},[n,l,H.floating,m.x,m.y]);return v.useMemo(()=>({...m,update:he,refs:G,elements:H,floatingStyles:Q}),[m,he,G,H,Q])}const cae=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:a,padding:i}=typeof e=="function"?e(n):e;return a&&t(a)?a.current!=null?bE({element:a.current,padding:i}).fn(n):{}:a?bE({element:a,padding:i}).fn(n):{}}}},dae=(e,t)=>({...tae(e),options:[e,t]}),uae=(e,t)=>({...nae(e),options:[e,t]}),hae=(e,t)=>({...sae(e),options:[e,t]}),fae=(e,t)=>({...rae(e),options:[e,t]}),mae=(e,t)=>({...aae(e),options:[e,t]}),pae=(e,t)=>({...iae(e),options:[e,t]}),gae=(e,t)=>({...cae(e),options:[e,t]});var xae=Object.defineProperty,yae=(e,t)=>xae(e,"name",{value:t,configurable:!0});function s8(e){const[t,n]=v.useState(void 0);return or(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const a=new ResizeObserver(i=>{if(!Array.isArray(i)||!i.length)return;const s=i[0];let o,l;if("borderBoxSize"in s){const c=s.borderBoxSize,h=Array.isArray(c)?c[0]:c;o=h.inlineSize,l=h.blockSize}else o=e.offsetWidth,l=e.offsetHeight;n({width:o,height:l})});return a.observe(e,{box:"border-box"}),()=>a.unobserve(e)}else n(void 0)},[e]),t}yae(s8,"useSize");var vae=Object.defineProperty,ml=(e,t)=>vae(e,"name",{value:t,configurable:!0}),o8="Popper",[l8,c8]=xp(o8),[bae,d8]=l8(o8),wae=ml(e=>{const{__scopePopper:t,children:n}=e,[a,i]=v.useState(null),[s,o]=v.useState(void 0);return r.jsx(bae,{scope:t,anchor:a,onAnchorChange:i,placementState:s,setPlacementState:o,children:n})},"Popper"),jae="PopperAnchor",Nae=v.forwardRef(ml(function(t,n){const{__scopePopper:a,virtualRef:i,...s}=t,o=d8(jae,a),l=v.useRef(null),c=o.onAnchorChange,h=v.useCallback(N=>{l.current=N,N&&c(N)},[c]),m=Sn(n,h),p=v.useRef(null);v.useEffect(()=>{if(!i)return;const N=p.current;p.current=i.current,N!==p.current&&c(p.current)});const x=o.placementState&&Qv(o.placementState),b=x?.[0],j=x?.[1];return i?null:r.jsx(cr.div,{"data-radix-popper-side":b,"data-radix-popper-align":j,...s,ref:m})},"PopperAnchor")),u8="PopperContent",[kae,Y5e]=l8(u8),_ae=v.forwardRef(ml(function(t,n){const{__scopePopper:a,side:i="bottom",sideOffset:s=0,align:o="center",alignOffset:l=0,arrowPadding:c=0,avoidCollisions:h=!0,collisionBoundary:m=[],collisionPadding:p=0,sticky:x="partial",hideWhenDetached:b=!1,updatePositionStrategy:j="optimized",onPlaced:N,..._}=t,S=d8(u8,a),[A,P]=v.useState(null),I=Sn(n,P),[O,M]=v.useState(null),z=s8(O),$=z?.width??0,K=z?.height??0,X=i+(o!=="center"?"-"+o:""),te=typeof p=="number"?p:{top:0,right:0,bottom:0,left:0,...p},q=Array.isArray(m)?m:[m],he=q.length>0,ne={padding:te,boundary:q.filter(h8),altBoundary:he},{refs:G,floatingStyles:H,placement:Q,isPositioned:W,middlewareData:ie}=lae({strategy:"fixed",placement:X,whileElementsMounted:ml((...me)=>eae(...me,{animationFrame:j==="always"}),"whileElementsMounted"),elements:{reference:S.anchor},middleware:[dae({mainAxis:s+K,alignmentAxis:l}),h&&uae({mainAxis:!0,crossAxis:!1,limiter:x==="partial"?hae():void 0,...ne}),h&&fae({...ne}),mae({...ne,apply:ml(({elements:me,rects:Ae,availableWidth:Te,availableHeight:fe})=>{const{width:tt,height:at}=Ae.reference,Oe=me.floating.style;Oe.setProperty("--radix-popper-available-width",`${Te}px`),Oe.setProperty("--radix-popper-available-height",`${fe}px`),Oe.setProperty("--radix-popper-anchor-width",`${tt}px`),Oe.setProperty("--radix-popper-anchor-height",`${at}px`)},"apply")}),O&&gae({element:O,padding:c}),Sae({arrowWidth:$,arrowHeight:K}),b&&pae({strategy:"referenceHidden",...ne,boundary:he?ne.boundary:void 0})]}),Y=S.setPlacementState;or(()=>(Y(Q),()=>{Y(void 0)}),[Q,Y]);const[V,re]=Qv(Q),be=ss(N);or(()=>{W&&be?.()},[W,be]);const ge=ie.arrow?.x,Ne=ie.arrow?.y,we=ie.arrow?.centerOffset!==0,[Fe,Ce]=v.useState();return or(()=>{A&&Ce(window.getComputedStyle(A).zIndex)},[A]),r.jsx("div",{ref:G.setFloating,"data-radix-popper-content-wrapper":"",style:{...H,transform:W?H.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:Fe,"--radix-popper-transform-origin":[ie.transformOrigin?.x,ie.transformOrigin?.y].join(" "),...ie.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:r.jsx(kae,{scope:a,placedSide:V,placedAlign:re,onArrowChange:M,arrowX:ge,arrowY:Ne,shouldHideArrow:we,children:r.jsx(cr.div,{"data-side":V,"data-align":re,..._,ref:I,style:{..._.style,animation:W?_.style?.animation:"none"}})})})},"PopperContent"));function h8(e){return e!==null}ml(h8,"isNotNull");var Sae=ml(e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:a,middlewareData:i}=t,o=i.arrow?.centerOffset!==0,l=o?0:e.arrowWidth,c=o?0:e.arrowHeight,[h,m]=Qv(n),p={start:"0%",center:"50%",end:"100%"}[m],x=(i.arrow?.x??0)+l/2,b=(i.arrow?.y??0)+c/2;let j="",N="";return h==="bottom"?(j=o?p:`${x}px`,N=`${-c}px`):h==="top"?(j=o?p:`${x}px`,N=`${a.floating.height+c}px`):h==="right"?(j=`${-c}px`,N=o?p:`${b}px`):h==="left"&&(j=`${a.floating.width+c}px`,N=o?p:`${b}px`),{data:{x:j,y:N}}}}),"transformOrigin");function Qv(e){const[t,n="center"]=e.split("-");return[t,n]}ml(Qv,"getSideAndAlignFromPlacement");var Cae=wae,Tae=Nae,Aae=_ae,Pae=Object.defineProperty,Eae=(e,t)=>Pae(e,"name",{value:t,configurable:!0}),Oae=v.forwardRef(Eae(function(t,n){const{container:a,...i}=t,[s,o]=v.useState(!1);or(()=>o(!0),[]);const l=a||s&&globalThis?.document?.body;return l?Ci.createPortal(r.jsx(cr.div,{...i,ref:n}),l):null},"Portal")),Rae=Object.defineProperty,io=(e,t)=>Rae(e,"name",{value:t,configurable:!0});function f8(e,t){return v.useReducer((n,a)=>t[n][a]??n,e)}io(f8,"useStateMachine");var Iae=io(e=>{const{present:t,children:n}=e,a=m8(t),i=typeof n=="function"?n({present:a.isPresent}):v.Children.only(n),s=p8(a.ref,g8(i));return typeof n=="function"||a.isPresent?v.cloneElement(i,{ref:s}):null},"Presence");function m8(e){const[t,n]=v.useState(),a=v.useRef(null),i=v.useRef(e),s=v.useRef("none"),o=v.useRef(void 0),l=e?"mounted":"unmounted",[c,h]=f8(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return v.useEffect(()=>{c==="mounted"?(s.current=o.current??gu(a.current),o.current=void 0):s.current="none"},[c]),or(()=>{const m=a.current,p=i.current;if(p!==e){const b=s.current,j=gu(m);e?(o.current=j,h("MOUNT")):j==="none"||m?.display==="none"?h("UNMOUNT"):h(p&&b!==j?"ANIMATION_OUT":"UNMOUNT"),i.current=e}},[e,h]),or(()=>{if(t){let m;const p=t.ownerDocument.defaultView??window,x=io(j=>{const _=gu(a.current).includes(CSS.escape(j.animationName));if(j.target===t&&_&&(h("ANIMATION_END"),!i.current)){const S=t.style.animationFillMode;t.style.animationFillMode="forwards",m=p.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=S)})}},"handleAnimationEnd"),b=io(j=>{j.target===t&&(s.current=gu(a.current))},"handleAnimationStart");return t.addEventListener("animationstart",b),t.addEventListener("animationcancel",x),t.addEventListener("animationend",x),()=>{p.clearTimeout(m),t.removeEventListener("animationstart",b),t.removeEventListener("animationcancel",x),t.removeEventListener("animationend",x)}}else h("ANIMATION_END")},[t,h]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:v.useCallback(m=>{if(m){const p=getComputedStyle(m);a.current=p,o.current=gu(p)}else a.current=null;n(m)},[])}}io(m8,"usePresence");function bN(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}io(bN,"setRef");function p8(...e){const t=v.useRef(e);return t.current=e,v.useCallback(n=>{const a=t.current;let i=!1;const s=a.map(o=>{const l=bN(o,n);return!i&&typeof l=="function"&&(i=!0),l});if(i)return()=>{for(let o=0;o<s.length;o++){const l=s[o];typeof l=="function"?l():bN(a[o],null)}}},[])}io(p8,"useStableComposedRefs");function gu(e){return e?.animationName||"none"}io(gu,"getAnimationName");function g8(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}io(g8,"getElementRef");var Mae=globalThis?.document?v.useLayoutEffect:()=>{},Lae=Object.defineProperty,Dae=(e,t)=>Lae(e,"name",{value:t,configurable:!0}),jE=Vc[" useEffectEvent ".trim().toString()],NE=Vc[" useInsertionEffect ".trim().toString()];function x8(e){if(typeof jE=="function")return jE(e);const t=v.useRef(()=>{throw new Error("Cannot call an event handler while rendering.")});return typeof NE=="function"?NE(()=>{t.current=e}):Mae(()=>{t.current=e}),v.useMemo(()=>((...n)=>t.current?.(...n)),[])}Dae(x8,"useEffectEvent");var Bae=Object.defineProperty,vp=(e,t)=>Bae(e,"name",{value:t,configurable:!0}),Fae=Vc[" useInsertionEffect ".trim().toString()]||or;function wN({prop:e,defaultProp:t,onChange:n=vp(()=>{},"onChange"),caller:a}){const[i,s,o]=y8({defaultProp:t,onChange:n}),l=e!==void 0,c=l?e:i,h=v.useCallback(m=>{if(l){const p=v8(m)?m(e):m;p!==e&&o.current?.(p)}else s(m)},[l,e,s,o]);return[c,h]}vp(wN,"useControllableState");function y8({defaultProp:e,onChange:t}){const[n,a]=v.useState(e),i=v.useRef(n),s=v.useRef(t);return Fae(()=>{s.current=t},[t]),v.useEffect(()=>{i.current!==n&&(s.current?.(n),i.current=n)},[n,i]),[n,a,s]}vp(y8,"useUncontrolledState");function v8(e){return typeof e=="function"}vp(v8,"isFunction");var kE=Symbol("RADIX:SYNC_STATE");function zae(e,t,n,a){const{prop:i,defaultProp:s,onChange:o,caller:l}=t,c=i!==void 0,h=x8(o),m=[{...n,state:s}];a&&m.push(a);const[p,x]=v.useReducer((_,S)=>{if(S.type===kE)return{..._,state:S.state};const A=e(_,S);return c&&!Object.is(A.state,_.state)&&h(A.state),A},...m),b=p.state,j=v.useRef(b);v.useEffect(()=>{j.current!==b&&(j.current=b,c||h(b))},[b,j,c]);const N=v.useMemo(()=>i!==void 0?{...p,state:i}:p,[p,i]);return v.useEffect(()=>{c&&!Object.is(i,p.state)&&x({type:kE,state:i})},[i,p.state,c]),[N,x]}vp(zae,"useControllableStateReducer");var $ae=Object.defineProperty,Hae=(e,t)=>$ae(e,"name",{value:t,configurable:!0});function b8(e){const t=v.useRef({value:e,previous:e});return v.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}Hae(b8,"usePrevious");var Wae=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"}),Vae=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},nu=new WeakMap,Cx=new WeakMap,Tx={},o1=0,w8=function(e){return e&&(e.host||w8(e.parentNode))},Uae=function(e,t){return t.map(function(n){if(e.contains(n))return n;var a=w8(n);return a&&e.contains(a)?a:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},qae=function(e,t,n,a){var i=Uae(t,Array.isArray(e)?e:[e]);Tx[n]||(Tx[n]=new WeakMap);var s=Tx[n],o=[],l=new Set,c=new Set(i),h=function(p){!p||l.has(p)||(l.add(p),h(p.parentNode))};i.forEach(h);var m=function(p){!p||c.has(p)||Array.prototype.forEach.call(p.children,function(x){if(l.has(x))m(x);else try{var b=x.getAttribute(a),j=b!==null&&b!=="false",N=(nu.get(x)||0)+1,_=(s.get(x)||0)+1;nu.set(x,N),s.set(x,_),o.push(x),N===1&&j&&Cx.set(x,!0),_===1&&x.setAttribute(n,"true"),j||x.setAttribute(a,"true")}catch(S){console.error("aria-hidden: cannot operate on ",x,S)}})};return m(t),l.clear(),o1++,function(){o.forEach(function(p){var x=nu.get(p)-1,b=s.get(p)-1;nu.set(p,x),s.set(p,b),x||(Cx.has(p)||p.removeAttribute(a),Cx.delete(p)),b||p.removeAttribute(n)}),o1--,o1||(nu=new WeakMap,nu=new WeakMap,Cx=new WeakMap,Tx={})}},j8=function(e,t,n){n===void 0&&(n="data-aria-hidden");var a=Array.from(Array.isArray(e)?e:[e]),i=Vae(e);return i?(a.push.apply(a,Array.from(i.querySelectorAll("[aria-live]"))),qae(a,i,n,"aria-hidden")):function(){return null}},fy="right-scroll-bar-position",my="width-before-scroll-bar",Gae="with-scroll-bars-hidden",Kae="--removed-body-scroll-bar-size";function l1(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function Zae(e,t){var n=v.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(a){var i=n.value;i!==a&&(n.value=a,n.callback(a,i))}}}})[0];return n.callback=t,n.facade}var Yae=typeof window<"u"?v.useLayoutEffect:v.useEffect,_E=new WeakMap;function Jae(e,t){var n=Zae(null,function(a){return e.forEach(function(i){return l1(i,a)})});return Yae(function(){var a=_E.get(n);if(a){var i=new Set(a),s=new Set(e),o=n.current;i.forEach(function(l){s.has(l)||l1(l,null)}),s.forEach(function(l){i.has(l)||l1(l,o)})}_E.set(n,e)},[e]),n}function Xae(e){return e}function Qae(e,t){t===void 0&&(t=Xae);var n=[],a=!1,i={read:function(){if(a)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(s){var o=t(s,a);return n.push(o),function(){n=n.filter(function(l){return l!==o})}},assignSyncMedium:function(s){for(a=!0;n.length;){var o=n;n=[],o.forEach(s)}n={push:function(l){return s(l)},filter:function(){return n}}},assignMedium:function(s){a=!0;var o=[];if(n.length){var l=n;n=[],l.forEach(s),o=n}var c=function(){var m=o;o=[],m.forEach(s)},h=function(){return Promise.resolve().then(c)};h(),n={push:function(m){o.push(m),h()},filter:function(m){return o=o.filter(m),n}}}};return i}function eie(e){e===void 0&&(e={});var t=Qae(null);return t.options=Ji({async:!0,ssr:!1},e),t}var N8=function(e){var t=e.sideCar,n=CI(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var a=t.read();if(!a)throw new Error("Sidecar medium not found");return v.createElement(a,Ji({},n))};N8.isSideCarExport=!0;function tie(e,t){return e.useMedium(t),N8}var k8=eie(),c1=function(){},e0=v.forwardRef(function(e,t){var n=v.useRef(null),a=v.useState({onScrollCapture:c1,onWheelCapture:c1,onTouchMoveCapture:c1}),i=a[0],s=a[1],o=e.forwardProps,l=e.children,c=e.className,h=e.removeScrollBar,m=e.enabled,p=e.shards,x=e.sideCar,b=e.noRelative,j=e.noIsolation,N=e.inert,_=e.allowPinchZoom,S=e.as,A=S===void 0?"div":S,P=e.gapMode,I=CI(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),O=x,M=Jae([n,t]),z=Ji(Ji({},I),i);return v.createElement(v.Fragment,null,m&&v.createElement(O,{sideCar:k8,removeScrollBar:h,shards:p,noRelative:b,noIsolation:j,inert:N,setCallbacks:s,allowPinchZoom:!!_,lockRef:n,gapMode:P}),o?v.cloneElement(v.Children.only(l),Ji(Ji({},z),{ref:M})):v.createElement(A,Ji({},z,{className:c,ref:M}),l))});e0.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};e0.classNames={fullWidth:my,zeroRight:fy};var nie=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function rie(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=nie();return t&&e.setAttribute("nonce",t),e}function aie(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function iie(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var sie=function(){var e=0,t=null;return{add:function(n){e==0&&(t=rie())&&(aie(t,n),iie(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},oie=function(){var e=sie();return function(t,n){v.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},_8=function(){var e=oie(),t=function(n){var a=n.styles,i=n.dynamic;return e(a,i),null};return t},lie={left:0,top:0,right:0,gap:0},d1=function(e){return parseInt(e||"",10)||0},cie=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],a=t[e==="padding"?"paddingTop":"marginTop"],i=t[e==="padding"?"paddingRight":"marginRight"];return[d1(n),d1(a),d1(i)]},die=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return lie;var t=cie(e),n=document.documentElement.clientWidth,a=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,a-n+t[2]-t[0])}},uie=_8(),Au="data-scroll-locked",hie=function(e,t,n,a){var i=e.left,s=e.top,o=e.right,l=e.gap;return n===void 0&&(n="margin"),`
.`.concat(Gae,` {
overflow: hidden `).concat(a,`;
padding-right: `).concat(l,"px ").concat(a,`;
}
body[`).concat(Au,`] {
overflow: hidden `).concat(a,`;
overscroll-behavior: contain;
`).concat([t&&"position: relative ".concat(a,";"),n==="margin"&&`
padding-left: `.concat(i,`px;
padding-top: `).concat(s,`px;
padding-right: `).concat(o,`px;
margin-left:0;
margin-top:0;
margin-right: `).concat(l,"px ").concat(a,`;
`),n==="padding"&&"padding-right: ".concat(l,"px ").concat(a,";")].filter(Boolean).join(""),`
}
.`).concat(fy,` {
right: `).concat(l,"px ").concat(a,`;
}
.`).concat(my,` {
margin-right: `).concat(l,"px ").concat(a,`;
}
.`).concat(fy," .").concat(fy,` {
right: 0 `).concat(a,`;
}
.`).concat(my," .").concat(my,` {
margin-right: 0 `).concat(a,`;
}
body[`).concat(Au,`] {
`).concat(Kae,": ").concat(l,`px;
}
`)},SE=function(){var e=parseInt(document.body.getAttribute(Au)||"0",10);return isFinite(e)?e:0},fie=function(){v.useEffect(function(){return document.body.setAttribute(Au,(SE()+1).toString()),function(){var e=SE()-1;e<=0?document.body.removeAttribute(Au):document.body.setAttribute(Au,e.toString())}},[])},mie=function(e){var t=e.noRelative,n=e.noImportant,a=e.gapMode,i=a===void 0?"margin":a;fie();var s=v.useMemo(function(){return die(i)},[i]);return v.createElement(uie,{styles:hie(s,!t,i,n?"":"!important")})},jN=!1;if(typeof window<"u")try{var Ax=Object.defineProperty({},"passive",{get:function(){return jN=!0,!0}});window.addEventListener("test",Ax,Ax),window.removeEventListener("test",Ax,Ax)}catch{jN=!1}var ru=jN?{passive:!1}:!1,pie=function(e){return e.tagName==="TEXTAREA"},S8=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!pie(e)&&n[t]==="visible")},gie=function(e){return S8(e,"overflowY")},xie=function(e){return S8(e,"overflowX")},CE=function(e,t){var n=t.ownerDocument,a=t;do{typeof ShadowRoot<"u"&&a instanceof ShadowRoot&&(a=a.host);var i=C8(e,a);if(i){var s=T8(e,a),o=s[1],l=s[2];if(o>l)return!0}a=a.parentNode}while(a&&a!==n.body);return!1},yie=function(e){var t=e.scrollTop,n=e.scrollHeight,a=e.clientHeight;return[t,n,a]},vie=function(e){var t=e.scrollLeft,n=e.scrollWidth,a=e.clientWidth;return[t,n,a]},C8=function(e,t){return e==="v"?gie(t):xie(t)},T8=function(e,t){return e==="v"?yie(t):vie(t)},bie=function(e,t){return e==="h"&&t==="rtl"?-1:1},wie=function(e,t,n,a,i){var s=bie(e,window.getComputedStyle(t).direction),o=s*a,l=n.target,c=t.contains(l),h=!1,m=o>0,p=0,x=0;do{if(!l)break;var b=T8(e,l),j=b[0],N=b[1],_=b[2],S=N-_-s*j;(j||S)&&C8(e,l)&&(p+=S,x+=j);var A=l.parentNode;l=A&&A.nodeType===Node.DOCUMENT_FRAGMENT_NODE?A.host:A}while(!c&&l!==document.body||c&&(t.contains(l)||t===l));return(m&&Math.abs(p)<1||!m&&Math.abs(x)<1)&&(h=!0),h},Px=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},TE=function(e){return[e.deltaX,e.deltaY]},AE=function(e){return e&&"current"in e?e.current:e},jie=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Nie=function(e){return`
.block-interactivity-`.concat(e,` {pointer-events: none;}
.allow-interactivity-`).concat(e,` {pointer-events: all;}
`)},kie=0,au=[];function _ie(e){var t=v.useRef([]),n=v.useRef([0,0]),a=v.useRef(),i=v.useState(kie++)[0],s=v.useState(_8)[0],o=v.useRef(e);v.useEffect(function(){o.current=e},[e]),v.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(i));var N=wG([e.lockRef.current],(e.shards||[]).map(AE),!0).filter(Boolean);return N.forEach(function(_){return _.classList.add("allow-interactivity-".concat(i))}),function(){document.body.classList.remove("block-interactivity-".concat(i)),N.forEach(function(_){return _.classList.remove("allow-interactivity-".concat(i))})}}},[e.inert,e.lockRef.current,e.shards]);var l=v.useCallback(function(N,_){if("touches"in N&&N.touches.length===2||N.type==="wheel"&&N.ctrlKey)return!o.current.allowPinchZoom;var S=Px(N),A=n.current,P="deltaX"in N?N.deltaX:A[0]-S[0],I="deltaY"in N?N.deltaY:A[1]-S[1],O,M=N.target,z=Math.abs(P)>Math.abs(I)?"h":"v";if("touches"in N&&z==="h"&&M.type==="range")return!1;var $=window.getSelection(),K=$&&$.anchorNode,X=K?K===M||K.contains(M):!1;if(X)return!1;var te=CE(z,M);if(!te)return!0;if(te?O=z:(O=z==="v"?"h":"v",te=CE(z,M)),!te)return!1;if(!a.current&&"changedTouches"in N&&(P||I)&&(a.current=O),!O)return!0;var q=a.current||O;return wie(q,_,N,q==="h"?P:I)},[]),c=v.useCallback(function(N){var _=N;if(!(!au.length||au[au.length-1]!==s)){var S="deltaY"in _?TE(_):Px(_),A=t.current.filter(function(O){return O.name===_.type&&(O.target===_.target||_.target===O.shadowParent)&&jie(O.delta,S)})[0];if(A&&A.should){_.cancelable&&_.preventDefault();return}if(!A){var P=(o.current.shards||[]).map(AE).filter(Boolean).filter(function(O){return O.contains(_.target)}),I=P.length>0?l(_,P[0]):!o.current.noIsolation;I&&_.cancelable&&_.preventDefault()}}},[]),h=v.useCallback(function(N,_,S,A){var P={name:N,delta:_,target:S,should:A,shadowParent:Sie(S)};t.current.push(P),setTimeout(function(){t.current=t.current.filter(function(I){return I!==P})},1)},[]),m=v.useCallback(function(N){n.current=Px(N),a.current=void 0},[]),p=v.useCallback(function(N){h(N.type,TE(N),N.target,l(N,e.lockRef.current))},[]),x=v.useCallback(function(N){h(N.type,Px(N),N.target,l(N,e.lockRef.current))},[]);v.useEffect(function(){return au.push(s),e.setCallbacks({onScrollCapture:p,onWheelCapture:p,onTouchMoveCapture:x}),document.addEventListener("wheel",c,ru),document.addEventListener("touchmove",c,ru),document.addEventListener("touchstart",m,ru),function(){au=au.filter(function(N){return N!==s}),document.removeEventListener("wheel",c,ru),document.removeEventListener("touchmove",c,ru),document.removeEventListener("touchstart",m,ru)}},[]);var b=e.removeScrollBar,j=e.inert;return v.createElement(v.Fragment,null,j?v.createElement(s,{styles:Nie(i)}):null,b?v.createElement(mie,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function Sie(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const Cie=tie(k8,_ie);var Y2=v.forwardRef(function(e,t){return v.createElement(e0,Ji({},e,{ref:t,sideCar:Cie}))});Y2.classNames=e0.classNames;var Tie=Object.defineProperty,At=(e,t)=>Tie(e,"name",{value:t,configurable:!0}),Aie=[" ","Enter","ArrowUp","ArrowDown"],Pie=[" ","Enter"],Uu="Select",[t0,n0,Eie]=MD(Uu),[Gc,J5e]=xp(Uu,[Eie,c8]),J2=c8(),[Oie,Cl]=Gc(Uu),[Rie,Iie]=Gc(Uu);function A8(e){const{__scopeSelect:t,children:n,open:a,defaultOpen:i,onOpenChange:s,value:o,defaultValue:l,onValueChange:c,dir:h,name:m,autoComplete:p,disabled:x,required:b,form:j,internal_do_not_use_render:N}=e,_=J2(t),[S,A]=v.useState(null),[P,I]=v.useState(null),[O,M]=v.useState(!1),z=zD(h),[$,K]=wN({prop:a,defaultProp:i??!1,onChange:s,caller:Uu}),[X,te]=wN({prop:o,defaultProp:l,onChange:c,caller:Uu}),q=v.useRef(null),he=v.useRef(X);v.useEffect(()=>{const re=j?S?.ownerDocument.getElementById(j):S?.form;if(re instanceof HTMLFormElement){const be=At(()=>te(he.current),"reset");return re.addEventListener("reset",be),()=>re.removeEventListener("reset",be)}},[j,S,te]);const ne=S?!!j||!!S.closest("form"):!0,[G,H]=v.useState(new Set),Q=H2(),W=Array.from(G).map(re=>re.props.value).join(";"),ie=v.useCallback(re=>{H(be=>new Set(be).add(re))},[]),Y=v.useCallback(re=>{H(be=>{const ge=new Set(be);return ge.delete(re),ge})},[]),V={required:b,trigger:S,onTriggerChange:A,valueNode:P,onValueNodeChange:I,valueNodeHasChildren:O,onValueNodeHasChildrenChange:M,contentId:Q,value:X,onValueChange:te,open:$,onOpenChange:K,dir:z,triggerPointerDownPosRef:q,disabled:x,name:m,autoComplete:p,form:j,nativeOptions:G,nativeSelectKey:W,isFormControl:ne};return r.jsx(Cae,{..._,children:r.jsx(Oie,{scope:t,...V,children:r.jsx(t0.Provider,{scope:t,children:r.jsx(Rie,{scope:t,onNativeOptionAdd:ie,onNativeOptionRemove:Y,children:z8(N)?N(V):n})})})})}At(A8,"SelectProvider");var Mie=At(e=>{const{__scopeSelect:t,children:n,...a}=e;return r.jsx(A8,{__scopeSelect:t,...a,internal_do_not_use_render:({isFormControl:i})=>r.jsxs(r.Fragment,{children:[n,i?r.jsx(ase,{__scopeSelect:t}):null]})})},"Select"),Lie="SelectTrigger",P8=v.forwardRef(At(function(t,n){const{__scopeSelect:a,disabled:i=!1,...s}=t,o=J2(a),l=Cl(Lie,a),c=l.disabled||i,h=Sn(n,l.onTriggerChange),m=n0(a),p=v.useRef("touch"),[x,b,j]=Q2(_=>{const S=m().filter(I=>!I.disabled),A=S.find(I=>I.value===l.value),P=e_(S,_,A);P!==void 0&&l.onValueChange(P.value)}),N=At(_=>{c||(l.onOpenChange(!0),j()),_&&(l.triggerPointerDownPosRef.current={x:Math.round(_.pageX),y:Math.round(_.pageY)})},"handleOpen");return r.jsx(Tae,{asChild:!0,...o,children:r.jsx(cr.button,{type:"button",role:"combobox","aria-controls":l.open?l.contentId:void 0,"aria-expanded":l.open,"aria-required":l.required,"aria-autocomplete":"none",dir:l.dir,"data-state":l.open?"open":"closed",disabled:c,"data-disabled":c?"":void 0,"data-placeholder":bp(l.value)?"":void 0,...s,ref:h,onClick:_n(s.onClick,_=>{_.currentTarget.focus(),p.current!=="mouse"&&N(_)}),onPointerDown:_n(s.onPointerDown,_=>{p.current=_.pointerType;const S=_.target;S.hasPointerCapture(_.pointerId)&&S.releasePointerCapture(_.pointerId),_.button===0&&_.ctrlKey===!1&&_.pointerType==="mouse"&&(N(_),_.preventDefault())}),onKeyDown:_n(s.onKeyDown,_=>{const S=x.current!=="";!(_.ctrlKey||_.altKey||_.metaKey)&&_.key.length===1&&b(_.key),!(S&&_.key===" ")&&Aie.includes(_.key)&&(N(),_.preventDefault())})})})},"SelectTrigger")),Die="SelectValue",Bie=v.forwardRef(At(function(t,n){const{__scopeSelect:a,className:i,style:s,children:o,placeholder:l="",...c}=t,h=Cl(Die,a),{onValueNodeHasChildrenChange:m}=h,p=o!==void 0,x=Sn(n,h.onValueNodeChange);or(()=>{m(p)},[m,p]);const b=bp(h.value);return r.jsx(cr.span,{...c,asChild:b?!1:c.asChild,ref:x,style:{pointerEvents:"none"},children:r.jsx(v.Fragment,{children:b?l:o},b?"placeholder":"value")})},"SelectValue")),Fie=v.forwardRef(At(function(t,n){const{__scopeSelect:a,children:i,...s}=t;return r.jsx(cr.span,{"aria-hidden":!0,...s,ref:n,children:i||"▼"})},"SelectIcon")),zie="SelectPortal",[$ie,Hie]=Gc(zie,{forceMount:void 0}),Wie=At(e=>{const{__scopeSelect:t,forceMount:n,...a}=e;return r.jsx($ie,{scope:e.__scopeSelect,forceMount:n,children:r.jsx(Oae,{asChild:!0,...a})})},"SelectPortal"),Mc="SelectContent",E8=v.forwardRef(At(function(t,n){const a=Hie(Mc,t.__scopeSelect),{forceMount:i=a.forceMount,...s}=t,o=Cl(Mc,t.__scopeSelect),[l,c]=v.useState();return or(()=>{c(new DocumentFragment)},[]),r.jsx(Iae,{present:i||o.open,children:({present:h})=>h?r.jsx(qie,{...s,ref:n}):r.jsx(Vie,{...s,fragment:l})})},"SelectContent")),Vie=v.forwardRef(At(function(t,n){const{__scopeSelect:a,children:i,fragment:s}=t;return s?Ci.createPortal(r.jsx(O8,{scope:a,children:r.jsx(t0.Slot,{scope:a,children:r.jsx("div",{ref:n,children:i})})}),s):null},"SelectContentFragment")),gi=10,[O8,Kc]=Gc(Mc),Uie=Rc("SelectContent.RemoveScroll"),qie=v.forwardRef(At(function(t,n){const{__scopeSelect:a}=t,{position:i="item-aligned",onCloseAutoFocus:s,onEscapeKeyDown:o,onPointerDownOutside:l,side:c,sideOffset:h,align:m,alignOffset:p,arrowPadding:x,collisionBoundary:b,collisionPadding:j,sticky:N,hideWhenDetached:_,avoidCollisions:S,...A}=t,P=Cl(Mc,a),[I,O]=v.useState(null),[M,z]=v.useState(null),$=Sn(n,O),[K,X]=v.useState(null),[te,q]=v.useState(null),he=n0(a),[ne,G]=v.useState(!1),H=v.useRef(!1);v.useEffect(()=>{if(I)return j8(I)},[I]),z2();const Q=v.useCallback(Ce=>{const[me,...Ae]=he().map(tt=>tt.ref.current),[Te]=Ae.slice(-1),fe=document.activeElement;for(const tt of Ce)if(tt===fe||(tt?.scrollIntoView({block:"nearest"}),tt===me&&M&&(M.scrollTop=0),tt===Te&&M&&(M.scrollTop=M.scrollHeight),tt?.focus(),document.activeElement!==fe))return},[he,M]),W=v.useCallback(()=>Q([K,I]),[Q,K,I]);v.useEffect(()=>{ne&&W()},[ne,W]);const{onOpenChange:ie,triggerPointerDownPosRef:Y}=P;v.useEffect(()=>{if(I){let Ce={x:0,y:0};const me=At(Te=>{Ce={x:Math.abs(Math.round(Te.pageX)-(Y.current?.x??0)),y:Math.abs(Math.round(Te.pageY)-(Y.current?.y??0))}},"handlePointerMove"),Ae=At(Te=>{Ce.x<=10&&Ce.y<=10?Te.preventDefault():Te.composedPath().includes(I)||ie(!1),document.removeEventListener("pointermove",me),Y.current=null},"handlePointerUp");return Y.current!==null&&(document.addEventListener("pointermove",me),document.addEventListener("pointerup",Ae,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",me),document.removeEventListener("pointerup",Ae,{capture:!0})}}},[I,ie,Y]),v.useEffect(()=>{const Ce=At(()=>ie(!1),"close");return window.addEventListener("blur",Ce),window.addEventListener("resize",Ce),()=>{window.removeEventListener("blur",Ce),window.removeEventListener("resize",Ce)}},[ie]);const[V,re]=Q2(Ce=>{const me=he().filter(fe=>!fe.disabled),Ae=me.find(fe=>fe.ref.current===document.activeElement),Te=e_(me,Ce,Ae);Te&&setTimeout(()=>Te.ref.current?.focus())}),be=v.useCallback((Ce,me,Ae)=>{const Te=!H.current&&!Ae;(P.value!==void 0&&P.value===me||Te)&&(X(Ce),Te&&(H.current=!0))},[P.value]),ge=v.useCallback(()=>I?.focus(),[I]),Ne=v.useCallback((Ce,me,Ae)=>{const Te=!H.current&&!Ae;(P.value!==void 0&&P.value===me||Te)&&q(Ce)},[P.value]),we=i==="popper"?PE:Gie,Fe=we===PE?{side:c,sideOffset:h,align:m,alignOffset:p,arrowPadding:x,collisionBoundary:b,collisionPadding:j,sticky:N,hideWhenDetached:_,avoidCollisions:S}:{};return r.jsx(O8,{scope:a,content:I,viewport:M,onViewportChange:z,itemRefCallback:be,selectedItem:K,onItemLeave:ge,itemTextRefCallback:Ne,focusSelectedItem:W,selectedItemText:te,position:i,isPositioned:ne,searchRef:V,children:r.jsx(Y2,{as:Uie,allowPinchZoom:!0,children:r.jsx(pre,{asChild:!0,trapped:P.open,onMountAutoFocus:Ce=>{Ce.preventDefault()},onUnmountAutoFocus:_n(s,Ce=>{P.trigger?.focus({preventScroll:!0}),Ce.preventDefault()}),children:r.jsx(cre,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:o,onPointerDownOutside:l,onFocusOutside:Ce=>Ce.preventDefault(),onDismiss:()=>P.onOpenChange(!1),children:r.jsx(we,{role:"listbox",id:P.contentId,"data-state":P.open?"open":"closed",dir:P.dir,onContextMenu:Ce=>Ce.preventDefault(),...A,...Fe,onPlaced:()=>G(!0),ref:$,style:{display:"flex",flexDirection:"column",outline:"none",...A.style},onKeyDown:_n(A.onKeyDown,Ce=>{const me=Ce.ctrlKey||Ce.altKey||Ce.metaKey;if(Ce.key==="Tab"&&Ce.preventDefault(),!me&&Ce.key.length===1&&re(Ce.key),["ArrowUp","ArrowDown","Home","End"].includes(Ce.key)){let Te=he().filter(fe=>!fe.disabled).map(fe=>fe.ref.current);if(["ArrowUp","End"].includes(Ce.key)&&(Te=Te.slice().reverse()),["ArrowUp","ArrowDown"].includes(Ce.key)){const fe=Ce.target,tt=Te.indexOf(fe);Te=Te.slice(tt+1)}setTimeout(()=>Q(Te)),Ce.preventDefault()}})})})})})})},"SelectContentImpl")),Gie=v.forwardRef(At(function(t,n){const{__scopeSelect:a,onPlaced:i,...s}=t,o=Cl(Mc,a),l=Kc(Mc,a),[c,h]=v.useState(null),[m,p]=v.useState(null),x=Sn(n,p),b=n0(a),j=v.useRef(!1),N=v.useRef(!0),{viewport:_,selectedItem:S,selectedItemText:A,focusSelectedItem:P}=l,I=v.useCallback(()=>{if(o.trigger&&o.valueNode&&c&&m&&_&&S&&A){const $=o.trigger.getBoundingClientRect(),K=m.getBoundingClientRect(),X=o.valueNode.getBoundingClientRect(),te=A.getBoundingClientRect();if(o.dir!=="rtl"){const fe=te.left-K.left,tt=X.left-fe,at=$.left-tt,Oe=$.width+at,cn=Math.max(Oe,K.width),On=window.innerWidth-gi,Hr=oN(tt,[gi,Math.max(gi,On-cn)]);c.style.minWidth=Oe+"px",c.style.left=Hr+"px"}else{const fe=K.right-te.right,tt=window.innerWidth-X.right-fe,at=window.innerWidth-$.right-tt,Oe=$.width+at,cn=Math.max(Oe,K.width),On=window.innerWidth-gi,Hr=oN(tt,[gi,Math.max(gi,On-cn)]);c.style.minWidth=Oe+"px",c.style.right=Hr+"px"}const q=b(),he=window.innerHeight-gi*2,ne=_.scrollHeight,G=window.getComputedStyle(m),H=parseInt(G.borderTopWidth,10),Q=parseInt(G.paddingTop,10),W=parseInt(G.borderBottomWidth,10),ie=parseInt(G.paddingBottom,10),Y=H+Q+ne+ie+W,V=Math.min(S.offsetHeight*5,Y),re=window.getComputedStyle(_),be=parseInt(re.paddingTop,10),ge=parseInt(re.paddingBottom,10),Ne=$.top+$.height/2-gi,we=he-Ne,Fe=S.offsetHeight/2,Ce=S.offsetTop+Fe,me=H+Q+Ce,Ae=Y-me;if(me<=Ne){const fe=q.length>0&&S===q[q.length-1].ref.current;c.style.bottom="0px";const tt=m.clientHeight-_.offsetTop-_.offsetHeight,at=Math.max(we,Fe+(fe?ge:0)+tt+W),Oe=me+at;c.style.height=Oe+"px"}else{const fe=q.length>0&&S===q[0].ref.current;c.style.top="0px";const at=Math.max(Ne,H+_.offsetTop+(fe?be:0)+Fe)+Ae;c.style.height=at+"px",_.scrollTop=me-Ne+_.offsetTop}c.style.margin=`${gi}px 0`,c.style.minHeight=V+"px",c.style.maxHeight=he+"px",i?.(),requestAnimationFrame(()=>j.current=!0)}},[b,o.trigger,o.valueNode,c,m,_,S,A,o.dir,i]);or(()=>I(),[I]);const[O,M]=v.useState();or(()=>{m&&M(window.getComputedStyle(m).zIndex)},[m]);const z=v.useCallback($=>{$&&N.current===!0&&(I(),P?.(),N.current=!1)},[I,P]);return r.jsx(Kie,{scope:a,contentWrapper:c,shouldExpandOnScrollRef:j,onScrollButtonChange:z,children:r.jsx("div",{ref:h,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:O},children:r.jsx(cr.div,{...s,ref:x,style:{boxSizing:"border-box",maxHeight:"100%",...s.style}})})})},"SelectItemAlignedPosition")),PE=v.forwardRef(At(function(t,n){const{__scopeSelect:a,align:i="start",collisionPadding:s=gi,...o}=t,l=J2(a);return r.jsx(Aae,{...l,...o,ref:n,align:i,collisionPadding:s,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})},"SelectPopperPosition")),[Kie,X2]=Gc(Mc,{}),EE="SelectViewport",Zie=v.forwardRef(At(function(t,n){const{__scopeSelect:a,nonce:i,...s}=t,o=Kc(EE,a),l=X2(EE,a),c=Sn(n,o.onViewportChange),h=v.useRef(0);return r.jsxs(r.Fragment,{children:[r.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:i}),r.jsx(t0.Slot,{scope:a,children:r.jsx(cr.div,{"data-radix-select-viewport":"",role:"presentation",...s,ref:c,style:{position:"relative",flex:1,overflow:"hidden auto",...s.style},onScroll:_n(s.onScroll,m=>{const p=m.currentTarget,{contentWrapper:x,shouldExpandOnScrollRef:b}=l;if(b?.current&&x){const j=Math.abs(h.current-p.scrollTop);if(j>0){const N=window.innerHeight-gi*2,_=parseFloat(x.style.minHeight),S=parseFloat(x.style.height),A=Math.max(_,S);if(A<N){const P=A+j,I=Math.min(N,P),O=P-I;x.style.height=I+"px",x.style.bottom==="0px"&&(p.scrollTop=O>0?O:0,x.style.justifyContent="flex-end")}}}h.current=p.scrollTop})})})]})},"SelectViewport")),Yie="SelectGroup",[X5e,Jie]=Gc(Yie),Xie="SelectLabel",R8=v.forwardRef(At(function(t,n){const{__scopeSelect:a,...i}=t,s=Jie(Xie,a);return r.jsx(cr.div,{id:s.id,...i,ref:n})},"SelectLabel")),NN="SelectItem",[Qie,I8]=Gc(NN),M8=v.forwardRef(At(function(t,n){const{__scopeSelect:a,value:i,disabled:s=!1,textValue:o,...l}=t,c=Cl(NN,a),h=Kc(NN,a),m=c.value===i,[p,x]=v.useState(o??""),[b,j]=v.useState(!1),N=ss(I=>h.itemRefCallback?.(I,i,s)),_=Sn(n,N),S=H2(),A=v.useRef("touch"),P=At(()=>{s||(c.onValueChange(i),c.onOpenChange(!1))},"handleSelect");return r.jsx(Qie,{scope:a,value:i,disabled:s,textId:S,isSelected:m,onItemTextChange:v.useCallback(I=>{x(O=>O||(I?.textContent??"").trim())},[]),children:r.jsx(t0.ItemSlot,{scope:a,value:i,disabled:s,textValue:p,children:r.jsx(cr.div,{role:"option","aria-labelledby":S,"data-highlighted":b?"":void 0,"aria-selected":m&&b,"data-state":m?"checked":"unchecked","aria-disabled":s||void 0,"data-disabled":s?"":void 0,tabIndex:s?void 0:-1,...l,ref:_,onFocus:_n(l.onFocus,()=>j(!0)),onBlur:_n(l.onBlur,()=>j(!1)),onClick:_n(l.onClick,()=>{A.current!=="mouse"&&P()}),onPointerUp:_n(l.onPointerUp,()=>{A.current==="mouse"&&P()}),onPointerDown:_n(l.onPointerDown,I=>{A.current=I.pointerType}),onPointerMove:_n(l.onPointerMove,I=>{A.current=I.pointerType,s?h.onItemLeave?.():A.current==="mouse"&&I.currentTarget.focus({preventScroll:!0})}),onPointerLeave:_n(l.onPointerLeave,I=>{I.currentTarget===document.activeElement&&h.onItemLeave?.()}),onKeyDown:_n(l.onKeyDown,I=>{s||I.target!==I.currentTarget||h.searchRef?.current!==""&&I.key===" "||(Pie.includes(I.key)&&P(),I.key===" "&&I.preventDefault())})})})})},"SelectItem")),Ex="SelectItemText",ese=v.forwardRef(At(function(t,n){const{__scopeSelect:a,className:i,style:s,...o}=t,l=Cl(Ex,a),c=Kc(Ex,a),h=I8(Ex,a),m=Iie(Ex,a),[p,x]=v.useState(null),b=ss(P=>c.itemTextRefCallback?.(P,h.value,h.disabled)),j=Sn(n,x,h.onItemTextChange,b),N=p?.textContent,_=v.useMemo(()=>r.jsx("option",{value:h.value,disabled:h.disabled,children:N},h.value),[h.disabled,h.value,N]),{onNativeOptionAdd:S,onNativeOptionRemove:A}=m;return or(()=>(S(_),()=>A(_)),[S,A,_]),r.jsxs(r.Fragment,{children:[r.jsx(cr.span,{id:h.textId,...o,ref:j}),h.isSelected&&l.valueNode&&!l.valueNodeHasChildren&&!bp(l.value)?Ci.createPortal(o.children,l.valueNode):null]})},"SelectItemText")),tse="SelectItemIndicator",nse=v.forwardRef(At(function(t,n){const{__scopeSelect:a,...i}=t;return I8(tse,a).isSelected?r.jsx(cr.span,{"aria-hidden":!0,...i,ref:n}):null},"SelectItemIndicator")),OE="SelectScrollUpButton",L8=v.forwardRef(At(function(t,n){const a=Kc(OE,t.__scopeSelect),i=X2(OE,t.__scopeSelect),[s,o]=v.useState(!1),l=Sn(n,i.onScrollButtonChange);return or(()=>{if(a.viewport&&a.isPositioned){let c=function(){const m=h.scrollTop>0;o(m)};At(c,"handleScroll");const h=a.viewport;return c(),h.addEventListener("scroll",c),()=>h.removeEventListener("scroll",c)}},[a.viewport,a.isPositioned]),s?r.jsx(B8,{...t,ref:l,onAutoScroll:()=>{const{viewport:c,selectedItem:h}=a;c&&h&&(c.scrollTop=c.scrollTop-h.offsetHeight)}}):null},"SelectScrollUpButton")),RE="SelectScrollDownButton",D8=v.forwardRef(At(function(t,n){const a=Kc(RE,t.__scopeSelect),i=X2(RE,t.__scopeSelect),[s,o]=v.useState(!1),l=Sn(n,i.onScrollButtonChange);return or(()=>{if(a.viewport&&a.isPositioned){let c=function(){const m=h.scrollHeight-h.clientHeight,p=Math.ceil(h.scrollTop)<m;o(p)};At(c,"handleScroll");const h=a.viewport;return c(),h.addEventListener("scroll",c),()=>h.removeEventListener("scroll",c)}},[a.viewport,a.isPositioned]),s?r.jsx(B8,{...t,ref:l,onAutoScroll:()=>{const{viewport:c,selectedItem:h}=a;c&&h&&(c.scrollTop=c.scrollTop+h.offsetHeight)}}):null},"SelectScrollDownButton")),B8=v.forwardRef(At(function(t,n){const{__scopeSelect:a,onAutoScroll:i,...s}=t,o=Kc("SelectScrollButton",a),l=v.useRef(null),c=n0(a),h=v.useCallback(()=>{l.current!==null&&(window.clearInterval(l.current),l.current=null)},[]);return v.useEffect(()=>()=>h(),[h]),or(()=>{c().find(p=>p.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:"nearest"})},[c]),r.jsx(cr.div,{"aria-hidden":!0,...s,ref:n,style:{flexShrink:0,...s.style},onPointerDown:_n(s.onPointerDown,()=>{l.current===null&&(l.current=window.setInterval(i,50))}),onPointerMove:_n(s.onPointerMove,()=>{o.onItemLeave?.(),l.current===null&&(l.current=window.setInterval(i,50))}),onPointerLeave:_n(s.onPointerLeave,()=>{h()})})},"SelectScrollButtonImpl")),F8=v.forwardRef(At(function(t,n){const{__scopeSelect:a,...i}=t;return r.jsx(cr.div,{"aria-hidden":!0,...i,ref:n})},"SelectSeparator")),rse="SelectBubbleInput",ase=v.forwardRef(At(function({__scopeSelect:t,...n},a){const i=Cl(rse,t),{value:s,onValueChange:o,required:l,disabled:c,name:h,autoComplete:m,form:p}=i,{nativeOptions:x,nativeSelectKey:b}=i,j=v.useRef(null),N=Sn(a,j),_=s??"",S=b8(_),A=Array.from(x).some(P=>(P.props.value??"")==="");return v.useEffect(()=>{const P=j.current;if(!P)return;const I=window.HTMLSelectElement.prototype,M=Object.getOwnPropertyDescriptor(I,"value").set;if(S!==_&&M){const z=new Event("change",{bubbles:!0});M.call(P,_),P.dispatchEvent(z)}},[S,_]),r.jsxs(cr.select,{"aria-hidden":!0,required:l,tabIndex:-1,name:h,autoComplete:m,disabled:c,form:p,onChange:P=>o(P.target.value),...n,style:{...Wae,...n.style},ref:N,defaultValue:_,children:[bp(s)&&!A?r.jsx("option",{value:""}):null,Array.from(x)]},b)},"SelectBubbleInput"));function z8(e){return typeof e=="function"}At(z8,"isFunction");function bp(e){return e===""||e===void 0}At(bp,"shouldShowPlaceholder");function Q2(e){const t=ss(e),n=v.useRef(""),a=v.useRef(0),i=v.useCallback(o=>{const l=n.current+o;t(l),At((function c(h){n.current=h,window.clearTimeout(a.current),h!==""&&(a.current=window.setTimeout(()=>c(""),1e3))}),"updateSearch")(l)},[t]),s=v.useCallback(()=>{n.current="",window.clearTimeout(a.current)},[]);return v.useEffect(()=>()=>window.clearTimeout(a.current),[]),[n,i,s]}At(Q2,"useTypeaheadSearch");function e_(e,t,n){const i=t.length>1&&Array.from(t).every(h=>h===t[0])?t[0]:t,s=n?e.indexOf(n):-1;let o=$8(e,Math.max(s,0));i.length===1&&(o=o.filter(h=>h!==n));const c=o.find(h=>h.textValue.toLowerCase().startsWith(i.toLowerCase()));return c!==n?c:void 0}At(e_,"findNextItem");function $8(e,t){return e.map((n,a)=>e[(t+a)%e.length])}At($8,"wrapArray");const ise=Mie,sse=Bie,H8=v.forwardRef(({className:e,children:t,...n},a)=>r.jsxs(P8,{ref:a,className:Se("flex h-9 w-full items-center justify-between whitespace-nowrap rounded-md border border-input bg-transparent px-3 py-2 text-sm shadow-sm ring-offset-background data-[placeholder]:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-ring disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[t,r.jsx(Fie,{asChild:!0,children:r.jsx(ap,{className:"h-4 w-4 opacity-50"})})]}));H8.displayName=P8.displayName;const W8=v.forwardRef(({className:e,...t},n)=>r.jsx(L8,{ref:n,className:Se("flex cursor-default items-center justify-center py-1",e),...t,children:r.jsx(pI,{className:"h-4 w-4"})}));W8.displayName=L8.displayName;const V8=v.forwardRef(({className:e,...t},n)=>r.jsx(D8,{ref:n,className:Se("flex cursor-default items-center justify-center py-1",e),...t,children:r.jsx(ap,{className:"h-4 w-4"})}));V8.displayName=D8.displayName;const U8=v.forwardRef(({className:e,children:t,position:n="popper",...a},i)=>r.jsx(Wie,{children:r.jsxs(E8,{ref:i,className:Se("relative z-50 max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-y-auto overflow-x-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 origin-[--radix-select-content-transform-origin]",n==="popper"&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...a,children:[r.jsx(W8,{}),r.jsx(Zie,{className:Se("p-1",n==="popper"&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:t}),r.jsx(V8,{})]})}));U8.displayName=E8.displayName;const ose=v.forwardRef(({className:e,...t},n)=>r.jsx(R8,{ref:n,className:Se("px-2 py-1.5 text-sm font-semibold",e),...t}));ose.displayName=R8.displayName;const om=v.forwardRef(({className:e,children:t,...n},a)=>r.jsxs(M8,{ref:a,className:Se("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-2 pr-8 text-sm outline-none focus:bg-accent focus:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[r.jsx("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:r.jsx(nse,{children:r.jsx(Rk,{className:"h-4 w-4"})})}),r.jsx(ese,{children:t})]}));om.displayName=M8.displayName;const lse=v.forwardRef(({className:e,...t},n)=>r.jsx(F8,{ref:n,className:Se("-mx-1 my-1 h-px bg-muted",e),...t}));lse.displayName=F8.displayName;const cse=1,dse=1e6;let u1=0;function use(){return u1=(u1+1)%Number.MAX_SAFE_INTEGER,u1.toString()}const h1=new Map,IE=e=>{if(h1.has(e))return;const t=setTimeout(()=>{h1.delete(e),ym({type:"REMOVE_TOAST",toastId:e})},dse);h1.set(e,t)},hse=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,cse)};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?IE(n):e.toasts.forEach(a=>{IE(a.id)}),{...e,toasts:e.toasts.map(a=>a.id===n||n===void 0?{...a,open:!1}:a)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},py=[];let gy={toasts:[]};function ym(e){gy=hse(gy,e),py.forEach(t=>{t(gy)})}function fse({...e}){const t=use(),n=i=>ym({type:"UPDATE_TOAST",toast:{...i,id:t}}),a=()=>ym({type:"DISMISS_TOAST",toastId:t});return ym({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:i=>{i||a()}}}),{id:t,dismiss:a,update:n}}function r0(){const[e,t]=v.useState(gy);return v.useEffect(()=>(py.push(t),()=>{const n=py.indexOf(t);n>-1&&py.splice(n,1)}),[e]),{...e,toast:fse,dismiss:n=>ym({type:"DISMISS_TOAST",toastId:n})}}const mse=()=>{const{toast:e}=r0(),[t,n]=v.useState(!1),[a,i]=v.useState({name:"",email:"",phone:"",property_location:"",current_platform:"",description:""}),[s,o]=v.useState({}),l=()=>{const p={};return a.name.trim()||(p.name="Name is required"),a.email.trim()?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(a.email)||(p.email="Please enter a valid email address"):p.email="Email is required",a.property_location.trim()||(p.property_location="Property location is required"),a.current_platform||(p.current_platform="Please select a platform"),o(p),Object.keys(p).length===0},c=p=>{const{name:x,value:b}=p.target;i(j=>({...j,[x]:b})),s[x]&&o(j=>({...j,[x]:""}))},h=p=>{i(x=>({...x,current_platform:p})),s.current_platform&&o(x=>({...x,current_platform:""}))},m=async p=>{if(p.preventDefault(),!l()){e({title:"Please fix the errors",description:"Check the form for validation errors and try again.",variant:"destructive"});return}n(!0);try{const x={name:a.name,email:a.email,phone:a.phone,property_location:a.property_location,current_platform:a.current_platform,description:a.description},{data:b,error:j}=await Ht.functions.invoke("send-host-inquiry-email",{body:x});if(j)throw new Error(j.message||"Failed to send inquiry");if(!b?.success)throw new Error(b?.error||"Failed to send inquiry");e({title:"Inquiry sent successfully! 🎉",description:"Check your email for confirmation. We'll reach out within 24 hours.",duration:5e3}),i({name:"",email:"",phone:"",property_location:"",current_platform:"",description:""}),o({})}catch(x){console.error("Error submitting inquiry:",x),e({title:"Submission Failed",description:x.message||"There was an error sending your inquiry. Please try again or contact us directly at info@oregoncoastal.com.",variant:"destructive"})}finally{n(!1)}};return r.jsxs("form",{onSubmit:m,className:"space-y-6",children:[r.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsxs(fc,{htmlFor:"name",className:"text-gray-700 font-medium",children:["Your Name ",r.jsx("span",{className:"text-red-500",children:"*"})]}),r.jsx(sm,{id:"name",name:"name",type:"text",value:a.name,onChange:c,placeholder:"John Smith",className:`bg-white border-gray-300 text-gray-900 ${s.name?"border-red-500":""}`,disabled:t}),s.name&&r.jsx("p",{className:"text-red-500 text-sm",children:s.name})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(fc,{htmlFor:"email",className:"text-gray-700 font-medium",children:["Email ",r.jsx("span",{className:"text-red-500",children:"*"})]}),r.jsx(sm,{id:"email",name:"email",type:"email",value:a.email,onChange:c,placeholder:"john@example.com",className:`bg-white border-gray-300 text-gray-900 ${s.email?"border-red-500":""}`,disabled:t}),s.email&&r.jsx("p",{className:"text-red-500 text-sm",children:s.email})]})]}),r.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[r.jsxs("div",{className:"space-y-2",children:[r.jsx(fc,{htmlFor:"phone",className:"text-gray-700 font-medium",children:"Phone"}),r.jsx(sm,{id:"phone",name:"phone",type:"tel",value:a.phone,onChange:c,placeholder:"(555) 123-4567",className:"bg-white border-gray-300 text-gray-900",disabled:t})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(fc,{htmlFor:"property_location",className:"text-gray-700 font-medium",children:["Property Location ",r.jsx("span",{className:"text-red-500",children:"*"})]}),r.jsx(sm,{id:"property_location",name:"property_location",type:"text",value:a.property_location,onChange:c,placeholder:"e.g., Yachats, Newport, Cannon Beach",className:`bg-white border-gray-300 text-gray-900 ${s.property_location?"border-red-500":""}`,disabled:t}),s.property_location&&r.jsx("p",{className:"text-red-500 text-sm",children:s.property_location})]})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsxs(fc,{htmlFor:"current_platform",className:"text-gray-700 font-medium",children:["Current Platform ",r.jsx("span",{className:"text-red-500",children:"*"})]}),r.jsxs(ise,{value:a.current_platform,onValueChange:h,disabled:t,children:[r.jsx(H8,{className:`bg-white border-gray-300 text-gray-900 ${s.current_platform?"border-red-500":""}`,children:r.jsx(sse,{placeholder:"Select a platform"})}),r.jsxs(U8,{children:[r.jsx(om,{value:"airbnb",children:"Airbnb"}),r.jsx(om,{value:"vrbo",children:"VRBO"}),r.jsx(om,{value:"both",children:"Both Airbnb & VRBO"}),r.jsx(om,{value:"not-listed",children:"Not Listed Yet"})]})]}),s.current_platform&&r.jsx("p",{className:"text-red-500 text-sm",children:s.current_platform})]}),r.jsxs("div",{className:"space-y-2",children:[r.jsx(fc,{htmlFor:"description",className:"text-gray-700 font-medium",children:"Brief Description"}),r.jsx(kD,{id:"description",name:"description",value:a.description,onChange:c,placeholder:"Tell us about your property and what you're looking for in a management service...",rows:5,className:"bg-white border-gray-300 text-gray-900 resize-none",disabled:t})]}),r.jsx(pn,{type:"submit",disabled:t,className:"w-full bg-gradient-to-r from-teal-600 to-green-600 hover:from-teal-700 hover:to-green-700 text-white font-semibold py-6 text-lg shadow-lg hover:shadow-xl transition-all duration-300 disabled:opacity-50 disabled:cursor-not-allowed",children:t?r.jsxs(r.Fragment,{children:[r.jsx(Fr,{className:"mr-2 h-5 w-5 animate-spin"}),"Sending..."]}):"Send Me a Free Consultation"})]})},pse=()=>{const e="Oregon Coast Airbnb Management | Oregon Coastal",t="We manage your Oregon Coast vacation rental so you don't have to. Local experts, professional photography, and a track record that speaks for itself.",n=kl("/host"),a=Vk("Oregon Coast Airbnb Management","https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/cd2e1db7d328f6688d9b2cec2fc13ae5.jpg"),i=[{icon:xq,title:"Professional Photography",description:"Original, high-quality photos that showcase your property's unique character and coastal setting."},{icon:Tq,title:"Listing Optimization",description:"SEO-optimized titles, descriptions, and pricing strategies that drive bookings and maximize revenue."},{icon:bI,title:"Guest Communication",description:"24/7 responsive support from inquiry to checkout. We handle everything so you don't have to."},{icon:Pq,title:"Guest Experience Tools",description:"Custom guides, local recommendations, and resources that turn first-time guests into repeat visitors."},{icon:We,title:"Local Knowledge",description:"Years of on-the-ground expertise from Astoria to Brookings. We know what guests want and need."},{icon:vq,title:"Performance Reporting",description:"Transparent monthly reports with booking data, revenue insights, and actionable recommendations."}],s=["Yachats & Cape Perpetua","Newport & Nye Beach","Lincoln City & Depoe Bay","Cannon Beach & Seaside","Entire Oregon Coast"];return r.jsxs(r.Fragment,{children:[r.jsxs($e,{children:[r.jsx("title",{children:e}),r.jsx("meta",{name:"description",content:t}),r.jsx("meta",{name:"robots",content:"index, follow"}),r.jsx("link",{rel:"canonical",href:n}),r.jsx("meta",{property:"og:title",content:e}),r.jsx("meta",{property:"og:description",content:t}),r.jsx("meta",{property:"og:image",content:a}),r.jsx("meta",{property:"og:url",content:n}),r.jsx("meta",{property:"og:type",content:"website"}),r.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),r.jsx("meta",{name:"twitter:title",content:e}),r.jsx("meta",{name:"twitter:description",content:t}),r.jsx("meta",{name:"twitter:image",content:a})]}),r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsx(Ge,{}),r.jsxs("section",{className:"relative h-screen flex items-center justify-center overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/cd2e1db7d328f6688d9b2cec2fc13ae5.jpg",alt:"Oregon Coast property",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/50 via-black/40 to-black/60"})]}),r.jsxs(F.div,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"relative z-10 text-center px-4 max-w-5xl mx-auto",children:[r.jsxs("h1",{className:"text-5xl md:text-7xl font-bold text-white mb-6 drop-shadow-2xl",children:["Your Oregon Coast Property,",r.jsx("br",{}),"Fully Managed."]}),r.jsx("p",{className:"text-xl md:text-2xl text-white/95 mb-10 max-w-3xl mx-auto drop-shadow-lg font-light leading-relaxed",children:"From professional photography to guest communication, we handle everything so you can enjoy the income without the hassle."}),r.jsx(F.a,{href:"#contact",whileHover:{scale:1.05},whileTap:{scale:.95},className:"inline-block bg-gradient-to-r from-teal-600 to-green-600 hover:from-teal-700 hover:to-green-700 text-white font-bold px-10 py-5 rounded-lg text-lg shadow-2xl transition-all duration-300",children:"Get a Free Management Consultation"})]})]}),r.jsx("section",{className:"py-20 px-4 bg-gray-50",children:r.jsx("div",{className:"max-w-6xl mx-auto",children:r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"grid md:grid-cols-2 gap-12 items-center",children:[r.jsxs("div",{children:[r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-6",children:"What Full Management Looks Like in the Real World"}),r.jsxs("p",{className:"text-lg text-gray-700 mb-4 leading-relaxed",children:["Take the ",r.jsx("strong",{children:"Carriage House at Dragons Cove"})," in Yachats. During its peak season (May through October), this property averaged just ",r.jsx("strong",{children:"9 available nights"}),"."]}),r.jsx("p",{className:"text-lg text-gray-700 mb-6 leading-relaxed",children:"That's the result of Oregon Coastal's full-service approach: original photography, local SEO optimization, guest communication, custom guides, and proactive booking management."}),r.jsxs("a",{href:"https://dragonscove.info",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center text-teal-700 hover:text-teal-800 font-semibold text-lg transition-colors group",children:["See the Property ",r.jsx(Dv,{className:"ml-2 w-5 h-5 group-hover:translate-x-1 transition-transform"})]})]}),r.jsx("div",{className:"rounded-2xl overflow-hidden shadow-2xl",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1692525084492-1b66e54a65f3",alt:"Carriage House at Dragons Cove",className:"w-full h-auto object-cover"})})]})})}),r.jsx("section",{className:"py-20 px-4 bg-white",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsx(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-center mb-16",children:r.jsxs("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:["Everything Your Property Needs,",r.jsx("br",{}),"Nothing You Have To Do"]})}),r.jsx("div",{className:"grid md:grid-cols-2 gap-10",children:i.map((o,l)=>r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:l*.1},className:"flex gap-5 p-6 rounded-xl bg-gradient-to-br from-gray-50 to-white border border-gray-200 hover:shadow-lg transition-shadow duration-300",children:[r.jsx("div",{className:"flex-shrink-0",children:r.jsx("div",{className:"w-14 h-14 bg-gradient-to-br from-teal-500 to-green-600 rounded-lg flex items-center justify-center shadow-md",children:r.jsx(o.icon,{className:"w-7 h-7 text-white"})})}),r.jsxs("div",{children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 mb-2",children:o.title}),r.jsx("p",{className:"text-gray-600 leading-relaxed",children:o.description})]})]},l))})]})}),r.jsx("section",{className:"py-20 px-4 bg-gradient-to-br from-teal-50 to-green-50",children:r.jsx("div",{className:"max-w-4xl mx-auto",children:r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-center",children:[r.jsxs("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-8",children:["We're Not a National Management Company.",r.jsx("br",{}),"We're Local."]}),r.jsxs("div",{className:"space-y-6 text-lg text-gray-700 leading-relaxed",children:[r.jsxs("p",{children:["Every property we manage gets ",r.jsx("strong",{children:"original photography"}),"—not stock images. Every listing includes ",r.jsx("strong",{children:"custom local guides"}),"—not generic templates."]}),r.jsx("p",{children:"We've spent years building on-the-ground knowledge from Astoria to Brookings, understanding what makes each coastal town unique and what guests are searching for."}),r.jsx("p",{className:"font-semibold text-xl text-gray-900 pt-4",children:"Other companies measure success by guest reviews. We measure it by repeat bookings."})]})]})})}),r.jsx("section",{className:"py-20 px-4 bg-white",children:r.jsx("div",{className:"max-w-4xl mx-auto",children:r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"relative",children:[r.jsx(Kq,{className:"absolute -top-6 -left-4 w-16 h-16 text-teal-200 opacity-50"}),r.jsx("blockquote",{className:"text-2xl md:text-3xl text-gray-800 italic font-light leading-relaxed mb-8 pl-12",children:'"Working with Oregon Coastal to manage our Yachats property has been seamless. They handle everything from booking to checkout, and our occupancy rates have never been better. We finally get to enjoy owning a vacation rental without any of the stress."'}),r.jsxs("div",{className:"pl-12",children:[r.jsx("p",{className:"text-lg font-semibold text-gray-900",children:"Property Owner"}),r.jsx("p",{className:"text-gray-600",children:"Yachats, OR"})]})]})})}),r.jsx("section",{className:"py-20 px-4 bg-gray-50",children:r.jsx("div",{className:"max-w-4xl mx-auto",children:r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-center mb-12",children:[r.jsxs("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-6",children:["We Work Best With Properties",r.jsx("br",{}),"That Have Potential"]}),r.jsx("p",{className:"text-lg text-gray-700 leading-relaxed max-w-3xl mx-auto mb-8",children:"We're selective about the properties we take on because we're results-focused. If your property has strong fundamentals—great location, unique character, solid condition—we can help it perform."}),r.jsx("p",{className:"text-xl font-semibold text-gray-900 mb-6",children:"We currently manage properties in:"}),r.jsx("ul",{className:"space-y-3 text-left max-w-md mx-auto",children:s.map((o,l)=>r.jsxs(F.li,{initial:{opacity:0,x:-20},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.4,delay:l*.1},className:"flex items-center text-lg text-gray-700",children:[r.jsx(We,{className:"w-5 h-5 text-teal-600 mr-3 flex-shrink-0"}),o]},l))})]})})}),r.jsx("section",{id:"contact",className:"py-20 px-4 bg-white",children:r.jsx("div",{className:"max-w-3xl mx-auto",children:r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},children:[r.jsxs("div",{className:"text-center mb-12",children:[r.jsxs("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:["Ready to Stop Managing",r.jsx("br",{}),"and Start Earning?"]}),r.jsx("p",{className:"text-lg text-gray-600",children:"Tell us about your property and we'll schedule a free consultation to discuss how we can help."})]}),r.jsx("div",{className:"bg-gradient-to-br from-gray-50 to-white p-8 rounded-2xl shadow-xl border border-gray-200",children:r.jsx(mse,{})})]})})}),r.jsx("section",{className:"py-12 px-4 bg-gray-100 border-t border-gray-200",children:r.jsx("div",{className:"max-w-4xl mx-auto text-center",children:r.jsxs("p",{className:"text-sm text-gray-600 leading-relaxed",children:[r.jsx("strong",{children:"Oregon Coastal Property Management"})," is a service of Oregon Coastal, featuring original photography and property expertise built over years of coastal hospitality experience. Featured properties include real listings managed by our team."]})})}),r.jsx(Ye,{})]})]})},t_=({name:e,description:t,slug:n,image:a,backgroundImage:i})=>{const[s,o]=v.useState(a),[l,c]=v.useState(!1),h="https://images.unsplash.com/photo-1506905925346-21bda4d32df4?auto=format&fit=crop&w=800&q=80",m=()=>{l||(c(!0),o(h))},p=i||s||h;return r.jsxs(F.div,{whileHover:{y:-4},transition:{duration:.3},className:"editorial-card overflow-hidden flex flex-col h-full group",children:[r.jsx(_t,{to:`/town/${n}`,className:"block h-56 overflow-hidden relative bg-parchment",children:i?r.jsx("div",{className:"w-full h-full bg-cover bg-center transition-transform duration-700 group-hover:scale-105",style:{backgroundImage:`url(${p})`},role:"img","aria-label":`Scenic view of ${e}`}):r.jsx("img",{src:p,alt:`Scenic view of ${e}`,onError:m,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105"})}),r.jsxs("div",{className:"p-6 md:p-8 flex flex-col flex-grow bg-white",children:[r.jsx("h3",{className:"text-2xl font-serif font-bold uppercase tracking-widest text-primary mb-4",children:e}),r.jsx("p",{className:"text-foreground font-sans text-sm md:text-base mb-6 leading-relaxed line-clamp-3 flex-grow",children:t}),r.jsxs(_t,{to:`/town/${n}`,className:"inline-flex items-center text-sage font-sans font-medium tracking-widest uppercase text-sm hover:text-primary transition-colors mt-auto group-hover:translate-x-1 duration-300",children:["EXPLORE ",r.jsx(Dv,{className:"ml-2 w-4 h-4"})]})]})]})},n_=({title:e,subtitle:t,description:n,ctaButtonText:a,secondaryText:i,backgroundImage:s})=>{const o=()=>{document.getElementById("town-grid")?.scrollIntoView({behavior:"smooth"})},l=!!s;return r.jsxs("section",{className:`relative border-b border-gray-200 py-24 md:py-32 px-4 sm:px-6 lg:px-8 shadow-sm z-10 ${l?"":"bg-white"}`,children:[l&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"absolute inset-0 z-0 bg-cover bg-center",style:{backgroundImage:`url(${s})`}}),r.jsx("div",{className:"absolute inset-0 z-0 bg-black/60"})]}),r.jsxs("div",{className:"relative z-10 max-w-4xl mx-auto text-center flex flex-col items-center",children:[t&&r.jsx(F.span,{initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{duration:.5,ease:"easeOut"},className:`text-sm font-bold tracking-widest uppercase mb-3 block ${l?"text-white/80":"text-primary"}`,children:t}),e&&r.jsx(F.h1,{initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{duration:.5,delay:.1,ease:"easeOut"},className:`text-4xl md:text-5xl lg:text-6xl font-extrabold tracking-tight mb-6 ${l?"text-white":"text-gray-900"}`,children:e}),n&&r.jsx(F.p,{initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{duration:.5,delay:.2,ease:"easeOut"},className:`text-lg md:text-xl mb-10 leading-relaxed max-w-3xl ${l?"text-white/90":"text-gray-600"}`,children:n}),a&&r.jsx(F.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{duration:.5,delay:.3,ease:"easeOut"},children:r.jsx(pn,{onClick:o,size:"lg",className:`rounded-full px-8 py-6 text-base font-semibold shadow-md transition-all hover:scale-105 hover:shadow-lg active:scale-95 ${l?"bg-white text-gray-900 hover:bg-gray-100 hover:text-gray-900":""}`,children:a})}),i&&r.jsx(F.p,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.7,delay:.5},className:`mt-6 text-sm font-medium ${l?"text-white/70":"text-gray-500"}`,children:i})]})]})},gse=[{town:"Astoria",events:[{name:"Great Columbia Crossing",month:"October",dates:"Oct 11, 2026"},{name:"FisherPoets Gathering",month:"February",dates:"Feb 26-28, 2027"},{name:"Astoria Scandinavian Midsummer",month:"June",dates:"June 18-20, 2027"},{name:"Astoria Regatta",month:"August",dates:"Aug 11-15, 2027"}]},{town:"Seaside",events:[{name:"Seaside Beach Volleyball Tourney",month:"August",dates:"Aug 13-16, 2026"},{name:"Hood to Coast Finish",month:"August",dates:"Aug 28, 2026"},{name:"Seaside Muscle and Chrome",month:"June",dates:"June 19, 2027"}]},{town:"Cannon Beach",events:[{name:"Stormy Weather Arts Festival",month:"November",dates:"Nov 6-8, 2026"},{name:"Savor Cannon Beach",month:"March",dates:"March 11-14, 2027"},{name:"Sandcastle Contest",month:"June",dates:"June 12, 2027"}]},{town:"Rockaway Beach",events:[{name:"Independence Day Celebration",month:"July",dates:"July 4, 2027"},{name:"Kite Festival",month:"August",dates:"Aug 15-16, 2026"}]},{town:"Manzanita",events:[{name:"Manzanita Farmers Market",month:"June-Oct",dates:"Fridays Seasonal"}]},{town:"Tillamook",events:[{name:"Tillamook County Fair",month:"August",dates:"Aug 5-8, 2026"}]},{town:"Garibaldi",events:[{name:"Garibaldi Days",month:"July",dates:"July 23-25, 2027"}]}],xse={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.1}}},yse={hidden:{y:20,opacity:0},visible:{y:0,opacity:1,transition:{type:"spring",stiffness:100}}},r_=({events:e=gse})=>r.jsx("section",{className:"py-20 px-4 bg-transparent border-t border-stone-200",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("p",{className:"text-sm md:text-base font-semibold text-stone-500 uppercase tracking-wider mb-2",children:"Plan Your Visit"}),r.jsx("h2",{className:"text-3xl md:text-5xl font-serif font-bold text-stone-900 tracking-tight mb-4",children:"Regional Events"}),r.jsx("div",{className:"w-24 h-[1px] bg-stone-300 mx-auto"}),r.jsx("p",{className:"mt-6 text-lg text-stone-600 max-w-2xl mx-auto",children:"Discover annual festivals, historic celebrations, and community gatherings across the coast throughout the year."})]}),r.jsx(F.div,{variants:xse,initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-100px"},className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:e.map(t=>r.jsx(F.div,{variants:yse,className:"h-full",children:r.jsxs(gp,{className:"h-full flex flex-col bg-white border border-stone-200 rounded-none shadow-[0_2px_8px_rgba(0,0,0,0.04)] hover:shadow-[0_8px_24px_rgba(0,0,0,0.06)] transition-all duration-300",children:[r.jsx(I2,{className:"bg-transparent pb-4 border-b border-stone-100",children:r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx(We,{className:"w-5 h-5 text-stone-400"}),r.jsx(M2,{className:"text-xl font-serif font-bold text-stone-900 uppercase tracking-wide",children:t.town})]})}),r.jsx(Zv,{className:"pt-6 flex-grow",children:r.jsx("ul",{className:"space-y-4",children:t.events.map((n,a)=>r.jsxs("li",{className:"flex flex-col gap-1 border-b border-stone-100 last:border-0 pb-4 last:pb-0",children:[r.jsx("span",{className:"font-semibold text-stone-800 leading-tight",children:n.name}),r.jsxs("div",{className:"flex items-center text-sm text-stone-500 gap-1.5 mt-1 font-medium",children:[r.jsx(Ok,{className:"w-3.5 h-3.5 flex-shrink-0"}),r.jsxs("span",{children:[n.month," • ",n.dates]})]})]},a))})})]})},t.town))})]})}),jn={astoria:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/4ae5a599ab2b3ff476a7654b90478946.png",warrenton:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2b4ad5459baa2eff0c839a7b1e3e1bbf.png",gearhart:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/26d61417743c9ff99b3bd9c8f49cd6c3.webp",seaside:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/20f258c255a9c7d65b2c4e69ce5a6277.jpg","cannon-beach":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/18d2b8e2d767032df056cbc5117b9100.jpg","tolovana-park":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/df132b49e7e22090d7fedc15ea9e28d2.jpg","arch-cape":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/f3270f1b8829f4b1fb98f4e7b21cfafc.webp",manzanita:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/0d399365971028fce33b4227051bdae1.webp",nehalem:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c3c632348e0669d74b82b02c93762d86.webp",wheeler:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/f068330862cc5aa8ec47b9773040e840.webp","rockaway-beach":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/ce4572299b0e44db587b4f94db43804c.webp",garibaldi:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/6773f18a11c912060f4fb540a5151643.webp","bay-city":"https://images.unsplash.com/photo-1678954061539-d67517458c8b",tillamook:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2f9ab0b18fee02098149b44ecf503ccc.webp",netarts:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/bfcd87f44c09268ea2d6c2257af18e77.webp",oceanside:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e3b115213c51f13f35a43f694d906b1f.jpg","pacific-city":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c494a736372e802103c487f6ae052c35.webp",neskowin:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/be4d4dd3d069dccd891e2a676d8b3210.webp","lincoln-city":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/4b7ba56a47e804904a0e87f9ebad9b07.webp","gleneden-beach":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/198018a5878ad5fcf6cafddb42efb27d.webp","depoe-bay":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2c57f533ae0506195f5f5c9a0953d506.webp","otter-rock":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/db7f80fe48b5bd85006a138f546efff8.webp",newport:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c6fc2828b4f0e652c620d7b1874dcdab.webp","south-beach":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e1e041b89722871843a1b35e49288748.webp",toledo:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/457d2a9a2f4957025e208eca9ea65735.webp","seal-rock":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/8827892cb93ca1b0cd53550f0936dcde.webp",waldport:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/f29f63a80e5ae25aecbbc6b26c9d6390.webp",yachats:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e7a98346b0f2453dedf2c0e629d0d68c.webp",florence:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/f96e6b74688eedfb4225959efeeff861.webp","dune-city":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c2bb95a8f717d26828623d6733b9a799.webp",reedsport:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/8c4def8dadeb5e37fc696c35b7fe47c7.webp","winchester-bay":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/956ffa7b92d914f60099d7d491ca5d72.webp",lakeside:"https://images.unsplash.com/photo-1559524037-eb6eb9b5d848?auto=format&fit=crop&w=2000&q=80","north-bend":"https://images.unsplash.com/photo-1559524037-eb6eb9b5d848?auto=format&fit=crop&w=2000&q=80","coos-bay":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/32c0d973a9704cf199b61ec4477d1531.webp",charleston:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/459d754428b004077d795060ad117106.webp",bandon:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/5b77b21e59bd04defe28f5074f5126d6.webp",langlois:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/17bd9faa00a2de20cd5caa78364dd87c.webp","port-orford":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2a920d94b7ea480bbad4676664281550.webp","gold-beach":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c877cc6b256faf5d4fc943c9cf11f331.webp",brookings:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/d70e7940aab86e455bd557529fff3fdd.webp",harbor:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c83af0560b4f8c977f60d521543eadef.webp"},vse=rp("relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7",{variants:{variant:{default:"bg-background text-foreground",destructive:"border-destructive/50 text-destructive dark:border-destructive [&>svg]:text-destructive"}},defaultVariants:{variant:"default"}}),gh=v.forwardRef(({className:e,variant:t,...n},a)=>r.jsx("div",{ref:a,role:"alert",className:Se(vse({variant:t}),e),...n}));gh.displayName="Alert";const xh=v.forwardRef(({className:e,...t},n)=>r.jsx("h5",{ref:n,className:Se("mb-1 font-medium leading-none tracking-tight",e),...t}));xh.displayName="AlertTitle";const yh=v.forwardRef(({className:e,...t},n)=>r.jsx("div",{ref:n,className:Se("text-sm [&_p]:leading-relaxed",e),...t}));yh.displayName="AlertDescription";const bse=()=>{const[e,t]=v.useState([]),[n,a]=v.useState(!0),[i,s]=v.useState(null),o=Yn(),l=kl(o.pathname);v.useEffect(()=>{(()=>{try{if(a(!0),!zr||!zr.northCoast)throw new Error("Region data not found");const m=zr.northCoast.filter(Boolean).map(p=>{const x=p.route.split("/").pop();return{...p,slug:x,heroImage:jn[x]||p.heroImage}});t(m)}catch{s("Failed to load regional towns. Please try refreshing the page.")}finally{a(!1)}})()},[]);const c=[{question:"How far is the North Coast from Portland?",answer:"The North Coast is the closest coastal region to Portland, with Seaside and Cannon Beach being about a 1.5 hour drive (80 miles) away."},{question:"What is the most famous attraction on the North Coast?",answer:"Haystack Rock in Cannon Beach is arguably the most famous and photographed landmark on the entire Oregon Coast."},{question:"Is Astoria part of the North Coast?",answer:"Yes, Astoria marks the northern tip of the Oregon Coast where the Columbia River enters the Pacific Ocean."}];return r.jsxs(r.Fragment,{children:[r.jsxs($e,{children:[r.jsx("title",{children:"Oregon Coast Travel Guide - North Coast"}),r.jsx("meta",{name:"description",content:"Explore the rugged North Coast of Oregon with charming towns, scenic beaches, lighthouses, and coastal attractions."}),r.jsx("link",{rel:"canonical",href:l}),r.jsx("meta",{name:"geo.region",content:"US-OR"}),r.jsx("meta",{name:"geo.placename",content:"North Coast, Oregon"})]}),r.jsx(Mt,{name:"Oregon Coast Travel Guide - North Coast",description:"Region spanning from Astoria to Neskowin, known for history and sandy beaches.",geo:{lat:45.8,lng:-123.9},url:"https://oregoncoastal.com/north-coast",type:"AdministrativeArea",breadcrumbs:[{name:"Home",url:"/"},{name:"North Coast",url:"/north-coast"}]}),r.jsxs("div",{className:"min-h-screen bg-[#FFF8F0] flex flex-col font-sans",children:[r.jsx(Ge,{}),r.jsx(n_,{title:"North Coast Oregon",subtitle:"NORTH COAST",description:"Where the mighty Columbia River meets the Pacific. Home to historic Astoria, the iconic Haystack Rock at Cannon Beach, and miles of sandy shores perfect for family adventures.",ctaButtonText:"EXPLORE NORTH COAST TOWNS",secondaryText:"Discover beautiful coastal communities from Astoria down to Oceanside.",backgroundImage:jn["cannon-beach"]}),r.jsx("main",{id:"town-grid",className:"max-w-7xl mx-auto px-4 py-12 md:py-16 flex-grow w-full scroll-mt-8",children:i?r.jsxs(gh,{variant:"destructive",className:"max-w-2xl mx-auto",children:[r.jsx(Qe,{className:"h-4 w-4"}),r.jsx(xh,{children:"Error"}),r.jsx(yh,{children:i})]}):r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-8",children:n?[...Array(8)].map((h,m)=>r.jsxs("div",{className:"animate-pulse flex flex-col h-full bg-white rounded-none shadow-md border border-stone-200 overflow-hidden",children:[r.jsx("div",{className:"h-56 bg-stone-100 w-full"}),r.jsxs("div",{className:"p-6 flex flex-col flex-grow",children:[r.jsx("div",{className:"h-6 bg-stone-100 rounded w-3/4 mb-4"}),r.jsx("div",{className:"h-4 bg-stone-100 rounded w-full mb-2"}),r.jsx("div",{className:"h-4 bg-stone-100 rounded w-2/3 mb-6"}),r.jsx("div",{className:"mt-auto h-4 bg-stone-100 rounded w-1/3"})]})]},m)):e.map((h,m)=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:m*.05},className:"group h-full",children:r.jsx(t_,{name:h.name,description:h.description,slug:h.slug,image:h.heroImage})},h.slug))})}),r.jsx(r_,{}),r.jsx(hp,{faqs:c,title:"North Coast Visitor FAQs"}),r.jsx(Ye,{})]})]})},wse=[{town:"Lincoln City",events:[{name:"Fall Kite Festival",month:"October",dates:"Oct 3-4, 2026"},{name:"Finders Keepers Glass Floats",month:"October-May",dates:"Daily search season"},{name:"Summer Kite Festival",month:"June",dates:"June 26-27, 2027"}]},{town:"Depoe Bay",events:[{name:"Indian Style Salmon Bake",month:"September",dates:"Sept 19, 2026"},{name:"Fleet of Flowers",month:"May",dates:"May 31, 2027"}]},{town:"Newport",events:[{name:"Seafood & Wine Festival",month:"February",dates:"Feb 25-28, 2027"},{name:"Newport Marathon",month:"June",dates:"June 5, 2027"},{name:"Rogue Ales Oyster Festival",month:"April",dates:"April 2027"}]},{town:"Waldport",events:[{name:"Beachcomber Days",month:"July",dates:"July 4, 2027"}]},{town:"Yachats",events:[{name:"Yachats Mushroom Festival",month:"October",dates:"Oct 16-18, 2026"},{name:"Yachats Music Festival",month:"July",dates:"July 9-11, 2027"}]}],jse=()=>{const[e,t]=v.useState([]),[n,a]=v.useState(!0),[i,s]=v.useState(null),o=Yn(),l=kl(o.pathname);v.useEffect(()=>{(()=>{try{if(a(!0),!zr||!zr.centralCoast)throw new Error("Region data not found");const m=zr.centralCoast.filter(Boolean).map(p=>{const x=p.route.split("/").pop();return{...p,slug:x,heroImage:jn[x]||p.heroImage}});t(m)}catch{s("Failed to load regional towns. Please try refreshing the page.")}finally{a(!1)}})()},[]);const c=[{question:"Where does the Central Oregon Coast start and end?",answer:"The Central Coast is generally defined as the area from Lincoln City in the north down to Florence in the south."},{question:"Is the Central Coast good for whale watching?",answer:"Yes, especially Depoe Bay, which is known as the 'Whale Watching Capital of the Oregon Coast' due to its resident pod of gray whales."},{question:"What are the major cities on the Central Coast?",answer:"The primary hubs are Lincoln City, Newport, and Florence, each offering extensive lodging, dining, and attractions."}];return r.jsxs(r.Fragment,{children:[r.jsxs($e,{children:[r.jsx("title",{children:"Oregon Coast Travel Guide - Central Coast"}),r.jsx("meta",{name:"description",content:"Discover the Central Coast of Oregon featuring beautiful beaches, sea lions, tide pools, and family-friendly attractions."}),r.jsx("link",{rel:"canonical",href:l}),r.jsx("meta",{name:"geo.region",content:"US-OR"}),r.jsx("meta",{name:"geo.placename",content:"Central Coast, Oregon"})]}),r.jsx(Mt,{name:"Oregon Coast Travel Guide - Central Coast",description:"Region spanning from Lincoln City to Florence, known for lighthouses and dunes.",geo:{lat:44.6,lng:-124},url:"https://oregoncoastal.com/central-coast",type:"AdministrativeArea",breadcrumbs:[{name:"Home",url:"/"},{name:"Central Coast",url:"/central-coast"}]}),r.jsxs("div",{className:"min-h-screen bg-[hsl(var(--cream-bg))] flex flex-col font-sans",children:[r.jsx(Ge,{}),r.jsx(n_,{title:"Central Coast Oregon",subtitle:"CENTRAL COAST",description:"The heart of the coastline featuring dramatic cliffs, historic lighthouses, and world-class whale watching. Explore vibrant communities like Newport and the natural wonders of the Oregon Dunes.",ctaButtonText:"EXPLORE CENTRAL COAST TOWNS",secondaryText:"Discover stunning destinations from Pacific City all the way down to Dune City.",backgroundImage:jn.newport}),r.jsx("main",{id:"town-grid",className:"max-w-7xl mx-auto px-4 py-12 md:py-16 flex-grow w-full scroll-mt-8",children:i?r.jsxs(gh,{variant:"destructive",className:"max-w-2xl mx-auto",children:[r.jsx(Qe,{className:"h-4 w-4"}),r.jsx(xh,{children:"Error"}),r.jsx(yh,{children:i})]}):r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-8",children:n?[...Array(8)].map((h,m)=>r.jsxs("div",{className:"animate-pulse flex flex-col h-full bg-white rounded-none shadow-[0_2px_8px_rgba(0,0,0,0.04)] border border-stone-200 overflow-hidden",children:[r.jsx("div",{className:"h-56 bg-stone-100 w-full"}),r.jsxs("div",{className:"p-6 flex flex-col flex-grow",children:[r.jsx("div",{className:"h-6 bg-stone-100 rounded w-3/4 mb-4"}),r.jsx("div",{className:"h-4 bg-stone-100 rounded w-full mb-2"}),r.jsx("div",{className:"h-4 bg-stone-100 rounded w-2/3 mb-6"}),r.jsx("div",{className:"mt-auto h-4 bg-stone-100 rounded w-1/3"})]})]},m)):e.map((h,m)=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:m*.05},className:"group h-full",children:r.jsx(t_,{name:h.name,description:h.description,slug:h.slug,image:h.heroImage})},h.slug))})}),r.jsx(r_,{events:wse}),r.jsx(hp,{faqs:c,title:"Central Coast Visitor FAQs"}),r.jsx(Ye,{})]})]})},Nse=[{town:"Florence",events:[{name:"Rhododendron Festival",month:"May",dates:"May 13-16, 2027"},{name:"Winter Music Festival",month:"January",dates:"Jan 22-24, 2027"}]},{town:"Reedsport",events:[{name:"Chainsaw Sculpting Champ",month:"June",dates:"June 17-20, 2027"}]},{town:"Coos Bay",events:[{name:"Blackberry Arts Festival",month:"August",dates:"Aug 22-23, 2026"},{name:"Bay Area Fun Festival",month:"September",dates:"Sept 19-20, 2026"},{name:"Shore Acres Holiday Lights",month:"Nov-Dec",dates:"Nov 26 - Dec 31, 2026"}]},{town:"Bandon",events:[{name:"Circles in the Sand",month:"Varies",dates:"Varies by tide - Check site"},{name:"Cranberry Festival",month:"September",dates:"Sept 11-13, 2026"}]},{town:"Gold Beach",events:[{name:"Curry County Fair",month:"July",dates:"July 21-24, 2027"}]},{town:"Brookings",events:[{name:"Azalea Festival",month:"May",dates:"May 21-24, 2027"}]}],ME={reedsport:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/8c4def8dadeb5e37fc696c35b7fe47c7.webp","winchester-bay":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/956ffa7b92d914f60099d7d491ca5d72.webp","coos-bay":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/32c0d973a9704cf199b61ec4477d1531.webp",bandon:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/5b77b21e59bd04defe28f5074f5126d6.webp","gold-beach":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c877cc6b256faf5d4fc943c9cf11f331.webp",brookings:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/d70e7940aab86e455bd557529fff3fdd.webp","port-orford":"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2a920d94b7ea480bbad4676664281550.webp",langlois:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/17bd9faa00a2de20cd5caa78364dd87c.webp",harbor:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c83af0560b4f8c977f60d521543eadef.webp",charleston:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/459d754428b004077d795060ad117106.webp"},kse=()=>{const[e,t]=v.useState([]),[n,a]=v.useState(!0),[i,s]=v.useState(null),o=Yn(),l=kl(o.pathname);v.useEffect(()=>{(()=>{try{if(a(!0),!zr||!zr.southCoast)throw new Error("Region data not found");const m=zr.southCoast.filter(Boolean).map(p=>{const x=p.route.split("/").pop(),b=ME[x]||jn[x]||p.heroImage;return{...p,slug:x,heroImage:b}});t(m)}catch{s("Failed to load regional towns. Please try refreshing the page.")}finally{a(!1)}})()},[]);const c=[{question:"Why is the South Coast called the 'Wild Coast'?",answer:"The South Coast is less developed and more rugged than the northern regions, featuring dramatic sea stacks, isolated beaches, and vast wilderness areas."},{question:"Is the weather warmer on the South Coast?",answer:"Yes, specifically near Brookings, which is known as the 'Banana Belt' of Oregon due to its mild, sunny climate year-round."},{question:"What are the key towns to visit on the South Coast?",answer:"Bandon, Gold Beach, and Brookings are the most popular destinations for travelers exploring the southern region."}];return r.jsxs(r.Fragment,{children:[r.jsxs($e,{children:[r.jsx("title",{children:"Oregon Coast Travel Guide - South Coast"}),r.jsx("meta",{name:"description",content:"Experience the South Coast of Oregon with dramatic cliffs, hidden coves, outdoor adventures, and coastal charm."}),r.jsx("link",{rel:"canonical",href:l}),r.jsx("meta",{name:"geo.region",content:"US-OR"}),r.jsx("meta",{name:"geo.placename",content:"South Coast, Oregon"})]}),r.jsx(Mt,{name:"Oregon Coast Travel Guide - South Coast",description:"Region spanning from Reedsport to Brookings, known for rugged beauty and warmer weather.",geo:{lat:42.8,lng:-124.4},url:"https://oregoncoastal.com/south-coast",type:"AdministrativeArea",breadcrumbs:[{name:"Home",url:"/"},{name:"South Coast",url:"/south-coast"}]}),r.jsxs("div",{className:"min-h-screen bg-[hsl(var(--cream-bg))] flex flex-col font-sans",children:[r.jsx(Ge,{}),r.jsx(n_,{title:"South Coast Oregon",subtitle:"SOUTH COAST",description:"Wild, rugged, and breathtaking. The South Coast offers a warmer climate, secluded beaches, and the spectacular sea stacks of Bandon. It's the perfect escape for those seeking solitude and nature.",ctaButtonText:"EXPLORE SOUTH COAST TOWNS",secondaryText:"Discover incredible spots from Reedsport down to Brookings and the California border.",backgroundImage:ME.brookings}),r.jsx("main",{id:"town-grid",className:"max-w-7xl mx-auto px-4 py-12 md:py-16 flex-grow w-full scroll-mt-8",children:i?r.jsxs(gh,{variant:"destructive",className:"max-w-2xl mx-auto",children:[r.jsx(Qe,{className:"h-4 w-4"}),r.jsx(xh,{children:"Error"}),r.jsx(yh,{children:i})]}):r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-8",children:n?[...Array(8)].map((h,m)=>r.jsxs("div",{className:"animate-pulse flex flex-col h-full bg-white rounded-none shadow-[0_2px_8px_rgba(0,0,0,0.04)] border border-stone-200 overflow-hidden",children:[r.jsx("div",{className:"h-56 bg-stone-100 w-full"}),r.jsxs("div",{className:"p-6 flex flex-col flex-grow",children:[r.jsx("div",{className:"h-6 bg-stone-100 rounded w-3/4 mb-4"}),r.jsx("div",{className:"h-4 bg-stone-100 rounded w-full mb-2"}),r.jsx("div",{className:"h-4 bg-stone-100 rounded w-2/3 mb-6"}),r.jsx("div",{className:"mt-auto h-4 bg-stone-100 rounded w-1/3"})]})]},m)):e.map((h,m)=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:m*.05},className:"group h-full",children:r.jsx(t_,{name:h.name,description:h.description,slug:h.slug,image:h.heroImage})},h.slug))})}),r.jsx(r_,{events:Nse}),r.jsx(hp,{faqs:c,title:"South Coast Visitor FAQs"}),r.jsx(Ye,{})]})]})},_se=`Perched at the mouth of the mighty Columbia River where it meets the Pacific Ocean, Astoria stands as Oregon's oldest city and one of the most captivating destinations on the Oregon Coast. Founded in 1811, this historic port city seamlessly blends Victorian architecture, rich maritime heritage, and stunning natural beauty into an unforgettable coastal experience. Often called "Little San Francisco" for its hillside homes and charming character, Astoria offers visitors a unique blend of cultural attractions, outdoor adventures, and culinary delights.
The city's dramatic location provides breathtaking vistas at every turn. The iconic Astoria-Megler Bridge spans four miles across the Columbia River, connecting Oregon to Washington State and serving as one of the longest continuous truss bridges in North America. Downtown Astoria enchants visitors with its historic waterfront district, where century-old buildings house eclectic shops, artisan coffee roasters, craft breweries, and farm-to-table restaurants. The city's creative spirit thrives in its galleries, theaters, and film connections—most famously as the filming location for the beloved 1980s classic "The Goonies."
Whether you're exploring Lewis and Clark's winter encampment at Fort Clatsop, climbing the 164 spiral stairs of the Astoria Column for panoramic views, or sampling fresh-caught salmon at a riverside bistro, Astoria delivers an authentic Pacific Northwest experience. The moody coastal weather only adds to its atmospheric charm, making it an ideal destination year-round for travelers seeking history, natural beauty, and small-town hospitality along one of America's most scenic coastlines.`,kN=[{name:"The Astoria Column",description:"Standing 125 feet tall atop Coxcomb Hill, this hand-painted column offers the best view on the coast. Climb the 164 spiral stairs to the observation deck for a breathtaking 360-degree panorama of the Columbia River, the Pacific Ocean, and the Coast Range. It's a rite of passage for any visitor.",details:"Parking fee required ($5). Open daily from dawn to dusk."},{name:"Columbia River Maritime Museum",description:"Widely considered one of the finest maritime museums in the nation, this facility tells the dramatic stories of the 'Graveyard of the Pacific.' impressive exhibits include the floating lightship Columbia, a Coast Guard rescue boat, and interactive displays about river pilots and shipwrecks.",details:"Located on the waterfront. Open daily 9:30 AM - 5:00 PM."},{name:"Flavel House Museum",description:"This impeccable 1885 Queen Anne Victorian mansion was once the home of Captain George Flavel. With its preserved period furniture, intricate woodwork, and manicured gardens, it offers a glimpse into the opulent life of Astoria's 19th-century elite.",details:"Tickets available at the Carriage House visitor center."},{name:"Oregon Film Museum (The Goonies Jail)",description:"Housed in the old Clatsop County Jail—famous as the opening scene of The Goonies—this museum celebrates Oregon's legacy in cinema. Visitors can step into the actual jail cell from the movie and explore exhibits on Kindergarten Cop, Free Willy, and Twilight.",details:"Fun for movie buffs. Interactive sets and green screens."},{name:"Astoria Riverfront Trolley",description:"Old 300 is a restored 1913 streetcar that rattles along the riverfront tracks for three miles. Operated by knowledgeable volunteers who narrate the history of the cannery piers and waterfront, it's a charming and inexpensive way to see the city.",details:"Runs seasonally (weather permitting). Fare is $1 per ride or $2 for an all-day pass."},{name:"Lewis and Clark National Historical Park (Fort Clatsop)",description:"Just south of town lies the replica of Fort Clatsop, where the Corps of Discovery spent the wet winter of 1805-1806. The park features costumed rangers, muzzle-loading demonstrations, and trails that trace the explorers' footsteps.",details:"Part of the National Park Service. Visitor center and bookstore on site."},{name:"Pier 39 - Hanthorn Cannery",description:"The oldest and largest waterfront building in Astoria, Pier 39 is a hub of activity. Once a bustling fish cannery, it now houses a museum, coffee shop, brewery, and offices, all suspended over the river on old pilings. The view of the bridge from the end of the pier is unmatched.",details:"Free museum access. Great spot for sea lion watching."}],q8=[{name:"Cathedral Tree Trail",distance:"1.6 miles round trip",difficulty:"Moderate",description:"An urban hike that starts near the Astoria Column. This trail winds through a towering Sitka spruce forest to lead you to the 'Cathedral Tree,' a massive, ancient spruce with a hollowed-out base that feels spiritual in its grandeur."},{name:"Astoria Riverwalk",distance:"6.4 miles (one way)",difficulty:"Easy",description:"Following the path of the old Burlington Northern Railroad, this paved and boardwalk trail stretches the entire length of the city's waterfront. It's perfect for a flat, scenic walk past canneries, under the Megler Bridge, and alongside the trolley tracks."},{name:"Fort to Sea Trail",distance:"6.1 miles (one way)",difficulty:"Moderate",description:"Retracing the steps of Lewis and Clark, this trail connects Fort Clatsop to Sunset Beach. It transitions from lush forests and cow pastures to coastal dunes, offering a diverse hiking experience."},{name:"Youngs River Falls",distance:"0.5 miles round trip",difficulty:"Easy",description:"A short walk leads to a spectacular 54-foot waterfall that featured in movies like Robin Hood: Prince of Thieves and Teenage Mutant Ninja Turtles 3. It's a great spot for a quick nature fix and a swim in the summer."},{name:"Saddle Mountain Trail",distance:"5.2 miles round trip",difficulty:"Strenuous",elevation:"1,600 ft gain",description:"For the best view in Northwest Oregon, tackle Saddle Mountain. The steep climb is rewarded with wildflower meadows and a summit view that stretches from Mount Rainier and St. Helens to the Pacific Ocean."},{name:"Netul River Trail",distance:"2.8 miles round trip",difficulty:"Easy",description:"Located at Fort Clatsop, this gentle trail follows the Lewis and Clark River. It is historically significant as the landing site for the explorers' canoes and offers peaceful, wooded riverside views."},{name:"Clatsop Loop Trail",distance:"2.8 miles loop",difficulty:"Moderate",description:"Explore Ecola State Park's forest and cliffs. This loop offers dizzying views of the ocean and the Tillamook Rock Lighthouse ('Terrible Tilly') while winding through old-growth rainforest."},{name:"Cape Disappointment - North Head Trail",distance:"3 miles round trip",difficulty:"Easy/Moderate",description:"Just across the bridge in Washington, this trail offers dramatic views of the 'Graveyard of the Pacific' and leads to the wind-swept North Head Lighthouse."},{name:"Tillamook Head Trail",distance:"6.3 miles (one way)",difficulty:"Moderate/Hard",description:"A classic coastal hike tracing the high cliffs between Seaside and Cannon Beach. Follow in the footsteps of Captain Clark who called the view 'the grandest and most pleasing prospects which my eyes ever surveyed.'"}],G8=[{name:"Bridgewater Bistro",category:"Upscale Seafood",description:"Located in a historic boatyard building, Bridgewater Bistro offers panoramic river views and a menu highlighting fresh, local ingredients. The architecture, with its exposed timber beams, is as impressive as the food.",features:"Riverfront dining, extensive wine list, Sunday brunch."},{name:"Silver Salmon Grille",category:"Seafood",description:"A downtown staple known for its warm, old-school hospitality and generous portions of clam chowder. It feels like a classic coastal dining room.",features:"Famous chowder, cedar plank salmon, family-friendly."},{name:"Carruthers Restaurant",category:"New American",description:"Stylish and moody, Carruthers brings a touch of 1920s glamour to Astoria. The menu is adventurous, and the craft cocktails are among the best in town.",features:"Craft cocktails, historic ambiance, gluten-free options."},{name:"Fort George Brewery + Public House",category:"Brewery/Gastropub",description:"The beating heart of Astoria's beer scene. Occupying an entire city block, Fort George serves legendary IPAs and wood-fired pizzas in a lively, communal atmosphere.",features:"Wood-fired pizza, rooftop taproom, local beer hub."},{name:"Buoy Beer Company",category:"Brewery",description:"Built right on the pier, Buoy Beer lets you watch sea lions through a glass floor while sipping a crisp lager. The food is elevated pub fare with a focus on fresh seafood.",features:"Glass floor viewing of sea lions, riverfront patio."},{name:"Bowpicker Fish & Chips",category:"Casual/Food Truck",description:"A converted gillnet boat parked on the corner, serving only one thing: albacore tuna fish and chips. The line usually wraps around the block for a reason.",features:"Albacore tuna, outdoor seating only, cash only (usually)."},{name:"Clemente's Cafe & Public House",category:"Casual/Seafood",description:"A fantastic spot for lunch or a casual dinner, known for its seafood baskets and relaxed vibe. It captures the essence of a working waterfront cafe.",features:"Locally sourced seafood, great lunch spot."},{name:"Frite & Scoop",category:"Dessert/Snack",description:"Small-batch ice cream and Belgian-style fries. The flavors are inventive (like sticky toffee pudding), and the fries are perfectly crispy.",features:"House-made waffle cones, dipping sauces."},{name:"Coffee Girl",category:"Cafe",description:"Located on Pier 39 inside the old cannery, this cafe serves excellent coffee and pastries in a space that feels suspended in time (and over the water).",features:"Historic cannery location, river views."},{name:"The Blue Scorcher Bakery & Cafe",category:"Vegetarian/Bakery",description:"A worker-owned cooperative specializing in organic, vegetarian, and vegan fare. Their artisan breads and pastries are beloved by locals.",features:"Organic, cooperative-owned, kid-friendly play area."},{name:"T. Paul's Urban Cafe",category:"Eclectic",description:"A funky, eclectic spot downtown offering a wide variety of dishes from quesadillas to pastas. It's a crowd-pleaser with art-filled walls.",features:"Vegetarian options, quirky decor, central location."}],Sse=`Cannon Beach is arguably the most picturesque town on the Oregon Coast, famous for the towering Haystack Rock and its expansive, sandy shoreline. It is an art lover's village by the sea, where nature's grandeur meets refined culture.
Named one of the world's most beautiful places by National Geographic, Cannon Beach offers a perfect blend of breathtaking scenery and small-town charm. The village is walkable and filled with cedar-shingled buildings housing art galleries, specialty shops, and award-winning restaurants.
Whether you are exploring the tide pools at the base of Haystack Rock, hiking through the ancient Sitka spruce forests of Ecola State Park, or watching the sunset illuminate the sea stacks, Cannon Beach provides an unforgettable coastal escape that feels both wild and welcoming.`,_N=[{id:1,name:"Haystack Rock",description:"The crown jewel of Cannon Beach, this 235-foot sea stack is one of Oregon's most recognizable landmarks. It's home to tufted puffins (in spring/summer) and accessible tide pools at low tide.",details:"Iconic Landmark",image:"https://images.unsplash.com/photo-1533420803444-a0293144eb7e?auto=format&fit=crop&w=800&q=80"},{id:2,name:"Ecola State Park",description:"Perched on the edge of Tillamook Head, this park offers some of the most famous views on the coast, overlooking diverse ecosystems, secluded coves, and the historic lighthouse.",details:"State Park",image:"https://images.unsplash.com/photo-1574677765103-68d71216d203?auto=format&fit=crop&w=800&q=80"},{id:3,name:"Tillamook Rock Lighthouse",description:"Known as 'Terrible Tilly', this decommissioned lighthouse sits on a basalt rock over a mile offshore. It has a dramatic history of storms and survival, visible from Ecola State Park.",details:"Historic Site",image:"https://images.unsplash.com/photo-1610486337573-03f6f1c4f5b5?auto=format&fit=crop&w=800&q=80"},{id:4,name:"Hug Point State Recreation Site",description:"Just south of town, this beach offers sea caves, a seasonal waterfall, and the historic stagecoach road carved into the rock that was once the only way to travel along the coast.",details:"Nature & History",image:"https://images.unsplash.com/photo-1506905925346-21bda4d32df4?auto=format&fit=crop&w=800&q=80"},{id:5,name:"Icefire Glassworks",description:"A working glassblowing studio where visitors can watch artists create incredible pieces. It represents the heart of Cannon Beach's vibrant arts community.",details:"Art Gallery",image:"https://images.unsplash.com/photo-1513883049090-d0b7439799bf?auto=format&fit=crop&w=800&q=80"},{id:6,name:"Coaster Theatre Playhouse",description:"Located in the center of town, this historic theater has been providing live entertainment, plays, and musicals for over 40 years, adding cultural depth to the beach town experience.",details:"Live Theater",image:"https://images.unsplash.com/photo-1559827260-dc66d52bef19?auto=format&fit=crop&w=800&q=80"},{id:7,name:"Cannon Beach History Center & Museum",description:"A small but fascinating museum preserving the stories of the area, from Native American history to the unmodified cannon that washed ashore and gave the town its name.",details:"Museum",image:"https://images.unsplash.com/photo-1582236372551-78926227b9c6?auto=format&fit=crop&w=800&q=80"},{id:8,name:"Chapman Beach",description:"The northern stretch of Cannon Beach, often quieter than the Haystack Rock area. It offers stunning views of Bird Rocks and abundant driftwood for beachcombing.",details:"Beach Access",image:"https://images.unsplash.com/photo-1621217030567-e17f7b3b3a3c?auto=format&fit=crop&w=800&q=80"}],K8=[{name:"Clatsop Loop Trail",distance:"2.8 miles",difficulty:"Moderate",type:"Loop",description:"Located in Ecola State Park, this trail follows the footsteps of Lewis and Clark's expedition, offering ocean views and forest solitude.",icon:"Tree",elevation:"700 ft"},{name:"Ecola Point to Indian Beach",distance:"1.5 miles",difficulty:"Easy/Moderate",type:"One Way",description:"A scenic segment of the Oregon Coast Trail connecting the main Ecola viewpoint to the secluded and beautiful Indian Beach.",icon:"Ocean",elevation:"300 ft"},{name:"Crescent Beach Trail",distance:"1.25 miles",difficulty:"Moderate",type:"Out & Back",description:"A lesser-known trail starting from Ecola State Park road that drops down to a quiet, crescent-shaped cove away from the crowds.",icon:"Path",elevation:"450 ft"},{name:"Tillamook Head Traverse",distance:"6.3 miles",difficulty:"Strenuous",type:"Point-to-Point",description:"A challenging hike traversing the entire headland from Seaside to Cannon Beach (or vice versa), passing old bunkers and viewpoints.",icon:"Mountain",elevation:"1,350 ft"},{name:"Hug Point Trail",distance:"0.5 miles",difficulty:"Easy",type:"Beach Walk",description:"Best done at low tide to access the waterfall, sea caves, and the historic stagecoach road carved around the point.",icon:"Footprints",elevation:"Flat"},{name:"Elk Creek Trail",distance:"3.0 miles",difficulty:"Easy",type:"Out & Back",description:"A gentle walk exploring the estuary and wetlands on the edge of town, great for birdwatching and spotting elk.",icon:"Bird",elevation:"Flat"},{name:"Oswald West - Short Sand Beach",distance:"1.0 miles",difficulty:"Easy",type:"Out & Back",description:"Located just south of town, a short walk through massive old-growth rainforest leads to a popular surfer's cove.",icon:"Wave",elevation:"100 ft"},{name:"Neahkahnie Mountain (South)",distance:"3.0 miles",difficulty:"Strenuous",type:"Out & Back",description:"A steep climb to one of the highest viewpoints on the coast, offering legendary panoramic views of the ocean.",icon:"Summit",elevation:"900 ft"}],Cse=[{id:1,name:"Surfsand Resort",category:"Luxury Resort",description:"The premier beachfront resort with sweeping views of Haystack Rock. Famous for its cookie hour, bonfires, and family-friendly amenities.",amenities:["Beachfront","Pool","Cookie Hour","Pet Friendly"],link:"https://expedia.com/affiliates/cannon-beach-hotels-surfsand-resort.zxyRiuV",linkRel:"noopener sponsored"},{id:2,name:"Stephanie Inn",category:"Luxury Boutique",description:"An oceanfront icon of elegance and romance. Known for exceptional service, gourmet breakfast buffets, and evening wine gatherings.",amenities:["Adults Only","Fine Dining","Ocean Views","Spa Services"],link:"https://expedia.com/affiliates/cannon-beach-hotels-stephanie-inn.5UAV9Hb",linkRel:"noopener sponsored"},{id:3,name:"The Ocean Lodge",category:"Oceanfront Lodge",description:"Reminiscent of a 1940s beach resort with massive timber beams and stone fireplaces. A warm, inviting atmosphere right on the sand.",amenities:["Fireplaces","Oceanfront","Continental Breakfast","Cookies"],link:"https://expedia.com/affiliates/cannon-beach-hotels-the-ocean-lodge.a40yztM",linkRel:"noopener sponsored"},{id:4,name:"Hallmark Resort - Cannon Beach",category:"Oceanfront Resort",description:"One of the closest hotels to Haystack Rock, offering multiple pools, a full-service spa, and balconies with incredible views.",amenities:["Spa","Saltwater Pools","Pet Friendly","Beach Access"],link:"https://expedia.com/affiliates/cannon-beach-hotels-hallmark-resort-cannon-beach.nOWaFHg",linkRel:"noopener sponsored"},{id:5,name:"Inn at Cannon Beach",category:"Cottage Style",description:"Located just south of town, this garden-style inn features bunny rabbits on the lawn and a quiet, retreat-like setting near Tolovana Park.",amenities:["Gardens","Free Breakfast","Quiet Location","Art Gallery"],link:"https://expedia.com/affiliate/7ESrxua",linkRel:"noopener sponsored"},{id:6,name:"Tolovana Inn",category:"Family Suites",description:"A spacious oceanfront property in Tolovana Park, perfect for families needing suites with kitchens and easy beach access.",amenities:["Indoor Pool","Suites","Kitchens","Beachfront"],link:"https://expedia.com/affiliates/cannon-beach-hotels-tolovana-inn.xvQpPIh",linkRel:"noopener sponsored",image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/5b50f9770d3c525c1de9d38fe1dd962f.png"},{id:7,name:"Schooner's Cove Inn",category:"Oceanfront",description:"Centrally located right in downtown Cannon Beach, offering oceanfront decks and instant access to shopping and dining.",amenities:["Downtown","Oceanfront","Kitchens","Walkable"],link:"https://expedia.com/affiliates/oregon-coast-hotels-schooners-cove-inn.lG3twwG",linkRel:"noopener sponsored"},{id:8,name:"The Wayside Inn",category:"Budget Friendly",description:"A classic motor inn at the south end of town. Known for being extremely dog-friendly and offering great value.",amenities:["Indoor Pool","Dog Friendly","Beach Access","Value"],link:"https://expedia.com/affiliates/cannon-beach-hotels-the-wayside-inn.VoCvR8H",linkRel:"noopener sponsored"},{id:9,name:"Lighthouse Inn",category:"Boutique",description:"A cozy retreat tucked away in a quiet neighborhood but just steps from downtown shopping and beach access.",amenities:["Kitchenettes","Pet Friendly","Quiet","Walkable"],link:"https://expedia.com/affiliates/cannon-beach-hotels-lighthouse-inn.Dg0n7fK",linkRel:"noopener sponsored"}],Z8=[{id:1,name:"The Wayfarer",cuisine:"Seafood & Steak",description:"Upscale oceanfront dining with views of Haystack Rock. Famous for their Dungeness crab mac and cheese and berry cobbler.",price:"$$$"},{id:2,name:"Driftwood Restaurant & Lounge",cuisine:"Steakhouse",description:"A Cannon Beach institution on Main Street. A lively spot with an outdoor deck, excellent steaks, and a classic coastal vibe.",price:"$$$"},{id:3,name:"Public Coast Brewing",cuisine:"Brewery & Burgers",description:"A fun, casual brewery using local ingredients. Known for their fish and chips, grass-fed burgers, and house-made root beer.",price:"$$"},{id:4,name:"Pelican Brewing",cuisine:"Brewery",description:"The Cannon Beach outpost of the famous coast brewery. Features an open kitchen, high ceilings, and award-winning beers.",price:"$$"},{id:5,name:"Pizza a'fetta",cuisine:"Italian / Pizza",description:"Serving gourmet pizza by the slice or pie for over 20 years. Often cited as some of the best pizza on the entire coast.",price:"$$"},{id:6,name:"Lazy Susan Cafe",cuisine:"Breakfast / Brunch",description:"A charming, cottage-style cafe famous for their waffles, omelets, and relaxed garden atmosphere.",price:"$$"},{id:7,name:"Castaways",cuisine:"Global / Cajun",description:"A hidden gem offering a unique menu with Cajun and Caribbean influences. Intimate setting with bold flavors.",price:"$$$"},{id:8,name:"Ecola Seafoods",cuisine:"Seafood Market",description:"A no-frills seafood market and restaurant known for their world-famous smoked salmon jerky and fresh fish and chips.",price:"$$"},{id:9,name:"Bill's Tavern & Brewhouse",cuisine:"Pub Fare",description:"The original brewpub in town. A two-story rustic tavern serving hearty chili, burgers, and their own ales.",price:"$$"},{id:10,name:"Warren House Pub",cuisine:"Pub Fare",description:"Located in Tolovana Park, this cozy pub offers a relaxed escape from the downtown crowds with great food and drink.",price:"$$"},{id:11,name:"Mo's Cannon Beach",cuisine:"Seafood",description:"An oceanfront location of the Oregon classic. Large windows offer great views to accompany their famous clam chowder.",price:"$$"},{id:12,name:"Sleepy Monk Coffee Roasters",cuisine:"Coffee House",description:"The go-to spot for locals and visitors. Organic coffee roasted on-site and incredible pastries. Expect a line out the door!",price:"$"},{id:13,name:"Insomnia Coffee Co.",cuisine:"Coffee",description:"A modern coffee shop near the beach access, perfect for grabbing a latte before a morning walk on the sand.",price:"$"},{id:14,name:"Crepe Neptune",cuisine:"Creperie",description:"A sweet and savory crepe shop. Perfect for a portable treat to take down to the beach.",price:"$"},{id:15,name:"Seasons Cafe",cuisine:"Sandwiches & Salads",description:"Fresh, healthy options including gourmet sandwiches and homemade soups in a small, artistic setting.",price:"$$"}],Tse=`
<p>Welcome to Newport, the beating heart of the central Oregon Coast and a city where maritime heritage meets modern discovery. Anchored by the iconic Yaquina Bay Bridge—a masterpiece of Art Deco architecture—Newport is a working fishing port, a world-class research hub, and a beloved vacation destination all rolled into one. From the bark of sea lions on the Historic Bayfront to the quiet literary retreat of Nye Beach, this city offers a diverse coastal experience that appeals to families, foodies, and outdoor enthusiasts alike.</p>
<p>Newport is famously known as the "Dungeness Crab Capital of the World," but its marine credentials go far deeper. It is home to the Oregon Coast Aquarium, one of the nation's top aquariums, and the Hatfield Marine Science Center, making it a premier destination for learning about the Pacific Ocean's mysteries. The city boasts not one but two historic lighthouses: the towering Yaquina Head Lighthouse, the tallest in Oregon, and the charming Yaquina Bay Lighthouse, the only wooden lighthouse still standing in the state.</p>
<p>Whether you're storm watching from a cliffside hotel, crabbing off the public pier, exploring the rock pools at low tide, or enjoying a pint at the headquarters of Rogue Ales, Newport delivers an authentic and invigorating coastal adventure. It is a place where industry and nature coexist, offering visitors a front-row seat to the power and bounty of the Pacific.</p>
`,SN=[{name:"Oregon Coast Aquarium",description:"Consistently ranked among the top ten aquariums in North America, this world-class facility immerses you in the mysteries of the Oregon coast. Walk through the 'Passages of the Deep' acrylic tunnels surrounded by sharks and rays, watch playful sea otters, and explore touch pools teeming with local life.",details:"Open daily. Tickets required. Located in South Beach."},{name:"Yaquina Head Outstanding Natural Area",description:"Home to Oregon's tallest lighthouse (93 feet), this basalt headland extends one mile into the Pacific. It offers incredible tide pooling at Cobble Beach, bird watching (thousands of common murres), and whale watching opportunities from the cliffs.",details:"$7/vehicle fee. Lighthouse tours available by reservation."},{name:"Historic Bayfront",description:"A bustling working waterfront where fishing trawlers unload their catch alongside tourist shops and restaurants. The air is filled with the sound of barking sea lions that lounge on the docks, making it the liveliest spot in town.",details:"Free to walk. Great for souvenirs and fresh seafood markets."},{name:"Nye Beach District",description:"Newport's historic resort neighborhood offers a distinct artsy vibe. With its turn-of-the-century architecture, independent bookstores, galleries, and bakeries, it feels like a village within a city. The beach access here leads to miles of sandy shore.",details:"Very walkable. Excellent dining and shopping."},{name:"Yaquina Bay Lighthouse",description:"Built in 1871, this is the only existing wooden lighthouse in Oregon. Though it was active for only three years, it has been beautifully restored and sits atop a bluff within Yaquina Bay State Recreation Site, offering commanding views of the bridge and bay entrance.",details:"Self-guided tours.Allegedly haunted."},{name:"Hatfield Marine Science Center",description:"Operated by Oregon State University, this research facility features a public visitor center with interactive exhibits on marine geology, tsunamis, and ocean ecology. It's a fantastic educational stop where science comes alive.",details:"Donation suggested. majestic Giant Pacific Octopus on display."},{name:"Devil's Punchbowl State Natural Area",description:"Just north of town, this collapsed sea cave creates a churning, boiling cauldron of water during high tide and storms. At very low tide, you can hike inside the bowl to see the geology from within.",details:"Surfers frequent the adjacent beach. Great picnic spot."},{name:"Marine Discovery Tours",description:"Hop aboard the Discovery for a guided cruise of the bay and ocean. These tours offer a great chance to see gray whales, harbor porpoises, seals, and diverse sea birds while learning from on-board naturalists.",details:"Reservations recommended. Tours depart from the Bayfront."}],Y8=[{name:"Yaquina Head Summit & Communications Hill",distance:"1 - 2 miles",difficulty:"Moderate",description:"Located within the Outstanding Natural Area, these trails take you to the top of the headland for sweeping views of the lighthouse, the coastline to the north and south, and migrating whales."},{name:"Mike Miller Educational Park Trail",distance:"1.2 mile loop",difficulty:"Easy",description:"A hidden gem in South Beach, this trail winds through a pristine coastal forest of spruce, pine, and native rhododendrons. It's quiet, well-maintained, and perfect for a peaceful nature walk away from the wind."},{name:"Ocean to Bay Trail",distance:"3 miles varied",difficulty:"Easy/Moderate",description:"This trail system connects the beach to the bay, passing through varied terrain including deflation plain wetlands and coastal shore pine forests. It's a great way to see the diversity of the peninsula."},{name:"South Beach State Park Jetty Trail",distance:"2.5 miles (one way)",difficulty:"Easy",description:"A paved and accessible trail that runs along the South Jetty. It's popular for biking and jogging, offering views of the bridge, the channel entrance, and surfers catching waves at the jetty."},{name:"Lucky Gap Trail",distance:"3 miles round trip",difficulty:"Moderate",description:"Located a few miles north near Otter Rock, this trail takes you through dense forest down to a secluded stretch of beach. It's less crowded than the main accesses in town."},{name:"Big Creek Park Trail",distance:"1.5 miles",difficulty:"Moderate/Hard",elevation:"Steep sections",description:"An urban forest experience that feels miles away from the city. The trails wind through towering trees and ferns alongside Big Creek, offering a lush, green escape."}],Ase=[{name:"Sylvia Beach Hotel",category:"Boutique/Literary",description:"A world-famous hotel for book lovers located in Nye Beach. There are no TVs, radios, or WiFi to distract you. Each room is themed after a famous author (like Agatha Christie, Dr. Seuss, or Hemingway), and the third-floor library offers ocean views.",amenities:"Oceanfront library, breakfast included, author-themed rooms.",link:"https://expedia.com/affiliates/newport-hotels.XG28wG4"},{name:"Hallmark Resort - Newport",category:"Luxury",description:"Sitting prominently on the bluff overlooking the ocean, every room offers a view. It's famous for its pet-friendly attitude and easy beach access. The on-site restaurant, Georgie's, is a local favorite.",amenities:"Saltwater pool, pet-friendly, private balconies.",link:"https://expedia.com/affiliates/newport-hotels-hallmark-resort-newport.XG28wG4"},{name:"Elizabeth Oceanfront Suites",category:"Luxury",description:"Perched on a bluff, this hotel offers panoramic views of the Pacific. Known for its warm hospitality (fresh cookies in the lobby) and spacious suites with fireplaces, it's perfect for storm watching.",amenities:"Complimentary breakfast, indoor pool, fireplaces in rooms.",link:"https://expedia.com/affiliates/newport-hotels-elizabeth-oceanfront-suites.XG28wG4"},{name:"Best Western Plus Agate Beach Inn",category:"Mid-Range",description:"Located near Agate Beach, offering fantastic ocean views, easy beach access, and a relaxing indoor pool area.",amenities:"Indoor pool, ocean views, easy beach access.",link:"https://expedia.com/affiliates/newport-hotels-best-western-plus-agate-beach-inn.XG28wG4"},{name:"Inn at Nye Beach",category:"Boutique/Eco",description:"A modern, eco-friendly boutique hotel in the heart of Nye Beach. Features an infinity spa overlooking the ocean and stylish, contemporary design.",amenities:"Infinity spa, direct beach access, loose leaf tea bar.",link:"https://expedia.com/affiliates/newport-hotels.XG28wG4"},{name:"Little Creek Cove Beachfront Resort",category:"Vacation Rental/Resort",description:"Tucked away by a freshwater pond near Agate Beach, these condos offer privacy and unique architecture. Each unit has ocean views and easy beach access.",amenities:"Full kitchens, covered parking, secluded feel.",link:"https://expedia.com/affiliates/newport-hotels-little-creek-cove-beachfront-resort.XG28wG4"}],J8=[{name:"Local Ocean Seafoods",category:"Upscale Seafood",description:"The gold standard for Newport dining. Part fish market, part restaurant, the menu changes daily based on what the local fleet brings in. The glass walls roll up in summer for an open-air bayfront experience.",features:"Dock-to-table, fresh market, grilled roasted crab."},{name:"Clearwater Restaurant",category:"Seafood/View",description:"Located directly on the bay with sea lions often barking just below the deck. The dining room is elegant with massive windows, serving high-quality seafood and steaks.",features:"Sea lion viewing, outdoor patio, craft cocktails."},{name:"Georgie's Beachside Grill",category:"Casual/Upscale",description:"A legendary spot for breakfast and dinner with unbeatable ocean views. The menu is vast, but the seafood dishes and prime rib are consistent crowd-pleasers.",features:"Ocean views, kid-friendly, extensive menu."},{name:"Rogue Ales Bayfront Public House",category:"Brewery",description:"The headquarters of the Rogue Nation. Located right on the working waterfront, it's a chaotic, fun, and iconic spot to grab a Dead Guy Ale and a Kobe beef burger.",features:"Iconic brewery, merchandise shop, pub fare."},{name:"Mo's Seafood & Chowder",category:"Casual/Historic",description:"An Oregon Coast institution. The original location on the Bayfront is famous for its clam chowder served in a bread bowl. It's bustling, noisy, and a must-do for first-timers.",features:"Famous chowder, bay views, family style."},{name:"Nana's Irish Pub",category:"Pub/Comfort",description:"Located in Nye Beach, this authentic Irish pub serves hearty shepherd's pie, fish and chips, and properly poured Guinness. The atmosphere is cozy and welcoming.",features:"Live music, authentic Irish fare, patio seating."},{name:"Sorella",category:"Italian",description:"A gem in Nye Beach offering handmade pastas and wood-fired pizzas. The vibe is rustic-chic, and the food rivals big-city Italian restaurants.",features:"Handmade pasta, wood-fired pizza, craft cocktails."},{name:"Newport Chowder Bowls",category:"Casual",description:"A favorite at Nye Beach for a quick, delicious bowl of chowder. Simple, unpretentious, and consistently rated among the best chowders on the coast.",features:"Award-winning chowder, gluten-free options."},{name:"Panini Bakery",category:"Bakery/Lunch",description:"A tiny spot in Nye Beach known for incredible pastries, artisan breads, and gourmet sandwiches. Get there early—the cinnamon rolls sell out fast.",features:"Artisan breads, espresso, outdoor seating."},{name:"Zach's Bistro",category:"Fine Dining",description:"An intimate dining experience in Nye Beach. The menu focuses on seasonal, local ingredients prepared with French techniques.",features:"Romantic atmosphere, seasonal menu, extensive wine list."},{name:"The Coffee House",category:"Cafe",description:"A historic Bayfront cottage turned into a cozy coffee shop. It feels like stepping into a grandma's house, serving excellent coffee and house-made scones.",features:"Bay views, cozy interior, breakfast sandwiches."},{name:"Chowder Bowl at Nye Beach",category:"Casual/Seafood",description:"Not to be confused with others, this spot has been serving comfort food and seafood classics in Nye Beach since 1980. Relaxed and reliable.",features:"Classic coastal decor, prime rib dip, patio."}],Pse=`Located at the mouth of the Siuslaw River, Florence is a vibrant coastal playground where the towering Oregon Dunes meet the sea. As the gateway to the Oregon Dunes National Recreation Area, this charming town offers some of the most dramatic landscapes on the entire coast, with sand dunes rising up to 500 feet above the ocean.
Historic Old Town Florence is the heart of the community, nestled beneath the iconic Art Deco arches of the Siuslaw River Bridge. Here, visitors can stroll along the boardwalk, explore quaint boutiques and art galleries, and watch fishing boats unload their daily catch. The scent of saltwater taffy and fresh clam chowder fills the air, inviting exploration of the town's rich culinary scene.
Nature lovers flock to Florence for its diversity. Just north of town lies the Heceta Head Lighthouse, one of the most photographed lighthouses in the world, and the Sea Lion Caves, America's largest sea cave. Whether you're sandboarding down massive dunes, exploring carnivorous plant gardens, or enjoying a sunset river cruise, Florence delivers an unforgettable mix of adventure and coastal charm.`,CN=[{name:"Oregon Dunes National Recreation Area",description:"Stretching 40 miles south from Florence, these are the largest expanse of coastal sand dunes in North America. Visitors can hike, ride dune buggies, or sandboard down slopes that tower up to 500 feet above sea level.",details:"Recreation passes required for some areas. Rentals available in town."},{name:"Heceta Head Lighthouse",description:"Perched 205 feet above the ocean, this working lighthouse casts its beam 21 miles out to sea. It is the brightest light on the Oregon coast and offers stunning views, tours of the keeper's house, and scenic hiking trails.",details:"State Park parking fee ($5). Tours available seasonally."},{name:"Sea Lion Caves",description:"America's largest sea cave and a year-round home for Steller sea lions. An elevator descends 200 feet through solid rock to the massive cavern, where visitors can watch sea lions, sea birds, and whales in their natural habitat.",details:"Located 11 miles north. Entry fee required."},{name:"Historic Old Town Florence",description:"A charming riverfront district located below the Siuslaw River Bridge. Walk the boardwalk, browse art galleries, shop for antiques, and enjoy fresh seafood while watching the river flow by.",details:"Free parking. Great spot for dining and souvenirs."},{name:"Siuslaw River Bridge",description:"Designed by legendary bridge architect Conde B. McCullough, this 1936 Art Deco bascule bridge is an architectural gem. Its four gothic-style towers house the machinery that lifts the span for passing ships.",details:"Walkable sidewalks offer great river views."},{name:"Darlingtonia State Natural Site",description:"An 18-acre botanical park dedicated to the preservation of the Cobra Lily (Darlingtonia californica), the only carnivorous plant native to Oregon. Wooden boardwalks allow safe viewing of these fascinating insect-eating plants.",details:"Free admission. Best viewing is in late spring."},{name:"Jessie M. Honeyman Memorial State Park",description:"Known locally as 'Honeyman,' this park features two freshwater lakes surrounded by sand dunes. It's a favorite spot for camping, swimming, boating, and sliding down the dunes directly into Cleawox Lake.",details:"Day-use fee or state park pass required."},{name:"Three Rivers Casino Resort",description:"A major entertainment hub on the coast, offering slots, table games, and live entertainment. The resort also features several restaurants and a golf course nestled in the dunes.",details:"Open 24/7. Shuttle service available from local hotels."}],X8=[{name:"Hobbit Trail",distance:"1.0 mile round trip",difficulty:"Easy",description:"A magical, moss-draped tunnel trail that leads from the highway through dense forest to a secluded stretch of sandy beach. It feels like stepping into a fantasy novel."},{name:"Sweet Creek Falls Trail",distance:"2.2 miles round trip",difficulty:"Easy",description:"A family-friendly trail featuring a series of beautiful waterfalls cascading over mossy rocks. The trail follows the creek with metal catwalks bolted into the canyon walls."},{name:"Heceta Head Lighthouse Trail",distance:"1.5 miles round trip",difficulty:"Moderate",elevation:"400 ft gain",description:"Starting from the beach, this trail climbs steadily to the lighthouse and continues behind it to a breathtaking viewpoint. Great for spotting migrating whales."},{name:"Siltcoos Lake Trail",distance:"3.5 miles loop",difficulty:"Easy/Moderate",description:"Wander through lush rainforest and wetlands around the largest lake on the Oregon Coast. It's an excellent spot for birdwatching and enjoying peaceful forest solitude."},{name:"Waxmyrtle Trail",distance:"1.5 miles (one way)",difficulty:"Easy",description:"Located south of Florence, this trail follows the Siltcoos River estuary out to the beach. It winds through coastal scrub and dunes, offering great wildlife viewing opportunities."},{name:"Sutton Trails (Loop)",distance:"3.0 miles loop",difficulty:"Moderate",description:"A diverse trail system winding through dunes, pine forests, and marshlands. It connects the Sutton Campground to the beach, offering a mix of coastal ecosystems."}],Ese=[{name:"Driftwood Shores Resort",category:"Oceanfront",description:"The only oceanfront hotel in Florence, offering rooms with private balconies directly overlooking the waves. Features an indoor aquatic center and restaurant with sunset views.",amenities:"Indoor pool/slide, restaurant, kitchenettes available.",link:"https://expedia.com/affiliates/florence-hotels-driftwood-shores-resort-conference-center.XG28wG4"},{name:"River House Inn",category:"Riverfront",description:"Located in Old Town right on the Siuslaw River. This charming inn offers easy walking access to shops and restaurants, with many rooms featuring river views and balconies.",amenities:"River views, walking distance to Old Town, continental breakfast.",link:"https://expedia.com/affiliates/florence-hotels.XG28wG4"},{name:"Edwin K Bed & Breakfast",category:"Boutique/B&B",description:"A beautifully restored 1914 Craftsman home offering elegant rooms and gourmet multi-course breakfasts. It provides a quiet, romantic atmosphere in the heart of Old Town.",amenities:"Gourmet breakfast, private baths, garden courtyard.",link:"https://expedia.com/affiliates/florence-hotels.XG28wG4"},{name:"The Landmark Inn",category:"Boutique",description:"Perched on a hill overlooking Old Town, this inn offers clean, comfortable rooms with a touch of historic charm. Some rooms feature jacuzzis and views of the bridge.",amenities:"Free WiFi, coffee, easy Old Town access.",link:"https://expedia.com/affiliates/florence-hotels.XG28wG4"},{name:"Old Town Inn",category:"Budget/Value",description:"Consistently rated as one of the best values in town. It's clean, friendly, and located just a short walk from the riverfront district.",amenities:"Free breakfast, impeccably clean, friendly staff.",link:"https://expedia.com/affiliates/florence-hotels.XG28wG4"},{name:"Best Western Pier Point Inn",category:"Mid-Range",description:"Located across the river from Old Town, offering stunning panoramic views of the bridge and town. Rooms are spacious and modern.",amenities:"Indoor pool, sauna, full breakfast, river views.",link:"https://expedia.com/affiliates/florence-hotels.XG28wG4"},{name:"Three Rivers Casino Resort",category:"Resort",description:"For those looking for entertainment, this resort offers modern rooms, multiple dining options, and casino action all under one roof.",amenities:"Casino, golf course, multiple restaurants, shuttle.",link:"https://expedia.com/affiliates/florence-hotels.XG28wG4"}],Q8=[{name:"Waterfront Depot",category:"Upscale American",description:"Housed in a former train station on the river, this is Florence's premier dining spot. Famous for their Crab-Crusted Alaskan Halibut and intimate, historic atmosphere.",features:"River views, historic building, reservations recommended."},{name:"Mo's Restaurant",category:"Casual Seafood",description:"An Oregon Coast icon located right on the docks in Old Town. Famous for their clam chowder, panoramic river views, and family-friendly vibe.",features:"Famous chowder, outdoor seating, river views."},{name:"Novelli's Crab & Seafood",category:"Seafood Float",description:"Dining literally *on* the river. This floating eatery serves fresh crab caught by the owner. It doesn't get fresher than this.",features:"Floating restaurant, fresh-caught crab, seasonal."},{name:"Homegrown Public House",category:"Gastropub",description:"Dedicated to farm-to-table dining with a menu that changes with the seasons. They offer excellent vegan and gluten-free options alongside hearty burgers.",features:"Local ingredients, craft beer, dietary-friendly."},{name:"Bridgewater Fish House",category:"Seafood/Steak",description:"A spacious restaurant in Old Town with a large menu featuring everything from zebra fish to ribeye steaks. The rustic-chic decor creates a welcoming ambiance.",features:"Large groups welcome, diverse menu, full bar."},{name:"The Hukilau",category:"Hawaiian/Sushi",description:"Bringing the aloha spirit to the Oregon Coast. Enjoy fresh sushi, poke bowls, and Hawaiian plate lunches in a fun, tropical setting.",features:"Sushi bar, tiki cocktails, island vibes."},{name:"1285 Restobar",category:"Italian",description:"A cozy spot in Old Town serving scratch-made pasta, wood-fired pizzas, and excellent wines. A local favorite for a romantic dinner.",features:"Homemade pasta, extensive wine list, cozy atmosphere."},{name:"River Roasters",category:"Cafe",description:"The place for coffee connoisseurs. They roast their own beans and offer a cozy space to watch the river fog lift in the morning.",features:"House-roasted coffee, river views, pastries."},{name:"BJ's Ice Cream",category:"Sweets",description:"An Old Town staple serving massive scoops of Umpqua Dairy ice cream and homemade waffle cones. The smell of baking cones draws you in from the street.",features:"Homemade waffle cones, saltwater taffy."},{name:"Lovejoy's Restaurant",category:"British Tea Room",description:"A charming English-style tea room and restaurant serving bangers and mash, shepherd's pie, and proper high tea.",features:"High tea, British comfort food, eclectic decor."},{name:"Nosh Eatery",category:"Casual/Eclectic",description:"A hip spot offering unique small plates, sliders, and creative cocktails. Great for a light lunch or happy hour.",features:"Small plates, craft cocktails, modern vibe."}],Ose=`Known as the "Cranberry Capital of Oregon," Bandon offers a mesmerizing blend of rugged seascapes, world-class golf, and charming small-town heritage. Located at the mouth of the Coquille River, this coastal gem is famous for its dramatic sea stacks—most notably Face Rock—which rise majestically from the surf, creating one of the most photographed vistas on the Pacific Coast.
Bandon's historic Old Town district is a delightful walkable area filled with art galleries, candy shops, and restaurants serving fresh local seafood. The vibrant waterfront comes alive with crabbers and fishing boats, while the nearby Coquille River Lighthouse stands as a sentinel to the town's rich maritime past. Golf enthusiasts flock here from around the globe to experience Bandon Dunes Golf Resort, widely considered one of the finest links courses in the world.
Beyond the greens and galleries, Bandon is a nature lover's paradise. The beaches are wide and perfect for beachcombing, especially during the "Circles in the Sand" labyrinth events. Whether you're watching storm waves crash against the rocks, exploring the tidal flats of the Bandon Marsh National Wildlife Refuge, or enjoying a bowl of legendary clam chowder, Bandon delivers an unforgettable Oregon Coast experience.`,TN=[{name:"Face Rock State Scenic Viewpoint",description:"The crown jewel of Bandon's coastline. This viewpoint offers stunning vistas of massive sea stacks, including the famous Face Rock, which resembles a face looking up toward the sky. An American Indian legend tells the story of the princess whose face is frozen in stone.",details:"Free parking and beach access. Best viewed at sunset."},{name:"Coquille River Lighthouse",description:"Built in 1896, this historic lighthouse guarded the dangerous river bar for decades. Now retired, it serves as a beloved landmark located within Bullards Beach State Park. Visitors can walk out on the jetty for incredible views of the river meeting the ocean.",details:"Open seasonally. Located at the north jetty."},{name:"Bandon Dunes Golf Resort",description:"A world-renowned destination for true links golf. With multiple courses perched on rugged cliffs overlooking the Pacific, it offers a raw, authentic golfing experience similar to Scotland. Even non-golfers enjoy the resort's trails and restaurants.",details:"Public welcome at restaurants. Walking-only courses."},{name:"Old Town Bandon",description:"The heart of the city, spanning 10 square blocks near the harbor. It's packed with local flavor, including the famous Cranberry Sweets & More, Tony's Crab Shack, and numerous art galleries featuring local driftwood art.",details:"Great for walking. Historic arch marks the entrance."},{name:"Circles in the Sand",description:"A unique, ephemeral art installation and walking meditation created on the beach during low tides. Artists draw intricate labyrinths in the sand for the public to walk through before the tide washes them away.",details:"Check schedule for dates. Free to participate."},{name:"Bullards Beach State Park",description:"Located just across the river, this expansive park features 4.5 miles of open beach, a large campground, and equestrian trails. It's a prime spot for driftwood collecting, biking, and exploring the lighthouse grounds.",details:"Year-round camping (yurts available). Day-use fee required."},{name:"Washed Ashore Gallery",description:"A fascinating non-profit project that builds massive, colorful sculptures of marine life entirely from plastic pollution collected from beaches. It's both an art exhibit and an educational experience about ocean conservation.",details:"Located in Old Town. Free admission (donations welcome)."},{name:"Bandon Historical Society Museum",description:"Housed in a former city hall building, this museum preserves the history of the Coquille Indians, the devastating fires of 1914 and 1936, and the region's cranberry and timber industries.",details:"Small admission fee. extensive photo archives."}],eB=[{name:"Oregon Coast Trail (Bandon Section)",distance:"Varies (beach walk)",difficulty:"Moderate",description:"The stretch of beach from Old Town south to Devil's Kitchen is spectacular. You'll pass Face Rock, Cat and Kittens rocks, and miles of pristine sand. Watch the tides closely as some areas are impassable at high tide."},{name:"Bullards Beach Trail",distance:"2.5 miles (one way)",difficulty:"Easy",description:"A paved and hard-packed trail winding through shore pines and grassy dunes behind the beach. It connects the campground to the lighthouse, making it perfect for families and cyclists."},{name:"Seven Devils State Recreation Site",distance:"1-3 miles (beach access)",difficulty:"Moderate",description:"A secluded beach access point north of Bandon. The trail down to the beach is short, but the beach walking here offers solitude and excellent agate hunting away from the crowds."},{name:"New River Nature Center Trails",distance:"3.5 miles (network)",difficulty:"Easy",description:"A network of gentle trails winding through coastal scrub, dunes, and wetlands along the New River. It's a fantastic spot for birdwatching and seeing a rare coastal river that runs parallel to the ocean."},{name:"Coquille River Walk",distance:"1.0 mile round trip",difficulty:"Easy",description:"A pleasant stroll along the Bandon waterfront in Old Town. Walk along the boardwalk, watch the crab boats unload their catch, and enjoy views of the lighthouse across the river."},{name:"Face Rock Intertidal Walk",distance:"Varies",difficulty:"Easy",description:"More of a beach exploration than a hike. At low tide, you can walk out near the sea stacks to explore vibrant tide pools filled with anemones, sea stars, and crabs. Use caution and respect marine life."}],Rse=[{name:"Bandon Dunes Golf Resort",category:"Luxury/Resort",description:"The premier lodging experience in Bandon. Set among the dunes and golf courses, the resort offers a variety of accommodations from lodge rooms to private cottages, all with understated elegance and focus on the game.",amenities:"Multiple restaurants, shuttle service, spa, world-class golf.",link:"https://expedia.com/affiliates/bandon-hotels.XG28wG4"},{name:"Bandon Inn",category:"Mid-Range",description:"Perched on a bluff overlooking Old Town and the harbor, Bandon Inn offers some of the best views in town. It's centrally located, making it easy to walk to shops and restaurants.",amenities:"Complimentary breakfast, ocean view rooms, pet-friendly.",link:"https://expedia.com/affiliates/bandon-hotels-bandon-inn.XG28wG4"},{name:"Best Western Inn at Face Rock",category:"Mid-Range",description:"Located near the beach access for Face Rock, this hotel offers comfortable, reliable lodging with great amenities. The indoor pool is a hit with families.",amenities:"Indoor pool, hot tub, breakfast included, beach access nearby.",link:"https://expedia.com/affiliates/bandon-hotels.XG28wG4"},{name:"The Inn at Old Town",category:"Budget/Boutique",description:"A simple, clean, and modern motel located directly across from the Old Town arch. It's the perfect basecamp for travelers who want to be in the center of the action without breaking the bank.",amenities:"Walkable location, modern decor, free parking.",link:"https://expedia.com/affiliates/bandon-hotels.XG28wG4"},{name:"Sunset Oceanfront Lodging",category:"View/Mid-Range",description:"True to its name, this property sits right on the edge of the bluff offering unobstructed ocean views. Accommodations range from motel-style rooms to larger 'Vern Brown' suites.",amenities:"Oceanfront decks, indoor pool, beach access trail.",link:"https://expedia.com/affiliates/bandon-hotels-sunset-oceanfront-lodging.XG28wG4"},{name:"Lamplighter Inn",category:"Budget",description:"A classic roadside motel that has been nicely updated. It offers clean, comfortable rooms at a great value, located along Highway 101 just a short drive from Old Town.",amenities:"Free Wi-Fi, pet-friendly, friendly service.",link:"https://expedia.com/affiliates/bandon-hotels.XG28wG4"},{name:"Windermere on the Beach",category:"Beachfront",description:"One of the few hotels with direct beach access right out the door. The rooms are simple, but the location—steps from the sand and Face Rock—is unbeatable.",amenities:"Private beach access, ocean views, duplex-style cottages.",link:"https://expedia.com/affiliates/bandon-hotels.XG28wG4"}],tB=[{name:"Tony's Crab Shack",category:"Casual Seafood",description:"A Bandon icon on the boardwalk. Order fresh crab cocktails, shrimp melts, or their famous clam chowder at the counter and eat outside watching the boats.",features:"Fresh seafood market, boardwalk seating, casual vibe."},{name:"Edgewaters",category:"Upscale",description:"Offering steak and seafood with a view. Located upstairs in Old Town, Edgewaters features large windows overlooking the river and harbor. The menu is diverse, featuring everything from sushi to prime rib.",features:"Harbor views, sushi bar, full bar."},{name:"Bandon Fish Market",category:"Casual",description:"Located in the distinctive blue building on the waterfront, this is the place for traditional fish and chips. The portions are huge, the fish is fresh, and the batter is crispy.",features:"Fish & chips, smoked salmon, chowder."},{name:"Alloro Wine Bar & Restaurant",category:"Upscale/Italian",description:"An intimate dining experience featuring handmade pasta, fresh coastal ingredients, and an impressive wine list. It brings a touch of fine Italian dining to the coast.",features:"Handmade pasta, extensive wine selection, romantic atmosphere."},{name:"The Wheelhouse",category:"View/Seafood",description:"Located in the upstairs of a historic building in Old Town, The Wheelhouse offers solid seafood and pasta dishes with commanding views of the boat basin.",features:"Crow's Nest viewing area, family-friendly, lunch & dinner."},{name:"Foley's Irish Pub",category:"Casual/Pub",description:"A cozy, authentic-feeling Irish pub serving bangers and mash, shepherd's pie, and properly poured Guinness. It's a warm spot to hide from the coastal wind.",features:"Irish fare, full bar, cozy atmosphere."},{name:"Coastal Mist",category:"Dessert/Bakery",description:"A high-end chocolate boutique and bakery that rivals anything in Europe. Their desserts are works of art, and they also offer excellent savory lunch options.",features:"Artisan chocolates, European pastries, light lunch."},{name:"Bandon Brewing Company",category:"Brewery",description:"A laid-back brewpub with wood-fired pizzas and house-made beers. It's a great gathering spot for groups and families after a day on the beach.",features:"Wood-fired pizza, craft beer, game room."},{name:"Lord Bennett's",category:"Fine Dining",description:"Perched on the cliffs near Face Rock, Lord Bennett's is known for its spectacular sunset views and classic seafood dishes like Hazelnut Crusted Halibut.",features:"Ocean views, sunset dining, classic menu."},{name:"The Rolling Pin",category:"Breakfast/Bakery",description:"A local favorite for breakfast and lunch. Known for giant biscuits and gravy, fresh pastries, and a friendly, bustling atmosphere.",features:"Hearty breakfast, fresh baked goods, waterfront location."}],Ox=(e,t)=>{let n=0;for(let s=0;s<e.length;s++)n=e.charCodeAt(s)+((n<<5)-n);const a=Math.abs(Math.sin(n+t))*.02-.01,i=Math.abs(Math.cos(n+t))*.02-.01;return{latOffset:a,lngOffset:i}},Dn=e=>e?.toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w-]/g,"")||"",Ise=()=>{const e=[];return Object.values(ke).forEach(n=>{e.push({id:`town-${Dn(n.name)}`,name:n.name,town:n.name,category:"Town",lat:n.geo?.lat||45,lng:n.geo?.lng||-124,description:n.description,imageUrl:n.heroImage,link:n.route})}),Object.entries({Astoria:{attractions:kN,trails:q8,restaurants:G8},"Cannon Beach":{attractions:_N,trails:K8,restaurants:Z8},Newport:{attractions:SN,trails:Y8,restaurants:J8},Florence:{attractions:CN,trails:X8,restaurants:Q8},Bandon:{attractions:TN,trails:eB,restaurants:tB}}).forEach(([n,a])=>{const i=ke[Dn(n)]?.geo||{lat:45,lng:-124};a.attractions?.forEach((s,o)=>{const l=Ox(s.name,o);e.push({id:`attraction-${Dn(n)}-${Dn(s.name)}`,name:s.name,town:n,category:"Attractions",lat:i.lat+l.latOffset,lng:i.lng+l.lngOffset,description:s.description,imageUrl:s.image||"https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=800&q=80",link:`/town/${Dn(n)}#${Dn(s.name)}`})}),a.trails?.forEach((s,o)=>{const l=Ox(s.name,o+100);e.push({id:`trail-${Dn(n)}-${Dn(s.name)}`,name:s.name,town:n,category:"Trails",lat:i.lat+l.latOffset,lng:i.lng+l.lngOffset,description:s.description,imageUrl:s.image||"https://images.unsplash.com/photo-1511497584788-876760111969?auto=format&fit=crop&w=800&q=80",link:`/town/${Dn(n)}#${Dn(s.name)}`})}),a.restaurants?.forEach((s,o)=>{const l=Ox(s.name,o+200);e.push({id:`restaurant-${Dn(n)}-${Dn(s.name)}`,name:s.name,town:n,category:"Restaurants",lat:i.lat+l.latOffset,lng:i.lng+l.lngOffset,description:s.description,imageUrl:s.image||"https://images.unsplash.com/photo-1414235077428-338989a2e8c0?auto=format&fit=crop&w=800&q=80",link:`/town/${Dn(n)}#${Dn(s.name)}`})})}),Object.entries(st).forEach(([n,a])=>{const i=Dn(n),s=ke[i]?.geo;s&&a.forEach((o,l)=>{if(o.name==="Coming Soon")return;const c=Ox(o.name,l+300);e.push({id:`hotel-${Dn(n)}-${Dn(o.name)}`,name:o.name,town:n,category:"Hotels",lat:s.lat+c.latOffset,lng:s.lng+c.lngOffset,description:`Experience a wonderful stay at ${o.name} in ${n}. Book now for the best rates and ocean views.`,imageUrl:o.photoUrl,link:`/hotel/${Dn(n)}-${Dn(o.name)}`,affiliateLink:o.link})})}),e},Mse=Ise(),Lse=e=>Mse.find(t=>t.id===e);function Dse(){const{id:e}=UW(),t=Lse(e);return t?r.jsxs("div",{className:"min-h-screen bg-gray-50 flex flex-col",children:[r.jsxs($e,{children:[r.jsxs("title",{children:[t.name," | Book on Expedia | Oregon Coast"]}),r.jsx("meta",{name:"description",content:`Stay at ${t.name} in ${t.town}. Book your Oregon Coast getaway today on Expedia for the best rates.`})]}),r.jsx(Ge,{}),r.jsxs("main",{className:"flex-grow max-w-4xl mx-auto w-full px-4 sm:px-6 lg:px-8 py-8",children:[r.jsxs(_t,{to:"/map",className:"inline-flex items-center text-sm font-medium text-gray-500 hover:text-[#2d5016] mb-6",children:[r.jsx(YT,{className:"w-4 h-4 mr-1"})," Back to Interactive Map"]}),r.jsxs("article",{className:"bg-white rounded-2xl shadow-lg border border-gray-200 overflow-hidden",children:[r.jsxs("div",{className:"h-64 sm:h-96 w-full relative",children:[r.jsx("img",{src:t.imageUrl,alt:t.name,className:"w-full h-full object-cover",onError:n=>{n.target.src="https://images.unsplash.com/photo-1582719508461-905c673771fd?auto=format&fit=crop&w=800&q=80"}}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent flex items-end",children:r.jsxs("div",{className:"p-6 sm:p-8 w-full flex flex-col sm:flex-row justify-between items-end gap-4",children:[r.jsxs("div",{children:[r.jsxs("span",{className:"inline-flex items-center px-3 py-1 rounded-full text-xs font-semibold bg-purple-500 text-white mb-3 shadow-sm",children:[r.jsx(hq,{className:"w-3 h-3 mr-1"})," Featured Lodging"]}),r.jsx("h1",{className:"text-3xl sm:text-4xl font-bold text-white mb-2 drop-shadow-md",children:t.name}),r.jsxs("p",{className:"text-gray-200 flex items-center text-sm sm:text-base font-medium",children:[r.jsx(We,{className:"w-4 h-4 mr-1"})," ",t.town,", Oregon Coast"]})]}),t.affiliateLink&&r.jsxs("a",{href:t.affiliateLink,target:"_blank",rel:"noreferrer",className:"w-full sm:w-auto flex justify-center items-center px-6 py-3 bg-[#000080] text-white text-lg font-bold rounded-lg hover:bg-[#000050] transition-colors shadow-lg transform hover:scale-105 active:scale-95",children:["Book on Expedia ",r.jsx(Ka,{className:"w-5 h-5 ml-2"})]})]})})]}),r.jsxs("div",{className:"p-6 sm:p-8",children:[r.jsxs("div",{className:"grid md:grid-cols-3 gap-8",children:[r.jsxs("div",{className:"md:col-span-2",children:[r.jsx("h2",{className:"text-2xl font-bold text-gray-900 mb-4",children:"About this Property"}),r.jsx("div",{className:"prose max-w-none text-gray-700 mb-8",children:r.jsx("p",{className:"leading-relaxed text-lg",children:t.description})}),r.jsx("h3",{className:"text-xl font-bold text-gray-900 mb-4",children:"Why Book Here?"}),r.jsxs("ul",{className:"space-y-3 mb-8",children:[r.jsxs("li",{className:"flex items-center text-gray-700",children:[r.jsx(um,{className:"w-5 h-5 text-green-500 mr-3 shrink-0"})," Secure your reservation instantly on Expedia."]}),r.jsxs("li",{className:"flex items-center text-gray-700",children:[r.jsx(um,{className:"w-5 h-5 text-green-500 mr-3 shrink-0"})," Find the best rates and exclusive deals."]}),r.jsxs("li",{className:"flex items-center text-gray-700",children:[r.jsx(um,{className:"w-5 h-5 text-green-500 mr-3 shrink-0"})," Read verified guest reviews before booking."]})]})]}),r.jsxs("div",{className:"bg-gray-50 p-6 rounded-xl border border-gray-100 h-fit",children:[r.jsxs("h3",{className:"font-bold text-gray-900 mb-4 flex items-center border-b pb-2",children:[r.jsx(Fu,{className:"w-5 h-5 text-yellow-500 mr-2"})," Location Info"]}),r.jsxs("div",{className:"space-y-4 text-sm",children:[r.jsxs("div",{children:[r.jsx("span",{className:"block text-gray-500 font-medium mb-1",children:"Town"}),r.jsx("span",{className:"text-gray-900 font-semibold",children:t.town})]}),r.jsxs("div",{children:[r.jsx("span",{className:"block text-gray-500 font-medium mb-1",children:"Coordinates"}),r.jsxs("span",{className:"text-gray-900 font-mono bg-gray-200 px-2 py-1 rounded text-xs",children:[t.lat.toFixed(4),", ",t.lng.toFixed(4)]})]}),r.jsx("div",{className:"pt-4 mt-4 border-t",children:r.jsxs("a",{href:`https://www.google.com/maps/search/?api=1&query=${encodeURIComponent(t.name+" "+t.town+" Oregon")}`,target:"_blank",rel:"noreferrer",className:"flex items-center justify-center w-full px-4 py-2 bg-white border-2 border-gray-200 text-gray-700 text-sm font-bold rounded-lg hover:bg-gray-50 hover:border-gray-300 transition-colors",children:[r.jsx(We,{className:"w-4 h-4 mr-2"})," View on Google Maps"]})})]})]})]}),t.affiliateLink&&r.jsxs("div",{className:"mt-8 pt-8 border-t border-gray-200 text-center",children:[r.jsxs("h3",{className:"text-xl font-bold text-gray-900 mb-4",children:["Ready to experience ",t.town,"?"]}),r.jsxs("a",{href:t.affiliateLink,target:"_blank",rel:"noreferrer",className:"inline-flex justify-center items-center px-8 py-4 bg-[#000080] text-white text-xl font-bold rounded-xl hover:bg-[#000050] transition-colors shadow-xl transform hover:-translate-y-1",children:["Check Availability on Expedia ",r.jsx(Ka,{className:"w-6 h-6 ml-2"})]}),r.jsx("p",{className:"mt-4 text-xs text-gray-400",children:"We may earn a commission if you book through this link, at no extra cost to you."})]})]})]})]}),r.jsx(Ye,{})]}):r.jsxs("div",{className:"min-h-screen flex flex-col bg-gray-50",children:[r.jsx(Ge,{}),r.jsxs("div",{className:"flex-grow flex items-center justify-center flex-col",children:[r.jsx("h2",{className:"text-2xl font-bold text-gray-800 mb-4",children:"Hotel Not Found"}),r.jsxs(_t,{to:"/map",className:"text-[#2d5016] hover:underline flex items-center",children:[r.jsx(YT,{className:"w-4 h-4 mr-2"})," Back to Map"]})]}),r.jsx(Ye,{})]})}const Bse=({hideOnHomepage:e=!1})=>{const[t,n]=v.useState(!1),[a,i]=v.useState(null),s=Yn(),o=rh(),l=ch()||{},{isAuthenticated:c=!1,logout:h=()=>{}}=l,m=s.pathname==="/";if(e&&m)return null;const p={"North Coast":"/north-coast","Central Coast":"/central-coast","South Coast":"/south-coast"},x={"North Coast":zr.northCoast,"Central Coast":zr.centralCoast,"South Coast":zr.southCoast},b=hY(s.pathname),j={"@context":"https://schema.org","@type":"SiteNavigationElement",name:["Home","North Coast","Central Coast","South Coast","Maps"],url:["https://oregoncoastal.com/","https://oregoncoastal.com/north-coast","https://oregoncoastal.com/central-coast","https://oregoncoastal.com/south-coast","https://oregoncoastal.com/maps"]},N=()=>{h&&h(),o("/"),n(!1)},_=({title:S,regionKey:A})=>r.jsxs("div",{className:"relative group h-full flex items-center",onMouseEnter:()=>i(A),onMouseLeave:()=>i(null),children:[r.jsxs(_t,{to:p[A],className:"flex items-center text-[var(--nav-text)] hover:bg-[var(--nav-hover)] font-sans font-medium uppercase tracking-[0.1em] text-xs h-full px-4 transition-colors",children:[S,r.jsx(ap,{className:"ml-1 w-3 h-3 text-[var(--nav-text)] opacity-70"})]}),r.jsx(ka,{children:a===A&&r.jsxs(F.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},exit:{opacity:0,y:10},transition:{duration:.15},className:"absolute top-full left-0 mt-0 w-64 bg-[var(--nav-bg)] rounded-b-md shadow-xl border border-[var(--nav-border)] z-50 max-h-[70vh] overflow-y-auto custom-scrollbar",children:[r.jsx("div",{className:"px-6 py-4 border-b border-[var(--nav-border)] bg-[var(--nav-hover)]",children:r.jsx(_t,{to:p[A],className:"text-xs font-serif font-bold text-[var(--nav-text)] uppercase tracking-widest hover:text-white/80 transition-colors",children:"View All Towns"})}),x[A].map((P,I)=>r.jsx(_t,{to:P.route,className:"block px-6 py-3 text-[var(--nav-text)] hover:bg-[var(--nav-hover)] transition-colors font-sans text-sm border-b border-[var(--nav-border)] last:border-0 truncate",children:P.name},I))]})})]});return r.jsxs(r.Fragment,{children:[r.jsxs($e,{children:[b&&r.jsx("script",{type:"application/ld+json",children:JSON.stringify(b)}),r.jsx("script",{type:"application/ld+json",children:JSON.stringify(j)}),r.jsx("link",{rel:"canonical",href:`https://oregoncoastal.com${s.pathname}`})]}),r.jsxs("nav",{className:"sticky top-0 z-50 bg-[var(--nav-bg)] border-b border-[var(--nav-border)] shadow-md flex flex-col",children:[r.jsxs("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 w-full",children:[r.jsxs("div",{className:"md:hidden flex justify-between items-center h-20",children:[r.jsx(_t,{to:"/",className:"flex-shrink-0",children:r.jsx("img",{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2543bbb56c2bd1e5a7aeddeb85168a0f.png",alt:"Oregon Coastal Travel Guide logo",className:"h-10 w-auto brightness-0 invert"})}),r.jsxs("div",{className:"flex items-center gap-4",children:[c&&r.jsx("button",{onClick:N,className:"text-[var(--nav-text)] hover:text-red-400 transition-colors",children:r.jsx(Sj,{className:"w-5 h-5"})}),r.jsx("button",{onClick:()=>n(!t),className:"text-[var(--nav-text)] hover:text-white/80 transition-colors",children:t?r.jsx(Uc,{className:"w-6 h-6"}):r.jsx(vI,{className:"w-6 h-6"})})]})]}),r.jsxs("div",{className:"hidden md:flex items-center justify-center h-24 relative",children:[r.jsxs("div",{className:"flex items-center space-x-2 mr-6 h-full",children:[r.jsx(_t,{to:"/",className:"flex items-center text-[var(--nav-text)] hover:bg-[var(--nav-hover)] font-sans font-medium uppercase tracking-[0.1em] text-xs h-full px-4 transition-colors",children:"Home"}),r.jsx(_,{title:"North Coast",regionKey:"North Coast"}),r.jsx(_,{title:"Central Coast",regionKey:"Central Coast"})]}),r.jsx(_t,{to:"/",className:"flex-shrink-0 px-8",children:r.jsx("img",{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2543bbb56c2bd1e5a7aeddeb85168a0f.png",alt:"Oregon Coastal Travel Guide logo",className:"w-[200px] h-auto hover:opacity-80 transition-opacity drop-shadow-md"})}),r.jsxs("div",{className:"flex items-center space-x-2 ml-6 h-full relative right-[160px]",children:[r.jsx(_,{title:"South Coast",regionKey:"South Coast"}),r.jsxs(_t,{to:"/maps",className:"flex items-center text-[var(--nav-text)] hover:bg-[var(--nav-hover)] font-sans font-medium uppercase tracking-[0.1em] text-xs h-full px-4 transition-colors",children:[r.jsx(Bu,{className:"w-3 h-3 mr-2 opacity-70"})," Maps"]}),c&&r.jsxs(pn,{onClick:N,variant:"ghost",className:"text-[var(--nav-text)] hover:bg-red-900/50 hover:text-white ml-4",size:"sm",children:[r.jsx(Sj,{className:"w-4 h-4 mr-2"})," Logout"]})]})]})]}),r.jsx(ka,{children:t&&r.jsx(F.div,{initial:{height:0,opacity:0},animate:{height:"auto",opacity:1},exit:{height:0,opacity:0},className:"md:hidden border-t border-[var(--nav-border)] overflow-hidden bg-[var(--nav-bg)]",children:r.jsxs("div",{className:"px-6 py-6 space-y-4",children:[r.jsx(_t,{onClick:()=>n(!1),to:"/",className:"block font-serif font-bold uppercase tracking-widest text-[var(--nav-text)] hover:bg-[var(--nav-hover)] transition-colors border-b border-[var(--nav-border)] pb-3",children:"Home"}),r.jsxs(_t,{onClick:()=>n(!1),to:"/maps",className:"block font-serif font-bold uppercase tracking-widest text-[var(--nav-text)] hover:bg-[var(--nav-hover)] transition-colors border-b border-[var(--nav-border)] pb-3 flex items-center",children:[r.jsx(Bu,{className:"w-4 h-4 mr-2 opacity-70"})," Maps"]}),r.jsx(_t,{onClick:()=>n(!1),to:"/north-coast",className:"block font-serif font-bold uppercase tracking-widest text-[var(--nav-text)] hover:bg-[var(--nav-hover)] transition-colors border-b border-[var(--nav-border)] pb-3",children:"North Coast"}),r.jsx(_t,{onClick:()=>n(!1),to:"/central-coast",className:"block font-serif font-bold uppercase tracking-widest text-[var(--nav-text)] hover:bg-[var(--nav-hover)] transition-colors border-b border-[var(--nav-border)] pb-3",children:"Central Coast"}),r.jsx(_t,{onClick:()=>n(!1),to:"/south-coast",className:"block font-serif font-bold uppercase tracking-widest text-[var(--nav-text)] hover:bg-[var(--nav-hover)] transition-colors p-2 -ml-2 rounded-md",children:"South Coast"})]})})}),b.itemListElement.length>1&&r.jsx("div",{className:"bg-[var(--nav-bg)] border-t border-[var(--nav-border)] py-3 hidden md:block shadow-inner",children:r.jsx("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8",children:r.jsx("ol",{className:"flex items-center space-x-3 text-xs font-sans text-white/60",children:b.itemListElement.map((S,A)=>r.jsxs("li",{className:"flex items-center",children:[A>0&&r.jsx(Ik,{className:"w-3 h-3 mx-2 text-[var(--nav-border)]"}),A===0?r.jsx(_t,{to:S.item.replace("https://oregoncoastal.com","")||"/",className:"hover:text-white transition-colors",children:r.jsx(Iq,{className:"w-3 h-3"})}):A===b.itemListElement.length-1?r.jsx("span",{className:"font-medium text-[var(--nav-text)] tracking-widest uppercase",children:S.name}):r.jsx(_t,{to:S.item.replace("https://oregoncoastal.com",""),className:"hover:text-[var(--nav-text)] transition-colors tracking-widest uppercase",children:S.name})]},A))})})})]})]})},dt=({attractions:e,townName:t,geo:n,url:a})=>{if(!e||!Array.isArray(e)||e.length===0)return null;const s={"@context":"https://schema.org","@graph":e.map(o=>{const l=o?.name||o?.title||"Untitled Attraction",c=o?.description||"",h={"@type":"TouristAttraction",name:l,description:c};return o?.image&&(h.image=o.image),a&&(h.url=a),t&&(h.address={"@type":"PostalAddress",addressLocality:t,addressRegion:"OR",addressCountry:"US"}),n&&typeof n.lat=="number"&&typeof n.lng=="number"&&(h.geo={"@type":"GeoCoordinates",latitude:n.lat,longitude:n.lng}),h})};return r.jsx($e,{children:r.jsx("script",{type:"application/ld+json",children:JSON.stringify(s)})})},ut=()=>{const{pathname:e}=Yn();return v.useLayoutEffect(()=>{window.scrollTo({top:0,left:0,behavior:"instant"})},[e]),null},Fse=({src:e,alt:t,className:n,onClick:a,isActive:i,onImageLoad:s,onImageError:o})=>{const[l,c]=v.useState(!1),[h,m]=v.useState(!1);return r.jsxs("div",{className:`relative ${n} bg-gray-100 overflow-hidden cursor-pointer group`,onClick:a,children:[!h&&!l&&r.jsx("div",{className:"absolute inset-0 bg-gray-200 animate-pulse flex items-center justify-center",children:r.jsx(Fr,{className:"w-4 h-4 text-gray-400 animate-spin"})}),l?r.jsx("div",{className:"absolute inset-0 bg-gray-100 flex items-center justify-center flex-col p-2 text-center border border-[#1C1C1A]",children:r.jsx(Du,{className:"w-6 h-6 text-gray-300 mb-1"})}):r.jsx("img",{src:e,alt:t,className:`w-full h-full object-cover transition-opacity duration-500 ${h?"opacity-100":"opacity-0"}`,loading:"lazy",onLoad:p=>{m(!0),s&&s(e)},onError:p=>{c(!0),m(!0),o&&o(e,p)}}),i&&r.jsx("div",{className:"absolute inset-0 ring-4 ring-lime-500 ring-inset z-10 pointer-events-none rounded-none"}),r.jsx("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors duration-300"})]})},ht=({featuredImage:e,images:t,title:n="Photo Gallery",townName:a})=>{const[i,s]=v.useState(null),[o,l]=v.useState([]),[c,h]=v.useState(!0),[m,p]=v.useState(!1),[x,b]=v.useState(!1),j=v.useCallback(async()=>{if(!a){h(!1);return}h(!0);try{const{data:$,error:K}=await Ht.from("town_photos").select("id, image_url, thumbnail_url, caption, created_at").eq("town_name",a).order("created_at",{ascending:!1});if(!K&&$&&$.length>0){const X=$.map(te=>({id:te.id,full:te.image_url,thumb:te.thumbnail_url||te.image_url,caption:te.caption||`Scenic view of ${a} landscape, Oregon Coast`,datePublished:te.created_at}));l(X),s(X[0].full)}else s(e)}catch{s(e)}finally{h(!1)}},[a,e]);v.useEffect(()=>{l([]),p(!1),b(!1),s(null),j()},[a,j]),v.useEffect(()=>{b(!1),p(!1)},[i]);const N=(t||[]).map(($,K)=>({id:`static-${K}`,full:$,thumb:$,caption:`Scenic landscape view of ${a} on the Oregon Coast`})),_=o.length>0?o:N,S=i||(_.length>0?_[0].full:e),P=_.find($=>$.full===S)?.caption||`Beautiful coastal scenery at ${a}, Oregon`,I=_.map($=>({"@context":"https://schema.org","@type":"ImageObject",url:$.full,name:$.caption||`${a} Photo`,description:$.caption||`A beautiful image representing ${a} on the Oregon Coast.`,contentUrl:$.full,thumbnailUrl:$.thumb,author:{"@type":"Organization",name:"Oregon Coast Travel Guide"},datePublished:$.datePublished||new Date().toISOString()})),O=()=>{const $=_.findIndex(X=>X.full===S);if($===-1)return;const K=($+1)%_.length;s(_[K].full)},M=()=>{const $=_.findIndex(X=>X.full===S);if($===-1)return;const K=($-1+_.length)%_.length;s(_[K].full)};if(c&&_.length===0)return r.jsx("section",{className:"py-12 px-4 bg-gray-50 border-t border-[#1C1C1A]",children:r.jsx("div",{className:"max-w-6xl mx-auto flex flex-col items-center justify-center h-96 bg-gray-100 rounded-none border border-[#1C1C1A] shadow-editorial animate-pulse",children:r.jsx(Fr,{className:"w-10 h-10 text-gray-400 animate-spin mb-4"})})});const z=_.filter($=>$.full&&$.full.trim().length>0);return z.length===0&&!e?null:r.jsxs("section",{className:"py-12 px-4 bg-gradient-to-b from-white to-gray-50 border-t border-[#1C1C1A]",children:[r.jsx($e,{children:I.map(($,K)=>r.jsx("script",{type:"application/ld+json",children:JSON.stringify($)},K))}),r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-10",children:[r.jsx("h2",{className:"text-3xl font-bold text-[#2d5016] mb-3",children:n}),r.jsx("div",{className:"h-1 w-20 bg-lime-500 mx-auto rounded-none border border-[#1C1C1A] shadow-editorial"})]}),r.jsxs("div",{className:"relative w-full aspect-video min-h-[300px] max-h-[600px] rounded-none border border-[#1C1C1A] shadow-editorial overflow-hidden mb-8 bg-gray-100 group flex items-center justify-center",children:[!x&&!m&&r.jsx("div",{className:"absolute inset-0 flex items-center justify-center bg-gray-100 z-10",children:r.jsx(Fr,{className:"w-10 h-10 text-gray-400 animate-spin"})}),m?r.jsx("div",{className:"flex flex-col items-center justify-center text-gray-400 p-8 z-10 bg-gray-50 w-full h-full",children:r.jsx(Du,{className:"w-16 h-16 mb-4 opacity-50"})}):r.jsx("img",{src:S,alt:P,className:`absolute inset-0 w-full h-full object-contain bg-black/80 transition-opacity duration-500 ${x?"opacity-100":"opacity-0"}`,onLoad:()=>b(!0),onError:()=>{p(!0),b(!0)}},S),z.length>1&&r.jsxs(r.Fragment,{children:[r.jsx("button",{onClick:$=>{$.stopPropagation(),M()},className:"absolute left-4 top-1/2 -translate-y-1/2 z-20 p-2 bg-white hover:bg-parchment text-primary rounded-none border border-[#1C1C1A] shadow-editorial transition-colors focus:outline-none focus:ring-2 focus:ring-lime-500 opacity-0 group-hover:opacity-100 hover:-translate-y-1","aria-label":"Previous image",children:r.jsx(mI,{className:"w-8 h-8"})}),r.jsx("button",{onClick:$=>{$.stopPropagation(),O()},className:"absolute right-4 top-1/2 -translate-y-1/2 z-20 p-2 bg-white hover:bg-parchment text-primary rounded-none border border-[#1C1C1A] shadow-editorial transition-colors focus:outline-none focus:ring-2 focus:ring-lime-500 opacity-0 group-hover:opacity-100 hover:-translate-y-1","aria-label":"Next image",children:r.jsx(Ik,{className:"w-8 h-8"})})]}),P&&x&&!m&&r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-white border-t border-[#1C1C1A] p-4 text-primary transform translate-y-full group-hover:translate-y-0 transition-transform duration-300 z-10",children:r.jsx("p",{className:"text-center font-medium font-sans uppercase tracking-widest text-sm",children:P})})]}),z.length>0&&r.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",children:z.map(($,K)=>r.jsx(Fse,{src:$.thumb,alt:$.caption||`Thumbnail view of ${a}, Oregon`,isActive:S===$.full,onClick:()=>s($.full),className:"w-full aspect-[4/3] object-cover rounded-none border border-[#1C1C1A] shadow-editorial transition-all duration-300 hover:-translate-y-1"},`${$.id||K}`))})]})]})},xt=({townName:e,region:t})=>{let n=t;if(!n&&e){const s=Object.values(ke).find(o=>o.name.toLowerCase()===e.toLowerCase());s&&(n=s.region)}if(!n)return null;const i={"North Coast":"#1f5233","Central Coast":"#1e3a8a","South Coast":"#92400e"}[n]||"#1f5233";return r.jsx(F.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.3},className:"text-white px-4 py-1 rounded-full text-xs font-bold tracking-widest uppercase mb-4 shadow-lg inline-block relative z-20",style:{backgroundColor:i},children:n})};function ei(e){const t=Object.prototype.toString.call(e);return e instanceof Date||typeof e=="object"&&t==="[object Date]"?new e.constructor(+e):typeof e=="number"||t==="[object Number]"||typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}function jl(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function zse(e,t){const n=ei(e);return isNaN(t)?jl(e,NaN):(n.setDate(n.getDate()+t),n)}const nB=6048e5,$se=864e5;let Hse={};function a0(){return Hse}function zm(e,t){const n=a0(),a=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=ei(e),s=i.getDay(),o=(s<a?7:0)+s-a;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function Fy(e){return zm(e,{weekStartsOn:1})}function rB(e){const t=ei(e),n=t.getFullYear(),a=jl(e,0);a.setFullYear(n+1,0,4),a.setHours(0,0,0,0);const i=Fy(a),s=jl(e,0);s.setFullYear(n,0,4),s.setHours(0,0,0,0);const o=Fy(s);return t.getTime()>=i.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}function LE(e){const t=ei(e);return t.setHours(0,0,0,0),t}function DE(e){const t=ei(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),+e-+n}function Wse(e,t){const n=LE(e),a=LE(t),i=+n-DE(n),s=+a-DE(a);return Math.round((i-s)/$se)}function Vse(e){const t=rB(e),n=jl(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),Fy(n)}function Use(e){return e instanceof Date||typeof e=="object"&&Object.prototype.toString.call(e)==="[object Date]"}function qse(e){if(!Use(e)&&typeof e!="number")return!1;const t=ei(e);return!isNaN(Number(t))}function Gse(e){const t=ei(e),n=jl(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}const Kse={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},Zse=(e,t,n)=>{let a;const i=Kse[e];return typeof i=="string"?a=i:t===1?a=i.one:a=i.other.replace("{{count}}",t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?"in "+a:a+" ago":a};function f1(e){return(t={})=>{const n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}const Yse={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},Jse={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},Xse={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},Qse={date:f1({formats:Yse,defaultWidth:"full"}),time:f1({formats:Jse,defaultWidth:"full"}),dateTime:f1({formats:Xse,defaultWidth:"full"})},eoe={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},toe=(e,t,n,a)=>eoe[e];function Ff(e){return(t,n)=>{const a=n?.context?String(n.context):"standalone";let i;if(a==="formatting"&&e.formattingValues){const o=e.defaultFormattingWidth||e.defaultWidth,l=n?.width?String(n.width):o;i=e.formattingValues[l]||e.formattingValues[o]}else{const o=e.defaultWidth,l=n?.width?String(n.width):e.defaultWidth;i=e.values[l]||e.values[o]}const s=e.argumentCallback?e.argumentCallback(t):t;return i[s]}}const noe={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},roe={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},aoe={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},ioe={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},soe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},ooe={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},loe=(e,t)=>{const n=Number(e),a=n%100;if(a>20||a<10)switch(a%10){case 1:return n+"st";case 2:return n+"nd";case 3:return n+"rd"}return n+"th"},coe={ordinalNumber:loe,era:Ff({values:noe,defaultWidth:"wide"}),quarter:Ff({values:roe,defaultWidth:"wide",argumentCallback:e=>e-1}),month:Ff({values:aoe,defaultWidth:"wide"}),day:Ff({values:ioe,defaultWidth:"wide"}),dayPeriod:Ff({values:soe,defaultWidth:"wide",formattingValues:ooe,defaultFormattingWidth:"wide"})};function zf(e){return(t,n={})=>{const a=n.width,i=a&&e.matchPatterns[a]||e.matchPatterns[e.defaultMatchWidth],s=t.match(i);if(!s)return null;const o=s[0],l=a&&e.parsePatterns[a]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(l)?uoe(l,p=>p.test(o)):doe(l,p=>p.test(o));let h;h=e.valueCallback?e.valueCallback(c):c,h=n.valueCallback?n.valueCallback(h):h;const m=t.slice(o.length);return{value:h,rest:m}}}function doe(e,t){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function uoe(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function hoe(e){return(t,n={})=>{const a=t.match(e.matchPattern);if(!a)return null;const i=a[0],s=t.match(e.parsePattern);if(!s)return null;let o=e.valueCallback?e.valueCallback(s[0]):s[0];o=n.valueCallback?n.valueCallback(o):o;const l=t.slice(i.length);return{value:o,rest:l}}}const foe=/^(\d+)(th|st|nd|rd)?/i,moe=/\d+/i,poe={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},goe={any:[/^b/i,/^(a|c)/i]},xoe={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},yoe={any:[/1/i,/2/i,/3/i,/4/i]},voe={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},boe={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},woe={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},joe={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},Noe={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},koe={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},_oe={ordinalNumber:hoe({matchPattern:foe,parsePattern:moe,valueCallback:e=>parseInt(e,10)}),era:zf({matchPatterns:poe,defaultMatchWidth:"wide",parsePatterns:goe,defaultParseWidth:"any"}),quarter:zf({matchPatterns:xoe,defaultMatchWidth:"wide",parsePatterns:yoe,defaultParseWidth:"any",valueCallback:e=>e+1}),month:zf({matchPatterns:voe,defaultMatchWidth:"wide",parsePatterns:boe,defaultParseWidth:"any"}),day:zf({matchPatterns:woe,defaultMatchWidth:"wide",parsePatterns:joe,defaultParseWidth:"any"}),dayPeriod:zf({matchPatterns:Noe,defaultMatchWidth:"any",parsePatterns:koe,defaultParseWidth:"any"})},Soe={code:"en-US",formatDistance:Zse,formatLong:Qse,formatRelative:toe,localize:coe,match:_oe,options:{weekStartsOn:0,firstWeekContainsDate:1}};function Coe(e){const t=ei(e);return Wse(t,Gse(t))+1}function Toe(e){const t=ei(e),n=+Fy(t)-+Vse(t);return Math.round(n/nB)+1}function aB(e,t){const n=ei(e),a=n.getFullYear(),i=a0(),s=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=jl(e,0);o.setFullYear(a+1,0,s),o.setHours(0,0,0,0);const l=zm(o,t),c=jl(e,0);c.setFullYear(a,0,s),c.setHours(0,0,0,0);const h=zm(c,t);return n.getTime()>=l.getTime()?a+1:n.getTime()>=h.getTime()?a:a-1}function Aoe(e,t){const n=a0(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=aB(e,t),s=jl(e,0);return s.setFullYear(i,0,a),s.setHours(0,0,0,0),zm(s,t)}function Poe(e,t){const n=ei(e),a=+zm(n,t)-+Aoe(n,t);return Math.round(a/nB)+1}function Ft(e,t){const n=e<0?"-":"",a=Math.abs(e).toString().padStart(t,"0");return n+a}const il={y(e,t){const n=e.getFullYear(),a=n>0?n:1-n;return Ft(t==="yy"?a%100:a,t.length)},M(e,t){const n=e.getMonth();return t==="M"?String(n+1):Ft(n+1,2)},d(e,t){return Ft(e.getDate(),t.length)},a(e,t){const n=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.toUpperCase();case"aaa":return n;case"aaaaa":return n[0];default:return n==="am"?"a.m.":"p.m."}},h(e,t){return Ft(e.getHours()%12||12,t.length)},H(e,t){return Ft(e.getHours(),t.length)},m(e,t){return Ft(e.getMinutes(),t.length)},s(e,t){return Ft(e.getSeconds(),t.length)},S(e,t){const n=t.length,a=e.getMilliseconds(),i=Math.trunc(a*Math.pow(10,n-3));return Ft(i,t.length)}},iu={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},BE={G:function(e,t,n){const a=e.getFullYear()>0?1:0;switch(t){case"G":case"GG":case"GGG":return n.era(a,{width:"abbreviated"});case"GGGGG":return n.era(a,{width:"narrow"});default:return n.era(a,{width:"wide"})}},y:function(e,t,n){if(t==="yo"){const a=e.getFullYear(),i=a>0?a:1-a;return n.ordinalNumber(i,{unit:"year"})}return il.y(e,t)},Y:function(e,t,n,a){const i=aB(e,a),s=i>0?i:1-i;if(t==="YY"){const o=s%100;return Ft(o,2)}return t==="Yo"?n.ordinalNumber(s,{unit:"year"}):Ft(s,t.length)},R:function(e,t){const n=rB(e);return Ft(n,t.length)},u:function(e,t){const n=e.getFullYear();return Ft(n,t.length)},Q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"Q":return String(a);case"QQ":return Ft(a,2);case"Qo":return n.ordinalNumber(a,{unit:"quarter"});case"QQQ":return n.quarter(a,{width:"abbreviated",context:"formatting"});case"QQQQQ":return n.quarter(a,{width:"narrow",context:"formatting"});default:return n.quarter(a,{width:"wide",context:"formatting"})}},q:function(e,t,n){const a=Math.ceil((e.getMonth()+1)/3);switch(t){case"q":return String(a);case"qq":return Ft(a,2);case"qo":return n.ordinalNumber(a,{unit:"quarter"});case"qqq":return n.quarter(a,{width:"abbreviated",context:"standalone"});case"qqqqq":return n.quarter(a,{width:"narrow",context:"standalone"});default:return n.quarter(a,{width:"wide",context:"standalone"})}},M:function(e,t,n){const a=e.getMonth();switch(t){case"M":case"MM":return il.M(e,t);case"Mo":return n.ordinalNumber(a+1,{unit:"month"});case"MMM":return n.month(a,{width:"abbreviated",context:"formatting"});case"MMMMM":return n.month(a,{width:"narrow",context:"formatting"});default:return n.month(a,{width:"wide",context:"formatting"})}},L:function(e,t,n){const a=e.getMonth();switch(t){case"L":return String(a+1);case"LL":return Ft(a+1,2);case"Lo":return n.ordinalNumber(a+1,{unit:"month"});case"LLL":return n.month(a,{width:"abbreviated",context:"standalone"});case"LLLLL":return n.month(a,{width:"narrow",context:"standalone"});default:return n.month(a,{width:"wide",context:"standalone"})}},w:function(e,t,n,a){const i=Poe(e,a);return t==="wo"?n.ordinalNumber(i,{unit:"week"}):Ft(i,t.length)},I:function(e,t,n){const a=Toe(e);return t==="Io"?n.ordinalNumber(a,{unit:"week"}):Ft(a,t.length)},d:function(e,t,n){return t==="do"?n.ordinalNumber(e.getDate(),{unit:"date"}):il.d(e,t)},D:function(e,t,n){const a=Coe(e);return t==="Do"?n.ordinalNumber(a,{unit:"dayOfYear"}):Ft(a,t.length)},E:function(e,t,n){const a=e.getDay();switch(t){case"E":case"EE":case"EEE":return n.day(a,{width:"abbreviated",context:"formatting"});case"EEEEE":return n.day(a,{width:"narrow",context:"formatting"});case"EEEEEE":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},e:function(e,t,n,a){const i=e.getDay(),s=(i-a.weekStartsOn+8)%7||7;switch(t){case"e":return String(s);case"ee":return Ft(s,2);case"eo":return n.ordinalNumber(s,{unit:"day"});case"eee":return n.day(i,{width:"abbreviated",context:"formatting"});case"eeeee":return n.day(i,{width:"narrow",context:"formatting"});case"eeeeee":return n.day(i,{width:"short",context:"formatting"});default:return n.day(i,{width:"wide",context:"formatting"})}},c:function(e,t,n,a){const i=e.getDay(),s=(i-a.weekStartsOn+8)%7||7;switch(t){case"c":return String(s);case"cc":return Ft(s,t.length);case"co":return n.ordinalNumber(s,{unit:"day"});case"ccc":return n.day(i,{width:"abbreviated",context:"standalone"});case"ccccc":return n.day(i,{width:"narrow",context:"standalone"});case"cccccc":return n.day(i,{width:"short",context:"standalone"});default:return n.day(i,{width:"wide",context:"standalone"})}},i:function(e,t,n){const a=e.getDay(),i=a===0?7:a;switch(t){case"i":return String(i);case"ii":return Ft(i,t.length);case"io":return n.ordinalNumber(i,{unit:"day"});case"iii":return n.day(a,{width:"abbreviated",context:"formatting"});case"iiiii":return n.day(a,{width:"narrow",context:"formatting"});case"iiiiii":return n.day(a,{width:"short",context:"formatting"});default:return n.day(a,{width:"wide",context:"formatting"})}},a:function(e,t,n){const i=e.getHours()/12>=1?"pm":"am";switch(t){case"a":case"aa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"aaa":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},b:function(e,t,n){const a=e.getHours();let i;switch(a===12?i=iu.noon:a===0?i=iu.midnight:i=a/12>=1?"pm":"am",t){case"b":case"bb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"bbb":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},B:function(e,t,n){const a=e.getHours();let i;switch(a>=17?i=iu.evening:a>=12?i=iu.afternoon:a>=4?i=iu.morning:i=iu.night,t){case"B":case"BB":case"BBB":return n.dayPeriod(i,{width:"abbreviated",context:"formatting"});case"BBBBB":return n.dayPeriod(i,{width:"narrow",context:"formatting"});default:return n.dayPeriod(i,{width:"wide",context:"formatting"})}},h:function(e,t,n){if(t==="ho"){let a=e.getHours()%12;return a===0&&(a=12),n.ordinalNumber(a,{unit:"hour"})}return il.h(e,t)},H:function(e,t,n){return t==="Ho"?n.ordinalNumber(e.getHours(),{unit:"hour"}):il.H(e,t)},K:function(e,t,n){const a=e.getHours()%12;return t==="Ko"?n.ordinalNumber(a,{unit:"hour"}):Ft(a,t.length)},k:function(e,t,n){let a=e.getHours();return a===0&&(a=24),t==="ko"?n.ordinalNumber(a,{unit:"hour"}):Ft(a,t.length)},m:function(e,t,n){return t==="mo"?n.ordinalNumber(e.getMinutes(),{unit:"minute"}):il.m(e,t)},s:function(e,t,n){return t==="so"?n.ordinalNumber(e.getSeconds(),{unit:"second"}):il.s(e,t)},S:function(e,t){return il.S(e,t)},X:function(e,t,n){const a=e.getTimezoneOffset();if(a===0)return"Z";switch(t){case"X":return zE(a);case"XXXX":case"XX":return mc(a);default:return mc(a,":")}},x:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"x":return zE(a);case"xxxx":case"xx":return mc(a);default:return mc(a,":")}},O:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"O":case"OO":case"OOO":return"GMT"+FE(a,":");default:return"GMT"+mc(a,":")}},z:function(e,t,n){const a=e.getTimezoneOffset();switch(t){case"z":case"zz":case"zzz":return"GMT"+FE(a,":");default:return"GMT"+mc(a,":")}},t:function(e,t,n){const a=Math.trunc(e.getTime()/1e3);return Ft(a,t.length)},T:function(e,t,n){const a=e.getTime();return Ft(a,t.length)}};function FE(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),i=Math.trunc(a/60),s=a%60;return s===0?n+String(i):n+String(i)+t+Ft(s,2)}function zE(e,t){return e%60===0?(e>0?"-":"+")+Ft(Math.abs(e)/60,2):mc(e,t)}function mc(e,t=""){const n=e>0?"-":"+",a=Math.abs(e),i=Ft(Math.trunc(a/60),2),s=Ft(a%60,2);return n+i+t+s}const $E=(e,t)=>{switch(e){case"P":return t.date({width:"short"});case"PP":return t.date({width:"medium"});case"PPP":return t.date({width:"long"});default:return t.date({width:"full"})}},iB=(e,t)=>{switch(e){case"p":return t.time({width:"short"});case"pp":return t.time({width:"medium"});case"ppp":return t.time({width:"long"});default:return t.time({width:"full"})}},Eoe=(e,t)=>{const n=e.match(/(P+)(p+)?/)||[],a=n[1],i=n[2];if(!i)return $E(e,t);let s;switch(a){case"P":s=t.dateTime({width:"short"});break;case"PP":s=t.dateTime({width:"medium"});break;case"PPP":s=t.dateTime({width:"long"});break;default:s=t.dateTime({width:"full"});break}return s.replace("{{date}}",$E(a,t)).replace("{{time}}",iB(i,t))},Ooe={p:iB,P:Eoe},Roe=/^D+$/,Ioe=/^Y+$/,Moe=["D","DD","YY","YYYY"];function Loe(e){return Roe.test(e)}function Doe(e){return Ioe.test(e)}function Boe(e,t,n){const a=Foe(e,t,n);if(console.warn(a),Moe.includes(e))throw new RangeError(a)}function Foe(e,t,n){const a=e[0]==="Y"?"years":"days of the month";return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${a} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const zoe=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,$oe=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Hoe=/^'([^]*?)'?$/,Woe=/''/g,Voe=/[a-zA-Z]/;function Pu(e,t,n){const a=a0(),i=a.locale??Soe,s=a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,o=a.weekStartsOn??a.locale?.options?.weekStartsOn??0,l=ei(e);if(!qse(l))throw new RangeError("Invalid time value");let c=t.match($oe).map(m=>{const p=m[0];if(p==="p"||p==="P"){const x=Ooe[p];return x(m,i.formatLong)}return m}).join("").match(zoe).map(m=>{if(m==="''")return{isToken:!1,value:"'"};const p=m[0];if(p==="'")return{isToken:!1,value:Uoe(m)};if(BE[p])return{isToken:!0,value:m};if(p.match(Voe))throw new RangeError("Format string contains an unescaped latin alphabet character `"+p+"`");return{isToken:!1,value:m}});i.localize.preprocessor&&(c=i.localize.preprocessor(l,c));const h={firstWeekContainsDate:s,weekStartsOn:o,locale:i};return c.map(m=>{if(!m.isToken)return m.value;const p=m.value;(Doe(p)||Loe(p))&&Boe(p,t,String(e));const x=BE[p[0]];return x(l,p,i.localize,h)}).join("")}function Uoe(e){const t=e.match(Hoe);return t?t[1].replace(Woe,"'"):e}function Xi({className:e,...t}){return r.jsx("div",{className:Se("animate-pulse rounded-md bg-primary/10",e),...t})}const wc=[{id:"9439040",name:"Astoria (Tongue Point)",lat:46.216,lon:-123.766,tidesNetPath:"oregon/astoria-tongue-point-columbia-river/"},{id:"9437908",name:"Seaside / Cannon Beach (Nehalem)",lat:45.717,lon:-123.933,tidesNetPath:"oregon/astoria-tongue-point-columbia-river/"},{id:"9437331",name:"Tillamook (Hoquarten Slough)",lat:45.456,lon:-123.844,tidesNetPath:"oregon/garibaldi-tillamook-bay/"},{id:"9437540",name:"Garibaldi/Tillamook Bay",lat:45.558,lon:-123.916,tidesNetPath:"oregon/garibaldi-tillamook-bay/"},{id:"9436101",name:"Lincoln City (Taft, Siletz Bay)",lat:44.93,lon:-124.01,tidesNetPath:"oregon/taft-siletz-bay/"},{id:"9435827",name:"Depoe Bay",lat:44.81,lon:-124.062,tidesNetPath:"oregon/newport-yaquina-bay/"},{id:"9435380",name:"South Beach/Newport",lat:44.625,lon:-124.043,tidesNetPath:"oregon/newport-yaquina-bay/"},{id:"9434939",name:"Waldport (Alsea Bay)",lat:44.426,lon:-124.073,tidesNetPath:"oregon/2905/"},{id:"9434032",name:"Florence (Siuslaw River)",lat:43.966,lon:-124.1,tidesNetPath:"oregon/florence-siuslaw-river/"},{id:"9433445",name:"Winchester Bay (Umpqua River Entrance)",lat:43.676,lon:-124.176,tidesNetPath:"oregon/winchester-bay-umpqua-river/"},{id:"9433501",name:"Reedsport",lat:43.7,lon:-124.11,tidesNetPath:"oregon/winchester-bay-umpqua-river/"},{id:"9432780",name:"Charleston/Coos Bay",lat:43.345,lon:-124.321,tidesNetPath:"oregon/charleston-coos-bay/"},{id:"9432373",name:"Bandon (Coquille River)",lat:43.118,lon:-124.417,tidesNetPath:"oregon/bandon-coquille-river/"},{id:"9431647",name:"Port Orford",lat:42.739,lon:-124.498,tidesNetPath:"oregon/port-orford/"},{id:"9431011",name:"Gold Beach (Rogue River)",lat:42.407,lon:-124.421,tidesNetPath:"oregon/gold-beach-rogue-river/"},{id:"9430104",name:"Brookings (Chetco Cove)",lat:42.043,lon:-124.271,tidesNetPath:"oregon/brookings-chetco-cove/"}].sort((e,t)=>e.name.localeCompare(t.name)),qoe=(e,t,n)=>{if(e){const s=e.toLowerCase();if(s.includes("seaside")||s.includes("cannon beach")||s.includes("nehalem"))return{...wc.find(l=>l.id==="9437908"),distance:0};if(s.includes("lincoln city"))return{...wc.find(l=>l.id==="9436101"),distance:0};if(s.includes("tillamook")&&!s.includes("garibaldi"))return{...wc.find(l=>l.id==="9437331"),distance:0};const o=wc.find(l=>l.name.toLowerCase().includes(s));if(o)return{...o,distance:0}}if(!t||!n)return null;let a=null,i=1/0;for(const s of wc){const o=Math.sqrt(Math.pow(s.lat-t,2)+Math.pow(s.lon-n,2));o<i&&(i=o,a=s)}return a?{...a,distance:i}:null},a_=e=>{if(!e)return"oregon/2905/";const t=e.toLowerCase().replace(/ /g,"-");return t.includes("astoria")||t.includes("seaside")?"oregon/astoria-tongue-point-columbia-river/":t.includes("cannon-beach")?"oregon/garibaldi-tillamook-bay/":t.includes("newport")?"oregon/newport-yaquina-bay/":t.includes("florence")?"oregon/florence-siuslaw-river/":t.includes("coos-bay")||t.includes("charleston")?"oregon/charleston-coos-bay/":t.includes("bandon")?"oregon/bandon-coquille-river/":t.includes("lincoln-city")?"oregon/taft-siletz-bay/":t.includes("tillamook")?"oregon/garibaldi-tillamook-bay/":t.includes("gold-beach")?"oregon/gold-beach-rogue-river/":wc.find(a=>a.name.toLowerCase().includes(e.toLowerCase()))?.tidesNetPath||"oregon/2905/"},Goe=360*60*1e3,Koe=e=>{const[t,n]=e.split(" "),[a,i,s]=t.split("-"),[o,l]=n.split(":"),c=new Date(a,i-1,s),h=parseInt(o,10),m=h>=12?"PM":"AM",x=`${h%12||12}:${l} ${m}`;return{dateObj:c,timeStr:x,datePart:t}},Zoe=({defaultStationId:e="9435380"})=>{const t=v.useMemo(()=>wc,[]),[n,a]=v.useState(e),i=t.find(j=>j.id===n),s=i?i.name:"Unknown Station",[o,l]=v.useState(null),[c,h]=v.useState(!0),[m,p]=v.useState(null),x=v.useCallback(async(j=!1)=>{if(h(!0),p(null),!i){p(`Tide Data Unavailable: Station ID ${n} not found.`),h(!1);return}const N=`noaa_tides_v2_${n}`;if(!j){const _=localStorage.getItem(N);if(_)try{const S=JSON.parse(_);if(Date.now()-S.timestamp<Goe){l(S.data),h(!1);return}}catch(S){console.error("Cache parsing error:",S)}}try{const _=new Date,S=Pu(_,"yyyyMMdd"),A=Pu(zse(_,5),"yyyyMMdd"),P=`https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=predictions&application=oregoncoastal.com&begin_date=${S}&end_date=${A}&datum=MLLW&station=${n}&time_zone=lst_ldt&units=english&interval=hilo&format=json`,I=await fetch(P);if(!I.ok)throw new Error(`NOAA API Error: ${I.status} ${I.statusText}`);const O=await I.json();if(O.error)throw new Error(O.error.message||"Failed to fetch tide data");if(!O.predictions||!Array.isArray(O.predictions))throw new Error("Invalid data format received from NOAA");const M=O.predictions.reduce(($,K)=>{const{dateObj:X,timeStr:te,datePart:q}=Koe(K.t);return $[q]||($[q]={dateObj:X,dateStr:Pu(X,"EEEE, MMMM d"),predictions:[]}),$[q].predictions.push({...K,timeStr:te,val:parseFloat(K.v).toFixed(2)}),$},{}),z=Object.values(M).sort(($,K)=>$.dateObj-K.dateObj);localStorage.setItem(N,JSON.stringify({timestamp:Date.now(),data:z})),l(z)}catch(_){console.error(_),p(_.message||"Failed to load tide predictions.")}finally{h(!1)}},[n,i]);v.useEffect(()=>{x()},[x]);const b=j=>{a(j.target.value)};return m&&!o?r.jsxs("div",{className:"bg-white p-6 rounded-3xl shadow-sm border border-red-100 h-full flex flex-col justify-center items-center text-center",children:[r.jsxs(gh,{variant:"destructive",className:"border-none bg-red-50 text-red-800 mb-4",children:[r.jsx(Qe,{className:"h-5 w-5"}),r.jsx(xh,{children:"Tide Data Unavailable"}),r.jsx(yh,{children:m})]}),r.jsxs(pn,{onClick:()=>x(!0),variant:"outline",size:"sm",className:"mt-2 text-red-700 border-red-200 hover:bg-red-50",children:[r.jsx(Sm,{className:"w-4 h-4 mr-2"})," Try Again"]})]}):r.jsxs("div",{className:"bg-white p-4 sm:p-6 rounded-3xl shadow-sm border border-slate-200 h-full flex flex-col relative w-full",children:[c&&r.jsx("div",{className:"absolute top-0 left-0 right-0 h-1 bg-blue-100 overflow-hidden rounded-t-3xl",children:r.jsx("div",{className:"h-full bg-blue-500 animate-pulse w-1/3 rounded"})}),r.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between mb-6 gap-4 border-b border-slate-100 pb-4",children:[r.jsxs("h3",{className:"text-xl font-bold flex items-center gap-2 text-slate-900",children:[r.jsx(ky,{className:"text-blue-500 w-6 h-6"}),"Tide Predictions"]}),r.jsx("select",{value:n,onChange:b,disabled:c,className:"bg-slate-50 border border-slate-200 text-slate-700 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full sm:w-auto p-2.5 outline-none transition-colors max-w-[280px] sm:max-w-none truncate","aria-label":"Select Tide Station",children:t.map(j=>r.jsx("option",{value:j.id,children:j.name},j.id))})]}),r.jsx("div",{className:"flex-grow overflow-y-auto max-h-[500px] pr-2 custom-scrollbar space-y-6",children:c&&!o?r.jsxs("div",{className:"space-y-4",children:[r.jsx(Xi,{className:"h-8 w-48 mb-2"}),r.jsx(Xi,{className:"h-16 w-full rounded-xl"}),r.jsx(Xi,{className:"h-16 w-full rounded-xl"}),r.jsx(Xi,{className:"h-8 w-48 mt-6 mb-2"}),r.jsx(Xi,{className:"h-16 w-full rounded-xl"})]}):o?.map((j,N)=>r.jsxs("div",{className:"space-y-3",children:[r.jsx("h4",{className:"font-semibold text-slate-800 sticky top-0 bg-white/95 backdrop-blur py-1 z-10",children:j.dateStr}),r.jsx("div",{className:"space-y-2",children:j.predictions.map((_,S)=>{const A=_.type==="H";return r.jsxs("div",{className:`flex justify-between items-center p-3 sm:p-4 rounded-xl transition-colors ${A?"bg-blue-50/70 border border-blue-100":"bg-emerald-50/50 border border-emerald-100"}`,children:[r.jsxs("div",{className:"flex items-center gap-3 w-1/3",children:[r.jsx("div",{className:`p-1.5 sm:p-2 rounded-full hidden sm:flex ${A?"bg-blue-100 text-blue-600":"bg-emerald-100 text-emerald-600"}`,children:A?r.jsx(wq,{className:"w-4 h-4 sm:w-5 sm:h-5"}):r.jsx(bq,{className:"w-4 h-4 sm:w-5 sm:h-5"})}),r.jsx("span",{className:"font-bold text-slate-800 text-sm sm:text-base",children:_.timeStr})]}),r.jsx("div",{className:"flex-1 text-center",children:r.jsx("span",{className:`inline-flex items-center text-xs sm:text-sm font-bold uppercase tracking-wider ${A?"text-blue-700":"text-emerald-700"}`,children:A?"High Tide":"Low Tide"})}),r.jsx("div",{className:"w-1/3 flex flex-col items-end justify-center text-right",children:r.jsxs("span",{className:`font-mono font-bold text-sm sm:text-base ${A?"text-blue-800":"text-emerald-800"}`,children:[_.val," ft"]})})]},S)})})]},N))}),r.jsxs("div",{className:"flex flex-col gap-3 text-xs text-slate-400 mt-4 pt-4 border-t border-slate-100",children:[r.jsxs("div",{className:"flex justify-between items-center",children:[r.jsx("span",{children:"Data: NOAA Tides & Currents — Datum: MLLW"}),r.jsxs(pn,{variant:"ghost",size:"sm",onClick:()=>x(!0),disabled:c,className:"h-8 text-slate-500 hover:text-blue-600 hover:bg-blue-50 px-2",children:[r.jsx(Sm,{className:`w-3.5 h-3.5 mr-1.5 ${c?"animate-spin":""}`}),"Refresh"]})]}),i&&r.jsxs("div",{className:"text-center font-medium text-slate-600 bg-slate-50 rounded-lg py-2 border border-slate-200",children:["Predictions for ",s]})]})]})},HE=()=>{const e=new Date,t=new Intl.DateTimeFormat("en-US",{timeZone:"America/Los_Angeles",year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(e);let n,a,i;for(const s of t)s.type==="year"&&(n=s.value),s.type==="month"&&(a=s.value),s.type==="day"&&(i=s.value);return`${n}-${a}-${i}`},Yoe=async(e,t)=>{const n=`https://marine-api.open-meteo.com/v1/marine?latitude=${e}&longitude=${t}&hourly=wave_height,wave_direction,wave_period&length_unit=imperial&timezone=America%2FLos_Angeles&days=2`,a=await fetch(n);if(!a.ok)throw new Error("Failed to fetch wave data");const i=await a.json();if(!i.hourly||!i.hourly.time)throw new Error("Invalid wave data structure");const s=new Date,o=[];for(let l=0;l<i.hourly.time.length;l++){const c=new Date(i.hourly.time[l]);c>=new Date(s.getTime()-3600*1e3)&&o.length<24&&o.push({time:c.toISOString(),height:i.hourly.wave_height[l],period:i.hourly.wave_period[l],direction:i.hourly.wave_direction[l]})}return{waveData:o,isMock:!1}};var Joe=["dangerouslySetInnerHTML","onCopy","onCopyCapture","onCut","onCutCapture","onPaste","onPasteCapture","onCompositionEnd","onCompositionEndCapture","onCompositionStart","onCompositionStartCapture","onCompositionUpdate","onCompositionUpdateCapture","onFocus","onFocusCapture","onBlur","onBlurCapture","onChange","onChangeCapture","onBeforeInput","onBeforeInputCapture","onInput","onInputCapture","onReset","onResetCapture","onSubmit","onSubmitCapture","onInvalid","onInvalidCapture","onLoad","onLoadCapture","onError","onErrorCapture","onKeyDown","onKeyDownCapture","onKeyPress","onKeyPressCapture","onKeyUp","onKeyUpCapture","onAbort","onAbortCapture","onCanPlay","onCanPlayCapture","onCanPlayThrough","onCanPlayThroughCapture","onDurationChange","onDurationChangeCapture","onEmptied","onEmptiedCapture","onEncrypted","onEncryptedCapture","onEnded","onEndedCapture","onLoadedData","onLoadedDataCapture","onLoadedMetadata","onLoadedMetadataCapture","onLoadStart","onLoadStartCapture","onPause","onPauseCapture","onPlay","onPlayCapture","onPlaying","onPlayingCapture","onProgress","onProgressCapture","onRateChange","onRateChangeCapture","onSeeked","onSeekedCapture","onSeeking","onSeekingCapture","onStalled","onStalledCapture","onSuspend","onSuspendCapture","onTimeUpdate","onTimeUpdateCapture","onVolumeChange","onVolumeChangeCapture","onWaiting","onWaitingCapture","onAuxClick","onAuxClickCapture","onClick","onClickCapture","onContextMenu","onContextMenuCapture","onDoubleClick","onDoubleClickCapture","onDrag","onDragCapture","onDragEnd","onDragEndCapture","onDragEnter","onDragEnterCapture","onDragExit","onDragExitCapture","onDragLeave","onDragLeaveCapture","onDragOver","onDragOverCapture","onDragStart","onDragStartCapture","onDrop","onDropCapture","onMouseDown","onMouseDownCapture","onMouseEnter","onMouseLeave","onMouseMove","onMouseMoveCapture","onMouseOut","onMouseOutCapture","onMouseOver","onMouseOverCapture","onMouseUp","onMouseUpCapture","onSelect","onSelectCapture","onTouchCancel","onTouchCancelCapture","onTouchEnd","onTouchEndCapture","onTouchMove","onTouchMoveCapture","onTouchStart","onTouchStartCapture","onPointerDown","onPointerDownCapture","onPointerMove","onPointerMoveCapture","onPointerUp","onPointerUpCapture","onPointerCancel","onPointerCancelCapture","onPointerEnter","onPointerEnterCapture","onPointerLeave","onPointerLeaveCapture","onPointerOver","onPointerOverCapture","onPointerOut","onPointerOutCapture","onGotPointerCapture","onGotPointerCaptureCapture","onLostPointerCapture","onLostPointerCaptureCapture","onScroll","onScrollCapture","onWheel","onWheelCapture","onAnimationStart","onAnimationStartCapture","onAnimationEnd","onAnimationEndCapture","onAnimationIteration","onAnimationIterationCapture","onTransitionEnd","onTransitionEndCapture"];function i_(e){if(typeof e!="string")return!1;var t=Joe;return t.includes(e)}var Xoe=["aria-activedescendant","aria-atomic","aria-autocomplete","aria-busy","aria-checked","aria-colcount","aria-colindex","aria-colspan","aria-controls","aria-current","aria-describedby","aria-details","aria-disabled","aria-errormessage","aria-expanded","aria-flowto","aria-haspopup","aria-hidden","aria-invalid","aria-keyshortcuts","aria-label","aria-labelledby","aria-level","aria-live","aria-modal","aria-multiline","aria-multiselectable","aria-orientation","aria-owns","aria-placeholder","aria-posinset","aria-pressed","aria-readonly","aria-relevant","aria-required","aria-roledescription","aria-rowcount","aria-rowindex","aria-rowspan","aria-selected","aria-setsize","aria-sort","aria-valuemax","aria-valuemin","aria-valuenow","aria-valuetext","className","color","height","id","lang","max","media","method","min","name","style","target","width","role","tabIndex","accentHeight","accumulate","additive","alignmentBaseline","allowReorder","alphabetic","amplitude","arabicForm","ascent","attributeName","attributeType","autoReverse","azimuth","baseFrequency","baselineShift","baseProfile","bbox","begin","bias","by","calcMode","capHeight","clip","clipPath","clipPathUnits","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","contentScriptType","contentStyleType","cursor","cx","cy","d","decelerate","descent","diffuseConstant","direction","display","divisor","dominantBaseline","dur","dx","dy","edgeMode","elevation","enableBackground","end","exponent","externalResourcesRequired","fill","fillOpacity","fillRule","filter","filterRes","filterUnits","floodColor","floodOpacity","focusable","fontFamily","fontSize","fontSizeAdjust","fontStretch","fontStyle","fontVariant","fontWeight","format","from","fx","fy","g1","g2","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","gradientTransform","gradientUnits","hanging","horizAdvX","horizOriginX","href","ideographic","imageRendering","in2","in","intercept","k1","k2","k3","k4","k","kernelMatrix","kernelUnitLength","kerning","keyPoints","keySplines","keyTimes","lengthAdjust","letterSpacing","lightingColor","limitingConeAngle","local","markerEnd","markerHeight","markerMid","markerStart","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mode","numOctaves","offset","opacity","operator","order","orient","orientation","origin","overflow","overlinePosition","overlineThickness","paintOrder","panose1","pathLength","patternContentUnits","patternTransform","patternUnits","pointerEvents","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","r","radius","refX","refY","renderingIntent","repeatCount","repeatDur","requiredExtensions","requiredFeatures","restart","result","rotate","rx","ry","seed","shapeRendering","slope","spacing","specularConstant","specularExponent","speed","spreadMethod","startOffset","stdDeviation","stemh","stemv","stitchTiles","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","string","stroke","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeWidth","surfaceScale","systemLanguage","tableValues","targetX","targetY","textAnchor","textDecoration","textLength","textRendering","to","transform","u1","u2","underlinePosition","underlineThickness","unicode","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","values","vectorEffect","version","vertAdvY","vertOriginX","vertOriginY","vHanging","vIdeographic","viewTarget","visibility","vMathematical","widths","wordSpacing","writingMode","x1","x2","x","xChannelSelector","xHeight","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlns","xmlnsXlink","xmlSpace","y1","y2","y","yChannelSelector","z","zoomAndPan","ref","key","angle"],Qoe=new Set(Xoe);function sB(e){return typeof e!="string"?!1:Qoe.has(e)}function oB(e){return typeof e=="string"&&e.startsWith("data-")}function ki(e){if(typeof e!="object"||e===null)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(sB(n)||oB(n))&&(t[n]=e[n]);return t}function i0(e){if(e==null)return null;if(v.isValidElement(e)&&typeof e.props=="object"&&e.props!==null){var t=e.props;return ki(t)}return typeof e=="object"&&!Array.isArray(e)?ki(e):null}function Za(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(sB(n)||oB(n)||i_(n))&&(t[n]=e[n]);return t}function ele(e){return e==null?null:v.isValidElement(e)?Za(e.props):typeof e=="object"&&!Array.isArray(e)?Za(e):null}var tle=["children","width","height","viewBox","className","style","title","desc"];function AN(){return AN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},AN.apply(null,arguments)}function nle(e,t){if(e==null)return{};var n,a,i=rle(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function rle(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var lB=v.forwardRef((e,t)=>{var n=e.children,a=e.width,i=e.height,s=e.viewBox,o=e.className,l=e.style,c=e.title,h=e.desc,m=nle(e,tle),p=s||{width:a,height:i,x:0,y:0},x=Ut("recharts-surface",o);return v.createElement("svg",AN({},Za(m),{className:x,width:a,height:i,style:l,viewBox:"".concat(p.x," ").concat(p.y," ").concat(p.width," ").concat(p.height),ref:t}),v.createElement("title",null,c),v.createElement("desc",null,h),n)}),ale=["children","className"];function PN(){return PN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},PN.apply(null,arguments)}function ile(e,t){if(e==null)return{};var n,a,i=sle(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function sle(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var Ya=v.forwardRef((e,t)=>{var n=e.children,a=e.className,i=ile(e,ale),s=Ut("recharts-layer",a);return v.createElement("g",PN({className:s},Za(i),{ref:t}),n)});function EN(e){return e==="__proto__"}const ole=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function cB(e){switch(typeof e){case"number":case"symbol":return!1;case"string":return e===""||e.startsWith(".")||e.endsWith(".")?!1:ole.test(e);default:return!1}}function s0(e){return typeof e=="string"||typeof e=="symbol"?e:Object.is(e?.valueOf?.(),-0)?"-0":String(e)}function s_(e){return typeof e=="symbol"||e instanceof Symbol}function lle(e){return e==null?"":dB(e)}function dB(e){if(typeof e=="string")return e;if(Array.isArray(e))return e.map(dB).join(",");if(s_(e))return e.toString();const t=e+"";return t==="0"&&Object.is(Number(e),-0)?"-0":t}function o_(e){if(Array.isArray(e))return e.map(s0);if(typeof e=="symbol")return[e];e=lle(e);const t=[],n=e.length;if(n===0)return t;let a=0,i="",s="",o=!1,l=!1;const c=/^-?\d+(?:\.\d+)?$/;for(e.charCodeAt(0)===46&&t.push("");a<n;){const h=e[a];if(s)h==="\\"&&a+1<n?(a++,i+=e[a]):h===s?s="":i+=h;else if(o)if(h==='"'||h==="'")s=h,l=!0;else if(h==="]"){if(o=!1,!l&&i.includes(".")&&!c.test(i)){const m=i.split(".");for(let p=0;p<m.length;p++)m[p]!==""&&t.push(m[p])}else t.push(i);i=""}else i+=h;else if(h==="[")o=!0,l=!1,i&&(t.push(i),i="");else if(h==="."){i&&(t.push(i),i="");const m=e[a+1];(m===void 0||m===".")&&t.push("")}else i+=h;a++}return i&&t.push(i),t}function Zc(e,t,n){if(e==null)return n;switch(typeof t){case"string":{if(EN(t))return n;const a=e[t];return a===void 0?cB(t)&&!Object.hasOwn(e,t)?Zc(e,o_(t),n):n:a}case"number":case"symbol":{typeof t=="number"&&(t=s0(t));const a=e[t];return a===void 0?n:a}default:{if(Array.isArray(t))return cle(e,t,n);if(Object.is(t?.valueOf(),-0)?t="-0":t=String(t),EN(t))return n;const a=e[t];return a===void 0?n:a}}}function cle(e,t,n){if(t.length===0)return n;let a=e;for(let i=0;i<t.length;i++){if(a==null||EN(t[i]))return n;a=a[t[i]]}return a===void 0?n:a}var dle=4;function fl(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:dle,n=10**t,a=Math.round(e*n)/n;return Object.is(a,-0)?0:a}function ar(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];return e.reduce((i,s,o)=>{var l=n[o-1];return typeof l=="string"?i+l+s:l!==void 0?i+fl(l)+s:i+s},"")}var Wa=e=>e===0?0:e>0?1:-1,ls=e=>typeof e=="number"&&e!=+e,Lc=e=>typeof e=="string"&&e.length>1&&e.indexOf("%")===e.length-1,Ie=e=>(typeof e=="number"||e instanceof Number)&&!ls(e),cs=e=>Ie(e)||typeof e=="string",ule=0,$m=e=>{var t=++ule;return"".concat(e||"").concat(t)},Nl=function(t,n){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(!Ie(t)&&typeof t!="string")return a;var s;if(Lc(t)){if(n==null)return a;var o=t.indexOf("%");s=n*parseFloat(t.slice(0,o))/100}else s=+t;return ls(s)&&(s=a),i&&n!=null&&s>n&&(s=n),s},uB=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},a=0;a<t;a++)if(!n[String(e[a])])n[String(e[a])]=!0;else return!0;return!1};function Gs(e,t,n){return Ie(e)&&Ie(t)?fl(e+n*(t-e)):t}function hB(e,t,n){if(!(!e||!e.length))return e.find(a=>a&&(typeof t=="function"?t(a):Zc(a,t))===n)}var lr=e=>e===null||typeof e>"u",l_=e=>lr(e)?e:"".concat(e.charAt(0).toUpperCase()).concat(e.slice(1));function Lr(e){return e!=null}function vh(){}function c_(e){if(e)return{x:e.x,y:e.y,upperWidth:"upperWidth"in e?e.upperWidth:e.width,lowerWidth:"lowerWidth"in e?e.lowerWidth:e.width,width:e.width,height:e.height}}function WE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function qi(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?WE(Object(n),!0).forEach(function(a){hle(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):WE(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function hle(e,t,n){return(t=fle(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function fle(e){var t=mle(e,"string");return typeof t=="symbol"?t:t+""}function mle(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var ple=e=>{var t=e.viewBox,n=e.position,a=e.offset,i=a===void 0?0:a,s=e.parentViewBox,o=c_(t),l=o.x,c=o.y,h=o.height,m=o.upperWidth,p=o.lowerWidth,x=l,b=l+(m-p)/2,j=(x+b)/2,N=(m+p)/2,_=x+m/2,S=h>=0?1:-1,A=S*i,P=S>0?"end":"start",I=S>0?"start":"end",O=m>=0?1:-1,M=O*i,z=O>0?"end":"start",$=O>0?"start":"end",K=s;if(n==="top"){var X={x:x+m/2,y:c-A,horizontalAnchor:"middle",verticalAnchor:P};return K&&(X.height=Math.max(c-K.y,0),X.width=m),X}if(n==="bottom"){var te={x:b+p/2,y:c+h+A,horizontalAnchor:"middle",verticalAnchor:I};return K&&(te.height=Math.max(K.y+K.height-(c+h),0),te.width=p),te}if(n==="left"){var q={x:j-M,y:c+h/2,horizontalAnchor:z,verticalAnchor:"middle"};return K&&(q.width=Math.max(q.x-K.x,0),q.height=h),q}if(n==="right"){var he={x:j+N+M,y:c+h/2,horizontalAnchor:$,verticalAnchor:"middle"};return K&&(he.width=Math.max(K.x+K.width-he.x,0),he.height=h),he}var ne=K?{width:N,height:h}:{};return n==="insideLeft"?qi({x:j+M,y:c+h/2,horizontalAnchor:$,verticalAnchor:"middle"},ne):n==="insideRight"?qi({x:j+N-M,y:c+h/2,horizontalAnchor:z,verticalAnchor:"middle"},ne):n==="insideTop"?qi({x:x+m/2,y:c+A,horizontalAnchor:"middle",verticalAnchor:I},ne):n==="insideBottom"?qi({x:b+p/2,y:c+h-A,horizontalAnchor:"middle",verticalAnchor:P},ne):n==="insideTopLeft"?qi({x:x+M,y:c+A,horizontalAnchor:$,verticalAnchor:I},ne):n==="insideTopRight"?qi({x:x+m-M,y:c+A,horizontalAnchor:z,verticalAnchor:I},ne):n==="insideBottomLeft"?qi({x:b+M,y:c+h-A,horizontalAnchor:$,verticalAnchor:P},ne):n==="insideBottomRight"?qi({x:b+p-M,y:c+h-A,horizontalAnchor:z,verticalAnchor:P},ne):n&&typeof n=="object"&&(Ie(n.x)||Lc(n.x))&&(Ie(n.y)||Lc(n.y))?qi({x:l+Nl(n.x,N),y:c+Nl(n.y,h),horizontalAnchor:"end",verticalAnchor:"end"},ne):qi({x:_,y:c+h/2,horizontalAnchor:"middle",verticalAnchor:"middle"},ne)},gle=["top","left","right","bottom"];function xle(e){return e==null?!1:typeof e=="object"?!0:gle.includes(e)}var yle=v.createContext(null);function vn(e){return function(){return e}}const ON=Math.PI,RN=2*ON,pc=1e-6,vle=RN-pc;function fB(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function ble(e){let t=Math.floor(e);if(!(t>=0))throw new Error(`invalid digits: ${e}`);if(t>15)return fB;const n=10**t;return function(a){this._+=a[0];for(let i=1,s=a.length;i<s;++i)this._+=Math.round(arguments[i]*n)/n+a[i]}}class wle{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=t==null?fB:ble(t)}moveTo(t,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,n){this._append`L${this._x1=+t},${this._y1=+n}`}quadraticCurveTo(t,n,a,i){this._append`Q${+t},${+n},${this._x1=+a},${this._y1=+i}`}bezierCurveTo(t,n,a,i,s,o){this._append`C${+t},${+n},${+a},${+i},${this._x1=+s},${this._y1=+o}`}arcTo(t,n,a,i,s){if(t=+t,n=+n,a=+a,i=+i,s=+s,s<0)throw new Error(`negative radius: ${s}`);let o=this._x1,l=this._y1,c=a-t,h=i-n,m=o-t,p=l-n,x=m*m+p*p;if(this._x1===null)this._append`M${this._x1=t},${this._y1=n}`;else if(x>pc)if(!(Math.abs(p*c-h*m)>pc)||!s)this._append`L${this._x1=t},${this._y1=n}`;else{let b=a-o,j=i-l,N=c*c+h*h,_=b*b+j*j,S=Math.sqrt(N),A=Math.sqrt(x),P=s*Math.tan((ON-Math.acos((N+x-_)/(2*S*A)))/2),I=P/A,O=P/S;Math.abs(I-1)>pc&&this._append`L${t+I*m},${n+I*p}`,this._append`A${s},${s},0,0,${+(p*b>m*j)},${this._x1=t+O*c},${this._y1=n+O*h}`}}arc(t,n,a,i,s,o){if(t=+t,n=+n,a=+a,o=!!o,a<0)throw new Error(`negative radius: ${a}`);let l=a*Math.cos(i),c=a*Math.sin(i),h=t+l,m=n+c,p=1^o,x=o?i-s:s-i;this._x1===null?this._append`M${h},${m}`:(Math.abs(this._x1-h)>pc||Math.abs(this._y1-m)>pc)&&this._append`L${h},${m}`,a&&(x<0&&(x=x%RN+RN),x>vle?this._append`A${a},${a},0,1,${p},${t-l},${n-c}A${a},${a},0,1,${p},${this._x1=h},${this._y1=m}`:x>pc&&this._append`A${a},${a},0,${+(x>=ON)},${p},${this._x1=t+a*Math.cos(s)},${this._y1=n+a*Math.sin(s)}`)}rect(t,n,a,i){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${a=+a}v${+i}h${-a}Z`}toString(){return this._}}function mB(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{const a=Math.floor(n);if(!(a>=0))throw new RangeError(`invalid digits: ${n}`);t=a}return e},()=>new wle(t)}function d_(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function pB(e){this._context=e}pB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:this._context.lineTo(e,t);break}}};function o0(e){return new pB(e)}function gB(e){return e[0]}function xB(e){return e[1]}function yB(e,t){var n=vn(!0),a=null,i=o0,s=null,o=mB(l);e=typeof e=="function"?e:e===void 0?gB:vn(e),t=typeof t=="function"?t:t===void 0?xB:vn(t);function l(c){var h,m=(c=d_(c)).length,p,x=!1,b;for(a==null&&(s=i(b=o())),h=0;h<=m;++h)!(h<m&&n(p=c[h],h,c))===x&&((x=!x)?s.lineStart():s.lineEnd()),x&&s.point(+e(p,h,c),+t(p,h,c));if(b)return s=null,b+""||null}return l.x=function(c){return arguments.length?(e=typeof c=="function"?c:vn(+c),l):e},l.y=function(c){return arguments.length?(t=typeof c=="function"?c:vn(+c),l):t},l.defined=function(c){return arguments.length?(n=typeof c=="function"?c:vn(!!c),l):n},l.curve=function(c){return arguments.length?(i=c,a!=null&&(s=i(a)),l):i},l.context=function(c){return arguments.length?(c==null?a=s=null:s=i(a=c),l):a},l}function Rx(e,t,n){var a=null,i=vn(!0),s=null,o=o0,l=null,c=mB(h);e=typeof e=="function"?e:e===void 0?gB:vn(+e),t=typeof t=="function"?t:vn(t===void 0?0:+t),n=typeof n=="function"?n:n===void 0?xB:vn(+n);function h(p){var x,b,j,N=(p=d_(p)).length,_,S=!1,A,P=new Array(N),I=new Array(N);for(s==null&&(l=o(A=c())),x=0;x<=N;++x){if(!(x<N&&i(_=p[x],x,p))===S)if(S=!S)b=x,l.areaStart(),l.lineStart();else{for(l.lineEnd(),l.lineStart(),j=x-1;j>=b;--j)l.point(P[j],I[j]);l.lineEnd(),l.areaEnd()}S&&(P[x]=+e(_,x,p),I[x]=+t(_,x,p),l.point(a?+a(_,x,p):P[x],n?+n(_,x,p):I[x]))}if(A)return l=null,A+""||null}function m(){return yB().defined(i).curve(o).context(s)}return h.x=function(p){return arguments.length?(e=typeof p=="function"?p:vn(+p),a=null,h):e},h.x0=function(p){return arguments.length?(e=typeof p=="function"?p:vn(+p),h):e},h.x1=function(p){return arguments.length?(a=p==null?null:typeof p=="function"?p:vn(+p),h):a},h.y=function(p){return arguments.length?(t=typeof p=="function"?p:vn(+p),n=null,h):t},h.y0=function(p){return arguments.length?(t=typeof p=="function"?p:vn(+p),h):t},h.y1=function(p){return arguments.length?(n=p==null?null:typeof p=="function"?p:vn(+p),h):n},h.lineX0=h.lineY0=function(){return m().x(e).y(t)},h.lineY1=function(){return m().x(e).y(n)},h.lineX1=function(){return m().x(a).y(t)},h.defined=function(p){return arguments.length?(i=typeof p=="function"?p:vn(!!p),h):i},h.curve=function(p){return arguments.length?(o=p,s!=null&&(l=o(s)),h):o},h.context=function(p){return arguments.length?(p==null?s=l=null:l=o(s=p),h):s},h}class vB{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:{this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break}case 1:this._point=2;default:{this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n);break}}this._x0=t,this._y0=n}}function jle(e){return new vB(e,!0)}function Nle(e){return new vB(e,!1)}function zy(){}function $y(e,t,n){e._context.bezierCurveTo((2*e._x0+e._x1)/3,(2*e._y0+e._y1)/3,(e._x0+2*e._x1)/3,(e._y0+2*e._y1)/3,(e._x0+4*e._x1+t)/6,(e._y0+4*e._y1+n)/6)}function bB(e){this._context=e}bB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:$y(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:$y(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function kle(e){return new bB(e)}function wB(e){this._context=e}wB.prototype={areaStart:zy,areaEnd:zy,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._x2=e,this._y2=t;break;case 1:this._point=2,this._x3=e,this._y3=t;break;case 2:this._point=3,this._x4=e,this._y4=t,this._context.moveTo((this._x0+4*this._x1+e)/6,(this._y0+4*this._y1+t)/6);break;default:$y(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function _le(e){return new wB(e)}function jB(e){this._context=e}jB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var n=(this._x0+4*this._x1+e)/6,a=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,a):this._context.moveTo(n,a);break;case 3:this._point=4;default:$y(this,e,t);break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function Sle(e){return new jB(e)}function NB(e){this._context=e}NB.prototype={areaStart:zy,areaEnd:zy,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(e,t){e=+e,t=+t,this._point?this._context.lineTo(e,t):(this._point=1,this._context.moveTo(e,t))}};function Cle(e){return new NB(e)}function VE(e){return e<0?-1:1}function UE(e,t,n){var a=e._x1-e._x0,i=t-e._x1,s=(e._y1-e._y0)/(a||i<0&&-0),o=(n-e._y1)/(i||a<0&&-0),l=(s*i+o*a)/(a+i);return(VE(s)+VE(o))*Math.min(Math.abs(s),Math.abs(o),.5*Math.abs(l))||0}function qE(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function m1(e,t,n){var a=e._x0,i=e._y0,s=e._x1,o=e._y1,l=(s-a)/3;e._context.bezierCurveTo(a+l,i+l*t,s-l,o-l*n,s,o)}function Hy(e){this._context=e}Hy.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:m1(this,this._t0,qE(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(e,t){var n=NaN;if(e=+e,t=+t,!(e===this._x1&&t===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;break;case 2:this._point=3,m1(this,qE(this,n=UE(this,e,t)),n);break;default:m1(this,this._t0,n=UE(this,e,t));break}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function kB(e){this._context=new _B(e)}(kB.prototype=Object.create(Hy.prototype)).point=function(e,t){Hy.prototype.point.call(this,t,e)};function _B(e){this._context=e}_B.prototype={moveTo:function(e,t){this._context.moveTo(t,e)},closePath:function(){this._context.closePath()},lineTo:function(e,t){this._context.lineTo(t,e)},bezierCurveTo:function(e,t,n,a,i,s){this._context.bezierCurveTo(t,e,a,n,s,i)}};function Tle(e){return new Hy(e)}function Ale(e){return new kB(e)}function SB(e){this._context=e}SB.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var e=this._x,t=this._y,n=e.length;if(n)if(this._line?this._context.lineTo(e[0],t[0]):this._context.moveTo(e[0],t[0]),n===2)this._context.lineTo(e[1],t[1]);else for(var a=GE(e),i=GE(t),s=0,o=1;o<n;++s,++o)this._context.bezierCurveTo(a[0][s],i[0][s],a[1][s],i[1][s],e[o],t[o]);(this._line||this._line!==0&&n===1)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(e,t){this._x.push(+e),this._y.push(+t)}};function GE(e){var t,n=e.length-1,a,i=new Array(n),s=new Array(n),o=new Array(n);for(i[0]=0,s[0]=2,o[0]=e[0]+2*e[1],t=1;t<n-1;++t)i[t]=1,s[t]=4,o[t]=4*e[t]+2*e[t+1];for(i[n-1]=2,s[n-1]=7,o[n-1]=8*e[n-1]+e[n],t=1;t<n;++t)a=i[t]/s[t-1],s[t]-=a,o[t]-=a*o[t-1];for(i[n-1]=o[n-1]/s[n-1],t=n-2;t>=0;--t)i[t]=(o[t]-i[t+1])/s[t];for(s[n-1]=(e[n]+i[n-1])/2,t=0;t<n-1;++t)s[t]=2*e[t+1]-i[t+1];return[i,s]}function Ple(e){return new SB(e)}function l0(e,t){this._context=e,this._t=t}l0.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&this._point===2&&this._context.lineTo(this._x,this._y),(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(e,t){switch(e=+e,t=+t,this._point){case 0:this._point=1,this._line?this._context.lineTo(e,t):this._context.moveTo(e,t);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,t),this._context.lineTo(e,t);else{var n=this._x*(1-this._t)+e*this._t;this._context.lineTo(n,this._y),this._context.lineTo(n,t)}break}}this._x=e,this._y=t}};function Ele(e){return new l0(e,.5)}function Ole(e){return new l0(e,0)}function Rle(e){return new l0(e,1)}function Dc(e,t){if((o=e.length)>1)for(var n=1,a,i,s=e[t[0]],o,l=s.length;n<o;++n)for(i=s,s=e[t[n]],a=0;a<l;++a)s[a][1]+=s[a][0]=isNaN(i[a][1])?i[a][0]:i[a][1]}function IN(e){for(var t=e.length,n=new Array(t);--t>=0;)n[t]=t;return n}function Ile(e,t){return e[t]}function Mle(e){const t=[];return t.key=e,t}function Lle(){var e=vn([]),t=IN,n=Dc,a=Ile;function i(s){var o=Array.from(e.apply(this,arguments),Mle),l,c=o.length,h=-1,m;for(const p of s)for(l=0,++h;l<c;++l)(o[l][h]=[0,+a(p,o[l].key,h,s)]).data=p;for(l=0,m=d_(t(o));l<c;++l)o[m[l]].index=l;return n(o,m),o}return i.keys=function(s){return arguments.length?(e=typeof s=="function"?s:vn(Array.from(s)),i):e},i.value=function(s){return arguments.length?(a=typeof s=="function"?s:vn(+s),i):a},i.order=function(s){return arguments.length?(t=s==null?IN:typeof s=="function"?s:vn(Array.from(s)),i):t},i.offset=function(s){return arguments.length?(n=s??Dc,i):n},i}function Dle(e,t){if((a=e.length)>0){for(var n,a,i=0,s=e[0].length,o;i<s;++i){for(o=n=0;n<a;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<a;++n)e[n][i][1]/=o}Dc(e,t)}}function Ble(e,t){if((i=e.length)>0){for(var n=0,a=e[t[0]],i,s=a.length;n<s;++n){for(var o=0,l=0;o<i;++o)l+=e[o][n][1]||0;a[n][1]+=a[n][0]=-l/2}Dc(e,t)}}function Fle(e,t){if(!(!((o=e.length)>0)||!((s=(i=e[t[0]]).length)>0))){for(var n=0,a=1,i,s,o;a<s;++a){for(var l=0,c=0,h=0;l<o;++l){for(var m=e[t[l]],p=m[a][1]||0,x=m[a-1][1]||0,b=(p-x)/2,j=0;j<l;++j){var N=e[t[j]],_=N[a][1]||0,S=N[a-1][1]||0;b+=_-S}c+=p,h+=b*p}i[a-1][1]+=i[a-1][0]=n,c&&(n-=h/c)}i[a-1][1]+=i[a-1][0]=n,Dc(e,t)}}var CB=e=>"radius"in e&&"startAngle"in e&&"endAngle"in e,u_=(e,t)=>{if(!e||typeof e=="function"||typeof e=="boolean")return null;var n=e;if(v.isValidElement(e)&&(n=e.props),typeof n!="object"&&typeof n!="function")return null;var a={};return Object.keys(n).forEach(i=>{i_(i)&&typeof n[i]=="function"&&(a[i]=(s=>n[i](n,s)))}),a},zle=(e,t,n)=>a=>(e(t,n,a),null),$le=(e,t,n)=>{if(e===null||typeof e!="object"&&typeof e!="function")return null;var a=null;return Object.keys(e).forEach(i=>{var s=e[i];i_(i)&&typeof s=="function"&&(a||(a={}),a[i]=zle(s,t,n))}),a};function KE(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function Hle(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?KE(Object(n),!0).forEach(function(a){Wle(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):KE(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Wle(e,t,n){return(t=Vle(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Vle(e){var t=Ule(e,"string");return typeof t=="symbol"?t:t+""}function Ule(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function ti(e,t){var n=Hle({},e),a=t,i=Object.keys(t),s=i.reduce((o,l)=>(o[l]===void 0&&a[l]!==void 0&&(o[l]=a[l]),o),n);return s}function qle(e,t){const n=new Map;for(let a=0;a<e.length;a++){const i=e[a],s=t(i,a,e);n.has(s)||n.set(s,i)}return Array.from(n.values())}function Gle(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}function TB(e){return e}function Kle(e){return Number.isSafeInteger(e)&&e>=0}function h_(e){return e!=null&&typeof e!="function"&&Kle(e.length)}function Zle(e){return function(t){return Zc(t,e)}}function AB(e){return e==null||typeof e!="object"&&typeof e!="function"}function Yle(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function MN(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function qu(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const PB="[object RegExp]",f_="[object String]",m_="[object Number]",p_="[object Boolean]",EB="[object Arguments]",OB="[object Symbol]",RB="[object Date]",IB="[object Map]",MB="[object Set]",LB="[object Array]",Jle="[object Function]",DB="[object ArrayBuffer]",xy="[object Object]",Xle="[object Error]",BB="[object DataView]",FB="[object Uint8Array]",zB="[object Uint8ClampedArray]",$B="[object Uint16Array]",HB="[object Uint32Array]",Qle="[object BigUint64Array]",WB="[object Int8Array]",VB="[object Int16Array]",UB="[object Int32Array]",ece="[object BigInt64Array]",qB="[object Float32Array]",GB="[object Float64Array]",ZE=typeof globalThis=="object"&&globalThis||typeof window=="object"&&window||typeof self=="object"&&self||typeof global=="object"&&global||(function(){return this})();function LN(e){return typeof ZE.Buffer<"u"&&ZE.Buffer.isBuffer(e)}function tce(e,t){return Nc(e,void 0,e,new Map,t)}function Nc(e,t,n,a=new Map,i=void 0){const s=i?.(e,t,n,a);if(s!==void 0)return s;if(AB(e))return e;if(a.has(e))return a.get(e);if(Array.isArray(e)){const o=new Array(e.length);a.set(e,o);for(let l=0;l<e.length;l++)o[l]=Nc(e[l],l,n,a,i);return Object.hasOwn(e,"index")&&(o.index=e.index),Object.hasOwn(e,"input")&&(o.input=e.input),o}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){const o=new RegExp(e.source,e.flags);return o.lastIndex=e.lastIndex,o}if(e instanceof Map){const o=new Map;a.set(e,o);for(const[l,c]of e)o.set(l,Nc(c,l,n,a,i));return o}if(e instanceof Set){const o=new Set;a.set(e,o);for(const l of e)o.add(Nc(l,void 0,n,a,i));return o}if(LN(e))return e.subarray();if(Yle(e)){const o=new(Object.getPrototypeOf(e)).constructor(e.length);a.set(e,o);for(let l=0;l<e.length;l++)o[l]=Nc(e[l],l,n,a,i);return o}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<"u"&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){const o=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return a.set(e,o),yi(o,e,n,a,i),o}if(typeof File<"u"&&e instanceof File){const o=new File([e],e.name,{type:e.type});return a.set(e,o),yi(o,e,n,a,i),o}if(typeof Blob<"u"&&e instanceof Blob){const o=new Blob([e],{type:e.type});return a.set(e,o),yi(o,e,n,a,i),o}if(e instanceof Error){const o=structuredClone(e);return a.set(e,o),o.message=e.message,o.name=e.name,o.stack=e.stack,o.cause=e.cause,o.constructor=e.constructor,yi(o,e,n,a,i),o}if(e instanceof Boolean){const o=new Boolean(e.valueOf());return a.set(e,o),yi(o,e,n,a,i),o}if(e instanceof Number){const o=new Number(e.valueOf());return a.set(e,o),yi(o,e,n,a,i),o}if(e instanceof String){const o=new String(e.valueOf());return a.set(e,o),yi(o,e,n,a,i),o}if(typeof e=="object"&&nce(e)){const o=Object.create(Object.getPrototypeOf(e));return a.set(e,o),yi(o,e,n,a,i),o}return e}function yi(e,t,n=e,a,i){const s=[...Object.keys(t),...MN(t)];for(let o=0;o<s.length;o++){const l=s[o],c=Object.getOwnPropertyDescriptor(e,l);(c==null||c.writable)&&(e[l]=Nc(t[l],l,n,a,i))}}function nce(e){switch(qu(e)){case EB:case LB:case DB:case BB:case p_:case RB:case qB:case GB:case WB:case VB:case UB:case IB:case m_:case xy:case PB:case MB:case f_:case OB:case FB:case zB:case $B:case HB:return!0;default:return!1}}function rce(e){return Nc(e,void 0,e,new Map,void 0)}function vm(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function KB(e){return e!==null&&(typeof e=="object"||typeof e=="function")}function ZB(e,t,n){return typeof n!="function"?ZB(e,t,()=>{}):DN(e,t,function a(i,s,o,l,c,h){const m=n(i,s,o,l,c,h);return m!==void 0?!!m:DN(i,s,a,h,!1)},new Map,!0)}function DN(e,t,n,a,i=!1){if(t===e)return!0;switch(typeof t){case"object":return ace(e,t,n,a,i);case"function":return Object.keys(t).length>0?DN(e,{...t},n,a,i):vm(e,t);default:return KB(e)&&i?typeof t=="string"?t==="":!0:vm(e,t)}}function ace(e,t,n,a,i=!1){if(t==null)return!0;if(Array.isArray(t))return YB(e,t,n,a);if(t instanceof Map)return ice(e,t,n,a);if(t instanceof Set)return sce(e,t,n,a);const s=Object.keys(t);if(e==null)return i&&s.length===0;if(i)AB(e)&&(e=Object(e));else{const o=qu(e);if(o!=="[object Object]"&&o!=="[object Arguments]")return!1}if(s.length===0)return!0;if(a?.has(t))return a.get(t)===e;a?.set(t,e);try{for(let o=0;o<s.length;o++){const l=s[o];if(!(l in e)||t[l]===void 0&&e[l]!==void 0||t[l]===null&&e[l]!==null||!n(e[l],t[l],l,e,t,a))return!1}return!0}finally{a?.delete(t)}}function ice(e,t,n,a){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(const[i,s]of t.entries())if(n(e.get(i),s,i,e,t,a)===!1)return!1;return!0}function YB(e,t,n,a){if(t.length===0)return!0;if(!Array.isArray(e))return!1;const i=new Set;for(let s=0;s<t.length;s++){const o=t[s];let l=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;const h=e[c];let m=!1;if(n(h,o,s,e,t,a)&&(m=!0),m){i.add(c),l=!0;break}}if(!l)return!1}return!0}function sce(e,t,n,a){return t.size===0?!0:e instanceof Set?YB([...e],[...t],n,a):!1}function JB(e,t){return ZB(e,t,()=>{})}function oce(e){return e=rce(e),t=>JB(t,e)}function lce(e,t){return tce(e,(n,a,i,s)=>{if(typeof e=="object"){if(qu(e)==="[object Object]"&&typeof e.constructor!="function"){const o={};return s.set(e,o),yi(o,e,i,s),o}switch(Object.prototype.toString.call(e)){case m_:case f_:case p_:{const o=new e.constructor(e?.valueOf());return yi(o,e),o}case EB:{const o={};return yi(o,e),o.length=e.length,o[Symbol.iterator]=e[Symbol.iterator],o}default:return}}})}function cce(e){return lce(e)}const dce=/^(?:0|[1-9]\d*)$/;function XB(e,t=Number.MAX_SAFE_INTEGER){switch(typeof e){case"number":return Number.isInteger(e)&&e>=0&&e<t;case"symbol":return!1;case"string":return dce.test(e)}}function uce(e){return e!==null&&typeof e=="object"&&qu(e)==="[object Arguments]"}function hce(e,t){let n;if(Array.isArray(t)?n=t:typeof t=="string"&&cB(t)&&!(t in Object(e))?n=o_(t):n=[t],n.length===0)return!1;let a=e;for(let i=0;i<n.length;i++){const s=s0(n[i]);if((a==null||!Object.hasOwn(a,s))&&!((Array.isArray(a)||uce(a))&&XB(s)&&Number(s)<a.length))return!1;a=a[s]}return!0}function fce(e,t){switch(typeof e){case"object":Object.is(e?.valueOf(),-0)&&(e="-0");break;case"number":e=s0(e);break}return t=cce(t),function(n){const a=Zc(n,e);return a===void 0?hce(n,e):t===void 0?a===void 0:JB(a,t)}}function mce(e){if(e==null)return TB;switch(typeof e){case"function":return e;case"object":return Array.isArray(e)&&e.length===2?fce(e[0],e[1]):oce(e);default:return Zle(e)}}function pce(e){return e===0?0:e}function YE(e,t=TB){return h_(e)?qle(Array.from(e),Gle(mce(t),1)).map(pce):[]}function gce(e,t,n){return t===!0?YE(e,n):typeof t=="function"?YE(e,t):e}var p1={exports:{}},g1={},x1={exports:{}},y1={};var JE;function xce(){if(JE)return y1;JE=1;var e=Wc();function t(p,x){return p===x&&(p!==0||1/p===1/x)||p!==p&&x!==x}var n=typeof Object.is=="function"?Object.is:t,a=e.useState,i=e.useEffect,s=e.useLayoutEffect,o=e.useDebugValue;function l(p,x){var b=x(),j=a({inst:{value:b,getSnapshot:x}}),N=j[0].inst,_=j[1];return s(function(){N.value=b,N.getSnapshot=x,c(N)&&_({inst:N})},[p,b,x]),i(function(){return c(N)&&_({inst:N}),p(function(){c(N)&&_({inst:N})})},[p]),o(b),b}function c(p){var x=p.getSnapshot;p=p.value;try{var b=x();return!n(p,b)}catch{return!0}}function h(p,x){return x()}var m=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?h:l;return y1.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:m,y1}var XE;function yce(){return XE||(XE=1,x1.exports=xce()),x1.exports}var QE;function vce(){if(QE)return g1;QE=1;var e=Wc(),t=yce();function n(h,m){return h===m&&(h!==0||1/h===1/m)||h!==h&&m!==m}var a=typeof Object.is=="function"?Object.is:n,i=t.useSyncExternalStore,s=e.useRef,o=e.useEffect,l=e.useMemo,c=e.useDebugValue;return g1.useSyncExternalStoreWithSelector=function(h,m,p,x,b){var j=s(null);if(j.current===null){var N={hasValue:!1,value:null};j.current=N}else N=j.current;j=l(function(){function S(M){if(!A){if(A=!0,P=M,M=x(M),b!==void 0&&N.hasValue){var z=N.value;if(b(z,M))return I=z}return I=M}if(z=I,a(P,M))return z;var $=x(M);return b!==void 0&&b(z,$)?(P=M,z):(P=M,I=$)}var A=!1,P,I,O=p===void 0?null:p;return[function(){return S(m())},O===null?void 0:function(){return S(O())}]},[m,p,x,b]);var _=i(h,j[0],j[1]);return o(function(){N.hasValue=!0,N.value=_},[_]),c(_),_},g1}var e4;function bce(){return e4||(e4=1,p1.exports=vce()),p1.exports}var wce=bce(),g_=v.createContext(null),jce=e=>e,Cn=()=>{var e=v.useContext(g_);return e?e.store.dispatch:jce},yy=()=>{},Nce=()=>yy,kce=(e,t)=>e===t;function Ve(e){var t=v.useContext(g_),n=v.useMemo(()=>t?a=>{if(a!=null)return e(a)}:yy,[t,e]);return wce.useSyncExternalStoreWithSelector(t?t.subscription.addNestedSub:Nce,t?t.store.getState:yy,t?t.store.getState:yy,n,kce)}function _ce(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!="function")throw new TypeError(t)}function Sce(e,t="expected all items to be functions, instead received the following types: "){if(!e.every(n=>typeof n=="function")){const n=e.map(a=>typeof a=="function"?`function ${a.name||"unnamed"}()`:typeof a).join(", ");throw new TypeError(`${t}[${n}]`)}}var t4=e=>Array.isArray(e)?e:[e];function Cce(e){const t=Array.isArray(e[0])?e[0]:e;return Sce(t,"createSelector expects all input-selectors to be functions, but received the following types: "),t}function Tce(e,t){const n=[],{length:a}=e;for(let i=0;i<a;i++)n.push(e[i].apply(null,t));return n}var Ace=class{constructor(e){this.value=e}deref(){return this.value}},Pce=()=>typeof WeakRef>"u"?Ace:WeakRef,QB=Pce(),Ece=0,n4=1;function Ix(){return{s:Ece,v:void 0,o:null,p:null}}function Oce(e){return e instanceof QB?e.deref():e}function e9(e,t={}){let n=Ix();const{resultEqualityCheck:a}=t;let i,s=0;function o(){let l=n;const{length:c}=arguments;for(let p=0,x=c;p<x;p++){const b=arguments[p];if(typeof b=="function"||typeof b=="object"&&b!==null){let j=l.o;j===null&&(l.o=j=new WeakMap);const N=j.get(b);N===void 0?(l=Ix(),j.set(b,l)):l=N}else{let j=l.p;j===null&&(l.p=j=new Map);const N=j.get(b);N===void 0?(l=Ix(),j.set(b,l)):l=N}}const h=l;let m;if(l.s===n4)m=l.v;else if(m=e.apply(null,arguments),s++,a){const p=Oce(i);p!=null&&a(p,m)&&(m=p,s!==0&&s--),i=typeof m=="object"&&m!==null||typeof m=="function"?new QB(m):m}return h.s=n4,h.v=m,m}return o.clearCache=()=>{n=Ix(),o.resetResultsCount()},o.resultsCount=()=>s,o.resetResultsCount=()=>{s=0},o}function Rce(e,...t){const n=typeof e=="function"?{memoize:e,memoizeOptions:t}:e,a=(...i)=>{let s=0,o=0,l,c={},h=i.pop();typeof h=="object"&&(c=h,h=i.pop()),_ce(h,`createSelector expects an output function after the inputs, but received: [${typeof h}]`);const m={...n,...c},{memoize:p,memoizeOptions:x=[],argsMemoize:b=e9,argsMemoizeOptions:j=[]}=m,N=t4(x),_=t4(j),S=Cce(i),A=p(function(){return s++,h.apply(null,arguments)},...N),P=b(function(){o++;const O=Tce(S,arguments);return l=A.apply(null,O),l},..._);return Object.assign(P,{resultFunc:h,memoizedResultFunc:A,dependencies:S,dependencyRecomputations:()=>o,resetDependencyRecomputations:()=>{o=0},lastResult:()=>l,recomputations:()=>s,resetRecomputations:()=>{s=0},memoize:p,argsMemoize:b})};return Object.assign(a,{withTypes:()=>a}),a}var le=Rce(e9);function Ice(e,t=1){const n=[],a=Math.floor(t),i=(s,o)=>{for(let l=0;l<s.length;l++){const c=s[l];Array.isArray(c)&&o<a?i(c,o+1):n.push(c)}};return i(e,0),n}function BN(e,t,n){return KB(n)&&(typeof t=="number"&&h_(n)&&XB(t)&&t<n.length||typeof t=="string"&&t in n)?vm(n[t],e):!1}function r4(e){return typeof e=="symbol"?1:e===null?2:e===void 0?3:e!==e?4:0}const Mce=(e,t,n)=>{if(e!==t){const a=r4(e),i=r4(t);if(a===i&&a===0){if(e<t)return n==="desc"?1:-1;if(e>t)return n==="desc"?-1:1}return n==="desc"?i-a:a-i}return 0},Lce=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Dce=/^\w*$/;function Bce(e,t){return Array.isArray(e)?!1:typeof e=="number"||typeof e=="boolean"||e==null||s_(e)?!0:typeof e=="string"&&(Dce.test(e)||!Lce.test(e))||t!=null}function Fce(e,t,n,a){if(e==null)return[];n=n,Array.isArray(e)||(e=h_(e)?Array.from(e):Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(n)||(n=n==null?[]:[n]),n=n.map(l=>String(l));const i=(l,c)=>{let h=l,m=0;for(;m<c.length&&h!=null;++m)h=h[c[m]];return m>0&&m===c.length?h:void 0},s=(l,c)=>{if(l==null)return c;if(c!=null)return typeof l=="object"&&"key"in l?Object.hasOwn(c,l.key)?c[l.key]:i(c,l.path):typeof l=="function"?l(c):Array.isArray(l)?i(c,l):c[l]},o=t.map(l=>(Array.isArray(l)&&l.length===1&&(l=l[0]),l==null||typeof l=="function"||Array.isArray(l)||Bce(l)?l:{key:l,path:o_(l)}));return e.map(l=>({original:l,criteria:o.map(c=>s(c,l))})).slice().sort((l,c)=>{for(let h=0;h<o.length;h++){const m=Mce(l.criteria[h],c.criteria[h],n[h]);if(m!==0)return m}return 0}).map(l=>l.original)}function c0(e,...t){const n=t.length;return n>1&&BN(e,t[0],t[1])?t=[]:n>2&&BN(t[0],t[1],t[2])&&(t=[t[0]]),Fce(e,Ice(t),["asc"])}var t9=e=>e.legend.settings,zce=e=>e.legend.size,$ce=e=>e.legend.payload;le([$ce,t9],(e,t)=>{var n=t.itemSorter,a=e.flat(1);return n?c0(a,n):a});function Hce(e,t){return qce(e)||Uce(e,t)||Vce(e,t)||Wce()}function Wce(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Vce(e,t){if(e){if(typeof e=="string")return a4(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?a4(e,t):void 0}}function a4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Uce(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function qce(e){if(Array.isArray(e))return e}var Mx=1;function i4(e,t){return Math.abs(e.height-t.height)>Mx||Math.abs(e.left-t.left)>Mx||Math.abs(e.top-t.top)>Mx||Math.abs(e.width-t.width)>Mx}function s4(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function Gce(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=v.useState({height:0,left:0,top:0,width:0}),n=Hce(t,2),a=n[0],i=n[1],s=v.useRef(null),o=v.useRef(a);o.current=a;var l=v.useCallback(c=>{if(s.current!=null&&(s.current.disconnect(),s.current=null),c!=null){var h=s4(c);if(i4(h,o.current)&&i(h),typeof ResizeObserver<"u"){var m=new ResizeObserver(()=>{var p=s4(c);i4(p,o.current)&&i(p)});m.observe(c),s.current=m}}},[...e]);return v.useEffect(()=>()=>{var c;(c=s.current)===null||c===void 0||c.disconnect()},[]),[a,l]}function nr(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Kce=typeof Symbol=="function"&&Symbol.observable||"@@observable",o4=Kce,v1=()=>Math.random().toString(36).substring(7).split("").join("."),Zce={INIT:`@@redux/INIT${v1()}`,REPLACE:`@@redux/REPLACE${v1()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${v1()}`},Wy=Zce;function x_(e){if(typeof e!="object"||e===null)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function n9(e,t,n){if(typeof e!="function")throw new Error(nr(2));if(typeof t=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(nr(0));if(typeof t=="function"&&typeof n>"u"&&(n=t,t=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(nr(1));return n(n9)(e,t)}let a=e,i=t,s=new Map,o=s,l=0,c=!1;function h(){o===s&&(o=new Map,s.forEach((_,S)=>{o.set(S,_)}))}function m(){if(c)throw new Error(nr(3));return i}function p(_){if(typeof _!="function")throw new Error(nr(4));if(c)throw new Error(nr(5));let S=!0;h();const A=l++;return o.set(A,_),function(){if(S){if(c)throw new Error(nr(6));S=!1,h(),o.delete(A),s=null}}}function x(_){if(!x_(_))throw new Error(nr(7));if(typeof _.type>"u")throw new Error(nr(8));if(typeof _.type!="string")throw new Error(nr(17));if(c)throw new Error(nr(9));try{c=!0,i=a(i,_)}finally{c=!1}return(s=o).forEach(A=>{A()}),_}function b(_){if(typeof _!="function")throw new Error(nr(10));a=_,x({type:Wy.REPLACE})}function j(){const _=p;return{subscribe(S){if(typeof S!="object"||S===null)throw new Error(nr(11));function A(){const I=S;I.next&&I.next(m())}return A(),{unsubscribe:_(A)}},[o4](){return this}}}return x({type:Wy.INIT}),{dispatch:x,subscribe:p,getState:m,replaceReducer:b,[o4]:j}}function Yce(e){Object.keys(e).forEach(t=>{const n=e[t];if(typeof n(void 0,{type:Wy.INIT})>"u")throw new Error(nr(12));if(typeof n(void 0,{type:Wy.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(nr(13))})}function r9(e){const t=Object.keys(e),n={};for(let s=0;s<t.length;s++){const o=t[s];typeof e[o]=="function"&&(n[o]=e[o])}const a=Object.keys(n);let i;try{Yce(n)}catch(s){i=s}return function(o={},l){if(i)throw i;let c=!1;const h={};for(let m=0;m<a.length;m++){const p=a[m],x=n[p],b=o[p],j=x(b,l);if(typeof j>"u")throw l&&l.type,new Error(nr(14));h[p]=j,c=c||j!==b}return c=c||a.length!==Object.keys(o).length,c?h:o}}function Vy(...e){return e.length===0?t=>t:e.length===1?e[0]:e.reduce((t,n)=>(...a)=>t(n(...a)))}function Jce(...e){return t=>(n,a)=>{const i=t(n,a);let s=()=>{throw new Error(nr(15))};const o={getState:i.getState,dispatch:(c,...h)=>s(c,...h)},l=e.map(c=>c(o));return s=Vy(...l)(i.dispatch),{...i,dispatch:s}}}function a9(e){return x_(e)&&"type"in e&&typeof e.type=="string"}var i9=Symbol.for("immer-nothing"),l4=Symbol.for("immer-draftable"),kr=Symbol.for("immer-state");function vi(e,...t){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var va=Object,Gu=va.getPrototypeOf,Uy="constructor",d0="prototype",FN="configurable",qy="enumerable",vy="writable",Hm="value",so=e=>!!e&&!!e[kr];function Ja(e){return e?s9(e)||h0(e)||!!e[l4]||!!e[Uy]?.[l4]||f0(e)||m0(e):!1}var Xce=va[d0][Uy].toString(),c4=new WeakMap;function s9(e){if(!e||!y_(e))return!1;const t=Gu(e);if(t===null||t===va[d0])return!0;const n=va.hasOwnProperty.call(t,Uy)&&t[Uy];if(n===Object)return!0;if(!xu(n))return!1;let a=c4.get(n);return a===void 0&&(a=Function.toString.call(n),c4.set(n,a)),a===Xce}function u0(e,t,n=!0){wp(e)===0?(n?Reflect.ownKeys(e):va.keys(e)).forEach(i=>{t(i,e[i],e)}):e.forEach((a,i)=>t(i,a,e))}function wp(e){const t=e[kr];return t?t.type_:h0(e)?1:f0(e)?2:m0(e)?3:0}var b1=(e,t,n=wp(e))=>n===2?e.has(t):va[d0].hasOwnProperty.call(e,t),zN=(e,t,n=wp(e))=>n===2?e.get(t):e[t],Gy=(e,t,n,a=wp(e))=>{a===2?e.set(t,n):a===3?e.add(n):e[t]=n};function Qce(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t}var h0=Array.isArray,f0=e=>e instanceof Map,m0=e=>e instanceof Set,y_=e=>typeof e=="object",xu=e=>typeof e=="function",w1=e=>typeof e=="boolean";function ede(e){const t=+e;return Number.isInteger(t)&&String(t)===e}var Us=e=>e.copy_||e.base_,v_=e=>e.modified_?e.copy_:e.base_;function $N(e,t){if(f0(e))return new Map(e);if(m0(e))return new Set(e);if(h0(e))return Array[d0].slice.call(e);const n=s9(e);if(t===!0||t==="class_only"&&!n){const a=va.getOwnPropertyDescriptors(e);delete a[kr];let i=Reflect.ownKeys(a);for(let s=0;s<i.length;s++){const o=i[s],l=a[o];l[vy]===!1&&(l[vy]=!0,l[FN]=!0),(l.get||l.set)&&(a[o]={[FN]:!0,[vy]:!0,[qy]:l[qy],[Hm]:e[o]})}return va.create(Gu(e),a)}else{const a=Gu(e);if(a!==null&&n)return{...e};const i=va.create(a);return va.assign(i,e)}}function b_(e,t=!1){return p0(e)||so(e)||!Ja(e)||(wp(e)>1&&va.defineProperties(e,{set:Lx,add:Lx,clear:Lx,delete:Lx}),va.freeze(e),t&&u0(e,(n,a)=>{b_(a,!0)},!1)),e}function tde(){vi(2)}var Lx={[Hm]:tde};function p0(e){return e===null||!y_(e)?!0:va.isFrozen(e)}var Ky="MapSet",HN="Patches",d4="ArrayMethods",o9={};function Bc(e){const t=o9[e];return t||vi(0,e),t}var u4=e=>!!o9[e],Wm,l9=()=>Wm,nde=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:u4(Ky)?Bc(Ky):void 0,arrayMethodsPlugin_:u4(d4)?Bc(d4):void 0});function h4(e,t){t&&(e.patchPlugin_=Bc(HN),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function WN(e){VN(e),e.drafts_.forEach(rde),e.drafts_=null}function VN(e){e===Wm&&(Wm=e.parent_)}var f4=e=>Wm=nde(Wm,e);function rde(e){const t=e[kr];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function m4(e,t){t.unfinalizedDrafts_=t.drafts_.length;const n=t.drafts_[0];if(e!==void 0&&e!==n){n[kr].modified_&&(WN(t),vi(4)),Ja(e)&&(e=p4(t,e));const{patchPlugin_:i}=t;i&&i.generateReplacementPatches_(n[kr].base_,e,t)}else e=p4(t,n);return ade(t,e,!0),WN(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e!==i9?e:void 0}function p4(e,t){if(p0(t))return t;const n=t[kr];if(!n)return Zy(t,e.handledSet_,e);if(!g0(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){const{callbacks_:a}=n;if(a)for(;a.length>0;)a.pop()(e);u9(n,e)}return n.copy_}function ade(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&b_(t,n)}function c9(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var g0=(e,t)=>e.scope_===t,ide=[];function d9(e,t,n,a){const i=Us(e),s=e.type_;if(a!==void 0&&zN(i,a,s)===t){Gy(i,a,n,s);return}if(!e.draftLocations_){const l=e.draftLocations_=new Map;u0(i,(c,h)=>{if(so(h)){const m=l.get(h)||[];m.push(c),l.set(h,m)}})}const o=e.draftLocations_.get(t)??ide;for(const l of o)Gy(i,l,n,s)}function sde(e,t,n){e.callbacks_.push(function(i){const s=t;if(!s||!g0(s,i))return;i.mapSetPlugin_?.fixSetContents(s);const o=v_(s);d9(e,s.draft_??s,o,n),u9(s,i)})}function u9(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){const{patchPlugin_:a}=t;if(a){const i=a.getPath(e);i&&a.generatePatches_(e,i,t)}c9(e)}}function ode(e,t,n){const{scope_:a}=e;if(so(n)){const i=n[kr];g0(i,a)&&i.callbacks_.push(function(){by(e);const o=v_(i);d9(e,n,o,t)})}else Ja(n)&&e.callbacks_.push(function(){const s=Us(e);e.type_===3?s.has(n)&&Zy(n,a.handledSet_,a):zN(s,t,e.type_)===n&&a.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&Zy(zN(e.copy_,t,e.type_),a.handledSet_,a)})}function Zy(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||so(e)||t.has(e)||!Ja(e)||p0(e)||(t.add(e),u0(e,(a,i)=>{if(so(i)){const s=i[kr];if(g0(s,n)){const o=v_(s);Gy(e,a,o,e.type_),c9(s)}}else Ja(i)&&Zy(i,t,n)})),e}function lde(e,t){const n=h0(e),a={type_:n?1:0,scope_:t?t.scope_:l9(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0};let i=a,s=Yy;n&&(i=[a],s=Vm);const{revoke:o,proxy:l}=Proxy.revocable(i,s);return a.draft_=l,a.revoke_=o,[l,a]}var Yy={get(e,t){if(t===kr)return e;let n=e.scope_.arrayMethodsPlugin_;const a=e.type_===1&&typeof t=="string";if(a&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);const i=Us(e);if(!b1(i,t,e.type_))return dde(e,i,t);const s=i[t];if(e.finalized_||!Ja(s)||a&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&ede(t))return s;if(s===j1(e.base_,t)||cde(e,t,s)){by(e);const o=e.type_===1?+t:t,l=qN(e.scope_,s,e,o);return e.copy_[o]=l}return s},has(e,t){return t in Us(e)},ownKeys(e){return Reflect.ownKeys(Us(e))},set(e,t,n){const a=h9(Us(e),t);if(a?.set)return a.set.call(e.draft_,n),!0;if(!e.modified_){const i=j1(Us(e),t),s=i?.[kr];if(s&&s.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(Qce(n,i)&&(n!==void 0||b1(e.base_,t,e.type_)))return!0;by(e),UN(e)}return e.copy_[t]===n&&(n!==void 0||b1(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_.set(t,!0),ode(e,t,n)),!0},deleteProperty(e,t){return by(e),j1(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),UN(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){const n=Us(e),a=Reflect.getOwnPropertyDescriptor(n,t);return a&&{[vy]:!0,[FN]:e.type_!==1||t!=="length",[qy]:a[qy],[Hm]:n[t]}},defineProperty(){vi(11)},getPrototypeOf(e){return Gu(e.base_)},setPrototypeOf(){vi(12)}},Vm={};for(let e in Yy){let t=Yy[e];Vm[e]=function(){const n=arguments;return n[0]=n[0][0],t.apply(this,n)}}Vm.deleteProperty=function(e,t){return Vm.set.call(this,e,t,void 0)};Vm.set=function(e,t,n){return Yy.set.call(this,e[0],t,n,e[0])};function j1(e,t){const n=e[kr];return(n?Us(n):e)[t]}function cde(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!Ja(n)||n[kr]?!1:e.baseRefs_.has(n)}function dde(e,t,n){const a=h9(t,n);return a?Hm in a?a[Hm]:a.get?.call(e.draft_):void 0}function h9(e,t){if(!(t in e))return;let n=Gu(e);for(;n;){const a=Object.getOwnPropertyDescriptor(n,t);if(a)return a;n=Gu(n)}}function UN(e){e.modified_||(e.modified_=!0,e.parent_&&UN(e.parent_))}function by(e){e.copy_||(e.assigned_=new Map,e.copy_=$N(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var ude=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(t,n,a)=>{if(xu(t)&&!xu(n)){const s=n;n=t;const o=this;return function(c=s,...h){return o.produce(c,m=>n.call(this,m,...h))}}xu(n)||vi(6),a!==void 0&&!xu(a)&&vi(7);let i;if(Ja(t)){const s=f4(this),o=qN(s,t,void 0);let l=!0;try{i=n(o),l=!1}finally{l?WN(s):VN(s)}return h4(s,a),m4(i,s)}else if(!t||!y_(t)){if(i=n(t),i===void 0&&(i=t),i===i9&&(i=void 0),this.autoFreeze_&&b_(i,!0),a){const s=[],o=[];Bc(HN).generateReplacementPatches_(t,i,{patches_:s,inversePatches_:o}),a(s,o)}return i}else vi(1,t)},this.produceWithPatches=(t,n)=>{if(xu(t))return(o,...l)=>this.produceWithPatches(o,c=>t(c,...l));let a,i;return[this.produce(t,n,(o,l)=>{a=o,i=l}),a,i]},w1(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),w1(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),w1(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){Ja(e)||vi(8),so(e)&&(e=Va(e));const t=f4(this),n=qN(t,e,void 0);return n[kr].isManual_=!0,VN(t),n}finishDraft(e,t){const n=e&&e[kr];(!n||!n.isManual_)&&vi(9);const{scope_:a}=n;return h4(a,t),m4(void 0,a)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}setUseStrictIteration(e){this.useStrictIteration_=e}shouldUseStrictIteration(){return this.useStrictIteration_}applyPatches(e,t){let n;for(n=t.length-1;n>=0;n--){const i=t[n];if(i.path.length===0&&i.op==="replace"){e=i.value;break}}n>-1&&(t=t.slice(n+1));const a=Bc(HN).applyPatches_;return so(e)?a(e,t):this.produce(e,i=>a(i,t))}};function qN(e,t,n,a){const[i,s]=f0(t)?Bc(Ky).proxyMap_(t,n):m0(t)?Bc(Ky).proxySet_(t,n):lde(t,n);return(n?.scope_??l9()).drafts_.push(i),s.callbacks_=n?.callbacks_??[],s.key_=a,n&&a!==void 0?sde(n,s,a):s.callbacks_.push(function(c){c.mapSetPlugin_?.fixSetContents(s);const{patchPlugin_:h}=c;s.modified_&&h&&h.generatePatches_(s,[],c)}),i}function Va(e){return so(e)||vi(10,e),f9(e)}function f9(e){if(!Ja(e)||p0(e))return e;const t=e[kr];let n,a=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=$N(e,t.scope_.immer_.useStrictShallowCopy_),a=t.scope_.immer_.shouldUseStrictIteration()}else n=$N(e,!0);return u0(n,(i,s)=>{Gy(n,i,f9(s))},a),t&&(t.finalized_=!1),n}var hde=globalThis.Iterator;hde?.from;var fde=new ude,m9=fde.produce,Rt=e=>e;function p9(e){return({dispatch:n,getState:a})=>i=>s=>typeof s=="function"?s(n,a,e):i(s)}var mde=p9(),pde=p9,gde=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?Vy:Vy.apply(null,arguments)};function _a(e,t){function n(...a){if(t){let i=t(...a);if(!i)throw new Error(ja(0));return{type:e,payload:i.payload,..."meta"in i&&{meta:i.meta},..."error"in i&&{error:i.error}}}return{type:e,payload:a[0]}}return n.toString=()=>`${e}`,n.type=e,n.match=a=>a9(a)&&a.type===e,n}var g9=class lm extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,lm.prototype)}static get[Symbol.species](){return lm}concat(...t){return super.concat.apply(this,t)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new lm(...t[0].concat(this)):new lm(...t.concat(this))}};function g4(e){return Ja(e)?m9(e,()=>{}):e}function Dx(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}function xde(e){return typeof e=="boolean"}var yde=()=>function(t){const{thunk:n=!0,immutableCheck:a=!0,serializableCheck:i=!0,actionCreatorCheck:s=!0}=t??{};let o=new g9;return n&&(xde(n)?o.push(mde):o.push(pde(n.extraArgument))),o},x9="RTK_autoBatch",Xt=()=>e=>({payload:e,meta:{[x9]:!0}}),x4=e=>t=>{setTimeout(t,e)},vde=(e,t)=>n=>{let a=!1;const i=()=>{a||(a=!0,cancelAnimationFrame(s),clearTimeout(o),n())},s=e(i),o=setTimeout(i,t)},y9=(e={type:"raf"})=>t=>(...n)=>{const a=t(...n);let i=!0,s=!1,o=!1;const l=new Set,c=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?vde(window.requestAnimationFrame,100):x4(10):e.type==="callback"?e.queueNotification:x4(e.timeout),h=()=>{o=!1,s&&(s=!1,l.forEach(m=>m()))};return Object.assign({},a,{subscribe(m){const p=()=>i&&m(),x=a.subscribe(p);return l.add(m),()=>{x(),l.delete(m)}},dispatch(m){try{return i=!m?.meta?.[x9],s=!i,s&&(o||(o=!0,c(h))),a.dispatch(m)}finally{i=!0}}})},bde=e=>function(n){const{autoBatch:a=!0}=n??{};let i=new g9(e);return a&&i.push(y9(typeof a=="object"?a:void 0)),i};function wde(e){const t=yde(),{reducer:n=void 0,middleware:a,devTools:i=!0,preloadedState:s=void 0,enhancers:o=void 0}=e||{};let l;if(typeof n=="function")l=n;else if(x_(n))l=r9(n);else throw new Error(ja(1));let c;typeof a=="function"?c=a(t):c=t();let h=Vy;i&&(h=gde({trace:!1,...typeof i=="object"&&i}));const m=Jce(...c),p=bde(m);let x=typeof o=="function"?o(p):p();const b=h(...x);return n9(l,s,b)}function v9(e){const t={},n=[];let a;const i={addCase(s,o){const l=typeof s=="string"?s:s.type;if(!l)throw new Error(ja(28));if(l in t)throw new Error(ja(29));return t[l]=o,i},addAsyncThunk(s,o){return o.pending&&(t[s.pending.type]=o.pending),o.rejected&&(t[s.rejected.type]=o.rejected),o.fulfilled&&(t[s.fulfilled.type]=o.fulfilled),o.settled&&n.push({matcher:s.settled,reducer:o.settled}),i},addMatcher(s,o){return n.push({matcher:s,reducer:o}),i},addDefaultCase(s){return a=s,i}};return e(i),[t,n,a]}function jde(e){return typeof e=="function"}function Nde(e,t){let[n,a,i]=v9(t),s;if(jde(e))s=()=>g4(e());else{const l=g4(e);s=()=>l}function o(l=s(),c){let h=[n[c.type],...a.filter(({matcher:m})=>m(c)).map(({reducer:m})=>m)];return h.filter(m=>!!m).length===0&&(h=[i]),h.reduce((m,p)=>{if(p)if(so(m)){const b=p(m,c);return b===void 0?m:b}else{if(Ja(m))return m9(m,x=>p(x,c));{const x=p(m,c);if(x===void 0){if(m===null)return m;throw Error("A case reducer on a non-draftable value must not return undefined")}return x}}return m},l)}return o.getInitialState=s,o}var kde="ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW",_de=(e=21)=>{let t="",n=e;for(;n--;)t+=kde[Math.random()*64|0];return t},Sde=Symbol.for("rtk-slice-createasyncthunk");function Cde(e,t){return`${e}/${t}`}function Tde({creators:e}={}){const t=e?.asyncThunk?.[Sde];return function(a){const{name:i,reducerPath:s=i}=a;if(!i)throw new Error(ja(11));const o=(typeof a.reducers=="function"?a.reducers(Pde()):a.reducers)||{},l=Object.keys(o),c={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},h={addCase(P,I){const O=typeof P=="string"?P:P.type;if(!O)throw new Error(ja(12));if(O in c.sliceCaseReducersByType)throw new Error(ja(13));return c.sliceCaseReducersByType[O]=I,h},addMatcher(P,I){return c.sliceMatchers.push({matcher:P,reducer:I}),h},exposeAction(P,I){return c.actionCreators[P]=I,h},exposeCaseReducer(P,I){return c.sliceCaseReducersByName[P]=I,h}};l.forEach(P=>{const I=o[P],O={reducerName:P,type:Cde(i,P),createNotation:typeof a.reducers=="function"};Ode(I)?Ide(O,I,h,t):Ede(O,I,h)});function m(){const[P={},I=[],O=void 0]=typeof a.extraReducers=="function"?v9(a.extraReducers):[a.extraReducers],M={...P,...c.sliceCaseReducersByType};return Nde(a.initialState,z=>{for(let $ in M)z.addCase($,M[$]);for(let $ of c.sliceMatchers)z.addMatcher($.matcher,$.reducer);for(let $ of I)z.addMatcher($.matcher,$.reducer);O&&z.addDefaultCase(O)})}const p=P=>P,x=new Map,b=new WeakMap;let j;function N(P,I){return j||(j=m()),j(P,I)}function _(){return j||(j=m()),j.getInitialState()}function S(P,I=!1){function O(z){let $=z[P];return typeof $>"u"&&I&&($=Dx(b,O,_)),$}function M(z=p){const $=Dx(x,I,()=>new WeakMap);return Dx($,z,()=>{const K={};for(const[X,te]of Object.entries(a.selectors??{}))K[X]=Ade(te,z,()=>Dx(b,z,_),I);return K})}return{reducerPath:P,getSelectors:M,get selectors(){return M(O)},selectSlice:O}}const A={name:i,reducer:N,actions:c.actionCreators,caseReducers:c.sliceCaseReducersByName,getInitialState:_,...S(s),injectInto(P,{reducerPath:I,...O}={}){const M=I??s;return P.inject({reducerPath:M,reducer:N},O),{...A,...S(M,!0)}}};return A}}function Ade(e,t,n,a){function i(s,...o){let l=t(s);return typeof l>"u"&&a&&(l=n()),e(l,...o)}return i.unwrapped=e,i}var _r=Tde();function Pde(){function e(t,n){return{_reducerDefinitionType:"asyncThunk",payloadCreator:t,...n}}return e.withTypes=()=>e,{reducer(t){return Object.assign({[t.name](...n){return t(...n)}}[t.name],{_reducerDefinitionType:"reducer"})},preparedReducer(t,n){return{_reducerDefinitionType:"reducerWithPrepare",prepare:t,reducer:n}},asyncThunk:e}}function Ede({type:e,reducerName:t,createNotation:n},a,i){let s,o;if("reducer"in a){if(n&&!Rde(a))throw new Error(ja(17));s=a.reducer,o=a.prepare}else s=a;i.addCase(e,s).exposeCaseReducer(t,s).exposeAction(t,o?_a(e,o):_a(e))}function Ode(e){return e._reducerDefinitionType==="asyncThunk"}function Rde(e){return e._reducerDefinitionType==="reducerWithPrepare"}function Ide({type:e,reducerName:t},n,a,i){if(!i)throw new Error(ja(18));const{payloadCreator:s,fulfilled:o,pending:l,rejected:c,settled:h,options:m}=n,p=i(e,s,m);a.exposeAction(t,p),o&&a.addCase(p.fulfilled,o),l&&a.addCase(p.pending,l),c&&a.addCase(p.rejected,c),h&&a.addMatcher(p.settled,h),a.exposeCaseReducer(t,{fulfilled:o||Bx,pending:l||Bx,rejected:c||Bx,settled:h||Bx})}function Bx(){}var Mde="task",b9="listener",w9="completed",w_="cancelled",Lde=`task-${w_}`,Dde=`task-${w9}`,GN=`${b9}-${w_}`,Bde=`${b9}-${w9}`,x0=class{constructor(e){this.code=e,this.message=`${Mde} ${w_} (reason: ${e})`}code;name="TaskAbortError";message},j_=(e,t)=>{if(typeof e!="function")throw new TypeError(ja(32))},Jy=()=>{},j9=(e,t=Jy)=>(e.catch(t),e),N9=(e,t)=>(e.addEventListener("abort",t,{once:!0}),()=>e.removeEventListener("abort",t)),Pc=e=>{if(e.aborted)throw new x0(e.reason)};function k9(e,t){let n=Jy;return new Promise((a,i)=>{const s=()=>i(new x0(e.reason));if(e.aborted){s();return}n=N9(e,s),t.finally(()=>n()).then(a,i)}).finally(()=>{n=Jy})}var Fde=async(e,t)=>{try{return await Promise.resolve(),{status:"ok",value:await e()}}catch(n){return{status:n instanceof x0?"cancelled":"rejected",error:n}}finally{t?.()}},Xy=e=>t=>j9(k9(e,t).then(n=>(Pc(e),n))),_9=e=>{const t=Xy(e);return n=>t(new Promise(a=>setTimeout(a,n)))},{assign:Eu}=Object,y4={},y0="listenerMiddleware",zde=(e,t)=>{const n=a=>N9(e,()=>a.abort(e.reason));return(a,i)=>{j_(a);const s=new AbortController;n(s);const o=Fde(async()=>{Pc(e),Pc(s.signal);const l=await a({pause:Xy(s.signal),delay:_9(s.signal),signal:s.signal});return Pc(s.signal),l},()=>s.abort(Dde));return i?.autoJoin&&t.push(o.catch(Jy)),{result:Xy(e)(o),cancel(){s.abort(Lde)}}}},$de=(e,t)=>{const n=async(a,i)=>{Pc(t);let s=()=>{};const l=[new Promise((c,h)=>{let m=e({predicate:a,effect:(p,x)=>{x.unsubscribe(),c([p,x.getState(),x.getOriginalState()])}});s=()=>{m(),h()}})];i!=null&&l.push(new Promise(c=>setTimeout(c,i,null)));try{const c=await k9(t,Promise.race(l));return Pc(t),c}finally{s()}};return((a,i)=>j9(n(a,i)))},S9=e=>{let{type:t,actionCreator:n,matcher:a,predicate:i,effect:s}=e;if(t)i=_a(t).match;else if(n)t=n.type,i=n.match;else if(a)i=a;else if(!i)throw new Error(ja(21));return j_(s),{predicate:i,type:t,effect:s}},C9=Eu(e=>{const{type:t,predicate:n,effect:a}=S9(e);return{id:_de(),effect:a,type:t,predicate:n,pending:new Set,unsubscribe:()=>{throw new Error(ja(22))}}},{withTypes:()=>C9}),v4=(e,t)=>{const{type:n,effect:a,predicate:i}=S9(t);return Array.from(e.values()).find(s=>(typeof n=="string"?s.type===n:s.predicate===i)&&s.effect===a)},KN=e=>{e.pending.forEach(t=>{t.abort(GN)})},Hde=(e,t)=>()=>{for(const n of t.keys())KN(n);e.clear()},b4=(e,t,n)=>{try{e(t,n)}catch(a){setTimeout(()=>{throw a},0)}},T9=Eu(_a(`${y0}/add`),{withTypes:()=>T9}),Wde=_a(`${y0}/removeAll`),A9=Eu(_a(`${y0}/remove`),{withTypes:()=>A9}),Vde=(...e)=>{console.error(`${y0}/error`,...e)},jp=(e={})=>{const t=new Map,n=new Map,a=b=>{const j=n.get(b)??0;n.set(b,j+1)},i=b=>{const j=n.get(b)??1;j===1?n.delete(b):n.set(b,j-1)},{extra:s,onError:o=Vde}=e;j_(o);const l=b=>(b.unsubscribe=()=>t.delete(b.id),t.set(b.id,b),j=>{b.unsubscribe(),j?.cancelActive&&KN(b)}),c=(b=>{const j=v4(t,b)??C9(b);return l(j)});Eu(c,{withTypes:()=>c});const h=b=>{const j=v4(t,b);return j&&(j.unsubscribe(),b.cancelActive&&KN(j)),!!j};Eu(h,{withTypes:()=>h});const m=async(b,j,N,_)=>{const S=new AbortController,A=$de(c,S.signal),P=[];try{b.pending.add(S),a(b),await Promise.resolve(b.effect(j,Eu({},N,{getOriginalState:_,condition:(I,O)=>A(I,O).then(Boolean),take:A,delay:_9(S.signal),pause:Xy(S.signal),extra:s,signal:S.signal,fork:zde(S.signal,P),unsubscribe:b.unsubscribe,subscribe:()=>{t.set(b.id,b)},cancelActiveListeners:()=>{b.pending.forEach((I,O,M)=>{I!==S&&(I.abort(GN),M.delete(I))})},cancel:()=>{S.abort(GN),b.pending.delete(S)},throwIfCancelled:()=>{Pc(S.signal)}})))}catch(I){I instanceof x0||b4(o,I,{raisedBy:"effect"})}finally{await Promise.all(P),S.abort(Bde),i(b),b.pending.delete(S)}},p=Hde(t,n);return{middleware:b=>j=>N=>{if(!a9(N))return j(N);if(T9.match(N))return c(N.payload);if(Wde.match(N)){p();return}if(A9.match(N))return h(N.payload);let _=b.getState();const S=()=>{if(_===y4)throw new Error(ja(23));return _};let A;try{if(A=j(N),t.size>0){const P=b.getState(),I=Array.from(t.values());for(const O of I){let M=!1;try{M=O.predicate(N,P,_)}catch(z){M=!1,b4(o,z,{raisedBy:"predicate"})}M&&m(O,N,b,S)}}}finally{_=y4}return A},startListening:c,stopListening:h,clearListeners:p}};function ja(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Ude={layoutType:"horizontal",width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},P9=_r({name:"chartLayout",initialState:Ude,reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){var n,a,i,s;e.margin.top=(n=t.payload.top)!==null&&n!==void 0?n:0,e.margin.right=(a=t.payload.right)!==null&&a!==void 0?a:0,e.margin.bottom=(i=t.payload.bottom)!==null&&i!==void 0?i:0,e.margin.left=(s=t.payload.left)!==null&&s!==void 0?s:0},setScale(e,t){e.scale=t.payload}}}),v0=P9.actions,qde=v0.setMargin,Gde=v0.setLayout,Kde=v0.setChartSize,Zde=v0.setScale,Yde=P9.reducer;function E9(e,t,n){return Array.isArray(e)&&e&&t+n!==0?e.slice(t,n+1):e}function St(e){return Number.isFinite(e)}function ds(e){return typeof e=="number"&&e>0&&Number.isFinite(e)}function w4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function ea(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?w4(Object(n),!0).forEach(function(a){Jde(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w4(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Jde(e,t,n){return(t=Xde(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Xde(e){var t=Qde(e,"string");return typeof t=="symbol"?t:t+""}function Qde(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function zn(e,t,n){return lr(e)||lr(t)?n:cs(t)?Zc(e,t,n):typeof t=="function"?t(e):n}var eue=(e,t,n)=>{if(t&&n){var a=n.width,i=n.height,s=t.align,o=t.verticalAlign,l=t.layout,c=t.position,h=t.offset,m=h===void 0?0:h;if(c!=null){if(xle(c)){if(c==="top"&&Ie(e.top))return ea(ea({},e),{},{top:e.top+(i||0)+m});if(c==="bottom"&&Ie(e.bottom))return ea(ea({},e),{},{bottom:e.bottom+(i||0)+m});if(c==="left"&&Ie(e.left))return ea(ea({},e),{},{left:e.left+(a||0)+m});if(c==="right"&&Ie(e.right))return ea(ea({},e),{},{right:e.right+(a||0)+m})}return e}if((l==="vertical"||l==="horizontal"&&o==="middle")&&s!=="center"&&Ie(e[s]))return ea(ea({},e),{},{[s]:e[s]+(a||0)});if((l==="horizontal"||l==="vertical"&&s==="center")&&o!=="middle"&&Ie(e[o]))return ea(ea({},e),{},{[o]:e[o]+(i||0)})}return e},fs=(e,t)=>e==="horizontal"&&t==="xAxis"||e==="vertical"&&t==="yAxis"||e==="centric"&&t==="angleAxis"||e==="radial"&&t==="radiusAxis",O9=(e,t,n,a)=>{if(a)return e.map(l=>l.coordinate);var i,s,o=e.map(l=>(l.coordinate===t&&(i=!0),l.coordinate===n&&(s=!0),l.coordinate));return i||o.push(t),s||o.push(n),o},R9=(e,t,n)=>{if(!e)return null;var a=e.duplicateDomain,i=e.type,s=e.range,o=e.scale,l=e.realScaleType,c=e.isCategorical,h=e.categoricalDomain,m=e.tickCount,p=e.ticks,x=e.niceTicks,b=e.axisType;if(!o)return null;var j=l==="scaleBand"&&o.bandwidth?o.bandwidth()/2:2,N=i==="category"&&o.bandwidth?o.bandwidth()/j:0;if(N=b==="angleAxis"&&s&&s.length>=2?Wa(s[0]-s[1])*2*N:N,p||x){var _=(p||x||[]).map((S,A)=>{var P=a?a.indexOf(S):S,I=o.map(P);return St(I)?{coordinate:I+N,value:S,offset:N,index:A}:null}).filter(Lr);return _}return c&&h?h.map((S,A)=>{var P=o.map(S);return St(P)?{coordinate:P+N,value:S,index:A,offset:N}:null}).filter(Lr):o.ticks&&m!=null?o.ticks(m).map((S,A)=>{var P=o.map(S);return St(P)?{coordinate:P+N,value:S,index:A,offset:N}:null}).filter(Lr):o.domain().map((S,A)=>{var P=o.map(S);return St(P)?{coordinate:P+N,value:a?a[S]:S,index:A,offset:N}:null}).filter(Lr)},tue=e=>{var t,n=e.length;if(!(n<=0)){var a=(t=e[0])===null||t===void 0?void 0:t.length;if(!(a==null||a<=0))for(var i=0;i<a;++i)for(var s=0,o=0,l=0;l<n;++l){var c=e[l],h=c?.[i];if(h!=null){var m=h[1],p=h[0],x=ls(m)?p:m;x>=0?(h[0]=s,s+=x,h[1]=s):(h[0]=o,o+=x,h[1]=o)}}}},nue=e=>{var t,n=e.length;if(!(n<=0)){var a=(t=e[0])===null||t===void 0?void 0:t.length;if(!(a==null||a<=0))for(var i=0;i<a;++i)for(var s=0,o=0;o<n;++o){var l=e[o],c=l?.[i];if(c!=null){var h=ls(c[1])?c[0]:c[1];h>=0?(c[0]=s,s+=h,c[1]=s):(c[0]=0,c[1]=0)}}}},rue={sign:tue,expand:Dle,none:Dc,silhouette:Ble,wiggle:Fle,positive:nue},aue=(e,t,n)=>{var a,i=(a=rue[n])!==null&&a!==void 0?a:Dc,s=Lle().keys(t).value((l,c)=>Number(zn(l,c,0))).order(IN).offset(i),o=s(e);return o.forEach((l,c)=>{l.forEach((h,m)=>{var p=zn(e[m],t[c],0);Array.isArray(p)&&p.length===2&&Ie(p[0])&&Ie(p[1])&&(h[0]=p[0],h[1]=p[1])})}),o};function iue(e){return e==null?void 0:String(e)}function j4(e){var t=e.axis,n=e.ticks,a=e.bandSize,i=e.entry,s=e.index,o=e.dataKey;if(t.type==="category"){if(!t.allowDuplicatedCategory&&t.dataKey&&!lr(i[t.dataKey])){var l=hB(n,"value",i[t.dataKey]);if(l)return l.coordinate+a/2}return n!=null&&n[s]?n[s].coordinate+a/2:null}var c=zn(i,lr(o)?t.dataKey:o),h=t.scale.map(c);return Ie(h)?h:null}var sue=e=>{var t=e.flat(2).filter(Ie);return[Math.min(...t),Math.max(...t)]},oue=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],lue=(e,t,n)=>{if(!(e==null||Object.keys(e).length===0))return oue(Object.keys(e).reduce((a,i)=>{var s=e[i];if(!s)return a;var o=s.stackedData,l=o.reduce((c,h)=>{var m=E9(h,t,n),p=sue(m);return!St(p[0])||!St(p[1])?c:[Math.min(c[0],p[0]),Math.max(c[1],p[1])]},[1/0,-1/0]);return[Math.min(l[0],a[0]),Math.max(l[1],a[1])]},[1/0,-1/0]))},N4=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,k4=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,Qy=(e,t,n)=>{if(e&&e.scale&&e.scale.bandwidth){var a=e.scale.bandwidth();if(!n||a>0)return a}if(e&&t&&t.length>=2){for(var i=c0(t,N=>N.coordinate),s=[],o=0,l=1,c=i.length;l<c;l++){var h,m,p=(((h=i[l])===null||h===void 0?void 0:h.coordinate)||0)-(((m=i[l-1])===null||m===void 0?void 0:m.coordinate)||0);s.push(p),o=Math.max(p,o)}var x=o*1e-4,b=1/0;for(var j of s)j>x&&(b=Math.min(j,b));return b===1/0?0:b}return n?void 0:0};function _4(e){var t=e.tooltipEntrySettings,n=e.dataKey,a=e.payload,i=e.value,s=e.name;return ea(ea({},t),{},{dataKey:n,payload:a,value:i,name:s})}function I9(e,t){if(e!=null)return String(e);if(typeof t=="string")return t}var cue=(e,t)=>{if(t==="horizontal")return e.relativeX;if(t==="vertical")return e.relativeY},due=(e,t)=>t==="centric"?e.angle:e.radius,ho=e=>e.layout.width,fo=e=>e.layout.height,uue=e=>e.layout.scale,M9=e=>e.layout.margin,b0=le(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),w0=le(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),hue="data-recharts-item-index",fue="data-recharts-item-id",Np=60,N_=30;function S4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function Fx(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?S4(Object(n),!0).forEach(function(a){mue(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S4(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function mue(e,t,n){return(t=pue(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function pue(e){var t=gue(e,"string");return typeof t=="symbol"?t:t+""}function gue(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var xue=e=>e.brush.height;function yue(e){var t=w0(e);return t.reduce((n,a)=>{if(a.orientation==="left"&&!a.mirror&&!a.hide){var i=typeof a.width=="number"?a.width:Np;return n+i}return n},0)}function vue(e){var t=w0(e);return t.reduce((n,a)=>{if(a.orientation==="right"&&!a.mirror&&!a.hide){var i=typeof a.width=="number"?a.width:Np;return n+i}return n},0)}function bue(e){var t=b0(e);return t.reduce((n,a)=>{if(a.orientation==="top"&&!a.mirror&&!a.hide){var i=typeof a.height=="number"?a.height:N_;return n+i}return n},0)}function wue(e){var t=b0(e);return t.reduce((n,a)=>{if(a.orientation==="bottom"&&!a.mirror&&!a.hide){var i=typeof a.height=="number"?a.height:N_;return n+i}return n},0)}var dr=le([ho,fo,M9,xue,yue,vue,bue,wue,t9,zce],(e,t,n,a,i,s,o,l,c,h)=>{var m={left:(n.left||0)+i,right:(n.right||0)+s},p={top:(n.top||0)+o,bottom:(n.bottom||0)+l},x=Fx(Fx({},p),m),b=x.bottom;x.bottom+=a,x=eue(x,c,h);var j=e-x.left-x.right,N=t-x.top-x.bottom;return Fx(Fx({brushBottom:b},x),{},{width:Math.max(j,0),height:Math.max(N,0)})}),jue=le(dr,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),L9=le(ho,fo,(e,t)=>({x:0,y:0,width:e,height:t})),Nue=v.createContext(null),ra=()=>v.useContext(Nue)!=null,j0=e=>e.brush,N0=le([j0,dr,M9],(e,t,n)=>({height:e.height,x:Ie(e.x)?e.x:t.left,y:Ie(e.y)?e.y:t.top+t.height+t.brushBottom-(n?.bottom||0),width:Ie(e.width)?e.width:t.width}));function kue(e,t,{signal:n,edges:a}={}){let i,s=null;const o=a!=null&&a.includes("leading"),l=a==null||a.includes("trailing"),c=()=>{s!==null&&(e.apply(i,s),i=void 0,s=null)},h=()=>{l&&c(),b()};let m=null;const p=()=>{m!=null&&clearTimeout(m),m=setTimeout(()=>{m=null,h()},t)},x=()=>{m!==null&&(clearTimeout(m),m=null)},b=()=>{x(),i=void 0,s=null},j=()=>{c()},N=function(..._){if(n?.aborted)return;i=this,s=_;const S=m==null;p(),o&&S&&c()};return N.schedule=p,N.cancel=b,N.flush=j,n?.addEventListener("abort",b,{once:!0}),N}function _ue(e,t=0,n={}){typeof n!="object"&&(n={});const{leading:a=!1,trailing:i=!0,maxWait:s}=n,o=Array(2);a&&(o[0]="leading"),i&&(o[1]="trailing");let l,c=null;const h=kue(function(...x){l=e.apply(this,x),c=null},t,{edges:o}),m=function(...x){return s!=null&&(c===null&&(c=Date.now()),Date.now()-c>=s)?((a||i)&&(l=e.apply(this,x)),c=Date.now(),h.cancel(),h.schedule(),l):(h.apply(this,x),l)},p=()=>(h.flush(),l);return m.cancel=h.cancel,m.flush=p,m}function Sue(e,t=0,n={}){const{leading:a=!0,trailing:i=!0}=n;return _ue(e,t,{leading:a,maxWait:t,trailing:i})}var ev=function(t,n){for(var a=arguments.length,i=new Array(a>2?a-2:0),s=2;s<a;s++)i[s-2]=arguments[s];if(typeof console<"u"&&console.warn&&(n===void 0&&console.warn("LogUtils requires an error message argument"),!t))if(n===void 0)console.warn("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var o=0;console.warn(n.replace(/%s/g,()=>i[o++]))}},Qi={width:"100%",height:"100%",debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},D9=(e,t,n)=>{var a=n.width,i=a===void 0?Qi.width:a,s=n.height,o=s===void 0?Qi.height:s,l=n.aspect,c=n.maxHeight,h=Lc(i)?e:Number(i),m=Lc(o)?t:Number(o);return l&&l>0&&(h?m=h/l:m&&(h=m*l),c&&m!=null&&m>c&&(m=c)),{calculatedWidth:h,calculatedHeight:m}},Cue={width:0,height:0,overflow:"visible"},Tue={width:0,overflowX:"visible"},Aue={height:0,overflowY:"visible"},Pue={},Eue=e=>{var t=e.width,n=e.height,a=Lc(t),i=Lc(n);return a&&i?Cue:a?Tue:i?Aue:Pue};function Oue(e){var t=e.width,n=e.height,a=e.aspect,i=t,s=n;return i===void 0&&s===void 0?(i=Qi.width,s=Qi.height):i===void 0?i=a&&a>0?void 0:Qi.width:s===void 0&&(s=a&&a>0?void 0:Qi.height),{width:i,height:s}}var Rue=["aspect","initialDimension","width","height","minWidth","minHeight","maxHeight","children","debounce","id","className","onResize","style"];function tv(){return tv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},tv.apply(null,arguments)}function C4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function T4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?C4(Object(n),!0).forEach(function(a){Iue(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):C4(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Iue(e,t,n){return(t=Mue(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Mue(e){var t=Lue(e,"string");return typeof t=="symbol"?t:t+""}function Lue(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Due(e,t){return $ue(e)||zue(e,t)||Fue(e,t)||Bue()}function Bue(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Fue(e,t){if(e){if(typeof e=="string")return A4(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?A4(e,t):void 0}}function A4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function zue(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function $ue(e){if(Array.isArray(e))return e}function Hue(e,t){if(e==null)return{};var n,a,i=Wue(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Wue(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var B9=v.createContext(Qi.initialDimension);function Vue(e){return ds(e.width)&&ds(e.height)}function F9(e){var t=e.children,n=e.width,a=e.height,i=v.useMemo(()=>({width:n,height:a}),[n,a]);return Vue(i)?v.createElement(B9.Provider,{value:i},t):null}var k_=()=>v.useContext(B9),Uue=v.forwardRef((e,t)=>{var n=e.aspect,a=e.initialDimension,i=a===void 0?Qi.initialDimension:a,s=e.width,o=e.height,l=e.minWidth,c=l===void 0?Qi.minWidth:l,h=e.minHeight,m=e.maxHeight,p=e.children,x=e.debounce,b=x===void 0?Qi.debounce:x,j=e.id,N=e.className,_=e.onResize,S=e.style,A=S===void 0?{}:S,P=Hue(e,Rue),I=v.useRef(null),O=v.useRef();O.current=_,v.useImperativeHandle(t,()=>I.current);var M=v.useState({containerWidth:i.width,containerHeight:i.height}),z=Due(M,2),$=z[0],K=z[1],X=v.useCallback((H,Q)=>{K(W=>{var ie=Math.round(H),Y=Math.round(Q);return W.containerWidth===ie&&W.containerHeight===Y?W:{containerWidth:ie,containerHeight:Y}})},[]);v.useEffect(()=>{if(I.current==null||typeof ResizeObserver>"u")return vh;var H=V=>{var re,be=V[0];if(be!=null){var ge=be.contentRect,Ne=ge.width,we=ge.height;X(Ne,we),(re=O.current)===null||re===void 0||re.call(O,Ne,we)}};b>0&&(H=Sue(H,b,{trailing:!0,leading:!1}));var Q=new ResizeObserver(H),W=I.current.getBoundingClientRect(),ie=W.width,Y=W.height;return X(ie,Y),Q.observe(I.current),()=>{Q.disconnect()}},[X,b]);var te=$.containerWidth,q=$.containerHeight;ev(!n||n>0,"The aspect(%s) must be greater than zero.",n);var he=D9(te,q,{width:s,height:o,aspect:n,maxHeight:m}),ne=he.calculatedWidth,G=he.calculatedHeight;return ev(te<0||q<0||ne!=null&&ne>0||G!=null&&G>0,`The width(%s) and height(%s) of chart should be greater than 0,
please check the style of container, or the props width(%s) and height(%s),
or add a minWidth(%s) or minHeight(%s) or use aspect(%s) to control the
height and width.`,ne,G,s,o,c,h,n),v.createElement("div",tv({id:j?"".concat(j):void 0,className:Ut("recharts-responsive-container",N),style:T4(T4({},A),{},{width:s,height:o,minWidth:c,minHeight:h,maxHeight:m}),ref:I},P),v.createElement("div",{style:Eue({width:s,height:o})},v.createElement(F9,{width:ne,height:G},p)))}),que=v.forwardRef((e,t)=>{var n=k_();if(ds(n.width)&&ds(n.height))return e.children;var a=Oue({width:e.width,height:e.height,aspect:e.aspect}),i=a.width,s=a.height,o=D9(void 0,void 0,{width:i,height:s,aspect:e.aspect,maxHeight:e.maxHeight}),l=o.calculatedWidth,c=o.calculatedHeight;return Ie(l)&&Ie(c)?v.createElement(F9,{width:l,height:c},e.children):v.createElement(Uue,tv({},e,{width:i,height:s,ref:t}))}),k0=()=>{var e,t=ra(),n=Ve(jue),a=Ve(N0),i=(e=Ve(j0))===null||e===void 0?void 0:e.padding;return!t||!a||!i?n:{width:a.width-i.left-i.right,height:a.height-i.top-i.bottom,x:i.left,y:i.top}},Gue={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},z9=()=>{var e;return(e=Ve(dr))!==null&&e!==void 0?e:Gue},$9=()=>Ve(ho),H9=()=>Ve(fo),ln=e=>e.layout.layoutType,bh=()=>Ve(ln),__=()=>{var e=bh();if(e==="horizontal"||e==="vertical")return e},W9=e=>{var t=e.layout.layoutType;if(t==="centric"||t==="radial")return t},Kue=()=>{var e=bh();return e!==void 0},kp=e=>{var t=Cn(),n=ra(),a=e.width,i=e.height,s=k_(),o=a,l=i;return s&&(o=s.width>0?s.width:a,l=s.height>0?s.height:i),v.useEffect(()=>{!n&&ds(o)&&ds(l)&&t(Kde({width:o,height:l}))},[t,n,o,l]),null},Zue={settings:{layout:"horizontal",align:"center",verticalAlign:"bottom",itemSorter:"value",position:void 0,offset:0},size:{width:0,height:0},payload:[]},V9=_r({name:"legend",initialState:Zue,reducers:{setLegendSize(e,t){e.size.width=t.payload.width,e.size.height=t.payload.height},setLegendSettings(e,t){e.settings.align=t.payload.align,e.settings.layout=t.payload.layout,e.settings.verticalAlign=t.payload.verticalAlign,e.settings.itemSorter=t.payload.itemSorter,e.settings.position=t.payload.position,e.settings.offset=t.payload.offset},addLegendPayload:{reducer(e,t){e.payload.push(Rt(t.payload))},prepare:Xt()},replaceLegendPayload:{reducer(e,t){var n=t.payload,a=n.prev,i=n.next,s=Va(e).payload.indexOf(Rt(a));s>-1&&(e.payload[s]=Rt(i))},prepare:Xt()},removeLegendPayload:{reducer(e,t){var n=Va(e).payload.indexOf(Rt(t.payload));n>-1&&e.payload.splice(n,1)},prepare:Xt()}}}),_p=V9.actions;_p.setLegendSize;_p.setLegendSettings;var Yue=_p.addLegendPayload,Jue=_p.replaceLegendPayload,Xue=_p.removeLegendPayload,Que=V9.reducer,N1={exports:{}},k1={};var P4;function ehe(){if(P4)return k1;P4=1;var e=Wc();function t(c,h){return c===h&&(c!==0||1/c===1/h)||c!==c&&h!==h}var n=typeof Object.is=="function"?Object.is:t,a=e.useSyncExternalStore,i=e.useRef,s=e.useEffect,o=e.useMemo,l=e.useDebugValue;return k1.useSyncExternalStoreWithSelector=function(c,h,m,p,x){var b=i(null);if(b.current===null){var j={hasValue:!1,value:null};b.current=j}else j=b.current;b=o(function(){function _(O){if(!S){if(S=!0,A=O,O=p(O),x!==void 0&&j.hasValue){var M=j.value;if(x(M,O))return P=M}return P=O}if(M=P,n(A,O))return M;var z=p(O);return x!==void 0&&x(M,z)?(A=O,M):(A=O,P=z)}var S=!1,A,P,I=m===void 0?null:m;return[function(){return _(h())},I===null?void 0:function(){return _(I())}]},[h,m,p,x]);var N=a(c,b[0],b[1]);return s(function(){j.hasValue=!0,j.value=N},[N]),l(N),N},k1}var E4;function the(){return E4||(E4=1,N1.exports=ehe()),N1.exports}the();function nhe(e){e()}function rhe(){let e=null,t=null;return{clear(){e=null,t=null},notify(){nhe(()=>{let n=e;for(;n;)n.callback(),n=n.next})},get(){const n=[];let a=e;for(;a;)n.push(a),a=a.next;return n},subscribe(n){let a=!0;const i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){!a||e===null||(a=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var O4={notify(){},get:()=>[]};function ahe(e,t){let n,a=O4,i=0,s=!1;function o(N){m();const _=a.subscribe(N);let S=!1;return()=>{S||(S=!0,_(),p())}}function l(){a.notify()}function c(){j.onStateChange&&j.onStateChange()}function h(){return s}function m(){i++,n||(n=e.subscribe(c),a=rhe())}function p(){i--,n&&i===0&&(n(),n=void 0,a.clear(),a=O4)}function x(){s||(s=!0,m())}function b(){s&&(s=!1,p())}const j={addNestedSub:o,notifyNestedSubs:l,handleChangeWrapper:c,isSubscribed:h,trySubscribe:x,tryUnsubscribe:b,getListeners:()=>a};return j}var ihe=()=>typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",she=ihe(),ohe=()=>typeof navigator<"u"&&navigator.product==="ReactNative",lhe=ohe(),che=()=>she||lhe?v.useLayoutEffect:v.useEffect,dhe=che();function R4(e,t){return e===t?e!==0||t!==0||1/e===1/t:e!==e&&t!==t}function uhe(e,t){if(R4(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;const n=Object.keys(e),a=Object.keys(t);if(n.length!==a.length)return!1;for(let i=0;i<n.length;i++)if(!Object.prototype.hasOwnProperty.call(t,n[i])||!R4(e[n[i]],t[n[i]]))return!1;return!0}var hhe=Symbol.for("react-redux-context"),fhe=typeof globalThis<"u"?globalThis:{};function mhe(){if(!v.createContext)return{};const e=fhe[hhe]??=new Map;let t=e.get(v.createContext);return t||(t=v.createContext(null),e.set(v.createContext,t)),t}var phe=mhe();function ghe(e){const{children:t,context:n,serverState:a,store:i}=e,s=v.useMemo(()=>{const c=ahe(i);return{store:i,subscription:c,getServerState:a?()=>a:void 0}},[i,a]),o=v.useMemo(()=>i.getState(),[i]);dhe(()=>{const{subscription:c}=s;return c.onStateChange=c.notifyNestedSubs,c.trySubscribe(),o!==i.getState()&&c.notifyNestedSubs(),()=>{c.tryUnsubscribe(),c.onStateChange=void 0}},[s,o]);const l=n||phe;return v.createElement(l.Provider,{value:s},t)}var xhe=ghe,yhe=new Set(["axisLine","tickLine","activeBar","activeDot","activeLabel","activeShape","allowEscapeViewBox","background","cursor","dot","label","line","margin","padding","position","shape","style","tick","wrapperStyle","radius","throttledEvents"]);function vhe(e,t){return e==null&&t==null?!0:typeof e=="number"&&typeof t=="number"?e===t||e!==e&&t!==t:e===t}function _0(e,t){var n=new Set([...Object.keys(e),...Object.keys(t)]);for(var a of n)if(yhe.has(a)){if(e[a]==null&&t[a]==null)continue;if(!uhe(e[a],t[a]))return!1}else if(!vhe(e[a],t[a]))return!1;return!0}function ZN(){return ZN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},ZN.apply(null,arguments)}function I4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function $f(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?I4(Object(n),!0).forEach(function(a){bhe(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I4(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function bhe(e,t,n){return(t=whe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function whe(e){var t=jhe(e,"string");return typeof t=="symbol"?t:t+""}function jhe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Nhe(e,t){return Che(e)||She(e,t)||_he(e,t)||khe()}function khe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function _he(e,t){if(e){if(typeof e=="string")return M4(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?M4(e,t):void 0}}function M4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function She(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function Che(e){if(Array.isArray(e))return e}function The(e){return Array.isArray(e)&&cs(e[0])&&cs(e[1])?e.join(" ~ "):e}var su={separator:" : ",contentStyle:{margin:0,padding:10,backgroundColor:"#fff",border:"1px solid #ccc",whiteSpace:"nowrap"},itemStyle:{display:"block",paddingTop:4,paddingBottom:4,color:"#000"},labelStyle:{},accessibilityLayer:!1};function Ahe(e,t){return t==null?e:c0(e,t)}var Phe=e=>{var t=e.separator,n=t===void 0?su.separator:t,a=e.contentStyle,i=e.itemStyle,s=e.labelStyle,o=s===void 0?su.labelStyle:s,l=e.payload,c=e.formatter,h=e.itemSorter,m=e.wrapperClassName,p=e.labelClassName,x=e.label,b=e.labelFormatter,j=e.accessibilityLayer,N=j===void 0?su.accessibilityLayer:j,_=()=>{if(l&&l.length){var $={padding:0,margin:0},K=Ahe(l,h),X=K.map((te,q)=>{if(!te||te.type==="none")return null;var he=te.formatter||c||The,ne=te.value,G=te.name,H=ne,Q=G;if(he){var W=he(ne,G,te,q,l);if(Array.isArray(W)){var ie=Nhe(W,2);H=ie[0],Q=ie[1]}else if(W!=null)H=W;else return null}var Y=$f($f({},su.itemStyle),{},{color:te.color||su.itemStyle.color},i);return v.createElement("li",{className:"recharts-tooltip-item",key:"tooltip-item-".concat(q),style:Y},cs(Q)?v.createElement("span",{className:"recharts-tooltip-item-name"},Q):null,cs(Q)?v.createElement("span",{className:"recharts-tooltip-item-separator"},n):null,v.createElement("span",{className:"recharts-tooltip-item-value"},H),v.createElement("span",{className:"recharts-tooltip-item-unit"},te.unit||""))});return v.createElement("ul",{className:"recharts-tooltip-item-list",style:$},X)}return null},S=$f($f({},su.contentStyle),a),A=$f({margin:0},o),P=!lr(x),I=P?x:"",O=Ut("recharts-default-tooltip",m),M=Ut("recharts-tooltip-label",p);P&&b&&l!==void 0&&l!==null&&(I=b(x,l));var z=N?{role:"status","aria-live":"assertive"}:{};return v.createElement("div",ZN({className:O,style:S},z),v.createElement("p",{className:M,style:A},v.isValidElement(I)?I:"".concat(I)),_())},Hf="recharts-tooltip-wrapper",Ehe={visibility:"hidden"};function Ohe(e){var t=e.coordinate,n=e.translateX,a=e.translateY;return Ut(Hf,{["".concat(Hf,"-right")]:Ie(n)&&t&&Ie(t.x)&&n>=t.x,["".concat(Hf,"-left")]:Ie(n)&&t&&Ie(t.x)&&n<t.x,["".concat(Hf,"-bottom")]:Ie(a)&&t&&Ie(t.y)&&a>=t.y,["".concat(Hf,"-top")]:Ie(a)&&t&&Ie(t.y)&&a<t.y})}function L4(e){var t=e.allowEscapeViewBox,n=e.coordinate,a=e.key,i=e.offset,s=e.position,o=e.reverseDirection,l=e.tooltipDimension,c=e.viewBox,h=e.viewBoxDimension;if(s&&Ie(s[a]))return s[a];var m=n[a]-l-(i>0?i:0),p=n[a]+i;if(t[a])return o[a]?m:p;var x=c[a];if(x==null)return 0;if(o[a]){var b=m,j=x;return b<j?Math.max(p,x):Math.max(m,x)}if(h==null)return 0;var N=p+l,_=x+h;return N>_?Math.max(m,x):Math.max(p,x)}function Rhe(e){var t=e.translateX,n=e.translateY,a=e.useTranslate3d;return{transform:a?"translate3d(".concat(t,"px, ").concat(n,"px, 0)"):"translate(".concat(t,"px, ").concat(n,"px)")}}function Ihe(e){var t=e.allowEscapeViewBox,n=e.coordinate,a=e.offsetTop,i=e.offsetLeft,s=e.position,o=e.reverseDirection,l=e.tooltipBox,c=e.useTranslate3d,h=e.viewBox,m,p,x;return l&&l.height>0&&l.width>0&&n?(p=L4({allowEscapeViewBox:t,coordinate:n,key:"x",offset:i,position:s,reverseDirection:o,tooltipDimension:l.width,viewBox:h,viewBoxDimension:h.width}),x=L4({allowEscapeViewBox:t,coordinate:n,key:"y",offset:a,position:s,reverseDirection:o,tooltipDimension:l.height,viewBox:h,viewBoxDimension:h.height}),m=Rhe({translateX:p,translateY:x,useTranslate3d:c})):m=Ehe,{cssProperties:m,cssClasses:Ohe({translateX:p,translateY:x,coordinate:n})}}var Mhe=()=>!(typeof window<"u"&&window.document&&window.document.createElement&&window.setTimeout),Sp={isSsr:Mhe()};function Lhe(e,t){return zhe(e)||Fhe(e,t)||Bhe(e,t)||Dhe()}function Dhe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Bhe(e,t){if(e){if(typeof e=="string")return D4(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?D4(e,t):void 0}}function D4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Fhe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function zhe(e){if(Array.isArray(e))return e}function U9(){var e=v.useState(()=>Sp.isSsr||!window.matchMedia?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches),t=Lhe(e,2),n=t[0],a=t[1];return v.useEffect(()=>{if(window.matchMedia){var i=window.matchMedia("(prefers-reduced-motion: reduce)"),s=()=>{a(i.matches)};return i.addEventListener("change",s),()=>{i.removeEventListener("change",s)}}},[]),n}function B4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function ou(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?B4(Object(n),!0).forEach(function(a){$he(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):B4(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function $he(e,t,n){return(t=Hhe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Hhe(e){var t=Whe(e,"string");return typeof t=="symbol"?t:t+""}function Whe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Vhe(e,t){return Khe(e)||Ghe(e,t)||qhe(e,t)||Uhe()}function Uhe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qhe(e,t){if(e){if(typeof e=="string")return F4(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?F4(e,t):void 0}}function F4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Ghe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function Khe(e){if(Array.isArray(e))return e}function Zhe(e){if(!(e.prefersReducedMotion&&e.isAnimationActive==="auto")&&e.isAnimationActive&&e.active){var t=typeof e.animationEasing=="string"?e.animationEasing:"ease";return"transform ".concat(e.animationDuration,"ms ").concat(t)}}function Yhe(e){var t,n,a,i,s,o,l=U9(),c=v.useState(()=>({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),h=Vhe(c,2),m=h[0],p=h[1];v.useEffect(()=>{var S=A=>{if(A.key==="Escape"){var P,I,O,M;p({dismissed:!0,dismissedAtCoordinate:{x:(P=(I=e.coordinate)===null||I===void 0?void 0:I.x)!==null&&P!==void 0?P:0,y:(O=(M=e.coordinate)===null||M===void 0?void 0:M.y)!==null&&O!==void 0?O:0}})}};return document.addEventListener("keydown",S),()=>{document.removeEventListener("keydown",S)}},[(t=e.coordinate)===null||t===void 0?void 0:t.x,(n=e.coordinate)===null||n===void 0?void 0:n.y]),m.dismissed&&(((a=(i=e.coordinate)===null||i===void 0?void 0:i.x)!==null&&a!==void 0?a:0)!==m.dismissedAtCoordinate.x||((s=(o=e.coordinate)===null||o===void 0?void 0:o.y)!==null&&s!==void 0?s:0)!==m.dismissedAtCoordinate.y)&&p(ou(ou({},m),{},{dismissed:!1}));var x=Ihe({allowEscapeViewBox:e.allowEscapeViewBox,coordinate:e.coordinate,offsetLeft:typeof e.offset=="number"?e.offset:e.offset.x,offsetTop:typeof e.offset=="number"?e.offset:e.offset.y,position:e.position,reverseDirection:e.reverseDirection,tooltipBox:e.lastBoundingBox,useTranslate3d:e.useTranslate3d,viewBox:e.viewBox}),b=x.cssClasses,j=x.cssProperties,N=e.hasPortalFromProps?{}:ou(ou({transition:Zhe({prefersReducedMotion:l,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},j),{},{pointerEvents:"none",position:"absolute",top:0,left:0}),_=ou(ou({},N),{},{visibility:!m.dismissed&&e.active&&e.hasPayload?"visible":"hidden"},e.wrapperStyle);return v.createElement("div",{xmlns:"http://www.w3.org/1999/xhtml",tabIndex:-1,className:b,style:_,ref:e.innerRef},e.children)}var Jhe=v.memo(Yhe),q9=()=>{var e;return(e=Ve(t=>t.rootProps.accessibilityLayer))!==null&&e!==void 0?e:!0};function YN(){return YN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},YN.apply(null,arguments)}function z4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function $4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?z4(Object(n),!0).forEach(function(a){Xhe(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):z4(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Xhe(e,t,n){return(t=Qhe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qhe(e){var t=efe(e,"string");return typeof t=="symbol"?t:t+""}function efe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var H4={curveBasisClosed:_le,curveBasisOpen:Sle,curveBasis:kle,curveBumpX:jle,curveBumpY:Nle,curveLinearClosed:Cle,curveLinear:o0,curveMonotoneX:Tle,curveMonotoneY:Ale,curveNatural:Ple,curveStep:Ele,curveStepAfter:Rle,curveStepBefore:Ole},nv=e=>St(e.x)&&St(e.y),W4=e=>e.base!=null&&nv(e.base)&&nv(e),Wf=e=>e.x,Vf=e=>e.y,tfe=(e,t)=>{if(typeof e=="function")return e;var n="curve".concat(l_(e));if((n==="curveMonotone"||n==="curveBump")&&t){var a=H4["".concat(n).concat(t==="vertical"?"Y":"X")];if(a)return a}return H4[n]||o0},V4={connectNulls:!1,type:"linear"},nfe=e=>{var t=e.type,n=t===void 0?V4.type:t,a=e.points,i=a===void 0?[]:a,s=e.baseLine,o=e.layout,l=e.connectNulls,c=l===void 0?V4.connectNulls:l,h=tfe(n,o),m=c?i.filter(nv):i;if(Array.isArray(s)){var p,x=i.map((S,A)=>$4($4({},S),{},{base:s[A]}));o==="vertical"?p=Rx().y(Vf).x1(Wf).x0(S=>S.base.x):p=Rx().x(Wf).y1(Vf).y0(S=>S.base.y);var b=p.defined(W4).curve(h),j=c?x.filter(W4):x;return b(j)}var N;o==="vertical"&&Ie(s)?N=Rx().y(Vf).x1(Wf).x0(s):Ie(s)?N=Rx().x(Wf).y1(Vf).y0(s):N=yB().x(Wf).y(Vf);var _=N.defined(nv).curve(h);return _(m)},wy=e=>{var t=e.className,n=e.points,a=e.path,i=e.pathRef,s=bh();if((!n||!n.length)&&!a)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||s,connectNulls:e.connectNulls},l=n&&n.length?nfe(o):a;return v.createElement("path",YN({},ki(e),u_(e),{className:Ut("recharts-curve",t),d:l===null?void 0:l,ref:i}))},rfe=["x","y","top","left","width","height","className"];function JN(){return JN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},JN.apply(null,arguments)}function U4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function afe(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?U4(Object(n),!0).forEach(function(a){ife(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U4(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function ife(e,t,n){return(t=sfe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function sfe(e){var t=ofe(e,"string");return typeof t=="symbol"?t:t+""}function ofe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function lfe(e,t){if(e==null)return{};var n,a,i=cfe(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function cfe(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var dfe=(e,t,n,a,i,s)=>"M".concat(e,",").concat(i,"v").concat(a,"M").concat(s,",").concat(t,"h").concat(n),ufe=e=>{var t=e.x,n=t===void 0?0:t,a=e.y,i=a===void 0?0:a,s=e.top,o=s===void 0?0:s,l=e.left,c=l===void 0?0:l,h=e.width,m=h===void 0?0:h,p=e.height,x=p===void 0?0:p,b=e.className,j=lfe(e,rfe),N=afe({x:n,y:i,top:o,left:c,width:m,height:x},j);return!Ie(n)||!Ie(i)||!Ie(m)||!Ie(x)||!Ie(o)||!Ie(c)?null:v.createElement("path",JN({},Za(N),{className:Ut("recharts-cross",b),d:dfe(n,i,m,x,o,c)}))};function hfe(e,t,n,a){var i=a/2;return{stroke:"none",fill:"#ccc",x:e==="horizontal"?t.x-i:n.left+.5,y:e==="horizontal"?n.top+.5:t.y-i,width:e==="horizontal"?a:n.width-1,height:e==="horizontal"?n.height-1:a}}var rv=1e-4,G9=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],K9=(e,t)=>e.map((n,a)=>n*t**a).reduce((n,a)=>n+a),q4=(e,t)=>n=>{var a=G9(e,t);return K9(a,n)},ffe=(e,t)=>n=>{var a=G9(e,t),i=[...a.map((s,o)=>s*o).slice(1),0];return K9(i,n)},mfe=e=>{var t,n=e.split("(");if(n.length!==2||n[0]!=="cubic-bezier")return null;var a=(t=n[1])===null||t===void 0||(t=t.split(")")[0])===null||t===void 0?void 0:t.split(",");if(a==null||a.length!==4)return null;var i=a.map(s=>parseFloat(s));return[i[0],i[1],i[2],i[3]]},pfe=function(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];if(n.length===1)switch(n[0]){case"linear":return[0,0,1,1];case"ease":return[.25,.1,.25,1];case"ease-in":return[.42,0,1,1];case"ease-out":return[.42,0,.58,1];case"ease-in-out":return[0,0,.58,1];default:{var i=mfe(n[0]);if(i)return i}}return n.length===4?n:[0,0,1,1]},gfe=(e,t,n,a)=>{var i=q4(e,n),s=q4(t,a),o=ffe(e,n),l=h=>h>1?1:h<0?0:h,c=h=>{for(var m=h>1?1:h,p=m,x=0;x<8;++x){var b=i(p)-m,j=o(p);if(Math.abs(b-m)<rv||j<rv)return s(p);p=l(p-b/j)}return s(p)};return c.isStepper=!1,c},G4=function(){return gfe(...pfe(...arguments))},xfe=function(){for(var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.stiff,a=n===void 0?100:n,i=t.damping,s=i===void 0?8:i,o=t.dt,l=o===void 0?16.67:o,c=1,h=[0],m=0,p=0,x=1e4,b=0;b<x;){var j=-(m-c)*a,N=p*s;if(p+=(j-N)*l/1e3,m+=p*l/1e3,h.push(m),Math.abs(m-c)<rv&&Math.abs(p)<rv)break;b++}h[h.length-1]=c;var _=h.length-1;return S=>{var A,P,I;if(S<=0)return 0;if(S>=1)return c;var O=S*_,M=Math.floor(O),z=O-M;return((A=h[M])!==null&&A!==void 0?A:0)+(((P=h[M+1])!==null&&P!==void 0?P:0)-((I=h[M])!==null&&I!==void 0?I:0))*z}},yfe=e=>{if(typeof e=="string")switch(e){case"ease":case"ease-in-out":case"ease-out":case"ease-in":case"linear":return G4(e);case"spring":return xfe();default:if(e.split("(")[0]==="cubic-bezier")return G4(e)}return typeof e=="function"?e:null},vfe=(e,t,n)=>{var a,i=s=>{var o=t.tick(s);if(t.getState()==="active"){if(n(t.getInterpolated()),t.getProgress()===1){t.complete(),a=void 0;return}a=e.setTimeout(i,o);return}a=e.setTimeout(i,o)};return a=e.setTimeout(i,0),()=>{var s;return(s=a)===null||s===void 0?void 0:s()}},Z9=v.createContext(vfe);Z9.Provider;function bfe(e){var t=v.useContext(Z9);return v.useMemo(()=>e??t,[e,t])}function wfe(e,t,n){return(t=jfe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function jfe(e){var t=Nfe(e,"string");return typeof t=="symbol"?t:t+""}function Nfe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var K4="init",Z4="pending",Y4="active",kfe="completed";function _1(e){return Math.max(0,e)}class _fe{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(t){var n;wfe(this,"state",K4),this.animationId=t.animationId,this.onAnimationEnd=t.onAnimationEnd,this.animationDuration=_1(t.animationDuration),this.animationBegin=_1(t.animationBegin),this.progress=0,this.from=t.from,this.to=t.to,this.easing=t.easing,(n=t.onAnimationStart)===null||n===void 0||n.call(t)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(t){if(this.getState()===K4)return this.state=Z4,this.beginStartedTime=t,this.animationBegin;if(this.getState()===Z4){if(this.beginStartedTime==null)throw new Error;var n=t-this.beginStartedTime;return n>=this.animationBegin?(this.state=Y4,this.animationStartedTime=t,this.nextAnimationUpdate(0)):_1(this.animationBegin-n)}if(this.getState()===Y4){if(this.animationStartedTime==null)throw new Error;var a=t-this.animationStartedTime;return this.setProgress(a/this.animationDuration),this.nextAnimationUpdate(a)}return 0}setProgress(t){this.progress=Math.min(1,Math.max(0,t))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state==="active"){var t;(t=this.onAnimationEnd)===null||t===void 0||t.call(this)}this.state=kfe}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}}class Sfe extends _fe{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(Gs(this.getFrom(),this.getTo(),this.getProgress()))}}class Cfe{setTimeout(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,a=performance.now(),i=null,s=o=>{o-a>=n?t(o):i=requestAnimationFrame(s)};return i=requestAnimationFrame(s),()=>{i!=null&&cancelAnimationFrame(i)}}}function Tfe(e,t){return Ofe(e)||Efe(e,t)||Pfe(e,t)||Afe()}function Afe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Pfe(e,t){if(e){if(typeof e=="string")return J4(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?J4(e,t):void 0}}function J4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Efe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function Ofe(e){if(Array.isArray(e))return e}var Rfe={begin:0,duration:1e3,easing:"ease",isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}},X4=0,S1=1;function Y9(e){var t=ti(e,Rfe),n=t.animationId,a=t.isActive,i=t.canBegin,s=t.duration,o=t.easing,l=t.begin,c=t.onAnimationEnd,h=t.onAnimationStart,m=t.children,p=U9(),x=a==="auto"?!Sp.isSsr&&!p:a,b=bfe(t.animationController),j=v.useState(x?X4:S1),N=Tfe(j,2),_=N[0],S=N[1];return v.useEffect(()=>{x||S(S1)},[x]),v.useEffect(()=>{var A=yfe(o);if(!x||!i||A==null)return vh;var P=new Cfe,I=new Sfe({animationId:n,easing:A,animationDuration:s,animationBegin:l,onAnimationStart:h,onAnimationEnd:c,from:X4,to:S1});return b(P,I,S)},[b,n,x,i,s,o,l,h,c]),m(Number(_))}function J9(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"animation-",n=v.useRef($m(t)),a=v.useRef(e);return a.current!==e&&(n.current=$m(t),a.current=e),n.current}var Ife=e=>e.replace(/([A-Z])/g,t=>"-".concat(t.toLowerCase())),Mfe=(e,t,n)=>e.map(a=>"".concat(Ife(a)," ").concat(t,"ms ").concat(n)).join(","),Lfe=["radius"],Dfe=["radius"],Q4,eO,tO,nO,rO,aO,iO,sO,oO,lO;function cO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function dO(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?cO(Object(n),!0).forEach(function(a){Bfe(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):cO(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Bfe(e,t,n){return(t=Ffe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ffe(e){var t=zfe(e,"string");return typeof t=="symbol"?t:t+""}function zfe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function av(){return av=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},av.apply(null,arguments)}function uO(e,t){if(e==null)return{};var n,a,i=$fe(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function $fe(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function Hfe(e,t){return qfe(e)||Ufe(e,t)||Vfe(e,t)||Wfe()}function Wfe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Vfe(e,t){if(e){if(typeof e=="string")return hO(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?hO(e,t):void 0}}function hO(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Ufe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function qfe(e){if(Array.isArray(e))return e}function Gi(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var fO=(e,t,n,a,i)=>{var s=fl(n),o=fl(a),l=Math.min(Math.abs(s)/2,Math.abs(o)/2),c=o>=0?1:-1,h=s>=0?1:-1,m=o>=0&&s>=0||o<0&&s<0?1:0,p;if(l>0&&Array.isArray(i)){for(var x=[0,0,0,0],b=0,j=4;b<j;b++){var N,_=(N=i[b])!==null&&N!==void 0?N:0;x[b]=_>l?l:_}p=ar(Q4||(Q4=Gi(["M",",",""])),e,t+c*x[0]),x[0]>0&&(p+=ar(eO||(eO=Gi(["A ",",",",0,0,",",",",",""])),x[0],x[0],m,e+h*x[0],t)),p+=ar(tO||(tO=Gi(["L ",",",""])),e+n-h*x[1],t),x[1]>0&&(p+=ar(nO||(nO=Gi(["A ",",",",0,0,",`,
`,",",""])),x[1],x[1],m,e+n,t+c*x[1])),p+=ar(rO||(rO=Gi(["L ",",",""])),e+n,t+a-c*x[2]),x[2]>0&&(p+=ar(aO||(aO=Gi(["A ",",",",0,0,",`,
`,",",""])),x[2],x[2],m,e+n-h*x[2],t+a)),p+=ar(iO||(iO=Gi(["L ",",",""])),e+h*x[3],t+a),x[3]>0&&(p+=ar(sO||(sO=Gi(["A ",",",",0,0,",`,
`,",",""])),x[3],x[3],m,e,t+a-c*x[3])),p+="Z"}else if(l>0&&i===+i&&i>0){var S=Math.min(l,i);p=ar(oO||(oO=Gi(["M ",",",`
A `,",",",0,0,",",",",",`
L `,",",`
A `,",",",0,0,",",",",",`
L `,",",`
A `,",",",0,0,",",",",",`
L `,",",`
A `,",",",0,0,",",",","," Z"])),e,t+c*S,S,S,m,e+h*S,t,e+n-h*S,t,S,S,m,e+n,t+c*S,e+n,t+a-c*S,S,S,m,e+n-h*S,t+a,e+h*S,t+a,S,S,m,e,t+a-c*S)}else p=ar(lO||(lO=Gi(["M ",","," h "," v "," h "," Z"])),e,t,n,a,-n);return p},mO={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:"ease"},Gfe=e=>{var t=ti(e,mO),n=v.useRef(null),a=v.useState(-1),i=Hfe(a,2),s=i[0],o=i[1];v.useEffect(()=>{if(n.current&&n.current.getTotalLength)try{var W=n.current.getTotalLength();W&&o(W)}catch{}},[]);var l=t.x,c=t.y,h=t.width,m=t.height,p=t.radius,x=t.className,b=t.animationEasing,j=t.animationDuration,N=t.animationBegin,_=t.isAnimationActive,S=t.isUpdateAnimationActive,A=v.useRef(h),P=v.useRef(m),I=v.useRef(l),O=v.useRef(c),M=v.useMemo(()=>({x:l,y:c,width:h,height:m,radius:p}),[l,c,h,m,p]),z=J9(M,"rectangle-");if(l!==+l||c!==+c||h!==+h||m!==+m||h===0||m===0)return null;var $=Ut("recharts-rectangle",x);if(!S){var K=Za(t);K.radius;var X=uO(K,Lfe);return v.createElement("path",av({},X,{x:fl(l),y:fl(c),width:fl(h),height:fl(m),radius:typeof p=="number"?p:void 0,className:$,d:fO(l,c,h,m,p)}))}var te=A.current,q=P.current,he=I.current,ne=O.current,G="0px ".concat(s===-1?1:s,"px"),H="".concat(s,"px ").concat(s,"px"),Q=Mfe(["strokeDasharray"],j,typeof b=="string"?b:mO.animationEasing);return v.createElement(Y9,{animationId:z,key:z,canBegin:s>0,duration:j,easing:b,isActive:S,begin:N},W=>{var ie=Gs(te,h,W),Y=Gs(q,m,W),V=Gs(he,l,W),re=Gs(ne,c,W);n.current&&(A.current=ie,P.current=Y,I.current=V,O.current=re);var be;_?W>0?be={transition:Q,strokeDasharray:H}:be={strokeDasharray:G}:be={strokeDasharray:H};var ge=Za(t);ge.radius;var Ne=uO(ge,Dfe);return v.createElement("path",av({},Ne,{radius:typeof p=="number"?p:void 0,className:$,d:fO(V,re,ie,Y,p),ref:n,style:dO(dO({},be),t.style)}))})};function pO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function gO(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?pO(Object(n),!0).forEach(function(a){Kfe(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pO(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Kfe(e,t,n){return(t=Zfe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Zfe(e){var t=Yfe(e,"string");return typeof t=="symbol"?t:t+""}function Yfe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var iv=Math.PI/180,Jfe=e=>e*180/Math.PI,sr=(e,t,n,a)=>({x:e+Math.cos(-iv*a)*n,y:t+Math.sin(-iv*a)*n}),Xfe=function(t,n){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0};return Math.min(Math.abs(t-(a.left||0)-(a.right||0)),Math.abs(n-(a.top||0)-(a.bottom||0)))/2},Qfe=(e,t)=>{var n=e.x,a=e.y,i=t.x,s=t.y;return Math.sqrt((n-i)**2+(a-s)**2)},eme=(e,t)=>{var n=e.x,a=e.y,i=t.cx,s=t.cy,o=Qfe({x:n,y:a},{x:i,y:s});if(o<=0)return{radius:o,angle:0};var l=(n-i)/o,c=Math.acos(l);return a>s&&(c=2*Math.PI-c),{radius:o,angle:Jfe(c),angleInRadian:c}},tme=e=>{var t=e.startAngle,n=e.endAngle,a=Math.floor(t/360),i=Math.floor(n/360),s=Math.min(a,i);return{startAngle:t-s*360,endAngle:n-s*360}},nme=(e,t)=>{var n=t.startAngle,a=t.endAngle,i=Math.floor(n/360),s=Math.floor(a/360),o=Math.min(i,s);return e+o*360},rme=(e,t)=>{var n=e.relativeX,a=e.relativeY,i=eme({x:n,y:a},t),s=i.radius,o=i.angle,l=t.innerRadius,c=t.outerRadius;if(s<l||s>c||s===0)return null;var h=tme(t),m=h.startAngle,p=h.endAngle,x=o,b;if(m<=p){for(;x>p;)x-=360;for(;x<m;)x+=360;b=x>=m&&x<=p}else{for(;x>m;)x-=360;for(;x<p;)x+=360;b=x>=p&&x<=m}return b?gO(gO({},t),{},{radius:s,angle:nme(x,t)}):null};function X9(e){var t=e.cx,n=e.cy,a=e.radius,i=e.startAngle,s=e.endAngle,o=sr(t,n,a,i),l=sr(t,n,a,s);return{points:[o,l],cx:t,cy:n,radius:a,startAngle:i,endAngle:s}}var xO,yO,vO,bO,wO,jO,NO;function XN(){return XN=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},XN.apply(null,arguments)}function kc(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var ame=(e,t)=>{var n=Wa(t-e),a=Math.min(Math.abs(t-e),359.999);return n*a},zx=e=>{var t=e.cx,n=e.cy,a=e.radius,i=e.angle,s=e.sign,o=e.isExternal,l=e.cornerRadius,c=e.cornerIsExternal,h=l*(o?1:-1)+a,m=Math.asin(l/h)/iv,p=c?i:i+s*m,x=sr(t,n,h,p),b=sr(t,n,a,p),j=c?i-s*m:i,N=sr(t,n,h*Math.cos(m*iv),j);return{center:x,circleTangency:b,lineTangency:N,theta:m}},Q9=e=>{var t=e.cx,n=e.cy,a=e.innerRadius,i=e.outerRadius,s=e.startAngle,o=e.endAngle,l=ame(s,o),c=s+l,h=sr(t,n,i,s),m=sr(t,n,i,c),p=ar(xO||(xO=kc(["M ",",",`
A `,",",`,0,
`,",",`,
`,",",`
`])),h.x,h.y,i,i,+(Math.abs(l)>180),+(s>c),m.x,m.y);if(a>0){var x=sr(t,n,a,s),b=sr(t,n,a,c);p+=ar(yO||(yO=kc(["L ",",",`
A `,",",`,0,
`,",",`,
`,","," Z"])),b.x,b.y,a,a,+(Math.abs(l)>180),+(s<=c),x.x,x.y)}else p+=ar(vO||(vO=kc(["L ",","," Z"])),t,n);return p},ime=e=>{var t=e.cx,n=e.cy,a=e.innerRadius,i=e.outerRadius,s=e.cornerRadius,o=e.forceCornerRadius,l=e.cornerIsExternal,c=e.startAngle,h=e.endAngle,m=Wa(h-c),p=zx({cx:t,cy:n,radius:i,angle:c,sign:m,cornerRadius:s,cornerIsExternal:l}),x=p.circleTangency,b=p.lineTangency,j=p.theta,N=zx({cx:t,cy:n,radius:i,angle:h,sign:-m,cornerRadius:s,cornerIsExternal:l}),_=N.circleTangency,S=N.lineTangency,A=N.theta,P=l?Math.abs(c-h):Math.abs(c-h)-j-A;if(P<0)return o?ar(bO||(bO=kc(["M ",",",`
a`,",",",0,0,1,",`,0
a`,",",",0,0,1,",`,0
`])),b.x,b.y,s,s,s*2,s,s,-s*2):Q9({cx:t,cy:n,innerRadius:a,outerRadius:i,startAngle:c,endAngle:h});var I=ar(wO||(wO=kc(["M ",",",`
A`,",",",0,0,",",",",",`
A`,",",",0,",",",",",",",`
A`,",",",0,0,",",",",",`
`])),b.x,b.y,s,s,+(m<0),x.x,x.y,i,i,+(P>180),+(m<0),_.x,_.y,s,s,+(m<0),S.x,S.y);if(a>0){var O=zx({cx:t,cy:n,radius:a,angle:c,sign:m,isExternal:!0,cornerRadius:s,cornerIsExternal:l}),M=O.circleTangency,z=O.lineTangency,$=O.theta,K=zx({cx:t,cy:n,radius:a,angle:h,sign:-m,isExternal:!0,cornerRadius:s,cornerIsExternal:l}),X=K.circleTangency,te=K.lineTangency,q=K.theta,he=l?Math.abs(c-h):Math.abs(c-h)-$-q;if(he<0&&s===0)return"".concat(I,"L").concat(t,",").concat(n,"Z");I+=ar(jO||(jO=kc(["L",",",`
A`,",",",0,0,",",",",",`
A`,",",",0,",",",",",",",`
A`,",",",0,0,",",",",","Z"])),te.x,te.y,s,s,+(m<0),X.x,X.y,a,a,+(he>180),+(m>0),M.x,M.y,s,s,+(m<0),z.x,z.y)}else I+=ar(NO||(NO=kc(["L",",","Z"])),t,n);return I},sme={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},ome=e=>{var t=ti(e,sme),n=t.cx,a=t.cy,i=t.innerRadius,s=t.outerRadius,o=t.cornerRadius,l=t.forceCornerRadius,c=t.cornerIsExternal,h=t.startAngle,m=t.endAngle,p=t.className;if(s<i||h===m)return null;var x=Ut("recharts-sector",p),b=s-i,j=Nl(o,b,0,!0),N;return j>0&&Math.abs(h-m)<360?N=ime({cx:n,cy:a,innerRadius:i,outerRadius:s,cornerRadius:Math.min(j,b/2),forceCornerRadius:l,cornerIsExternal:c,startAngle:h,endAngle:m}):N=Q9({cx:n,cy:a,innerRadius:i,outerRadius:s,startAngle:h,endAngle:m}),v.createElement("path",XN({},Za(t),{className:x,d:N}))};function lme(e,t,n){if(e==="horizontal")return[{x:t.x,y:n.top},{x:t.x,y:n.top+n.height}];if(e==="vertical")return[{x:n.left,y:t.y},{x:n.left+n.width,y:t.y}];if(CB(t)){if(e==="centric"){var a=t.cx,i=t.cy,s=t.innerRadius,o=t.outerRadius,l=t.angle,c=sr(a,i,s,l),h=sr(a,i,o,l);return[{x:c.x,y:c.y},{x:h.x,y:h.y}]}return X9(t)}}function cme(e){return s_(e)?NaN:Number(e)}function C1(e){return e?(e=cme(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function eF(e,t,n){n&&typeof n!="number"&&BN(e,t,n)&&(t=n=void 0),e=C1(e),t===void 0?(t=e,e=0):t=C1(t),n=n===void 0?e<t?1:-1:C1(n);const a=Math.max(Math.ceil((t-e)/(n||1)),0),i=new Array(a);for(let s=0;s<a;s++)i[s]=e,e+=n;return i}var Ai=e=>e.chartData,S_=le([Ai],e=>{var t=e.chartData!=null?e.chartData.length-1:0;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),S0=(e,t,n,a)=>a?S_(e):Ai(e),dme=(e,t,n)=>n?S_(e):Ai(e),ume=le([S0],e=>{var t=e.chartData,n=e.dataStartIndex,a=e.dataEndIndex;return t!=null?t.slice(n,a+1):[]});le([S_],e=>{var t=e.chartData,n=e.dataStartIndex,a=e.dataEndIndex;return t!=null?t.slice(n,a+1):[]});var hme=le([Ai],e=>{var t=e.chartData,n=e.dataStartIndex,a=e.dataEndIndex;return t!=null?t.slice(n,a+1):[]});function C_(e,t){return gme(e)||pme(e,t)||mme(e,t)||fme()}function fme(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function mme(e,t){if(e){if(typeof e=="string")return kO(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?kO(e,t):void 0}}function kO(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function pme(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function gme(e){if(Array.isArray(e))return e}function as(e){if(Array.isArray(e)&&e.length===2){var t=C_(e,2),n=t[0],a=t[1];if(St(n)&&St(a))return!0}return!1}function _O(e,t,n){return n?e:[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}function tF(e,t){if(t&&typeof e!="function"&&Array.isArray(e)&&e.length===2){var n=C_(e,2),a=n[0],i=n[1],s,o;if(St(a))s=a;else if(typeof a=="function")return;if(St(i))o=i;else if(typeof i=="function")return;var l=[s,o];if(as(l))return l}}function xme(e,t,n){if(!(!n&&t==null)){if(typeof e=="function"&&t!=null)try{var a=e(t,n);if(as(a))return _O(a,t,n)}catch{}if(Array.isArray(e)&&e.length===2){var i=C_(e,2),s=i[0],o=i[1],l,c;if(s==="auto")t!=null&&(l=Math.min(...t));else if(Ie(s))l=s;else if(typeof s=="function")try{t!=null&&(l=s(t?.[0]))}catch{}else if(typeof s=="string"&&N4.test(s)){var h=N4.exec(s);if(h==null||h[1]==null||t==null)l=void 0;else{var m=+h[1];l=t[0]-m}}else l=t?.[0];if(o==="auto")t!=null&&(c=Math.max(...t));else if(Ie(o))c=o;else if(typeof o=="function")try{t!=null&&(c=o(t?.[1]))}catch{}else if(typeof o=="string"&&k4.test(o)){var p=k4.exec(o);if(p==null||p[1]==null||t==null)c=void 0;else{var x=+p[1];c=t[1]+x}}else c=t?.[1];var b=[l,c];if(as(b))return t==null?b:_O(b,t,n)}}}var wh=1e9,yme={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:"2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286"},A_,sn=!0,Xa="[DecimalError] ",Ec=Xa+"Invalid argument: ",T_=Xa+"Exponent out of range: ",jh=Math.floor,gc=Math.pow,vme=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,ya,Gn=1e7,Qt=7,nF=9007199254740991,sv=jh(nF/Qt),Me={};Me.absoluteValue=Me.abs=function(){var e=new this.constructor(this);return e.s&&(e.s=1),e};Me.comparedTo=Me.cmp=function(e){var t,n,a,i,s=this;if(e=new s.constructor(e),s.s!==e.s)return s.s||-e.s;if(s.e!==e.e)return s.e>e.e^s.s<0?1:-1;for(a=s.d.length,i=e.d.length,t=0,n=a<i?a:i;t<n;++t)if(s.d[t]!==e.d[t])return s.d[t]>e.d[t]^s.s<0?1:-1;return a===i?0:a>i^s.s<0?1:-1};Me.decimalPlaces=Me.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*Qt;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n};Me.dividedBy=Me.div=function(e){return Qs(this,new this.constructor(e))};Me.dividedToIntegerBy=Me.idiv=function(e){var t=this,n=t.constructor;return Vt(Qs(t,new n(e),0,1),n.precision)};Me.equals=Me.eq=function(e){return!this.cmp(e)};Me.exponent=function(){return En(this)};Me.greaterThan=Me.gt=function(e){return this.cmp(e)>0};Me.greaterThanOrEqualTo=Me.gte=function(e){return this.cmp(e)>=0};Me.isInteger=Me.isint=function(){return this.e>this.d.length-2};Me.isNegative=Me.isneg=function(){return this.s<0};Me.isPositive=Me.ispos=function(){return this.s>0};Me.isZero=function(){return this.s===0};Me.lessThan=Me.lt=function(e){return this.cmp(e)<0};Me.lessThanOrEqualTo=Me.lte=function(e){return this.cmp(e)<1};Me.logarithm=Me.log=function(e){var t,n=this,a=n.constructor,i=a.precision,s=i+5;if(e===void 0)e=new a(10);else if(e=new a(e),e.s<1||e.eq(ya))throw Error(Xa+"NaN");if(n.s<1)throw Error(Xa+(n.s?"NaN":"-Infinity"));return n.eq(ya)?new a(0):(sn=!1,t=Qs(Um(n,s),Um(e,s),s),sn=!0,Vt(t,i))};Me.minus=Me.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?iF(t,e):rF(t,(e.s=-e.s,e))};Me.modulo=Me.mod=function(e){var t,n=this,a=n.constructor,i=a.precision;if(e=new a(e),!e.s)throw Error(Xa+"NaN");return n.s?(sn=!1,t=Qs(n,e,0,1).times(e),sn=!0,n.minus(t)):Vt(new a(n),i)};Me.naturalExponential=Me.exp=function(){return aF(this)};Me.naturalLogarithm=Me.ln=function(){return Um(this)};Me.negated=Me.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e};Me.plus=Me.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?rF(t,e):iF(t,(e.s=-e.s,e))};Me.precision=Me.sd=function(e){var t,n,a,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Ec+e);if(t=En(i)+1,a=i.d.length-1,n=a*Qt+1,a=i.d[a],a){for(;a%10==0;a/=10)n--;for(a=i.d[0];a>=10;a/=10)n++}return e&&t>n?t:n};Me.squareRoot=Me.sqrt=function(){var e,t,n,a,i,s,o,l=this,c=l.constructor;if(l.s<1){if(!l.s)return new c(0);throw Error(Xa+"NaN")}for(e=En(l),sn=!1,i=Math.sqrt(+l),i==0||i==1/0?(t=es(l.d),(t.length+e)%2==0&&(t+="0"),i=Math.sqrt(t),e=jh((e+1)/2)-(e<0||e%2),i==1/0?t="5e"+e:(t=i.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),a=new c(t)):a=new c(i.toString()),n=c.precision,i=o=n+3;;)if(s=a,a=s.plus(Qs(l,s,o+2)).times(.5),es(s.d).slice(0,o)===(t=es(a.d)).slice(0,o)){if(t=t.slice(o-3,o+1),i==o&&t=="4999"){if(Vt(s,n+1,0),s.times(s).eq(l)){a=s;break}}else if(t!="9999")break;o+=4}return sn=!0,Vt(a,n)};Me.times=Me.mul=function(e){var t,n,a,i,s,o,l,c,h,m=this,p=m.constructor,x=m.d,b=(e=new p(e)).d;if(!m.s||!e.s)return new p(0);for(e.s*=m.s,n=m.e+e.e,c=x.length,h=b.length,c<h&&(s=x,x=b,b=s,o=c,c=h,h=o),s=[],o=c+h,a=o;a--;)s.push(0);for(a=h;--a>=0;){for(t=0,i=c+a;i>a;)l=s[i]+b[a]*x[i-a-1]+t,s[i--]=l%Gn|0,t=l/Gn|0;s[i]=(s[i]+t)%Gn|0}for(;!s[--o];)s.pop();return t?++n:s.shift(),e.d=s,e.e=n,sn?Vt(e,p.precision):e};Me.toDecimalPlaces=Me.todp=function(e,t){var n=this,a=n.constructor;return n=new a(n),e===void 0?n:(us(e,0,wh),t===void 0?t=a.rounding:us(t,0,8),Vt(n,e+En(n)+1,t))};Me.toExponential=function(e,t){var n,a=this,i=a.constructor;return e===void 0?n=Fc(a,!0):(us(e,0,wh),t===void 0?t=i.rounding:us(t,0,8),a=Vt(new i(a),e+1,t),n=Fc(a,!0,e+1)),n};Me.toFixed=function(e,t){var n,a,i=this,s=i.constructor;return e===void 0?Fc(i):(us(e,0,wh),t===void 0?t=s.rounding:us(t,0,8),a=Vt(new s(i),e+En(i)+1,t),n=Fc(a.abs(),!1,e+En(a)+1),i.isneg()&&!i.isZero()?"-"+n:n)};Me.toInteger=Me.toint=function(){var e=this,t=e.constructor;return Vt(new t(e),En(e)+1,t.rounding)};Me.toNumber=function(){return+this};Me.toPower=Me.pow=function(e){var t,n,a,i,s,o,l=this,c=l.constructor,h=12,m=+(e=new c(e));if(!e.s)return new c(ya);if(l=new c(l),!l.s){if(e.s<1)throw Error(Xa+"Infinity");return l}if(l.eq(ya))return l;if(a=c.precision,e.eq(ya))return Vt(l,a);if(t=e.e,n=e.d.length-1,o=t>=n,s=l.s,o){if((n=m<0?-m:m)<=nF){for(i=new c(ya),t=Math.ceil(a/Qt+4),sn=!1;n%2&&(i=i.times(l),CO(i.d,t)),n=jh(n/2),n!==0;)l=l.times(l),CO(l.d,t);return sn=!0,e.s<0?new c(ya).div(i):Vt(i,a)}}else if(s<0)throw Error(Xa+"NaN");return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,l.s=1,sn=!1,i=e.times(Um(l,a+h)),sn=!0,i=aF(i),i.s=s,i};Me.toPrecision=function(e,t){var n,a,i=this,s=i.constructor;return e===void 0?(n=En(i),a=Fc(i,n<=s.toExpNeg||n>=s.toExpPos)):(us(e,1,wh),t===void 0?t=s.rounding:us(t,0,8),i=Vt(new s(i),e,t),n=En(i),a=Fc(i,e<=n||n<=s.toExpNeg,e)),a};Me.toSignificantDigits=Me.tosd=function(e,t){var n=this,a=n.constructor;return e===void 0?(e=a.precision,t=a.rounding):(us(e,1,wh),t===void 0?t=a.rounding:us(t,0,8)),Vt(new a(n),e,t)};Me.toString=Me.valueOf=Me.val=Me.toJSON=Me[Symbol.for("nodejs.util.inspect.custom")]=function(){var e=this,t=En(e),n=e.constructor;return Fc(e,t<=n.toExpNeg||t>=n.toExpPos)};function rF(e,t){var n,a,i,s,o,l,c,h,m=e.constructor,p=m.precision;if(!e.s||!t.s)return t.s||(t=new m(e)),sn?Vt(t,p):t;if(c=e.d,h=t.d,o=e.e,i=t.e,c=c.slice(),s=o-i,s){for(s<0?(a=c,s=-s,l=h.length):(a=h,i=o,l=c.length),o=Math.ceil(p/Qt),l=o>l?o+1:l+1,s>l&&(s=l,a.length=1),a.reverse();s--;)a.push(0);a.reverse()}for(l=c.length,s=h.length,l-s<0&&(s=l,a=h,h=c,c=a),n=0;s;)n=(c[--s]=c[s]+h[s]+n)/Gn|0,c[s]%=Gn;for(n&&(c.unshift(n),++i),l=c.length;c[--l]==0;)c.pop();return t.d=c,t.e=i,sn?Vt(t,p):t}function us(e,t,n){if(e!==~~e||e<t||e>n)throw Error(Ec+e)}function es(e){var t,n,a,i=e.length-1,s="",o=e[0];if(i>0){for(s+=o,t=1;t<i;t++)a=e[t]+"",n=Qt-a.length,n&&(s+=cl(n)),s+=a;o=e[t],a=o+"",n=Qt-a.length,n&&(s+=cl(n))}else if(o===0)return"0";for(;o%10===0;)o/=10;return s+o}var Qs=(function(){function e(a,i){var s,o=0,l=a.length;for(a=a.slice();l--;)s=a[l]*i+o,a[l]=s%Gn|0,o=s/Gn|0;return o&&a.unshift(o),a}function t(a,i,s,o){var l,c;if(s!=o)c=s>o?1:-1;else for(l=c=0;l<s;l++)if(a[l]!=i[l]){c=a[l]>i[l]?1:-1;break}return c}function n(a,i,s){for(var o=0;s--;)a[s]-=o,o=a[s]<i[s]?1:0,a[s]=o*Gn+a[s]-i[s];for(;!a[0]&&a.length>1;)a.shift()}return function(a,i,s,o){var l,c,h,m,p,x,b,j,N,_,S,A,P,I,O,M,z,$,K=a.constructor,X=a.s==i.s?1:-1,te=a.d,q=i.d;if(!a.s)return new K(a);if(!i.s)throw Error(Xa+"Division by zero");for(c=a.e-i.e,z=q.length,O=te.length,b=new K(X),j=b.d=[],h=0;q[h]==(te[h]||0);)++h;if(q[h]>(te[h]||0)&&--c,s==null?A=s=K.precision:o?A=s+(En(a)-En(i))+1:A=s,A<0)return new K(0);if(A=A/Qt+2|0,h=0,z==1)for(m=0,q=q[0],A++;(h<O||m)&&A--;h++)P=m*Gn+(te[h]||0),j[h]=P/q|0,m=P%q|0;else{for(m=Gn/(q[0]+1)|0,m>1&&(q=e(q,m),te=e(te,m),z=q.length,O=te.length),I=z,N=te.slice(0,z),_=N.length;_<z;)N[_++]=0;$=q.slice(),$.unshift(0),M=q[0],q[1]>=Gn/2&&++M;do m=0,l=t(q,N,z,_),l<0?(S=N[0],z!=_&&(S=S*Gn+(N[1]||0)),m=S/M|0,m>1?(m>=Gn&&(m=Gn-1),p=e(q,m),x=p.length,_=N.length,l=t(p,N,x,_),l==1&&(m--,n(p,z<x?$:q,x))):(m==0&&(l=m=1),p=q.slice()),x=p.length,x<_&&p.unshift(0),n(N,p,_),l==-1&&(_=N.length,l=t(q,N,z,_),l<1&&(m++,n(N,z<_?$:q,_))),_=N.length):l===0&&(m++,N=[0]),j[h++]=m,l&&N[0]?N[_++]=te[I]||0:(N=[te[I]],_=1);while((I++<O||N[0]!==void 0)&&A--)}return j[0]||j.shift(),b.e=c,Vt(b,o?s+En(b)+1:s)}})();function aF(e,t){var n,a,i,s,o,l,c=0,h=0,m=e.constructor,p=m.precision;if(En(e)>16)throw Error(T_+En(e));if(!e.s)return new m(ya);for(sn=!1,l=p,o=new m(.03125);e.abs().gte(.1);)e=e.times(o),h+=5;for(a=Math.log(gc(2,h))/Math.LN10*2+5|0,l+=a,n=i=s=new m(ya),m.precision=l;;){if(i=Vt(i.times(e),l),n=n.times(++c),o=s.plus(Qs(i,n,l)),es(o.d).slice(0,l)===es(s.d).slice(0,l)){for(;h--;)s=Vt(s.times(s),l);return m.precision=p,t==null?(sn=!0,Vt(s,p)):s}s=o}}function En(e){for(var t=e.e*Qt,n=e.d[0];n>=10;n/=10)t++;return t}function T1(e,t,n){if(t>e.LN10.sd())throw sn=!0,n&&(e.precision=n),Error(Xa+"LN10 precision limit exceeded");return Vt(new e(e.LN10),t)}function cl(e){for(var t="";e--;)t+="0";return t}function Um(e,t){var n,a,i,s,o,l,c,h,m,p=1,x=10,b=e,j=b.d,N=b.constructor,_=N.precision;if(b.s<1)throw Error(Xa+(b.s?"NaN":"-Infinity"));if(b.eq(ya))return new N(0);if(t==null?(sn=!1,h=_):h=t,b.eq(10))return t==null&&(sn=!0),T1(N,h);if(h+=x,N.precision=h,n=es(j),a=n.charAt(0),s=En(b),Math.abs(s)<15e14){for(;a<7&&a!=1||a==1&&n.charAt(1)>3;)b=b.times(e),n=es(b.d),a=n.charAt(0),p++;s=En(b),a>1?(b=new N("0."+n),s++):b=new N(a+"."+n.slice(1))}else return c=T1(N,h+2,_).times(s+""),b=Um(new N(a+"."+n.slice(1)),h-x).plus(c),N.precision=_,t==null?(sn=!0,Vt(b,_)):b;for(l=o=b=Qs(b.minus(ya),b.plus(ya),h),m=Vt(b.times(b),h),i=3;;){if(o=Vt(o.times(m),h),c=l.plus(Qs(o,new N(i),h)),es(c.d).slice(0,h)===es(l.d).slice(0,h))return l=l.times(2),s!==0&&(l=l.plus(T1(N,h+2,_).times(s+""))),l=Qs(l,new N(p),h),N.precision=_,t==null?(sn=!0,Vt(l,_)):l;l=c,i+=2}}function SO(e,t){var n,a,i;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(a=t.search(/e/i))>0?(n<0&&(n=a),n+=+t.slice(a+1),t=t.substring(0,a)):n<0&&(n=t.length),a=0;t.charCodeAt(a)===48;)++a;for(i=t.length;t.charCodeAt(i-1)===48;)--i;if(t=t.slice(a,i),t){if(i-=a,n=n-a-1,e.e=jh(n/Qt),e.d=[],a=(n+1)%Qt,n<0&&(a+=Qt),a<i){for(a&&e.d.push(+t.slice(0,a)),i-=Qt;a<i;)e.d.push(+t.slice(a,a+=Qt));t=t.slice(a),a=Qt-t.length}else a-=i;for(;a--;)t+="0";if(e.d.push(+t),sn&&(e.e>sv||e.e<-sv))throw Error(T_+n)}else e.s=0,e.e=0,e.d=[0];return e}function Vt(e,t,n){var a,i,s,o,l,c,h,m,p=e.d;for(o=1,s=p[0];s>=10;s/=10)o++;if(a=t-o,a<0)a+=Qt,i=t,h=p[m=0];else{if(m=Math.ceil((a+1)/Qt),s=p.length,m>=s)return e;for(h=s=p[m],o=1;s>=10;s/=10)o++;a%=Qt,i=a-Qt+o}if(n!==void 0&&(s=gc(10,o-i-1),l=h/s%10|0,c=t<0||p[m+1]!==void 0||h%s,c=n<4?(l||c)&&(n==0||n==(e.s<0?3:2)):l>5||l==5&&(n==4||c||n==6&&(a>0?i>0?h/gc(10,o-i):0:p[m-1])%10&1||n==(e.s<0?8:7))),t<1||!p[0])return c?(s=En(e),p.length=1,t=t-s-1,p[0]=gc(10,(Qt-t%Qt)%Qt),e.e=jh(-t/Qt)||0):(p.length=1,p[0]=e.e=e.s=0),e;if(a==0?(p.length=m,s=1,m--):(p.length=m+1,s=gc(10,Qt-a),p[m]=i>0?(h/gc(10,o-i)%gc(10,i)|0)*s:0),c)for(;;)if(m==0){(p[0]+=s)==Gn&&(p[0]=1,++e.e);break}else{if(p[m]+=s,p[m]!=Gn)break;p[m--]=0,s=1}for(a=p.length;p[--a]===0;)p.pop();if(sn&&(e.e>sv||e.e<-sv))throw Error(T_+En(e));return e}function iF(e,t){var n,a,i,s,o,l,c,h,m,p,x=e.constructor,b=x.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new x(e),sn?Vt(t,b):t;if(c=e.d,p=t.d,a=t.e,h=e.e,c=c.slice(),o=h-a,o){for(m=o<0,m?(n=c,o=-o,l=p.length):(n=p,a=h,l=c.length),i=Math.max(Math.ceil(b/Qt),l)+2,o>i&&(o=i,n.length=1),n.reverse(),i=o;i--;)n.push(0);n.reverse()}else{for(i=c.length,l=p.length,m=i<l,m&&(l=i),i=0;i<l;i++)if(c[i]!=p[i]){m=c[i]<p[i];break}o=0}for(m&&(n=c,c=p,p=n,t.s=-t.s),l=c.length,i=p.length-l;i>0;--i)c[l++]=0;for(i=p.length;i>o;){if(c[--i]<p[i]){for(s=i;s&&c[--s]===0;)c[s]=Gn-1;--c[s],c[i]+=Gn}c[i]-=p[i]}for(;c[--l]===0;)c.pop();for(;c[0]===0;c.shift())--a;return c[0]?(t.d=c,t.e=a,sn?Vt(t,b):t):new x(0)}function Fc(e,t,n){var a,i=En(e),s=es(e.d),o=s.length;return t?(n&&(a=n-o)>0?s=s.charAt(0)+"."+s.slice(1)+cl(a):o>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(i<0?"e":"e+")+i):i<0?(s="0."+cl(-i-1)+s,n&&(a=n-o)>0&&(s+=cl(a))):i>=o?(s+=cl(i+1-o),n&&(a=n-i-1)>0&&(s=s+"."+cl(a))):((a=i+1)<o&&(s=s.slice(0,a)+"."+s.slice(a)),n&&(a=n-o)>0&&(i+1===o&&(s+="."),s+=cl(a))),e.s<0?"-"+s:s}function CO(e,t){if(e.length>t)return e.length=t,!0}function sF(e){var t,n,a;function i(s){var o=this;if(!(o instanceof i))return new i(s);if(o.constructor=i,s instanceof i){o.s=s.s,o.e=s.e,o.d=(s=s.d)?s.slice():s;return}if(typeof s=="number"){if(s*0!==0)throw Error(Ec+s);if(s>0)o.s=1;else if(s<0)s=-s,o.s=-1;else{o.s=0,o.e=0,o.d=[0];return}if(s===~~s&&s<1e7){o.e=0,o.d=[s];return}return SO(o,s.toString())}else if(typeof s!="string")throw Error(Ec+s);if(s.charCodeAt(0)===45?(s=s.slice(1),o.s=-1):o.s=1,vme.test(s))SO(o,s);else throw Error(Ec+s)}if(i.prototype=Me,i.ROUND_UP=0,i.ROUND_DOWN=1,i.ROUND_CEIL=2,i.ROUND_FLOOR=3,i.ROUND_HALF_UP=4,i.ROUND_HALF_DOWN=5,i.ROUND_HALF_EVEN=6,i.ROUND_HALF_CEIL=7,i.ROUND_HALF_FLOOR=8,i.clone=sF,i.config=i.set=bme,e===void 0&&(e={}),e)for(a=["precision","rounding","toExpNeg","toExpPos","LN10"],t=0;t<a.length;)e.hasOwnProperty(n=a[t++])||(e[n]=this[n]);return i.config(e),i}function bme(e){if(!e||typeof e!="object")throw Error(Xa+"Object expected");var t,n,a,i=["precision",1,wh,"rounding",0,8,"toExpNeg",-1/0,0,"toExpPos",0,1/0];for(t=0;t<i.length;t+=3)if((a=e[n=i[t]])!==void 0)if(jh(a)===a&&a>=i[t+1]&&a<=i[t+2])this[n]=a;else throw Error(Ec+n+": "+a);if((a=e[n="LN10"])!==void 0)if(a==Math.LN10)this[n]=new this(a);else throw Error(Ec+n+": "+a);return this}var A_=sF(yme);ya=new A_(1);const Tt=A_;function oF(e){var t;return e===0?t=1:t=Math.floor(new Tt(e).abs().log(10).toNumber())+1,t}function lF(e,t,n){for(var a=new Tt(e),i=0,s=[];a.lt(t)&&i<1e5;)s.push(a.toNumber()),a=a.add(n),i++;return s}function qm(e,t){return kme(e)||Nme(e,t)||jme(e,t)||wme()}function wme(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jme(e,t){if(e){if(typeof e=="string")return TO(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?TO(e,t):void 0}}function TO(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Nme(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function kme(e){if(Array.isArray(e))return e}var cF=e=>{var t=qm(e,2),n=t[0],a=t[1],i=n,s=a;return n>a&&(i=a,s=n),[i,s]},P_=(e,t,n)=>{if(e.lte(0))return new Tt(0);var a=oF(e.toNumber()),i=new Tt(10).pow(a),s=e.div(i),o=a!==1?.05:.1,l=new Tt(Math.ceil(s.div(o).toNumber())).add(n).mul(o),c=l.mul(i);return t?new Tt(c.toNumber()):new Tt(Math.ceil(c.toNumber()))},dF=(e,t,n)=>{var a;if(e.lte(0))return new Tt(0);var i=[1,2,2.5,5],s=e.toNumber(),o=Math.floor(new Tt(s).abs().log(10).toNumber()),l=new Tt(10).pow(o),c=e.div(l).toNumber(),h=i.findIndex(b=>b>=c-1e-10);if(h===-1&&(l=l.mul(10),h=0),h+=n,h>=i.length){var m=Math.floor(h/i.length);h%=i.length,l=l.mul(new Tt(10).pow(m))}var p=(a=i[h])!==null&&a!==void 0?a:1,x=new Tt(p).mul(l);return t?x:new Tt(Math.ceil(x.toNumber()))},_me=(e,t,n)=>{var a=new Tt(1),i=new Tt(e);if(!i.isint()&&n){var s=Math.abs(e);s<1?(a=new Tt(10).pow(oF(e)-1),i=new Tt(Math.floor(i.div(a).toNumber())).mul(a)):s>1&&(i=new Tt(Math.floor(e)))}else e===0?i=new Tt(Math.floor((t-1)/2)):n||(i=new Tt(Math.floor(e)));for(var o=Math.floor((t-1)/2),l=[],c=0;c<t;c++)l.push(i.add(new Tt(c-o).mul(a)).toNumber());return l},uF=function(t,n,a,i){var s=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:P_;if(!Number.isFinite((n-t)/(a-1)))return{step:new Tt(0),tickMin:new Tt(0),tickMax:new Tt(0)};var l=o(new Tt(n).sub(t).div(a-1),i,s),c;t<=0&&n>=0?c=new Tt(0):(c=new Tt(t).add(n).div(2),c=c.sub(new Tt(c).mod(l)));var h=Math.ceil(c.sub(t).div(l).toNumber()),m=Math.ceil(new Tt(n).sub(c).div(l).toNumber()),p=h+m+1;return p>a?uF(t,n,a,i,s+1,o):(p<a&&(m=n>0?m+(a-p):m,h=n>0?h:h+(a-p)),{step:l,tickMin:c.sub(new Tt(h).mul(l)),tickMax:c.add(new Tt(m).mul(l))})},AO=function(t){var n=qm(t,2),a=n[0],i=n[1],s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",c=Math.max(s,2),h=cF([a,i]),m=qm(h,2),p=m[0],x=m[1];if(p===-1/0||x===1/0){var b=x===1/0?[p,...Array(s-1).fill(1/0)]:[...Array(s-1).fill(-1/0),x];return a>i?b.reverse():b}if(p===x)return _me(p,s,o);var j=l==="snap125"?dF:P_,N=uF(p,x,c,o,0,j),_=N.step,S=N.tickMin,A=N.tickMax,P=lF(S,A.add(new Tt(.1).mul(_)),_);return a>i?P.reverse():P},PO=function(t,n){var a=qm(t,2),i=a[0],s=a[1],o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,l=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"auto",c=cF([i,s]),h=qm(c,2),m=h[0],p=h[1];if(m===-1/0||p===1/0)return[i,s];if(m===p)return[m];var x=l==="snap125"?dF:P_,b=Math.max(n,2),j=x(new Tt(p).sub(m).div(b-1),o,0),N=[...lF(new Tt(m),new Tt(p),j),p];if(o===!1){N=N.map(S=>Math.round(S));var _=N.length-1;_>0&&N[_]===N[_-1]&&(N=N.slice(0,_))}return i>s?N.reverse():N},Sme=e=>e.rootProps.barCategoryGap,C0=e=>e.rootProps.stackOffset,hF=e=>e.rootProps.reverseStackOrder,E_=e=>e.options.chartName,O_=e=>e.rootProps.syncId,fF=e=>e.rootProps.syncMethod,R_=e=>e.options.eventEmitter,Cme=e=>e.rootProps.baseValue,Dr={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},oc={allowDecimals:!1,allowDataOverflow:!1,angleAxisId:0,reversed:!1,scale:"auto",tick:!0,type:"auto"},Ki={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,includeHidden:!1,radiusAxisId:0,reversed:!1,scale:"auto",tick:!0,tickCount:5,type:"auto"},T0=(e,t)=>{if(!(!e||!t))return e!=null&&e.reversed?[t[1],t[0]]:t};function A0(e,t,n){if(n!=="auto")return n;if(e!=null)return fs(e,t)?"category":"number"}function EO(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function ov(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?EO(Object(n),!0).forEach(function(a){Tme(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):EO(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Tme(e,t,n){return(t=Ame(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ame(e){var t=Pme(e,"string");return typeof t=="symbol"?t:t+""}function Pme(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var OO={allowDataOverflow:oc.allowDataOverflow,allowDecimals:oc.allowDecimals,allowDuplicatedCategory:!1,dataKey:void 0,domain:void 0,id:oc.angleAxisId,includeHidden:!1,name:void 0,reversed:oc.reversed,scale:oc.scale,tick:oc.tick,tickCount:void 0,ticks:void 0,type:oc.type,unit:void 0,niceTicks:"auto"},RO={allowDataOverflow:Ki.allowDataOverflow,allowDecimals:Ki.allowDecimals,allowDuplicatedCategory:Ki.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:Ki.radiusAxisId,includeHidden:Ki.includeHidden,name:void 0,reversed:Ki.reversed,scale:Ki.scale,tick:Ki.tick,tickCount:Ki.tickCount,ticks:void 0,type:Ki.type,unit:void 0,niceTicks:"auto"},Eme=(e,t)=>{if(t!=null)return e.polarAxis.angleAxis[t]},I_=le([Eme,W9],(e,t)=>{var n;if(e!=null)return e;var a=(n=A0(t,"angleAxis",OO.type))!==null&&n!==void 0?n:"category";return ov(ov({},OO),{},{type:a})}),Ome=(e,t)=>e.polarAxis.radiusAxis[t],M_=le([Ome,W9],(e,t)=>{var n;if(e!=null)return e;var a=(n=A0(t,"radiusAxis",RO.type))!==null&&n!==void 0?n:"category";return ov(ov({},RO),{},{type:a})}),P0=e=>e.polarOptions,L_=le([ho,fo,dr],Xfe),mF=le([P0,L_],(e,t)=>{if(e!=null)return Nl(e.innerRadius,t,0)}),pF=le([P0,L_],(e,t)=>{if(e!=null)return Nl(e.outerRadius,t,t*.8)}),Rme=e=>{if(e==null)return[0,0];var t=e.startAngle,n=e.endAngle;return[t,n]},gF=le([P0],Rme);le([I_,gF],T0);var xF=le([L_,mF,pF],(e,t,n)=>{if(!(e==null||t==null||n==null))return[t,n]});le([M_,xF],T0);var yF=le([ln,P0,mF,pF,ho,fo],(e,t,n,a,i,s)=>{if(!(e!=="centric"&&e!=="radial"||t==null||n==null||a==null)){var o=t.cx,l=t.cy,c=t.startAngle,h=t.endAngle;return{cx:Nl(o,i,i/2),cy:Nl(l,s,s/2),innerRadius:n,outerRadius:a,startAngle:c,endAngle:h,clockWise:!1}}}),Jn=(e,t)=>t,E0=(e,t,n)=>n;function D_(e){return e?.id}function vF(e,t,n){var a=t.chartData,i=a===void 0?[]:a,s=n.allowDuplicatedCategory,o=n.dataKey,l=new Map;return e.forEach(c=>{var h,m=(h=c.data)!==null&&h!==void 0?h:i;if(!(m==null||m.length===0)){var p=D_(c);m.forEach((x,b)=>{var j=o==null||s?b:String(zn(x,o,null)),N=zn(x,c.dataKey,0),_;l.has(j)?_=l.get(j):_={},Object.assign(_,{[p]:N}),l.set(j,_)})}}),Array.from(l.values())}function B_(e){return"stackId"in e&&e.stackId!=null&&e.dataKey!=null}var Cp=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function O0(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function Ime(e,t){if(e.length===t.length){for(var n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}return!1}var Xn=e=>{var t=ln(e);return t==="horizontal"?"xAxis":t==="vertical"?"yAxis":t==="centric"?"angleAxis":"radiusAxis"},Nh=e=>e.tooltip.settings.axisId;function F_(e){if(e!=null){var t=e.ticks,n=e.bandwidth,a=e.range(),i=[Math.min(...a),Math.max(...a)];return{domain:()=>e.domain(),range:(function(s){function o(){return s.apply(this,arguments)}return o.toString=function(){return s.toString()},o})(()=>i),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(s){var o=i[0],l=i[1];return o<=l?s>=o&&s<=l:s>=l&&s<=o},bandwidth:n?()=>n.call(e):void 0,ticks:t?s=>t.call(e,s):void 0,map:(s,o)=>{var l=e(s);if(l!=null){if(e.bandwidth&&o!==null&&o!==void 0&&o.position){var c=e.bandwidth();switch(o.position){case"middle":l+=c/2;break;case"end":l+=c;break}}return l}}}}}var Mme=(e,t)=>{if(t!=null)switch(e){case"linear":{if(!as(t)){for(var n,a,i=0;i<t.length;i++){var s=t[i];St(s)&&((n===void 0||s<n)&&(n=s),(a===void 0||s>a)&&(a=s))}return n!==void 0&&a!==void 0?[n,a]:void 0}return t}default:return t}};function pl(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function Lme(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function z_(e){let t,n,a;e.length!==2?(t=pl,n=(l,c)=>pl(e(l),c),a=(l,c)=>e(l)-c):(t=e===pl||e===Lme?e:Dme,n=e,a=e);function i(l,c,h=0,m=l.length){if(h<m){if(t(c,c)!==0)return m;do{const p=h+m>>>1;n(l[p],c)<0?h=p+1:m=p}while(h<m)}return h}function s(l,c,h=0,m=l.length){if(h<m){if(t(c,c)!==0)return m;do{const p=h+m>>>1;n(l[p],c)<=0?h=p+1:m=p}while(h<m)}return h}function o(l,c,h=0,m=l.length){const p=i(l,c,h,m-1);return p>h&&a(l[p-1],c)>-a(l[p],c)?p-1:p}return{left:i,center:o,right:s}}function Dme(){return 0}function bF(e){return e===null?NaN:+e}function*Bme(e,t){for(let n of e)n!=null&&(n=+n)>=n&&(yield n)}const Fme=z_(pl),Tp=Fme.right;z_(bF).center;class IO extends Map{constructor(t,n=Hme){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),t!=null)for(const[a,i]of t)this.set(a,i)}get(t){return super.get(MO(this,t))}has(t){return super.has(MO(this,t))}set(t,n){return super.set(zme(this,t),n)}delete(t){return super.delete($me(this,t))}}function MO({_intern:e,_key:t},n){const a=t(n);return e.has(a)?e.get(a):n}function zme({_intern:e,_key:t},n){const a=t(n);return e.has(a)?e.get(a):(e.set(a,n),n)}function $me({_intern:e,_key:t},n){const a=t(n);return e.has(a)&&(n=e.get(a),e.delete(a)),n}function Hme(e){return e!==null&&typeof e=="object"?e.valueOf():e}function Wme(e=pl){if(e===pl)return wF;if(typeof e!="function")throw new TypeError("compare is not a function");return(t,n)=>{const a=e(t,n);return a||a===0?a:(e(n,n)===0)-(e(t,t)===0)}}function wF(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:e>t?1:0)}const Vme=Math.sqrt(50),Ume=Math.sqrt(10),qme=Math.sqrt(2);function lv(e,t,n){const a=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(a)),s=a/Math.pow(10,i),o=s>=Vme?10:s>=Ume?5:s>=qme?2:1;let l,c,h;return i<0?(h=Math.pow(10,-i)/o,l=Math.round(e*h),c=Math.round(t*h),l/h<e&&++l,c/h>t&&--c,h=-h):(h=Math.pow(10,i)*o,l=Math.round(e/h),c=Math.round(t/h),l*h<e&&++l,c*h>t&&--c),c<l&&.5<=n&&n<2?lv(e,t,n*2):[l,c,h]}function QN(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];const a=t<e,[i,s,o]=a?lv(t,e,n):lv(e,t,n);if(!(s>=i))return[];const l=s-i+1,c=new Array(l);if(a)if(o<0)for(let h=0;h<l;++h)c[h]=(s-h)/-o;else for(let h=0;h<l;++h)c[h]=(s-h)*o;else if(o<0)for(let h=0;h<l;++h)c[h]=(i+h)/-o;else for(let h=0;h<l;++h)c[h]=(i+h)*o;return c}function ek(e,t,n){return t=+t,e=+e,n=+n,lv(e,t,n)[2]}function tk(e,t,n){t=+t,e=+e,n=+n;const a=t<e,i=a?ek(t,e,n):ek(e,t,n);return(a?-1:1)*(i<0?1/-i:i)}function LO(e,t){let n;for(const a of e)a!=null&&(n<a||n===void 0&&a>=a)&&(n=a);return n}function DO(e,t){let n;for(const a of e)a!=null&&(n>a||n===void 0&&a>=a)&&(n=a);return n}function jF(e,t,n=0,a=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),a=Math.floor(Math.min(e.length-1,a)),!(n<=t&&t<=a))return e;for(i=i===void 0?wF:Wme(i);a>n;){if(a-n>600){const c=a-n+1,h=t-n+1,m=Math.log(c),p=.5*Math.exp(2*m/3),x=.5*Math.sqrt(m*p*(c-p)/c)*(h-c/2<0?-1:1),b=Math.max(n,Math.floor(t-h*p/c+x)),j=Math.min(a,Math.floor(t+(c-h)*p/c+x));jF(e,t,b,j,i)}const s=e[t];let o=n,l=a;for(Uf(e,n,t),i(e[a],s)>0&&Uf(e,n,a);o<l;){for(Uf(e,o,l),++o,--l;i(e[o],s)<0;)++o;for(;i(e[l],s)>0;)--l}i(e[n],s)===0?Uf(e,n,l):(++l,Uf(e,l,a)),l<=t&&(n=l+1),t<=l&&(a=l-1)}return e}function Uf(e,t,n){const a=e[t];e[t]=e[n],e[n]=a}function Gme(e,t,n){if(e=Float64Array.from(Bme(e)),!(!(a=e.length)||isNaN(t=+t))){if(t<=0||a<2)return DO(e);if(t>=1)return LO(e);var a,i=(a-1)*t,s=Math.floor(i),o=LO(jF(e,s).subarray(0,s+1)),l=DO(e.subarray(s+1));return o+(l-o)*(i-s)}}function Kme(e,t,n=bF){if(!(!(a=e.length)||isNaN(t=+t))){if(t<=0||a<2)return+n(e[0],0,e);if(t>=1)return+n(e[a-1],a-1,e);var a,i=(a-1)*t,s=Math.floor(i),o=+n(e[s],s,e),l=+n(e[s+1],s+1,e);return o+(l-o)*(i-s)}}function Zme(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var a=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,s=new Array(i);++a<i;)s[a]=e+a*n;return s}function ni(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e);break}return this}function mo(e,t){switch(arguments.length){case 0:break;case 1:{typeof e=="function"?this.interpolator(e):this.range(e);break}default:{this.domain(e),typeof t=="function"?this.interpolator(t):this.range(t);break}}return this}const nk=Symbol("implicit");function $_(){var e=new IO,t=[],n=[],a=nk;function i(s){let o=e.get(s);if(o===void 0){if(a!==nk)return a;e.set(s,o=t.push(s)-1)}return n[o%n.length]}return i.domain=function(s){if(!arguments.length)return t.slice();t=[],e=new IO;for(const o of s)e.has(o)||e.set(o,t.push(o)-1);return i},i.range=function(s){return arguments.length?(n=Array.from(s),i):n.slice()},i.unknown=function(s){return arguments.length?(a=s,i):a},i.copy=function(){return $_(t,n).unknown(a)},ni.apply(i,arguments),i}function H_(){var e=$_().unknown(void 0),t=e.domain,n=e.range,a=0,i=1,s,o,l=!1,c=0,h=0,m=.5;delete e.unknown;function p(){var x=t().length,b=i<a,j=b?i:a,N=b?a:i;s=(N-j)/Math.max(1,x-c+h*2),l&&(s=Math.floor(s)),j+=(N-j-s*(x-c))*m,o=s*(1-c),l&&(j=Math.round(j),o=Math.round(o));var _=Zme(x).map(function(S){return j+s*S});return n(b?_.reverse():_)}return e.domain=function(x){return arguments.length?(t(x),p()):t()},e.range=function(x){return arguments.length?([a,i]=x,a=+a,i=+i,p()):[a,i]},e.rangeRound=function(x){return[a,i]=x,a=+a,i=+i,l=!0,p()},e.bandwidth=function(){return o},e.step=function(){return s},e.round=function(x){return arguments.length?(l=!!x,p()):l},e.padding=function(x){return arguments.length?(c=Math.min(1,h=+x),p()):c},e.paddingInner=function(x){return arguments.length?(c=Math.min(1,x),p()):c},e.paddingOuter=function(x){return arguments.length?(h=+x,p()):h},e.align=function(x){return arguments.length?(m=Math.max(0,Math.min(1,x)),p()):m},e.copy=function(){return H_(t(),[a,i]).round(l).paddingInner(c).paddingOuter(h).align(m)},ni.apply(p(),arguments)}function NF(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return NF(t())},e}function Yme(){return NF(H_.apply(null,arguments).paddingInner(1))}function W_(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function kF(e,t){var n=Object.create(e.prototype);for(var a in t)n[a]=t[a];return n}function Ap(){}var Gm=.7,cv=1/Gm,Ou="\\s*([+-]?\\d+)\\s*",Km="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",is="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Jme=/^#([0-9a-f]{3,8})$/,Xme=new RegExp(`^rgb\\(${Ou},${Ou},${Ou}\\)$`),Qme=new RegExp(`^rgb\\(${is},${is},${is}\\)$`),epe=new RegExp(`^rgba\\(${Ou},${Ou},${Ou},${Km}\\)$`),tpe=new RegExp(`^rgba\\(${is},${is},${is},${Km}\\)$`),npe=new RegExp(`^hsl\\(${Km},${is},${is}\\)$`),rpe=new RegExp(`^hsla\\(${Km},${is},${is},${Km}\\)$`),BO={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};W_(Ap,Zm,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:FO,formatHex:FO,formatHex8:ape,formatHsl:ipe,formatRgb:zO,toString:zO});function FO(){return this.rgb().formatHex()}function ape(){return this.rgb().formatHex8()}function ipe(){return _F(this).formatHsl()}function zO(){return this.rgb().formatRgb()}function Zm(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Jme.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?$O(t):n===3?new ta(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?$x(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?$x(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Xme.exec(e))?new ta(t[1],t[2],t[3],1):(t=Qme.exec(e))?new ta(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=epe.exec(e))?$x(t[1],t[2],t[3],t[4]):(t=tpe.exec(e))?$x(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=npe.exec(e))?VO(t[1],t[2]/100,t[3]/100,1):(t=rpe.exec(e))?VO(t[1],t[2]/100,t[3]/100,t[4]):BO.hasOwnProperty(e)?$O(BO[e]):e==="transparent"?new ta(NaN,NaN,NaN,0):null}function $O(e){return new ta(e>>16&255,e>>8&255,e&255,1)}function $x(e,t,n,a){return a<=0&&(e=t=n=NaN),new ta(e,t,n,a)}function spe(e){return e instanceof Ap||(e=Zm(e)),e?(e=e.rgb(),new ta(e.r,e.g,e.b,e.opacity)):new ta}function rk(e,t,n,a){return arguments.length===1?spe(e):new ta(e,t,n,a??1)}function ta(e,t,n,a){this.r=+e,this.g=+t,this.b=+n,this.opacity=+a}W_(ta,rk,kF(Ap,{brighter(e){return e=e==null?cv:Math.pow(cv,e),new ta(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Gm:Math.pow(Gm,e),new ta(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new ta(Oc(this.r),Oc(this.g),Oc(this.b),dv(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:HO,formatHex:HO,formatHex8:ope,formatRgb:WO,toString:WO}));function HO(){return`#${_c(this.r)}${_c(this.g)}${_c(this.b)}`}function ope(){return`#${_c(this.r)}${_c(this.g)}${_c(this.b)}${_c((isNaN(this.opacity)?1:this.opacity)*255)}`}function WO(){const e=dv(this.opacity);return`${e===1?"rgb(":"rgba("}${Oc(this.r)}, ${Oc(this.g)}, ${Oc(this.b)}${e===1?")":`, ${e})`}`}function dv(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Oc(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function _c(e){return e=Oc(e),(e<16?"0":"")+e.toString(16)}function VO(e,t,n,a){return a<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new bi(e,t,n,a)}function _F(e){if(e instanceof bi)return new bi(e.h,e.s,e.l,e.opacity);if(e instanceof Ap||(e=Zm(e)),!e)return new bi;if(e instanceof bi)return e;e=e.rgb();var t=e.r/255,n=e.g/255,a=e.b/255,i=Math.min(t,n,a),s=Math.max(t,n,a),o=NaN,l=s-i,c=(s+i)/2;return l?(t===s?o=(n-a)/l+(n<a)*6:n===s?o=(a-t)/l+2:o=(t-n)/l+4,l/=c<.5?s+i:2-s-i,o*=60):l=c>0&&c<1?0:o,new bi(o,l,c,e.opacity)}function lpe(e,t,n,a){return arguments.length===1?_F(e):new bi(e,t,n,a??1)}function bi(e,t,n,a){this.h=+e,this.s=+t,this.l=+n,this.opacity=+a}W_(bi,lpe,kF(Ap,{brighter(e){return e=e==null?cv:Math.pow(cv,e),new bi(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Gm:Math.pow(Gm,e),new bi(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,a=n+(n<.5?n:1-n)*t,i=2*n-a;return new ta(A1(e>=240?e-240:e+120,i,a),A1(e,i,a),A1(e<120?e+240:e-120,i,a),this.opacity)},clamp(){return new bi(UO(this.h),Hx(this.s),Hx(this.l),dv(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=dv(this.opacity);return`${e===1?"hsl(":"hsla("}${UO(this.h)}, ${Hx(this.s)*100}%, ${Hx(this.l)*100}%${e===1?")":`, ${e})`}`}}));function UO(e){return e=(e||0)%360,e<0?e+360:e}function Hx(e){return Math.max(0,Math.min(1,e||0))}function A1(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const V_=e=>()=>e;function cpe(e,t){return function(n){return e+n*t}}function dpe(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(a){return Math.pow(e+a*t,n)}}function upe(e){return(e=+e)==1?SF:function(t,n){return n-t?dpe(t,n,e):V_(isNaN(t)?n:t)}}function SF(e,t){var n=t-e;return n?cpe(e,n):V_(isNaN(e)?t:e)}const qO=(function e(t){var n=upe(t);function a(i,s){var o=n((i=rk(i)).r,(s=rk(s)).r),l=n(i.g,s.g),c=n(i.b,s.b),h=SF(i.opacity,s.opacity);return function(m){return i.r=o(m),i.g=l(m),i.b=c(m),i.opacity=h(m),i+""}}return a.gamma=e,a})(1);function hpe(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,a=t.slice(),i;return function(s){for(i=0;i<n;++i)a[i]=e[i]*(1-s)+t[i]*s;return a}}function fpe(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function mpe(e,t){var n=t?t.length:0,a=e?Math.min(n,e.length):0,i=new Array(a),s=new Array(n),o;for(o=0;o<a;++o)i[o]=kh(e[o],t[o]);for(;o<n;++o)s[o]=t[o];return function(l){for(o=0;o<a;++o)s[o]=i[o](l);return s}}function ppe(e,t){var n=new Date;return e=+e,t=+t,function(a){return n.setTime(e*(1-a)+t*a),n}}function uv(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function gpe(e,t){var n={},a={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?n[i]=kh(e[i],t[i]):a[i]=t[i];return function(s){for(i in n)a[i]=n[i](s);return a}}var ak=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,P1=new RegExp(ak.source,"g");function xpe(e){return function(){return e}}function ype(e){return function(t){return e(t)+""}}function vpe(e,t){var n=ak.lastIndex=P1.lastIndex=0,a,i,s,o=-1,l=[],c=[];for(e=e+"",t=t+"";(a=ak.exec(e))&&(i=P1.exec(t));)(s=i.index)>n&&(s=t.slice(n,s),l[o]?l[o]+=s:l[++o]=s),(a=a[0])===(i=i[0])?l[o]?l[o]+=i:l[++o]=i:(l[++o]=null,c.push({i:o,x:uv(a,i)})),n=P1.lastIndex;return n<t.length&&(s=t.slice(n),l[o]?l[o]+=s:l[++o]=s),l.length<2?c[0]?ype(c[0].x):xpe(t):(t=c.length,function(h){for(var m=0,p;m<t;++m)l[(p=c[m]).i]=p.x(h);return l.join("")})}function kh(e,t){var n=typeof t,a;return t==null||n==="boolean"?V_(t):(n==="number"?uv:n==="string"?(a=Zm(t))?(t=a,qO):vpe:t instanceof Zm?qO:t instanceof Date?ppe:fpe(t)?hpe:Array.isArray(t)?mpe:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?gpe:uv)(e,t)}function U_(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function bpe(e,t){t===void 0&&(t=e,e=kh);for(var n=0,a=t.length-1,i=t[0],s=new Array(a<0?0:a);n<a;)s[n]=e(i,i=t[++n]);return function(o){var l=Math.max(0,Math.min(a-1,Math.floor(o*=a)));return s[l](o-l)}}function wpe(e){return function(){return e}}function hv(e){return+e}var GO=[0,1];function Br(e){return e}function ik(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:wpe(isNaN(t)?NaN:.5)}function jpe(e,t){var n;return e>t&&(n=e,e=t,t=n),function(a){return Math.max(e,Math.min(t,a))}}function Npe(e,t,n){var a=e[0],i=e[1],s=t[0],o=t[1];return i<a?(a=ik(i,a),s=n(o,s)):(a=ik(a,i),s=n(s,o)),function(l){return s(a(l))}}function kpe(e,t,n){var a=Math.min(e.length,t.length)-1,i=new Array(a),s=new Array(a),o=-1;for(e[a]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<a;)i[o]=ik(e[o],e[o+1]),s[o]=n(t[o],t[o+1]);return function(l){var c=Tp(e,l,1,a)-1;return s[c](i[c](l))}}function Pp(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function R0(){var e=GO,t=GO,n=kh,a,i,s,o=Br,l,c,h;function m(){var x=Math.min(e.length,t.length);return o!==Br&&(o=jpe(e[0],e[x-1])),l=x>2?kpe:Npe,c=h=null,p}function p(x){return x==null||isNaN(x=+x)?s:(c||(c=l(e.map(a),t,n)))(a(o(x)))}return p.invert=function(x){return o(i((h||(h=l(t,e.map(a),uv)))(x)))},p.domain=function(x){return arguments.length?(e=Array.from(x,hv),m()):e.slice()},p.range=function(x){return arguments.length?(t=Array.from(x),m()):t.slice()},p.rangeRound=function(x){return t=Array.from(x),n=U_,m()},p.clamp=function(x){return arguments.length?(o=x?!0:Br,m()):o!==Br},p.interpolate=function(x){return arguments.length?(n=x,m()):n},p.unknown=function(x){return arguments.length?(s=x,p):s},function(x,b){return a=x,i=b,m()}}function q_(){return R0()(Br,Br)}function _pe(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString("en").replace(/,/g,""):e.toString(10)}function fv(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf("e"),a=e.slice(0,n);return[a.length>1?a[0]+a.slice(2):a,+e.slice(n+1)]}function Ku(e){return e=fv(Math.abs(e)),e?e[1]:NaN}function Spe(e,t){return function(n,a){for(var i=n.length,s=[],o=0,l=e[0],c=0;i>0&&l>0&&(c+l+1>a&&(l=Math.max(1,a-c)),s.push(n.substring(i-=l,i+l)),!((c+=l+1)>a));)l=e[o=(o+1)%e.length];return s.reverse().join(t)}}function Cpe(e){return function(t){return t.replace(/[0-9]/g,function(n){return e[+n]})}}var Tpe=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function Ym(e){if(!(t=Tpe.exec(e)))throw new Error("invalid format: "+e);var t;return new G_({fill:t[1],align:t[2],sign:t[3],symbol:t[4],zero:t[5],width:t[6],comma:t[7],precision:t[8]&&t[8].slice(1),trim:t[9],type:t[10]})}Ym.prototype=G_.prototype;function G_(e){this.fill=e.fill===void 0?" ":e.fill+"",this.align=e.align===void 0?">":e.align+"",this.sign=e.sign===void 0?"-":e.sign+"",this.symbol=e.symbol===void 0?"":e.symbol+"",this.zero=!!e.zero,this.width=e.width===void 0?void 0:+e.width,this.comma=!!e.comma,this.precision=e.precision===void 0?void 0:+e.precision,this.trim=!!e.trim,this.type=e.type===void 0?"":e.type+""}G_.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function Ape(e){e:for(var t=e.length,n=1,a=-1,i;n<t;++n)switch(e[n]){case".":a=i=n;break;case"0":a===0&&(a=n),i=n;break;default:if(!+e[n])break e;a>0&&(a=0);break}return a>0?e.slice(0,a)+e.slice(i+1):e}var mv;function Ppe(e,t){var n=fv(e,t);if(!n)return mv=void 0,e.toPrecision(t);var a=n[0],i=n[1],s=i-(mv=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=a.length;return s===o?a:s>o?a+new Array(s-o+1).join("0"):s>0?a.slice(0,s)+"."+a.slice(s):"0."+new Array(1-s).join("0")+fv(e,Math.max(0,t+s-1))[0]}function KO(e,t){var n=fv(e,t);if(!n)return e+"";var a=n[0],i=n[1];return i<0?"0."+new Array(-i).join("0")+a:a.length>i+1?a.slice(0,i+1)+"."+a.slice(i+1):a+new Array(i-a.length+2).join("0")}const ZO={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+"",d:_pe,e:(e,t)=>e.toExponential(t),f:(e,t)=>e.toFixed(t),g:(e,t)=>e.toPrecision(t),o:e=>Math.round(e).toString(8),p:(e,t)=>KO(e*100,t),r:KO,s:Ppe,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function YO(e){return e}var JO=Array.prototype.map,XO=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function Epe(e){var t=e.grouping===void 0||e.thousands===void 0?YO:Spe(JO.call(e.grouping,Number),e.thousands+""),n=e.currency===void 0?"":e.currency[0]+"",a=e.currency===void 0?"":e.currency[1]+"",i=e.decimal===void 0?".":e.decimal+"",s=e.numerals===void 0?YO:Cpe(JO.call(e.numerals,String)),o=e.percent===void 0?"%":e.percent+"",l=e.minus===void 0?"−":e.minus+"",c=e.nan===void 0?"NaN":e.nan+"";function h(p,x){p=Ym(p);var b=p.fill,j=p.align,N=p.sign,_=p.symbol,S=p.zero,A=p.width,P=p.comma,I=p.precision,O=p.trim,M=p.type;M==="n"?(P=!0,M="g"):ZO[M]||(I===void 0&&(I=12),O=!0,M="g"),(S||b==="0"&&j==="=")&&(S=!0,b="0",j="=");var z=(x&&x.prefix!==void 0?x.prefix:"")+(_==="$"?n:_==="#"&&/[boxX]/.test(M)?"0"+M.toLowerCase():""),$=(_==="$"?a:/[%p]/.test(M)?o:"")+(x&&x.suffix!==void 0?x.suffix:""),K=ZO[M],X=/[defgprs%]/.test(M);I=I===void 0?6:/[gprs]/.test(M)?Math.max(1,Math.min(21,I)):Math.max(0,Math.min(20,I));function te(q){var he=z,ne=$,G,H,Q;if(M==="c")ne=K(q)+ne,q="";else{q=+q;var W=q<0||1/q<0;if(q=isNaN(q)?c:K(Math.abs(q),I),O&&(q=Ape(q)),W&&+q==0&&N!=="+"&&(W=!1),he=(W?N==="("?N:l:N==="-"||N==="("?"":N)+he,ne=(M==="s"&&!isNaN(q)&&mv!==void 0?XO[8+mv/3]:"")+ne+(W&&N==="("?")":""),X){for(G=-1,H=q.length;++G<H;)if(Q=q.charCodeAt(G),48>Q||Q>57){ne=(Q===46?i+q.slice(G+1):q.slice(G))+ne,q=q.slice(0,G);break}}}P&&!S&&(q=t(q,1/0));var ie=he.length+q.length+ne.length,Y=ie<A?new Array(A-ie+1).join(b):"";switch(P&&S&&(q=t(Y+q,Y.length?A-ne.length:1/0),Y=""),j){case"<":q=he+q+ne+Y;break;case"=":q=he+Y+q+ne;break;case"^":q=Y.slice(0,ie=Y.length>>1)+he+q+ne+Y.slice(ie);break;default:q=Y+he+q+ne;break}return s(q)}return te.toString=function(){return p+""},te}function m(p,x){var b=Math.max(-8,Math.min(8,Math.floor(Ku(x)/3)))*3,j=Math.pow(10,-b),N=h((p=Ym(p),p.type="f",p),{suffix:XO[8+b/3]});return function(_){return N(j*_)}}return{format:h,formatPrefix:m}}var Wx,K_,CF;Ope({thousands:",",grouping:[3],currency:["$",""]});function Ope(e){return Wx=Epe(e),K_=Wx.format,CF=Wx.formatPrefix,Wx}function Rpe(e){return Math.max(0,-Ku(Math.abs(e)))}function Ipe(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(Ku(t)/3)))*3-Ku(Math.abs(e)))}function Mpe(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,Ku(t)-Ku(e))+1}function TF(e,t,n,a){var i=tk(e,t,n),s;switch(a=Ym(a??",f"),a.type){case"s":{var o=Math.max(Math.abs(e),Math.abs(t));return a.precision==null&&!isNaN(s=Ipe(i,o))&&(a.precision=s),CF(a,o)}case"":case"e":case"g":case"p":case"r":{a.precision==null&&!isNaN(s=Mpe(i,Math.max(Math.abs(e),Math.abs(t))))&&(a.precision=s-(a.type==="e"));break}case"f":case"%":{a.precision==null&&!isNaN(s=Rpe(i))&&(a.precision=s-(a.type==="%")*2);break}}return K_(a)}function Tl(e){var t=e.domain;return e.ticks=function(n){var a=t();return QN(a[0],a[a.length-1],n??10)},e.tickFormat=function(n,a){var i=t();return TF(i[0],i[i.length-1],n??10,a)},e.nice=function(n){n==null&&(n=10);var a=t(),i=0,s=a.length-1,o=a[i],l=a[s],c,h,m=10;for(l<o&&(h=o,o=l,l=h,h=i,i=s,s=h);m-- >0;){if(h=ek(o,l,n),h===c)return a[i]=o,a[s]=l,t(a);if(h>0)o=Math.floor(o/h)*h,l=Math.ceil(l/h)*h;else if(h<0)o=Math.ceil(o*h)/h,l=Math.floor(l*h)/h;else break;c=h}return e},e}function AF(){var e=q_();return e.copy=function(){return Pp(e,AF())},ni.apply(e,arguments),Tl(e)}function PF(e){var t;function n(a){return a==null||isNaN(a=+a)?t:a}return n.invert=n,n.domain=n.range=function(a){return arguments.length?(e=Array.from(a,hv),n):e.slice()},n.unknown=function(a){return arguments.length?(t=a,n):t},n.copy=function(){return PF(e).unknown(t)},e=arguments.length?Array.from(e,hv):[0,1],Tl(n)}function EF(e,t){e=e.slice();var n=0,a=e.length-1,i=e[n],s=e[a],o;return s<i&&(o=n,n=a,a=o,o=i,i=s,s=o),e[n]=t.floor(i),e[a]=t.ceil(s),e}function QO(e){return Math.log(e)}function e5(e){return Math.exp(e)}function Lpe(e){return-Math.log(-e)}function Dpe(e){return-Math.exp(-e)}function Bpe(e){return isFinite(e)?+("1e"+e):e<0?0:e}function Fpe(e){return e===10?Bpe:e===Math.E?Math.exp:t=>Math.pow(e,t)}function zpe(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function t5(e){return(t,n)=>-e(-t,n)}function Z_(e){const t=e(QO,e5),n=t.domain;let a=10,i,s;function o(){return i=zpe(a),s=Fpe(a),n()[0]<0?(i=t5(i),s=t5(s),e(Lpe,Dpe)):e(QO,e5),t}return t.base=function(l){return arguments.length?(a=+l,o()):a},t.domain=function(l){return arguments.length?(n(l),o()):n()},t.ticks=l=>{const c=n();let h=c[0],m=c[c.length-1];const p=m<h;p&&([h,m]=[m,h]);let x=i(h),b=i(m),j,N;const _=l==null?10:+l;let S=[];if(!(a%1)&&b-x<_){if(x=Math.floor(x),b=Math.ceil(b),h>0){for(;x<=b;++x)for(j=1;j<a;++j)if(N=x<0?j/s(-x):j*s(x),!(N<h)){if(N>m)break;S.push(N)}}else for(;x<=b;++x)for(j=a-1;j>=1;--j)if(N=x>0?j/s(-x):j*s(x),!(N<h)){if(N>m)break;S.push(N)}S.length*2<_&&(S=QN(h,m,_))}else S=QN(x,b,Math.min(b-x,_)).map(s);return p?S.reverse():S},t.tickFormat=(l,c)=>{if(l==null&&(l=10),c==null&&(c=a===10?"s":","),typeof c!="function"&&(!(a%1)&&(c=Ym(c)).precision==null&&(c.trim=!0),c=K_(c)),l===1/0)return c;const h=Math.max(1,a*l/t.ticks().length);return m=>{let p=m/s(Math.round(i(m)));return p*a<a-.5&&(p*=a),p<=h?c(m):""}},t.nice=()=>n(EF(n(),{floor:l=>s(Math.floor(i(l))),ceil:l=>s(Math.ceil(i(l)))})),t}function OF(){const e=Z_(R0()).domain([1,10]);return e.copy=()=>Pp(e,OF()).base(e.base()),ni.apply(e,arguments),e}function n5(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function r5(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function Y_(e){var t=1,n=e(n5(t),r5(t));return n.constant=function(a){return arguments.length?e(n5(t=+a),r5(t)):t},Tl(n)}function RF(){var e=Y_(R0());return e.copy=function(){return Pp(e,RF()).constant(e.constant())},ni.apply(e,arguments)}function a5(e){return function(t){return t<0?-Math.pow(-t,e):Math.pow(t,e)}}function $pe(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function Hpe(e){return e<0?-e*e:e*e}function J_(e){var t=e(Br,Br),n=1;function a(){return n===1?e(Br,Br):n===.5?e($pe,Hpe):e(a5(n),a5(1/n))}return t.exponent=function(i){return arguments.length?(n=+i,a()):n},Tl(t)}function X_(){var e=J_(R0());return e.copy=function(){return Pp(e,X_()).exponent(e.exponent())},ni.apply(e,arguments),e}function Wpe(){return X_.apply(null,arguments).exponent(.5)}function i5(e){return Math.sign(e)*e*e}function Vpe(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function IF(){var e=q_(),t=[0,1],n=!1,a;function i(s){var o=Vpe(e(s));return isNaN(o)?a:n?Math.round(o):o}return i.invert=function(s){return e.invert(i5(s))},i.domain=function(s){return arguments.length?(e.domain(s),i):e.domain()},i.range=function(s){return arguments.length?(e.range((t=Array.from(s,hv)).map(i5)),i):t.slice()},i.rangeRound=function(s){return i.range(s).round(!0)},i.round=function(s){return arguments.length?(n=!!s,i):n},i.clamp=function(s){return arguments.length?(e.clamp(s),i):e.clamp()},i.unknown=function(s){return arguments.length?(a=s,i):a},i.copy=function(){return IF(e.domain(),t).round(n).clamp(e.clamp()).unknown(a)},ni.apply(i,arguments),Tl(i)}function MF(){var e=[],t=[],n=[],a;function i(){var o=0,l=Math.max(1,t.length);for(n=new Array(l-1);++o<l;)n[o-1]=Kme(e,o/l);return s}function s(o){return o==null||isNaN(o=+o)?a:t[Tp(n,o)]}return s.invertExtent=function(o){var l=t.indexOf(o);return l<0?[NaN,NaN]:[l>0?n[l-1]:e[0],l<n.length?n[l]:e[e.length-1]]},s.domain=function(o){if(!arguments.length)return e.slice();e=[];for(let l of o)l!=null&&!isNaN(l=+l)&&e.push(l);return e.sort(pl),i()},s.range=function(o){return arguments.length?(t=Array.from(o),i()):t.slice()},s.unknown=function(o){return arguments.length?(a=o,s):a},s.quantiles=function(){return n.slice()},s.copy=function(){return MF().domain(e).range(t).unknown(a)},ni.apply(s,arguments)}function LF(){var e=0,t=1,n=1,a=[.5],i=[0,1],s;function o(c){return c!=null&&c<=c?i[Tp(a,c,0,n)]:s}function l(){var c=-1;for(a=new Array(n);++c<n;)a[c]=((c+1)*t-(c-n)*e)/(n+1);return o}return o.domain=function(c){return arguments.length?([e,t]=c,e=+e,t=+t,l()):[e,t]},o.range=function(c){return arguments.length?(n=(i=Array.from(c)).length-1,l()):i.slice()},o.invertExtent=function(c){var h=i.indexOf(c);return h<0?[NaN,NaN]:h<1?[e,a[0]]:h>=n?[a[n-1],t]:[a[h-1],a[h]]},o.unknown=function(c){return arguments.length&&(s=c),o},o.thresholds=function(){return a.slice()},o.copy=function(){return LF().domain([e,t]).range(i).unknown(s)},ni.apply(Tl(o),arguments)}function DF(){var e=[.5],t=[0,1],n,a=1;function i(s){return s!=null&&s<=s?t[Tp(e,s,0,a)]:n}return i.domain=function(s){return arguments.length?(e=Array.from(s),a=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(s){return arguments.length?(t=Array.from(s),a=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(s){var o=t.indexOf(s);return[e[o-1],e[o]]},i.unknown=function(s){return arguments.length?(n=s,i):n},i.copy=function(){return DF().domain(e).range(t).unknown(n)},ni.apply(i,arguments)}const E1=new Date,O1=new Date;function $n(e,t,n,a){function i(s){return e(s=arguments.length===0?new Date:new Date(+s)),s}return i.floor=s=>(e(s=new Date(+s)),s),i.ceil=s=>(e(s=new Date(s-1)),t(s,1),e(s),s),i.round=s=>{const o=i(s),l=i.ceil(s);return s-o<l-s?o:l},i.offset=(s,o)=>(t(s=new Date(+s),o==null?1:Math.floor(o)),s),i.range=(s,o,l)=>{const c=[];if(s=i.ceil(s),l=l==null?1:Math.floor(l),!(s<o)||!(l>0))return c;let h;do c.push(h=new Date(+s)),t(s,l),e(s);while(h<s&&s<o);return c},i.filter=s=>$n(o=>{if(o>=o)for(;e(o),!s(o);)o.setTime(o-1)},(o,l)=>{if(o>=o)if(l<0)for(;++l<=0;)for(;t(o,-1),!s(o););else for(;--l>=0;)for(;t(o,1),!s(o););}),n&&(i.count=(s,o)=>(E1.setTime(+s),O1.setTime(+o),e(E1),e(O1),Math.floor(n(E1,O1))),i.every=s=>(s=Math.floor(s),!isFinite(s)||!(s>0)?null:s>1?i.filter(a?o=>a(o)%s===0:o=>i.count(0,o)%s===0):i)),i}const pv=$n(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);pv.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?$n(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):pv);pv.range;const Ks=1e3,Ua=Ks*60,Zs=Ua*60,oo=Zs*24,Q_=oo*7,s5=oo*30,R1=oo*365,Sc=$n(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*Ks)},(e,t)=>(t-e)/Ks,e=>e.getUTCSeconds());Sc.range;const eS=$n(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Ks)},(e,t)=>{e.setTime(+e+t*Ua)},(e,t)=>(t-e)/Ua,e=>e.getMinutes());eS.range;const tS=$n(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*Ua)},(e,t)=>(t-e)/Ua,e=>e.getUTCMinutes());tS.range;const nS=$n(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*Ks-e.getMinutes()*Ua)},(e,t)=>{e.setTime(+e+t*Zs)},(e,t)=>(t-e)/Zs,e=>e.getHours());nS.range;const rS=$n(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*Zs)},(e,t)=>(t-e)/Zs,e=>e.getUTCHours());rS.range;const Ep=$n(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*Ua)/oo,e=>e.getDate()-1);Ep.range;const I0=$n(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/oo,e=>e.getUTCDate()-1);I0.range;const BF=$n(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/oo,e=>Math.floor(e/oo));BF.range;function Yc(e){return $n(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(t,n)=>{t.setDate(t.getDate()+n*7)},(t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Ua)/Q_)}const M0=Yc(0),gv=Yc(1),Upe=Yc(2),qpe=Yc(3),Zu=Yc(4),Gpe=Yc(5),Kpe=Yc(6);M0.range;gv.range;Upe.range;qpe.range;Zu.range;Gpe.range;Kpe.range;function Jc(e){return $n(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCDate(t.getUTCDate()+n*7)},(t,n)=>(n-t)/Q_)}const L0=Jc(0),xv=Jc(1),Zpe=Jc(2),Ype=Jc(3),Yu=Jc(4),Jpe=Jc(5),Xpe=Jc(6);L0.range;xv.range;Zpe.range;Ype.range;Yu.range;Jpe.range;Xpe.range;const aS=$n(e=>{e.setDate(1),e.setHours(0,0,0,0)},(e,t)=>{e.setMonth(e.getMonth()+t)},(e,t)=>t.getMonth()-e.getMonth()+(t.getFullYear()-e.getFullYear())*12,e=>e.getMonth());aS.range;const iS=$n(e=>{e.setUTCDate(1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCMonth(e.getUTCMonth()+t)},(e,t)=>t.getUTCMonth()-e.getUTCMonth()+(t.getUTCFullYear()-e.getUTCFullYear())*12,e=>e.getUTCMonth());iS.range;const lo=$n(e=>{e.setMonth(0,1),e.setHours(0,0,0,0)},(e,t)=>{e.setFullYear(e.getFullYear()+t)},(e,t)=>t.getFullYear()-e.getFullYear(),e=>e.getFullYear());lo.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:$n(t=>{t.setFullYear(Math.floor(t.getFullYear()/e)*e),t.setMonth(0,1),t.setHours(0,0,0,0)},(t,n)=>{t.setFullYear(t.getFullYear()+n*e)});lo.range;const co=$n(e=>{e.setUTCMonth(0,1),e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCFullYear(e.getUTCFullYear()+t)},(e,t)=>t.getUTCFullYear()-e.getUTCFullYear(),e=>e.getUTCFullYear());co.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:$n(t=>{t.setUTCFullYear(Math.floor(t.getUTCFullYear()/e)*e),t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},(t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n*e)});co.range;function FF(e,t,n,a,i,s){const o=[[Sc,1,Ks],[Sc,5,5*Ks],[Sc,15,15*Ks],[Sc,30,30*Ks],[s,1,Ua],[s,5,5*Ua],[s,15,15*Ua],[s,30,30*Ua],[i,1,Zs],[i,3,3*Zs],[i,6,6*Zs],[i,12,12*Zs],[a,1,oo],[a,2,2*oo],[n,1,Q_],[t,1,s5],[t,3,3*s5],[e,1,R1]];function l(h,m,p){const x=m<h;x&&([h,m]=[m,h]);const b=p&&typeof p.range=="function"?p:c(h,m,p),j=b?b.range(h,+m+1):[];return x?j.reverse():j}function c(h,m,p){const x=Math.abs(m-h)/p,b=z_(([,,_])=>_).right(o,x);if(b===o.length)return e.every(tk(h/R1,m/R1,p));if(b===0)return pv.every(Math.max(tk(h,m,p),1));const[j,N]=o[x/o[b-1][2]<o[b][2]/x?b-1:b];return j.every(N)}return[l,c]}const[Qpe,ege]=FF(co,iS,L0,BF,rS,tS),[tge,nge]=FF(lo,aS,M0,Ep,nS,eS);function I1(e){if(0<=e.y&&e.y<100){var t=new Date(-1,e.m,e.d,e.H,e.M,e.S,e.L);return t.setFullYear(e.y),t}return new Date(e.y,e.m,e.d,e.H,e.M,e.S,e.L)}function M1(e){if(0<=e.y&&e.y<100){var t=new Date(Date.UTC(-1,e.m,e.d,e.H,e.M,e.S,e.L));return t.setUTCFullYear(e.y),t}return new Date(Date.UTC(e.y,e.m,e.d,e.H,e.M,e.S,e.L))}function qf(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function rge(e){var t=e.dateTime,n=e.date,a=e.time,i=e.periods,s=e.days,o=e.shortDays,l=e.months,c=e.shortMonths,h=Gf(i),m=Kf(i),p=Gf(s),x=Kf(s),b=Gf(o),j=Kf(o),N=Gf(l),_=Kf(l),S=Gf(c),A=Kf(c),P={a:Q,A:W,b:ie,B:Y,c:null,d:h5,e:h5,f:Sge,g:Lge,G:Bge,H:Nge,I:kge,j:_ge,L:zF,m:Cge,M:Tge,p:V,q:re,Q:p5,s:g5,S:Age,u:Pge,U:Ege,V:Oge,w:Rge,W:Ige,x:null,X:null,y:Mge,Y:Dge,Z:Fge,"%":m5},I={a:be,A:ge,b:Ne,B:we,c:null,d:f5,e:f5,f:Wge,g:Qge,G:txe,H:zge,I:$ge,j:Hge,L:HF,m:Vge,M:Uge,p:Fe,q:Ce,Q:p5,s:g5,S:qge,u:Gge,U:Kge,V:Zge,w:Yge,W:Jge,x:null,X:null,y:Xge,Y:exe,Z:nxe,"%":m5},O={a:X,A:te,b:q,B:he,c:ne,d:d5,e:d5,f:vge,g:c5,G:l5,H:u5,I:u5,j:pge,L:yge,m:mge,M:gge,p:K,q:fge,Q:wge,s:jge,S:xge,u:lge,U:cge,V:dge,w:oge,W:uge,x:G,X:H,y:c5,Y:l5,Z:hge,"%":bge};P.x=M(n,P),P.X=M(a,P),P.c=M(t,P),I.x=M(n,I),I.X=M(a,I),I.c=M(t,I);function M(me,Ae){return function(Te){var fe=[],tt=-1,at=0,Oe=me.length,cn,On,Hr;for(Te instanceof Date||(Te=new Date(+Te));++tt<Oe;)me.charCodeAt(tt)===37&&(fe.push(me.slice(at,tt)),(On=o5[cn=me.charAt(++tt)])!=null?cn=me.charAt(++tt):On=cn==="e"?" ":"0",(Hr=Ae[cn])&&(cn=Hr(Te,On)),fe.push(cn),at=tt+1);return fe.push(me.slice(at,tt)),fe.join("")}}function z(me,Ae){return function(Te){var fe=qf(1900,void 0,1),tt=$(fe,me,Te+="",0),at,Oe;if(tt!=Te.length)return null;if("Q"in fe)return new Date(fe.Q);if("s"in fe)return new Date(fe.s*1e3+("L"in fe?fe.L:0));if(Ae&&!("Z"in fe)&&(fe.Z=0),"p"in fe&&(fe.H=fe.H%12+fe.p*12),fe.m===void 0&&(fe.m="q"in fe?fe.q:0),"V"in fe){if(fe.V<1||fe.V>53)return null;"w"in fe||(fe.w=1),"Z"in fe?(at=M1(qf(fe.y,0,1)),Oe=at.getUTCDay(),at=Oe>4||Oe===0?xv.ceil(at):xv(at),at=I0.offset(at,(fe.V-1)*7),fe.y=at.getUTCFullYear(),fe.m=at.getUTCMonth(),fe.d=at.getUTCDate()+(fe.w+6)%7):(at=I1(qf(fe.y,0,1)),Oe=at.getDay(),at=Oe>4||Oe===0?gv.ceil(at):gv(at),at=Ep.offset(at,(fe.V-1)*7),fe.y=at.getFullYear(),fe.m=at.getMonth(),fe.d=at.getDate()+(fe.w+6)%7)}else("W"in fe||"U"in fe)&&("w"in fe||(fe.w="u"in fe?fe.u%7:"W"in fe?1:0),Oe="Z"in fe?M1(qf(fe.y,0,1)).getUTCDay():I1(qf(fe.y,0,1)).getDay(),fe.m=0,fe.d="W"in fe?(fe.w+6)%7+fe.W*7-(Oe+5)%7:fe.w+fe.U*7-(Oe+6)%7);return"Z"in fe?(fe.H+=fe.Z/100|0,fe.M+=fe.Z%100,M1(fe)):I1(fe)}}function $(me,Ae,Te,fe){for(var tt=0,at=Ae.length,Oe=Te.length,cn,On;tt<at;){if(fe>=Oe)return-1;if(cn=Ae.charCodeAt(tt++),cn===37){if(cn=Ae.charAt(tt++),On=O[cn in o5?Ae.charAt(tt++):cn],!On||(fe=On(me,Te,fe))<0)return-1}else if(cn!=Te.charCodeAt(fe++))return-1}return fe}function K(me,Ae,Te){var fe=h.exec(Ae.slice(Te));return fe?(me.p=m.get(fe[0].toLowerCase()),Te+fe[0].length):-1}function X(me,Ae,Te){var fe=b.exec(Ae.slice(Te));return fe?(me.w=j.get(fe[0].toLowerCase()),Te+fe[0].length):-1}function te(me,Ae,Te){var fe=p.exec(Ae.slice(Te));return fe?(me.w=x.get(fe[0].toLowerCase()),Te+fe[0].length):-1}function q(me,Ae,Te){var fe=S.exec(Ae.slice(Te));return fe?(me.m=A.get(fe[0].toLowerCase()),Te+fe[0].length):-1}function he(me,Ae,Te){var fe=N.exec(Ae.slice(Te));return fe?(me.m=_.get(fe[0].toLowerCase()),Te+fe[0].length):-1}function ne(me,Ae,Te){return $(me,t,Ae,Te)}function G(me,Ae,Te){return $(me,n,Ae,Te)}function H(me,Ae,Te){return $(me,a,Ae,Te)}function Q(me){return o[me.getDay()]}function W(me){return s[me.getDay()]}function ie(me){return c[me.getMonth()]}function Y(me){return l[me.getMonth()]}function V(me){return i[+(me.getHours()>=12)]}function re(me){return 1+~~(me.getMonth()/3)}function be(me){return o[me.getUTCDay()]}function ge(me){return s[me.getUTCDay()]}function Ne(me){return c[me.getUTCMonth()]}function we(me){return l[me.getUTCMonth()]}function Fe(me){return i[+(me.getUTCHours()>=12)]}function Ce(me){return 1+~~(me.getUTCMonth()/3)}return{format:function(me){var Ae=M(me+="",P);return Ae.toString=function(){return me},Ae},parse:function(me){var Ae=z(me+="",!1);return Ae.toString=function(){return me},Ae},utcFormat:function(me){var Ae=M(me+="",I);return Ae.toString=function(){return me},Ae},utcParse:function(me){var Ae=z(me+="",!0);return Ae.toString=function(){return me},Ae}}}var o5={"-":"",_:" ",0:"0"},Qn=/^\s*\d+/,age=/^%/,ige=/[\\^$*+?|[\]().{}]/g;function It(e,t,n){var a=e<0?"-":"",i=(a?-e:e)+"",s=i.length;return a+(s<n?new Array(n-s+1).join(t)+i:i)}function sge(e){return e.replace(ige,"\\$&")}function Gf(e){return new RegExp("^(?:"+e.map(sge).join("|")+")","i")}function Kf(e){return new Map(e.map((t,n)=>[t.toLowerCase(),n]))}function oge(e,t,n){var a=Qn.exec(t.slice(n,n+1));return a?(e.w=+a[0],n+a[0].length):-1}function lge(e,t,n){var a=Qn.exec(t.slice(n,n+1));return a?(e.u=+a[0],n+a[0].length):-1}function cge(e,t,n){var a=Qn.exec(t.slice(n,n+2));return a?(e.U=+a[0],n+a[0].length):-1}function dge(e,t,n){var a=Qn.exec(t.slice(n,n+2));return a?(e.V=+a[0],n+a[0].length):-1}function uge(e,t,n){var a=Qn.exec(t.slice(n,n+2));return a?(e.W=+a[0],n+a[0].length):-1}function l5(e,t,n){var a=Qn.exec(t.slice(n,n+4));return a?(e.y=+a[0],n+a[0].length):-1}function c5(e,t,n){var a=Qn.exec(t.slice(n,n+2));return a?(e.y=+a[0]+(+a[0]>68?1900:2e3),n+a[0].length):-1}function hge(e,t,n){var a=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return a?(e.Z=a[1]?0:-(a[2]+(a[3]||"00")),n+a[0].length):-1}function fge(e,t,n){var a=Qn.exec(t.slice(n,n+1));return a?(e.q=a[0]*3-3,n+a[0].length):-1}function mge(e,t,n){var a=Qn.exec(t.slice(n,n+2));return a?(e.m=a[0]-1,n+a[0].length):-1}function d5(e,t,n){var a=Qn.exec(t.slice(n,n+2));return a?(e.d=+a[0],n+a[0].length):-1}function pge(e,t,n){var a=Qn.exec(t.slice(n,n+3));return a?(e.m=0,e.d=+a[0],n+a[0].length):-1}function u5(e,t,n){var a=Qn.exec(t.slice(n,n+2));return a?(e.H=+a[0],n+a[0].length):-1}function gge(e,t,n){var a=Qn.exec(t.slice(n,n+2));return a?(e.M=+a[0],n+a[0].length):-1}function xge(e,t,n){var a=Qn.exec(t.slice(n,n+2));return a?(e.S=+a[0],n+a[0].length):-1}function yge(e,t,n){var a=Qn.exec(t.slice(n,n+3));return a?(e.L=+a[0],n+a[0].length):-1}function vge(e,t,n){var a=Qn.exec(t.slice(n,n+6));return a?(e.L=Math.floor(a[0]/1e3),n+a[0].length):-1}function bge(e,t,n){var a=age.exec(t.slice(n,n+1));return a?n+a[0].length:-1}function wge(e,t,n){var a=Qn.exec(t.slice(n));return a?(e.Q=+a[0],n+a[0].length):-1}function jge(e,t,n){var a=Qn.exec(t.slice(n));return a?(e.s=+a[0],n+a[0].length):-1}function h5(e,t){return It(e.getDate(),t,2)}function Nge(e,t){return It(e.getHours(),t,2)}function kge(e,t){return It(e.getHours()%12||12,t,2)}function _ge(e,t){return It(1+Ep.count(lo(e),e),t,3)}function zF(e,t){return It(e.getMilliseconds(),t,3)}function Sge(e,t){return zF(e,t)+"000"}function Cge(e,t){return It(e.getMonth()+1,t,2)}function Tge(e,t){return It(e.getMinutes(),t,2)}function Age(e,t){return It(e.getSeconds(),t,2)}function Pge(e){var t=e.getDay();return t===0?7:t}function Ege(e,t){return It(M0.count(lo(e)-1,e),t,2)}function $F(e){var t=e.getDay();return t>=4||t===0?Zu(e):Zu.ceil(e)}function Oge(e,t){return e=$F(e),It(Zu.count(lo(e),e)+(lo(e).getDay()===4),t,2)}function Rge(e){return e.getDay()}function Ige(e,t){return It(gv.count(lo(e)-1,e),t,2)}function Mge(e,t){return It(e.getFullYear()%100,t,2)}function Lge(e,t){return e=$F(e),It(e.getFullYear()%100,t,2)}function Dge(e,t){return It(e.getFullYear()%1e4,t,4)}function Bge(e,t){var n=e.getDay();return e=n>=4||n===0?Zu(e):Zu.ceil(e),It(e.getFullYear()%1e4,t,4)}function Fge(e){var t=e.getTimezoneOffset();return(t>0?"-":(t*=-1,"+"))+It(t/60|0,"0",2)+It(t%60,"0",2)}function f5(e,t){return It(e.getUTCDate(),t,2)}function zge(e,t){return It(e.getUTCHours(),t,2)}function $ge(e,t){return It(e.getUTCHours()%12||12,t,2)}function Hge(e,t){return It(1+I0.count(co(e),e),t,3)}function HF(e,t){return It(e.getUTCMilliseconds(),t,3)}function Wge(e,t){return HF(e,t)+"000"}function Vge(e,t){return It(e.getUTCMonth()+1,t,2)}function Uge(e,t){return It(e.getUTCMinutes(),t,2)}function qge(e,t){return It(e.getUTCSeconds(),t,2)}function Gge(e){var t=e.getUTCDay();return t===0?7:t}function Kge(e,t){return It(L0.count(co(e)-1,e),t,2)}function WF(e){var t=e.getUTCDay();return t>=4||t===0?Yu(e):Yu.ceil(e)}function Zge(e,t){return e=WF(e),It(Yu.count(co(e),e)+(co(e).getUTCDay()===4),t,2)}function Yge(e){return e.getUTCDay()}function Jge(e,t){return It(xv.count(co(e)-1,e),t,2)}function Xge(e,t){return It(e.getUTCFullYear()%100,t,2)}function Qge(e,t){return e=WF(e),It(e.getUTCFullYear()%100,t,2)}function exe(e,t){return It(e.getUTCFullYear()%1e4,t,4)}function txe(e,t){var n=e.getUTCDay();return e=n>=4||n===0?Yu(e):Yu.ceil(e),It(e.getUTCFullYear()%1e4,t,4)}function nxe(){return"+0000"}function m5(){return"%"}function p5(e){return+e}function g5(e){return Math.floor(+e/1e3)}var lu,VF,UF;rxe({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function rxe(e){return lu=rge(e),VF=lu.format,lu.parse,UF=lu.utcFormat,lu.utcParse,lu}function axe(e){return new Date(e)}function ixe(e){return e instanceof Date?+e:+new Date(+e)}function sS(e,t,n,a,i,s,o,l,c,h){var m=q_(),p=m.invert,x=m.domain,b=h(".%L"),j=h(":%S"),N=h("%I:%M"),_=h("%I %p"),S=h("%a %d"),A=h("%b %d"),P=h("%B"),I=h("%Y");function O(M){return(c(M)<M?b:l(M)<M?j:o(M)<M?N:s(M)<M?_:a(M)<M?i(M)<M?S:A:n(M)<M?P:I)(M)}return m.invert=function(M){return new Date(p(M))},m.domain=function(M){return arguments.length?x(Array.from(M,ixe)):x().map(axe)},m.ticks=function(M){var z=x();return e(z[0],z[z.length-1],M??10)},m.tickFormat=function(M,z){return z==null?O:h(z)},m.nice=function(M){var z=x();return(!M||typeof M.range!="function")&&(M=t(z[0],z[z.length-1],M??10)),M?x(EF(z,M)):m},m.copy=function(){return Pp(m,sS(e,t,n,a,i,s,o,l,c,h))},m}function sxe(){return ni.apply(sS(tge,nge,lo,aS,M0,Ep,nS,eS,Sc,VF).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function oxe(){return ni.apply(sS(Qpe,ege,co,iS,L0,I0,rS,tS,Sc,UF).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function D0(){var e=0,t=1,n,a,i,s,o=Br,l=!1,c;function h(p){return p==null||isNaN(p=+p)?c:o(i===0?.5:(p=(s(p)-n)*i,l?Math.max(0,Math.min(1,p)):p))}h.domain=function(p){return arguments.length?([e,t]=p,n=s(e=+e),a=s(t=+t),i=n===a?0:1/(a-n),h):[e,t]},h.clamp=function(p){return arguments.length?(l=!!p,h):l},h.interpolator=function(p){return arguments.length?(o=p,h):o};function m(p){return function(x){var b,j;return arguments.length?([b,j]=x,o=p(b,j),h):[o(0),o(1)]}}return h.range=m(kh),h.rangeRound=m(U_),h.unknown=function(p){return arguments.length?(c=p,h):c},function(p){return s=p,n=p(e),a=p(t),i=n===a?0:1/(a-n),h}}function Al(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function qF(){var e=Tl(D0()(Br));return e.copy=function(){return Al(e,qF())},mo.apply(e,arguments)}function GF(){var e=Z_(D0()).domain([1,10]);return e.copy=function(){return Al(e,GF()).base(e.base())},mo.apply(e,arguments)}function KF(){var e=Y_(D0());return e.copy=function(){return Al(e,KF()).constant(e.constant())},mo.apply(e,arguments)}function oS(){var e=J_(D0());return e.copy=function(){return Al(e,oS()).exponent(e.exponent())},mo.apply(e,arguments)}function lxe(){return oS.apply(null,arguments).exponent(.5)}function ZF(){var e=[],t=Br;function n(a){if(a!=null&&!isNaN(a=+a))return t((Tp(e,a,1)-1)/(e.length-1))}return n.domain=function(a){if(!arguments.length)return e.slice();e=[];for(let i of a)i!=null&&!isNaN(i=+i)&&e.push(i);return e.sort(pl),n},n.interpolator=function(a){return arguments.length?(t=a,n):t},n.range=function(){return e.map((a,i)=>t(i/(e.length-1)))},n.quantiles=function(a){return Array.from({length:a+1},(i,s)=>Gme(e,s/a))},n.copy=function(){return ZF(t).domain(e)},mo.apply(n,arguments)}function B0(){var e=0,t=.5,n=1,a=1,i,s,o,l,c,h=Br,m,p=!1,x;function b(N){return isNaN(N=+N)?x:(N=.5+((N=+m(N))-s)*(a*N<a*s?l:c),h(p?Math.max(0,Math.min(1,N)):N))}b.domain=function(N){return arguments.length?([e,t,n]=N,i=m(e=+e),s=m(t=+t),o=m(n=+n),l=i===s?0:.5/(s-i),c=s===o?0:.5/(o-s),a=s<i?-1:1,b):[e,t,n]},b.clamp=function(N){return arguments.length?(p=!!N,b):p},b.interpolator=function(N){return arguments.length?(h=N,b):h};function j(N){return function(_){var S,A,P;return arguments.length?([S,A,P]=_,h=bpe(N,[S,A,P]),b):[h(0),h(.5),h(1)]}}return b.range=j(kh),b.rangeRound=j(U_),b.unknown=function(N){return arguments.length?(x=N,b):x},function(N){return m=N,i=N(e),s=N(t),o=N(n),l=i===s?0:.5/(s-i),c=s===o?0:.5/(o-s),a=s<i?-1:1,b}}function YF(){var e=Tl(B0()(Br));return e.copy=function(){return Al(e,YF())},mo.apply(e,arguments)}function JF(){var e=Z_(B0()).domain([.1,1,10]);return e.copy=function(){return Al(e,JF()).base(e.base())},mo.apply(e,arguments)}function XF(){var e=Y_(B0());return e.copy=function(){return Al(e,XF()).constant(e.constant())},mo.apply(e,arguments)}function lS(){var e=J_(B0());return e.copy=function(){return Al(e,lS()).exponent(e.exponent())},mo.apply(e,arguments)}function cxe(){return lS.apply(null,arguments).exponent(.5)}const QF=Object.freeze(Object.defineProperty({__proto__:null,scaleBand:H_,scaleDiverging:YF,scaleDivergingLog:JF,scaleDivergingPow:lS,scaleDivergingSqrt:cxe,scaleDivergingSymlog:XF,scaleIdentity:PF,scaleImplicit:nk,scaleLinear:AF,scaleLog:OF,scaleOrdinal:$_,scalePoint:Yme,scalePow:X_,scaleQuantile:MF,scaleQuantize:LF,scaleRadial:IF,scaleSequential:qF,scaleSequentialLog:GF,scaleSequentialPow:oS,scaleSequentialQuantile:ZF,scaleSequentialSqrt:lxe,scaleSequentialSymlog:KF,scaleSqrt:Wpe,scaleSymlog:RF,scaleThreshold:DF,scaleTime:sxe,scaleUtc:oxe,tickFormat:TF},Symbol.toStringTag,{value:"Module"}));function dxe(e){var t=QF;if(e in t&&typeof t[e]=="function")return t[e]();var n="scale".concat(l_(e));if(n in t&&typeof t[n]=="function")return t[n]()}function x5(e,t,n){if(typeof e=="function")return e.copy().domain(t).range(n);if(e!=null){var a=dxe(e);if(a!=null)return a.domain(t).range(n),a}}function cS(e,t,n,a){if(!(n==null||a==null))return typeof e.scale=="function"?x5(e.scale,n,a):x5(t,n,a)}function uxe(e){return"scale".concat(l_(e))}function hxe(e){return uxe(e)in QF}var e7=(e,t,n)=>{if(e!=null){var a=e.scale,i=e.type;if(a==="auto")return i==="category"&&n&&(n.indexOf("LineChart")>=0||n.indexOf("AreaChart")>=0||n.indexOf("ComposedChart")>=0&&!t)?"point":i==="category"?"band":"linear";if(typeof a=="string")return hxe(a)?a:"point"}};function fxe(e,t){for(var n=0,a=e.length,i=e[0]<e[e.length-1];n<a;){var s=Math.floor((n+a)/2);(i?e[s]<t:e[s]>t)?n=s+1:a=s}return n}function t7(e,t){if(e){var n=t??e.domain(),a=n.map(s=>{var o;return(o=e(s))!==null&&o!==void 0?o:0}),i=e.range();if(!(n.length===0||i.length<2))return s=>{var o,l,c=fxe(a,s);if(c<=0)return n[0];if(c>=n.length)return n[n.length-1];var h=(o=a[c-1])!==null&&o!==void 0?o:0,m=(l=a[c])!==null&&l!==void 0?l:0;return Math.abs(s-h)<=Math.abs(s-m)?n[c-1]:n[c]}}}function mxe(e){if(e!=null)return"invert"in e&&typeof e.invert=="function"?e.invert.bind(e):t7(e,void 0)}function y5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function yv(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?y5(Object(n),!0).forEach(function(a){pxe(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):y5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function pxe(e,t,n){return(t=gxe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function gxe(e){var t=xxe(e,"string");return typeof t=="symbol"?t:t+""}function xxe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function n7(e,t){return wxe(e)||bxe(e,t)||vxe(e,t)||yxe()}function yxe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vxe(e,t){if(e){if(typeof e=="string")return v5(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?v5(e,t):void 0}}function v5(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function bxe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function wxe(e){if(Array.isArray(e))return e}var sk=[0,"auto"],Bn={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:void 0,height:30,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"bottom",padding:{left:0,right:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"category",unit:void 0,niceTicks:"auto"},r7=(e,t)=>e.cartesianAxis.xAxis[t],po=(e,t)=>{var n=r7(e,t);return n??Bn},Fn={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:sk,hide:!0,id:0,includeHidden:!1,interval:"preserveEnd",minTickGap:5,mirror:!1,name:void 0,orientation:"left",padding:{top:0,bottom:0},reversed:!1,scale:"auto",tick:!0,tickCount:5,tickFormatter:void 0,ticks:void 0,type:"number",unit:void 0,niceTicks:"auto",width:Np},a7=(e,t)=>e.cartesianAxis.yAxis[t],go=(e,t)=>{var n=a7(e,t);return n??Fn},jxe={domain:[0,"auto"],includeHidden:!1,reversed:!1,allowDataOverflow:!1,allowDuplicatedCategory:!1,dataKey:void 0,id:0,name:"",range:[64,64],scale:"auto",type:"number",unit:""},dS=(e,t)=>{var n=e.cartesianAxis.zAxis[t];return n??jxe},Sr=(e,t,n)=>{switch(t){case"xAxis":return po(e,n);case"yAxis":return go(e,n);case"zAxis":return dS(e,n);case"angleAxis":return I_(e,n);case"radiusAxis":return M_(e,n);default:throw new Error("Unexpected axis type: ".concat(t))}},Nxe=(e,t,n)=>{switch(t){case"xAxis":return po(e,n);case"yAxis":return go(e,n);default:throw new Error("Unexpected axis type: ".concat(t))}},Op=(e,t,n)=>{switch(t){case"xAxis":return po(e,n);case"yAxis":return go(e,n);case"angleAxis":return I_(e,n);case"radiusAxis":return M_(e,n);default:throw new Error("Unexpected axis type: ".concat(t))}},i7=e=>e.graphicalItems.cartesianItems.some(t=>t.type==="bar")||e.graphicalItems.polarItems.some(t=>t.type==="radialBar");function s7(e,t){return n=>{switch(e){case"xAxis":return"xAxisId"in n&&n.xAxisId===t;case"yAxis":return"yAxisId"in n&&n.yAxisId===t;case"zAxis":return"zAxisId"in n&&n.zAxisId===t;case"angleAxis":return"angleAxisId"in n&&n.angleAxisId===t;case"radiusAxis":return"radiusAxisId"in n&&n.radiusAxisId===t;default:return!1}}}var o7=e=>e.graphicalItems.cartesianItems,kxe=le([Jn,E0],s7),l7=(e,t,n)=>e.filter(n).filter(a=>t?.includeHidden===!0?!0:!a.hide),_h=le([o7,Sr,kxe],l7,{memoizeOptions:{resultEqualityCheck:O0}}),c7=le([_h],e=>e.filter(t=>t.type==="area"||t.type==="bar").filter(B_)),d7=e=>e.filter(t=>!("stackId"in t)||t.stackId===void 0),_xe=le([_h],d7),u7=e=>e.map(t=>t.data).filter(Boolean).flat(1),Sxe=le([_h],e=>e.some(t=>!t.data)),h7=le([_h],u7,{memoizeOptions:{resultEqualityCheck:O0}}),f7=(e,t)=>{var n=t.chartData,a=n===void 0?[]:n,i=t.dataStartIndex,s=t.dataEndIndex;return e.length>0?e:a.slice(i,s+1)},uS=le([h7,S0],f7),Cxe=(e,t,n)=>t?.dataKey!=null?e.map(a=>({value:zn(a,t.dataKey)})):n.length>0?n.map(a=>a.dataKey).flatMap(a=>e.map(i=>({value:zn(i,a)}))):e.map(a=>({value:a})),m7=(e,t,n,a,i,s)=>{var o=a.chartData,l=o===void 0?[]:o,c=a.dataStartIndex,h=a.dataEndIndex,m=Cxe(e,t,n);if(i&&t?.dataKey!=null&&s.length>0){var p=l.slice(c,h+1),x=p.map(b=>({value:zn(b,t.dataKey)})).filter(b=>b.value!=null);return[...x,...m]}return m},Rp=le([uS,Sr,_h,S0,Sxe,h7],m7);function Ru(e){if(cs(e)||e instanceof Date){var t=Number(e);if(St(t))return t}}function b5(e){if(Array.isArray(e)){var t=[Ru(e[0]),Ru(e[1])];return as(t)?t:void 0}var n=Ru(e);if(n!=null)return[n,n]}function _i(e){return e.map(Ru).filter(Lr)}function Txe(e,t){var n=Ru(e),a=Ru(t);return n==null&&a==null?0:n==null?-1:a==null?1:n-a}var Axe=le([Rp],e=>e?.map(t=>t.value).sort(Txe));function p7(e,t){switch(e){case"xAxis":return t.direction==="x";case"yAxis":return t.direction==="y";default:return!1}}function Pxe(e,t,n){if(!n)return[];if(!n.length)return[];var a;if(typeof t=="number"&&!ls(t))a=t;else if(Array.isArray(t)){var i=_i(t);i.length>0&&(a=Math.max(...i))}return a==null?[]:_i(n.flatMap(s=>{var o=zn(e,s.dataKey),l,c;if(Array.isArray(o)){var h=n7(o,2);l=h[0],c=h[1]}else l=c=o;if(!(!St(l)||!St(c)))return[a-l,a+c]}))}var Hn=e=>{var t=Xn(e),n=Nh(e);return Op(e,t,n)},Ju=le([Hn],e=>e?.dataKey),Exe=le([c7,S0,Hn],vF),g7=(e,t,n,a)=>{var i={},s=t.reduce((o,l)=>{if(l.stackId==null)return o;var c=o[l.stackId];return c==null&&(c=[]),c.push(l),o[l.stackId]=c,o},i);return Object.fromEntries(Object.entries(s).map(o=>{var l=n7(o,2),c=l[0],h=l[1],m=a?[...h].reverse():h,p=m.map(D_);return[c,{stackedData:aue(e,p,n),graphicalItems:m}]}))},x7=le([Exe,c7,C0,hF],g7),y7=(e,t,n,a)=>{var i=t.dataStartIndex,s=t.dataEndIndex;if(a==null&&n!=="zAxis")return lue(e,i,s)},Oxe=le([Sr],e=>e.allowDataOverflow),hS=e=>{var t;if(e==null||!("domain"in e))return sk;if(e.domain!=null)return e.domain;if("ticks"in e&&e.ticks!=null){if(e.type==="number"){var n=_i(e.ticks);return[Math.min(...n),Math.max(...n)]}if(e.type==="category")return e.ticks.map(String)}return(t=e?.domain)!==null&&t!==void 0?t:sk},v7=le([Sr],hS),b7=le([v7,Oxe],tF),Rxe=le([x7,Ai,Jn,b7],y7,{memoizeOptions:{resultEqualityCheck:Cp}}),fS=e=>e.errorBars,Ixe=(e,t,n)=>e.flatMap(a=>t[a.id]).filter(Boolean).filter(a=>p7(n,a)),vv=function(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];var i=n.filter(Boolean);if(i.length!==0){var s=i.flat(),o=Math.min(...s),l=Math.max(...s);return[o,l]}},w7=function(t,n,a,i,s){var o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:[],l,c;if(a.length>0&&a.forEach(h=>{var m,p=h.data!=null?[...h.data]:o,x=(m=i[h.id])===null||m===void 0?void 0:m.filter(b=>p7(s,b));p.forEach(b=>{var j,N=zn(b,(j=n.dataKey)!==null&&j!==void 0?j:h.dataKey),_=Pxe(b,N,x);if(_.length>=2){var S=Math.min(..._),A=Math.max(..._);(l==null||S<l)&&(l=S),(c==null||A>c)&&(c=A)}var P=b5(N);P!=null&&(l=l==null?P[0]:Math.min(l,P[0]),c=c==null?P[1]:Math.max(c,P[1]))})}),n?.dataKey!=null&&a.length===0&&t.forEach(h=>{var m=b5(zn(h,n.dataKey));m!=null&&(l=l==null?m[0]:Math.min(l,m[0]),c=c==null?m[1]:Math.max(c,m[1]))}),St(l)&&St(c))return[l,c]},Mxe=le([uS,Sr,_xe,fS,Jn,ume],w7,{memoizeOptions:{resultEqualityCheck:Cp}});function Lxe(e){var t=e.value;if(cs(t)||t instanceof Date)return t}var Dxe=(e,t,n)=>{var a=e.map(Lxe).filter(i=>i!=null);return n&&(t.dataKey==null||t.allowDuplicatedCategory&&uB(a))?eF(0,e.length):t.allowDuplicatedCategory?a:Array.from(new Set(a))},j7=e=>e.referenceElements.dots,Sh=(e,t,n)=>e.filter(a=>a.ifOverflow==="extendDomain").filter(a=>t==="xAxis"?a.xAxisId===n:a.yAxisId===n),Bxe=le([j7,Jn,E0],Sh),N7=e=>e.referenceElements.areas,Fxe=le([N7,Jn,E0],Sh),k7=e=>e.referenceElements.lines,zxe=le([k7,Jn,E0],Sh),_7=(e,t)=>{if(e!=null){var n=_i(e.map(a=>t==="xAxis"?a.x:a.y));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},$xe=le(Bxe,Jn,_7),S7=(e,t)=>{if(e!=null){var n=_i(e.flatMap(a=>[t==="xAxis"?a.x1:a.y1,t==="xAxis"?a.x2:a.y2]));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},Hxe=le([Fxe,Jn],S7);function Wxe(e){var t;if(e.x!=null)return _i([e.x]);var n=(t=e.segment)===null||t===void 0?void 0:t.map(a=>a.x);return n==null||n.length===0?[]:_i(n)}function Vxe(e){var t;if(e.y!=null)return _i([e.y]);var n=(t=e.segment)===null||t===void 0?void 0:t.map(a=>a.y);return n==null||n.length===0?[]:_i(n)}var C7=(e,t)=>{if(e!=null){var n=e.flatMap(a=>t==="xAxis"?Wxe(a):Vxe(a));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},Uxe=le([zxe,Jn],C7),qxe=le($xe,Uxe,Hxe,(e,t,n)=>vv(e,n,t)),T7=(e,t,n,a,i,s,o,l,c)=>{if(n!=null)return n;var h=o==="vertical"&&l==="xAxis"||o==="horizontal"&&l==="yAxis",m=h?vv(a,s,i):vv(s,i),p=xme(t,m,e.allowDataOverflow);return p??(e.allowDataOverflow&&m==null&&c!=null?c:p)},Gxe=e=>{if(!(e==null||e.type!=="number"||!("ticks"in e)||e.ticks==null)){var t=_i(e.ticks);if(t.length!==0)return[Math.min(...t),Math.max(...t)]}},Kxe=le([Sr],Gxe,{memoizeOptions:{resultEqualityCheck:Cp}}),Zxe=le([Sr,v7,b7,Rxe,Mxe,qxe,ln,Jn,Kxe],T7,{memoizeOptions:{resultEqualityCheck:Cp}}),Yxe=[0,1],A7=(e,t,n,a,i,s,o)=>{if(!((e==null||n==null||n.length===0)&&o===void 0)){var l=e.dataKey,c=e.type,h=fs(t,s);if(h&&l==null){var m;return eF(0,(m=n?.length)!==null&&m!==void 0?m:0)}return c==="category"?Dxe(a,e,h):i==="expand"&&!h?Yxe:o}},mS=le([Sr,ln,uS,Rp,C0,Jn,Zxe],A7),Ch=le([Sr,i7,E_],e7),P7=(e,t,n)=>{var a=t.niceTicks;if(a!=="none"){var i=hS(t),s=Array.isArray(i)&&(i[0]==="auto"||i[1]==="auto");if((a==="snap125"||a==="adaptive")&&t!=null&&t.tickCount&&as(e)){if(s)return AO(e,t.tickCount,t.allowDecimals,a);if(t.type==="number")return PO(e,t.tickCount,t.allowDecimals,a)}if(a==="auto"&&n==="linear"&&t!=null&&t.tickCount){if(s&&as(e))return AO(e,t.tickCount,t.allowDecimals,"adaptive");if(t.type==="number"&&as(e))return PO(e,t.tickCount,t.allowDecimals,"adaptive")}}},pS=le([mS,Op,Ch],P7),E7=(e,t,n,a)=>{if(a!=="angleAxis"&&e?.type==="number"&&as(t)&&Array.isArray(n)&&n.length>0){var i,s,o=t[0],l=(i=n[0])!==null&&i!==void 0?i:0,c=t[1],h=(s=n[n.length-1])!==null&&s!==void 0?s:0;return[Math.min(o,l),Math.max(c,h)]}return t},Jxe=le([Sr,mS,pS,Jn],E7),Xxe=le(Rp,Sr,(e,t)=>{if(!(!t||t.type!=="number")){var n=1/0,a=Array.from(_i(e.map(p=>p.value))).sort((p,x)=>p-x),i=a[0],s=a[a.length-1];if(i==null||s==null)return 1/0;var o=s-i;if(o===0)return 1/0;for(var l=0;l<a.length-1;l++){var c=a[l],h=a[l+1];if(!(c==null||h==null)){var m=h-c;n=Math.min(n,m)}}return n/o}}),O7=le(Xxe,ln,Sme,dr,(e,t,n,a,i)=>i,(e,t,n,a,i)=>{if(!St(e))return 0;var s=t==="vertical"?a.height:a.width;if(i==="gap")return e*s/2;if(i==="no-gap"){var o=Nl(n,e*s),l=e*s/2;return l-o-(l-o)/s*o}return 0}),Qxe=(e,t,n)=>{var a=po(e,t);return a==null||typeof a.padding!="string"?0:O7(e,"xAxis",t,n,a.padding)},eye=(e,t,n)=>{var a=go(e,t);return a==null||typeof a.padding!="string"?0:O7(e,"yAxis",t,n,a.padding)},tye=le(po,Qxe,(e,t)=>{var n,a;if(e==null)return{left:0,right:0};var i=e.padding;return typeof i=="string"?{left:t,right:t}:{left:((n=i.left)!==null&&n!==void 0?n:0)+t,right:((a=i.right)!==null&&a!==void 0?a:0)+t}}),nye=le(go,eye,(e,t)=>{var n,a;if(e==null)return{top:0,bottom:0};var i=e.padding;return typeof i=="string"?{top:t,bottom:t}:{top:((n=i.top)!==null&&n!==void 0?n:0)+t,bottom:((a=i.bottom)!==null&&a!==void 0?a:0)+t}}),R7=le([dr,tye,N0,j0,(e,t,n)=>n],(e,t,n,a,i)=>{var s=a.padding;return i?[s.left,n.width-s.right]:[e.left+t.left,e.left+e.width-t.right]}),I7=le([dr,ln,nye,N0,j0,(e,t,n)=>n],(e,t,n,a,i,s)=>{var o=i.padding;return s?[a.height-o.bottom,o.top]:t==="horizontal"?[e.top+e.height-n.bottom,e.top+n.top]:[e.top+n.top,e.top+e.height-n.bottom]}),Ip=(e,t,n,a)=>{var i;switch(t){case"xAxis":return R7(e,n,a);case"yAxis":return I7(e,n,a);case"zAxis":return(i=dS(e,n))===null||i===void 0?void 0:i.range;case"angleAxis":return gF(e);case"radiusAxis":return xF(e,n);default:return}},M7=le([Sr,Ip],T0),rye=le([Ch,Jxe],Mme),gS=le([Sr,Ch,rye,M7],cS),L7=(e,t,n,a)=>{if(!(n==null||n.dataKey==null)){var i=n.type,s=n.scale,o=fs(e,a);if(o&&(i==="number"||s!=="auto"))return t.map(l=>l.value)}},xS=le([ln,Rp,Op,Jn],L7),F0=le([gS],F_);le([gS],mxe);le([gS,Axe],t7);le([_h,fS,Jn],Ixe);function D7(e,t){return e.id<t.id?-1:e.id>t.id?1:0}var z0=(e,t)=>t,$0=(e,t,n)=>n,aye=le(b0,z0,$0,(e,t,n)=>e.filter(a=>a.orientation===t).filter(a=>a.mirror===n).sort(D7)),iye=le(w0,z0,$0,(e,t,n)=>e.filter(a=>a.orientation===t).filter(a=>a.mirror===n).sort(D7)),B7=(e,t)=>{var n=typeof t.height=="number"?t.height:N_;return{width:e.width,height:n}},sye=(e,t)=>{var n=typeof t.width=="number"?t.width:Np;return{width:n,height:e.height}},oye=le(dr,po,B7),lye=(e,t,n)=>{switch(t){case"top":return e.top;case"bottom":return n-e.bottom;default:return 0}},cye=(e,t,n)=>{switch(t){case"left":return e.left;case"right":return n-e.right;default:return 0}},dye=le(fo,dr,aye,z0,$0,(e,t,n,a,i)=>{var s={},o;return n.forEach(l=>{var c=B7(t,l);o==null&&(o=lye(t,a,e));var h=a==="top"&&!i||a==="bottom"&&i;s[l.id]=o-Number(h)*c.height,o+=(h?-1:1)*c.height}),s}),uye=le(ho,dr,iye,z0,$0,(e,t,n,a,i)=>{var s={},o;return n.forEach(l=>{var c=sye(t,l);o==null&&(o=cye(t,a,e));var h=a==="left"&&!i||a==="right"&&i;s[l.id]=o-Number(h)*c.width,o+=(h?-1:1)*c.width}),s}),hye=(e,t)=>{var n=po(e,t);if(n!=null)return dye(e,n.orientation,n.mirror)},fye=le([dr,po,hye,(e,t)=>t],(e,t,n,a)=>{if(t!=null){var i=n?.[a];return i==null?{x:e.left,y:0}:{x:e.left,y:i}}}),mye=(e,t)=>{var n=go(e,t);if(n!=null)return uye(e,n.orientation,n.mirror)},pye=le([dr,go,mye,(e,t)=>t],(e,t,n,a)=>{if(t!=null){var i=n?.[a];return i==null?{x:0,y:e.top}:{x:i,y:e.top}}}),gye=le(dr,go,(e,t)=>{var n=typeof t.width=="number"?t.width:Np;return{width:n,height:e.height}}),F7=(e,t,n,a)=>{if(n!=null){var i=n.allowDuplicatedCategory,s=n.type,o=n.dataKey,l=fs(e,a),c=t.map(m=>m.value),h=c.filter(m=>m!=null);if(o&&l&&s==="category"&&i&&uB(h))return c}},yS=le([ln,Rp,Sr,Jn],F7),w5=le([ln,Nxe,Ch,F0,yS,xS,Ip,pS,Jn],(e,t,n,a,i,s,o,l,c)=>{if(t!=null){var h=fs(e,c);return{angle:t.angle,interval:t.interval,minTickGap:t.minTickGap,orientation:t.orientation,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,axisType:c,categoricalDomain:s,duplicateDomain:i,isCategorical:h,niceTicks:l,range:o,realScaleType:n,scale:a}}}),xye=(e,t,n,a,i,s,o,l,c)=>{if(!(t==null||a==null)){var h=fs(e,c),m=t.type,p=t.ticks,x=t.tickCount,b=n==="scaleBand"&&typeof a.bandwidth=="function"?a.bandwidth()/2:2,j=m==="category"&&a.bandwidth?a.bandwidth()/b:0;j=c==="angleAxis"&&s!=null&&s.length>=2?Wa(s[0]-s[1])*2*j:j;var N=p||i;return N?N.map((_,S)=>{var A=o?o.indexOf(_):_,P=a.map(A);return St(P)?{index:S,coordinate:P+j,value:_,offset:j}:null}).filter(Lr):h&&l?l.map((_,S)=>{var A=a.map(_);return St(A)?{coordinate:A+j,value:_,index:S,offset:j}:null}).filter(Lr):a.ticks?a.ticks(x).map((_,S)=>{var A=a.map(_);return St(A)?{coordinate:A+j,value:_,index:S,offset:j}:null}).filter(Lr):a.domain().map((_,S)=>{var A=a.map(_);return St(A)?{coordinate:A+j,value:o?o[_]:_,index:S,offset:j}:null}).filter(Lr)}},z7=le([ln,Op,Ch,F0,pS,Ip,yS,xS,Jn],xye),yye=(e,t,n,a,i,s,o)=>{if(!(t==null||n==null||a==null||a[0]===a[1])){var l=fs(e,o),c=t.tickCount,h=0;return h=o==="angleAxis"&&a?.length>=2?Wa(a[0]-a[1])*2*h:h,l&&s?s.map((m,p)=>{var x=n.map(m);return St(x)?{coordinate:x+h,value:m,index:p,offset:h}:null}).filter(Lr):n.ticks?n.ticks(c).map((m,p)=>{var x=n.map(m);return St(x)?{coordinate:x+h,value:m,index:p,offset:h}:null}).filter(Lr):n.domain().map((m,p)=>{var x=n.map(m);return St(x)?{coordinate:x+h,value:i?i[m]:m,index:p,offset:h}:null}).filter(Lr)}},$7=le([ln,Op,F0,Ip,yS,xS,Jn],yye),H7=le(Sr,F0,(e,t)=>{if(!(e==null||t==null))return yv(yv({},e),{},{scale:t})}),vye=le([Sr,Ch,mS,M7],cS),bye=le([vye],F_);le((e,t,n)=>dS(e,n),bye,(e,t)=>{if(!(e==null||t==null))return yv(yv({},e),{},{scale:t})});var wye=le([ln,b0,w0],(e,t,n)=>{switch(e){case"horizontal":return t.some(a=>a.reversed)?"right-to-left":"left-to-right";case"vertical":return n.some(a=>a.reversed)?"bottom-to-top":"top-to-bottom";case"centric":case"radial":return"left-to-right";default:return}}),jye=(e,t,n)=>{var a;return(a=e.renderedTicks[t])===null||a===void 0?void 0:a[n]};le([jye],e=>{if(!(!e||e.length===0))return t=>{var n,a=1/0,i=e[0];for(var s of e){var o=Math.abs(s.coordinate-t);o<a&&(a=o,i=s)}return(n=i)===null||n===void 0?void 0:n.value}});var W7=e=>e.options.defaultTooltipEventType,V7=e=>e.options.validateTooltipEventTypes;function U7(e,t,n){if(e==null)return t;var a=e?"axis":"item";return n==null?t:n.includes(a)?a:t}function Mp(e,t){var n=W7(e),a=V7(e);return U7(t,n,a)}function Nye(e){return Ve(t=>Mp(t,e))}var q7=(e,t)=>{var n,a=Number(t);if(!(ls(a)||t==null))return a>=0?e==null||(n=e[a])===null||n===void 0?void 0:n.value:void 0},kye=e=>e.tooltip.settings,hl={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},_ye={itemInteraction:{click:hl,hover:hl},axisInteraction:{click:hl,hover:hl},keyboardInteraction:hl,syncInteraction:{active:!1,index:null,dataKey:void 0,label:void 0,coordinate:void 0,sourceViewBox:void 0,graphicalItemId:void 0},tooltipItemPayloads:[],settings:{shared:void 0,trigger:"hover",axisId:0,active:!1,defaultIndex:void 0}},G7=_r({name:"tooltip",initialState:_ye,reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(Rt(t.payload))},prepare:Xt()},replaceTooltipEntrySettings:{reducer(e,t){var n=t.payload,a=n.prev,i=n.next,s=Va(e).tooltipItemPayloads.indexOf(Rt(a));s>-1&&(e.tooltipItemPayloads[s]=Rt(i))},prepare:Xt()},removeTooltipEntrySettings:{reducer(e,t){var n=Va(e).tooltipItemPayloads.indexOf(Rt(t.payload));n>-1&&e.tooltipItemPayloads.splice(n,1)},prepare:Xt()},setTooltipSettingsState(e,t){e.settings=t.payload},setActiveMouseOverItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.itemInteraction.hover.active=!0,e.itemInteraction.hover.index=t.payload.activeIndex,e.itemInteraction.hover.dataKey=t.payload.activeDataKey,e.itemInteraction.hover.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.hover.coordinate=t.payload.activeCoordinate},mouseLeaveChart(e){e.itemInteraction.hover.active=!1,e.axisInteraction.hover.active=!1},mouseLeaveItem(e){e.itemInteraction.hover.active=!1},setActiveClickItemIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.itemInteraction.click.active=!0,e.keyboardInteraction.active=!1,e.itemInteraction.click.index=t.payload.activeIndex,e.itemInteraction.click.dataKey=t.payload.activeDataKey,e.itemInteraction.click.graphicalItemId=t.payload.activeGraphicalItemId,e.itemInteraction.click.coordinate=t.payload.activeCoordinate},setMouseOverAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.axisInteraction.hover.active=!0,e.keyboardInteraction.active=!1,e.axisInteraction.hover.index=t.payload.activeIndex,e.axisInteraction.hover.dataKey=t.payload.activeDataKey,e.axisInteraction.hover.coordinate=t.payload.activeCoordinate},setMouseClickAxisIndex(e,t){e.syncInteraction.active=!1,e.syncInteraction.sourceViewBox=void 0,e.keyboardInteraction.active=!1,e.axisInteraction.click.active=!0,e.axisInteraction.click.index=t.payload.activeIndex,e.axisInteraction.click.dataKey=t.payload.activeDataKey,e.axisInteraction.click.coordinate=t.payload.activeCoordinate},setSyncInteraction(e,t){e.syncInteraction=t.payload},setKeyboardInteraction(e,t){e.keyboardInteraction.active=t.payload.active,e.keyboardInteraction.index=t.payload.activeIndex,e.keyboardInteraction.coordinate=t.payload.activeCoordinate}}}),ri=G7.actions,Sye=ri.addTooltipEntrySettings,Cye=ri.replaceTooltipEntrySettings,Tye=ri.removeTooltipEntrySettings,Aye=ri.setTooltipSettingsState,Pye=ri.setActiveMouseOverItemIndex;ri.mouseLeaveItem;var K7=ri.mouseLeaveChart;ri.setActiveClickItemIndex;var Z7=ri.setMouseOverAxisIndex,Eye=ri.setMouseClickAxisIndex,cm=ri.setSyncInteraction,bv=ri.setKeyboardInteraction,Oye=G7.reducer;function j5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function Vx(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?j5(Object(n),!0).forEach(function(a){Rye(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):j5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Rye(e,t,n){return(t=Iye(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Iye(e){var t=Mye(e,"string");return typeof t=="symbol"?t:t+""}function Mye(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Lye(e,t,n){return t==="axis"?n==="click"?e.axisInteraction.click:e.axisInteraction.hover:n==="click"?e.itemInteraction.click:e.itemInteraction.hover}function Dye(e){return e.index!=null}var Y7=(e,t,n,a)=>{if(t==null)return hl;var i=Lye(e,t,n);if(i==null)return hl;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var s=e.settings.active===!0;if(Dye(i)){if(s)return Vx(Vx({},i),{},{active:!0})}else if(a!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:a,graphicalItemId:void 0};return Vx(Vx({},hl),{},{coordinate:i.coordinate})};function Bye(e){if(typeof e=="number")return Number.isFinite(e)?e:void 0;if(e instanceof Date){var t=e.valueOf();return Number.isFinite(t)?t:void 0}var n=Number(e);return Number.isFinite(n)?n:void 0}function Fye(e,t){var n=Bye(e),a=t[0],i=t[1];if(n===void 0)return!1;var s=Math.min(a,i),o=Math.max(a,i);return n>=s&&n<=o}function zye(e,t,n){if(n==null||t==null)return!0;var a=zn(e,t);return a==null||!as(n)?!0:Fye(a,n)}var bm=(e,t,n,a)=>{var i=e?.index;if(i==null)return null;var s=Number(i);if(!St(s))return i;var o=0,l=1/0;t.length>0&&(l=t.length-1);var c=Math.max(o,Math.min(s,l)),h=t[c];return h==null||zye(h,n,a)?String(c):null},J7=(e,t,n,a,i,s,o)=>{if(s!=null){var l=o[0],c=l?.getPosition(s);if(c!=null)return c;var h=i?.[Number(s)];if(h)return n==="horizontal"?{x:h.coordinate,y:(a.top+t)/2}:{x:(a.left+e)/2,y:h.coordinate}}},X7=(e,t,n,a)=>{if(t==="axis")return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var i;if(n==="hover"?i=e.itemInteraction.hover.graphicalItemId:i=e.itemInteraction.click.graphicalItemId,e.syncInteraction.active&&i==null)return e.tooltipItemPayloads;if(i==null&&(a!=null||e.keyboardInteraction.active)){var s=e.tooltipItemPayloads[0];return s!=null?[s]:[]}return e.tooltipItemPayloads.filter(o=>{var l;return((l=o.settings)===null||l===void 0?void 0:l.graphicalItemId)===i})},Q7=e=>e.options.tooltipPayloadSearcher,Th=e=>e.tooltip;function N5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function k5(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?N5(Object(n),!0).forEach(function(a){$ye(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):N5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function $ye(e,t,n){return(t=Hye(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Hye(e){var t=Wye(e,"string");return typeof t=="symbol"?t:t+""}function Wye(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Vye(e){if(typeof e=="string"||typeof e=="number")return e}function Uye(e){if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return e}function qye(e){if(typeof e=="string"||typeof e=="number")return e;if(typeof e=="function")return t=>e(t)}function _5(e){if(typeof e=="string")return e}function Gye(e){if(!(e==null||typeof e!="object")){var t="name"in e?Vye(e.name):void 0,n="unit"in e?Uye(e.unit):void 0,a="dataKey"in e?qye(e.dataKey):void 0,i="payload"in e?e.payload:void 0,s="color"in e?_5(e.color):void 0,o="fill"in e?_5(e.fill):void 0;return{name:t,unit:n,dataKey:a,payload:i,color:s,fill:o}}}function Kye(e,t){return e??t}var ez=(e,t,n,a,i,s,o)=>{if(!(t==null||s==null)){var l=n.chartData,c=n.computedData,h=n.dataStartIndex,m=n.dataEndIndex,p=[];return e.reduce((x,b)=>{var j,N=b.dataDefinedOnItem,_=b.settings,S=Kye(N,l),A=Array.isArray(S)?E9(S,h,m):S,P=(j=_?.dataKey)!==null&&j!==void 0?j:a,I=_?.nameKey,O;if(a&&Array.isArray(A)&&!Array.isArray(A[0])&&o==="axis"?(O=hB(A,a,i),O==null&&(O=s(A,t,c,I))):O=s(A,t,c,I),Array.isArray(O))O.forEach(z=>{var $,K,X=Gye(z),te=X?.name,q=X?.dataKey,he=X?.payload,ne=k5(k5({},_),{},{name:te,unit:X?.unit,color:($=X?.color)!==null&&$!==void 0?$:_?.color,fill:(K=X?.fill)!==null&&K!==void 0?K:_?.fill});x.push(_4({tooltipEntrySettings:ne,dataKey:q,payload:he,value:zn(he,q),name:te==null?void 0:String(te)}))});else{var M;x.push(_4({tooltipEntrySettings:_,dataKey:P,payload:O,value:zn(O,P),name:(M=zn(O,I))!==null&&M!==void 0?M:_?.name}))}return x},p)}},vS=le([Hn,i7,E_],e7),Zye=le([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),Yye=le([Xn,Nh],s7),Xc=le([Zye,Hn,Yye],l7,{memoizeOptions:{resultEqualityCheck:O0}}),Jye=le([Xc],e=>e.filter(B_)),tz=le([Xc],u7,{memoizeOptions:{resultEqualityCheck:O0}}),Xye=le([Xc],e=>e.some(t=>!t.data)),zc=le([tz,Ai],f7),Qye=le([Jye,Ai,Hn],vF),bS=le([zc,Hn,Xc,Ai,Xye,tz],m7),nz=le([Hn],hS),eve=le([Hn],e=>e.allowDataOverflow),rz=le([nz,eve],tF),tve=le([Xc],e=>e.filter(B_)),nve=le([Qye,tve,C0,hF],g7),rve=le([nve,Ai,Xn,rz],y7),ave=le([Xc],d7),ive=le([zc,Hn,ave,fS,Xn,hme],w7,{memoizeOptions:{resultEqualityCheck:Cp}}),sve=le([j7,Xn,Nh],Sh),ove=le([sve,Xn],_7),lve=le([N7,Xn,Nh],Sh),cve=le([lve,Xn],S7),dve=le([k7,Xn,Nh],Sh),uve=le([dve,Xn],C7),hve=le([ove,uve,cve],vv),fve=le([Hn,nz,rz,rve,ive,hve,ln,Xn],T7),Xu=le([Hn,ln,zc,bS,C0,Xn,fve],A7),mve=le([Xu,Hn,vS],P7),pve=le([Hn,Xu,mve,Xn],E7),az=e=>{var t=Xn(e),n=Nh(e),a=!1;return Ip(e,t,n,a)},iz=le([Hn,az],T0),gve=le([Hn,vS,pve,iz],cS),sz=le([gve],F_),xve=le([ln,bS,Hn,Xn],F7),yve=le([ln,bS,Hn,Xn],L7),vve=(e,t,n,a,i,s,o,l)=>{if(t){var c=t.type,h=fs(e,l);if(a){var m=n==="scaleBand"&&a.bandwidth?a.bandwidth()/2:2,p=c==="category"&&a.bandwidth?a.bandwidth()/m:0;return p=l==="angleAxis"&&i!=null&&i?.length>=2?Wa(i[0]-i[1])*2*p:p,h&&o?o.map((x,b)=>{var j=a.map(x);return St(j)?{coordinate:j+p,value:x,index:b,offset:p}:null}).filter(Lr):a.domain().map((x,b)=>{var j=a.map(x);return St(j)?{coordinate:j+p,value:s?s[x]:x,index:b,offset:p}:null}).filter(Lr)}}},xo=le([ln,Hn,vS,sz,az,xve,yve,Xn],vve),wS=le([W7,V7,kye],(e,t,n)=>U7(n.shared,e,t)),oz=e=>e.tooltip.settings.trigger,jS=e=>e.tooltip.settings.defaultIndex,Lp=le([Th,wS,oz,jS],Y7),Jm=le([Lp,zc,Ju,Xu],bm),lz=le([xo,Jm],q7),bve=le([Lp],e=>{if(e)return e.dataKey}),wve=le([Lp],e=>{if(e)return e.graphicalItemId}),cz=le([Th,wS,oz,jS],X7),jve=le([ho,fo,ln,dr,xo,jS,cz],J7),Nve=le([Lp,jve],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),kve=le([Lp],e=>{var t;return(t=e?.active)!==null&&t!==void 0?t:!1}),_ve=le([cz,Jm,Ai,Ju,lz,Q7,wS],ez),Sve=le([_ve],e=>{if(e!=null){var t=e.map(n=>n.payload).filter(n=>n!=null);return Array.from(new Set(t))}});function S5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function C5(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?S5(Object(n),!0).forEach(function(a){Cve(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):S5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Cve(e,t,n){return(t=Tve(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Tve(e){var t=Ave(e,"string");return typeof t=="symbol"?t:t+""}function Ave(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Pve=()=>Ve(Hn),Eve=()=>{var e=Pve(),t=Ve(xo),n=Ve(sz);return Qy(!e||!n?void 0:C5(C5({},e),{},{scale:n}),t)};function T5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function cu(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?T5(Object(n),!0).forEach(function(a){Ove(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):T5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Ove(e,t,n){return(t=Rve(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Rve(e){var t=Ive(e,"string");return typeof t=="symbol"?t:t+""}function Ive(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Mve=(e,t,n,a)=>{var i=t.find(s=>s&&s.index===n);if(i){if(e==="horizontal")return{x:i.coordinate,y:a.relativeY};if(e==="vertical")return{x:a.relativeX,y:i.coordinate}}return{x:0,y:0}},Lve=(e,t,n,a)=>{var i=t.find(h=>h&&h.index===n);if(i){if(e==="centric"){var s=i.coordinate,o=a.radius;return cu(cu(cu({},a),sr(a.cx,a.cy,o,s)),{},{angle:s,radius:o})}var l=i.coordinate,c=a.angle;return cu(cu(cu({},a),sr(a.cx,a.cy,l,c)),{},{angle:c,radius:l})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function Dve(e,t){var n=e.relativeX,a=e.relativeY;return n>=t.left&&n<=t.left+t.width&&a>=t.top&&a<=t.top+t.height}var dz=(e,t,n,a,i)=>{var s,o=(s=t?.length)!==null&&s!==void 0?s:0;if(o<=1||e==null)return 0;if(a==="angleAxis"&&i!=null&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var l=i[1]-i[0],c=(G,H,Q)=>[e,e+l,e-l].some(W=>(Q?W>=G:W>G)&&W<=H),h=0;h<o;h++){var m,p,x,b,j,N=h>0?(m=n[h-1])===null||m===void 0?void 0:m.coordinate:(p=n[o-1])===null||p===void 0?void 0:p.coordinate,_=(x=n[h])===null||x===void 0?void 0:x.coordinate,S=h>=o-1?(b=n[0])===null||b===void 0?void 0:b.coordinate:(j=n[h+1])===null||j===void 0?void 0:j.coordinate,A=void 0;if(!(N==null||_==null||S==null))if(Wa(_-N)!==Wa(S-_)){var P=[];if(Wa(S-_)===Wa(i[1]-i[0])){A=S;var I=_+i[1]-i[0];P[0]=Math.min(I,(I+N)/2),P[1]=Math.max(I,(I+N)/2)}else{A=N;var O=S+i[1]-i[0];P[0]=Math.min(_,(O+_)/2),P[1]=Math.max(_,(O+_)/2)}var M=[Math.min(_,(A+_)/2),Math.max(_,(A+_)/2)];if(c(M[0],M[1],!1)||c(P[0],P[1],!0)){var z;return(z=n[h])===null||z===void 0?void 0:z.index}}else{var $=Math.min(N,S),K=Math.max(N,S);if(c(($+_)/2,(K+_)/2,!1)){var X;return(X=n[h])===null||X===void 0?void 0:X.index}}}else if(t)for(var te=0;te<o;te++){var q=t[te];if(q!=null){var he=t[te+1],ne=t[te-1];if(te===0&&he!=null&&e<=(q.coordinate+he.coordinate)/2||te===o-1&&ne!=null&&e>(q.coordinate+ne.coordinate)/2||te>0&&te<o-1&&ne!=null&&he!=null&&e>(q.coordinate+ne.coordinate)/2&&e<=(q.coordinate+he.coordinate)/2)return q.index}}return-1},uz=()=>Ve(E_),NS=(e,t)=>t,hz=(e,t,n)=>n,kS=(e,t,n,a)=>a,Bve=le(xo,e=>c0(e,t=>t.coordinate)),_S=le([Th,NS,hz,kS],Y7),SS=le([_S,zc,Ju,Xu],bm),Fve=(e,t,n)=>{if(t!=null){var a=Th(e);return t==="axis"?n==="hover"?a.axisInteraction.hover.dataKey:a.axisInteraction.click.dataKey:n==="hover"?a.itemInteraction.hover.dataKey:a.itemInteraction.click.dataKey}},fz=le([Th,NS,hz,kS],X7),wv=le([ho,fo,ln,dr,xo,kS,fz],J7),zve=le([_S,wv],(e,t)=>{var n;return(n=e.coordinate)!==null&&n!==void 0?n:t}),mz=le([xo,SS],q7),$ve=le([fz,SS,Ai,Ju,mz,Q7,NS],ez),Hve=le([_S,SS],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),Wve=(e,t,n,a,i,s,o)=>{if(!(!e||!n||!a||!i)&&Dve(e,o)){var l=cue(e,t),c=dz(l,s,i,n,a),h=Mve(t,i,c,e);return{activeIndex:String(c),activeCoordinate:h}}},Vve=(e,t,n,a,i,s,o)=>{if(!(!e||!a||!i||!s||!n)){var l=rme(e,n);if(l){var c=due(l,t),h=dz(c,o,s,a,i),m=Lve(t,s,h,l);return{activeIndex:String(h),activeCoordinate:m}}}},Uve=(e,t,n,a,i,s,o,l)=>{if(!(!e||!t||!a||!i||!s))return t==="horizontal"||t==="vertical"?Wve(e,t,a,i,s,o,l):Vve(e,t,n,a,i,s,o)},qve=le(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,n)=>n,(e,t,n)=>{if(t!=null){var a=e[t];if(a!=null)return n?a.panoramaElement:a.element}}),Gve=le(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(a=>parseInt(a,10)).concat(Object.values(Dr)),n=Array.from(new Set(t));return n.sort((a,i)=>a-i)},{memoizeOptions:{resultEqualityCheck:Ime}});function A5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function P5(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?A5(Object(n),!0).forEach(function(a){Kve(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):A5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Kve(e,t,n){return(t=Zve(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Zve(e){var t=Yve(e,"string");return typeof t=="symbol"?t:t+""}function Yve(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Jve={},Xve={zIndexMap:Object.values(Dr).reduce((e,t)=>P5(P5({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),Jve)},Qve=new Set(Object.values(Dr));function e0e(e){return Qve.has(e)}var pz=_r({name:"zIndex",initialState:Xve,reducers:{registerZIndexPortal:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]?e.zIndexMap[n].consumers+=1:e.zIndexMap[n]={consumers:1,element:void 0,panoramaElement:void 0}},prepare:Xt()},unregisterZIndexPortal:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]&&(e.zIndexMap[n].consumers-=1,e.zIndexMap[n].consumers<=0&&!e0e(n)&&delete e.zIndexMap[n])},prepare:Xt()},registerZIndexPortalElement:{reducer:(e,t)=>{var n=t.payload,a=n.zIndex,i=n.element,s=n.isPanorama;e.zIndexMap[a]?s?e.zIndexMap[a].panoramaElement=Rt(i):e.zIndexMap[a].element=Rt(i):e.zIndexMap[a]={consumers:0,element:s?void 0:Rt(i),panoramaElement:s?Rt(i):void 0}},prepare:Xt()},unregisterZIndexPortalElement:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]&&(t.payload.isPanorama?e.zIndexMap[n].panoramaElement=void 0:e.zIndexMap[n].element=void 0)},prepare:Xt()}}}),H0=pz.actions,t0e=H0.registerZIndexPortal,L1=H0.unregisterZIndexPortal,n0e=H0.registerZIndexPortalElement,r0e=H0.unregisterZIndexPortalElement,a0e=pz.reducer;function yo(e){var t=e.zIndex,n=e.children,a=Kue(),i=a&&t!==void 0&&t!==0,s=ra(),o=v.useRef(void 0),l=v.useRef(new Set),c=Cn(),h=Ve(p=>qve(p,t,s));if(v.useLayoutEffect(()=>{if(!i){var p=l.current;p.forEach(b=>{c(L1({zIndex:b}))}),p.clear(),o.current=void 0;return}if(l.current.has(t)||(c(t0e({zIndex:t})),l.current.add(t)),h){o.current=h;var x=l.current;x.forEach(b=>{b!==t&&(c(L1({zIndex:b})),x.delete(b))})}},[c,t,i,h]),v.useLayoutEffect(()=>{var p=l.current;return()=>{p.forEach(x=>{c(L1({zIndex:x}))}),p.clear()}},[c]),!i)return n;var m=h??o.current;return m?Ci.createPortal(n,m):null}function ok(){return ok=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},ok.apply(null,arguments)}function E5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function Ux(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?E5(Object(n),!0).forEach(function(a){i0e(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):E5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function i0e(e,t,n){return(t=s0e(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s0e(e){var t=o0e(e,"string");return typeof t=="symbol"?t:t+""}function o0e(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function l0e(e){var t=e.cursor,n=e.cursorComp,a=e.cursorProps;return v.isValidElement(t)?v.cloneElement(t,a):v.createElement(n,a)}function c0e(e){var t,n=e.coordinate,a=e.payload,i=e.index,s=e.offset,o=e.tooltipAxisBandSize,l=e.layout,c=e.cursor,h=e.tooltipEventType,m=e.chartName,p=n,x=a,b=i;if(!c||!p||m!=="ScatterChart"&&h!=="axis")return null;var j,N,_;if(m==="ScatterChart")j=p,N=ufe,_=Dr.cursorLine;else if(m==="BarChart")j=hfe(l,p,s,o),N=Gfe,_=Dr.cursorRectangle;else if(l==="radial"&&CB(p)){var S=X9(p),A=S.cx,P=S.cy,I=S.radius,O=S.startAngle,M=S.endAngle;j={cx:A,cy:P,startAngle:O,endAngle:M,innerRadius:I,outerRadius:I},N=ome,_=Dr.cursorLine}else j={points:lme(l,p,s)},N=wy,_=Dr.cursorLine;var z=typeof c=="object"&&"className"in c?c.className:void 0,$=Ux(Ux(Ux(Ux({stroke:"#ccc",pointerEvents:"none"},s),j),i0(c)),{},{payload:x,payloadIndex:b,className:Ut("recharts-tooltip-cursor",z)});return v.createElement(yo,{zIndex:(t=e.zIndex)!==null&&t!==void 0?t:_},v.createElement(l0e,{cursor:c,cursorComp:N,cursorProps:$}))}function d0e(e){var t=Eve(),n=z9(),a=bh(),i=uz();return t==null||n==null||a==null||i==null?null:v.createElement(c0e,ok({},e,{offset:n,layout:a,tooltipAxisBandSize:t,chartName:i}))}var gz=v.createContext(null),u0e=()=>v.useContext(gz),D1={exports:{}},O5;function h0e(){return O5||(O5=1,(function(e){var t=Object.prototype.hasOwnProperty,n="~";function a(){}Object.create&&(a.prototype=Object.create(null),new a().__proto__||(n=!1));function i(c,h,m){this.fn=c,this.context=h,this.once=m||!1}function s(c,h,m,p,x){if(typeof m!="function")throw new TypeError("The listener must be a function");var b=new i(m,p||c,x),j=n?n+h:h;return c._events[j]?c._events[j].fn?c._events[j]=[c._events[j],b]:c._events[j].push(b):(c._events[j]=b,c._eventsCount++),c}function o(c,h){--c._eventsCount===0?c._events=new a:delete c._events[h]}function l(){this._events=new a,this._eventsCount=0}l.prototype.eventNames=function(){var h=[],m,p;if(this._eventsCount===0)return h;for(p in m=this._events)t.call(m,p)&&h.push(n?p.slice(1):p);return Object.getOwnPropertySymbols?h.concat(Object.getOwnPropertySymbols(m)):h},l.prototype.listeners=function(h){var m=n?n+h:h,p=this._events[m];if(!p)return[];if(p.fn)return[p.fn];for(var x=0,b=p.length,j=new Array(b);x<b;x++)j[x]=p[x].fn;return j},l.prototype.listenerCount=function(h){var m=n?n+h:h,p=this._events[m];return p?p.fn?1:p.length:0},l.prototype.emit=function(h,m,p,x,b,j){var N=n?n+h:h;if(!this._events[N])return!1;var _=this._events[N],S=arguments.length,A,P;if(_.fn){switch(_.once&&this.removeListener(h,_.fn,void 0,!0),S){case 1:return _.fn.call(_.context),!0;case 2:return _.fn.call(_.context,m),!0;case 3:return _.fn.call(_.context,m,p),!0;case 4:return _.fn.call(_.context,m,p,x),!0;case 5:return _.fn.call(_.context,m,p,x,b),!0;case 6:return _.fn.call(_.context,m,p,x,b,j),!0}for(P=1,A=new Array(S-1);P<S;P++)A[P-1]=arguments[P];_.fn.apply(_.context,A)}else{var I=_.length,O;for(P=0;P<I;P++)switch(_[P].once&&this.removeListener(h,_[P].fn,void 0,!0),S){case 1:_[P].fn.call(_[P].context);break;case 2:_[P].fn.call(_[P].context,m);break;case 3:_[P].fn.call(_[P].context,m,p);break;case 4:_[P].fn.call(_[P].context,m,p,x);break;default:if(!A)for(O=1,A=new Array(S-1);O<S;O++)A[O-1]=arguments[O];_[P].fn.apply(_[P].context,A)}}return!0},l.prototype.on=function(h,m,p){return s(this,h,m,p,!1)},l.prototype.once=function(h,m,p){return s(this,h,m,p,!0)},l.prototype.removeListener=function(h,m,p,x){var b=n?n+h:h;if(!this._events[b])return this;if(!m)return o(this,b),this;var j=this._events[b];if(j.fn)j.fn===m&&(!x||j.once)&&(!p||j.context===p)&&o(this,b);else{for(var N=0,_=[],S=j.length;N<S;N++)(j[N].fn!==m||x&&!j[N].once||p&&j[N].context!==p)&&_.push(j[N]);_.length?this._events[b]=_.length===1?_[0]:_:o(this,b)}return this},l.prototype.removeAllListeners=function(h){var m;return h?(m=n?n+h:h,this._events[m]&&o(this,m)):(this._events=new a,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,e.exports=l})(D1)),D1.exports}var f0e=h0e();const m0e=Qa(f0e);var Xm=new m0e,lk="recharts.syncEvent.tooltip",R5="recharts.syncEvent.brush",p0e=(e,t)=>{if(t&&Array.isArray(e)){var n=Number.parseInt(t,10);if(!ls(n))return e[n]}},g0e={chartName:"",tooltipPayloadSearcher:()=>{},eventEmitter:void 0,defaultTooltipEventType:"axis"},xz=_r({name:"options",initialState:g0e,reducers:{createEventEmitter:e=>{e.eventEmitter==null&&(e.eventEmitter=Symbol("rechartsEventEmitter"))}}}),x0e=xz.reducer,y0e=xz.actions.createEventEmitter;function v0e(e){return e.tooltip.syncInteraction}var b0e={chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},yz=_r({name:"chartData",initialState:b0e,reducers:{setChartData(e,t){if(e.chartData=Rt(t.payload),t.payload==null){e.dataStartIndex=0,e.dataEndIndex=0;return}t.payload.length>0&&e.dataEndIndex!==t.payload.length-1&&(e.dataEndIndex=t.payload.length-1)},setComputedData(e,t){e.computedData=t.payload},setDataStartEndIndexes(e,t){var n=t.payload,a=n.startIndex,i=n.endIndex;a!=null&&(e.dataStartIndex=a),i!=null&&(e.dataEndIndex=i)}}}),CS=yz.actions,I5=CS.setChartData,w0e=CS.setDataStartEndIndexes;CS.setComputedData;var j0e=yz.reducer,N0e=["x","y"];function M5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function du(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?M5(Object(n),!0).forEach(function(a){k0e(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function k0e(e,t,n){return(t=_0e(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function _0e(e){var t=S0e(e,"string");return typeof t=="symbol"?t:t+""}function S0e(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function C0e(e,t){if(e==null)return{};var n,a,i=T0e(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function T0e(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function A0e(){var e=Ve(O_),t=Ve(R_),n=Cn(),a=Ve(fF),i=Ve(xo),s=bh(),o=k0(),l=Ve(c=>c.rootProps.className);v.useEffect(()=>{if(e==null)return vh;var c=(h,m,p)=>{if(t!==p&&e===h){if(m.payload.active===!1){n(cm({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(a==="index"){var x;if(o&&m!==null&&m!==void 0&&(x=m.payload)!==null&&x!==void 0&&x.coordinate&&m.payload.sourceViewBox){var b=m.payload.coordinate,j=b.x,N=b.y,_=C0e(b,N0e),S=m.payload.sourceViewBox,A=S.x,P=S.y,I=S.width,O=S.height,M=du(du({},_),{},{x:o.x+(I?(j-A)/I:0)*o.width,y:o.y+(O?(N-P)/O:0)*o.height});n(du(du({},m),{},{payload:du(du({},m.payload),{},{coordinate:M})}))}else n(m);return}if(i!=null){var z;if(typeof a=="function"){var $={activeTooltipIndex:m.payload.index==null?void 0:Number(m.payload.index),isTooltipActive:m.payload.active,activeIndex:m.payload.index==null?void 0:Number(m.payload.index),activeLabel:m.payload.label,activeDataKey:m.payload.dataKey,activeCoordinate:m.payload.coordinate},K=a(i,$);z=i[K]}else a==="value"&&(z=i.find(Q=>String(Q.value)===m.payload.label));var X=m.payload.coordinate;if(X==null||o==null){n(cm({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));return}if(z==null){n(cm({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:m.payload.sourceViewBox,graphicalItemId:void 0}));return}var te=X.x,q=X.y,he=Math.min(te,o.x+o.width),ne=Math.min(q,o.y+o.height),G={x:s==="horizontal"?z.coordinate:he,y:s==="horizontal"?ne:z.coordinate},H=cm({active:m.payload.active,coordinate:G,dataKey:m.payload.dataKey,index:String(z.index),label:m.payload.label,sourceViewBox:m.payload.sourceViewBox,graphicalItemId:m.payload.graphicalItemId});n(H)}}};return Xm.on(lk,c),()=>{Xm.off(lk,c)}},[l,n,t,e,a,i,s,o])}function P0e(){var e=Ve(O_),t=Ve(R_),n=Cn();v.useEffect(()=>{if(e==null)return vh;var a=(i,s,o)=>{t!==o&&e===i&&n(w0e(s))};return Xm.on(R5,a),()=>{Xm.off(R5,a)}},[n,t,e])}function E0e(){var e=Cn();v.useEffect(()=>{e(y0e())},[e]),A0e(),P0e()}function O0e(e,t,n,a,i,s){var o=Ve(j=>Fve(j,e,t)),l=Ve(wve),c=Ve(R_),h=Ve(O_),m=Ve(fF),p=Ve(v0e),x=p?.sourceViewBox!=null,b=k0();v.useEffect(()=>{if(!x&&h!=null&&c!=null){var j=cm({active:s,coordinate:n,dataKey:o,index:i,label:typeof a=="number"?String(a):a,sourceViewBox:b,graphicalItemId:l});Xm.emit(lk,h,j,c)}},[x,n,o,l,i,a,c,h,m,s,b])}function L5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function D5(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?L5(Object(n),!0).forEach(function(a){R0e(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):L5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function R0e(e,t,n){return(t=I0e(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function I0e(e){var t=M0e(e,"string");return typeof t=="symbol"?t:t+""}function M0e(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function L0e(e,t){return z0e(e)||F0e(e,t)||B0e(e,t)||D0e()}function D0e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function B0e(e,t){if(e){if(typeof e=="string")return B5(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?B5(e,t):void 0}}function B5(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function F0e(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function z0e(e){if(Array.isArray(e))return e}function $0e(e){return e.dataKey}function H0e(e,t){return v.isValidElement(e)?v.cloneElement(e,t):typeof e=="function"?v.createElement(e,t):v.createElement(Phe,t)}var F5=[],W0e={allowEscapeViewBox:{x:!1,y:!1},animationDuration:400,animationEasing:"ease",axisId:0,contentStyle:{},cursor:!0,filterNull:!0,includeHidden:!1,isAnimationActive:"auto",itemSorter:"name",itemStyle:{},labelStyle:{},offset:10,reverseDirection:{x:!1,y:!1},separator:" : ",trigger:"hover",useTranslate3d:!1,wrapperStyle:{}};function V0e(e){var t,n,a=ti(e,W0e),i=a.active,s=a.allowEscapeViewBox,o=a.animationDuration,l=a.animationEasing,c=a.content,h=a.filterNull,m=a.isAnimationActive,p=a.offset,x=a.payloadUniqBy,b=a.position,j=a.reverseDirection,N=a.useTranslate3d,_=a.wrapperStyle,S=a.cursor,A=a.shared,P=a.trigger,I=a.defaultIndex,O=a.portal,M=a.axisId,z=Cn(),$=typeof I=="number"?String(I):I;v.useEffect(()=>{z(Aye({shared:A,trigger:P,axisId:M,active:i,defaultIndex:$}))},[z,A,P,M,i,$]);var K=k0(),X=q9(),te=Nye(A),q=(t=Ve(Te=>Hve(Te,te,P,$)))!==null&&t!==void 0?t:{},he=q.activeIndex,ne=q.isActive,G=Ve(Te=>$ve(Te,te,P,$)),H=Ve(Te=>mz(Te,te,P,$)),Q=Ve(Te=>zve(Te,te,P,$)),W=G,ie=u0e(),Y=(n=i??ne)!==null&&n!==void 0?n:!1,V=Gce([W,Y]),re=L0e(V,2),be=re[0],ge=re[1],Ne=te==="axis"?H:void 0;O0e(te,P,Q,Ne,he,Y);var we=O??ie;if(we==null||K==null||te==null)return null;var Fe=W??F5;Y||(Fe=F5),h&&Fe.length&&(Fe=gce(Fe.filter(Te=>Te.value!=null&&(Te.hide!==!0||a.includeHidden)),x,$0e));var Ce=Fe.length>0,me=D5(D5({},a),{},{payload:Fe,label:Ne,active:Y,activeIndex:he,coordinate:Q,accessibilityLayer:X}),Ae=v.createElement(Jhe,{allowEscapeViewBox:s,animationDuration:o,animationEasing:l,isAnimationActive:m,active:Y,coordinate:Q,hasPayload:Ce,offset:p,position:b,reverseDirection:j,useTranslate3d:N,viewBox:K,wrapperStyle:_,lastBoundingBox:be,innerRef:ge,hasPortalFromProps:!!O},H0e(c,me));return v.createElement(v.Fragment,null,Ci.createPortal(Ae,we),Y&&v.createElement(d0e,{cursor:S,tooltipEventType:te,coordinate:Q,payload:Fe,index:he}))}function U0e(e,t,n){return(t=q0e(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function q0e(e){var t=G0e(e,"string");return typeof t=="symbol"?t:t+""}function G0e(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}class K0e{constructor(t){U0e(this,"cache",new Map),this.maxSize=t}get(t){var n=this.cache.get(t);return n!==void 0&&(this.cache.delete(t),this.cache.set(t,n)),n}set(t,n){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxSize){var a=this.cache.keys().next().value;a!=null&&this.cache.delete(a)}this.cache.set(t,n)}clear(){this.cache.clear()}size(){return this.cache.size}}function z5(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function Z0e(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?z5(Object(n),!0).forEach(function(a){Y0e(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):z5(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Y0e(e,t,n){return(t=J0e(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function J0e(e){var t=X0e(e,"string");return typeof t=="symbol"?t:t+""}function X0e(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Q0e={cacheSize:2e3,enableCache:!0},vz=Z0e({},Q0e),$5=new K0e(vz.cacheSize),ebe={position:"absolute",top:"-20000px",left:0,padding:0,margin:0,border:"none",whiteSpace:"pre"},H5="recharts_measurement_span";function tbe(e,t){var n=t.fontSize||"",a=t.fontFamily||"",i=t.fontWeight||"",s=t.fontStyle||"",o=t.letterSpacing||"",l=t.textTransform||"";return"".concat(e,"|").concat(n,"|").concat(a,"|").concat(i,"|").concat(s,"|").concat(o,"|").concat(l)}var W5=(e,t)=>{try{var n=document.getElementById(H5);n||(n=document.createElement("span"),n.setAttribute("id",H5),n.setAttribute("aria-hidden","true"),document.body.appendChild(n)),Object.assign(n.style,ebe,t),n.textContent="".concat(e);var a=n.getBoundingClientRect();return{width:a.width,height:a.height}}catch{return{width:0,height:0}}},wm=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(t==null||Sp.isSsr)return{width:0,height:0};if(!vz.enableCache)return W5(t,n);var a=tbe(t,n),i=$5.get(a);if(i)return i;var s=W5(t,n);return $5.set(a,s),s},bz;function jv(e,t){return ibe(e)||abe(e,t)||rbe(e,t)||nbe()}function nbe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function rbe(e,t){if(e){if(typeof e=="string")return V5(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?V5(e,t):void 0}}function V5(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function abe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function ibe(e){if(Array.isArray(e))return e}function sbe(e,t,n){return(t=obe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function obe(e){var t=lbe(e,"string");return typeof t=="symbol"?t:t+""}function lbe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var U5=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,q5=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,cbe=/^(px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q)$/,dbe=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,ube={cm:96/2.54,mm:96/25.4,pt:96/72,pc:96/6,in:96,Q:96/(2.54*40),px:1},hbe=["cm","mm","pt","pc","in","Q","px"];function fbe(e){return hbe.includes(e)}var ku="NaN";function mbe(e,t){return e*ube[t]}class ir{static parse(t){var n,a=(n=dbe.exec(t))!==null&&n!==void 0?n:[],i=jv(a,3),s=i[1],o=i[2];return s==null?ir.NaN:new ir(parseFloat(s),o??"")}constructor(t,n){this.num=t,this.unit=n,this.num=t,this.unit=n,ls(t)&&(this.unit=""),n!==""&&!cbe.test(n)&&(this.num=NaN,this.unit=""),fbe(n)&&(this.num=mbe(t,n),this.unit="px")}add(t){return this.unit!==t.unit?new ir(NaN,""):new ir(this.num+t.num,this.unit)}subtract(t){return this.unit!==t.unit?new ir(NaN,""):new ir(this.num-t.num,this.unit)}multiply(t){return this.unit!==""&&t.unit!==""&&this.unit!==t.unit?new ir(NaN,""):new ir(this.num*t.num,this.unit||t.unit)}divide(t){return this.unit!==""&&t.unit!==""&&this.unit!==t.unit?new ir(NaN,""):new ir(this.num/t.num,this.unit||t.unit)}toString(){return"".concat(this.num).concat(this.unit)}isNaN(){return ls(this.num)}}bz=ir;sbe(ir,"NaN",new bz(NaN,""));function wz(e){if(e==null||e.includes(ku))return ku;for(var t=e;t.includes("*")||t.includes("/");){var n,a=(n=U5.exec(t))!==null&&n!==void 0?n:[],i=jv(a,4),s=i[1],o=i[2],l=i[3],c=ir.parse(s??""),h=ir.parse(l??""),m=o==="*"?c.multiply(h):c.divide(h);if(m.isNaN())return ku;t=t.replace(U5,m.toString())}for(;t.includes("+")||/.-\d+(?:\.\d+)?/.test(t);){var p,x=(p=q5.exec(t))!==null&&p!==void 0?p:[],b=jv(x,4),j=b[1],N=b[2],_=b[3],S=ir.parse(j??""),A=ir.parse(_??""),P=N==="+"?S.add(A):S.subtract(A);if(P.isNaN())return ku;t=t.replace(q5,P.toString())}return t}var G5=/\(([^()]*)\)/;function pbe(e){for(var t=e,n;(n=G5.exec(t))!=null;){var a=n,i=jv(a,2),s=i[1];t=t.replace(G5,wz(s))}return t}function gbe(e){var t=e.replace(/\s+/g,"");return t=pbe(t),t=wz(t),t}function xbe(e){try{return gbe(e)}catch{return ku}}function B1(e){var t=xbe(e.slice(5,-1));return t===ku?"":t}var ybe=["x","y","lineHeight","capHeight","fill","scaleToFit","textAnchor","verticalAnchor"],vbe=["dx","dy","angle","className","breakAll"];function ck(){return ck=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},ck.apply(null,arguments)}function K5(e,t){if(e==null)return{};var n,a,i=bbe(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function bbe(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function Z5(e,t){return kbe(e)||Nbe(e,t)||jbe(e,t)||wbe()}function wbe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function jbe(e,t){if(e){if(typeof e=="string")return Y5(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Y5(e,t):void 0}}function Y5(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Nbe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function kbe(e){if(Array.isArray(e))return e}var jz=/[ \f\n\r\t\v\u2028\u2029]+/,Nz=e=>{var t=e.children,n=e.breakAll,a=e.style;try{var i=[];lr(t)||(n?i=t.toString().split(""):i=t.toString().split(jz));var s=i.map(l=>({word:l,width:wm(l,a).width})),o=n?0:wm(" ",a).width;return{wordsWithComputedWidth:s,spaceWidth:o}}catch{return null}};function kz(e){return e==="start"||e==="middle"||e==="end"||e==="inherit"}function _be(e){return lr(e)||typeof e=="string"||typeof e=="number"||typeof e=="boolean"}var _z=(e,t,n,a)=>e.reduce((i,s)=>{var o=s.word,l=s.width,c=i[i.length-1];if(c&&l!=null&&(t==null||a||c.width+l+n<Number(t)))c.words.push(o),c.width+=l+n;else{var h={words:[o],width:l};i.push(h)}return i},[]),Sz=e=>e.reduce((t,n)=>t.width>n.width?t:n),Sbe="…",J5=(e,t,n,a,i,s,o,l)=>{var c=e.slice(0,t),h=Nz({breakAll:n,style:a,children:c+Sbe});if(!h)return[!1,[]];var m=_z(h.wordsWithComputedWidth,s,o,l),p=m.length>i||Sz(m).width>Number(s);return[p,m]},Cbe=(e,t,n,a,i)=>{var s=e.maxLines,o=e.children,l=e.style,c=e.breakAll,h=Ie(s),m=String(o),p=_z(t,a,n,i);if(!h||i)return p;var x=p.length>s||Sz(p).width>Number(a);if(!x)return p;for(var b=0,j=m.length-1,N=0,_;b<=j&&N<=m.length-1;){var S=Math.floor((b+j)/2),A=S-1,P=J5(m,A,c,l,s,a,n,i),I=Z5(P,2),O=I[0],M=I[1],z=J5(m,S,c,l,s,a,n,i),$=Z5(z,1),K=$[0];if(!O&&!K&&(b=S+1),O&&K&&(j=S-1),!O&&K){_=M;break}N++}return _||p},X5=e=>{var t=lr(e)?[]:e.toString().split(jz);return[{words:t,width:void 0}]},Tbe=e=>{var t=e.width,n=e.scaleToFit,a=e.children,i=e.style,s=e.breakAll,o=e.maxLines;if((t||n)&&!Sp.isSsr){var l,c,h=Nz({breakAll:s,children:a,style:i});if(h){var m=h.wordsWithComputedWidth,p=h.spaceWidth;l=m,c=p}else return X5(a);return Cbe({breakAll:s,children:a,maxLines:o,style:i},l,c,t,!!n)}return X5(a)},Cz="#808080",Abe={angle:0,breakAll:!1,capHeight:"0.71em",fill:Cz,lineHeight:"1em",scaleToFit:!1,textAnchor:"start",verticalAnchor:"end",x:0,y:0},TS=v.forwardRef((e,t)=>{var n=ti(e,Abe),a=n.x,i=n.y,s=n.lineHeight,o=n.capHeight,l=n.fill,c=n.scaleToFit,h=n.textAnchor,m=n.verticalAnchor,p=K5(n,ybe),x=v.useMemo(()=>Tbe({breakAll:p.breakAll,children:p.children,maxLines:p.maxLines,scaleToFit:c,style:p.style,width:p.width}),[p.breakAll,p.children,p.maxLines,c,p.style,p.width]),b=p.dx,j=p.dy,N=p.angle,_=p.className,S=p.breakAll,A=K5(p,vbe);if(!cs(a)||!cs(i)||x.length===0)return null;var P=Number(a)+(Ie(b)?b:0),I=Number(i)+(Ie(j)?j:0);if(!St(P)||!St(I))return null;var O;switch(m){case"start":O=B1("calc(".concat(o,")"));break;case"middle":O=B1("calc(".concat((x.length-1)/2," * -").concat(s," + (").concat(o," / 2))"));break;default:O=B1("calc(".concat(x.length-1," * -").concat(s,")"));break}var M=[],z=x[0];if(c&&z!=null){var $=z.width,K=p.width;M.push("scale(".concat(Ie(K)&&Ie($)?K/$:1,")"))}return N&&M.push("rotate(".concat(N,", ").concat(P,", ").concat(I,")")),M.length&&(A.transform=M.join(" ")),v.createElement("text",ck({},Za(A),{ref:t,x:P,y:I,className:Ut("recharts-text",_),textAnchor:h,fill:l.includes("url")?Cz:l}),x.map((X,te)=>{var q=X.words.join(S?"":" ");return v.createElement("tspan",{x:P,dy:te===0?O:s,key:"".concat(q,"-").concat(te)},q)}))});TS.displayName="Text";var Pbe=["labelRef"],Ebe=["content"];function Q5(e,t){if(e==null)return{};var n,a,i=Obe(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Obe(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function e6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function xc(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?e6(Object(n),!0).forEach(function(a){Rbe(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):e6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Rbe(e,t,n){return(t=Ibe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ibe(e){var t=Mbe(e,"string");return typeof t=="symbol"?t:t+""}function Mbe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function qs(){return qs=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},qs.apply(null,arguments)}var Tz=v.createContext(null),Lbe=e=>{var t=e.x,n=e.y,a=e.upperWidth,i=e.lowerWidth,s=e.width,o=e.height,l=e.children,c=v.useMemo(()=>({x:t,y:n,upperWidth:a,lowerWidth:i,width:s,height:o}),[t,n,a,i,s,o]);return v.createElement(Tz.Provider,{value:c},l)},Az=()=>{var e=v.useContext(Tz),t=k0();return e||(t?c_(t):void 0)},Dbe=v.createContext(null),Bbe=()=>{var e=v.useContext(Dbe),t=Ve(yF);return e||t},Fbe=e=>{var t=e.value,n=e.formatter,a=lr(e.children)?t:e.children;return typeof n=="function"?n(a):a},W0=e=>e!=null&&typeof e=="function",zbe=(e,t)=>{var n=Wa(t-e),a=Math.min(Math.abs(t-e),360);return n*a},$be=(e,t,n,a,i)=>{var s=e.offset,o=e.className,l=i.cx,c=i.cy,h=i.innerRadius,m=i.outerRadius,p=i.startAngle,x=i.endAngle,b=i.clockWise,j=(h+m)/2,N=zbe(p,x),_=N>=0?1:-1,S,A;switch(t){case"insideStart":S=p+_*s,A=b;break;case"insideEnd":S=x-_*s,A=!b;break;case"end":S=x+_*s,A=b;break;default:throw new Error("Unsupported position ".concat(t))}A=N<=0?A:!A;var P=sr(l,c,j,S),I=sr(l,c,j,S+(A?1:-1)*359),O="M".concat(P.x,",").concat(P.y,`
A`).concat(j,",").concat(j,",0,1,").concat(A?0:1,`,
`).concat(I.x,",").concat(I.y),M=lr(e.id)?$m("recharts-radial-line-"):e.id;return v.createElement("text",qs({},a,{dominantBaseline:"central",className:Ut("recharts-radial-bar-label",o)}),v.createElement("defs",null,v.createElement("path",{id:M,d:O})),v.createElement("textPath",{xlinkHref:"#".concat(M)},n))},Hbe=(e,t,n)=>{var a=e.cx,i=e.cy,s=e.innerRadius,o=e.outerRadius,l=e.startAngle,c=e.endAngle,h=(l+c)/2;if(n==="outside"){var m=sr(a,i,o+t,h),p=m.x,x=m.y;return{x:p,y:x,textAnchor:p>=a?"start":"end",verticalAnchor:"middle"}}if(n==="center")return{x:a,y:i,textAnchor:"middle",verticalAnchor:"middle"};if(n==="centerTop")return{x:a,y:i,textAnchor:"middle",verticalAnchor:"start"};if(n==="centerBottom")return{x:a,y:i,textAnchor:"middle",verticalAnchor:"end"};var b=(s+o)/2,j=sr(a,i,b,h),N=j.x,_=j.y;return{x:N,y:_,textAnchor:"middle",verticalAnchor:"middle"}},yu=e=>e!=null&&"cx"in e&&Ie(e.cx),Wbe={angle:0,offset:5,zIndex:Dr.label,position:"middle",textBreakAll:!1};function Vbe(e){if(!yu(e))return e;var t=e.cx,n=e.cy,a=e.outerRadius,i=a*2;return{x:t-a,y:n-a,width:i,upperWidth:i,lowerWidth:i,height:i}}function dl(e){var t,n,a=ti(e,Wbe),i=a.viewBox,s=a.parentViewBox,o=a.position,l=a.value,c=a.children,h=a.content,m=a.className,p=m===void 0?"":m,x=a.textBreakAll,b=a.labelRef,j=Bbe(),N=Az(),_=o==="center"?N:j??N,S,A,P;i==null?S=_:yu(i)?S=i:S=c_(i);var I=Vbe(S);if(!S||lr(l)&&lr(c)&&!v.isValidElement(h)&&typeof h!="function")return null;var O=yu(S)&&(o==="insideStart"||o==="insideEnd"||o==="end");if(yu(S))O||(P=Hbe(S,a.offset,a.position));else if(I){var M=ple({viewBox:I,position:o,offset:a.offset,parentViewBox:yu(s)?void 0:s});P=xc(xc({x:M.x,y:M.y,textAnchor:M.horizontalAnchor,verticalAnchor:M.verticalAnchor},M.width!==void 0?{width:M.width}:{}),M.height!==void 0?{height:M.height}:{})}var z=xc(xc(xc(xc({},((t=P)===null||t===void 0?void 0:t.x)!==void 0?{x:P.x}:{}),((n=P)===null||n===void 0?void 0:n.y)!==void 0?{y:P.y}:{}),a),{},{viewBox:S});if(v.isValidElement(h)){z.labelRef;var $=Q5(z,Pbe);return v.cloneElement(h,$)}if(typeof h=="function"){z.content;var K=Q5(z,Ebe);if(A=v.createElement(h,K),v.isValidElement(A))return A}else A=Fbe(a);var X=Za(a);return O&&yu(S)?$be(a,o,A,X,S):P==null?null:v.createElement(yo,{zIndex:a.zIndex},v.createElement(TS,qs({ref:b,className:Ut("recharts-label",p)},X,P,{textAnchor:kz(X.textAnchor)?X.textAnchor:P.textAnchor,breakAll:x}),A))}dl.displayName="Label";var Ube=(e,t,n)=>{if(!e)return null;var a={viewBox:t,labelRef:n};return e===!0?v.createElement(dl,qs({key:"label-implicit"},a)):cs(e)?v.createElement(dl,qs({key:"label-implicit",value:e},a)):v.isValidElement(e)?e.type===dl?v.cloneElement(e,xc({key:"label-implicit"},a)):v.createElement(dl,qs({key:"label-implicit",content:e},a)):W0(e)?v.createElement(dl,qs({key:"label-implicit",content:e},a)):e&&typeof e=="object"?v.createElement(dl,qs({},e,{key:"label-implicit"},a)):null};function qbe(e){var t=e.label,n=e.labelRef,a=Az();return Ube(t,a,n)||null}var Gbe=["valueAccessor"],Kbe=["dataKey","clockWise","id","textBreakAll","zIndex"];function Nv(){return Nv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Nv.apply(null,arguments)}function t6(e,t){if(e==null)return{};var n,a,i=Zbe(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Zbe(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var Ybe=e=>{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(_be(t))return t},Pz=v.createContext(void 0),Jbe=Pz.Provider,Ez=v.createContext(void 0);Ez.Provider;function Xbe(){return v.useContext(Pz)}function Qbe(){return v.useContext(Ez)}function jy(e){var t=e.valueAccessor,n=t===void 0?Ybe:t,a=t6(e,Gbe),i=a.dataKey;a.clockWise;var s=a.id,o=a.textBreakAll,l=a.zIndex,c=t6(a,Kbe),h=Xbe(),m=Qbe(),p=h||m;return!p||!p.length?null:v.createElement(yo,{zIndex:l??Dr.label},v.createElement(Ya,{className:"recharts-label-list"},p.map((x,b)=>{var j,N=lr(i)?n(x,b):zn(x.payload,i),_=lr(s)?{}:{id:"".concat(s,"-").concat(b)};return v.createElement(dl,Nv({key:"label-".concat(b)},Za(x),c,_,{fill:(j=a.fill)!==null&&j!==void 0?j:x.fill,parentViewBox:x.parentViewBox,value:N,textBreakAll:o,viewBox:x.viewBox,index:b,zIndex:0}))})))}jy.displayName="LabelList";function ewe(e){var t=e.label;return t?t===!0?v.createElement(jy,{key:"labelList-implicit"}):v.isValidElement(t)||W0(t)?v.createElement(jy,{key:"labelList-implicit",content:t}):typeof t=="object"?v.createElement(jy,Nv({key:"labelList-implicit"},t,{type:String(t.type)})):null:null}function dk(){return dk=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},dk.apply(null,arguments)}var Oz=e=>{var t=e.cx,n=e.cy,a=e.r,i=e.className,s=Ut("recharts-dot",i);return Ie(t)&&Ie(n)&&Ie(a)?v.createElement("circle",dk({},ki(e),u_(e),{className:s,cx:t,cy:n,r:a})):null},twe={radiusAxis:{},angleAxis:{}},Rz=_r({name:"polarAxis",initialState:twe,reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=Rt(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=Rt(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),V0=Rz.actions;V0.addRadiusAxis;V0.removeRadiusAxis;V0.addAngleAxis;V0.removeAngleAxis;var nwe=Rz.reducer;function rwe(e){return e&&typeof e=="object"&&"className"in e&&typeof e.className=="string"?e.className:""}var F1={exports:{}},Bt={};var n6;function awe(){if(n6)return Bt;n6=1;var e=typeof Symbol=="function"&&Symbol.for,t=e?Symbol.for("react.element"):60103,n=e?Symbol.for("react.portal"):60106,a=e?Symbol.for("react.fragment"):60107,i=e?Symbol.for("react.strict_mode"):60108,s=e?Symbol.for("react.profiler"):60114,o=e?Symbol.for("react.provider"):60109,l=e?Symbol.for("react.context"):60110,c=e?Symbol.for("react.async_mode"):60111,h=e?Symbol.for("react.concurrent_mode"):60111,m=e?Symbol.for("react.forward_ref"):60112,p=e?Symbol.for("react.suspense"):60113,x=e?Symbol.for("react.suspense_list"):60120,b=e?Symbol.for("react.memo"):60115,j=e?Symbol.for("react.lazy"):60116,N=e?Symbol.for("react.block"):60121,_=e?Symbol.for("react.fundamental"):60117,S=e?Symbol.for("react.responder"):60118,A=e?Symbol.for("react.scope"):60119;function P(O){if(typeof O=="object"&&O!==null){var M=O.$$typeof;switch(M){case t:switch(O=O.type,O){case c:case h:case a:case s:case i:case p:return O;default:switch(O=O&&O.$$typeof,O){case l:case m:case j:case b:case o:return O;default:return M}}case n:return M}}}function I(O){return P(O)===h}return Bt.AsyncMode=c,Bt.ConcurrentMode=h,Bt.ContextConsumer=l,Bt.ContextProvider=o,Bt.Element=t,Bt.ForwardRef=m,Bt.Fragment=a,Bt.Lazy=j,Bt.Memo=b,Bt.Portal=n,Bt.Profiler=s,Bt.StrictMode=i,Bt.Suspense=p,Bt.isAsyncMode=function(O){return I(O)||P(O)===c},Bt.isConcurrentMode=I,Bt.isContextConsumer=function(O){return P(O)===l},Bt.isContextProvider=function(O){return P(O)===o},Bt.isElement=function(O){return typeof O=="object"&&O!==null&&O.$$typeof===t},Bt.isForwardRef=function(O){return P(O)===m},Bt.isFragment=function(O){return P(O)===a},Bt.isLazy=function(O){return P(O)===j},Bt.isMemo=function(O){return P(O)===b},Bt.isPortal=function(O){return P(O)===n},Bt.isProfiler=function(O){return P(O)===s},Bt.isStrictMode=function(O){return P(O)===i},Bt.isSuspense=function(O){return P(O)===p},Bt.isValidElementType=function(O){return typeof O=="string"||typeof O=="function"||O===a||O===h||O===s||O===i||O===p||O===x||typeof O=="object"&&O!==null&&(O.$$typeof===j||O.$$typeof===b||O.$$typeof===o||O.$$typeof===l||O.$$typeof===m||O.$$typeof===_||O.$$typeof===S||O.$$typeof===A||O.$$typeof===N)},Bt.typeOf=P,Bt}var r6;function iwe(){return r6||(r6=1,F1.exports=awe()),F1.exports}iwe();var Iz=e=>e&&typeof e=="object"&&"clipDot"in e?!!e.clipDot:!0;function a6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function i6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?a6(Object(n),!0).forEach(function(a){swe(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):a6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function swe(e,t,n){return(t=owe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function owe(e){var t=lwe(e,"string");return typeof t=="symbol"?t:t+""}function lwe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Mz(e,t){return i6(i6({},t),e)}function cwe(e){return v.isValidElement(e)?e.props:e}function dwe(e,t){return v.cloneElement(e,Mz(cwe(e),t))}function uwe(e){if("index"in e){var t=e.index;return typeof t=="number"||typeof t=="string"?t:void 0}}function hwe(e){return"isActive"in e&&e.isActive===!0}function fwe(e){var t=e.option,n=e.DefaultShape,a=e.shapeProps,i=e.activeClassName,s=i===void 0?"recharts-active-shape":i,o=e.inActiveClassName,l=o===void 0?"recharts-shape":o,c=uwe(a),h;return v.isValidElement(t)?h=dwe(t,a):t===n?h=v.createElement(n,a):typeof t=="function"?h=t(a,c):typeof t=="object"?h=v.createElement(n,Mz(t,a)):h=v.createElement(n,a),hwe(a)?v.createElement(Ya,{className:s},h):v.createElement(Ya,{className:l},h)}function mwe(e){var t=e.tooltipEntrySettings,n=Cn(),a=ra(),i=v.useRef(null);return v.useLayoutEffect(()=>{a||(i.current===null?n(Sye(t)):i.current!==t&&n(Cye({prev:i.current,next:t})),i.current=t)},[t,n,a]),v.useLayoutEffect(()=>()=>{i.current&&(n(Tye(i.current)),i.current=null)},[n]),null}function pwe(e){var t=e.legendPayload,n=Cn(),a=ra(),i=v.useRef(null);return v.useLayoutEffect(()=>{a||(i.current===null?n(Yue(t)):i.current!==t&&n(Jue({prev:i.current,next:t})),i.current=t)},[n,a,t]),v.useLayoutEffect(()=>()=>{i.current&&(n(Xue(i.current)),i.current=null)},[n]),null}function gwe(e,t){return bwe(e)||vwe(e,t)||ywe(e,t)||xwe()}function xwe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ywe(e,t){if(e){if(typeof e=="string")return s6(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?s6(e,t):void 0}}function s6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function vwe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function bwe(e){if(Array.isArray(e))return e}var AS="index",wwe="append";function PS(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],a=[];for(var i of n)a.push({status:"removed",prev:i});for(var s=0;s<t.length;s++){var o=e[s],l=t[s];o!=null?a.push({status:"matched",prev:o,next:l}):a.push({status:"added",next:l})}return a}function jwe(e,t){var n=e.length/t.length,a=t.map((i,s)=>e[Math.floor(s*n)]);return PS(a,t)}function Nwe(e,t){var n=t.map((a,i)=>e[i]);return PS(n,t)}function kwe(e,t){for(var n=new Map,a=0;a<e.length;a++){var i=e[a];if(i!=null){var s=t(i,a);s!=null&&!n.has(s)&&n.set(s,i)}}return n}function _we(e,t,n){var a=kwe(e,n),i=new Set,s=t.map((p,x)=>{var b=n(p,x);if(b!=null){var j=a.get(b);if(j!==void 0)return i.add(b),j}}),o=[];for(var l of a){var c=gwe(l,2),h=c[0],m=c[1];i.has(h)||o.push(m)}return PS(s,t,o)}function uk(e,t,n){return t==null?null:e==null?t.map(a=>({status:"added",next:a})):n===AS?jwe(e,t):n===wwe?Nwe(e,t):_we(e,t,n)}function Lz(e,t){var n=v.useRef(e),a=v.useRef(t.current),i=v.useRef(!0);n.current!==e&&(n.current=e,a.current=t.current,i.current=!1);var s=v.useCallback(function(o,l){var c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;if(l===0){i.current=!0;return}l===1&&(a.current=o),l>0&&i.current&&c&&(t.current=o)},[t]);return{startValue:a.current,syncStepValue:s}}function Swe(e,t){return Pwe(e)||Awe(e,t)||Twe(e,t)||Cwe()}function Cwe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Twe(e,t){if(e){if(typeof e=="string")return o6(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o6(e,t):void 0}}function o6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Awe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function Pwe(e){if(Array.isArray(e))return e}function Ewe(e,t){var n=v.useState(!1),a=Swe(n,2),i=a[0],s=a[1],o=v.useCallback(()=>{typeof e=="function"&&e(),s(!0)},[e]),l=v.useCallback(()=>{typeof t=="function"&&t(),s(!1)},[t]);return{isAnimating:i,handleAnimationStart:o,handleAnimationEnd:l}}function Owe(e){var t,n=e.animationInput,a=e.animationIdPrefix,i=e.items,s=e.previousItemsRef,o=e.isAnimationActive,l=e.animationBegin,c=e.animationDuration,h=e.animationEasing,m=e.onAnimationStart,p=e.onAnimationEnd,x=e.animationInterpolateFn,b=e.animationMatchBy,j=e.shouldUpdatePreviousRef,N=e.children,_=e.layout,S=J9(n,a),A=Lz(S,s),P=(t=A.startValue)!==null&&t!==void 0?t:null,I=uk(P,i,b??AS);return v.createElement(Y9,{animationId:S,begin:l,duration:c,isActive:o,easing:h,onAnimationEnd:p,onAnimationStart:m,key:S},O=>{var M=P==null,z=i==null?i:x(I,O,_),$=j?j(O):O>0;return A.syncStepValue(z,O,$),z==null?null:N(z,O,M)})}var z1;function Rwe(e,t){return Dwe(e)||Lwe(e,t)||Mwe(e,t)||Iwe()}function Iwe(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Mwe(e,t){if(e){if(typeof e=="string")return l6(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?l6(e,t):void 0}}function l6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Lwe(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function Dwe(e){if(Array.isArray(e))return e}var Bwe=()=>{var e=v.useState(()=>$m("uid-")),t=Rwe(e,1),n=t[0];return n},Dz=(z1=Vc.useId)!==null&&z1!==void 0?z1:Bwe;function Fwe(e,t){var n=Dz();return t||(e?"".concat(e,"-").concat(n):n)}var zwe=v.createContext(void 0),$we=e=>{var t=e.id,n=e.type,a=e.children,i=Fwe("recharts-".concat(n),t);return v.createElement(zwe.Provider,{value:i},a(i))},Hwe={cartesianItems:[],polarItems:[]},Bz=_r({name:"graphicalItems",initialState:Hwe,reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(Rt(t.payload))},prepare:Xt()},replaceCartesianGraphicalItem:{reducer(e,t){var n=t.payload,a=n.prev,i=n.next,s=Va(e).cartesianItems.indexOf(Rt(a));s>-1&&(e.cartesianItems[s]=Rt(i))},prepare:Xt()},removeCartesianGraphicalItem:{reducer(e,t){var n=Va(e).cartesianItems.indexOf(Rt(t.payload));n>-1&&e.cartesianItems.splice(n,1)},prepare:Xt()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(Rt(t.payload))},prepare:Xt()},removePolarGraphicalItem:{reducer(e,t){var n=Va(e).polarItems.indexOf(Rt(t.payload));n>-1&&e.polarItems.splice(n,1)},prepare:Xt()},replacePolarGraphicalItem:{reducer(e,t){var n=t.payload,a=n.prev,i=n.next,s=Va(e).polarItems.indexOf(Rt(a));s>-1&&(e.polarItems[s]=Rt(i))},prepare:Xt()}}}),Ah=Bz.actions,Wwe=Ah.addCartesianGraphicalItem,Vwe=Ah.replaceCartesianGraphicalItem,Uwe=Ah.removeCartesianGraphicalItem;Ah.addPolarGraphicalItem;Ah.removePolarGraphicalItem;Ah.replacePolarGraphicalItem;var qwe=Bz.reducer,Gwe=e=>{var t=Cn(),n=v.useRef(null);return v.useLayoutEffect(()=>{n.current===null?t(Wwe(e)):n.current!==e&&t(Vwe({prev:n.current,next:e})),n.current=e},[t,e]),v.useLayoutEffect(()=>()=>{n.current&&(t(Uwe(n.current)),n.current=null)},[t]),null},Kwe=v.memo(Gwe),Zwe=["points"];function c6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function $1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?c6(Object(n),!0).forEach(function(a){Ywe(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Ywe(e,t,n){return(t=Jwe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Jwe(e){var t=Xwe(e,"string");return typeof t=="symbol"?t:t+""}function Xwe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function kv(){return kv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},kv.apply(null,arguments)}function Qwe(e,t){if(e==null)return{};var n,a,i=e1e(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function e1e(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function t1e(e){var t=e.option,n=e.dotProps,a=e.className;if(v.isValidElement(t))return v.cloneElement(t,n);if(typeof t=="function")return t(n);var i=Ut(a,typeof t!="boolean"?t.className:""),s=n??{};s.points;var o=Qwe(s,Zwe);return v.createElement(Oz,kv({},o,{className:i}))}function n1e(e,t){return e==null?!1:t?!0:e.length===1}function r1e(e){var t=e.points,n=e.dot,a=e.className,i=e.dotClassName,s=e.dataKey,o=e.baseProps,l=e.needClip,c=e.clipPathId,h=e.zIndex,m=h===void 0?Dr.scatter:h;if(!n1e(t,n))return null;var p=Iz(n),x=ele(n),b=t.map((N,_)=>{var S,A,P=$1($1($1({r:3},o),x),{},{index:_,cx:(S=N.x)!==null&&S!==void 0?S:void 0,cy:(A=N.y)!==null&&A!==void 0?A:void 0,dataKey:s,value:N.value,payload:N.payload,points:t});return v.createElement(t1e,{key:"dot-".concat(_),option:n,dotProps:P,className:i})}),j={};return l&&c!=null&&(j.clipPath="url(#clipPath-".concat(p?"":"dots-").concat(c,")")),v.createElement(yo,{zIndex:m},v.createElement(Ya,kv({className:a},j),b))}function d6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function qx(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?d6(Object(n),!0).forEach(function(a){a1e(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function a1e(e,t,n){return(t=i1e(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i1e(e){var t=s1e(e,"string");return typeof t=="symbol"?t:t+""}function s1e(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Fz=0,o1e={xAxis:{},yAxis:{},zAxis:{}},zz=_r({name:"cartesianAxis",initialState:o1e,reducers:{addXAxis:{reducer(e,t){e.xAxis[t.payload.id]=Rt(t.payload)},prepare:Xt()},replaceXAxis:{reducer(e,t){var n=t.payload,a=n.prev,i=n.next;e.xAxis[a.id]!==void 0&&(a.id!==i.id&&delete e.xAxis[a.id],e.xAxis[i.id]=Rt(i))},prepare:Xt()},removeXAxis:{reducer(e,t){delete e.xAxis[t.payload.id]},prepare:Xt()},addYAxis:{reducer(e,t){e.yAxis[t.payload.id]=Rt(t.payload)},prepare:Xt()},replaceYAxis:{reducer(e,t){var n=t.payload,a=n.prev,i=n.next;e.yAxis[a.id]!==void 0&&(a.id!==i.id&&delete e.yAxis[a.id],e.yAxis[i.id]=Rt(i))},prepare:Xt()},removeYAxis:{reducer(e,t){delete e.yAxis[t.payload.id]},prepare:Xt()},addZAxis:{reducer(e,t){e.zAxis[t.payload.id]=Rt(t.payload)},prepare:Xt()},replaceZAxis:{reducer(e,t){var n=t.payload,a=n.prev,i=n.next;e.zAxis[a.id]!==void 0&&(a.id!==i.id&&delete e.zAxis[a.id],e.zAxis[i.id]=Rt(i))},prepare:Xt()},removeZAxis:{reducer(e,t){delete e.zAxis[t.payload.id]},prepare:Xt()},updateYAxisWidth(e,t){var n=t.payload,a=n.id,i=n.width,s=e.yAxis[a];if(s){var o,l=s.widthHistory||[];if(l.length===3&&l[0]===l[2]&&i===l[1]&&i!==s.width&&Math.abs(i-((o=l[0])!==null&&o!==void 0?o:0))<=1)return;var c=[...l,i].slice(-3);e.yAxis[a]=qx(qx({},s),{},{width:i,widthHistory:c})}},updateXAxisHeight(e,t){var n=t.payload,a=n.id,i=n.height,s=e.xAxis[a];if(s){var o,l=s.heightHistory||[];if(l.length===3&&l[0]===l[2]&&i===l[1]&&i!==s.height&&Math.abs(i-((o=l[0])!==null&&o!==void 0?o:0))<=1)return;var c=[...l,i].slice(-3);e.xAxis[a]=qx(qx({},s),{},{height:i,heightHistory:c})}}}}),Pi=zz.actions,l1e=Pi.addXAxis,c1e=Pi.replaceXAxis,d1e=Pi.removeXAxis,u1e=Pi.addYAxis,h1e=Pi.replaceYAxis,f1e=Pi.removeYAxis;Pi.addZAxis;Pi.replaceZAxis;Pi.removeZAxis;var m1e=Pi.updateYAxisWidth,p1e=Pi.updateXAxisHeight,g1e=zz.reducer,x1e=le([dr],e=>({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),y1e=le([x1e,ho,fo],(e,t,n)=>{if(!(!e||t==null||n==null))return{x:e.left,y:e.top,width:Math.max(0,t-e.left-e.right),height:Math.max(0,n-e.top-e.bottom)}}),ES=()=>Ve(y1e),v1e=()=>Ve(Sve);function u6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function H1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?u6(Object(n),!0).forEach(function(a){b1e(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function b1e(e,t,n){return(t=w1e(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w1e(e){var t=j1e(e,"string");return typeof t=="symbol"?t:t+""}function j1e(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var N1e=e=>{var t=e.point,n=e.childIndex,a=e.mainColor,i=e.activeDot,s=e.dataKey,o=e.clipPath;if(i===!1||t.x==null||t.y==null)return null;var l={index:n,dataKey:s,cx:t.x,cy:t.y,r:4,fill:a??"none",strokeWidth:2,stroke:"#fff",payload:t.payload,value:t.value},c=H1(H1(H1({},l),i0(i)),u_(i)),h;return v.isValidElement(i)?h=v.cloneElement(i,c):typeof i=="function"?h=i(c):h=v.createElement(Oz,c),v.createElement(Ya,{className:"recharts-active-dot",clipPath:o},h)};function h6(e){var t=e.points,n=e.mainColor,a=e.activeDot,i=e.itemDataKey,s=e.clipPath,o=e.zIndex,l=o===void 0?Dr.activeDot:o,c=Ve(Jm),h=v1e();if(t==null||h==null)return null;var m=t.find(p=>h.includes(p.payload));return lr(m)?null:v.createElement(yo,{zIndex:l},v.createElement(N1e,{point:m,childIndex:Number(c),mainColor:n,dataKey:i,activeDot:a,clipPath:s}))}var k1e=e=>{var t=e.chartData,n=Cn(),a=ra();return v.useEffect(()=>a?()=>{}:(n(I5(t)),()=>{n(I5(void 0))}),[t,n,a]),null},f6={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},$z=_r({name:"brush",initialState:f6,reducers:{setBrushSettings(e,t){return t.payload==null?f6:t.payload}}});$z.actions.setBrushSettings;var _1e=$z.reducer;function S1e(e){return(e%180+180)%180}var C1e=function(t){var n=t.width,a=t.height,i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=S1e(i),o=s*Math.PI/180,l=Math.atan(a/n),c=o>l&&o<Math.PI-l?a/Math.sin(o):n/Math.cos(o);return Math.abs(c)},T1e={dots:[],areas:[],lines:[]},Hz=_r({name:"referenceElements",initialState:T1e,reducers:{addDot:(e,t)=>{e.dots.push(t.payload)},removeDot:(e,t)=>{var n=Va(e).dots.findIndex(a=>a===t.payload);n!==-1&&e.dots.splice(n,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var n=Va(e).areas.findIndex(a=>a===t.payload);n!==-1&&e.areas.splice(n,1)},addLine:(e,t)=>{e.lines.push(Rt(t.payload))},removeLine:(e,t)=>{var n=Va(e).lines.findIndex(a=>a===t.payload);n!==-1&&e.lines.splice(n,1)}}}),Ph=Hz.actions;Ph.addDot;Ph.removeDot;Ph.addArea;Ph.removeArea;Ph.addLine;Ph.removeLine;var A1e=Hz.reducer;function P1e(e,t){return I1e(e)||R1e(e,t)||O1e(e,t)||E1e()}function E1e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function O1e(e,t){if(e){if(typeof e=="string")return m6(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?m6(e,t):void 0}}function m6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function R1e(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function I1e(e){if(Array.isArray(e))return e}var M1e=v.createContext(void 0),L1e=e=>{var t=e.children,n=v.useState("".concat($m("recharts"),"-clip")),a=P1e(n,1),i=a[0],s=ES();if(s==null)return null;var o=s.x,l=s.y,c=s.width,h=s.height;return v.createElement(M1e.Provider,{value:i},v.createElement("defs",null,v.createElement("clipPath",{id:i},v.createElement("rect",{x:o,y:l,height:h,width:c}))),t)};function D1e(){}function p6(e){if(!e||typeof e!="object")return!1;const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype||Object.getPrototypeOf(t)===null?Object.prototype.toString.call(e)==="[object Object]":!1}function B1e(e,t,n){return dm(e,t,void 0,void 0,void 0,void 0,n)}function dm(e,t,n,a,i,s,o){const l=o(e,t,n,a,i,s);if(l!==void 0)return l;if(typeof e==typeof t)switch(typeof e){case"bigint":case"string":case"boolean":case"symbol":case"undefined":return e===t;case"number":return e===t||Object.is(e,t);case"function":return e===t;case"object":return jm(e,t,s,o)}return jm(e,t,s,o)}function jm(e,t,n,a){if(Object.is(e,t))return!0;let i=qu(e),s=qu(t);if(i==="[object Arguments]"&&(i=xy),s==="[object Arguments]"&&(s=xy),i!==s)return!1;switch(i){case f_:return e.toString()===t.toString();case m_:return vm(e.valueOf(),t.valueOf());case p_:case RB:case OB:return Object.is(e.valueOf(),t.valueOf());case PB:return e.source===t.source&&e.flags===t.flags;case Jle:return e===t}n=n??new Map;const o=n.get(e),l=n.get(t);if(o!=null&&l!=null)return o===t;n.set(e,t),n.set(t,e);try{switch(i){case IB:if(e.size!==t.size)return!1;for(const[c,h]of e.entries())if(!t.has(c)||!dm(h,t.get(c),c,e,t,n,a))return!1;return!0;case MB:{if(e.size!==t.size)return!1;const c=Array.from(e.values()),h=Array.from(t.values());for(let m=0;m<c.length;m++){const p=c[m],x=h.findIndex(b=>dm(p,b,void 0,e,t,n,a));if(x===-1)return!1;h.splice(x,1)}return!0}case LB:case FB:case zB:case $B:case HB:case Qle:case WB:case VB:case UB:case ece:case qB:case GB:if(LN(e)!==LN(t)||e.length!==t.length)return!1;for(let c=0;c<e.length;c++)if(!dm(e[c],t[c],c,e,t,n,a))return!1;return!0;case DB:return e.byteLength!==t.byteLength?!1:jm(new Uint8Array(e),new Uint8Array(t),n,a);case BB:return e.byteLength!==t.byteLength||e.byteOffset!==t.byteOffset?!1:jm(new Uint8Array(e),new Uint8Array(t),n,a);case Xle:return e.name===t.name&&e.message===t.message;case xy:{if(!(jm(e.constructor,t.constructor,n,a)||p6(e)&&p6(t)))return!1;const c=[...Object.keys(e),...MN(e)],h=[...Object.keys(t),...MN(t)];if(c.length!==h.length)return!1;for(let m=0;m<c.length;m++){const p=c[m],x=e[p];if(!Object.hasOwn(t,p))return!1;const b=t[p];if(!dm(x,b,p,e,t,n,a))return!1}return!0}default:return!1}}finally{n.delete(e),n.delete(t)}}function F1e(e,t){return B1e(e,t,D1e)}function Wz(e,t){if(t<1)return[];if(t===1)return e;for(var n=[],a=0;a<e.length;a+=t){var i=e[a];i!==void 0&&n.push(i)}return n}function z1e(e,t,n){var a={width:e.width+t.width,height:e.height+t.height};return C1e(a,n)}function $1e(e,t,n){var a=n==="width",i=e.x,s=e.y,o=e.width,l=e.height;return t===1?{start:a?i:s,end:a?i+o:s+l}:{start:a?i+o:s+l,end:a?i:s}}function Qm(e,t,n,a,i){if(e*t<e*a||e*t>e*i)return!1;var s=n();return e*(t-e*s/2-a)>=0&&e*(t+e*s/2-i)<=0}function H1e(e,t){return Wz(e,t+1)}function W1e(e,t,n,a,i){for(var s=(a||[]).slice(),o=t.start,l=t.end,c=0,h=1,m=o,p=function(){var j=a?.[c];if(j===void 0)return{v:Wz(a,h)};var N=c,_,S=()=>(_===void 0&&(_=n(j,N)),_),A=j.coordinate,P=c===0||Qm(e,A,S,m,l);P||(c=0,m=o,h+=1),P&&(m=A+e*(S()/2+i),c+=h)},x;h<=s.length;)if(x=p(),x)return x.v;return[]}function V1e(e,t,n,a,i){var s=(a||[]).slice(),o=s.length;if(o===0)return[];for(var l=t.start,c=t.end,h=1;h<=o;h++){for(var m=(o-1)%h,p=l,x=!0,b=function(){var I=a[N];if(I==null)return 0;var O=N,M,z=()=>(M===void 0&&(M=n(I,O)),M),$=I.coordinate,K=N===m||Qm(e,$,z,p,c);if(!K)return x=!1,1;K&&(p=$+e*(z()/2+i))},j,N=m;N<o&&(j=b(),!(j!==0&&j===1));N+=h);if(x){for(var _=[],S=m;S<o;S+=h){var A=a[S];A!=null&&_.push(A)}return _}}return[]}function g6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function wr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?g6(Object(n),!0).forEach(function(a){U1e(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):g6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function U1e(e,t,n){return(t=q1e(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function q1e(e){var t=G1e(e,"string");return typeof t=="symbol"?t:t+""}function G1e(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function K1e(e,t,n,a,i){for(var s=(a||[]).slice(),o=s.length,l=t.start,c=t.end,h=function(x){var b=s[x];if(b==null)return 1;var j=b,N,_=()=>(N===void 0&&(N=n(b,x)),N);if(x===o-1){var S=e*(j.coordinate+e*_()/2-c);s[x]=j=wr(wr({},j),{},{tickCoord:S>0?j.coordinate-S*e:j.coordinate})}else s[x]=j=wr(wr({},j),{},{tickCoord:j.coordinate});if(j.tickCoord!=null){var A=Qm(e,j.tickCoord,_,l,c);A&&(c=j.tickCoord-e*(_()/2+i),s[x]=wr(wr({},j),{},{isShow:!0}))}},m=o-1;m>=0;m--)h(m);return s}function Z1e(e,t,n,a,i,s){var o=(a||[]).slice(),l=o.length,c=t.start,h=t.end;if(s){var m=a[l-1];if(m!=null){var p=n(m,l-1),x=e*(m.coordinate+e*p/2-h);if(o[l-1]=m=wr(wr({},m),{},{tickCoord:x>0?m.coordinate-x*e:m.coordinate}),m.tickCoord!=null){var b=Qm(e,m.tickCoord,()=>p,c,h);b&&(h=m.tickCoord-e*(p/2+i),o[l-1]=wr(wr({},m),{},{isShow:!0}))}}}for(var j=s?l-1:l,N=function(A){var P=o[A];if(P==null)return 1;var I=P,O,M=()=>(O===void 0&&(O=n(P,A)),O);if(A===0){var z=e*(I.coordinate-e*M()/2-c);o[A]=I=wr(wr({},I),{},{tickCoord:z<0?I.coordinate-z*e:I.coordinate})}else o[A]=I=wr(wr({},I),{},{tickCoord:I.coordinate});if(I.tickCoord!=null){var $=Qm(e,I.tickCoord,M,c,h);$&&(c=I.tickCoord+e*(M()/2+i),o[A]=wr(wr({},I),{},{isShow:!0}))}},_=0;_<j;_++)N(_);return o}function OS(e,t,n){var a=e.tick,i=e.ticks,s=e.viewBox,o=e.minTickGap,l=e.orientation,c=e.interval,h=e.tickFormatter,m=e.unit,p=e.angle;if(!i||!i.length||!a)return[];if(Ie(c)||Sp.isSsr){var x;return(x=H1e(i,Ie(c)?c:0))!==null&&x!==void 0?x:[]}var b=[],j=l==="top"||l==="bottom"?"width":"height",N=m&&j==="width"?wm(m,{fontSize:t,letterSpacing:n}):{width:0,height:0},_=(O,M)=>{var z=typeof h=="function"?h(O.value,M):O.value;return j==="width"?z1e(wm(z,{fontSize:t,letterSpacing:n}),N,p):wm(z,{fontSize:t,letterSpacing:n})[j]},S=i[0],A=i[1],P=i.length>=2&&S!=null&&A!=null?Wa(A.coordinate-S.coordinate):1,I=$1e(s,P,j);return c==="equidistantPreserveStart"?W1e(P,I,_,i,o):c==="equidistantPreserveEnd"?V1e(P,I,_,i,o):(c==="preserveStart"||c==="preserveStartEnd"?b=Z1e(P,I,_,i,o,c==="preserveStartEnd"):b=K1e(P,I,_,i,o),b.filter(O=>O.isShow))}var Y1e=e=>{var t=e.ticks,n=e.label,a=e.labelGapWithTick,i=a,s=e.tickSize,o=s===void 0?0:s,l=e.tickMargin,c=l===void 0?0:l,h=0;if(t){Array.from(t).forEach(b=>{if(b){var j=b.getBoundingClientRect();j.width>h&&(h=j.width)}});var m=n?n.getBoundingClientRect().width:0,p=o+c,x=h+p+m+(n?i:0);return Math.round(x)}return 0},J1e=e=>{var t=e.ticks,n=e.label,a=e.labelGapWithTick,i=a,s=e.tickSize,o=s===void 0?0:s,l=e.tickMargin,c=l===void 0?0:l,h=0;if(t){Array.from(t).forEach(b=>{if(b){var j=b.getBoundingClientRect();j.height>h&&(h=j.height)}});var m=n?n.getBoundingClientRect().height:0,p=o+c,x=h+p+m+(n?i:0);return Math.round(x)}return 0},X1e={xAxis:{},yAxis:{}},Vz=_r({name:"renderedTicks",initialState:X1e,reducers:{setRenderedTicks:(e,t)=>{var n=t.payload,a=n.axisType,i=n.axisId,s=n.ticks;e[a][i]=Rt(s)},removeRenderedTicks:(e,t)=>{var n=t.payload,a=n.axisType,i=n.axisId;delete e[a][i]}}}),Uz=Vz.actions,Q1e=Uz.setRenderedTicks,eje=Uz.removeRenderedTicks,tje=Vz.reducer,nje=["axisLine","width","height","className","hide","ticks","axisType","axisId"];function x6(e,t){return sje(e)||ije(e,t)||aje(e,t)||rje()}function rje(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function aje(e,t){if(e){if(typeof e=="string")return y6(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?y6(e,t):void 0}}function y6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function ije(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function sje(e){if(Array.isArray(e))return e}function oje(e,t){if(e==null)return{};var n,a,i=lje(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function lje(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function $c(){return $c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},$c.apply(null,arguments)}function v6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function bn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?v6(Object(n),!0).forEach(function(a){cje(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):v6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function cje(e,t,n){return(t=dje(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function dje(e){var t=uje(e,"string");return typeof t=="symbol"?t:t+""}function uje(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var eo={x:0,y:0,width:0,height:0,viewBox:{x:0,y:0,width:0,height:0},orientation:"bottom",ticks:[],stroke:"#666",tickLine:!0,axisLine:!0,tick:!0,mirror:!1,minTickGap:5,tickSize:6,tickMargin:2,interval:"preserveEnd",zIndex:Dr.axis};function hje(e){var t=e.x,n=e.y,a=e.width,i=e.height,s=e.orientation,o=e.mirror,l=e.axisLine,c=e.otherSvgProps;if(!l)return null;var h=bn(bn(bn({},c),ki(l)),{},{fill:"none"});if(s==="top"||s==="bottom"){var m=+(s==="top"&&!o||s==="bottom"&&o);h=bn(bn({},h),{},{x1:t,y1:n+m*i,x2:t+a,y2:n+m*i})}else{var p=+(s==="left"&&!o||s==="right"&&o);h=bn(bn({},h),{},{x1:t+p*a,y1:n,x2:t+p*a,y2:n+i})}return v.createElement("line",$c({},h,{className:Ut("recharts-cartesian-axis-line",Zc(l,"className"))}))}function fje(e,t,n,a,i,s,o,l,c){var h,m,p,x,b,j,N=l?-1:1,_=e.tickSize||o,S=Ie(e.tickCoord)?e.tickCoord:e.coordinate;switch(s){case"top":h=m=e.coordinate,x=n+ +!l*i,p=x-N*_,j=p-N*c,b=S;break;case"left":p=x=e.coordinate,m=t+ +!l*a,h=m-N*_,b=h-N*c,j=S;break;case"right":p=x=e.coordinate,m=t+ +l*a,h=m+N*_,b=h+N*c,j=S;break;default:h=m=e.coordinate,x=n+ +l*i,p=x+N*_,j=p+N*c,b=S;break}return{line:{x1:h,y1:p,x2:m,y2:x},tick:{x:b,y:j}}}function mje(e,t){switch(e){case"left":return t?"start":"end";case"right":return t?"end":"start";default:return"middle"}}function pje(e,t){switch(e){case"left":case"right":return"middle";case"top":return t?"start":"end";default:return t?"end":"start"}}function gje(e){var t=e.option,n=e.tickProps,a=e.value,i,s=Ut(n.className,"recharts-cartesian-axis-tick-value");if(v.isValidElement(t))i=v.cloneElement(t,bn(bn({},n),{},{className:s}));else if(typeof t=="function")i=t(bn(bn({},n),{},{className:s}));else{var o="recharts-cartesian-axis-tick-value";typeof t!="boolean"&&(o=Ut(o,rwe(t))),i=v.createElement(TS,$c({},n,{className:o}),a)}return i}function xje(e){var t=e.ticks,n=e.axisType,a=e.axisId,i=Cn(),s=v.useRef(null);return v.useEffect(()=>{if(!(a==null||n==null)){var o=t.map(c=>({value:c.value,coordinate:c.coordinate,offset:c.offset,index:c.index})),l=s.current;l!=null&&l.axisId===a&&l.axisType===n&&F1e(l.ticks,o)||(s.current={ticks:o,axisId:a,axisType:n},i(Q1e({ticks:o,axisId:a,axisType:n})))}},[i,t,a,n]),v.useEffect(()=>a==null||n==null?vh:()=>{i(eje({axisId:a,axisType:n}))},[i,a,n]),null}var yje=v.forwardRef((e,t)=>{var n=e.ticks,a=n===void 0?[]:n,i=e.tick,s=e.tickLine,o=e.stroke,l=e.tickFormatter,c=e.unit,h=e.padding,m=e.tickTextProps,p=e.orientation,x=e.mirror,b=e.x,j=e.y,N=e.width,_=e.height,S=e.tickSize,A=e.tickMargin,P=e.fontSize,I=e.letterSpacing,O=e.getTicksConfig,M=e.events,z=e.axisType,$=e.axisId,K=OS(bn(bn({},O),{},{ticks:a}),P,I),X=ki(O),te=i0(i),q=kz(X.textAnchor)?X.textAnchor:mje(p,x),he=pje(p,x),ne={};typeof s=="object"&&(ne=s);var G=bn(bn({},X),{},{fill:"none"},ne),H=K.map(ie=>bn({entry:ie},fje(ie,b,j,N,_,p,S,x,A))),Q=H.map(ie=>{var Y=ie.entry,V=ie.line;return v.createElement(Ya,{className:"recharts-cartesian-axis-tick",key:"tick-".concat(Y.value,"-").concat(Y.coordinate,"-").concat(Y.tickCoord)},s&&v.createElement("line",$c({},G,V,{className:Ut("recharts-cartesian-axis-tick-line",Zc(s,"className"))})))}),W=H.map((ie,Y)=>{var V,re,be=ie.entry,ge=ie.tick,Ne=bn(bn(bn(bn({verticalAnchor:he},X),{},{textAnchor:q,stroke:"none",fill:o},ge),{},{index:Y,payload:be,visibleTicksCount:K.length,tickFormatter:l,padding:h},m),{},{angle:(V=(re=m?.angle)!==null&&re!==void 0?re:X.angle)!==null&&V!==void 0?V:0}),we=bn(bn({},Ne),te);return v.createElement(Ya,$c({className:"recharts-cartesian-axis-tick-label",key:"tick-label-".concat(be.value,"-").concat(be.coordinate,"-").concat(be.tickCoord)},$le(M,be,Y)),i&&v.createElement(gje,{option:i,tickProps:we,value:"".concat(typeof l=="function"?l(be.value,Y):be.value).concat(c||"")}))});return v.createElement("g",{className:"recharts-cartesian-axis-ticks recharts-".concat(z,"-ticks")},v.createElement(xje,{ticks:K,axisId:$,axisType:z}),W.length>0&&v.createElement(yo,{zIndex:Dr.label},v.createElement("g",{className:"recharts-cartesian-axis-tick-labels recharts-".concat(z,"-tick-labels"),ref:t},W)),Q.length>0&&v.createElement("g",{className:"recharts-cartesian-axis-tick-lines recharts-".concat(z,"-tick-lines")},Q))}),vje=v.forwardRef((e,t)=>{var n=e.axisLine,a=e.width,i=e.height,s=e.className,o=e.hide,l=e.ticks,c=e.axisType,h=e.axisId,m=oje(e,nje),p=v.useState(""),x=x6(p,2),b=x[0],j=x[1],N=v.useState(""),_=x6(N,2),S=_[0],A=_[1],P=v.useRef(null);v.useImperativeHandle(t,()=>({getCalculatedWidth:()=>{var O;return Y1e({ticks:P.current,label:(O=e.labelRef)===null||O===void 0?void 0:O.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})},getCalculatedHeight:()=>{var O;return J1e({ticks:P.current,label:(O=e.labelRef)===null||O===void 0?void 0:O.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}}));var I=v.useCallback(O=>{if(O){var M=O.getElementsByClassName("recharts-cartesian-axis-tick-value");P.current=M;var z=M[0];if(z){var $=window.getComputedStyle(z),K=$.fontSize,X=$.letterSpacing;(K!==b||X!==S)&&(j(K),A(X))}}},[b,S]);return o||a!=null&&a<=0||i!=null&&i<=0?null:v.createElement(yo,{zIndex:e.zIndex},v.createElement(Ya,{className:Ut("recharts-cartesian-axis",s)},v.createElement(hje,{x:e.x,y:e.y,width:a,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:ki(e)}),v.createElement(yje,{ref:I,axisType:c,events:m,fontSize:b,getTicksConfig:e,height:e.height,letterSpacing:S,mirror:e.mirror,orientation:e.orientation,padding:e.padding,stroke:e.stroke,tick:e.tick,tickFormatter:e.tickFormatter,tickLine:e.tickLine,tickMargin:e.tickMargin,tickSize:e.tickSize,tickTextProps:e.tickTextProps,ticks:l,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:h}),v.createElement(Lbe,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},v.createElement(qbe,{label:e.label,labelRef:e.labelRef}),e.children)))}),RS=v.forwardRef((e,t)=>{var n=ti(e,eo);return v.createElement(vje,$c({},n,{ref:t}))});RS.displayName="CartesianAxis";var bje={grid:{stroke:"#ccc",fill:"none"}},qz=v.createContext(bje);qz.Provider;var wje=()=>v.useContext(qz),jje=["x1","y1","x2","y2","key"],Nje=["offset"],kje=["xAxisId","yAxisId"],_je=["xAxisId","yAxisId"];function b6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function jr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?b6(Object(n),!0).forEach(function(a){Sje(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):b6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Sje(e,t,n){return(t=Cje(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Cje(e){var t=Tje(e,"string");return typeof t=="symbol"?t:t+""}function Tje(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Cc(){return Cc=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Cc.apply(null,arguments)}function _v(e,t){if(e==null)return{};var n,a,i=Aje(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Aje(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var Pje=e=>{var t=e.fill;if(!t||t==="none")return null;var n=e.fillOpacity,a=e.x,i=e.y,s=e.width,o=e.height,l=e.ry;return v.createElement("rect",{x:a,y:i,ry:l,width:s,height:o,stroke:"none",fill:t,fillOpacity:n,className:"recharts-cartesian-grid-bg"})};function Gz(e){var t=e.option,n=e.lineItemProps,a;if(v.isValidElement(t))a=v.cloneElement(t,n);else if(typeof t=="function")a=t(n);else{var i,s=n.x1,o=n.y1,l=n.x2,c=n.y2,h=n.key,m=_v(n,jje),p=(i=ki(m))!==null&&i!==void 0?i:{};p.offset;var x=_v(p,Nje),b=Array.isArray(x.strokeDasharray)?x.strokeDasharray.join(","):x.strokeDasharray;a=v.createElement("line",Cc({},x,{strokeDasharray:b,x1:s,y1:o,x2:l,y2:c,fill:"none",key:h}))}return a}function Eje(e){var t=e.x,n=e.width,a=e.horizontal,i=a===void 0?!0:a,s=e.horizontalPoints;if(!i||!s||!s.length)return null;e.xAxisId,e.yAxisId;var o=_v(e,kje),l=s.map((c,h)=>{var m=jr(jr({},o),{},{x1:t,y1:c,x2:t+n,y2:c,key:"line-".concat(h),index:h});return v.createElement(Gz,{key:"line-".concat(h),option:i,lineItemProps:m})});return v.createElement("g",{className:"recharts-cartesian-grid-horizontal"},l)}function Oje(e){var t=e.y,n=e.height,a=e.vertical,i=a===void 0?!0:a,s=e.verticalPoints;if(!i||!s||!s.length)return null;e.xAxisId,e.yAxisId;var o=_v(e,_je),l=s.map((c,h)=>{var m=jr(jr({},o),{},{x1:c,y1:t,x2:c,y2:t+n,key:"line-".concat(h),index:h});return v.createElement(Gz,{option:i,lineItemProps:m,key:"line-".concat(h)})});return v.createElement("g",{className:"recharts-cartesian-grid-vertical"},l)}function Rje(e){var t=e.horizontalFill,n=e.fillOpacity,a=e.x,i=e.y,s=e.width,o=e.height,l=e.horizontalPoints,c=e.horizontal,h=c===void 0?!0:c;if(!h||!t||!t.length||l==null)return null;var m=l.map(x=>Math.round(x+i-i)).sort((x,b)=>x-b);i!==m[0]&&m.unshift(0);var p=m.map((x,b)=>{var j=m[b+1],N=j==null,_=N?i+o-x:j-x;if(_<=0)return null;var S=b%t.length;return v.createElement("rect",{key:"react-".concat(b),y:x,x:a,height:_,width:s,stroke:"none",fill:t[S],fillOpacity:n,className:"recharts-cartesian-grid-bg"})});return v.createElement("g",{className:"recharts-cartesian-gridstripes-horizontal"},p)}function Ije(e){var t=e.vertical,n=t===void 0?!0:t,a=e.verticalFill,i=e.fillOpacity,s=e.x,o=e.y,l=e.width,c=e.height,h=e.verticalPoints;if(!n||!a||!a.length)return null;var m=h.map(x=>Math.round(x+s-s)).sort((x,b)=>x-b);s!==m[0]&&m.unshift(0);var p=m.map((x,b)=>{var j=m[b+1],N=j==null,_=N?s+l-x:j-x;if(_<=0)return null;var S=b%a.length;return v.createElement("rect",{key:"react-".concat(b),x,y:o,width:_,height:c,stroke:"none",fill:a[S],fillOpacity:i,className:"recharts-cartesian-grid-bg"})});return v.createElement("g",{className:"recharts-cartesian-gridstripes-vertical"},p)}var Mje=(e,t)=>{var n=e.xAxis,a=e.width,i=e.height,s=e.offset;return O9(OS(jr(jr(jr({},eo),n),{},{ticks:R9(n),viewBox:{x:0,y:0,width:a,height:i}})),s.left,s.left+s.width,t)},Lje=(e,t)=>{var n=e.yAxis,a=e.width,i=e.height,s=e.offset;return O9(OS(jr(jr(jr({},eo),n),{},{ticks:R9(n),viewBox:{x:0,y:0,width:a,height:i}})),s.top,s.top+s.height,t)},Dje={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:Dr.grid};function Kz(e){var t,n,a,i,s,o,l=$9(),c=H9(),h=z9(),m=jr(jr({},ti(e,Dje)),{},{x:Ie(e.x)?e.x:h.left,y:Ie(e.y)?e.y:h.top,width:Ie(e.width)?e.width:h.width,height:Ie(e.height)?e.height:h.height}),p=m.xAxisId,x=m.yAxisId,b=m.x,j=m.y,N=m.width,_=m.height,S=m.syncWithTicks,A=m.horizontalValues,P=m.verticalValues,I=ra(),O=Ve(Q=>w5(Q,"xAxis",p,I)),M=Ve(Q=>w5(Q,"yAxis",x,I)),z=wje(),$={stroke:(t=m.stroke)!==null&&t!==void 0?t:z.grid.stroke,strokeWidth:(n=m.strokeWidth)!==null&&n!==void 0?n:z.grid.strokeWidth,strokeOpacity:(a=m.strokeOpacity)!==null&&a!==void 0?a:z.grid.strokeOpacity,strokeDasharray:(i=m.strokeDasharray)!==null&&i!==void 0?i:z.grid.strokeDasharray};if(!ds(N)||!ds(_)||!Ie(b)||!Ie(j))return null;var K=m.verticalCoordinatesGenerator||Mje,X=m.horizontalCoordinatesGenerator||Lje,te=m.horizontalPoints,q=m.verticalPoints;if((!te||!te.length)&&typeof X=="function"){var he=A&&A.length,ne=X({yAxis:M?jr(jr({},M),{},{ticks:he?A:M.ticks}):void 0,width:l??N,height:c??_,offset:h},he?!0:S);ev(Array.isArray(ne),"horizontalCoordinatesGenerator should return Array but instead it returned [".concat(typeof ne,"]")),Array.isArray(ne)&&(te=ne)}if((!q||!q.length)&&typeof K=="function"){var G=P&&P.length,H=K({xAxis:O?jr(jr({},O),{},{ticks:G?P:O.ticks}):void 0,width:l??N,height:c??_,offset:h},G?!0:S);ev(Array.isArray(H),"verticalCoordinatesGenerator should return Array but instead it returned [".concat(typeof H,"]")),Array.isArray(H)&&(q=H)}return v.createElement(yo,{zIndex:m.zIndex},v.createElement("g",{className:"recharts-cartesian-grid"},v.createElement(Pje,{fill:(s=m.fill)!==null&&s!==void 0?s:z.grid.fill,fillOpacity:(o=m.fillOpacity)!==null&&o!==void 0?o:z.grid.fillOpacity,x:m.x,y:m.y,width:m.width,height:m.height,ry:m.ry}),v.createElement(Rje,Cc({},m,{horizontalPoints:te})),v.createElement(Ije,Cc({},m,{verticalPoints:q})),v.createElement(Eje,Cc({},m,$,{offset:h,horizontalPoints:te,xAxis:O,yAxis:M})),v.createElement(Oje,Cc({},m,$,{offset:h,verticalPoints:q,xAxis:O,yAxis:M}))))}Kz.displayName="CartesianGrid";var Bje={},Zz=_r({name:"errorBars",initialState:Bje,reducers:{addErrorBar:(e,t)=>{var n=t.payload,a=n.itemId,i=n.errorBar;e[a]||(e[a]=[]),e[a].push(i)},replaceErrorBar:(e,t)=>{var n=t.payload,a=n.itemId,i=n.prev,s=n.next;e[a]&&(e[a]=e[a].map(o=>o.dataKey===i.dataKey&&o.direction===i.direction?s:o))},removeErrorBar:(e,t)=>{var n=t.payload,a=n.itemId,i=n.errorBar;e[a]&&(e[a]=e[a].filter(s=>s.dataKey!==i.dataKey||s.direction!==i.direction))}}}),IS=Zz.actions;IS.addErrorBar;IS.replaceErrorBar;IS.removeErrorBar;var Fje=Zz.reducer;function Yz(e,t){var n,a,i=Ve(h=>po(h,e)),s=Ve(h=>go(h,t)),o=(n=i?.allowDataOverflow)!==null&&n!==void 0?n:Bn.allowDataOverflow,l=(a=s?.allowDataOverflow)!==null&&a!==void 0?a:Fn.allowDataOverflow,c=o||l;return{needClip:c,needClipX:o,needClipY:l}}function zje(e){var t=e.xAxisId,n=e.yAxisId,a=e.clipPathId,i=ES(),s=Yz(t,n),o=s.needClipX,l=s.needClipY,c=s.needClip,h=Ve(P=>R7(P,t,!1)),m=Ve(P=>I7(P,n,!1));if(!c||!i)return null;var p=i.x,x=i.y,b=i.width,j=i.height,N=o&&h?Math.min(h[0],h[1]):p-b/2,_=l&&m?Math.min(m[0],m[1]):x-j/2,S=o&&h?Math.abs(h[1]-h[0]):b*2,A=l&&m?Math.abs(m[1]-m[0]):j*2;return v.createElement("clipPath",{id:"clipPath-".concat(a)},v.createElement("rect",{x:N,y:_,width:S,height:A}))}function $je(e){var t=i0(e),n=3,a=2;if(t!=null){var i=t.r,s=t.strokeWidth,o=Number(i),l=Number(s);return(Number.isNaN(o)||o<0)&&(o=n),(Number.isNaN(l)||l<0)&&(l=a),{r:o,strokeWidth:l}}return{r:n,strokeWidth:a}}function MS(e,t){var n,a;return(n=(a=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||a===void 0?void 0:a.xAxisId)!==null&&n!==void 0?n:Fz}function LS(e,t){var n,a;return(n=(a=e.graphicalItems.cartesianItems.find(i=>i.id===t))===null||a===void 0?void 0:a.yAxisId)!==null&&n!==void 0?n:Fz}var Jz=(e,t,n)=>H7(e,"xAxis",MS(e,t),n),Xz=(e,t,n)=>$7(e,"xAxis",MS(e,t),n),Qz=(e,t,n)=>H7(e,"yAxis",LS(e,t),n),e$=(e,t,n)=>$7(e,"yAxis",LS(e,t),n),Hje=le([ln,Jz,Qz,Xz,e$],(e,t,n,a,i)=>fs(e,"xAxis")?Qy(t,a,!1):Qy(n,i,!1)),Wje=(e,t)=>t,DS=le([o7,Wje],(e,t)=>e.filter(n=>n.type==="area").find(n=>n.id===t)),t$=e=>{var t=ln(e),n=fs(t,"xAxis");return n?"yAxis":"xAxis"},Vje=(e,t)=>{var n=t$(e);return n==="yAxis"?LS(e,t):MS(e,t)},n$=(e,t,n)=>x7(e,t$(e),Vje(e,t),n),Uje=le([DS,n$],(e,t)=>{var n;if(!(e==null||t==null)){var a=e.stackId,i=D_(e);if(!(a==null||i==null)){var s=(n=t[a])===null||n===void 0?void 0:n.stackedData,o=s?.find(l=>l.key===i);if(o!=null)return o.map(l=>[l[0],l[1]])}}}),qje=le([DS,n$],(e,t)=>{if(!(e==null||e.stackId==null||t==null)){var n=t[e.stackId];if(n!=null)return n.graphicalItems.map(a=>a.dataKey).filter(Lr)}}),Gje=le([ln,Jz,Qz,Xz,e$,Uje,dme,Hje,DS,Cme,qje],(e,t,n,a,i,s,o,l,c,h,m)=>{var p=o.chartData,x=o.dataStartIndex,b=o.dataEndIndex;if(!(c==null||e!=="horizontal"&&e!=="vertical"||t==null||n==null||a==null||i==null||a.length===0||i.length===0||l==null)){var j=c.data,N;if(j&&j.length>0?N=j:N=p?.slice(x,b+1),N!=null)return vNe({layout:e,xAxis:t,yAxis:n,xAxisTicks:a,yAxisTicks:i,dataStartIndex:x,areaSettings:c,stackedData:s,displayedData:N,chartBaseValue:h,bandSize:l,stackDataKeys:m})}}),Kje=["animationElapsedTime","isAnimating","isEntrance","layout","isRange","stroke","connectNulls"],Zje=["id","baseLine"];function Nm(){return Nm=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Nm.apply(null,arguments)}function w6(e,t){if(e==null)return{};var n,a,i=Yje(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Yje(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function Jje(e){var t,n,a=e.alpha,i=e.baseLine,s=e.points,o=e.strokeWidth,l=(t=s[0])===null||t===void 0?void 0:t.x,c=(n=s[s.length-1])===null||n===void 0?void 0:n.x;if(!St(l)||!St(c))return null;var h=a*Math.abs(l-c),m=Math.max(...s.map(p=>p.y||0));return Ie(i)?m=Math.max(i,m):i&&Array.isArray(i)&&i.length&&(m=Math.max(...i.map(p=>p.y||0),m)),Ie(m)?v.createElement("rect",{x:l<c?l:l-h,y:0,width:h,height:Math.floor(m+(o?parseInt("".concat(o),10):1))}):null}function Xje(e){var t,n,a=e.alpha,i=e.baseLine,s=e.points,o=e.strokeWidth,l=(t=s[0])===null||t===void 0?void 0:t.y,c=(n=s[s.length-1])===null||n===void 0?void 0:n.y;if(!St(l)||!St(c))return null;var h=a*Math.abs(l-c),m=Math.max(...s.map(p=>p.x||0));return Ie(i)?m=Math.max(i,m):i&&Array.isArray(i)&&i.length&&(m=Math.max(...i.map(p=>p.x||0),m)),Ie(m)?v.createElement("rect",{x:0,y:l<c?l:l-h,width:m+(o?parseInt("".concat(o),10):1),height:Math.floor(h)}):null}function Qje(e){var t=e.alpha,n=e.layout,a=e.points,i=e.baseLine,s=e.strokeWidth;return n==="vertical"?v.createElement(Xje,{alpha:t,points:a,baseLine:i,strokeWidth:s}):v.createElement(Jje,{alpha:t,points:a,baseLine:i,strokeWidth:s})}function eNe(e){var t=e.animationElapsedTime,n=t===void 0?1:t,a=e.isAnimating,i=a===void 0?!1:a,s=e.isEntrance,o=s===void 0?!1:s,l=e.layout,c=e.isRange,h=e.stroke,m=e.connectNulls,p=w6(e,Kje),x=l==="vertical"?"vertical":"horizontal",b=m??!1,j=Dz(),N=p.id,_=p.baseLine,S=w6(p,Zje),A=ki(S),P=v.createElement(wy,Nm({},p,{id:N,baseLine:_,connectNulls:b,stroke:"none",className:"recharts-area-area",layout:x})),I=h!=="none"&&v.createElement(wy,Nm({},A,{className:"recharts-area-curve",layout:x,type:p.type,connectNulls:b,fill:"none",stroke:h,points:p.points})),O=h!=="none"&&c&&Array.isArray(_)&&v.createElement(wy,Nm({},A,{className:"recharts-area-curve",layout:x,type:p.type,connectNulls:b,fill:"none",stroke:h,points:_}));if(o&&(i||n<1)){var M;return v.createElement(Ya,null,v.createElement("defs",null,v.createElement("clipPath",{id:j},v.createElement(Qje,{alpha:n,points:(M=p.points)!==null&&M!==void 0?M:[],baseLine:_,layout:x,strokeWidth:p.strokeWidth}))),v.createElement(Ya,{clipPath:"url(#".concat(j,")")},P,I,O))}return v.createElement(v.Fragment,null,P,I,O)}var tNe=["id"],nNe=["activeDot","animationBegin","animationDuration","animationEasing","connectNulls","dot","fill","fillOpacity","hide","isAnimationActive","legendType","stroke","xAxisId","yAxisId"];function Sv(){return Sv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Sv.apply(null,arguments)}function r$(e,t){if(e==null)return{};var n,a,i=rNe(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function rNe(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function j6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function Qu(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?j6(Object(n),!0).forEach(function(a){aNe(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):j6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function aNe(e,t,n){return(t=iNe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function iNe(e){var t=sNe(e,"string");return typeof t=="symbol"?t:t+""}function sNe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var oNe=(e,t)=>e==null?[]:t===1?e.flatMap(n=>n.status==="removed"?[]:[n.next]):e.flatMap(n=>n.status==="matched"?[Qu(Qu({},n.next),{},{x:Gs(n.prev.x,n.next.x,t),y:Gs(n.prev.y,n.next.y,t)})]:n.status==="added"?[n.next]:[]),a$={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:"ease",animationMatchBy:AS,animationInterpolateFn:oNe,connectNulls:!1,dot:!1,fill:"#3182bd",fillOpacity:.6,hide:!1,isAnimationActive:"auto",legendType:"line",stroke:"#3182bd",strokeWidth:1,type:"linear",label:!1,shape:eNe,xAxisId:0,yAxisId:0,zIndex:Dr.area};function Cv(e,t){return e&&e!=="none"?e:t}var lNe=e=>{var t=e.dataKey,n=e.name,a=e.stroke,i=e.fill,s=e.legendType,o=e.hide;return[{inactive:o,dataKey:t,type:s,color:Cv(a,i),value:I9(n,t),payload:e}]},cNe=v.memo(e=>{var t=e.dataKey,n=e.data,a=e.stroke,i=e.strokeWidth,s=e.fill,o=e.name,l=e.hide,c=e.unit,h=e.formatter,m=e.tooltipType,p=e.id,x={dataDefinedOnItem:n,getPosition:vh,settings:{stroke:a,strokeWidth:i,fill:s,dataKey:t,nameKey:void 0,name:I9(o,t),hide:l,type:m,color:Cv(a,s),unit:c,formatter:h,graphicalItemId:p}};return v.createElement(mwe,{tooltipEntrySettings:x})});function dNe(e){var t=e.clipPathId,n=e.points,a=e.props,i=a.needClip,s=a.dot,o=a.dataKey,l=ki(a);return v.createElement(r1e,{points:n,dot:s,className:"recharts-area-dots",dotClassName:"recharts-area-dot",dataKey:o,baseProps:l,needClip:i,clipPathId:t})}function uNe(e){var t=e.showLabels,n=e.children,a=e.points,i=a.map(s=>{var o,l,c={x:(o=s.x)!==null&&o!==void 0?o:0,y:(l=s.y)!==null&&l!==void 0?l:0,width:0,lowerWidth:0,upperWidth:0,height:0};return Qu(Qu({},c),{},{value:s.value,payload:s.payload,parentViewBox:void 0,viewBox:c,fill:void 0})});return v.createElement(Jbe,{value:t?i:void 0},n)}function hNe(e){var t=e.points,n=e.baseLine,a=e.needClip,i=e.clipPathId,s=e.props,o=e.animationElapsedTime,l=e.isAnimating,c=e.isEntrance,h=s.layout,m=s.type,p=s.stroke,x=s.connectNulls,b=s.isRange,j=s.shape,N=s.id,_=r$(s,tNe),S=Za(_),A=Qu(Qu({},S),{},{id:N,points:t,connectNulls:x,type:m,baseLine:n,layout:h,stroke:p,isRange:b,animationElapsedTime:o,isAnimating:l,isEntrance:c});return v.createElement(v.Fragment,null,t?.length>1&&v.createElement(Ya,{clipPath:a?"url(#clipPath-".concat(i,")"):void 0},v.createElement(fwe,{option:j,DefaultShape:a$.shape,shapeProps:A})),v.createElement(dNe,{points:t,props:_,clipPathId:i}))}function fNe(e,t,n){if(Ie(e)){var a=Ie(t)?t:void 0;return Gs(a,e,n)}if(lr(e)||ls(e)){var i=Ie(t)?t:void 0;return Gs(i,0,n)}return e}function mNe(e){var t=e.needClip,n=e.clipPathId,a=e.props,i=e.previousPointsRef,s=e.previousBaselineRef,o=a.points,l=a.baseLine,c=a.isAnimationActive,h=a.animationBegin,m=a.animationDuration,p=a.animationEasing,x=a.animationMatchBy,b=a.animationInterpolateFn,j=v.useMemo(()=>({points:o,baseLine:l}),[o,l]),N=Lz(j,s),_=__(),S=Ewe(a.onAnimationStart,a.onAnimationEnd),A=S.isAnimating,P=S.handleAnimationStart,I=S.handleAnimationEnd,O=N.startValue;if(_==null)return null;var M;return Array.isArray(l)&&Array.isArray(O)?M=uk(O,l,x):Array.isArray(l)?M=uk(null,l,x):M=null,v.createElement(Owe,{animationInput:j,animationIdPrefix:"recharts-area-",items:o,previousItemsRef:i,isAnimationActive:c,animationBegin:h,animationDuration:m,animationEasing:p,onAnimationStart:P,onAnimationEnd:I,animationInterpolateFn:b,animationMatchBy:x,layout:_},(z,$,K)=>{var X;return $===1?X=l:Array.isArray(l)?X=b(M,$,_):X=K?l:fNe(l,O,$),N.syncStepValue(X,$),v.createElement(uNe,{showLabels:!A,points:o},a.children,v.createElement(hNe,{points:z,baseLine:X,needClip:t,clipPathId:n,props:a,animationElapsedTime:$,isAnimating:A||$<1,isEntrance:K}),v.createElement(ewe,{label:a.label}))})}function pNe(e){var t=e.needClip,n=e.clipPathId,a=e.props,i=v.useRef(null),s=v.useRef();return v.createElement(mNe,{needClip:t,clipPathId:n,props:a,previousPointsRef:i,previousBaselineRef:s})}class gNe extends v.PureComponent{render(){var t=this.props,n=t.hide,a=t.dot,i=t.points,s=t.className,o=t.top,l=t.left,c=t.needClip,h=t.xAxisId,m=t.yAxisId,p=t.width,x=t.height,b=t.id,j=t.baseLine,N=t.zIndex;if(n)return null;var _=Ut("recharts-area",s),S=b,A=$je(a),P=A.r,I=A.strokeWidth,O=Iz(a),M=P*2+I,z=c?"url(#clipPath-".concat(O?"":"dots-").concat(S,")"):void 0;return v.createElement(yo,{zIndex:N},v.createElement(Ya,{className:_},c&&v.createElement("defs",null,v.createElement(zje,{clipPathId:S,xAxisId:h,yAxisId:m}),!O&&v.createElement("clipPath",{id:"clipPath-dots-".concat(S)},v.createElement("rect",{x:l-M/2,y:o-M/2,width:p+M,height:x+M}))),v.createElement(pNe,{needClip:c,clipPathId:S,props:this.props})),v.createElement(h6,{points:i,mainColor:Cv(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:z}),this.props.isRange&&Array.isArray(j)&&v.createElement(h6,{points:j,mainColor:Cv(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:z}))}}function xNe(e){var t,n=e.activeDot,a=e.animationBegin,i=e.animationDuration,s=e.animationEasing,o=e.connectNulls,l=e.dot,c=e.fill,h=e.fillOpacity,m=e.hide,p=e.isAnimationActive,x=e.legendType,b=e.stroke,j=e.xAxisId,N=e.yAxisId,_=r$(e,nNe),S=bh(),A=uz(),P=Yz(j,N),I=P.needClip,O=ra(),M=(t=Ve(G=>Gje(G,e.id,O)))!==null&&t!==void 0?t:{},z=M.points,$=M.isRange,K=M.baseLine,X=ES();if(S!=="horizontal"&&S!=="vertical"||X==null||A!=="AreaChart"&&A!=="ComposedChart")return null;var te=X.height,q=X.width,he=X.x,ne=X.y;return!z||!z.length?null:v.createElement(gNe,Sv({},_,{activeDot:n,animationBegin:a,animationDuration:i,animationEasing:s,baseLine:K,connectNulls:o,dot:l,fill:c,fillOpacity:h,height:te,hide:m,layout:S,isAnimationActive:p,isRange:$,legendType:x,needClip:I,points:z,stroke:b,width:q,left:he,top:ne,xAxisId:j,yAxisId:N}))}var yNe=(e,t,n,a,i)=>{var s=n??t;if(Ie(s))return s;var o=e==="horizontal"?i:a,l=o.scale.domain();if(o.type==="number"){var c=Math.max(l[0],l[1]),h=Math.min(l[0],l[1]);return s==="dataMin"?h:s==="dataMax"||c<0?c:Math.max(Math.min(l[0],l[1]),0)}return s==="dataMin"?l[0]:s==="dataMax"?l[1]:l[0]};function vNe(e){var t=e.areaSettings,n=t.connectNulls,a=t.baseValue,i=t.dataKey,s=e.stackedData,o=e.layout,l=e.chartBaseValue,c=e.xAxis,h=e.yAxis,m=e.displayedData,p=e.dataStartIndex,x=e.xAxisTicks,b=e.yAxisTicks,j=e.bandSize,N=e.stackDataKeys,_=s&&s.length,S=yNe(o,l,a,c,h),A=o==="horizontal",P=!1,I=m.map((M,z)=>{var $,K,X,te;if(_)te=s[p+z];else{var q=zn(M,i);Array.isArray(q)?(te=q,P=!0):te=[S,q]}var he=($=(K=te)===null||K===void 0?void 0:K[1])!==null&&$!==void 0?$:null,ne=zn(M,i),G=_&&ne==null&&N!=null&&N.length>0&&N.every(W=>zn(M,W)==null),H=he==null||_&&!n&&ne==null||G;if(A){var Q;return{x:j4({axis:c,ticks:x,bandSize:j,entry:M,index:z}),y:H?null:(Q=h.scale.map(he))!==null&&Q!==void 0?Q:null,value:te,payload:M}}return{x:H?null:(X=c.scale.map(he))!==null&&X!==void 0?X:null,y:j4({axis:h,ticks:b,bandSize:j,entry:M,index:z}),value:te,payload:M}}),O;return _||P?O=I.map(M=>{var z,$=Array.isArray(M.value)?M.value[0]:null;if(A){var K;return{x:M.x,y:$!=null&&M.y!=null&&(K=h.scale.map($))!==null&&K!==void 0?K:null,payload:M.payload}}return{x:$!=null&&(z=c.scale.map($))!==null&&z!==void 0?z:null,y:M.y,payload:M.payload}}):O=A?h.scale.map(S):c.scale.map(S),{points:I,baseLine:O??0,isRange:P}}function bNe(e){var t=ti(e,a$),n=ra();return v.createElement($we,{id:t.id,type:"area"},a=>v.createElement(v.Fragment,null,v.createElement(pwe,{legendPayload:lNe(t)}),v.createElement(cNe,{dataKey:t.dataKey,data:t.data,stroke:t.stroke,strokeWidth:t.strokeWidth,fill:t.fill,name:t.name,hide:t.hide,unit:t.unit,formatter:t.formatter,tooltipType:t.tooltipType,id:a}),v.createElement(Kwe,{type:"area",id:a,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:iue(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),v.createElement(xNe,Sv({},t,{id:a}))))}var i$=v.memo(bNe,_0);i$.displayName="Area";var wNe=["domain","range"],jNe=["domain","range"];function N6(e,t){if(e==null)return{};var n,a,i=NNe(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function NNe(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function k6(e,t){return e===t?!0:Array.isArray(e)&&e.length===2&&Array.isArray(t)&&t.length===2?e[0]===t[0]&&e[1]===t[1]:!1}function s$(e,t){if(e===t)return!0;var n=e.domain,a=e.range,i=N6(e,wNe),s=t.domain,o=t.range,l=N6(t,jNe);return!k6(n,s)||!k6(a,o)?!1:_0(i,l)}var kNe=["type"],_Ne=["dangerouslySetInnerHTML","ticks","scale"],SNe=["id","scale"];function hk(){return hk=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},hk.apply(null,arguments)}function _6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function S6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?_6(Object(n),!0).forEach(function(a){CNe(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function CNe(e,t,n){return(t=TNe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function TNe(e){var t=ANe(e,"string");return typeof t=="symbol"?t:t+""}function ANe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function fk(e,t){if(e==null)return{};var n,a,i=PNe(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function PNe(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function ENe(e){var t=Cn(),n=v.useRef(null),a=__(),i=e.type,s=fk(e,kNe),o=A0(a,"xAxis",i),l=v.useMemo(()=>{if(o!=null)return S6(S6({},s),{},{type:o})},[s,o]);return v.useLayoutEffect(()=>{l!=null&&(n.current===null?t(l1e(l)):n.current!==l&&t(c1e({prev:n.current,next:l})),n.current=l)},[l,t]),v.useLayoutEffect(()=>()=>{n.current&&(t(d1e(n.current)),n.current=null)},[t]),null}var ONe=e=>{var t=e.xAxisId,n=e.className,a=e.height,i=e.label,s=v.useRef(null),o=v.useRef(null),l=Ve(L9),c=ra(),h=Cn(),m="xAxis",p=Ve(S=>z7(S,m,t,c)),x=Ve(S=>oye(S,t)),b=Ve(S=>fye(S,t)),j=Ve(S=>r7(S,t));if(v.useLayoutEffect(()=>{if(!(a!=="auto"||!x||W0(i)||v.isValidElement(i)||j==null)){var S=s.current;if(S){var A=S.getCalculatedHeight();Math.round(x.height)!==Math.round(A)&&h(p1e({id:t,height:A}))}}},[p,x,h,i,t,a,j]),x==null||b==null||j==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var N=fk(e,_Ne);j.id,j.scale;var _=fk(j,SNe);return v.createElement(RS,hk({},N,_,{ref:s,labelRef:o,x:b.x,y:b.y,width:x.width,height:x.height,className:Ut("recharts-".concat(m," ").concat(m),n),viewBox:l,ticks:p,axisType:m,axisId:t}))},RNe={allowDataOverflow:Bn.allowDataOverflow,allowDecimals:Bn.allowDecimals,allowDuplicatedCategory:Bn.allowDuplicatedCategory,angle:Bn.angle,axisLine:eo.axisLine,height:Bn.height,hide:!1,includeHidden:Bn.includeHidden,interval:Bn.interval,label:!1,minTickGap:Bn.minTickGap,mirror:Bn.mirror,orientation:Bn.orientation,padding:Bn.padding,reversed:Bn.reversed,scale:Bn.scale,tick:Bn.tick,tickCount:Bn.tickCount,tickLine:eo.tickLine,tickSize:eo.tickSize,type:Bn.type,niceTicks:Bn.niceTicks,xAxisId:0},INe=e=>{var t=ti(e,RNe);return v.createElement(v.Fragment,null,v.createElement(ENe,{allowDataOverflow:t.allowDataOverflow,allowDecimals:t.allowDecimals,allowDuplicatedCategory:t.allowDuplicatedCategory,angle:t.angle,dataKey:t.dataKey,domain:t.domain,height:t.height,hide:t.hide,id:t.xAxisId,includeHidden:t.includeHidden,interval:t.interval,minTickGap:t.minTickGap,mirror:t.mirror,name:t.name,orientation:t.orientation,padding:t.padding,reversed:t.reversed,scale:t.scale,tick:t.tick,tickCount:t.tickCount,tickFormatter:t.tickFormatter,ticks:t.ticks,type:t.type,unit:t.unit,niceTicks:t.niceTicks}),v.createElement(ONe,t))},o$=v.memo(INe,s$);o$.displayName="XAxis";var MNe=["type"],LNe=["dangerouslySetInnerHTML","ticks","scale"],DNe=["id","scale"];function mk(){return mk=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},mk.apply(null,arguments)}function C6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function T6(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?C6(Object(n),!0).forEach(function(a){BNe(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):C6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function BNe(e,t,n){return(t=FNe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function FNe(e){var t=zNe(e,"string");return typeof t=="symbol"?t:t+""}function zNe(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function pk(e,t){if(e==null)return{};var n,a,i=$Ne(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function $Ne(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function HNe(e){var t=Cn(),n=v.useRef(null),a=__(),i=e.type,s=pk(e,MNe),o=A0(a,"yAxis",i),l=v.useMemo(()=>{if(o!=null)return T6(T6({},s),{},{type:o})},[o,s]);return v.useLayoutEffect(()=>{l!=null&&(n.current===null?t(u1e(l)):n.current!==l&&t(h1e({prev:n.current,next:l})),n.current=l)},[l,t]),v.useLayoutEffect(()=>()=>{n.current&&(t(f1e(n.current)),n.current=null)},[t]),null}function WNe(e){var t=e.yAxisId,n=e.className,a=e.width,i=e.label,s=v.useRef(null),o=v.useRef(null),l=Ve(L9),c=ra(),h=Cn(),m="yAxis",p=Ve(S=>gye(S,t)),x=Ve(S=>pye(S,t)),b=Ve(S=>z7(S,m,t,c)),j=Ve(S=>a7(S,t));if(v.useLayoutEffect(()=>{if(!(a!=="auto"||!p||W0(i)||v.isValidElement(i)||j==null)){var S=s.current;if(S){var A=S.getCalculatedWidth();Math.round(p.width)!==Math.round(A)&&h(m1e({id:t,width:A}))}}},[b,p,h,i,t,a,j]),p==null||x==null||j==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var N=pk(e,LNe);j.id,j.scale;var _=pk(j,DNe);return v.createElement(RS,mk({},N,_,{ref:s,labelRef:o,x:x.x,y:x.y,tickTextProps:a==="auto"?{width:void 0}:{width:a},width:p.width,height:p.height,className:Ut("recharts-".concat(m," ").concat(m),n),viewBox:l,ticks:b,axisType:m,axisId:t}))}var VNe={allowDataOverflow:Fn.allowDataOverflow,allowDecimals:Fn.allowDecimals,allowDuplicatedCategory:Fn.allowDuplicatedCategory,angle:Fn.angle,axisLine:eo.axisLine,hide:!1,includeHidden:Fn.includeHidden,interval:Fn.interval,label:!1,minTickGap:Fn.minTickGap,mirror:Fn.mirror,orientation:Fn.orientation,padding:Fn.padding,reversed:Fn.reversed,scale:Fn.scale,tick:Fn.tick,tickCount:Fn.tickCount,tickLine:eo.tickLine,tickSize:eo.tickSize,type:Fn.type,niceTicks:Fn.niceTicks,width:Fn.width,yAxisId:0},UNe=e=>{var t=ti(e,VNe);return v.createElement(v.Fragment,null,v.createElement(HNe,{interval:t.interval,id:t.yAxisId,scale:t.scale,type:t.type,domain:t.domain,allowDataOverflow:t.allowDataOverflow,dataKey:t.dataKey,allowDuplicatedCategory:t.allowDuplicatedCategory,allowDecimals:t.allowDecimals,tickCount:t.tickCount,padding:t.padding,includeHidden:t.includeHidden,reversed:t.reversed,ticks:t.ticks,width:t.width,orientation:t.orientation,mirror:t.mirror,hide:t.hide,unit:t.unit,name:t.name,angle:t.angle,minTickGap:t.minTickGap,tick:t.tick,tickFormatter:t.tickFormatter,niceTicks:t.niceTicks}),v.createElement(WNe,t))},l$=v.memo(UNe,s$);l$.displayName="YAxis";var qNe=(e,t)=>t,BS=le([qNe,ln,yF,Xn,iz,xo,Bve,dr],Uve);function GNe(e){return"getBBox"in e.currentTarget&&typeof e.currentTarget.getBBox=="function"}function FS(e){var t=e.currentTarget.getBoundingClientRect(),n,a;if(GNe(e)){var i=e.currentTarget.getBBox();n=i.width>0?t.width/i.width:1,a=i.height>0?t.height/i.height:1}else{var s=e.currentTarget;n=s.offsetWidth>0?t.width/s.offsetWidth:1,a=s.offsetHeight>0?t.height/s.offsetHeight:1}var o=(l,c)=>({relativeX:Math.round((l-t.left)/n),relativeY:Math.round((c-t.top)/a)});return"touches"in e?Array.from(e.touches).map(l=>o(l.clientX,l.clientY)):o(e.clientX,e.clientY)}var c$=_a("mouseClick"),d$=jp();d$.startListening({actionCreator:c$,effect:(e,t)=>{var n=e.payload,a=BS(t.getState(),FS(n));a?.activeIndex!=null&&t.dispatch(Eye({activeIndex:a.activeIndex,activeDataKey:void 0,activeCoordinate:a.activeCoordinate}))}});var gk=_a("mouseMove"),u$=jp(),uu=null,lc=null,W1=null;u$.startListening({actionCreator:gk,effect:(e,t)=>{var n=e.payload,a=t.getState(),i=a.eventSettings,s=i.throttleDelay,o=i.throttledEvents,l=o==="all"||o?.includes("mousemove");uu!==null&&(cancelAnimationFrame(uu),uu=null),lc!==null&&(typeof s!="number"||!l)&&(clearTimeout(lc),lc=null),W1=FS(n);var c=()=>{var h=t.getState(),m=Mp(h,h.tooltip.settings.shared);if(!W1){uu=null,lc=null;return}if(m==="axis"){var p=BS(h,W1);p?.activeIndex!=null?t.dispatch(Z7({activeIndex:p.activeIndex,activeDataKey:void 0,activeCoordinate:p.activeCoordinate})):t.dispatch(K7())}uu=null,lc=null};if(!l){c();return}s==="raf"?uu=requestAnimationFrame(c):typeof s=="number"&&lc===null&&(lc=setTimeout(c,s))}});function KNe(e,t){return t instanceof HTMLElement?"HTMLElement <".concat(t.tagName,' class="').concat(t.className,'">'):t===window?"global.window":e==="children"&&typeof t=="object"&&t!==null?"<<CHILDREN>>":t}var A6={accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,barSize:void 0,className:void 0,maxBarSize:void 0,stackOffset:"none",syncId:void 0,syncMethod:"index",baseValue:void 0,reverseStackOrder:!1},h$=_r({name:"rootProps",initialState:A6,reducers:{updateOptions:(e,t)=>{var n;e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=(n=t.payload.barGap)!==null&&n!==void 0?n:A6.barGap,e.barSize=t.payload.barSize,e.maxBarSize=t.payload.maxBarSize,e.stackOffset=t.payload.stackOffset,e.syncId=t.payload.syncId,e.syncMethod=t.payload.syncMethod,e.className=t.payload.className,e.baseValue=t.payload.baseValue,e.reverseStackOrder=t.payload.reverseStackOrder}}}),ZNe=h$.reducer,YNe=h$.actions.updateOptions,JNe=null,XNe={updatePolarOptions:(e,t)=>e===null?t.payload:(e.startAngle=t.payload.startAngle,e.endAngle=t.payload.endAngle,e.cx=t.payload.cx,e.cy=t.payload.cy,e.innerRadius=t.payload.innerRadius,e.outerRadius=t.payload.outerRadius,e)},f$=_r({name:"polarOptions",initialState:JNe,reducers:XNe});f$.actions.updatePolarOptions;var QNe=f$.reducer,m$=_a("keyDown"),p$=_a("focus"),g$=_a("blur"),U0=jp(),hu=null,cc=null,Gx=null;U0.startListening({actionCreator:m$,effect:(e,t)=>{Gx=e.payload,hu!==null&&(cancelAnimationFrame(hu),hu=null);var n=t.getState(),a=n.eventSettings,i=a.throttleDelay,s=a.throttledEvents,o=s==="all"||s.includes("keydown");cc!==null&&(typeof i!="number"||!o)&&(clearTimeout(cc),cc=null);var l=()=>{try{var c=t.getState(),h=c.rootProps.accessibilityLayer!==!1;if(!h)return;var m=c.tooltip.keyboardInteraction,p=Gx;if(p!=="ArrowRight"&&p!=="ArrowLeft"&&p!=="Enter")return;var x=bm(m,zc(c),Ju(c),Xu(c)),b=x==null?-1:Number(x),j=!Number.isFinite(b)||b<0,N=xo(c),_=zc(c),S=Mp(c,c.tooltip.settings.shared);if(p==="Enter"){if(j)return;var A=wv(c,S,"hover",String(m.index));t.dispatch(bv({active:!m.active,activeIndex:m.index,activeCoordinate:A}));return}var P=wye(c),I=P==="left-to-right"?1:-1,O=p==="ArrowRight"?1:-1,M;if(j){var z=Ju(c),$=Xu(c),K=O*I,X=G=>({active:!1,index:String(G),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(M=-1,K>0){for(var te=0;te<_.length;te++)if(bm(X(te),_,z,$)!=null){M=te;break}}else for(var q=_.length-1;q>=0;q--)if(bm(X(q),_,z,$)!=null){M=q;break}if(M<0)return}else{M=b+O*I;var he=N?.length||_.length;if(he===0||M>=he||M<0)return}var ne=wv(c,S,"hover",String(M));t.dispatch(bv({active:!0,activeIndex:M.toString(),activeCoordinate:ne}))}finally{hu=null,cc=null}};if(!o){l();return}i==="raf"?hu=requestAnimationFrame(l):typeof i=="number"&&cc===null&&(l(),Gx=null,cc=setTimeout(()=>{Gx?l():(cc=null,hu=null)},i))}});U0.startListening({actionCreator:p$,effect:(e,t)=>{var n=t.getState(),a=n.rootProps.accessibilityLayer!==!1;if(a){var i=n.tooltip.keyboardInteraction;if(!i.active&&i.index==null){var s="0",o=Mp(n,n.tooltip.settings.shared),l=wv(n,o,"hover",String(s));t.dispatch(bv({active:!0,activeIndex:s,activeCoordinate:l}))}}}});U0.startListening({actionCreator:g$,effect:(e,t)=>{var n=t.getState(),a=n.rootProps.accessibilityLayer!==!1;if(a){var i=n.tooltip.keyboardInteraction;i.active&&t.dispatch(bv({active:!1,activeIndex:i.index,activeCoordinate:i.coordinate}))}}});function x$(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(n,a)=>{if(a==="currentTarget")return t;var i=Reflect.get(n,a);return typeof i=="function"?i.bind(n):i}})}var za=_a("externalEvent"),y$=jp(),Kx=new Map,Zf=new Map,V1=new Map;y$.startListening({actionCreator:za,effect:(e,t)=>{var n=e.payload,a=n.handler,i=n.reactEvent;if(a!=null){var s=i.type,o=x$(i);V1.set(s,{handler:a,reactEvent:o});var l=Kx.get(s);l!==void 0&&(cancelAnimationFrame(l),Kx.delete(s));var c=t.getState(),h=c.eventSettings,m=h.throttleDelay,p=h.throttledEvents,x=p,b=x==="all"||x?.includes(s),j=Zf.get(s);j!==void 0&&(typeof m!="number"||!b)&&(clearTimeout(j),Zf.delete(s));var N=()=>{var A=V1.get(s);try{if(!A)return;var P=A.handler,I=A.reactEvent,O=t.getState(),M={activeCoordinate:Nve(O),activeDataKey:bve(O),activeIndex:Jm(O),activeLabel:lz(O),activeTooltipIndex:Jm(O),isTooltipActive:kve(O)};P&&P(M,I)}finally{Kx.delete(s),Zf.delete(s),V1.delete(s)}};if(!b){N();return}if(m==="raf"){var _=requestAnimationFrame(N);Kx.set(s,_)}else if(typeof m=="number"){if(!Zf.has(s)){N();var S=setTimeout(N,m);Zf.set(s,S)}}else N()}}});var eke=le([Th],e=>e.tooltipItemPayloads),tke=le([eke,(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var a=e.find(s=>s.settings.graphicalItemId===n);if(a!=null){var i=a.getPosition;if(i!=null)return i(t)}}}),v$=_a("touchMove"),b$=jp(),dc=null,sl=null,P6=null,Yf=null;b$.startListening({actionCreator:v$,effect:(e,t)=>{var n=e.payload;if(!(n.touches==null||n.touches.length===0)){Yf=x$(n);var a=t.getState(),i=a.eventSettings,s=i.throttleDelay,o=i.throttledEvents,l=o==="all"||o.includes("touchmove");dc!==null&&(cancelAnimationFrame(dc),dc=null),sl!==null&&(typeof s!="number"||!l)&&(clearTimeout(sl),sl=null),P6=Array.from(n.touches).map(h=>FS({clientX:h.clientX,clientY:h.clientY,currentTarget:n.currentTarget}));var c=()=>{if(Yf!=null){var h=t.getState(),m=Mp(h,h.tooltip.settings.shared);if(m==="axis"){var p,x=(p=P6)===null||p===void 0?void 0:p[0];if(x==null){dc=null,sl=null;return}var b=BS(h,x);b?.activeIndex!=null&&t.dispatch(Z7({activeIndex:b.activeIndex,activeDataKey:void 0,activeCoordinate:b.activeCoordinate}))}else if(m==="item"){var j,N=Yf.touches[0];if(document.elementFromPoint==null||N==null)return;var _=document.elementFromPoint(N.clientX,N.clientY);if(!_||!_.getAttribute)return;var S=_.getAttribute(hue),A=(j=_.getAttribute(fue))!==null&&j!==void 0?j:void 0,P=Xc(h).find(M=>M.id===A);if(S==null||P==null||A==null)return;var I=P.dataKey,O=tke(h,S,A);t.dispatch(Pye({activeDataKey:I,activeIndex:S,activeCoordinate:O,activeGraphicalItemId:A}))}dc=null,sl=null}};if(!l){c();return}s==="raf"?dc=requestAnimationFrame(c):typeof s=="number"&&sl===null&&(c(),Yf=null,sl=setTimeout(()=>{Yf?c():(sl=null,dc=null)},s))}}});var w$={throttleDelay:"raf",throttledEvents:["mousemove","touchmove","pointermove","scroll","wheel"]},j$=_r({name:"eventSettings",initialState:w$,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=Rt(t.payload.throttledEvents))}}}),nke=j$.actions.setEventSettings,rke=j$.reducer,ake=r9({brush:_1e,cartesianAxis:g1e,chartData:j0e,errorBars:Fje,eventSettings:rke,graphicalItems:qwe,layout:Yde,legend:Que,options:x0e,polarAxis:nwe,polarOptions:QNe,referenceElements:A1e,renderedTicks:tje,rootProps:ZNe,tooltip:Oye,zIndex:a0e}),ike=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"Chart";return wde({reducer:ake,preloadedState:t,middleware:a=>{var i;return a({serializableCheck:!1,immutableCheck:!["commonjs","es6","production"].includes((i="es6")!==null&&i!==void 0?i:"")}).concat([d$.middleware,u$.middleware,U0.middleware,y$.middleware,b$.middleware])},enhancers:a=>{var i=a;return typeof a=="function"&&(i=a()),i.concat(y9({type:"raf"}))},devTools:{serialize:{replacer:KNe},name:"recharts-".concat(n)}})};function ske(e){var t=e.preloadedState,n=e.children,a=e.reduxStoreName,i=ra(),s=v.useRef(null);if(i)return n;s.current==null&&(s.current=ike(t,a));var o=g_;return v.createElement(xhe,{context:o,store:s.current},n)}function oke(e){var t=e.layout,n=e.margin,a=Cn(),i=ra();return v.useEffect(()=>{i||(a(Gde(t)),a(qde(n)))},[a,i,t,n]),null}var lke=v.memo(oke,_0);function cke(e){var t=Cn();return v.useEffect(()=>{t(YNe(e))},[t,e]),null}var dke=e=>{var t=Cn();return v.useEffect(()=>{t(nke(e))},[t,e]),null},uke=v.memo(dke,_0);function E6(e){var t=e.zIndex,n=e.isPanorama,a=v.useRef(null),i=Cn();return v.useLayoutEffect(()=>(a.current&&i(n0e({zIndex:t,element:a.current,isPanorama:n})),()=>{i(r0e({zIndex:t,isPanorama:n}))}),[i,t,n]),v.createElement("g",{tabIndex:-1,ref:a,className:"recharts-zIndex-layer_".concat(t)})}function O6(e){var t=e.children,n=e.isPanorama,a=Ve(Gve);if(!a||a.length===0)return t;var i=a.filter(o=>o<0),s=a.filter(o=>o>0);return v.createElement(v.Fragment,null,i.map(o=>v.createElement(E6,{key:o,zIndex:o,isPanorama:n})),t,s.map(o=>v.createElement(E6,{key:o,zIndex:o,isPanorama:n})))}var hke=["children"];function fke(e,t){if(e==null)return{};var n,a,i=mke(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function mke(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}function Tv(){return Tv=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},Tv.apply(null,arguments)}var pke={width:"100%",height:"100%",display:"block"},gke=v.forwardRef((e,t)=>{var n=$9(),a=H9(),i=q9();if(!ds(n)||!ds(a))return null;var s=e.children,o=e.otherAttributes,l=e.title,c=e.desc,h,m;return o!=null&&(typeof o.tabIndex=="number"?h=o.tabIndex:h=i?0:void 0,typeof o.role=="string"?m=o.role:m=i?"application":void 0),v.createElement(lB,Tv({},o,{title:l,desc:c,role:m,tabIndex:h,width:n,height:a,style:pke,ref:t}),s)}),xke=e=>{var t=e.children,n=Ve(N0);if(!n)return null;var a=n.width,i=n.height,s=n.y,o=n.x;return v.createElement(lB,{width:a,height:i,x:o,y:s},t)},R6=v.forwardRef((e,t)=>{var n=e.children,a=fke(e,hke),i=ra();return i?v.createElement(xke,null,v.createElement(O6,{isPanorama:!0},n)):v.createElement(gke,Tv({ref:t},a),v.createElement(O6,{isPanorama:!1},n))});function yke(e,t){return jke(e)||wke(e,t)||bke(e,t)||vke()}function vke(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function bke(e,t){if(e){if(typeof e=="string")return I6(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?I6(e,t):void 0}}function I6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function wke(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function jke(e){if(Array.isArray(e))return e}function Nke(){var e=Cn(),t=v.useState(null),n=yke(t,2),a=n[0],i=n[1],s=Ve(uue);return v.useEffect(()=>{if(a!=null){var o=a.getBoundingClientRect(),l=o.width/a.offsetWidth;St(l)&&l!==s&&e(Zde(l))}},[a,e,s]),i}function M6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function kke(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?M6(Object(n),!0).forEach(function(a){_ke(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):M6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function _ke(e,t,n){return(t=Ske(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ske(e){var t=Cke(e,"string");return typeof t=="symbol"?t:t+""}function Cke(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function gl(){return gl=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},gl.apply(null,arguments)}function Av(e,t){return Eke(e)||Pke(e,t)||Ake(e,t)||Tke()}function Tke(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ake(e,t){if(e){if(typeof e=="string")return L6(e,t);var n={}.toString.call(e).slice(8,-1);return n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set"?Array.from(e):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?L6(e,t):void 0}}function L6(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function Pke(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var a,i,s,o,l=[],c=!0,h=!1;try{if(s=(n=n.call(e)).next,t!==0)for(;!(c=(a=s.call(n)).done)&&(l.push(a.value),l.length!==t);c=!0);}catch(m){h=!0,i=m}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(h)throw i}}return l}}function Eke(e){if(Array.isArray(e))return e}var Oke=()=>(E0e(),null);function Pv(e){if(typeof e=="number")return e;if(typeof e=="string"){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var Rke=v.forwardRef((e,t)=>{var n,a,i=v.useRef(null),s=v.useState({containerWidth:Pv((n=e.style)===null||n===void 0?void 0:n.width),containerHeight:Pv((a=e.style)===null||a===void 0?void 0:a.height)}),o=Av(s,2),l=o[0],c=o[1],h=v.useCallback((p,x)=>{c(b=>{var j=Math.round(p),N=Math.round(x);return b.containerWidth===j&&b.containerHeight===N?b:{containerWidth:j,containerHeight:N}})},[]),m=v.useCallback(p=>{if(typeof t=="function"&&t(p),i.current!=null&&(i.current.disconnect(),i.current=null),p!=null&&typeof ResizeObserver<"u"){var x=p.getBoundingClientRect(),b=x.width,j=x.height;h(b,j);var N=S=>{var A=S[0];if(A!=null){var P=A.contentRect,I=P.width,O=P.height;h(I,O)}},_=new ResizeObserver(N);_.observe(p),i.current=_}},[t,h]);return v.useEffect(()=>()=>{var p=i.current;p?.disconnect()},[h]),v.createElement(v.Fragment,null,v.createElement(kp,{width:l.containerWidth,height:l.containerHeight}),v.createElement("div",gl({ref:m},e)))}),Ike=v.forwardRef((e,t)=>{var n=e.width,a=e.height,i=v.useState({containerWidth:Pv(n),containerHeight:Pv(a)}),s=Av(i,2),o=s[0],l=s[1],c=v.useCallback((m,p)=>{l(x=>{var b=Math.round(m),j=Math.round(p);return x.containerWidth===b&&x.containerHeight===j?x:{containerWidth:b,containerHeight:j}})},[]),h=v.useCallback(m=>{if(typeof t=="function"&&t(m),m!=null){var p=m.getBoundingClientRect(),x=p.width,b=p.height;c(x,b)}},[t,c]);return v.createElement(v.Fragment,null,v.createElement(kp,{width:o.containerWidth,height:o.containerHeight}),v.createElement("div",gl({ref:h},e)))}),Mke=v.forwardRef((e,t)=>{var n=e.width,a=e.height;return v.createElement(v.Fragment,null,v.createElement(kp,{width:n,height:a}),v.createElement("div",gl({ref:t},e)))}),Lke=v.forwardRef((e,t)=>{var n=e.width,a=e.height;return typeof n=="string"||typeof a=="string"?v.createElement(Ike,gl({},e,{ref:t})):typeof n=="number"&&typeof a=="number"?v.createElement(Mke,gl({},e,{width:n,height:a,ref:t})):v.createElement(v.Fragment,null,v.createElement(kp,{width:n,height:a}),v.createElement("div",gl({ref:t},e)))});function Dke(e){return e?Rke:Lke}var Bke=v.forwardRef((e,t)=>{var n=e.children,a=e.className,i=e.height,s=e.onClick,o=e.onContextMenu,l=e.onDoubleClick,c=e.onMouseDown,h=e.onMouseEnter,m=e.onMouseLeave,p=e.onMouseMove,x=e.onMouseUp,b=e.onTouchEnd,j=e.onTouchMove,N=e.onTouchStart,_=e.style,S=e.width,A=e.responsive,P=e.dispatchTouchEvents,I=P===void 0?!0:P,O=v.useRef(null),M=Cn(),z=v.useState(null),$=Av(z,2),K=$[0],X=$[1],te=v.useState(null),q=Av(te,2),he=q[0],ne=q[1],G=Nke(),H=k_(),Q=H?.width>0?H.width:S,W=H?.height>0?H.height:i,ie=v.useCallback(Oe=>{G(Oe),typeof t=="function"&&t(Oe),X(Oe),ne(Oe),Oe!=null&&(O.current=Oe)},[G,t,X,ne]),Y=v.useCallback(Oe=>{M(c$(Oe)),M(za({handler:s,reactEvent:Oe}))},[M,s]),V=v.useCallback(Oe=>{M(gk(Oe)),M(za({handler:h,reactEvent:Oe}))},[M,h]),re=v.useCallback(Oe=>{M(K7()),M(za({handler:m,reactEvent:Oe}))},[M,m]),be=v.useCallback(Oe=>{M(gk(Oe)),M(za({handler:p,reactEvent:Oe}))},[M,p]),ge=v.useCallback(()=>{M(p$())},[M]),Ne=v.useCallback(()=>{M(g$())},[M]),we=v.useCallback(Oe=>{M(m$(Oe.key))},[M]),Fe=v.useCallback(Oe=>{M(za({handler:o,reactEvent:Oe}))},[M,o]),Ce=v.useCallback(Oe=>{M(za({handler:l,reactEvent:Oe}))},[M,l]),me=v.useCallback(Oe=>{M(za({handler:c,reactEvent:Oe}))},[M,c]),Ae=v.useCallback(Oe=>{M(za({handler:x,reactEvent:Oe}))},[M,x]),Te=v.useCallback(Oe=>{M(za({handler:N,reactEvent:Oe}))},[M,N]),fe=v.useCallback(Oe=>{I&&M(v$(Oe)),M(za({handler:j,reactEvent:Oe}))},[M,I,j]),tt=v.useCallback(Oe=>{M(za({handler:b,reactEvent:Oe}))},[M,b]),at=Dke(A);return v.createElement(gz.Provider,{value:K},v.createElement(yle.Provider,{value:he},v.createElement(at,{width:Q??_?.width,height:W??_?.height,className:Ut("recharts-wrapper",a),style:kke({position:"relative",cursor:"default",width:Q,height:W},_),onClick:Y,onContextMenu:Fe,onDoubleClick:Ce,onFocus:ge,onBlur:Ne,onKeyDown:we,onMouseDown:me,onMouseEnter:V,onMouseLeave:re,onMouseMove:be,onMouseUp:Ae,onTouchEnd:tt,onTouchMove:fe,onTouchStart:Te,ref:ie},v.createElement(Oke,null),n)))}),Fke=["width","height","responsive","children","className","style","compact","title","desc"];function zke(e,t){if(e==null)return{};var n,a,i=$ke(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(a=0;a<s.length;a++)n=s[a],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function $ke(e,t){if(e==null)return{};var n={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(t.indexOf(a)!==-1)continue;n[a]=e[a]}return n}var Hke=v.forwardRef((e,t)=>{var n=e.width,a=e.height,i=e.responsive,s=e.children,o=e.className,l=e.style,c=e.compact,h=e.title,m=e.desc,p=zke(e,Fke),x=ki(p);return c?v.createElement(v.Fragment,null,v.createElement(kp,{width:n,height:a}),v.createElement(R6,{otherAttributes:x,title:h,desc:m},s)):v.createElement(Bke,{className:o,style:l,width:n,height:a,responsive:i??!1,onClick:e.onClick,onMouseLeave:e.onMouseLeave,onMouseEnter:e.onMouseEnter,onMouseMove:e.onMouseMove,onMouseDown:e.onMouseDown,onMouseUp:e.onMouseUp,onContextMenu:e.onContextMenu,onDoubleClick:e.onDoubleClick,onTouchStart:e.onTouchStart,onTouchMove:e.onTouchMove,onTouchEnd:e.onTouchEnd},v.createElement(R6,{otherAttributes:x,title:h,desc:m,ref:t},v.createElement(L1e,null,s)))});function xk(){return xk=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var a in n)({}).hasOwnProperty.call(n,a)&&(e[a]=n[a])}return e},xk.apply(null,arguments)}function D6(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,a)}return n}function Wke(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?D6(Object(n),!0).forEach(function(a){Vke(e,a,n[a])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):D6(Object(n)).forEach(function(a){Object.defineProperty(e,a,Object.getOwnPropertyDescriptor(n,a))})}return e}function Vke(e,t,n){return(t=Uke(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Uke(e){var t=qke(e,"string");return typeof t=="symbol"?t:t+""}function qke(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var a=n.call(e,t);if(typeof a!="object")return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}var Gke={top:5,right:5,bottom:5,left:5},Kke=Wke({accessibilityLayer:!0,barCategoryGap:"10%",barGap:4,layout:"horizontal",margin:Gke,responsive:!1,reverseStackOrder:!1,stackOffset:"none",syncMethod:"index"},w$),Zke=v.forwardRef(function(t,n){var a,i=ti(t.categoricalChartProps,Kke),s=t.chartName,o=t.defaultTooltipEventType,l=t.validateTooltipEventTypes,c=t.tooltipPayloadSearcher,h=t.categoricalChartProps,m={chartName:s,defaultTooltipEventType:o,validateTooltipEventTypes:l,tooltipPayloadSearcher:c,eventEmitter:void 0};return v.createElement(ske,{preloadedState:{options:m},reduxStoreName:(a=h.id)!==null&&a!==void 0?a:s},v.createElement(k1e,{chartData:h.data}),v.createElement(lke,{layout:i.layout,margin:i.margin}),v.createElement(uke,{throttleDelay:i.throttleDelay,throttledEvents:i.throttledEvents}),v.createElement(cke,{baseValue:i.baseValue,accessibilityLayer:i.accessibilityLayer,barCategoryGap:i.barCategoryGap,maxBarSize:i.maxBarSize,stackOffset:i.stackOffset,barGap:i.barGap,barSize:i.barSize,syncId:i.syncId,syncMethod:i.syncMethod,className:i.className,reverseStackOrder:i.reverseStackOrder}),v.createElement(Hke,xk({},i,{ref:n})))}),Yke=["axis"],Jke=v.forwardRef((e,t)=>v.createElement(Zke,{chartName:"AreaChart",defaultTooltipEventType:"axis",validateTooltipEventTypes:Yke,tooltipPayloadSearcher:p0e,categoricalChartProps:e,ref:t}));const N$=e=>{const t=["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"],n=Math.round(((e%=360)<0?e+360:e)/22.5)%16;return t[n]},Xke=({active:e,payload:t,label:n})=>{if(e&&t&&t.length){const a=t[0].payload;return r.jsxs("div",{className:"bg-white p-3 rounded-lg shadow-lg border border-gray-100 text-sm",children:[r.jsx("p",{className:"font-semibold text-gray-900 mb-2",children:Pu(new Date(n),"h:mm a, MMM d")}),r.jsxs("div",{className:"space-y-1",children:[r.jsxs("p",{className:"text-blue-600 font-medium",children:["Height: ",a.height," ft"]}),r.jsxs("p",{className:"text-gray-600",children:["Period: ",a.period," s"]}),r.jsxs("p",{className:"text-gray-600",children:["Direction: ",a.direction,"° ",N$(a.direction)]})]})]})}return null},Qke=({lat:e,lon:t,locationName:n})=>{const[a,i]=v.useState(null),[s,o]=v.useState(!0),[l,c]=v.useState(null),h=async()=>{o(!0),c(null);try{const p=await Yoe(e,t);i(p.waveData)}catch(p){console.warn("Wave API Error",p);const x=Array.from({length:24}).map((b,j)=>({time:new Date(Date.now()+j*36e5).toISOString(),height:Number((5+Math.sin(j/4)*2+Math.random()).toFixed(1)),period:10+Math.floor(Math.sin(j/6)*3),direction:270+Math.floor(Math.sin(j/8)*20)}));i(x)}finally{o(!1)}};v.useEffect(()=>{h()},[e,t]);const m=v.useMemo(()=>a?.[0]||null,[a]);return r.jsxs("div",{className:"bg-white rounded-2xl shadow-sm border border-gray-100 overflow-hidden relative",children:[r.jsxs("div",{className:"p-5 border-b border-gray-100 bg-gray-50 flex flex-col sm:flex-row sm:items-center justify-between gap-4",children:[r.jsxs("div",{children:[r.jsxs("h3",{className:"font-bold text-gray-900 flex items-center gap-2",children:[r.jsx(hI,{className:"w-5 h-5 text-indigo-500"}),"Marine Forecast"]}),r.jsxs("p",{className:"text-xs text-gray-500 mt-1",children:["Coastal conditions near ",n]})]}),m&&!s&&r.jsxs("div",{className:"flex gap-4 sm:gap-6 bg-white px-4 py-2 rounded-xl border border-gray-100 shadow-sm",children:[r.jsxs("div",{className:"flex flex-col items-center",children:[r.jsx("span",{className:"text-[10px] text-gray-400 font-bold uppercase tracking-wider mb-0.5",children:"Height"}),r.jsxs("span",{className:"text-base font-bold text-indigo-600",children:[m.height," ft"]})]}),r.jsx("div",{className:"w-px bg-gray-100"}),r.jsxs("div",{className:"flex flex-col items-center",children:[r.jsx("span",{className:"text-[10px] text-gray-400 font-bold uppercase tracking-wider mb-0.5",children:"Period"}),r.jsxs("span",{className:"text-base font-bold text-gray-700",children:[m.period,"s"]})]}),r.jsx("div",{className:"w-px bg-gray-100"}),r.jsxs("div",{className:"flex flex-col items-center",children:[r.jsx("span",{className:"text-[10px] text-gray-400 font-bold uppercase tracking-wider mb-0.5",children:"Direction"}),r.jsxs("div",{className:"flex items-center text-sm font-bold text-gray-700",children:[r.jsx(Mk,{className:"w-3.5 h-3.5 mr-1 text-gray-400",style:{transform:`rotate(${m.direction}deg)`}}),N$(m.direction)]})]})]})]}),s&&!a?r.jsx("div",{className:"p-6",children:r.jsx(Xi,{className:"w-full h-[200px] rounded-xl"})}):r.jsx("div",{className:"p-4 h-64 w-full",children:r.jsx(que,{width:"100%",height:"100%",children:r.jsxs(Jke,{data:a,margin:{top:10,right:10,left:-20,bottom:0},children:[r.jsx("defs",{children:r.jsxs("linearGradient",{id:"waveGradient",x1:"0",y1:"0",x2:"0",y2:"1",children:[r.jsx("stop",{offset:"5%",stopColor:"#6366f1",stopOpacity:.3}),r.jsx("stop",{offset:"95%",stopColor:"#6366f1",stopOpacity:0})]})}),r.jsx(Kz,{strokeDasharray:"3 3",vertical:!1,stroke:"#f1f5f9"}),r.jsx(o$,{dataKey:"time",tickFormatter:p=>Pu(new Date(p),"ha"),tick:{fontSize:12,fill:"#64748b"},axisLine:!1,tickLine:!1,minTickGap:30}),r.jsx(l$,{tick:{fontSize:12,fill:"#64748b"},axisLine:!1,tickLine:!1,tickFormatter:p=>`${p}ft`}),r.jsx(V0e,{content:r.jsx(Xke,{})}),r.jsx(i$,{type:"monotone",dataKey:"height",stroke:"#6366f1",strokeWidth:3,fill:"url(#waveGradient)"})]})})})]})},ft=({townName:e,townSlug:t,lat:n,lon:a,defaultStationId:i})=>{const s=qoe(e,n,a),o=i||(s?s.id:"9435380");return r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-8 w-full max-w-7xl mx-auto",children:[r.jsx("div",{className:"h-full min-h-[500px]",children:r.jsx(Zoe,{defaultStationId:o})}),r.jsx("div",{className:"h-full min-h-[500px]",children:r.jsx(Qke,{lat:n,lon:a})})]})},Zx={},e2e=1e3*60*30,U1={"User-Agent":"(OregonCoastalGuide, contact@oregoncoastal.com)",Accept:"application/geo+json"},t2e=async(e,t)=>{const n=`${e.toFixed(4)},${t.toFixed(4)}`;if(Zx[n]&&Date.now()-Zx[n].timestamp<e2e)return Zx[n].data;try{const a=await fetch(`https://api.weather.gov/points/${e},${t}`,{headers:U1});if(!a.ok)throw new Error("Failed to fetch NOAA points data");const i=await a.json(),s=i.properties.forecast,o=i.properties.forecastHourly,[l,c]=await Promise.all([fetch(s,{headers:U1}),fetch(o,{headers:U1})]);if(!l.ok||!c.ok)throw new Error("Failed to fetch NOAA forecast data");const h=await l.json(),p=(await c.json()).properties.periods[0]||{},x=h.properties.periods||[],b={};x.forEach(_=>{const S=new Date(_.startTime).toLocaleDateString("en-US",{timeZone:"America/Los_Angeles"});b[S]||(b[S]={date:new Date(_.startTime),high:-1/0,low:1/0,condition:_.shortForecast,icon:_.icon}),_.temperature>b[S].high&&(b[S].high=_.temperature),_.temperature<b[S].low&&(b[S].low=_.temperature),_.isDaytime&&(b[S].condition=_.shortForecast,b[S].icon=_.icon)});const j=Object.values(b).sort((_,S)=>_.date-S.date).slice(0,5),N={current:{temp:p.temperature||0,high:j[0]?.high||p.temperature,low:j[0]?.low||p.temperature-10,condition:p.shortForecast||"Clear",description:p.shortForecast||"",icon:p.icon,humidity:p.relativeHumidity?.value||50,windSpeed:parseInt(p.windSpeed)||0,windDirection:p.windDirection||"N",pressure:1013},forecast:j};return Zx[n]={data:N,timestamp:Date.now()},N}catch(a){throw console.error("NOAA API Error:",a),a}},n2e=(e,t)=>{const[n,a]=v.useState(null),[i,s]=v.useState(!0),[o,l]=v.useState(null);return v.useEffect(()=>{let c=!0,h;const m=async()=>{s(!0),l(null);try{const p=await t2e(e,t);c&&(a(p),s(!1))}catch(p){console.warn("Weather API error, using mock data:",p);const x={current:{temp:58,high:62,low:51,condition:"Rain",description:"light rain",icon:"",humidity:82,windSpeed:12,windDirection:"SW",pressure:1012},forecast:Array.from({length:5}).map((b,j)=>({date:new Date(Date.now()+(j+1)*864e5),temp:55+Math.floor(Math.random()*10),high:60+Math.floor(Math.random()*5),low:50+Math.floor(Math.random()*5),condition:["Cloudy","Rain","Sunny"][Math.floor(Math.random()*3)],icon:""}))};c&&(a(x),s(!1))}};return m(),h=setInterval(m,1e3*60*30),()=>{c=!1,clearInterval(h)}},[e,t]),{data:n,loading:i,error:o}},yt=({lat:e=46.1878,lon:t=-123.8244,townName:n="Coastal Town"})=>{const{data:a,loading:i,error:s}=n2e(e,t),o=v.useMemo(()=>{if(!a)return"bg-gradient-to-b from-blue-400 to-blue-600 text-white";const m=a.current.condition.toLowerCase();return m.includes("night")?"bg-gradient-to-b from-slate-800 to-slate-900 text-white":m.includes("rain")||m.includes("showers")?"bg-gradient-to-b from-slate-600 to-slate-800 text-white":m.includes("cloud")||m.includes("overcast")?"bg-gradient-to-b from-slate-400 to-slate-600 text-white":m.includes("clear")||m.includes("sun")?"bg-gradient-to-b from-sky-400 to-blue-500 text-white":"bg-gradient-to-b from-blue-400 to-blue-600 text-white"},[a]);if(s)return r.jsx("div",{className:"bg-red-50 p-6 rounded-none shadow-editorial text-center text-red-600 h-full flex items-center justify-center min-h-[400px]",children:"Failed to load weather data."});if(i||!a)return r.jsxs("div",{className:"rounded-none p-6 shadow-editorial w-full mx-auto min-h-[400px] flex flex-col bg-gray-50",children:[r.jsx(Xi,{className:"h-8 w-32 mx-auto mb-2 rounded-none"}),r.jsx(Xi,{className:"h-24 w-32 mx-auto mb-2 rounded-none"}),r.jsx(Xi,{className:"h-6 w-24 mx-auto mb-8 rounded-none"}),r.jsx("div",{className:"space-y-3 mt-auto",children:[1,2,3,4,5].map(m=>r.jsx(Xi,{className:"h-8 w-full rounded-none"},m))})]});const{current:l,forecast:c}=a,h=(m,p="w-6 h-6")=>{const x=m?.toLowerCase()||"";return x.includes("clear")||x.includes("sun")?r.jsx(aG,{className:`${p} text-yellow-300`}):x.includes("rain")||x.includes("shower")?r.jsx(xI,{className:`${p} text-blue-200`}):r.jsx(Nq,{className:`${p} text-gray-200`})};return r.jsxs("div",{className:`rounded-none shadow-editorial p-6 w-full h-full overflow-hidden relative ${o}`,children:[r.jsx("div",{className:"absolute -top-24 -right-24 w-48 h-48 bg-white/10 rounded-full blur-3xl pointer-events-none"}),r.jsx("div",{className:"absolute -bottom-24 -left-24 w-64 h-64 bg-black/10 rounded-full blur-3xl pointer-events-none"}),r.jsxs("div",{className:"relative z-10",children:[r.jsxs("div",{className:"text-center mb-6",children:[r.jsx("h3",{className:"text-xl font-medium tracking-wide mb-1 drop-shadow-sm",children:n}),r.jsxs("div",{className:"text-7xl font-thin tracking-tighter mb-2 ml-4 drop-shadow-sm",children:[l.temp,"°"]}),r.jsx("p",{className:"text-lg font-medium capitalize mb-1 drop-shadow-sm",children:l.condition}),r.jsxs("div",{className:"flex items-center justify-center space-x-3 text-sm opacity-90 font-medium",children:[r.jsxs("span",{children:["H:",l.high,"°"]}),r.jsxs("span",{children:["L:",l.low,"°"]})]})]}),r.jsxs("div",{className:"grid grid-cols-3 gap-2 bg-black/10 rounded-none shadow-editorial p-4 mb-6 backdrop-blur-md",children:[r.jsxs("div",{className:"flex flex-col items-center justify-center text-center",children:[r.jsx(uG,{className:"w-5 h-5 opacity-70 mb-1"}),r.jsx("span",{className:"text-xs opacity-70 mb-0.5",children:"Wind"}),r.jsxs("span",{className:"text-sm font-semibold",children:[l.windSpeed," mph ",l.windDirection]})]}),r.jsxs("div",{className:"flex flex-col items-center justify-center text-center",children:[r.jsx(Lk,{className:"w-5 h-5 opacity-70 mb-1"}),r.jsx("span",{className:"text-xs opacity-70 mb-0.5",children:"Humidity"}),r.jsxs("span",{className:"text-sm font-semibold",children:[l.humidity,"%"]})]}),r.jsxs("div",{className:"flex flex-col items-center justify-center text-center",children:[r.jsx(Aq,{className:"w-5 h-5 opacity-70 mb-1"}),r.jsx("span",{className:"text-xs opacity-70 mb-0.5",children:"Pressure"}),r.jsxs("span",{className:"text-sm font-semibold",children:[l.pressure," mb"]})]})]}),r.jsxs("div",{className:"bg-black/10 rounded-none shadow-editorial p-4 backdrop-blur-md",children:[r.jsx("div",{className:"text-xs font-semibold opacity-70 uppercase tracking-wider mb-4 pb-2",children:"5-Day Forecast"}),r.jsx("div",{className:"space-y-4",children:c.map((m,p)=>r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsx("span",{className:"w-12 text-sm font-medium opacity-90",children:p===0?"Today":Pu(m.date,"EEE")}),r.jsx("div",{className:"flex items-center justify-center w-10",children:h(m.condition,"w-5 h-5")}),r.jsxs("div",{className:"flex items-center space-x-3 w-24 justify-end text-sm",children:[r.jsxs("span",{className:"opacity-70 font-medium",children:[m.low,"°"]}),r.jsx("div",{className:"w-16 h-1.5 bg-black/20 rounded-none overflow-hidden",children:r.jsx("div",{className:"h-full bg-gradient-to-r from-blue-300 to-yellow-300 opacity-90",style:{width:`${Math.min(100,Math.max(20,(m.high-m.low)/30*100))}%`,marginLeft:`${Math.min(50,Math.max(0,(m.low-30)/60*100))}%`}})}),r.jsxs("span",{className:"font-bold",children:[m.high,"°"]})]})]},p))})]})]})]})},r2e=e=>{const[t,n]=v.useState(e||""),[a,i]=v.useState([]);v.useEffect(()=>{n(e||"")},[e]);const s=v.useCallback(()=>{if(!document)return;const h=[];document.queryCommandState("bold")&&h.push("bold"),document.queryCommandState("italic")&&h.push("italic"),document.queryCommandState("underline")&&h.push("underline"),document.queryCommandState("strikeThrough")&&h.push("strikeThrough"),document.queryCommandState("insertUnorderedList")&&h.push("insertUnorderedList"),document.queryCommandState("insertOrderedList")&&h.push("insertOrderedList"),document.queryCommandState("justifyLeft")&&h.push("justifyLeft"),document.queryCommandState("justifyCenter")&&h.push("justifyCenter"),document.queryCommandState("justifyRight")&&h.push("justifyRight");const m=document.queryCommandValue("formatBlock");m&&h.push(m.toLowerCase()),i(h)},[]);return{content:t,setContent:n,activeFormats:a,checkActiveFormats:s,applyFormat:(h,m=null)=>{document.execCommand(h,!1,m),s()},insertLink:(h,m)=>{if(m){const p=`<a href="${h}" target="_blank" rel="noopener noreferrer">${m}</a>`;document.execCommand("insertHTML",!1,p)}else document.execCommand("createLink",!1,h);s()},removeFormat:()=>{document.execCommand("removeFormat",!1,null),s()}}},Rr=({active:e,onClick:t,icon:n,title:a,disabled:i})=>r.jsx("button",{type:"button",onClick:s=>{s.preventDefault(),i||t()},disabled:i,className:Se("p-2 rounded transition-colors",i?"text-gray-300 cursor-not-allowed":"hover:bg-gray-200 text-gray-700",e?"bg-gray-200 text-black font-semibold shadow-inner":""),title:a,children:r.jsx(n,{className:"w-4 h-4"})}),a2e=({isOpen:e,onClose:t,onSubmit:n,initialUrl:a="https://"})=>{const[i,s]=v.useState(a),[o,l]=v.useState("");return e?r.jsxs("div",{className:"absolute top-10 right-0 z-50 bg-white p-4 rounded-lg shadow-xl border border-gray-200 w-72 animate-in fade-in zoom-in-95 duration-200",children:[r.jsx("h4",{className:"text-sm font-semibold mb-3",children:"Insert Link"}),r.jsxs("div",{className:"space-y-3",children:[r.jsxs("div",{children:[r.jsx("label",{className:"block text-xs text-gray-500 mb-1",children:"URL"}),r.jsx("input",{type:"text",value:i,onChange:c=>s(c.target.value),className:"w-full text-sm border rounded px-2 py-1 focus:ring-2 focus:ring-[#2d5016] outline-none",placeholder:"https://example.com",autoFocus:!0})]}),r.jsxs("div",{children:[r.jsx("label",{className:"block text-xs text-gray-500 mb-1",children:"Link Text (Optional)"}),r.jsx("input",{type:"text",value:o,onChange:c=>l(c.target.value),className:"w-full text-sm border rounded px-2 py-1 focus:ring-2 focus:ring-[#2d5016] outline-none",placeholder:"Click here"})]}),r.jsxs("div",{className:"flex justify-end gap-2 pt-2",children:[r.jsx(pn,{variant:"ghost",size:"sm",onClick:t,className:"h-7 px-2",children:"Cancel"}),r.jsx(pn,{size:"sm",onClick:()=>n(i,o),className:"h-7 px-2 bg-[#2d5016] text-white hover:bg-[#1a3b0b]",children:"Insert"})]})]})]}):null},i2e=({content:e,onChange:t,className:n})=>{const a=v.useRef(null),[i,s]=v.useState(!1),{activeFormats:o,checkActiveFormats:l,applyFormat:c,insertLink:h,removeFormat:m}=r2e(e),[p,x]=v.useState(!1);v.useEffect(()=>{!i&&a.current&&a.current.innerHTML!==e&&(a.current.innerHTML=e)},[e,i]);const b=()=>{if(a.current){const _=a.current.innerHTML;t(_),l()}},j=(_,S)=>{a.current&&a.current.focus(),h(_,S),x(!1),b()},N=_=>{if(!i&&(_.ctrlKey||_.metaKey)){let S=null;_.key==="b"?S="bold":_.key==="i"?S="italic":_.key==="u"&&(S="underline"),S&&(_.preventDefault(),c(S),b())}};return r.jsxs("div",{className:Se("border border-gray-300 rounded-lg bg-white overflow-hidden flex flex-col shadow-sm transition-all duration-200",n),children:[r.jsxs("div",{className:"bg-gray-50 border-b border-gray-200 p-2 flex flex-wrap gap-1 items-center relative min-h-[44px]",children:[r.jsxs("div",{className:Se("flex flex-wrap gap-1 items-center transition-opacity duration-200",i?"opacity-30 pointer-events-none select-none grayscale":"opacity-100"),children:[r.jsx(Rr,{icon:mq,active:o.includes("bold"),onClick:()=>c("bold"),title:"Bold (Ctrl+B)"}),r.jsx(Rr,{icon:Dq,active:o.includes("italic"),onClick:()=>c("italic"),title:"Italic (Ctrl+I)"}),r.jsx(Rr,{icon:oG,active:o.includes("underline"),onClick:()=>c("underline"),title:"Underline (Ctrl+U)"}),r.jsx(Rr,{icon:rG,active:o.includes("strikethrough"),onClick:()=>c("strikeThrough"),title:"Strikethrough"}),r.jsx("div",{className:"w-px h-6 bg-gray-300 mx-1"}),r.jsx(Rr,{icon:Oq,active:o.includes("h2"),onClick:()=>c("formatBlock","H2"),title:"Heading 2"}),r.jsx(Rr,{icon:Rq,active:o.includes("h3"),onClick:()=>c("formatBlock","H3"),title:"Heading 3"}),r.jsx(Rr,{icon:Gq,active:o.includes("p"),onClick:()=>c("formatBlock","P"),title:"Paragraph"}),r.jsx("div",{className:"w-px h-6 bg-gray-300 mx-1"}),r.jsx(Rr,{icon:$q,active:o.includes("insertunorderedlist"),onClick:()=>c("insertUnorderedList"),title:"Bullet List"}),r.jsx(Rr,{icon:zq,active:o.includes("insertorderedlist"),onClick:()=>c("insertOrderedList"),title:"Numbered List"}),r.jsx("div",{className:"w-px h-6 bg-gray-300 mx-1"}),r.jsx(Rr,{icon:lq,active:o.includes("justifyleft"),onClick:()=>c("justifyLeft"),title:"Align Left"}),r.jsx(Rr,{icon:oq,active:o.includes("justifycenter"),onClick:()=>c("justifyCenter"),title:"Align Center"}),r.jsx(Rr,{icon:cq,active:o.includes("justifyright"),onClick:()=>c("justifyRight"),title:"Align Right"}),r.jsx("div",{className:"w-px h-6 bg-gray-300 mx-1"}),r.jsxs("div",{className:"relative",children:[r.jsx(Rr,{icon:Fq,active:!1,onClick:()=>x(!p),title:"Insert Link"}),r.jsx(a2e,{isOpen:p,onClose:()=>x(!1),onSubmit:j})]}),r.jsx(Rr,{icon:Yq,active:!1,onClick:()=>{m(),b()},title:"Clear Formatting"})]}),r.jsx("div",{className:"flex-grow"}),r.jsx("div",{className:"border-l border-gray-300 pl-1 ml-1",children:r.jsx(Rr,{icon:i?Sq:kq,active:i,onClick:()=>s(!i),title:i?"Switch to Visual Editor":"Switch to Code Editor"})})]}),r.jsx("div",{className:"flex-1 relative min-h-[200px] flex flex-col",children:i?r.jsx("textarea",{value:e,onChange:_=>t(_.target.value),className:"flex-1 w-full h-full p-4 font-mono text-sm bg-gray-900 text-gray-100 outline-none resize-y min-h-[200px]",spellCheck:!1,placeholder:"<!-- Enter HTML code here -->"}):r.jsx("div",{ref:a,contentEditable:!0,className:"flex-1 p-4 outline-none text-gray-900 prose prose-sm max-w-none overflow-y-auto min-h-[200px]",onInput:b,onMouseUp:l,onKeyUp:_=>{l(),N(_)},onBlur:b})})]})},Cr=({townName:e,initialDescription:t})=>{const{isAuthenticated:n}=ch(),{toast:a}=r0(),[i,s]=v.useState(!1),[o,l]=v.useState(t||""),[c,h]=v.useState(t||""),[m,p]=v.useState(!1),[x,b]=v.useState(!0);v.useEffect(()=>{let _=!0;return e&&(async()=>{b(!0);try{const{data:A,error:P}=await Ht.from("town_descriptions").select("description").eq("town_name",e).order("created_at",{ascending:!1}).limit(1).maybeSingle();if(P)throw P;_&&(A&&A.description?(l(A.description),h(A.description)):t&&(l(t),h(t)))}catch(A){console.error("Error fetching description for",e,":",A),_&&t&&(l(t),h(t))}finally{_&&b(!1)}})(),()=>{_=!1}},[e,t]);const j=async()=>{if(!c.trim()){a({title:"Error",description:"Description cannot be empty.",variant:"destructive"});return}p(!0);try{const{data:_}=await Ht.from("town_descriptions").select("id").eq("town_name",e).maybeSingle();let S;if(_){const{error:A}=await Ht.from("town_descriptions").update({description:c}).eq("id",_.id);S=A}else{const{error:A}=await Ht.from("town_descriptions").insert([{town_name:e,description:c}]);S=A}if(S)throw S;l(c),s(!1),a({title:"Success",description:`${e} description updated successfully.`,variant:"default"})}catch(_){a({title:"Error saving description",description:_.message,variant:"destructive"})}finally{p(!1)}},N=()=>{h(o),s(!1)};return r.jsxs("div",{className:"bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full relative min-h-[300px]",children:[r.jsxs("div",{className:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4 mb-6",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:["About ",e," Oregon"]}),n&&!i&&!x&&r.jsxs(pn,{variant:"outline",size:"sm",onClick:()=>s(!0),className:"shrink-0",children:[r.jsx(Uq,{className:"w-4 h-4 mr-2"})," Edit Description"]})]}),r.jsx("div",{className:"flex-grow",children:x?r.jsxs("div",{className:"flex items-center justify-center h-full min-h-[150px] text-gray-400",children:[r.jsx(Fr,{className:"w-8 h-8 animate-spin"}),r.jsx("span",{className:"ml-3 text-sm font-medium",children:"Loading description..."})]}):i?r.jsxs("div",{className:"space-y-4 animate-in fade-in duration-200",children:[r.jsx(i2e,{content:c,onChange:h}),r.jsxs("div",{className:"flex justify-end gap-3 pt-2",children:[r.jsxs(pn,{variant:"outline",onClick:N,disabled:m,children:[r.jsx(Uc,{className:"w-4 h-4 mr-2"})," Cancel"]}),r.jsx(pn,{onClick:j,disabled:m,className:"bg-[#2d5016] text-white hover:bg-[#1a3b0b]",children:m?r.jsxs(r.Fragment,{children:[r.jsx(Fr,{className:"w-4 h-4 mr-2 animate-spin"})," Saving..."]}):r.jsxs(r.Fragment,{children:[r.jsx(Jq,{className:"w-4 h-4 mr-2"})," Save Changes"]})})]})]}):r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left animate-in fade-in duration-200",dangerouslySetInnerHTML:{__html:o||"<p>No description available.</p>"}})}),!i&&r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Explore the beauty and history of the Central Coast."})})]})},s2e=`Nestled between Cannon Beach and Manzanita along Highway 101, Arch Cape offers visitors a peaceful escape from typical beach town crowds. This tiny unincorporated community of just 250 residents embodies the quiet beauty and serenity that define the Oregon Coast experience. Named for a natural rock arch formation created by ancient lava flows, Arch Cape provides the perfect base for exploring dramatic state parks, secluded beaches, and pristine coastal wilderness while maintaining an atmosphere of tranquil seclusion.
The Oregon Coast Trail flows directly through Arch Cape, offering hikers access to 2.5 miles of pristine, uncrowded shoreline framed by dramatic headlands and the steady rhythm of Pacific waves. Castle Rock, a majestic monolith sitting in shallow waters just offshore, rises like a medieval fortress with its naturally castle-shaped towers. Nearby Oswald West State Park draws surfers to world-class breaks at Short Sand Beach, while hikers explore the spectacular Cape Falcon Trail through old-growth Sitka spruce rainforest. Just minutes from both Cannon Beach's galleries and restaurants to the north and Manzanita's laid-back charm to the south, Arch Cape delivers Oregon Coast beauty without the crowds.`,B6=[{name:"Hug Point State Recreation Site",description:"Just north of Arch Cape, this beach offers easy access to sea caves, a seasonal waterfall, and the historic stagecoach wheel ruts carved into the rock, remnants of when the beach was the only highway.",details:"Historical Site & Beach Access"},{name:"Cove Beach",description:"A secluded and often quiet stretch of shoreline south of Arch Cape, locally known as 'Magic Beach' for its shifting sands and excellent agate hunting opportunities.",details:"Secluded Beach"},{name:"Castle Rock",description:"A majestic sea stack rising from the ocean just off the coast. While you can't climb it, it provides a stunning backdrop for photography and sunset views from the beach.",details:"Scenic Landmark"},{name:"Oswald West State Park",description:"Bordering Arch Cape to the south, this expansive park features temperate rainforests, secluded sandy coves like Short Sand Beach, and breathtaking viewpoints.",details:"State Park"},{name:"St. Peter the Fisherman Catholic Church",description:"A charming, rustic church located right in Arch Cape. Its unique architecture and welcoming atmosphere make it a notable local landmark.",details:"Local Landmark"},{name:"Arch Cape Beach",description:"The main beach of the community, offering miles of pristine sand perfect for walking, running, and solitary reflection away from the crowds.",details:"Public Beach"},{name:"Neahkahnie Viewpoint",description:"Located just south on Highway 101, this turnout offers one of the most photographed vistas on the entire Oregon Coast, looking south toward Manzanita and Nehalem Bay.",details:"Scenic Viewpoint"}],o2e=[{name:"Cape Falcon Trail",distance:"4.8 miles roundtrip",difficulty:"Moderate",elevation:"300 ft gain",description:"A lush trail winding through old-growth Sitka spruce forests to the tip of Cape Falcon, offering dramatic views of Smuggler's Cove and the ocean."},{name:"Hug Point Beach & Cave Exploration",distance:"1-2 miles",difficulty:"Easy",elevation:"Minimal",description:"Best explored at low tide, this walk allows you to round the point, see the waterfall, and explore the sea caves carved into the sandstone cliffs."},{name:"Oregon Coast Trail (Arch Cape Section)",distance:"Varies",difficulty:"Moderate/Hard",elevation:"Varies",description:"Passes directly through Arch Cape, connecting hikers north to Cannon Beach via the beach or south into Oswald West State Park."},{name:"Neahkahnie Mountain Trail",distance:"3 miles roundtrip",difficulty:"Strenuous",elevation:"900 ft gain",description:"A steep climb rewarding hikers with perhaps the best panoramic view on the coast, overlooking the ocean and the town of Manzanita."},{name:"Short Sand Beach Trail",distance:"1 mile roundtrip",difficulty:"Easy",elevation:"100 ft drop",description:"A gentle walk through the forest from the highway down to the popular surfer's haven of Short Sand Beach in Oswald West State Park."},{name:"Tillamook Head Trail",distance:"6.3 miles one way",difficulty:"Moderate/Hard",elevation:"1,350 ft gain",description:"Located further north, this historic trail follows the route of Lewis and Clark's party, offering deep forest solitude and clifftop ocean views."}],l2e=[{name:"Arch Cape Inn & Retreat",description:"A romantic, castle-like bed and breakfast offering luxurious rooms, ocean views, and European-style architecture. A perfect getaway for couples.",category:"Luxury B&B",amenities:"Breakfast, Ocean Views, Gardens",image:"https://drive.google.com/thumbnail?id=1bozxH324xGyh6iidrfsGhE62fzgRpm4K&sz=w1000",link:"https://expedia.com/affiliates/arch-cape-hotels-arch-cape-inn-and-retreat-cannon-beach.E7MsMSo",linkRel:"noopener sponsored"},{name:"Arch Cape Loft",description:"Modern, well-appointed loft accommodations offering privacy and contemporary style for travelers who want a home-away-from-home feel.",category:"Vacation Rental",amenities:"Kitchen, Modern Design, Private"},{name:"Vacation Rentals",description:"Arch Cape is famous for its wide variety of private beach homes available for rent, ranging from cozy cabins to sprawling oceanfront estates.",category:"Private Homes",amenities:"Varies by property"}],c2e=[{name:"Driftwood Restaurant & Lounge",description:"Located in nearby Cannon Beach, a local institution famous for its steaks, seafood, and vibrant outdoor patio atmosphere.",category:"Steak & Seafood",features:"Outdoor Seating"},{name:"The Wayfarer Restaurant",description:"Upscale dining with stunning views of Haystack Rock. Known for its whiskey bar and fresh Pacific Northwest cuisine.",category:"Fine Dining",features:"Ocean View"},{name:"Pelican Brewing",description:"A favorite for craft beer lovers, serving award-winning brews and elevated pub fare in a bustling, family-friendly setting.",category:"Brewery",features:"Craft Beer"},{name:"Public Coast Brewing",description:"A casual spot celebrating Oregon's public beaches with house-made beers, burgers, and fish and chips.",category:"Brewery",features:"Casual Dining"},{name:"Pizza a'fetta",description:"Renowned for serving some of the best pizza on the coast, featuring fresh ingredients and a cozy dining room.",category:"Italian",features:"Artisan Pizza"},{name:"Sleepy Monk Coffee Roasters",description:"The go-to spot for organic, small-batch roasted coffee and delicious house-made pastries.",category:"Cafe",features:"Organic Coffee"},{name:"Insomnia Coffee Co",description:"A modern coffee shop offering high-quality espresso drinks and a great place to relax or get some work done.",category:"Cafe",features:"Espresso Bar"},{name:"Lazy Susan Cafe",description:"A charming spot famous for its hearty breakfasts, waffles, and omelets in a quaint, homey atmosphere.",category:"Breakfast/Brunch",features:"Homestyle Cooking"},{name:"Ecola Seafoods Restaurant & Market",description:"Both a market and a restaurant, offering some of the freshest seafood you can buy, including their famous smoked salmon.",category:"Seafood Market",features:"Fresh Catch"},{name:"Castaways",description:"A hidden gem offering Cajun and Creole-inspired dishes with a Pacific Northwest twist in an intimate setting.",category:"Cajun/Creole",features:"Global Flavors"}],d2e=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-teal-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-teal-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-teal-700 bg-teal-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),u2e=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-teal-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-teal-600 font-bold tracking-wider uppercase text-sm",children:"Explore the Coast"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Arch Cape"}),r.jsx("div",{className:"h-1 w-24 bg-teal-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(d2e,{attraction:t,index:n},n))})]})})),h2e=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-teal-100 text-teal-800 border-teal-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},f2e=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Discover the rugged beauty of Arch Cape and Oswald West State Park. From ancient forests to sweeping ocean vistas, these trails offer something for every adventurer."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(h2e,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),mt=({townName:e,fallbackHotels:t=[],affiliateHotels:n=[]})=>{const a=new Map;(t||[]).forEach(s=>{s&&s.name&&a.set(s.name.toLowerCase(),{fallback:s,aff:null})}),(n||[]).forEach(s=>{if(!s||!s.name)return;const o=s.name.toLowerCase();let l=o;if(!a.has(o)){for(const[c,h]of a.entries())if(c.includes(o)||o.includes(c)){l=c;break}}a.has(l)?a.get(l).aff=s:a.set(o,{fallback:null,aff:s})});const i=Array.from(a.values()).map(({fallback:s,aff:o})=>{const l=s||{},c=o||{};let h=[];Array.isArray(l.amenities)?h=l.amenities:typeof l.amenities=="string"?h=l.amenities.split(",").map(p=>p.trim()):h=["Free WiFi","Free Parking","Comfortable Rooms"];let m=c.photoUrl||l.image||null;if(m&&m.includes("drive.google.com/uc")){const p=m.match(/id=([^&]+)/);p&&p[1]&&(m=`https://drive.google.com/thumbnail?id=${p[1]}&sz=w1000`)}return{name:l.name||c.name,link:l.link||l.bookingUrl||l.affiliateUrl||c.link||"#",linkRel:l.linkRel||c.linkRel||"noopener noreferrer",price:l.price||c.price||"$$",rating:l.rating||c.rating||"4.0/5",address:l.address||c.address||`${e}, OR`,description:l.description||c.description||`Enjoy your stay at ${l.name||c.name} located in beautiful ${e}. Book now for great rates and comfortable accommodations on the Oregon Coast.`,amenities:h,image:m,chain:l.category||l.chain||c.chain||"Hotel",stars:l.stars||c.stars||3,bgClass:l.bgClass,bgImage:l.bgImage}});return!i||i.length===0?r.jsx("section",{className:"py-24 px-4 bg-slate-50 text-center",children:r.jsxs("p",{className:"text-stone-500",children:["Hotel information currently unavailable for ",e,"."]})}):r.jsx("section",{className:"py-20 px-4",style:{backgroundColor:"#e8eff2"},children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("h2",{className:"text-4xl md:text-5xl font-serif font-bold mb-4",style:{color:"#1a3a4a"},children:["Where to Stay in ",e]}),r.jsx("p",{className:"text-lg max-w-2xl mx-auto",style:{color:"#2e7d8a"},children:"From oceanfront suites to budget-friendly base camps, find the perfect accommodation for your coastal getaway."})]}),r.jsx("div",{className:"space-y-16",children:i.map((s,o)=>{const l=s.bgClass&&s.bgClass.includes("500")||s.bgImage;return r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:`flex flex-col ${o%2!==0?"md:flex-row-reverse":"md:flex-row"} bg-white rounded-2xl overflow-hidden shadow-lg hover:shadow-xl transition-shadow duration-300`,children:[r.jsxs("div",{className:"image-wrapper w-full md:w-1/2 min-h-[16rem] md:min-h-full relative overflow-hidden bg-slate-200 flex items-center justify-center group",children:[r.jsxs("div",{className:"image-fallback absolute inset-0 bg-slate-200 flex flex-col items-center justify-center z-0",style:{display:s.image?"none":"flex"},children:[r.jsx(gq,{className:"w-12 h-12 text-slate-400 mb-2"}),r.jsx("span",{className:"text-slate-500 text-sm font-medium",children:"Image not available"})]}),s.image&&r.jsx("img",{src:s.image,alt:`View of ${s.name}`,className:"absolute inset-0 w-full h-full object-cover z-0 transition-transform duration-700 group-hover:scale-105",onError:c=>{c.target.style.display="none";const h=c.target.closest(".image-wrapper");if(h){const m=h.querySelector(".image-fallback");m&&(m.style.display="flex")}}}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent flex items-end p-6 z-10 pointer-events-none",children:r.jsxs("div",{className:"text-white",children:[r.jsx("p",{className:"text-sm font-semibold tracking-wider uppercase mb-1",style:{color:"#a8d5d1"},children:s.chain}),r.jsx("div",{className:"flex items-center space-x-1",children:[...Array(s.stars||3)].map((c,h)=>r.jsx(Fu,{className:"w-4 h-4 fill-current text-yellow-400"},h))})]})})]}),r.jsxs("div",{className:`w-full md:w-1/2 p-8 flex flex-col justify-between relative ${s.bgClass||""}`,style:{...s.bgClass?{}:{backgroundColor:"#f0e8d8"},...s.bgImage?{backgroundImage:`url(${s.bgImage})`,backgroundSize:"cover",backgroundPosition:"center"}:{}},children:[s.bgImage&&r.jsx("div",{className:"absolute inset-0 bg-black/75 z-0"}),r.jsxs("div",{className:"relative z-10 flex flex-col h-full",children:[r.jsxs("div",{children:[r.jsxs("div",{className:"flex justify-between items-start mb-4 gap-4",children:[r.jsx("h3",{className:"text-2xl font-serif font-bold",style:{color:l?"#ffffff":"#1a3a4a"},children:r.jsx("a",{href:s.link!=="#"?s.link:void 0,target:s.link!=="#"?"_blank":void 0,rel:s.link!=="#"?s.linkRel:void 0,className:s.link!=="#"?"hover:underline hover:opacity-80 transition-all duration-200":"",children:s.name})}),r.jsx("span",{className:"font-bold text-lg whitespace-nowrap",style:{color:l?"#f0fdfa":"#2e7d8a"},children:s.price})]}),r.jsxs("div",{className:"flex items-center text-sm mb-4",style:{color:l?"#e0f2fe":"#8c7055"},children:[r.jsx(We,{className:"w-4 h-4 mr-1 flex-shrink-0"}),s.address]}),r.jsx("p",{className:"mb-6 font-serif leading-relaxed",style:{color:l?"#f8fafc":"#1a3a4a"},children:s.description}),r.jsxs("div",{className:"mb-6",children:[r.jsx("h4",{className:"text-sm font-bold uppercase tracking-wider mb-2",style:{color:l?"#ffffff":"#2e7d8a"},children:"Amenities"}),r.jsx("div",{className:"flex flex-wrap gap-2",children:s.amenities.map((c,h)=>r.jsxs("span",{className:`flex items-center text-xs px-2 py-1 rounded-full ${l?"bg-black/40 text-white":"bg-white/50"}`,style:l?{}:{color:"#1a3a4a"},children:[r.jsx(Rk,{className:"w-3 h-3 mr-1",style:l?{color:"#ffffff"}:{color:"#2e7d8a"}})," ",c]},h))})]})]}),r.jsxs("div",{className:"flex items-center justify-between mt-auto pt-4",children:[r.jsxs("div",{className:"flex flex-col",children:[r.jsx("span",{className:"text-xs uppercase font-bold",style:{color:l?"#e0f2fe":"#8c7055"},children:"Google Rating"}),r.jsx("span",{className:"font-bold text-lg",style:{color:l?"#ffffff":"#1a3a4a"},children:s.rating})]}),s.link!=="#"&&r.jsxs("a",{href:s.link,target:"_blank",rel:s.linkRel,className:"flex items-center px-6 py-3 rounded-lg font-bold transition-colors duration-300 hover:opacity-90 shadow-sm",style:{backgroundColor:l?s.bgImage?"#2e7d8a":"rgba(0,0,0,0.4)":"#2e7d8a",color:"#ffffff"},children:["Book on Expedia ",r.jsx(Ka,{className:"w-4 h-4 ml-2"})]})]})]})]})]},o)})}),r.jsx("div",{className:"mt-12 text-center",children:r.jsx("p",{className:"text-sm italic",style:{color:"#8c7055"},children:"* Hotel links are affiliate links. We may earn a commission at no extra cost to you."})})]})})},m2e=({hotels:e})=>{const t="Arch Cape",n=["Vacation Rentals","Arch Cape Loft"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},q1=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),F6=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),p2e=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,4),n=e.slice(4,6),a=e.slice(6);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Nearby Dining"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"While Arch Cape is primarily residential, you are just minutes away from the world-class culinary scene of Cannon Beach."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Local Favorites"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(q1,{restaurant:i},s))})]}),r.jsx(F6,{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80",alt:"Coastal dining atmosphere",caption:"Enjoy fresh seafood and local brews nearby"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(F6,{src:"https://images.unsplash.com/photo-1513104890138-7c749659a591?auto=format&fit=crop&w=800&q=80",alt:"Artisan pizza",caption:"Casual bites and comfort food"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Casual Eats"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(q1,{restaurant:i},s))})]})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Coffee & Breakfast"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:a.map((i,s)=>r.jsx(q1,{restaurant:i},s))})]})]})})},g2e=()=>{v.useEffect(()=>{console.log("ArchCapePage mounted")},[]);const e=ke["arch-cape"],t=lt("Arch Cape"),n=ct("Arch Cape"),a=jn["arch-cape"];return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Arch Cape Oregon Travel",description:n,url:"https://oregoncoastal.com/town/arch-cape",image:a}),r.jsx(ut,{}),r.jsx(Bse,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Beautiful beach scene showing sandy beach with sea stacks, dramatic rocky cliffs with trees on top, blue sky with white clouds, ocean waves, beach access path with wooden fence, and people enjoying the beach",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Arch Cape"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Arch Cape"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12",children:[r.jsx("div",{className:"lg:col-span-2",children:r.jsx(Cr,{townName:"Arch Cape",initialDescription:s2e},"ArchCape-About")}),r.jsx("div",{className:"lg:col-span-1",children:r.jsx(yt,{lat:e?.geo?.lat||45.8051,lon:e?.geo?.lng||-123.9604,townName:"Arch Cape"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Arch Cape",townSlug:"arch-cape",lat:e?.geo?.lat||45.8051,lon:e?.geo?.lng||-123.9604})})]}),r.jsx(ht,{townName:"Arch Cape",featuredImage:a,title:"Arch Cape in Photos"}),r.jsx(dt,{attractions:B6,townName:"Arch Cape"}),r.jsx(u2e,{attractions:B6}),r.jsx(f2e,{trails:o2e}),r.jsx(m2e,{hotels:l2e}),r.jsx(p2e,{restaurants:c2e})]}),r.jsx(Ye,{})]})};class x2e extends an.Component{constructor(t){super(t),this.state={hasError:!1,error:null}}static getDerivedStateFromError(t){return{hasError:!0,error:t}}componentDidCatch(t,n){console.error("ErrorBoundary caught an error:",t,n)}render(){return this.state.hasError?r.jsx("div",{className:"p-4 bg-red-50 border border-red-200 rounded-xl my-4",children:r.jsxs(gh,{variant:"destructive",className:"bg-transparent border-none p-0",children:[r.jsx(Qe,{className:"h-5 w-5 text-red-600 mb-2"}),r.jsx(xh,{className:"text-red-800 font-semibold",children:"Component Error"}),r.jsxs(yh,{className:"text-red-700 mt-1",children:["Something went wrong loading this component. Please try refreshing the page.",this.props.showDetails&&this.state.error&&r.jsx("div",{className:"mt-2 text-xs font-mono bg-white/50 p-2 rounded text-red-900 overflow-auto",children:this.state.error.toString()})]})]})}):this.props.children}}const y2e={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.1}}},v2e={hidden:{y:20,opacity:0},visible:{y:0,opacity:1,transition:{type:"spring",stiffness:100}}},$r=({events:e=[],title:t="Local Events & Festivals",subtitle:n="Plan your trip around these upcoming coastal gatherings."})=>!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-[#FFF8F0] border-y border-stone-200",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("p",{className:"text-sm md:text-base font-semibold text-stone-500 uppercase tracking-wider mb-2",children:"Mark Your Calendar"}),r.jsx("h2",{className:"text-3xl md:text-4xl font-serif font-bold text-stone-900 tracking-tight mb-4",children:t}),r.jsx("div",{className:"w-24 h-[1px] bg-stone-300 mx-auto"}),r.jsx("p",{className:"mt-6 text-lg text-stone-600 max-w-2xl mx-auto",children:n})]}),r.jsx(F.div,{variants:y2e,initial:"hidden",whileInView:"visible",viewport:{once:!0,margin:"-100px"},className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:e.map((a,i)=>r.jsx(F.div,{variants:v2e,className:"h-full",children:r.jsx(gp,{className:"h-full flex flex-col bg-white border border-stone-200 rounded-none shadow-[0_2px_8px_rgba(0,0,0,0.04)] hover:shadow-[0_8px_24px_rgba(0,0,0,0.06)] transition-all duration-300 p-6",children:r.jsxs("div",{className:"flex flex-col h-full gap-4",children:[r.jsx("div",{className:"flex items-start justify-between gap-4",children:r.jsx("h3",{className:"text-xl font-serif font-bold text-stone-900 leading-tight",children:a.title})}),r.jsxs("div",{className:"flex items-center text-stone-600 font-medium gap-2 mt-auto pt-4 border-t border-stone-100",children:[r.jsx(Ok,{className:"w-4 h-4 flex-shrink-0 text-stone-400"}),r.jsx("span",{className:"text-sm tracking-wide",children:a.date})]}),a.description&&r.jsx("p",{className:"text-sm text-stone-500 mt-2",children:a.description})]})})},i))})]})}),b2e=1e4,w2e=(e,t)=>{let n;const a=new Promise((i,s)=>{n=setTimeout(()=>{s(new Error("Request timed out after 10s"))},t)});return Promise.race([e,a]).finally(()=>{clearTimeout(n)})},zS=async e=>{const t=new Date().toISOString();console.group(`🌊 [fetchTidesNetData] Start fetch for: ${e}`),console.log(`[Time] Request initiated at: ${t}`);try{const{data:n,error:a}=await w2e(pu.functions.invoke("fetch-tides-data",{body:{stationPath:e}}),b2e);if(a)throw console.error("[fetchTidesNetData] Supabase invoke error:",a),new Error(`Invoke error: ${a.message}`);if(console.log("[fetchTidesNetData] Raw API Response Received:",n),!n||n.error)throw console.warn("[fetchTidesNetData] Edge function returned internal error:",n?.error),new Error(n?.error||"Unknown edge function error");if(!Array.isArray(n.data))throw new Error(`Invalid response format: 'data' is not an array. Found: ${typeof n.data}`);return console.log(`[fetchTidesNetData] Parsed ${n.data.length} tide events.`),console.log('[fetchTidesNetData] Note: times are expected to be in Local (PT) timezone format (e.g. "05:00 AM").'),console.groupEnd(),{tides:n.data,source:n.source||"unknown",timestamp:n.timestamp||Date.now(),error:null}}catch(n){return console.error("[fetchTidesNetData] Exception caught:",n.message),console.groupEnd(),{tides:[],source:"error",timestamp:Date.now(),error:n.message}}},fu={},j2e=1e3*60*30,N2e=[{time:"05:00 AM",height_ft:"1.5",height_m:"0.46",type:"Low Tide"},{time:"11:15 AM",height_ft:"6.5",height_m:"1.98",type:"High Tide"},{time:"05:30 PM",height_ft:"1.2",height_m:"0.37",type:"Low Tide"},{time:"11:45 PM",height_ft:"6.8",height_m:"2.07",type:"High Tide"}],k2e=e=>{const[t,n]=v.useState([]),[a,i]=v.useState(!0),[s,o]=v.useState(null),[l,c]=v.useState({source:"",timestamp:null}),[h,m]=v.useState(!1),p=v.useCallback(async(x,b=!1,j=1)=>{if(!x)return;j===1&&(i(!0),o(null),console.log(`[useTideData] Initiating fetch pipeline for ${x}`));const N=x.toLowerCase();if(!b&&j===1&&fu[N]&&Date.now()-fu[N].timestamp<j2e){console.log(`[useTideData] Using cached processed data for ${x}`),n(fu[N].data),c(fu[N].meta),m(fu[N].isMock||!1),i(!1);return}try{const _=a_(x);console.log(`[useTideData] Step 1: Mapping resolved. Path -> ${_}`);const S=await zS(_);if(console.log(`[useTideData] Step 2: Edge Function responded. Source: ${S.source}`),S.error||!S.tides||S.tides.length===0)throw new Error(`Data fetch failed step 2: ${S.error||"Empty data array"}`);console.log("[useTideData] Step 3: Raw response data:",S.tides);const A=HE();console.log(`[useTideData] Step 4: Attaching Pacific Date string: ${A}`);const P=S.tides.map(O=>({time:O.time,height_ft:O.height_ft,height_m:O.height_m,type:O.type,v:O.height_ft,displayTime:O.time,pacificDate:A,_rawDebug:JSON.stringify(O)}));console.log("[useTideData] Step 5: Final output to component state:",P);const I={source:S.source,timestamp:S.timestamp,error:null};fu[N]={data:P,meta:I,timestamp:Date.now(),isMock:!1},n(P),c(I),m(!1),i(!1)}catch(_){if(console.warn(`[useTideData] Attempt ${j} failed for ${x}:`,_.message),j<2){const S=j*3e3;console.log(`[useTideData] Retrying in ${S}ms...`),setTimeout(()=>{p(x,b,j+1)},S)}else{console.error(`[useTideData] Pipeline failed. Activating fallback data for ${x}.`),o(`Processing failed: ${_.message}. Showing estimated fallback.`),m(!0);const S=HE();n(N2e.map(A=>({...A,v:A.height_ft,displayTime:A.time,pacificDate:S,_rawDebug:JSON.stringify(A)}))),i(!1)}}},[]);return v.useEffect(()=>{p(e)},[e,p]),{data:t,loading:a,error:s,meta:l,isUsingMockData:h,refetch:()=>p(e,!0,1)}},_2e=e=>e?.toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w-]/g,"")||"",S2e=({attraction:e,index:t})=>r.jsx(F.div,{id:_2e(e?.name),initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full scroll-mt-24",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),C2e=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Explore the History"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Astoria"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(S2e,{attraction:t,index:n},n))})]})})),T2e=e=>e?.toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w-]/g,"")||"",A2e=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},P2e=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From riverside strolls to challenging climbs, Astoria offers trails for every skill level. Discover ancient forests, waterfalls, and sweeping coastal views."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{id:T2e(t.name),initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group scroll-mt-24",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(A2e,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),E2e=[{name:"Hampton Inn & Suites Astoria",chain:"Hilton",stars:3,price:"$$$",rating:"4.5/5",address:"201 39th St, Astoria, OR 97103",description:"Located right on the Columbia River, this modern hotel offers stunning water views, complimentary hot breakfast, and easy access to the Astoria Riverwalk. Perfect for watching the massive cargo ships pass by from your balcony.",amenities:["Free Breakfast","Indoor Pool","Fitness Center","River Views","Free WiFi"],image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/086d60dedbb1deb18892c292d979f631.jpg"},{name:"Holiday Inn Express & Suites Astoria",chain:"IHG",stars:3,price:"$$",rating:"4.4/5",address:"204 W Marine Dr, Astoria, OR 97103",description:"Situated near the Megler Bridge, this comfortable hotel features an indoor pool with river views, signature cinnamon rolls for breakfast, and is just a short drive to downtown Astoria's main attractions and dining.",amenities:["Free Breakfast","River Views","Indoor Pool","Business Center","Free Parking"],image:"https://images.unsplash.com/photo-1582719478250-c89cae4dc85b?ixlib=rb-4.0.3&auto=format&fit=crop&w=1000&q=80"},{name:"Motel 6 Astoria",chain:"Motel 6",stars:2,price:"$",rating:"3.8/5",address:"288 W Marine Dr, Astoria, OR 97103",description:"A budget-friendly option offering clean, basic accommodations. It's pet-friendly, conveniently located near the highway, and provides a great base camp for exploring the Oregon Coast without breaking the bank.",amenities:["Pet Friendly","Free Coffee","Free WiFi","Free Parking","Accessible Rooms"],image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/5ad994bcf6c5a0a07451cb331cc7667b.jpg"},{name:"Astoria River Motel",chain:"Riverside Charm · Budget-Friendly",stars:2,price:"$",rating:"4.3/5",address:"3348 Leif Erikson Drive, Astoria, OR 97103",description:"Experience riverside charm with beautiful river views right from your room. This budget-friendly motel offers a convenient location near downtown Astoria, making it a perfect, affordable base camp for your coastal adventures.",amenities:["River Views","Budget Friendly","Pet Friendly","Free WiFi"],image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/b43f3797e7ea7d072e74f17217d6246e.jpg",bgImage:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/f014eeac4bcf169dbeb561239a0e73b2.jpg"},{name:"Lloyd Hotel Astoria Bayfront",chain:"Ascend Collection Luxury on the Bay",stars:4,price:"$$$",rating:"4.6/5",address:"100 Westshore Drive, Astoria, OR 97103",description:"Experience upscale waterfront hospitality at Lloyd Hotel Astoria Bayfront, an Ascend Collection Hotel. This premium property offers stunning views of the Columbia River and Astoria Bridge, featuring modern amenities, a full-service restaurant, and easy access to downtown attractions. Perfect for travelers seeking elevated comfort and service.",amenities:["Waterfront Views","Restaurant & Bar","Business Center","Fitness Center","Free WiFi"],image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/4079ca1fed5ffad905dd239706d5c5e7.png"},{name:"Best Western Columbia River Waterfront",chain:"Best Western Waterfront Excellence",stars:3,price:"$$",rating:"4.5/5",address:"3600 Westshore Drive, Astoria, OR 97103",description:"Discover comfort and convenience at Best Western Columbia River Waterfront Hotel. Located directly on the waterfront with panoramic river views, this hotel combines Best Western reliability with premium amenities including an indoor pool, hot tub, and complimentary breakfast. An ideal base for exploring Astoria's maritime heritage.",amenities:["Waterfront Location","Indoor Pool & Hot Tub","Free Breakfast","River Views","Pet Friendly"],image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/394888ac17c0c5bbb4e26405424ac887.jpg",bgClass:"bg-gradient-to-br from-emerald-500 to-teal-400"}],O2e=()=>{const e="Astoria";return r.jsx(mt,{townName:e,fallbackHotels:E2e,affiliateHotels:st[e]})},R2e=[{icon:r.jsx(Ok,{className:"w-8 h-8"}),title:"Best Time to Visit",description:"Late summer (August-September) offers the clearest skies and warmest weather. Fall brings dramatic coastal storms, perfect for cozying up indoors with a view."},{icon:r.jsx(yq,{className:"w-8 h-8"}),title:"Getting Around & Parking",description:"Downtown Astoria is very walkable, but you'll need a car for the Column and state parks. Street parking downtown is metered, so bring coins or use the parking app."},{icon:r.jsx(xI,{className:"w-8 h-8"}),title:"Weather Preparation",description:"The coast is famously unpredictable. Always pack layers and a waterproof rain jacket, even in summer. The wind coming off the Columbia River can be brisk."},{icon:r.jsx(rt,{className:"w-8 h-8"}),title:"Local Cuisine",description:"Don't miss the fresh local seafood! Astoria is famous for its fish and chips, often caught the same day. The local craft brewery scene is also world-class."},{icon:r.jsx(Bu,{className:"w-8 h-8"}),title:"The Riverwalk",description:"The Astoria Riverwalk stretches for miles along the waterfront. It's flat, paved, and perfect for a morning jog, sunset stroll, or taking the historic trolley."},{icon:r.jsx(Mk,{className:"w-8 h-8"}),title:"Day Trip Ideas",description:"Fort Stevens State Park is just 20 minutes away featuring a historic shipwreck. Across the Megler Bridge lies Washington state and the stunning Cape Disappointment."}],I2e=()=>r.jsx("section",{className:"py-20 px-4",style:{backgroundColor:"#1a3a4a"},children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx("h2",{className:"text-4xl md:text-5xl font-serif font-bold mb-4",style:{color:"#f0e8d8"},children:"Essential Planning Tips"}),r.jsx("p",{className:"text-lg max-w-2xl mx-auto",style:{color:"#a8d5d1"},children:"Make the most of your trip to Astoria with these local insights and practical recommendations."})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:R2e.map((e,t)=>r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:t*.1},className:"p-6 rounded-2xl border",style:{backgroundColor:"rgba(240, 232, 216, 0.05)",borderColor:"#2e7d8a"},children:[r.jsx("div",{className:"mb-4 inline-block p-3 rounded-lg",style:{backgroundColor:"#2e7d8a",color:"#f0e8d8"},children:e.icon}),r.jsx("h3",{className:"text-xl font-serif font-bold mb-3",style:{color:"#f0e8d8"},children:e.title}),r.jsx("p",{className:"font-serif leading-relaxed",style:{color:"#e8eff2"},children:e.description})]},t))})]})}),M2e=e=>e?.toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w-]/g,"")||"",Yx=({restaurant:e})=>r.jsxs("div",{id:M2e(e?.name),className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md scroll-mt-24",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),z6=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),L2e=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,5),a=e.slice(5,7),i=e.slice(7);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Astoria"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From fresh-off-the-boat seafood and world-class breweries to cozy cafes in converted canneries, Astoria is a foodie's paradise."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Fine Dining & Seafood"}),r.jsx("div",{className:"grid gap-6",children:t.map((s,o)=>r.jsx(Yx,{restaurant:s},o))})]}),r.jsx(z6,{src:"https://images.unsplash.com/photo-1693360344887-306a6a7089fb?auto=format&fit=crop&w=800&q=80",alt:"Fresh seafood plate",caption:"Fresh catch of the day served with river views"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(z6,{src:"https://images.unsplash.com/photo-1542835497-a6813df96ed9?auto=format&fit=crop&w=800&q=80",alt:"Craft brewery interior",caption:"Astoria's legendary craft beer scene"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Breweries & Pubs"}),r.jsx("div",{className:"grid gap-6",children:n.map((s,o)=>r.jsx(Yx,{restaurant:s},o))})]})]}),r.jsxs("div",{className:"grid md:grid-cols-3 gap-6 mb-16",children:[r.jsx("div",{className:"md:col-span-3 text-center mb-4",children:r.jsx("h3",{className:"text-2xl font-bold text-orange-900 inline-block",children:"Local Favorites"})}),a.map((s,o)=>r.jsx(Yx,{restaurant:s},o)),r.jsx("div",{className:"h-full min-h-[200px] rounded-xl overflow-hidden shadow-md",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1614103862009-d13eff600b53?auto=format&fit=crop&w=600&q=80",alt:"Fish and chips",className:"w-full h-full object-cover"})})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Cafes, Sweets & Light Bites"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:i.map((s,o)=>r.jsx(Yx,{restaurant:s},o))}),r.jsx("div",{className:"mt-8 text-center",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1696454599321-ba09c1927f56?auto=format&fit=crop&w=1200&h=300&q=80",alt:"Bakery treats",className:"w-full h-48 object-cover rounded-xl opacity-90"})})]})]})})},D2e=[{title:"Astoria Second Saturday Art Walk",date:"Monthly (Every 2nd Saturday)"},{title:"Great Columbia Crossing",date:"October 11, 2026"},{title:"FisherPoets Gathering",date:"February 26–28, 2027"},{title:"Astoria Scandinavian Midsummer",date:"June 18–20, 2027"},{title:"Astoria Regatta",date:"August 11–15, 2027"},{title:"Rigs & Reggae",date:"August 2027"}],B2e=()=>{const[e,t]=v.useState(!1),{data:n}=k2e("Astoria"),a=Yn();v.useEffect(()=>{console.log("AstoriaPage mounted"),window.location.search.includes("debug=true")&&(t(!0),console.log("🌊 [AstoriaPage Debug] Tide Data at Render:",n))},[n]);const i=ke.astoria,s=lt("Astoria"),o=ct("Astoria"),l=kl(a.pathname),c=jn.astoria;return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:s}),r.jsx("meta",{name:"description",content:o}),r.jsx("link",{rel:"canonical",href:l}),r.jsx("meta",{property:"og:title",content:s}),r.jsx("meta",{property:"og:description",content:o})]}),r.jsx(ut,{}),r.jsx(Ge,{}),e&&r.jsxs("div",{className:"bg-amber-100 border-b border-amber-300 p-4 text-amber-900 text-sm font-mono shadow-inner",children:[r.jsx("h4",{className:"font-bold mb-2 uppercase",children:"ðŸ› ï¸ Tide Data Debug View Active"}),r.jsx("p",{className:"mb-2",children:"Comparing raw payload vs UI processed payload. If offset by ~50 mins, HTML scraper is grabbing wrong lunar day."}),r.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[r.jsxs("div",{className:"bg-white/50 p-2 rounded",children:[r.jsx("strong",{children:"Raw First Entry:"}),r.jsx("br",{}),n?.[0]?._rawDebug||"Loading..."]}),r.jsxs("div",{className:"bg-white/50 p-2 rounded",children:[r.jsx("strong",{children:"Processed Display Time:"}),r.jsx("br",{}),r.jsx("span",{"data-raw-time":n?.[0]?.time,children:n?.[0]?.displayTime||"Loading..."})]})]})]}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:c,alt:"Astoria, Oregon waterfront",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Astoria"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Astoria"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Astoria Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:_se}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Located where the Columbia River meets the Pacific Ocean, Astoria is the oldest American settlement west of the Rocky Mountains."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:i?.geo.lat||46.1878,lon:i?.geo.lng||-123.8244,townName:"Astoria"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(x2e,{showDetails:!0,children:r.jsx(ft,{townName:"Astoria",townSlug:"astoria",lat:i?.geo.lat||46.1878,lon:i?.geo.lng||-123.8244})})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Astoria",featuredImage:c,title:"Astoria in Photos"})}),r.jsx(dt,{attractions:kN,townName:"Astoria"}),r.jsx(C2e,{attractions:kN}),r.jsx(P2e,{trails:q8}),r.jsx($r,{events:D2e}),r.jsx(O2e,{}),r.jsx(L2e,{restaurants:G8}),r.jsx(I2e,{})]}),r.jsx(Ye,{})]})},F2e=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),z2e=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Discover the Magic"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Bandon"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(F2e,{attraction:t,index:n},n))})]})})),$2e=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},H2e=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Beach Walks"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Explore Bandon's stunning coastline and dunes. From easy boardwalks in Old Town to miles of sandy trekking past sea stacks."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx($2e,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),W2e=({hotels:e})=>{const t="Bandon",n=["Bandon Dunes Golf Resort","Lamplighter Inn","Windermere on the Beach"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},Jx=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),$6=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),V2e=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,5),a=e.slice(5,8),i=e.slice(8);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Bandon"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Fresh Dungeness crab, artisan chocolates, and world-class chowder. Bandon's culinary scene punches well above its weight class."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Boardwalk & Seafood"}),r.jsx("div",{className:"grid gap-6",children:t.map((s,o)=>r.jsx(Jx,{restaurant:s},o))})]}),r.jsx($6,{src:"https://images.unsplash.com/photo-1572593455878-b46c49ba79cc",alt:"Fresh catch right off the boat",caption:"Fresh catch right off the boat"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx($6,{src:"https://images.unsplash.com/photo-1571091718767-18b5b1457add?auto=format&fit=crop&w=800&q=80",alt:"Fine dining plate",caption:"Elevated coastal cuisine"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Upscale & Wine"}),r.jsx("div",{className:"grid gap-6",children:n.map((s,o)=>r.jsx(Jx,{restaurant:s},o))})]})]}),r.jsxs("div",{className:"grid md:grid-cols-3 gap-6 mb-16",children:[r.jsx("div",{className:"md:col-span-3 text-center mb-4",children:r.jsx("h3",{className:"text-2xl font-bold text-orange-900 inline-block",children:"Pubs & Sweets"})}),a.map((s,o)=>r.jsx(Jx,{restaurant:s},o)),r.jsx("div",{className:"h-full min-h-[200px] rounded-xl overflow-hidden shadow-md",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=600&q=80",alt:"Clam chowder bowl",className:"w-full h-full object-cover"})})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Dining with a View"}),r.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:i.map((s,o)=>r.jsx(Jx,{restaurant:s},o))}),r.jsx("div",{className:"mt-8 text-center",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1549294413-26f195200c16?auto=format&fit=crop&w=1200&h=300&q=80",alt:"Sunset dining view",className:"w-full h-48 object-cover rounded-xl opacity-90"})})]})]})})},U2e=[{title:"Bandon Cranberry Festival",date:"September 11–13, 2026"},{title:"Bandon Fringe Festival",date:"June 25–28, 2027"},{title:"Circles in the Sand",date:"Monthly (Dates vary)"},{title:"Art by the Sea Gallery Receptions",date:"First Saturdays monthly"}],q2e=()=>{v.useEffect(()=>{console.log("BandonPage mounted")},[]);const e=ke.bandon,t=lt("Bandon"),n=ct("Bandon"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/5b77b21e59bd04defe28f5074f5126d6.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Bandon, Oregon coastline with sea stacks",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Bandon"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Bandon"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Bandon Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:Ose}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Located on the beautiful Southern Oregon Coast, Bandon offers unforgettable scenic views, golf, and sea stacks."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo.lat||43.1189,lon:e?.geo.lng||-124.4172,townName:"Bandon"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Bandon",townSlug:"bandon",lat:e?.geo.lat||43.1189,lon:e?.geo.lng||-124.4172})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Bandon",featuredImage:a,title:"Bandon in Photos"})}),r.jsx(dt,{attractions:TN,townName:"Bandon"}),r.jsx(z2e,{attractions:TN}),r.jsx(H2e,{trails:eB}),r.jsx($r,{events:U2e}),r.jsx(W2e,{hotels:Rse}),r.jsx(V2e,{restaurants:tB})]}),r.jsx(Ye,{})]})},G2e=`Perched on the eastern shore of Tillamook Bay, Bay City is a quiet, authentic coastal community that celebrates its deep connection to the water and the land. Known primarily for its world-class oysters and the stunning Kilchis Point Reserve, this small town offers a peaceful alternative to the busier tourist hubs on the coast. It's a place where history, industry, and nature converge, inviting visitors to slow down and appreciate the subtle beauty of the estuary.
Bay City's heart beats in its oyster processing facilities, where the famous Pacific Oyster has been harvested for generations. The town is also the gateway to some of the region's best hiking and birdwatching, particularly at the Kilchis Point Reserve, a 200-acre interpretive site that tells the story of the Tillamook County pioneers and the Native Americans who first called this land home. With its panoramic views of the bay, access to fresh seafood, and friendly small-town atmosphere, Bay City is a perfect destination for foodies, history buffs, and nature lovers alike.`,H6=[{name:"Kilchis Point Reserve",description:"A cultural and natural jewel of Tillamook Bay. This 200-acre reserve features interpretive trails that wind through native spruce forests and wetlands, leading to a stunning view of the bay. It preserves the site of one of the largest Native American villages on the Oregon Coast.",details:"Nature & History"},{name:"Pacific Oyster",description:"The hub of Bay City's seafood industry. Visit the processing plant and market to see shuckers in action and buy the freshest oysters, clams, and crab available. The on-site restaurant, The Fish Peddler, is legendary.",details:"Seafood Market"},{name:"Tillamook Country Smoker",description:"Home of the famous jerky found in stores nationwide. The factory outlet store in Bay City offers great deals on pepperoni sticks, jerky, and other smoked meats, making it a popular stop for road trip snacks.",details:"Factory Outlet"},{name:"Bay City Arts Center",description:"A vibrant community hub hosting art classes, concerts, pancakes breakfasts, and local theater productions. It's the cultural heart of the town, bringing residents and visitors together through creativity.",details:"Community Arts"},{name:"Goose Point",description:"Located just south of town, this recreation area offers excellent access for fishing, crabbing, and kayaking. It's a prime spot for birdwatching, with herons, egrets, and waterfowl frequently spotted in the estuary.",details:"Outdoor Recreation"},{name:"Al Griffin Memorial Park",description:"A family-friendly park featuring a popular skate park, tennis courts, playground equipment, and picnic areas. It's a great spot for kids to burn off energy while parents enjoy the coastal air.",details:"City Park"},{name:"Hayes Oyster Drive",description:"A scenic route along the bay that offers intimate views of the oyster beds and the tidal flats. It's a quiet drive or bike ride that showcases the working waterfront character of Bay City.",details:"Scenic Drive"},{name:"Tillamook Bay",description:"The dominant feature of the landscape. Bay City offers multiple access points for dropping a crab pot, launching a kayak, or simply watching the tide roll in over the vast mudflats.",details:"Water Access"}],K2e=[{name:"Kilchis Point Reserve Loop",distance:"2.0 miles",difficulty:"Easy",elevation:"Flat",description:"The premier hike in Bay City. A paved and gravel interpretive trail that is wheelchair accessible, taking you through three distinct ecosystems to the bay's edge."},{name:"Flora & Fauna Trail",distance:"1.0 miles",difficulty:"Easy",elevation:"Flat",description:"A specialized loop within the Kilchis Point Reserve focusing on the native plants and wildlife of the region. Great for educational walks with children."},{name:"Bayshore Loop",distance:"1.5 miles",difficulty:"Easy",elevation:"Minimal",description:"A pleasant walk along the waterfront and through the quiet streets of Bay City, offering constant views of the water and the distant Cape Meares."},{name:"Wilson River Trail (Nearby)",distance:"Varies",difficulty:"Moderate",elevation:"Varies",description:"Located a short drive east, this trail system follows the Wilson River, offering swimming holes, waterfalls, and lush forest scenery."},{name:"Munson Creek Falls (Nearby)",distance:"0.6 miles",difficulty:"Easy",elevation:"100 ft",description:"Just south of Bay City, hike to the base of the tallest waterfall in the Coast Range. The trail winds through an old-growth forest to the 319-foot cascade."},{name:"Tillamook State Forest (Nearby)",distance:"Unlimited",difficulty:"Varies",elevation:"Varies",description:"Bay City serves as a western gateway to this massive forest, offering endless logging roads and trails for hikers, mountain bikers, and off-road enthusiasts."}],Z2e=[{name:"Sheltered Nook on Tillamook Bay",category:"Tiny Homes",description:"A unique lodging experience featuring a village of fully equipped tiny homes. Focuses on sustainability and community, with a central fire pit and easy access to the bay.",amenities:"Kitchens, Pet Friendly"},{name:"Bay City Motor Inn",category:"Motel",description:"A reliable, budget-friendly option located right on Highway 101. Offers clean, no-frills rooms perfect for anglers and travelers passing through.",amenities:"WiFi, Free Parking"},{name:"Edgewater Cottages (Nearby)",category:"Cottages",description:"Charming beachfront cottages located just down the road. They offer a rustic, cozy feel with direct access to the sandy shores of the bay.",amenities:"Beachfront, Kitchens"},{name:"Camping at Kilchis River Park",category:"Campground",description:"Located a few miles inland, this county park offers beautiful camping spots right on the riverbank. serene and popular with fishermen.",amenities:"River Access, Fishing"},{name:"Bay City Vacation Rentals",category:"Vacation Homes",description:"A variety of private homes available for rent, many perched on the hillside offering sweeping views of the bay and the spit.",amenities:"Views, Privacy"},{name:"Pleasant Valley RV Park",category:"RV Park",description:"A quiet RV park located south of town in a rural setting. Offers full hookups and a peaceful base for exploring the Tillamook Coast.",amenities:"Full Hookups, Quiet"}],Y2e=[{name:"The Fish Peddler",category:"Seafood",description:"The crown jewel of Bay City dining. Located at Pacific Oyster, serving the freshest oysters and clam chowder you can find. Watch the shuckers work while you eat.",features:"Fresh Oysters, View"},{name:"Downie's Cafe",category:"Diner",description:"A classic American diner known for its hearty breakfasts and homemade pies. A favorite among locals for its friendly service and comfort food.",features:"Breakfast, Homemade Pie"},{name:"Tacos La Providencia",category:"Mexican",description:"A highly-rated food truck/stand offering authentic Mexican street food. Known for delicious tacos, burritos, and spicy salsas.",features:"Authentic, Food Truck"},{name:"Tillamook Country Smoker Outlet",category:"Snacks/Deli",description:"While primarily a shop, they offer fresh deli items and their world-famous pepperoni sticks. The perfect stop for a quick, savory lunch on the go.",features:"Jerky, Quick Bites"},{name:"Schooner Restaurant & Lounge (Nearby)",category:"Seafood/Grill",description:"Located just across the bay in Netarts, but a favorite for Bay City visitors seeking a sit-down dinner with a view and fresh local ingredients.",features:"Bay View, Cocktails"}],J2e=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-cyan-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-cyan-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-cyan-700 bg-cyan-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),X2e=({attractions:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("AttractionsSection: No attractions data provided")},[e]),!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-cyan-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-cyan-600 font-bold tracking-wider uppercase text-sm",children:"Discover the Bay"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Bay City Attractions"}),r.jsx("div",{className:"h-1 w-24 bg-cyan-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:e.map((t,n)=>r.jsx(J2e,{attraction:t,index:n},n))})]})})),Q2e=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},e_e=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-cyan-600"}),"Nature Trails & Walks"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Explore the unique ecosystems of Tillamook Bay, from wetland boardwalks to forest paths."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-cyan-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(Q2e,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),t_e=({hotels:e})=>{const t="Bay City",n=["Camping at Kilchis River Park","Bay City Vacation Rentals","Pleasant Valley RV Park","Coming Soon","Sheltered Nook on Tillamook Bay","Bay City Motor Inn","Edgewater Cottages (Nearby)"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},G1=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-cyan-100 hover:border-cyan-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-cyan-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-cyan-600 bg-cyan-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-cyan-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-cyan-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),W6=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-cyan-500 pl-3",children:n})})]}),n_e=({restaurants:e})=>{if(v.useEffect(()=>{(!e||e.length===0)&&console.warn("RestaurantsSection: No restaurant data provided")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-cyan-50 text-center",children:r.jsx("p",{className:"text-cyan-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2,4),a=e.slice(4);return r.jsx("section",{className:"py-24 px-4 bg-cyan-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-cyan-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Bay City"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Taste the world-famous Pacific Oyster right at the source, or enjoy hearty comfort food at local favorites."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-cyan-900 border-b-2 border-cyan-200 pb-2 inline-block",children:"Fresh Seafood"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(G1,{restaurant:i},s))})]}),r.jsx(W6,{src:"https://images.unsplash.com/photo-1615141982880-19ed7e6656fa?auto=format&fit=crop&w=800&q=80",alt:"Oysters",caption:"World-famous fresh oysters"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(W6,{src:"https://images.unsplash.com/photo-1555939594-58d7cb561ad1?auto=format&fit=crop&w=800&q=80",alt:"Casual dining",caption:"Local comfort food"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-cyan-900 border-b-2 border-cyan-200 pb-2 inline-block ml-auto",children:"Casual & Authentic"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(G1,{restaurant:i},s))})]})]}),a.length>0&&r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-cyan-900 mb-8 text-center",children:"More Local Bites"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:a.map((i,s)=>r.jsx(G1,{restaurant:i},s))})]})]})})},r_e=()=>{v.useEffect(()=>{console.log("BayCityPage mounted")},[]);const e=ke["bay-city"],t=lt("Bay City"),n=ct("Bay City"),a=jn["bay-city"];return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Bay City, Oregon coastline",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Bay City"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Bay City"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Bay City Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:G2e}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Located on Tillamook Bay, Bay City is famous for its oyster industry and beautiful coastal scenery."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo.lat||45.5222,lon:e?.geo.lng||-123.8893,townName:"Bay City"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Bay City",townSlug:"bay-city",lat:e?.geo.lat||45.5222,lon:e?.geo.lng||-123.8893})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Bay City",featuredImage:a,title:"Bay City in Photos"})}),r.jsx(dt,{attractions:H6,townName:"Bay City"}),r.jsx(X2e,{attractions:H6}),r.jsx(e_e,{trails:K2e}),r.jsx(t_e,{hotels:Z2e}),r.jsx(n_e,{restaurants:Y2e})]}),r.jsx(Ye,{})]})},a_e=`Welcome to Brookings, the "Banana Belt" of the Oregon Coast. Located just six miles north of the California border, this charming city enjoys the warmest temperatures on the coastline, often basking in sunshine while neighbors to the north are shrouded in fog. This unique microclimate allows vibrant azaleas to bloom in winter and makes year-round outdoor exploration a delight.
Brookings is the gateway to the spectacular Samuel H. Boardman State Scenic Corridor, a 12-mile stretch of coastline that is widely considered the most photographer-friendly in the Pacific Northwest. Here, massive sea stacks, natural rock arches, and secluded coves create a dramatic seascape that feels prehistoric in its grandeur. The famous Natural Bridges and Secret Beach offer views that adorn postcards and travel magazines worldwide.
Beyond the coast, the pristine Chetco River flows from the Kalmiopsis Wilderness down to the sea, offering crystal-clear emerald waters for swimming, kayaking, and world-class salmon fishing. Whether you're exploring the meticulously manicured Azalea Park, hunting for agates at Sporthaven Beach, or dining on fresh seafood at the Port of Brookings Harbor, you'll find a relaxed, warm, and welcoming atmosphere at the southern edge of Oregon.`,V6=[{name:"Samuel H. Boardman State Scenic Corridor",description:"A breathtaking 12-mile stretch of rugged coastline featuring some of Oregon's most iconic natural wonders. Stops like Arch Rock, Natural Bridges, and Whaleshead Beach offer dizzying views of sea stacks and crashing waves.",details:"Multiple pullouts along Hwy 101. Free access."},{name:"Harris Beach State Park",description:"Located just north of town, this popular park features a long sandy beach scattered with impressive rock formations. It's a prime spot for tide pooling, kite flying, and watching the sunset behind Bird Island (Goat Island), a National Wildlife Sanctuary.",details:"Day-use fee or state park pass required."},{name:"Azalea Park",description:"The crown jewel of Brookings' parks, famous for its native wild azaleas that explode with color in spring. The park also features a bandshell for summer concerts, a formal garden, and the spectacular 'Nature's Coastal Holiday' light display in December.",details:"Located on Old County Road. Free admission."},{name:"Chetco Point Park",description:"A hidden gem accessible from a residential neighborhood. A short, flat trail leads to a grassy headland with 270-degree ocean views. It's a peaceful spot for whale watching and seeing the Port of Brookings Harbor from above.",details:"Parking at the end of Wharf Street."},{name:"Port of Brookings Harbor",description:"One of the busiest recreational ports on the Oregon Coast. It's a hub of activity with fishing charters, crab pots, seafood restaurants, and shops. Walking the boardwalk here is a classic Brookings experience.",details:"Located at the mouth of the Chetco River."},{name:"Alfred A. Loeb State Park",description:"Head inland along the Chetco River to find this lush park. It protects a grove of rare coastal redwoods (the northernmost in the US) and massive Myrtlewood trees. The emerald green river water here is stunning.",details:"8 miles east of Brookings."},{name:"Crissey Field State Recreation Site",description:"The southernmost park on the Oregon Coast, located right at the California border. A modern welcome center offers information, and trails lead to a wide, driftwood-scattered beach perfect for long walks.",details:"Excellent Welcome Center on site."},{name:"McVay Rock State Recreation Site",description:"A lesser-known park south of town offering surf fishing, clamming, and a rocky shore perfect for rockhounding. It's also home to a challenging disc golf course with ocean views.",details:"Off Oceanview Drive. Dog friendly."},{name:"Manley Art Center & Gallery",description:"Headquarters of the Pelican Bay Arts Association, this gallery showcases the vibrant local art scene. Brookings has a high concentration of artists drawn by the stunning landscape, and this is the best place to see their work.",details:"Workshops and rotating exhibits available."},{name:"Sporthaven Beach",description:"Located on the north jetty of the Chetco River, this beach is a favorite for surfers and campers. The jetty offers a great vantage point to watch fishing boats navigate the bar.",details:"RV park and camping available nearby."}],i_e=[{name:"Natural Bridges Trail",distance:"0.7 miles round trip",difficulty:"Moderate",description:"A short but steep trail in the Boardman Corridor that leads to the famous viewpoint of the seven natural rock arches. The trail can be root-filled and slippery, but the view is one of the most photographed in Oregon."},{name:"Secret Beach Trail",distance:"1.6 miles round trip",difficulty:"Moderate/Hard",description:"A steep descent takes you to a secluded cove tucked away from the highway. At low tide, you can explore caves and waterfalls cascading onto the sand. It feels like a private paradise."},{name:"Redwood Nature Trail",distance:"1.2 miles loop",difficulty:"Easy",description:"Located in Loeb State Park, this accessible trail winds through a grove of majestic coastal redwoods and fragrant Myrtlewood trees. It's a magical, fern-filled forest walk."},{name:"Arch Rock Viewpoint",distance:"0.5 miles loop",difficulty:"Easy",description:"A paved, family-friendly loop offering several viewpoints of Arch Rock and the surrounding sea stacks. It's the easiest way to experience the grandeur of the Samuel H. Boardman Corridor."},{name:"Cape Ferrelo Loop",distance:"1.0 mile loop",difficulty:"Moderate",description:"A grassy headland hike offering sweeping views north and south. It's an excellent spot for whale watching during migration seasons and seeing the rugged coastline stretch for miles."},{name:"Chetco Point Trail",distance:"0.8 miles round trip",difficulty:"Easy",description:"A flat, relaxing walk through a park to a dramatic cliff-edge viewpoint. You're surrounded by ocean on three sides, making it a fantastic spot for sunset."},{name:"Oregon Redwoods Trail",distance:"1.7 miles loop",difficulty:"Moderate",description:"Located about 11 miles inland, this trail offers a rare chance to hike among old-growth redwoods in Oregon. It's quiet, majestic, and less crowded than the California parks to the south."}],s_e=[{name:"Beachfront Inn",category:"Mid-Range",description:"True to its name, this hotel sits directly on the beach near the port. Rooms feature private balconies with ocean views, and there's a heated outdoor pool for relaxing after a day of hiking.",amenities:"Oceanfront, heated pool, pet-friendly.",image:"https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?auto=format&fit=crop&w=1200&q=80"},{name:"Whaleshead Beach Resort",category:"Vacation Rentals",description:"Located north of town across from Whaleshead Beach, offering individual cottages with full kitchens and decks. A tunnel under the highway provides safe walking access to the stunning beach.",amenities:"Private cottages, ocean views, restaurant on-site.",image:"https://images.unsplash.com/photo-1582719508461-905c673771fd?auto=format&fit=crop&w=1200&q=80"},{name:"Mermaid's Muse B&B",category:"Bed & Breakfast",description:"A charming and whimsical bed and breakfast known for its warm hospitality and delicious homemade breakfasts. The decor is eclectic and coastal, creating a cozy home-away-from-home vibe.",amenities:"Homemade breakfast, personalized service, garden.",image:"https://images.unsplash.com/photo-1566073771259-6a8506099945?auto=format&fit=crop&w=1200&q=80"},{name:"Wild Rivers Motor Lodge",category:"Budget/Retro",description:"A clean, classic motor lodge that has been updated with modern amenities while keeping its retro charm. Centrally located, making it easy to walk to shops and restaurants in town.",amenities:"Free Wi-Fi, updated rooms, central location.",image:"https://images.unsplash.com/photo-1566073771259-6a8506099945?auto=format&fit=crop&w=1200&q=80"},{name:"Ocean Suites Motel",category:"Mid-Range",description:"Offering spacious suites with kitchenettes, this is a great option for families or longer stays. It's located near the port and offers good value for the space provided.",amenities:"Kitchenettes, spacious rooms, near harbor.",image:"https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?auto=format&fit=crop&w=1200&q=80"},{name:"Pacific Sunset Inn",category:"Budget",description:"A reliable, no-nonsense inn located near the harbor. Rooms are clean and basic, perfect for travelers who plan to spend most of their time exploring the outdoors.",amenities:"Free parking, coffee, budget-friendly.",image:"https://images.unsplash.com/photo-1611892440504-42a792e24d32?auto=format&fit=crop&w=1200&q=80"},{name:"Blue Coast Inn and Suites",category:"Budget/Mid-Range",description:"Conveniently located on Highway 101, this inn offers updated rooms with a modern feel. It's a solid basecamp for exploring the Boardman Corridor and nearby Redwoods.",amenities:"Modern decor, free Wi-Fi, laundry facilities.",image:"https://images.unsplash.com/photo-1566073771259-6a8506099945?auto=format&fit=crop&w=1200&q=80"},{name:"Westward Inn",category:"Budget",description:"An affordable choice in the heart of Brookings. It offers easy access to local dining and is just a short drive from Harris Beach State Park.",amenities:"Free breakfast, pet-friendly rooms, cable TV.",image:"https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?auto=format&fit=crop&w=1200&q=80"}],o_e=[{name:"Black Trumpet Bistro",category:"Italian/Bistro",description:"A local favorite for upscale yet casual dining. They serve excellent pasta dishes, steaks, and seafood with a focus on fresh ingredients and bold flavors.",features:"Fresh pasta, romantic atmosphere, great wine list.",image:"https://images.unsplash.com/photo-1473093295043-cdd812d0e601?auto=format&fit=crop&w=800&q=80"},{name:"Oxenfrë Public House",category:"Gastropub",description:"A modern pub offering craft beers and elevated bar food. The atmosphere is relaxed and friendly, making it a great place to unwind after a hike.",features:"Craft beer, locally sourced ingredients, outdoor seating.",image:"https://images.unsplash.com/photo-1514933651103-005eec06c04b?auto=format&fit=crop&w=800&q=80"},{name:"The Hungry Clam",category:"Seafood/Casual",description:"Located at the port, this no-frills spot is famous for its fish and chips and clam chowder. It's a classic coastal eatery with picnic tables and harbor views.",features:"Fish & chips, harbor location, quick service.",image:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80"},{name:"Superfly Martini Bar & Grill",category:"Martini Bar/Fusion",description:"A hip, lively spot known for its extensive martini menu and creative fusion cuisine. From sushi burritos to gourmet sliders, the food is fun and delicious.",features:"Creative cocktails, eclectic menu, cool vibe.",image:"https://images.unsplash.com/photo-1576895250423-8270b00e731c?auto=format&fit=crop&w=800&q=80"},{name:"Chetco Brewing Company",category:"Brewery",description:"An award-winning local brewery that focuses on vegan-friendly beers (no isinglass). They often have food trucks on site and a welcoming community atmosphere.",features:"Local craft beer, food trucks, patio.",image:"https://images.unsplash.com/photo-1559526323-cb2f2fe2591b?auto=format&fit=crop&w=800&q=80"},{name:"Pacific Sushi & Grill",category:"Sushi/Asian",description:"Offering fresh sushi and Japanese dishes in a clean, modern setting. A great alternative to the standard fried seafood found on the coast.",features:"Fresh sushi, bento boxes, sake.",image:"https://images.unsplash.com/photo-1579871494447-9811cf80d66c?auto=format&fit=crop&w=800&q=80"},{name:"Misty Mountain Cafe",category:"American/Breakfast",description:"The go-to spot for a hearty breakfast in Brookings. Known for fluffy pancakes, massive omelets, and bottomless coffee served with a smile.",features:"All-day breakfast, family-friendly, comfort food.",image:"https://images.unsplash.com/photo-1606631394291-83981ee2ab5d?auto=format&fit=crop&w=800&q=80"},{name:"Catalyst Seafood",category:"Seafood/Lounge",description:"A sustainable seafood restaurant that harvests its own catch. Known for fresh poke bowls, tacos, and a great happy hour view of the harbor.",features:"Boat-to-table, sustainable, harbor views.",image:"https://images.unsplash.com/photo-1534422298391-e4f8c172dddb?auto=format&fit=crop&w=800&q=80"},{name:"Zola's Pizzeria",category:"Pizza/Italian",description:"A lively pizzeria located near the ocean, offering wood-fired pizzas and live music. The quirky decor and river views make it a fun evening spot.",features:"Vibrant nightlife and dining, wood-fired pizza, live music.",image:"https://images.unsplash.com/photo-1579751626657-72bc17010498?auto=format&fit=crop&w=800&q=80"},{name:"Fat Cat Pizza",category:"Pizza",description:"A local staple for thick-crust pizza and generous toppings. It's a casual, family-friendly environment perfect for feeding a hungry group.",features:"Hearty pizza, salad bar, arcade games.",image:"https://images.unsplash.com/photo-1513104890138-7c749659a591?auto=format&fit=crop&w=800&q=80"},{name:"Railroad Street Market & Deli",category:"Deli/Sandwiches",description:"A hidden gem for lunch, serving massive sandwiches and homemade soups in a historic building. Perfect for grabbing a picnic before hitting the Boardman Corridor.",features:"Huge sandwiches, historic building, local vibe.",image:"https://images.unsplash.com/photo-1528735602780-2552fd46c7af?auto=format&fit=crop&w=800&q=80"}],l_e=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),c_e=({attractions:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("AttractionsSection: No attractions data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Discover the Banana Belt"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Brookings"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(l_e,{attraction:t,index:n},n))})]})})),d_e=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},u_e=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From the world-famous views of the Samuel H. Boardman Corridor to ancient redwood groves just inland, Brookings offers some of the most diverse hiking on the coast."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(d_e,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),h_e=({hotels:e})=>{const t="Brookings";return r.jsx(mt,{townName:t,fallbackHotels:e,affiliateHotels:st[t]})},f_e=e=>e?.toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w-]/g,"")||"",Xx=({restaurant:e})=>r.jsxs("div",{id:f_e(e?.name),className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md scroll-mt-24 h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),U6=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),m_e=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,5),a=e.slice(5,7),i=e.slice(7);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Brookings"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From fresh harbor seafood to artisan pizza and martinis, Brookings offers a diverse culinary scene fueled by fresh ingredients and coastal vibes."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Fine Dining & Seafood"}),r.jsx("div",{className:"grid gap-6",children:t.map((s,o)=>r.jsx(Xx,{restaurant:s},o))})]}),r.jsx(U6,{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80",alt:"Seafood dining",caption:"Fresh catches served daily"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(U6,{src:"https://images.unsplash.com/photo-1503036563073-2cb917c92818?auto=format&fit=crop&w=800&q=80",alt:"vibrant nightlife and dining atmosphere",caption:"Vibrant nightlife and dining"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Breweries & Pubs"}),r.jsx("div",{className:"grid gap-6",children:n.map((s,o)=>r.jsx(Xx,{restaurant:s},o))})]})]}),r.jsxs("div",{className:"grid md:grid-cols-3 gap-6 mb-16",children:[r.jsx("div",{className:"md:col-span-3 text-center mb-4",children:r.jsx("h3",{className:"text-2xl font-bold text-orange-900 inline-block",children:"Local Favorites"})}),a.map((s,o)=>r.jsx(Xx,{restaurant:s},o)),r.jsx("div",{className:"h-full min-h-[200px] rounded-xl overflow-hidden shadow-md",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1563245372-f21724e3856d?auto=format&fit=crop&w=600&q=80",alt:"Delicious coastal meal",className:"w-full h-full object-cover"})})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Quick Bites & Pizza"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:i.map((s,o)=>r.jsx(Xx,{restaurant:s},o))}),r.jsx("div",{className:"mt-8 text-center",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1513104890138-7c749659a591?auto=format&fit=crop&w=1200&h=300&q=80",alt:"Pizza and quick bites",className:"w-full h-48 object-cover rounded-xl opacity-90"})})]})]})})},p_e=[{title:"Pirates of the Pacific Festival",date:"August 7–9, 2026"},{title:"Second Saturday Art Walk",date:"Monthly"},{title:"Azalea Festival",date:"May 21–24, 2027"},{title:"Brookings Summer Arts Festival",date:"July 10–11, 2027"}],g_e=()=>{v.useEffect(()=>{console.log("BrookingsPage mounted")},[]);const e=ke.brookings,t=lt("Brookings"),n=ct("Brookings"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/d70e7940aab86e455bd557529fff3fdd.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Brookings, Oregon",description:n,url:"https://oregoncoastal.com/town/brookings",geo:{lat:42.0534,lng:-124.2844},image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Brookings coastline with sea stacks",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Brookings",region:"South Coast"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Brookings"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Brookings Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:a_e}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Located in the Banana Belt of the Oregon Coast, Brookings offers incredible scenery and a uniquely warm coastal climate."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo.lat||42.0534,lon:e?.geo.lng||-124.2844,townName:"Brookings"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Brookings",townSlug:"brookings",lat:e?.geo.lat||42.0534,lon:e?.geo.lng||-124.2844})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Brookings",featuredImage:a,title:"Brookings in Photos"})}),r.jsx(dt,{attractions:V6,townName:"Brookings"}),r.jsx(c_e,{attractions:V6}),r.jsx(u_e,{trails:i_e}),r.jsx($r,{events:p_e}),r.jsx(h_e,{hotels:s_e}),r.jsx(m_e,{restaurants:o_e})]}),r.jsx(Ye,{})]})},x_e=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-amber-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-amber-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-amber-700 bg-amber-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),y_e=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-amber-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-amber-600 font-bold tracking-wider uppercase text-sm",children:"Iconic Landmarks & Art"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Cannon Beach"}),r.jsx("div",{className:"h-1 w-24 bg-amber-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8",children:e.map((t,n)=>r.jsx(x_e,{attraction:t,index:n},n))})]})})),v_e=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-teal-100 text-teal-800 border-teal-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},b_e=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-teal-600"}),"Hiking Trails & State Parks"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Cannon Beach is surrounded by natural wonders. Explore old-growth forests in Ecola State Park, walk miles of sandy beach, or climb for panoramic ocean views."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(v_e,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),w_e=({hotels:e})=>{const t="Cannon Beach";return r.jsx(mt,{townName:t,fallbackHotels:e,affiliateHotels:st[t]})},Qx=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-red-100 hover:border-red-300 transition-all shadow-sm hover:shadow-md h-full",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-red-950",children:e?.name||"Restaurant Name"}),e?.cuisine&&r.jsx("span",{className:"text-xs font-medium text-red-600 bg-red-100 px-2 py-1 rounded-md",children:e.cuisine})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.price&&r.jsxs("div",{className:"pt-3 border-t border-red-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-red-800 uppercase tracking-wide",children:"Price Range"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.price})]})]}),q6=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-red-500 pl-3",children:n})})]}),j_e=({restaurants:e})=>{const t=e||[];if(v.useEffect(()=>{!t||t.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",t.length,"items")},[t]),!t||t.length===0)return r.jsx("section",{className:"py-24 px-4 bg-[hsl(var(--cream-bg))] text-center",children:r.jsx("p",{className:"text-red-900",children:"Dining information currently unavailable."})});const n=t.filter(c=>c.name.toLowerCase().includes("fine")||c.name.toLowerCase().includes("ocean")).slice(0,2),a=t.filter(c=>c.name.toLowerCase().includes("brew")||c.name.toLowerCase().includes("pub")||c.name.toLowerCase().includes("bill")).slice(0,2),i=[...n,...a].map(c=>c.name),s=t.filter(c=>!i.includes(c.name)),o=s.filter(c=>!c.name.toLowerCase().includes("cafe")&&!c.name.toLowerCase().includes("coffee")),l=s.filter(c=>c.name.toLowerCase().includes("cafe")||c.name.toLowerCase().includes("coffee"));return r.jsx("section",{className:"py-24 px-4 bg-[hsl(var(--cream-bg))]",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-red-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Cannon Beach"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"A culinary destination offering everything from award-winning seafood with ocean views to cozy coffee shops and vibrant breweries."})]}),n.length>0&&r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-red-900 border-b-2 border-red-200 pb-2 inline-block",children:"Oceanfront & Fine Dining"}),r.jsx("div",{className:"grid gap-6",children:n.map((c,h)=>r.jsx(Qx,{restaurant:c},h))})]}),r.jsx(q6,{src:"https://images.unsplash.com/photo-1514362545857-3bc16c4c7d1b?auto=format&fit=crop&w=800&q=80",alt:"Fine dining with view",caption:"Dinner with a view of Haystack Rock"})]}),a.length>0&&r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(q6,{src:"https://images.unsplash.com/photo-1571091718767-18b5b1457add?auto=format&fit=crop&w=800&q=80",alt:"Brewery burgers",caption:"Local brews and gourmet burgers"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-red-900 border-b-2 border-red-200 pb-2 inline-block",children:"Breweries & Pubs"}),r.jsx("div",{className:"grid gap-6",children:a.map((c,h)=>r.jsx(Qx,{restaurant:c},h))})]})]}),r.jsxs("div",{className:"mb-16",children:[r.jsx("div",{className:"text-center mb-8",children:r.jsx("h3",{className:"text-2xl font-bold text-red-900 inline-block border-b-2 border-red-200 pb-1",children:"Casual Favorites & Local Gems"})}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:o.map((c,h)=>r.jsx(Qx,{restaurant:c},h))})]}),l.length>0&&r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-red-900 mb-8 text-center",children:"Coffee, Crepes & Cafes"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:l.map((c,h)=>r.jsx(Qx,{restaurant:c},h))})]})]})})},N_e="https://whalewatching.live/api/status",K1="rubythepomsky",k_e=12e4,__e="https://www.tiktok.com/@rubythepomsky?_r=1&_t=ZT-99ooRl62xnK",S_e="https://youtube.com/@rubythepomsky?si=SDIi_X2bdW9EtQMA",C_e="https://whalewatching.live/api/social-stats",T_e=1440*60*1e3,G6={tiktok:{label:"—",unit:"followers"},youtube:{label:"—",unit:"subscribers"}},Jf=[{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/514d0d84e446464f493d8c2b07b164df.jpg",alt:"Ruby the Pomsky One Hour Club lifetime member congratulatory postcard from Cannon Beach, Oregon"},{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/517ef5b22ea6975de460e9a40bace5be.jpg",alt:"The One Hour Club poster with Shawn and Ruby the Pomsky on Cannon Beach at sunrise"},{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/b470af0234a371ead0ecc3f047705e82.jpg",alt:"Greetings from Cannon Beach Oregon postcard welcoming first day friends to Ruby's Sunrise Hour"},{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e66d501a77226fb9d30bf8eaaf2be983.jpg",alt:"Ruby the Pomsky TikTok profile showing Ruby's Sunrise Hour from Cannon Beach, Oregon"},{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/a97bd31e91544680ebd95181268a2cc4.jpg",alt:"Short Sands Beach Oregon Coast sunset postcard from Ruby and Shawn"},{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/4d0aeec6cd7afd97ef28a218f5d2fb49.jpg",alt:"The One Hour Club driftwood frame photo of Shawn and Ruby the Pomsky at Cannon Beach sunset"}],A_e=[{label:"YouTube",href:"https://youtube.com/@rubythepomsky?si=SDIi_X2bdW9EtQMA"},{label:"TikTok",href:"https://www.tiktok.com/@rubythepomsky?_r=1&_t=ZT-99ooRl62xnK"},{label:"Website",href:"https://www.rubythepomsky.com"}],P_e=5e3,E_e=()=>{const[e,t]=v.useState(0),[n,a]=v.useState(!1),[i,s]=v.useState(1),o=Jf.length,l=v.useRef(null),[c,h]=v.useState(!1),[m,p]=v.useState(null),[x,b]=v.useState(null),[j,N]=v.useState(!0),[_,S]=v.useState(null),[A,P]=v.useState(G6.tiktok),[I,O]=v.useState(G6.youtube),[M,z]=v.useState(null),$=v.useCallback(async()=>{try{const H=await fetch(C_e,{headers:{Accept:"application/json"}});if(!H.ok)throw new Error(`HTTP ${H.status}`);const Q=await H.json(),W=Array.isArray(Q?.stats)?Q.stats:[],ie=we=>String(we||"").replace(/^@+/,"").trim().toLowerCase(),Y=we=>W.find(Fe=>String(Fe?.platform||"").toLowerCase()===we&&ie(Fe?.handle||Fe?.username)===K1),V=Y("tiktok");V&&(V.follower_label||V.follower_count!=null)&&P({label:V.follower_label||String(V.follower_count),unit:"followers"});const re=Y("youtube");re&&(re.follower_label||re.follower_count!=null)&&O({label:re.follower_label||String(re.follower_count),unit:"subscribers"});const ge=W.filter(we=>ie(we?.handle||we?.username)===K1).map(we=>we?.checked_at).filter(Boolean).sort(),Ne=ge.length?ge[ge.length-1]:Q?.checked_at;if(Ne){const we=new Date(Ne);z(Number.isNaN(we.getTime())?null:we)}}catch{}},[]),K=v.useCallback(async()=>{try{const H=await fetch(N_e,{headers:{Accept:"application/json"}});if(!H.ok)throw new Error(`HTTP ${H.status}`);const Q=await H.json(),ie=(Array.isArray(Q?.lives)?Q.lives:[]).find(V=>String(V?.username||"").toLowerCase()===K1&&V?.is_live===!0);h(!!ie);const Y=ie?String(ie?.platform||"").toLowerCase():null;p(Y||null),b(ie?.stream_url||null),S(new Date)}catch{S(new Date)}finally{N(!1)}},[]);v.useEffect(()=>{K();const H=setInterval(K,k_e);return()=>clearInterval(H)},[K]),v.useEffect(()=>{$();const H=setInterval($,T_e);return()=>clearInterval(H)},[$]);const X=v.useCallback((H,Q=1)=>{s(Q),t((H%o+o)%o)},[o]),te=v.useCallback(()=>X(e+1,1),[X,e]),q=v.useCallback(()=>X(e-1,-1),[X,e]);v.useEffect(()=>{if(n||o<=1)return;const H=setInterval(()=>{s(1),t(Q=>(Q+1)%o)},P_e);return()=>clearInterval(H)},[n,o]);const he=H=>{l.current=H.changedTouches[0].clientX},ne=H=>{if(l.current==null)return;const Q=H.changedTouches[0].clientX-l.current;l.current=null,!(Math.abs(Q)<40)&&(Q<0?te():q())},G={enter:H=>({opacity:0,x:H>0?28:-28}),center:{opacity:1,x:0},exit:H=>({opacity:0,x:H>0?-28:28})};return r.jsx("section",{className:"relative py-14 md:py-20 px-4 bg-[hsl(var(--cream-bg))] border-b border-[hsl(var(--border))]","aria-labelledby":"ruby-pomsky-heading",children:r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 min-[900px]:grid-cols-[55fr_45fr] gap-8 min-[900px]:gap-12 items-center",children:[r.jsxs("div",{className:"relative w-full",onMouseEnter:()=>a(!0),onMouseLeave:()=>a(!1),onFocusCapture:()=>a(!0),onBlurCapture:H=>{H.currentTarget.contains(H.relatedTarget)||a(!1)},children:[r.jsxs("div",{className:"relative aspect-[4/3] w-full overflow-hidden rounded-sm bg-[#1a2a32] shadow-editorial ring-1 ring-black/10",onTouchStart:he,onTouchEnd:ne,role:"group","aria-roledescription":"carousel","aria-label":"Ruby the Pomsky postcards",children:[r.jsx(ka,{initial:!1,custom:i,mode:"wait",children:r.jsx(F.img,{src:Jf[e].src,alt:Jf[e].alt,custom:i,variants:G,initial:"enter",animate:"center",exit:"exit",transition:{duration:.45,ease:"easeOut"},className:"absolute inset-0 h-full w-full object-contain bg-[#f5f0e6]",draggable:!1},Jf[e].src)}),r.jsx("button",{type:"button",onClick:q,"aria-label":"Previous postcard",className:"absolute left-2 top-1/2 z-10 -translate-y-1/2 flex h-11 w-11 items-center justify-center rounded-full bg-[var(--nav-bg)]/80 text-white shadow-md backdrop-blur-sm transition hover:bg-[var(--nav-hover)] active:scale-[0.98] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",children:r.jsx(mI,{className:"h-5 w-5",strokeWidth:2,"aria-hidden":"true"})}),r.jsx("button",{type:"button",onClick:te,"aria-label":"Next postcard",className:"absolute right-2 top-1/2 z-10 -translate-y-1/2 flex h-11 w-11 items-center justify-center rounded-full bg-[var(--nav-bg)]/80 text-white shadow-md backdrop-blur-sm transition hover:bg-[var(--nav-hover)] active:scale-[0.98] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-white",children:r.jsx(Ik,{className:"h-5 w-5",strokeWidth:2,"aria-hidden":"true"})})]}),r.jsx("div",{className:"mt-4 flex items-center justify-center gap-2",role:"tablist","aria-label":"Postcard slides",children:Jf.map((H,Q)=>r.jsx("button",{type:"button",role:"tab","aria-selected":Q===e,"aria-label":`Show postcard ${Q+1} of ${o}`,onClick:()=>X(Q,Q>e?1:-1),className:`h-2.5 rounded-full transition-all duration-300 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[hsl(var(--primary))] ${Q===e?"w-7 bg-[hsl(var(--primary))]":"w-2.5 bg-[hsl(var(--primary))]/30 hover:bg-[hsl(var(--primary))]/50"}`},H.src))}),r.jsxs("p",{className:"sr-only","aria-live":"polite",children:["Postcard ",e+1," of ",o]})]}),r.jsxs("div",{className:"flex flex-col justify-center text-left min-[900px]:rounded-sm min-[900px]:border min-[900px]:border-[hsl(var(--border))] min-[900px]:bg-white/70 min-[900px]:p-8 lg:p-10 min-[900px]:shadow-editorial",children:[r.jsx("p",{className:"mb-3 text-xs font-sans font-semibold uppercase tracking-[0.2em] text-sage",children:"Local Live Streams · Cannon Beach"}),r.jsx("h2",{id:"ruby-pomsky-heading",className:"mb-5 font-serif text-3xl md:text-4xl font-bold tracking-wide text-primary normal-case",children:"Ruby the Pomsky"}),r.jsx("div",{className:"mb-6 h-1 w-16 bg-amber-400 rounded-full","aria-hidden":"true"}),r.jsx("p",{className:"text-base md:text-lg text-foreground/90 leading-relaxed font-sans font-light mb-4",children:"Follow Shawn and his dog Ruby, the Diva of Cannon Beach, Oregon, as they do their daily live streams on TikTok from 7:00 to 8:00 AM Pacific Time, followed by YouTube from 8:05 to 9:05 AM Pacific Time."}),r.jsxs("div",{className:"mb-6 grid grid-cols-2 gap-3",children:[r.jsxs("div",{className:"rounded-sm border border-[hsl(var(--border))] bg-[hsl(var(--muted))]/40 px-4 py-3",children:[r.jsx("p",{className:"text-xs font-sans font-semibold uppercase tracking-[0.15em] text-sage",children:"TikTok"}),r.jsxs("p",{className:"mt-1 text-lg md:text-xl font-serif font-bold text-primary leading-tight",children:[A.label,r.jsx("span",{className:"ml-1 text-sm font-sans font-light text-foreground/60 normal-case",children:A.unit})]})]}),r.jsxs("div",{className:"rounded-sm border border-[hsl(var(--border))] bg-[hsl(var(--muted))]/40 px-4 py-3",children:[r.jsx("p",{className:"text-xs font-sans font-semibold uppercase tracking-[0.15em] text-sage",children:"YouTube"}),r.jsxs("p",{className:"mt-1 text-lg md:text-xl font-serif font-bold text-primary leading-tight",children:[I.label,r.jsx("span",{className:"ml-1 text-sm font-sans font-light text-foreground/60 normal-case",children:I.unit})]})]})]}),M&&r.jsxs("p",{className:"mb-6 text-xs font-sans font-light text-foreground/50",children:["Updated ",M.toLocaleDateString([],{month:"short",day:"numeric",year:"numeric"})]}),r.jsxs("div",{className:`mb-6 rounded-sm border px-4 py-3 transition-colors duration-300 ${c?"border-red-300 bg-red-50":"border-[hsl(var(--border))] bg-[hsl(var(--muted))]/40"}`,"aria-live":"polite",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[c?r.jsxs("span",{className:"relative flex h-3 w-3 flex-none","aria-hidden":"true",children:[r.jsx("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-red-500 opacity-75"}),r.jsx("span",{className:"relative inline-flex h-3 w-3 rounded-full bg-red-600"})]}):r.jsx("span",{className:"inline-flex h-3 w-3 flex-none rounded-full bg-[hsl(var(--muted-foreground))]/50","aria-hidden":"true"}),r.jsx("p",{className:`text-sm md:text-base font-sans font-medium leading-snug ${c?"text-red-700":"text-foreground/70"}`,children:j?"Checking Ruby’s live status…":c?m==="youtube"?"Ruby is LIVE now on YouTube":"Ruby is LIVE now on TikTok":"Ruby is offline right now"})]}),c&&r.jsxs("a",{href:x||(m==="youtube"?S_e:__e),target:"_blank",rel:"noopener noreferrer",className:"mt-3 inline-flex min-h-[44px] items-center gap-2 rounded-sm bg-red-600 px-5 py-2.5 text-sm font-sans font-semibold uppercase tracking-wider text-white shadow-sm transition hover:bg-red-700 active:scale-[0.98] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600",children:[r.jsx(wI,{className:"h-4 w-4",strokeWidth:2,"aria-hidden":"true"}),"Watch Live",r.jsx(Ka,{className:"h-3.5 w-3.5 opacity-80","aria-hidden":"true"})]}),_&&r.jsxs("p",{className:"mt-2 text-xs font-sans font-light text-foreground/50",children:["Last checked ",_.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})]})]}),r.jsx("div",{className:"flex flex-wrap gap-3",children:A_e.map(H=>r.jsxs("a",{href:H.href,target:"_blank",rel:"noopener noreferrer",className:"inline-flex min-h-[44px] items-center gap-2 rounded-sm border border-[hsl(var(--primary))] bg-[hsl(var(--primary))] px-5 py-2.5 text-sm font-sans font-semibold uppercase tracking-wider text-[hsl(var(--primary-foreground))] transition hover:bg-transparent hover:text-[hsl(var(--primary))] active:scale-[0.98] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[hsl(var(--primary))]",children:[H.label,r.jsx(Ka,{className:"h-3.5 w-3.5 opacity-80","aria-hidden":"true"})]},H.label))})]})]})})},O_e=[{title:"Cannon Beach Chorus Concerts",date:"Seasonal (Check July/December)"},{title:"Buskers in the Park",date:"Thursdays (thru Sept 3, 2026)"},{title:"Stormy Weather Arts Festival",date:"November 6–8, 2026"},{title:"Cannon Beach Independence Day Parade",date:"July 4, 2027"},{title:"Seaside Beach Volleyball",date:"August 13–16, 2026"},{title:"Hood to Coast Relay Finish",date:"August 28, 2026"}],R_e=()=>{v.useEffect(()=>{console.log("CannonBeachPage mounted")},[]);const e=ke["cannon-beach"],t=lt("Cannon Beach"),n=ct("Cannon Beach"),a=kl("/town/cannon-beach"),i=Vk("Cannon Beach",e?.heroImage),s="Scenic coastal view with Haystack Rock and surrounding sea stacks, mountains in the background, Cannon Beach Oregon",o=fY(e,a,i);return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("link",{rel:"canonical",href:a}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n}),r.jsx("meta",{property:"og:image",content:i}),r.jsx("meta",{property:"og:url",content:a}),r.jsx("meta",{property:"og:type",content:"website"}),r.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),r.jsx("meta",{name:"twitter:title",content:t}),r.jsx("meta",{name:"twitter:description",content:n}),r.jsx("meta",{name:"twitter:image",content:i}),o&&r.jsx("script",{type:"application/ld+json",children:JSON.stringify(o)})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:i,alt:s,className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Cannon Beach"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Cannon Beach"}),r.jsx("div",{className:"h-1.5 w-32 bg-amber-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsx(E_e,{}),r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Cannon Beach Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:Sse}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Located on the beautiful Oregon Coast, Cannon Beach is famous for Haystack Rock and stunning coastal scenery."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo.lat||45.8918,lon:e?.geo.lng||-123.9615,townName:"Cannon Beach"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Cannon Beach",townSlug:"cannon-beach",lat:e?.geo.lat||45.8918,lon:e?.geo.lng||-123.9615,defaultStationId:"9437908"})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Cannon Beach",featuredImage:i,title:"Cannon Beach in Photos"})}),r.jsx(dt,{attractions:_N,townName:"Cannon Beach",geo:e?.geo,url:a}),r.jsx(y_e,{attractions:_N}),r.jsx(b_e,{trails:K8}),r.jsx($r,{events:O_e}),r.jsx(w_e,{hotels:Cse}),r.jsx(j_e,{restaurants:Z8})]}),r.jsx(Ye,{})]})},I_e=`Charleston is a distinct and vibrant fishing village located at the entrance to Coos Bay. Known as a gateway to some of the Oregon Coast's most spectacular state parks, this working harbor town offers a blend of rugged maritime industry and breathtaking natural beauty. It serves as the home port for a large fleet of commercial fishing vessels, offering visitors the chance to buy fresh seafood directly from the docks.
Beyond the bustling marina, Charleston is the jumping-off point for the Cape Arago Beach Loop, a scenic drive that connects three stunning state parks: Sunset Bay, Shore Acres, and Cape Arago. Here, visitors can explore diverse ecosystems ranging from sandy swimming beaches and botanical gardens to jagged cliffs teeming with seals and sea lions. The constant sound of foghorns and the smell of salt air define the atmosphere of this authentic coastal community.
Whether you are crabbing off the docks, exploring the University of Oregon's Marine Life Center, or hiking the trails of the South Slough National Estuarine Research Reserve, Charleston invites you to experience the raw and real Oregon Coast. It is a place where nature and industry coexist in a dynamic and fascinating rhythm.`,K6=[{name:"Shore Acres State Park",description:"Perched on spectacular sandstone cliffs, this park was once the estate of a timber baron. It features lush formal gardens that bloom year-round and a secluded cove. It is arguably the best storm-watching spot on the entire coast.",details:"Parking fee required. Holiday lights in December."},{name:"Cape Arago State Park",description:"Located at the end of the road, this headland offers panoramic views of the Pacific. A steep trail leads down to tide pools rich with marine life, while the overlook provides a front-row seat to Simpson Reef's seal and sea lion colonies.",details:"Excellent wildlife viewing."},{name:"Charleston Marina",description:"The heart of the town, this is a working marina where commercial fishing boats unload their catch. Visitors can walk the docks, go crabbing, or charter a deep-sea fishing expedition.",details:"Fresh seafood market nearby."},{name:"Sunset Bay State Park",description:"A rare gem on the coast, this bay is protected by towering sea cliffs, creating calm waters safe for swimming, paddleboarding, and kayaking. The sandy beach is a family favorite.",details:"Campground and day-use area."},{name:"Charleston Marine Life Center",description:"Run by the University of Oregon, this aquarium and museum showcases the marine biodiversity of the region. Exhibits include deep-sea specimens, skeletons, and touch tanks with living tide pool creatures.",details:"Located on the harbor front."},{name:"Simpson Reef Overlook",description:"One of the largest haul-out sites for pinnipeds on the coast. From the viewing deck, you can see and hear hundreds (sometimes thousands) of harbor seals, California sea lions, and elephant seals on the Shell Island rocks.",details:"Binoculars recommended."},{name:"South Slough National Estuarine Research Reserve",description:"Just south of town, this 5,000-acre reserve was the first of its kind in the nation. It offers miles of hiking trails through wetlands and forests, providing a quiet escape into nature.",details:"Interpretive center and canoe tours."},{name:"Bastendorff Beach",description:"A wide, expansive stretch of beach located near the jetty. It's popular for beachcombing, kite flying, and watching the massive waves crash against the south jetty during winter storms.",details:"County park with camping."}],M_e=[{name:"Cape Arago Pack Trail",distance:"4.5 miles loop",difficulty:"Moderate",description:"A scenic trail connecting Sunset Bay, Shore Acres, and Cape Arago. It winds through coastal forests and offers frequent glimpses of the ocean cliffs."},{name:"South Slough Estuary Loop",distance:"3.0 miles loop",difficulty:"Easy/Moderate",description:"Meander through lush marshes and dense forests. Boardwalks allow you to walk right over the estuary waters, offering great birdwatching opportunities."},{name:"Yoakam Point Trail",distance:"1.0 mile round trip",difficulty:"Easy",description:"A short trek leading to a secluded cove and rock formation known as Five Mile Point. Great for tide pooling during low tides."},{name:"Sunset Bay to Shore Acres",distance:"2.0 miles round trip",difficulty:"Easy",description:"Part of the Oregon Coast Trail, this section hugs the cliff edge, offering dramatic views of the geology and the crashing waves below."},{name:"Simpson Reef Trail",distance:"0.5 miles",difficulty:"Easy",description:"A short, accessible path leading to the main viewing area for the seal and sea lion colony. The noise of the animals guides you there!"},{name:"Bastendorff Beach Walk",distance:"2.0 miles",difficulty:"Easy",description:"A flat beach walk extending to the South Jetty. It offers a unique perspective of the harbor entrance and is a prime spot for finding agates."}],L_e=[{name:"Captain John's Motel",category:"Motel",description:"A staple of Charleston located right in the harbor district. It offers clean, no-frills accommodation perfect for fishermen and families wanting to be close to the docks.",amenities:"Kitchenettes available, walking distance to marina."},{name:"Plainview Motel",category:"Budget",description:"Located on the Seven Devils Road just outside town, offering quiet and affordable rooms. A good base camp for exploring the South Slough.",amenities:"Free parking, WiFi, rural setting."},{name:"Bay Point Landing",category:"Luxury Cabins",description:"A modern camping and cabin resort located nearby on the bay. It features sleek, Scandinavian-inspired cabins and Airstreams with high-end amenities.",amenities:"Indoor pool, clubhouse, stunning bay views."}],D_e=[{name:"The Portside",category:"Seafood/Steak",description:"Charleston's premier dining destination. Known for its fresh catch and harbor views, it offers a classic supper club atmosphere perfect for a nice night out.",features:"Harbor views, fresh local seafood, full bar."},{name:"High Tide Cafe",category:"Casual Seafood",description:"Located right on the water, this cafe is a local favorite for breakfast and lunch. Their clam chowder is legendary, and you can watch the boats unload while you eat.",features:"Waterfront seating, famous chowder."},{name:"Miller's at the Cove",category:"Sports Bar/Grill",description:"A lively spot with a great deck overlooking the boat basin. Known for their fish tacos and oysters, it's the place to watch the game or relax after fishing.",features:"Outdoor deck, oyster bar, sports screens."},{name:"Chuck's Seafood",category:"Market/Takeout",description:"Part processing plant, part market, part takeout window. This is as fresh as it gets. Grab a crab cocktail or some smoked salmon to go.",features:"Fresh crab, smoked fish, takeout only."},{name:"Monkey Business Cravings",category:"Food Truck",description:"A brightly colored food truck famously serving fish and chips and clam chowder in a bread bowl. A fun, casual stop near the marina.",features:"Outdoor seating, budget friendly, huge portions."}],B_e=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),F_e=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Parks & Wildlife"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Attractions in Charleston"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(B_e,{attraction:t,index:n},n))})]})})),z_e=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},$_e=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Estuaries"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Discover ancient forests, dramatic cliffs, and peaceful sloughs. The trails around Charleston offer some of the most diverse coastal hiking in Oregon."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(z_e,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),H_e=({hotels:e})=>{const t="Charleston";return r.jsx(mt,{townName:t,fallbackHotels:e,affiliateHotels:st[t]})},Z1=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),Z6=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),W_e=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=["https://images.unsplash.com/photo-1613849621571-0fb1068cf2d6","https://images.unsplash.com/photo-1587933977076-9d4ce98b4841","https://images.unsplash.com/photo-1675018732146-584e8ab17a46","https://images.unsplash.com/photo-1536013454362-d991266ba07d","https://images.unsplash.com/photo-1675028553042-9ae9bf717d9d"],n=e.slice(0,2),a=e.slice(2,4),i=e.slice(4);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Charleston"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Fresh from the boat to your plate. Experience authentic seafood dining right on the working waterfront."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Fresh Catch & Views"}),r.jsx("div",{className:"grid gap-6",children:n.map((s,o)=>r.jsx(Z1,{restaurant:s},o))})]}),r.jsx(Z6,{src:t[0],alt:"Seafood Platter",caption:"Locally caught seafood"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(Z6,{src:t[1],alt:"Casual Dining",caption:"Relaxed atmosphere by the bay"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Local Favorites"}),r.jsx("div",{className:"grid gap-6",children:a.map((s,o)=>r.jsx(Z1,{restaurant:s},o))})]})]}),r.jsxs("div",{className:"grid md:grid-cols-3 gap-6 mb-16",children:[r.jsx("div",{className:"md:col-span-3 text-center mb-4",children:r.jsx("h3",{className:"text-2xl font-bold text-orange-900 inline-block",children:"Quick & Delicious"})}),i.map((s,o)=>r.jsx(Z1,{restaurant:s},o)),r.jsx("div",{className:"h-full min-h-[200px] rounded-xl overflow-hidden shadow-md",children:r.jsx("img",{src:t[2],alt:"Fish and chips",className:"w-full h-full object-cover"})}),r.jsx("div",{className:"h-full min-h-[200px] rounded-xl overflow-hidden shadow-md",children:r.jsx("img",{src:t[3],alt:"Chowder",className:"w-full h-full object-cover"})})]})]})})},V_e=()=>{v.useEffect(()=>{console.log("CharlestonPage mounted")},[]);const e=ke.charleston,t=lt("Charleston"),n=ct("Charleston"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/459d754428b004077d795060ad117106.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Charleston, Oregon Marina",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Charleston"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Charleston"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Charleston Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:I_e}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"A bustling fishing village and gateway to spectacular state parks and secluded beaches."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||43.3569,lon:e?.geo?.lng||-124.3199,townName:"Charleston"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Charleston",townSlug:"charleston",lat:e?.geo.lat||43.3569,lon:e?.geo.lng||-124.3199})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Charleston",featuredImage:a,title:"Charleston Gallery"})}),r.jsx(dt,{attractions:K6,townName:"Charleston"}),r.jsx(F_e,{attractions:K6}),r.jsx($_e,{trails:M_e}),r.jsx(H_e,{hotels:L_e}),r.jsx(W_e,{restaurants:D_e})]}),r.jsx(Ye,{})]})},U_e=({waterfall:e,index:t})=>{const n=i=>{const s=[],l=Math.floor(i);for(let c=0;c<5;c++)s.push(r.jsx("span",{className:c<l?"text-yellow-500":"text-gray-300",children:"★"},c));return s},a=i=>{const s=i.toLowerCase();return s.includes("easy")?"bg-green-100 text-green-700":s.includes("moderate")?"bg-yellow-100 text-yellow-700":s.includes("hard")||s.includes("strenuous")?"bg-red-100 text-red-700":"bg-gray-100 text-gray-700"};return r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:t*.1},className:"bg-white rounded-none shadow-editorial p-6 hover:shadow-lg transition-all duration-300 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsxs("div",{className:"flex items-center gap-2 flex-1",children:[r.jsx(Lk,{className:"w-5 h-5 text-blue-600 flex-shrink-0"}),r.jsx("h3",{className:"text-xl font-bold text-gray-900",children:e.name})]}),r.jsx("span",{className:`px-3 py-1 rounded-none text-xs font-semibold ${a(e.difficulty)} whitespace-nowrap ml-2`,children:e.difficulty})]}),r.jsxs("div",{className:"flex flex-wrap items-center gap-4 mb-4 text-sm text-gray-600",children:[r.jsxs("div",{className:"flex items-center gap-1",children:[r.jsx(We,{className:"w-4 h-4 text-blue-500"}),r.jsx("span",{className:"font-medium",children:e.distance})]}),r.jsxs("div",{className:"flex items-center gap-1",children:[r.jsx(Fu,{className:"w-4 h-4 text-yellow-500"}),r.jsxs("span",{className:"font-medium",children:["Accessibility: ",n(e.accessibility)]})]})]}),r.jsx("p",{className:"text-gray-700 leading-relaxed mb-4 flex-grow",children:e.description}),e.notes&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsxs("p",{className:"text-sm text-gray-600 italic",children:[r.jsx("span",{className:"font-semibold text-blue-700",children:"Pro tip:"})," ",e.notes]})})]})},Eh=({townName:e="This Area",waterfalls:t=[],headerTitle:n="Nearby Waterfalls",headerSubtitle:a="Discover stunning waterfalls near the coast."})=>!t||t.length===0?null:r.jsx("section",{className:"py-16 px-4 bg-gradient-to-b from-blue-50 to-white",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-12",children:[r.jsx("div",{className:"flex items-center justify-center gap-2 mb-4",children:r.jsx(Lk,{className:"w-8 h-8 text-blue-600"})}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4 uppercase tracking-widest font-serif",children:n}),r.jsx("p",{className:"text-lg text-gray-600 max-w-3xl mx-auto leading-relaxed",children:a})]}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6 mb-12",children:t.map((i,s)=>r.jsx(U_e,{waterfall:i,index:s},s))}),r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.3},className:"text-center mt-12",children:r.jsxs("div",{className:"inline-block bg-primary rounded-none p-8 shadow-editorial",children:[r.jsx("div",{className:"text-white text-lg font-medium mb-6 max-w-2xl mx-auto",children:r.jsxs("div",{className:"flex flex-col items-center gap-2",children:[r.jsx("span",{children:"Want to see more Oregon waterfalls, and finding lodging near any waterfall"}),r.jsxs("a",{href:"https://www.waterfallsoregon.com",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 text-lime-400 hover:text-lime-300 transition-colors underline decoration-2 underline-offset-4",children:["Visit Waterfalls Oregon ",r.jsx(Ka,{className:"w-4 h-4"})]})]})}),r.jsx("a",{href:"https://expedia.com/affiliates/hotel-search-oregon-coast.gK1Zq0T",target:"_blank",rel:"noopener noreferrer sponsored",className:"inline-block bg-white text-primary px-8 py-3 rounded-none font-bold hover:bg-slate-100 transition-all duration-300 shadow-sm uppercase tracking-widest text-sm",children:"Find Hotels on Expedia →"})]})})]})}),q_e=`Coos Bay is the largest city on the Oregon Coast and a bustling hub of maritime history, rugged natural beauty, and cultural richness. Located on the deepest natural harbor between San Francisco and Seattle, it has long been a center for shipping and timber, but today it draws visitors with its spectacular state parks, botanical gardens, and vibrant waterfront boardwalk.
The true magic of Coos Bay lies just west of the city along the Cape Arago Highway. Here, a trio of magnificent state parks—Sunset Bay, Shore Acres, and Cape Arago—offer some of the most dramatic scenery in the Pacific Northwest. Visitors can marvel at the crashing waves of the "garden by the sea" at Shore Acres, listen to the barking seals at Simpson Reef, or relax on the protected sands of Sunset Bay. The contrast between the industrial heritage of the bay and the wild cliffs of the cape is striking.
Downtown Coos Bay is undergoing a renaissance, with historic buildings finding new life as art museums, breweries, and restaurants. The Coos Art Museum, housed in a 1936 Art Deco post office, sets the tone for a town that values creativity. Whether you're storm watching from the cliffs, kayaking the South Slough Estuary, or enjoying fresh local seafood, Coos Bay offers a deep and diverse coastal experience.`,Y6=[{name:"Shore Acres State Park",description:"Perched on dramatic sandstone cliffs, this park was once the estate of a timber baron. It features five acres of formal gardens that bloom year-round, including a rose garden and Japanese garden. It is famous for its holiday lights display and spectacular storm watching spots.",details:"Parking fee required ($5). Gardens open daily."},{name:"Cape Arago State Park",description:"Located at the end of the cape, this park offers panoramic views of the ocean and the sounds of seals and sea lions on Simpson Reef below. Trails lead down to secluded coves and tide pools rich with marine life.",details:"Excellent spot for whale watching."},{name:"Coos Bay Boardwalk",description:"A scenic wooden promenade along the waterfront featuring interpretative displays about the city's maritime history, a tugboat, and views of the working harbor. It connects the downtown area to the water.",details:"Free access. Great for a casual stroll."},{name:"Coos Art Museum",description:"Oregon's third-oldest art museum, housed in a stunning Art Deco building. It holds a permanent collection of contemporary Northwest art and hosts rotating exhibitions throughout the year.",details:"Located downtown. Modest admission fee."},{name:"Sunset Bay State Park",description:"A protected bay with towering cliffs that block the wind, creating one of the safest swimming beaches on the coast. It features a large campground, hiking trails, and beautiful sunset views.",details:"Day-use and camping available."},{name:"Simpson Reef Overlook",description:"One of the best places on the coast to view marine mammals. From the overlook, you can see and hear hundreds of seals, sea lions, and occasionally elephant seals resting on the rocks of Shell Island.",details:"Bring binoculars. No access to the island itself."},{name:"Mingus Park",description:"A beloved city park featuring a Japanese garden, a lake with a walking path, and a swimming pool. It's a peaceful green oasis in the heart of the city, perfect for picnics.",details:"Free entry. Walking trails through redwoods."},{name:"Oregon Coast Historical Railway",description:"An outdoor museum displaying vintage locomotives, logging equipment, and railway artifacts. It preserves the history of the railroads that were vital to the timber industry.",details:"Located near the boardwalk. Free admission."}],G_e=[{name:"Sunset Bay to Cape Arago Trail",distance:"8.0 miles round trip",difficulty:"Moderate",description:"A stunning section of the Oregon Coast Trail connecting all three state parks. It winds along the cliff edge, offering constant ocean views, before dipping into lush coastal forests."},{name:"South Slough Estuary Trails",distance:"Varies (1-5 miles)",difficulty:"Easy/Moderate",description:"A network of trails in the first National Estuarine Research Reserve. Walk through salt marshes and forests to observation decks perfect for birdwatching and seeing the tidal ecosystem."},{name:"Golden and Silver Falls",distance:"2.8 miles round trip",difficulty:"Moderate",description:"Located about an hour inland, these two massive waterfalls are worth the drive. The trail winds through old-growth fir and maple trees to reach the plunging cascades."},{name:"Mingus Park Loop",distance:"1.0 mile loop",difficulty:"Easy",description:"A gentle, paved path around the lake in Mingus Park, extending into the wooded hills. It's a relaxing urban nature walk."},{name:"Bluebill Trail",distance:"1.25 miles loop",difficulty:"Easy",description:"Located near the North Spit, this boardwalk trail circles a seasonal lake. It is excellent for viewing waterfowl and walking through a shore pine forest."},{name:"Millicoma Marsh Trail",distance:"1.5 miles loop",difficulty:"Easy",description:"A flat trail winding through a tidal marsh area near the high school. It provides excellent opportunities for birding right in town."}],K_e=[{name:"Edgewater Inn and Suites",category:"Waterfront",description:"Located directly on the bay, this hotel offers rooms with private balconies overlooking the water. It's quiet, comfortable, and close to the boardwalk.",amenities:"Bay views, indoor pool, hot tub, continental breakfast."},{name:"Bay Point Landing",category:"Glamping/Luxury RV",description:"A modern camping resort featuring Scandinavian-style cabins and Airstream suites. Located on a private beach, it offers a high-end outdoor experience.",amenities:"Indoor saltwater pool, clubhouse, private beach access."},{name:"Red Lion Hotel Coos Bay",category:"Mid-Range",description:"A reliable and centrally located hotel. It's a convenient base for exploring both the downtown area and the nearby state parks.",amenities:"Free WiFi, seasonal pool, pet-friendly."},{name:"Best Western Holiday Hotel",category:"Mid-Range",description:"Situated downtown, this hotel is within walking distance of restaurants and the boardwalk. Known for its cleanliness and indoor pool.",amenities:"Indoor pool, hot tub, fitness center."},{name:"The Mill Casino • Hotel",category:"Resort/Casino",description:"Technically in North Bend but serving the whole bay area, this waterfront resort offers extensive amenities, dining, and gaming.",amenities:"Casino, multiple restaurants, bay views, RV park."}],Z_e=[{name:"7 Devils Brewing Co.",category:"Brewery/Pub",description:"A local favorite featuring handcrafted ales and a menu focused on locally sourced ingredients. The atmosphere is rustic and welcoming, often with live music.",features:"Outdoor patio, local ingredients, craft beer."},{name:"Restaurant O",category:"Fine Dining/European",description:"Offering a sophisticated menu with European influences, Restaurant O is the spot for a special dinner. The dishes are creative and beautifully presented.",features:"Farm-to-table, extensive wine list, intimate setting."},{name:"Tokyo Bistro",category:"Japanese/Sushi",description:"A highly-rated spot for fresh sushi and Japanese cuisine. Known for its friendly service and high-quality fish in a casual downtown setting.",features:"Fresh sushi, lunch specials, sake."},{name:"Shark Bites Cafe",category:"Seafood/Tacos",description:"A surf-themed cafe famous for its fish tacos and burgers. It's a fun, casual place to grab a bite after a day at the beach.",features:"Fish tacos, gluten-free options, quirky decor."},{name:"The Boat Fish & Chips",category:"Seafood/Casual",description:"A unique eatery housed in a houseboat-style building on the water (on land). Famous for its generous portions of fish and chips and chowder.",features:"Waterfront feel, family-friendly, classic seafood."},{name:"Front Street Provisioners",category:"Pizza/Italian",description:"Wood-fired pizzas and homemade pastas in a beautifully restored building. A great addition to Coos Bay's culinary scene.",features:"Wood-fired oven, craft cocktails, artisan pizza."},{name:"Cranberry Sweets",category:"Sweets/Dessert",description:"While primarily a candy shop, it's a must-visit landmark. Sample their famous cranberry candies and chocolates made right here in cranberry country.",features:"Free samples, gifts, local specialty."},{name:"Mean Street Sandwich Shop",category:"Deli/Lunch",description:"A local go-to for hearty, creative sandwiches. Perfect for packing a lunch before heading out to hike the cliffs.",features:"Fresh bread, huge portions, outdoor seating."}],Y_e=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),J_e=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Gardens, Cliffs & Culture"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Coos Bay"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(Y_e,{attraction:t,index:n},n))})]})})),X_e=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},Q_e=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Discover the raw beauty of Coos Bay's coastline. Trails wind along sandstone cliffs, through botanical gardens, and into the heart of quiet estuaries."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(X_e,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),eSe=({hotels:e})=>{const t="Coos Bay",n=["The Mill Casino • Hotel"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},Y1=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),J6=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),tSe=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2,4),a=e.slice(4);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Coos Bay"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"A culinary renaissance is happening here. Enjoy fresh oysters, locally handcrafted beers, and diverse international flavors right on the bay."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Local Flavors"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(Y1,{restaurant:i},s))})]}),r.jsx(J6,{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80",alt:"Craft beer and food",caption:"Local brews and fine dining"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(J6,{src:"https://images.unsplash.com/photo-1579871494447-9811cf80d66c?auto=format&fit=crop&w=800&q=80",alt:"Sushi plate",caption:"Fresh catch from the Pacific"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Sushi & Tacos"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(Y1,{restaurant:i},s))})]})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Casual Eats & Treats"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6 justify-center",children:a.map((i,s)=>r.jsx(Y1,{restaurant:i},s))}),r.jsx("div",{className:"mt-8 text-center",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1563729784474-d77dbb933a9e?auto=format&fit=crop&w=1200&h=300&q=80",alt:"Sweets and desserts",className:"w-full h-48 object-cover rounded-xl opacity-90"})})]})]})})},nSe=[{name:"Golden Falls & Silver Falls",difficulty:"Easy",distance:"0.5 miles each",accessibility:4,description:"Two stunning waterfalls in Golden and Silver Falls State Natural Area. Golden Falls drops 160 feet while Silver Falls plunges 200 feet. Both are accessed via short, easy trails from the same parking area.",notes:"24-mile drive from Coos Bay on narrow, winding roads. No facilities on-site. Can combine both falls in a 1-hour visit."},{name:"Laverne Falls",difficulty:"Easy",distance:"Short",accessibility:3,description:"A smaller but beautiful waterfall in the Coos Bay area, offering an easy, family-friendly hike through coastal forest.",notes:"Well-maintained trail suitable for all ages. Good option for a quick nature walk."}],rSe=[{title:"Charleston Seafood Festival",date:"August 8–9, 2026"},{title:"Blackberry Arts Festival",date:"August 22, 2026"},{title:"Bay Area Fun Festival",date:"September 19–20, 2026"},{title:"Shore Acres Holiday Lights",date:"November 26 – December 31, 2026"},{title:"Coos Bay Wine Walk",date:"First Friday of every month"}],aSe=()=>{v.useEffect(()=>{console.log("CoosBayPage mounted")},[]);const e=ke["coos-bay"],t=lt("Coos Bay"),n=ct("Coos Bay"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/32c0d973a9704cf199b61ec4477d1531.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Coos Bay Oregon Travel",description:n,url:"https://oregoncoastal.com/town/coos-bay",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Coos Bay Oregon Boardwalk and Waterfront",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Coos Bay"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Coos Bay"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Coos Bay Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:q_e}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"The largest city on the Oregon Coast, rich in maritime history and coastal culture."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||43.3665,lon:e?.geo?.lng||-124.2179,townName:"Coos Bay"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Coos Bay",townSlug:"coos-bay",lat:e?.geo?.lat||43.3665,lon:e?.geo?.lng||-124.2179})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Coos Bay",featuredImage:a,title:"Coos Bay in Photos"})}),r.jsx(dt,{attractions:Y6,townName:"Coos Bay"}),r.jsx(J_e,{attractions:Y6}),r.jsx(Q_e,{trails:G_e}),r.jsx(Eh,{townName:"Coos Bay",waterfalls:nSe,headerTitle:"Nearby Waterfalls",headerSubtitle:"Just a short drive from the Coos Bay waterfront, Golden and Silver Falls are one of Oregon's best-kept secrets - two dramatic waterfalls in a single state park.",ctaText:"Staying in Coos Bay or Charleston? Use Coos Bay as your base to explore Golden Falls, the Oregon Dunes, and Cape Arago State Park."}),r.jsx($r,{events:rSe}),r.jsx(eSe,{hotels:K_e}),r.jsx(tSe,{restaurants:Z_e})]}),r.jsx(Ye,{})]})},iSe=`Welcome to Depoe Bay, the "Whale Watching Capital of the Oregon Coast." Perched on a dramatic rocky coastline, this charming town is famous for having the world's smallest navigable harbor and a front-row seat to the Pacific Ocean's most spectacular displays. Here, gray whales reside nearly year-round, often spouting just yards from the sea wall, while winter storms send geyser-like plumes of water shooting into the air through the town's basalt spouting horns.
The heart of Depoe Bay is its unique harbor, a six-acre basin hidden behind a rocky cleft that protects fishing charters and whale watching boats from the open sea. Visitors can walk the promenade along the sea wall, browse eclectic gift shops and galleries, or enjoy fresh seafood with an unobstructed view of the crashing waves. The bridge spanning the harbor entrance offers a perfect vantage point to watch skilled captains navigate the narrow, turbulent channel—a thrilling sight in itself.
Beyond the harbor, the area offers stunning natural beauty. To the south, the rocky shelf of Otter Rock and the devil's churn at Cape Perpetua beckon explorers. Whether you're embarking on a deep-sea fishing adventure, storm watching from a cozy oceanfront suite, or simply marveling at the resident pod of gray whales, Depoe Bay offers an intimate and rugged coastal experience unlike anywhere else in Oregon.`,X6=[{name:"Whale Watching Center",description:"Operated by Oregon State Parks, this center is located right on the sea wall. Staffed by knowledgeable rangers, it offers binoculars and spotting tips to help you see the resident gray whales that frequent the bay.",details:"Free admission. Open daily 10 AM - 4 PM.",address:"119 US-101, Depoe Bay, OR"},{name:"The Spouting Horns",description:"A natural geologic phenomenon located along the downtown sea wall. When waves crash into the lava tubes below, sea water shoots geyser-like plumes into the air, sometimes spraying cars on Highway 101 during storms.",details:"Best viewed at high tide or during storms.",address:"Downtown Sea Wall, Depoe Bay, OR"},{name:"World's Smallest Harbor",description:"The six-acre harbor is a marvel of navigation. Watch fishing boats and Coast Guard vessels thread the needle through the narrow, rock-bound channel. It's a photographer's dream, especially at sunset.",details:"Public docks available for walking.",address:"Depoe Bay Harbor, Depoe Bay, OR"},{name:"Boiler Bay State Scenic Viewpoint",description:"Just north of town, this rugged headland offers panoramic ocean views and excellent bird watching. At low tide, you can see the boiler of the shipwrecked 'J. Marhoffer' which ran aground in 1910.",details:"Great spot for whale watching from land.",address:"Hwy 101, 1 mile north of Depoe Bay"},{name:"Rocky Creek State Scenic Viewpoint",description:"A forested bluff overlooking the ocean with picnic tables and active mesmerizing wave action. It's a quieter alternative to the downtown sea wall for watching whales and storms.",details:"Day-use only. Restrooms available.",address:"Hwy 101, 2 miles south of Depoe Bay"},{name:"Otter Crest Loop",description:"A scenic one-way road that winds along the cliff edge south of town. It offers breathtaking views of the coastline and leads to the Cape Foulweather overlook.",details:"Narrow road, drive slowly. One-way southbound.",address:"Otter Crest Loop, Depoe Bay, OR"},{name:"Cape Foulweather",description:"Rising 500 feet above the ocean, this is one of the highest points on the Oregon Coast. Discovered by Captain Cook in 1778, it offers views that stretch for miles in both directions.",details:"Gift shop and viewing platform at the summit.",address:"Otter Crest Loop, Depoe Bay, OR"},{name:"Depoe Bay Winery",description:"Located in a small cave-like building, this winery offers tastings of Oregon fruit wines and Pinot Noirs. It's a cozy stop with a lot of local character.",details:"Tasting room open daily.",address:"22 US-101, Depoe Bay, OR"}],sSe=[{name:"Devil's Punchbowl Trail",distance:"0.8 miles loop",difficulty:"Easy",elevation:"Flat",description:"Located just south at Otter Rock, this easy trail offers views of the collapsed sea cave where waves churn violently. At very low tide, you can hike down into the bowl itself."},{name:"Lookout Observatory Trail",distance:"0.5 miles round trip",difficulty:"Easy",elevation:"100 ft gain",description:"A short but steep paved path at Cape Foulweather leading to spectacular viewpoints. On clear days, the view extends 40 miles out to sea."},{name:"Rocky Creek Whale Trail",distance:"0.25 miles",difficulty:"Easy",elevation:"Flat",description:"A gentle walk along the bluffs at Rocky Creek State Scenic Viewpoint. It's less of a hike and more of a perfect stroll for spotting spouts and flukes."},{name:"Fogarty Creek Trail",distance:"1.0 mile loop",difficulty:"Easy",elevation:"Flat",description:"Winds through a spruce forest and along a creek to a sheltered sandy cove. A nice break from the rocky cliffs and great for wind protection."},{name:"Beverly Beach Trail",distance:"2.0 miles (one way)",difficulty:"Easy",elevation:"Flat (Sand)",description:"A beach walk connecting Spencer Creek to the headlands. This wide, sandy stretch is famous for fossils and agates, located just south of Depoe Bay."},{name:"Fishing Rock Trail",distance:"0.5 miles round trip",difficulty:"Easy",elevation:"50 ft gain",description:"Located just north in Gleneden Beach, this short trail leads through a tunnel of vegetation to a dramatic rock outcropping with precipitous drops and amazing views."}],oSe=[{name:"Whale Cove Inn",category:"Luxury/Boutique",description:"Rated as one of the most romantic inns in Oregon. Perched above the secluded Whale Cove, every suite features a private deck with a hot tub and unobstructed ocean views.",amenities:"Private hot tubs, breakfast delivered to room, adult-only.",link:"https://expedia.com/affiliates/depoe-bay-hotels.XG28wG4"},{name:"Channel House",category:"Boutique",description:"Sitting on the cliff overlooking the channel entrance, this iconic hotel offers some of the best views in town. Watch boats navigate the narrow passage from your private oceanfront spa tub.",amenities:"Oceanfront spa tubs, complimentary breakfast, wine hour.",link:"https://expedia.com/affiliates/depoe-bay-hotels.XG28wG4"},{name:"Inn at Arch Rock",category:"Mid-Range",description:"Located on a bluff above a private beach, this cozy inn offers a quiet retreat. It features a private path down to the water and comfortable, unpretentious rooms.",amenities:"Private beach access, ocean views, pet-friendly.",link:"https://expedia.com/affiliates/depoe-bay-hotels-inn-at-arch-rock.XG28wG4"},{name:"Travelodge by Wyndham Depoe Bay",category:"Budget",description:"A reliable budget option located directly across from the harbor. It offers clean rooms and easy walking access to all downtown shops and the whale watching center.",amenities:"Free breakfast, central location, harbor views.",link:"https://expedia.com/affiliates/depoe-bay-hotels.XG28wG4"},{name:"WorldMark Depoe Bay",category:"Resort/Condos",description:"A large resort complex featuring spacious condo-style units with full kitchens. Amenities include indoor and outdoor pools, making it a great choice for families.",amenities:"Indoor/outdoor pools, hot tubs, recreation center, kid-friendly.",link:"https://expedia.com/affiliates/depoe-bay-hotels.XG28wG4"}],lSe=[{name:"Tidal Raves",category:"Upscale Seafood",description:"The premier dining destination in Depoe Bay. Perched on a cliff with panoramic windows, it offers spectacular views of crashing waves alongside a menu of fresh, creative seafood dishes.",features:"Ocean views, craft cocktails, fresh local seafood."},{name:"Restaurant Beck",category:"Fine Dining",description:"Located inside Whale Cove Inn, this James Beard-nominated restaurant serves ultra-local, progressive coastal cuisine. The menu changes daily based on foraged and farmed ingredients.",features:"Farm-to-table, tasting menus, oceanfront."},{name:"Gracie's Sea Hag",category:"Casual/Seafood",description:"A local institution famous for its clam chowder and lively nautical atmosphere. It's a must-stop for a hearty lunch and live music in the lounge.",features:"Famous chowder, live music, family-friendly."},{name:"The Horn Public House",category:"Brewery/Pub",description:"Located overlooking the spouting horns, this two-story pub offers house-brewed beers and solid pub fare. The upper deck is a prime spot for whale watching with a burger.",features:"Ocean views, house microbrews, outdoor seating."},{name:"Hook & Slice",category:"Pizza/Casual",description:"A laid-back spot specializing in hand-tossed pizzas and local beers. It shares space with the Salishan golf clubhouse just north of town but is a favorite for Depoe Bay locals.",features:"Gourmet pizza, casual vibe, takeout."},{name:"Depoe Baykery",category:"Bakery",description:"Situated in the log cabin complex, this bakery is famous for its massive donuts, apple fritters, and artisan breads. Get there early for the best selection.",features:"Fresh donuts, coffee, pastries."},{name:"Arch Rock Cafe",category:"Cafe/Lunch",description:"A cozy cafe serving espresso, homemade soups, and sandwiches. It's a perfect pit stop for a quick, warming meal before heading back out to the cliffs.",features:"Specialty coffee, homemade soup, breakfast."},{name:"Thai Bay",category:"International",description:"Surprisingly authentic Thai cuisine located right on Highway 101. A favorite among locals for their curries and fresh rolls when they need a break from seafood.",features:"Spicy curries, ocean view, takeout."},{name:"Mazatlan Mexican Restaurant",category:"Mexican",description:"A colorful, family-friendly spot offering generous portions of Mexican classics. The margaritas are strong, and the salsa is fresh.",features:"Family-friendly, large portions, margaritas."}],cSe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name}),r.jsx("div",{className:"bg-blue-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-blue-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-blue-700 bg-blue-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),dSe=({attractions:e})=>!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-blue-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-blue-600 font-bold tracking-wider uppercase text-sm",children:"Harbor & Coast"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Whales & Wonders"}),r.jsx("div",{className:"h-1 w-24 bg-blue-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6",children:e.map((t,n)=>r.jsx(cSe,{attraction:t,index:n},n))})]})}),uSe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Easy),children:e})},hSe=({trails:e})=>!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-teal-600"}),"Coastal Trails & Viewpoints"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Discover dramatic headlands, hidden coves, and the best whale watching spots on foot."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(uSe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})}),fSe=({hotels:e})=>{const t="Depoe Bay",n=["Channel House"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},J1=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-teal-100 hover:border-teal-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-teal-950",children:e?.name}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-teal-600 bg-teal-100 px-2 py-1 rounded-md whitespace-nowrap",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-teal-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-teal-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),Q6=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-teal-500 pl-3",children:n})})]}),mSe=({restaurants:e})=>{if(!e||e.length===0)return null;const t=e.slice(0,2),n=e.slice(2,5),a=e.slice(5);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-teal-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Depoe Bay"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Savor fresh seafood with a view of the harbor, enjoy world-class fine dining, or grab a quick bite before your whale watching tour."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-teal-900 border-b-2 border-teal-200 pb-2 inline-block",children:"Fine Dining & Views"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(J1,{restaurant:i},s))})]}),r.jsx(Q6,{src:"https://images.unsplash.com/photo-1550513185-b643c86c370e",alt:"Elegant table setting at a high-end seafood restaurant",caption:"Oceanfront Dining Experiences"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(Q6,{src:"https://images.unsplash.com/photo-1514933651103-005eec06c04b?auto=format&fit=crop&w=800&q=80",alt:"Clam chowder and beer",caption:"Legendary chowder & local brews"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-teal-900 border-b-2 border-teal-200 pb-2 inline-block ml-auto",children:"Casual & Pub Fare"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(J1,{restaurant:i},s))})]})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm border border-teal-50",children:[r.jsx("h3",{className:"text-2xl font-bold text-teal-900 mb-8 text-center",children:"International & Quick Bites"}),r.jsx("div",{className:"grid md:grid-cols-2 gap-6",children:a.map((i,s)=>r.jsx(J1,{restaurant:i},s))})]})]})})},pSe=()=>{v.useEffect(()=>{console.log("DepoeBayPage mounted")},[]);const e="Depoe Bay",t=lt(e),n=ct(e),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2c57f533ae0506195f5f5c9a0953d506.webp",i={name:e,description:n,image:a,geo:{lat:44.8066,lng:-124.0601},url:"https://oregoncoastal.com/town/depoe-bay"};return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsx(Mt,{...i}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Depoe Bay harbor and coastline",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Depoe Bay"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-2",children:"Depoe Bay"}),r.jsx(F.p,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.3,duration:.8},className:"text-xl text-white/90 font-light tracking-wide drop-shadow-md mb-4",children:"Whale Watching Capital of the Coast"}),r.jsx("div",{className:"h-1.5 w-32 bg-teal-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Depoe Bay Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:iSe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Famous for having the world's smallest navigable harbor and excellent whale watching opportunities."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:i.geo.lat,lon:i.geo.lng,townName:"Depoe Bay"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Depoe Bay",townSlug:"depoe-bay",lat:i.geo.lat,lon:i.geo.lng})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Depoe Bay",featuredImage:a,title:"Depoe Bay in Photos"})}),r.jsx(dt,{attractions:X6,townName:"Depoe Bay"}),r.jsx(dSe,{attractions:X6}),r.jsx(hSe,{trails:sSe}),r.jsx(fSe,{hotels:oSe}),r.jsx(mSe,{restaurants:lSe})]}),r.jsx(Ye,{})]})},gSe=`Welcome to Dune City, the "City of Lakes" and a gateway to the spectacular Oregon Dunes National Recreation Area. Situated just south of Florence, this tranquil community is surrounded by water, with Siltcoos Lake to the east and Woahink Lake to the west, offering a paradise for fishing, boating, and kayaking enthusiasts.
Unlike its bustling neighbors, Dune City offers a quieter, nature-focused retreat. It is home to old-growth forests, pristine freshwater lakes, and immediate access to the towering sand dunes that define this stretch of the coastline. Visitors come here to escape the crowds, launch their boats at dawn, or hike trails that transition seamlessly from lush woodlands to wind-swept sand.
Whether you are water-skiing on Woahink, fishing for bass in Siltcoos, or exploring the fascinating carnivorous plants at the nearby Darlingtonia Wayside, Dune City provides an immersive outdoor experience. It is the perfect base camp for adventurers looking to explore the central coast's unique geology and diverse ecosystems.`,e3=[{name:"Woahink Lake State Park",description:"A stunning freshwater lake separated from the ocean by massive dunes. The park features a swimming area, boat ramp, and picnic spots, all nestled in a coastal forest setting.",details:"Day-use fee required. Great for swimming and boating."},{name:"Siltcoos Lake",description:"The largest lake on the Oregon Coast, Siltcoos is a premier destination for fishing (bass, trout, and perch) and boating. Its labyrinth of arms and inlets offers endless exploration.",details:"Multiple boat launches available. outstanding fishing."},{name:"Oregon Dunes National Recreation Area",description:"Dune City sits right on the edge of this 40-mile stretch of wind-sculpted sand. Visitors can access the dunes for hiking, photography, and off-highway vehicle (OHV) riding.",details:"Access via Siltcoos Beach Road or nearby trailheads."},{name:"Siltcoos River",description:"This short river connects Siltcoos Lake to the Pacific Ocean. It is a fantastic spot for paddling kayaks or canoes, especially during the fall salmon run.",details:"Rentals available at local marinas."},{name:"Darlingtonia State Natural Site",description:"Located just north of the city limits, this botanical park protects the rare cobra lily, Oregon's only native carnivorous plant. Wooden boardwalks allow safe viewing.",details:"Free admission. Best viewed in spring."},{name:"Tyee Campground",description:"Situated on the banks of the Siltcoos River, this campground offers prime access to the dunes and water. It's a peaceful spot for picnicking and watching river otters.",details:"Part of the Siuslaw National Forest."},{name:"Carter Lake",description:"A smaller, quieter lake south of town, perfect for those seeking solitude. It offers a primitive campground and a trail that leads through the dunes to the beach.",details:"Non-motorized boats preferred. Excellent birdwatching."}],xSe=[{name:"Waxmyrtle Trail",distance:"1.5 miles (one way)",difficulty:"Easy",description:"This scenic trail follows the Siltcoos River estuary out to the beach. It winds through coastal scrub, wetlands, and dunes, offering excellent birdwatching opportunities along the way."},{name:"Siltcoos Lake Trail",distance:"3.5 miles loop",difficulty:"Moderate",description:"A beautiful loop hike that takes you through lush rainforest and old-growth spruce trees around the edge of the lake. It's peaceful, green, and teeming with wildlife."},{name:"Lagoon Trail",distance:"1.0 mile loop",difficulty:"Easy",description:"A family-friendly interpretive trail near the Siltcoos recreation area. It circles a small lagoon and offers great views of the river and surrounding wetlands."},{name:"Chief Tsiltcoos Trail",distance:"1.2 miles loop",difficulty:"Moderate",description:"This trail climbs a high dune for panoramic views of the river and ocean before dropping down to the riverbank. It offers a good workout with rewarding scenery."},{name:"Taylor Dune Trail",distance:"2.5 miles round trip",difficulty:"Moderate/Hard",description:"For those wanting to walk on the sand, this trail traverses the open dunes to reach the beach. The shifting sand makes it a workout, but the solitude is unmatched."},{name:"Carter Dune Trail",distance:"3.0 miles round trip",difficulty:"Moderate",description:"Starting near Carter Lake, this trail crosses the dunes to reach a secluded stretch of ocean beach. It's a fantastic spot for finding solitude and watching the sunset."}],ySe=[{name:"Westlake Resort",category:"Resort/Cabins",description:"A classic lakeside resort offering cozy cabins and boat rentals on Siltcoos Lake. It has been a favorite family destination for generations.",amenities:"Boat rentals, cabins, marina access."},{name:"Siltcoos Lake Resort",category:"Resort/Motel",description:"Located directly on the water, this resort provides motel-style rooms and cabins. It features a private dock, making it ideal for anglers and boaters.",amenities:"Private dock, fishing boat rentals, pet-friendly."},{name:"Tyee Campground",category:"Camping",description:"A US Forest Service campground located along the Siltcoos River. It offers paved sites and a peaceful setting for tent and RV campers.",amenities:"River access, drinking water, vault toilets."},{name:"Woahink Lake RV Resort",category:"RV Resort",description:"Situated near Woahink Lake, this resort offers full-service RV sites with easy access to the dunes and state park.",amenities:"WiFi, laundry, clubhouse, dune access."},{name:"Lakeshore Lodge (Nearby)",category:"Lodge",description:"While technically just outside city limits, this lodge offers comfortable rooms with views of the lake and easy access to all Dune City attractions.",amenities:"Lake views, restaurant nearby, comfortable rooms."},{name:"Dune City Vacation Rentals",category:"Vacation Rentals",description:"Several private homes along the lakeshores are available for rent, offering private docks, large decks, and all the comforts of home.",amenities:"Kitchens, private docks, multiple bedrooms."}],vSe=[{name:"Darlings Marina (The Dunes Cafe)",category:"Casual/Pub",description:"The social hub of Siltcoos Lake. This marina pub serves up hearty burgers, fish and chips, and cold beers right on the water. It's the place to swap fishing stories.",features:"Lakefront dining, craft beer, outdoor seating."},{name:"Westlake Resort Grill",category:"Seasonal Grill",description:"A small, seasonal grill located at the resort, offering quick bites, sandwiches, and ice cream for boaters and campers enjoying the lake.",features:"Quick bites, ice cream, marina atmosphere."}],bSe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),wSe=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Lakes & Dunes"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Dune City"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(bSe,{attraction:t,index:n},n))})]})})),jSe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},NSe=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Dune City offers a unique mix of wetland, forest, and dune hiking. Explore trails that wind through coastal scrub and open sand, connecting lakes to the ocean."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(jSe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),kSe=({hotels:e})=>{const t="Dune City",n=["Tyee Campground","Woahink Lake RV Resort","Dune City Vacation Rentals","Coming Soon","Westlake Resort"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},_Se=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),SSe=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),CSe=({restaurants:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})}):r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Dune City"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Dining in Dune City is casual and relaxed, often enjoyed with a view of the water. For more extensive options, Florence is just a short drive north."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(SSe,{src:"https://images.unsplash.com/photo-1543364195-077a16c30ff3?auto=format&fit=crop&w=800&q=80",alt:"Lakeside dining",caption:"Enjoy a meal by Siltcoos Lake"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Local Eats"}),r.jsx("div",{className:"grid gap-6",children:e.map((t,n)=>r.jsx(_Se,{restaurant:t},n))})]})]})]})})),TSe=()=>{v.useEffect(()=>{console.log("DuneCityPage mounted")},[]);const e=ke["dune-city"],t=lt("Dune City"),n=ct("Dune City"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c2bb95a8f717d26828623d6733b9a799.webp";return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Dune City Oregon Travel",description:n,url:"https://oregoncoastal.com/town/dune-city",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Dune City, Oregon Lakes and Dunes",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Dune City"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Dune City"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto town-grid-layout mb-12",children:[r.jsx("div",{className:"town-about-section",children:r.jsx(Cr,{townName:"Dune City",initialDescription:gSe})}),r.jsx("div",{className:"town-weather-section",children:r.jsx(yt,{lat:e?.geo?.lat||43.8885,lon:e?.geo?.lng||-124.1165,townName:"Dune City"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Dune City",townSlug:"dune-city",lat:e?.geo?.lat||43.8885,lon:e?.geo?.lng||-124.1165})})]}),r.jsx(ht,{townName:"Dune City",featuredImage:a,title:"Dune City in Photos"}),r.jsx(dt,{attractions:e3,townName:"Dune City"}),r.jsx(wSe,{attractions:e3}),r.jsx(NSe,{trails:xSe}),r.jsx(kSe,{hotels:ySe}),r.jsx(CSe,{restaurants:vSe})]}),r.jsx(Ye,{})]})},ASe={images:["https://images.unsplash.com/photo-1565624796120-0010c283626e?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1471922694854-ff1b63b20054?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1520638023360-6def43369781?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1583345267716-11f87979685a?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1627916503730-a94f6f70db2b?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1504700610630-ac6aba3536d3?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1463780324318-d1a8ddc05a11?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1469334031218-e382a71b716b?auto=format&fit=crop&w=800&q=80"]},PSe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),ESe=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Discover the Dunes & More"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Florence"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(PSe,{attraction:t,index:n},n))})]})})),OSe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},RSe=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From magical forest tunnels to windswept dunes, Florence offers diverse trails for every adventurer. Explore waterfalls, lakes, and dramatic coastal cliffs."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(OSe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),ISe=({hotels:e})=>{const t="Florence",n=["Edwin K Bed & Breakfast"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},X1=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),t3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),MSe=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,7),a=e.slice(7);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Florence"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From fresh crab eaten directly on the river to upscale dining in converted historic buildings, Florence offers a diverse culinary landscape."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Riverfront Dining"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(X1,{restaurant:i},s))})]}),r.jsx(t3,{src:"https://images.unsplash.com/photo-1534080564583-6be75777b70a?auto=format&fit=crop&w=800&q=80",alt:"Seafood dinner with a view",caption:"Fresh seafood served with Siuslaw River views"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(t3,{src:"https://images.unsplash.com/photo-1504674900247-0877df9cc836?auto=format&fit=crop&w=800&q=80",alt:"Hearty pub food",caption:"Farm-to-table favorites and global flavors"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Local Favorites"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(X1,{restaurant:i},s))})]})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Cafes, Sweets & Light Bites"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:a.map((i,s)=>r.jsx(X1,{restaurant:i},s))}),r.jsx("div",{className:"mt-8 text-center",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1551024709-8f23befc6f87?auto=format&fit=crop&w=1200&h=300&q=80",alt:"Coffee and dessert",className:"w-full h-48 object-cover rounded-xl opacity-90"})})]})]})})},LSe=[{name:"Sweet Creek Falls",difficulty:"Easy",distance:"2.0 miles",accessibility:4,description:"A spectacular 2-mile trail featuring 10+ waterfalls, including the stunning 50-foot Sweet Creek Falls. The trail follows the creek through a lush canyon with wooden bridges and viewpoints at every turn.",notes:"Trail can be slippery year-round. Some steep sections. Allow 2-3 hours to fully explore. Northwest Forest Pass required."},{name:"Upper & Lower Kentucky Falls",difficulty:"Moderate",distance:"5.0 miles",accessibility:2,description:"Two massive waterfalls in a remote Coast Range canyon. Upper Kentucky Falls drops 80 feet, while Lower Kentucky plunges 100 feet. One of the most rewarding waterfall hikes in Oregon.",notes:"Moderately strenuous with some elevation gain. Trail can be muddy and slippery. No facilities at trailhead. Allow 3-4 hours round trip."},{name:"Siuslaw Falls",difficulty:"Moderate",distance:"Varies",accessibility:2,description:"A series of cascades on the North Fork of the Siuslaw River, accessible via several different trails of varying difficulty. Less crowded than Sweet Creek or Kentucky Falls.",notes:"Multiple access points - some require river crossings. Best visited in spring for maximum flow. Limited signage."}],DSe=[{title:"Florence Winter Music Festival",date:"January 22–24, 2027"},{title:"Rhododendron Festival",date:"May 13–16, 2027"},{title:"Flo Fest",date:"September 19, 2026"},{title:"Crafts & Classics Festival",date:"August 1, 2026"}],BSe=()=>{v.useEffect(()=>{console.log("FlorencePage mounted")},[]);const e=ke.florence,t=lt("Florence"),n=ct("Florence"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/f96e6b74688eedfb4225959efeeff861.webp";return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Florence, Oregon Dunes and River",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Florence"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Florence"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto town-grid-layout mb-12",children:[r.jsx("div",{className:"town-about-section",children:r.jsx(Cr,{townName:"Florence",initialDescription:Pse})}),r.jsx("div",{className:"town-weather-section",children:r.jsx(yt,{lat:e?.geo?.lat||43.9826,lon:e?.geo?.lng||-124.0998,townName:"Florence"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Florence",townSlug:"florence",lat:e?.geo?.lat||43.9826,lon:e?.geo?.lng||-124.0998})})]}),r.jsx(ht,{townName:"Florence",featuredImage:a,title:"Florence in Photos",images:ASe.images}),r.jsx(dt,{attractions:CN,townName:"Florence"}),r.jsx(ESe,{attractions:CN}),r.jsx(RSe,{trails:X8}),r.jsx(Eh,{townName:"Florence",waterfalls:LSe,headerTitle:"Nearby Waterfalls",headerSubtitle:"Florence sits at the gateway to some of the Oregon Coast Range's most spectacular waterfall hikes - most visitors drive right past without knowing they're there.",ctaText:"Making Florence your base for waterfall hiking? Florence hotels put you within 30 minutes of Sweet Creek Falls, Kentucky Falls, and the Oregon Dunes."}),r.jsx($r,{events:DSe}),r.jsx(ISe,{hotels:Ese}),r.jsx(MSe,{restaurants:Q8})]}),r.jsx(Ye,{})]})},FSe=`Gardiner, often called the "Jamestown of Oregon," sits quietly on the north bank of the Umpqua River, just across from Reedsport. Steeped in history, this small community was once a bustling lumber town and remains one of the most significant historic districts on the Oregon Coast.
Visitors are drawn to Gardiner for its impressive collection of white Victorian homes that line the riverfront, offering a glimpse into the 19th-century prosperity of the region. The silence here is striking, broken only by the cry of gulls and the gentle flow of the massive Umpqua River meeting the Pacific tides.
While it lacks the commercial bustle of its neighbors, Gardiner serves as a peaceful gateway to the Oregon Dunes National Recreation Area and the wildlife-rich Dean Creek Elk Viewing Area. It is a place to slow down, appreciate architecture, and watch the river roll by.`,n3=[{name:"Gardiner Historic District",description:"A walk through Gardiner is a walk through time. The town features several beautifully preserved 19th-century white Victorian homes and buildings, remnants of its days as a booming lumber port.",details:"Walking tour maps often available locally."},{name:"Tsunami Gallery",description:"Located in the heart of Gardiner, this gallery features an eclectic mix of local art, jewelry, and gifts. It's a colorful stop that highlights the creativity of the South Coast region.",details:"Check seasonal hours."},{name:"Free Ceramics Gallery & Bronze Foundry",description:"A working studio and gallery showcasing exquisite ceramics and bronze sculptures. Visitors can often see the artists at work and purchase unique, handcrafted pieces directly from the source.",details:"Artisan craftsmanship."},{name:"St. Mary the Virgin Episcopal Church",description:"A stunning example of Carpenter Gothic architecture. This small, historic white church with its steep roof and lancet windows is a photographer's favorite and a spiritual landmark.",details:"Historic religious site."},{name:"Umpqua River Views",description:"The town offers unobstructed views of the mighty Umpqua River. It's a prime spot for watching fishing boats heading out to sea or simply enjoying the changing light on the water.",details:"Excellent sunset viewing."},{name:"Tahkenitch Lake",description:"Just north of Gardiner, this large coastal lake is a haven for bass fishing and boating. The lake's irregular shoreline provides endless coves and inlets to explore by kayak.",details:"Boat ramp and campground nearby."},{name:"Oregon Dunes Overlook",description:"Located a few miles north, this viewing infrastructure offers spectacular panoramic views of the shifting sand dunes meeting the ocean. Wooden platforms make it accessible for all.",details:"Day use fee required."},{name:"Dean Creek Elk Viewing Area",description:"Just east of Reedsport (minutes away), this reserve is home to a resident herd of Roosevelt elk. They can often be seen grazing in the meadows right off the highway year-round.",details:"Best viewing early morning or late evening."}],zSe=[{name:"Tahkenitch Dunes Trail",distance:"6.0 miles loop",difficulty:"Moderate",description:"A diverse trail leading through dense forest and open dunes to the beach. Depending on the season, you might have the entire stretch of sand to yourself."},{name:"Overlook Beach Trail",distance:"2.3 miles round trip",difficulty:"Moderate",description:"Starting from the Oregon Dunes Overlook, this trail descends through the sand to the ocean. The return trip uphill through soft sand can be a workout!"},{name:"Umpqua River Trail",distance:"Varies",difficulty:"Easy",description:"While not a single continuous path, walking the riverfront in Gardiner offers flat, easy terrain with constant views of the water and historic homes."},{name:"Dean Creek Elk Trail",distance:"0.5 miles easy walk",difficulty:"Easy",description:"Short, paved paths and viewing platforms allow you to get closer to the meadow (safely) to observe the massive elk and other wildlife."},{name:"Oregon Dunes Loop",distance:"1.0 mile loop",difficulty:"Easy/Moderate",description:"A paved loop offering interpretive signs about the dune ecosystem. Sections are wheelchair accessible, making it great for all abilities."},{name:"Bolon Island Tideways Trail",distance:"1.5 miles loop",difficulty:"Moderate",description:"Located just across the bridge, this trail explores a unique estuarine island with ancient myrtlewood trees and views of the Umpqua River bridge."}],$Se=[{name:"Best Western Salbasgeon Inn & Suites",category:"Hotel (Reedsport)",description:"Located just 1 mile south across the bridge in Reedsport. Offers reliable comfort, an indoor pool, and easy access to the river.",amenities:"Indoor pool, breakfast, WiFi."},{name:"Fir Grove Motel",category:"Motel (Reedsport)",description:"A budget-friendly, retro-style motel in nearby Reedsport. Clean rooms and friendly service make it a solid base for exploring the area.",amenities:"Free parking, WiFi, pet-friendly."},{name:"Anchor Bay Inn",category:"Inn (Reedsport)",description:"Another convenient option in Reedsport offering straightforward accommodations near restaurants and the discovery center.",amenities:"Cable TV, microwave, fridge."},{name:"Salmon Harbor Landing",category:"RV Resort",description:"A large RV park in Winchester Bay with full hookups and views of the marina, just a short drive from Gardiner.",amenities:"Full hookups, marina access."}],HSe=[{name:"Gardiner Market & Deli",category:"Deli/Market",description:"The hub of the town. Stops here are mandatory for their famous deli sandwiches, snacks, and perhaps the only cold drink in town. A lifesaver for hikers.",features:"Fresh sandwiches, convenience items, local gossip."},{name:"Rainbow Rock Cafe",category:"American/Casual",description:"A quirky local spot offering hearty American comfort food. Known for friendly service and being one of the few sit-down options actually in Gardiner.",features:"Burgers, breakfast, eclectic decor."}],WSe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-slate-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-slate-900 leading-tight",children:e.name}),r.jsx("div",{className:"bg-slate-100 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-slate-600"})})]}),r.jsx("p",{className:"text-slate-600 mb-6 flex-grow leading-relaxed",children:e.description}),r.jsx("div",{className:"mt-auto pt-4 border-t border-slate-100",children:r.jsx("p",{className:"text-sm font-medium text-slate-700 bg-slate-50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),VSe=({attractions:e})=>r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-slate-50 to-white",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-slate-600 font-bold tracking-wider uppercase text-sm",children:"Historic & Scenic"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-slate-900 mt-2 mb-6",children:"Attractions in Gardiner"}),r.jsx("div",{className:"h-1 w-24 bg-slate-400 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:e.map((t,n)=>r.jsx(WSe,{attraction:t,index:n},n))})]})}),USe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e})},qSe=({trails:e})=>r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-blue-50 to-slate-50",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-blue-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-slate-900 mb-4 flex items-center gap-3",children:[r.jsx(Dk,{className:"w-8 h-8 text-blue-600"}),"Trails & Dunes"]}),r.jsx("p",{className:"text-slate-600 text-lg",children:"Explore the unique transition from river estuary to massive sand dunes."})]})}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:e.map((t,n)=>r.jsx(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-blue-100 transition-all group h-full",children:r.jsxs("div",{className:"flex flex-col justify-between h-full",children:[r.jsxs("div",{children:[r.jsxs("div",{className:"flex justify-between items-start mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-slate-800 group-hover:text-blue-700 transition-colors",children:t.name}),r.jsx(USe,{level:t.difficulty})]}),r.jsx("p",{className:"text-slate-600 leading-relaxed text-sm mb-4",children:t.description})]}),r.jsxs("div",{className:"mt-auto pt-4 border-t border-slate-50 text-sm text-slate-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]})]})},n))})]})}),GSe=()=>{const e="Gardiner",t=[{name:"Best Western Salbasgeon Inn & Suites Of Reedsport",image:"https://drive.google.com/thumbnail?id=1PSeH0ghu10-P3AGwGqHIzo-d-OIIyb4X&sz=w1000",affiliateUrl:"https://expedia.com/affiliate/T06n3oJ",description:"Comfortable suites with modern amenities located conveniently in Reedsport.",rating:4.5},{name:"Economy Inn Reedsport",image:"https://drive.google.com/thumbnail?id=1hn10WpkNDpoQCVfbvWnBMcBPbre9gvRG&sz=w1000",affiliateUrl:"https://expedia.com/affiliate/86T7wG7",description:"Budget-friendly accommodations perfect for travelers exploring the Oregon Coast.",rating:3.5},{name:"Anchor Bay Inn",image:"https://drive.google.com/thumbnail?id=1BK4Cdwqvbk61T4zVd4hMndaeQJfz3GfD&sz=w1000",affiliateUrl:"https://expedia.com/affiliate/mg9V7Qk",description:"Quaint and cozy lodging near the heart of the coastal activity.",rating:4},{name:"Best Budget Inn",image:"https://drive.google.com/thumbnail?id=1SLg78_NcTQP6tsxy6Vz7VZYwbiyrN2JM&sz=w1000",affiliateUrl:"https://expedia.com/affiliate/12zpSQt",description:"Affordable and reliable lodging for visitors on the go.",rating:3},{name:"Winchester Bay Inn",image:"https://drive.google.com/thumbnail?id=1OUkKJX6OtTbN7yRaEX7Yr7wOAUwwzg2T&sz=w1000",affiliateUrl:"https://expedia.com/affiliate/5QIauAF",description:"Scenic views and comfortable rooms located in beautiful Winchester Bay.",rating:4.2}];return r.jsx(mt,{townName:e,fallbackHotels:t,affiliateHotels:t})},KSe=({restaurant:e})=>r.jsxs("div",{className:"bg-white/90 backdrop-blur-sm p-8 rounded-xl border border-emerald-100 hover:border-emerald-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-4",children:[r.jsx("h3",{className:"text-2xl font-bold text-emerald-950",children:e.name}),r.jsx("span",{className:"text-xs font-medium text-emerald-700 bg-emerald-100 px-2 py-1 rounded-md whitespace-nowrap ml-2",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-6 text-base leading-relaxed flex-grow",children:e.description}),r.jsxs("div",{className:"pt-4 border-t border-emerald-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-emerald-800 uppercase tracking-wide mb-1",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),ZSe=({restaurants:e})=>r.jsx("section",{className:"py-24 px-4 bg-gradient-to-b from-green-50 to-emerald-50",children:r.jsxs("div",{className:"max-w-4xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-emerald-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Gardiner"}),r.jsx("div",{className:"bg-white/60 p-4 rounded-lg inline-block mx-auto mt-4 border border-emerald-100",children:r.jsxs("p",{className:"flex items-center gap-2 text-emerald-800 text-sm font-medium",children:[r.jsx(yI,{className:"w-4 h-4"}),"Dining options are limited within the historic district."]})})]}),r.jsx("div",{className:"grid md:grid-cols-2 gap-8",children:e.map((t,n)=>r.jsx(KSe,{restaurant:t},n))}),r.jsx("div",{className:"mt-12 text-center",children:r.jsx("p",{className:"text-gray-500 italic",children:"Looking for more? Reedsport is just a 5-minute drive across the bridge and offers many more dining choices."})})]})}),YSe=()=>{v.useEffect(()=>{console.log("GardinerPage mounted")},[]);const e=ke.gardiner,t=lt("Gardiner"),n=ct("Gardiner"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/b4066023187b60adc59587c738bf4819.jpg";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Gardiner, Oregon Historic District",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Gardiner"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Gardiner"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Gardiner Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:FSe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"A historic timber town overlooking the Umpqua River with distinct 19th-century architecture."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||43.7315,lon:e?.geo?.lng||-124.1126,townName:"Gardiner"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Gardiner",townSlug:"gardiner",lat:e?.geo?.lat||43.7315,lon:e?.geo?.lng||-124.1126})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Gardiner",featuredImage:a,title:"Historic Gardiner Gallery"})}),r.jsx(dt,{attractions:n3,townName:"Gardiner"}),r.jsx(VSe,{attractions:n3}),r.jsx(qSe,{trails:zSe}),r.jsx(GSe,{hotels:$Se}),r.jsx(ZSe,{restaurants:HSe})]}),r.jsx(Ye,{})]})},JSe=`Welcome to Garibaldi, "Oregon's Authentic Fishing Village." Nestled at the northern entrance of Tillamook Bay, this historic maritime community offers a genuine slice of coastal life where the rhythm of the tides still dictates the day. Unlike more polished tourist destinations, Garibaldi retains its hardworking, salty charm, serving as the gateway to some of the best fishing, crabbing, and clamming on the Pacific Northwest coast.
The town is dominated by the iconic 900-foot Port of Garibaldi pier and the historic "big G" on the hillside, a landmark guiding mariners since the 1920s. Visitors can watch commercial trawlers unload their daily catch, embark on deep-sea fishing charters, or hop aboard the Oregon Coast Scenic Railroad for a nostalgic steam train ride along the bay. Whether you're exploring the maritime museum, kayaking the calm waters of the estuary, or simply enjoying the freshest seafood straight from the docks, Garibaldi offers an unpretentious and deeply memorable coastal adventure.`,r3=[{name:"Port of Garibaldi Marina",description:"The heartbeat of the town. Walk the docks to see commercial fishing vessels, charter boats, and crabbing activity. It's a photographer's dream and the best place to buy fresh seafood directly from the source.",details:"Marina & Docks"},{name:"Pier's End",description:"Extending 700 feet into Tillamook Bay, this public pier offers excellent fishing and crabbing opportunities without needing a boat. It also provides stunning views of the bay and the distant bar.",details:"Fishing Pier"},{name:"Oregon Coast Scenic Railroad",description:"Garibaldi serves as a main depot for this heritage steam train. Take a nostalgic ride along the coastline to Rockaway Beach, enjoying ocean views and the rhythmic sound of the vintage locomotive.",details:"Historic Train"},{name:"Garibaldi Maritime Museum",description:"Dedicated to the maritime history of the Pacific Northwest, this museum features exhibits on Captain Robert Gray, early exploration, and the local fishing industry's rich heritage.",details:"Museum"},{name:"Fishpeople Seafood Market",description:"Located right at the port, this market offers sustainably caught local seafood. It's the perfect spot to pick up fresh Dungeness crab, oysters, and fish to cook at your vacation rental.",details:"Local Seafood"},{name:"Myrtlewood Factory Outlet",description:"Explore handcrafted items made from the rare and beautiful Myrtlewood tree, native to this region. A great spot for unique Oregon souvenirs and woodworking craftsmanship.",details:"Shopping"},{name:"Tillamook Bay Kayaking",description:"The calm waters of the bay offer exceptional kayaking and paddleboarding. Launch from the port to explore the estuary, spot harbor seals, and watch for varied coastal birdlife.",details:"Water Sports"},{name:"Annual Events",description:"Garibaldi hosts vibrant community events like Garibaldi Days in July, featuring a parade and fireworks, and the Blessing of the Fleet, honoring the town's fishing tradition.",details:"Festivals"}],XSe=[{name:"Barview Jetty Walk",distance:"1.5 miles",difficulty:"Easy",elevation:"Flat",description:"Located just north of town, this paved and sandy path takes you out onto the jetty. Watch powerful waves crash against the rocks and spot ships crossing the treacherous Tillamook Bay Bar."},{name:"Manhattan Beach State Recreation Site",distance:"0.5 miles",difficulty:"Easy",elevation:"Flat",description:"A short, gentle trail through beach pine and dunes leads to a wide, sandy beach. Perfect for a quick sunset walk or a picnic away from the crowds."},{name:"Nehalem Bay State Park Trails",distance:"1.8 miles",difficulty:"Easy",elevation:"Flat",description:"A paved bike and walking path that winds through shore pines and along the bay. It's a peaceful, accessible route great for families and cyclists."},{name:"Cape Meares Loop Trail",distance:"0.2 miles",difficulty:"Easy",elevation:"Minimal",description:"A short drive from Garibaldi, this trail offers spectacular views of the lighthouse, the 'Octopus Tree,' and potential whale watching spots from the cliffs."},{name:"Kilchis Point Reserve",distance:"2 miles",difficulty:"Easy",elevation:"Flat",description:"Located along Tillamook Bay, this interpretive trail features paved and gravel paths through wetlands and spruce forests, highlighting Native American history and local flora."},{name:"Bay Ocean Spit",distance:"4-8 miles",difficulty:"Moderate",elevation:"Flat",description:"Explore the site of a 'lost resort town' that fell into the sea. This long sandy spit separates the bay from the ocean and offers solitude and excellent birdwatching."}],QSe=[{name:"The Hotel Garibaldi",category:"Hotel",description:"A comfortable, modern hotel located in the heart of town. Features an indoor pool, sauna, and easy access to the marina and train depot.",amenities:"Pool, Breakfast, WiFi"},{name:"Garibaldi Inn at the Bay",category:"Inn",description:"A budget-friendly and cozy option offering clean rooms and friendly service. A convenient base camp for fishing trips and coastal exploration.",amenities:"Pet Friendly, Free Parking"},{name:"Harborview Inn & RV Park",category:"Inn/RV Park",description:"Located directly overlooking the boat basin, offering motel rooms and RV spaces. Guests love the immediate access to the docks and crabbing spots.",amenities:"Marina Views, RV Sites"},{name:"Barview Jetty County Campground",category:"Campground",description:"Just north of Garibaldi, this popular campground offers tent and RV sites nestled in the woods or right by the beach. Famous for its jetty access.",amenities:"Camping, Beach Access"},{name:"Vacation Rentals",category:"Rentals",description:"Various private homes and cottages are available throughout town, many with stunning views of Tillamook Bay and full kitchens for cooking your fresh catch.",amenities:"Kitchens, Bay Views"}],eCe=[{name:"Pirate's Cove Restaurant",category:"Seafood",description:"A local landmark offering stunning views of the bay and the 'Three Graces' rock formation. Known for its fresh oysters, clam chowder, and friendly atmosphere.",features:"Bay Views, Seafood"},{name:"Garibaldi Portside Bistro",category:"Bistro/Fusion",description:"A culinary gem serving elevated coastal cuisine. Famous for their smoked brisket, creative seafood dishes, and high-quality ingredients.",features:"Gourmet, Smoked Meats"},{name:"Fisherman's Korner Restaurant",category:"Diner",description:"A classic, no-frills diner that opens early for the fishermen. Serves hearty breakfasts, massive burgers, and traditional fish and chips.",features:"Early Breakfast, hearty Portions"},{name:"Ghost Hole Public House",category:"Pub",description:"A modern pub named after a famous local fishing spot. Offers a great selection of craft beers, cocktails, and a menu of elevated pub fare.",features:"Craft Beer, Cocktails"},{name:"Crab Rock Pizza",category:"Pizza",description:"A family-friendly spot serving delicious pizzas, salads, and grinders. A perfect place to relax after a long day on the water.",features:"Family Friendly, Takeout"}],tCe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-blue-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-blue-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed text-sm",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-xs font-bold text-blue-700 bg-blue-50/50 inline-block px-3 py-1 rounded-md uppercase tracking-wider",children:e.details})})]})}),nCe=({attractions:e})=>!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-blue-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-blue-600 font-bold tracking-wider uppercase text-sm",children:"Discover the Bay"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Garibaldi Attractions"}),r.jsx("div",{className:"h-1 w-24 bg-blue-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:e.map((t,n)=>r.jsx(tCe,{attraction:t,index:n},n))})]})}),rCe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},aCe=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-blue-600"}),"Hiking & Nature Walks"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Explore the rugged beauty of Tillamook Bay, from jetty walks to forest trails."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-blue-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(rCe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),iCe=({hotels:e})=>{const t="Garibaldi",n=["Barview Jetty County Campground","Vacation Rentals"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},Q1=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-blue-100 hover:border-blue-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-blue-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-blue-600 bg-blue-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-blue-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-blue-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),a3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-blue-500 pl-3",children:n})})]}),sCe=({restaurants:e})=>{if(v.useEffect(()=>{(!e||e.length===0)&&console.warn("RestaurantsSection: No restaurant data provided")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-blue-50 text-center",children:r.jsx("p",{className:"text-blue-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2,4),a=e.slice(4);return r.jsx("section",{className:"py-24 px-4 bg-blue-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-blue-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Garibaldi"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Fresh seafood straight from the boat, hearty fisherman's breakfasts, and local pub favorites."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-blue-900 border-b-2 border-blue-200 pb-2 inline-block",children:"Portside Favorites"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(Q1,{restaurant:i},s))})]}),r.jsx(a3,{src:"https://images.unsplash.com/photo-1534080564583-6be75777b70a?auto=format&fit=crop&w=800&q=80",alt:"Seafood dinner",caption:"Dine watching the fishing boats"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(a3,{src:"https://images.unsplash.com/photo-1551024709-8f23befc6f87?auto=format&fit=crop&w=800&q=80",alt:"Pub food",caption:"Local pub fare & brews"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-blue-900 border-b-2 border-blue-200 pb-2 inline-block ml-auto",children:"Casual Eats"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(Q1,{restaurant:i},s))})]})]}),a.length>0&&r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-blue-900 mb-8 text-center",children:"More Local Spots"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:a.map((i,s)=>r.jsx(Q1,{restaurant:i},s))})]})]})})},oCe=()=>{v.useEffect(()=>{console.log("GaribaldiBPage mounted")},[]);const e=ke.garibaldi,t=lt("Garibaldi"),n=ct("Garibaldi"),a=jn.garibaldi;return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Garibaldi Oregon Travel",description:n,url:"https://oregoncoastal.com/town/garibaldi",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Garibaldi, Oregon Marina and Bay",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Garibaldi"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Garibaldi"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12",children:[r.jsx("div",{className:"lg:col-span-2",children:r.jsx(Cr,{townName:"Garibaldi",initialDescription:JSe},"Garibaldi-About")}),r.jsx("div",{className:"lg:col-span-1",children:r.jsx(yt,{lat:e?.geo?.lat||45.5587,lon:e?.geo?.lng||-123.9168,townName:"Garibaldi"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Garibaldi",townSlug:"garibaldi",lat:e?.geo?.lat||45.5587,lon:e?.geo?.lng||-123.9168})})]}),r.jsx(ht,{townName:"Garibaldi",featuredImage:a,title:"Garibaldi in Photos"}),r.jsx(dt,{attractions:r3,townName:"Garibaldi"}),r.jsx(nCe,{attractions:r3}),r.jsx(aCe,{trails:XSe}),r.jsx(iCe,{hotels:QSe}),r.jsx(sCe,{restaurants:eCe})]}),r.jsx(Ye,{})]})},lCe=`Nestled between the lively town of Seaside and the dunes of Warrenton, Gearhart offers a serene escape defined by its upscale charm, historic golf courses, and quiet, expansive beaches. It is a town where time seems to slow down, inviting visitors to stroll through neighborhood streets lined with shingled cottages and roaming herds of elk.
Gearhart is perhaps best famous for the Gearhart Golf Links, the oldest golf course west of the Mississippi River, which anchors the town's identity. Beyond the fairways, the town boasts a pristine, driving-allowed beach that is a favorite for clamming, beachcombing, and watching spectacular sunsets without the crowds found elsewhere on the coast.
With no traffic lights and a small, walkable downtown, Gearhart preserves a classic coastal village atmosphere. Whether you're enjoying a pastry at the Pacific Way Bakery, hiking the Ridge Path, or simply watching the dune grass sway in the breeze, Gearhart provides a peaceful, sophisticated retreat on the Oregon North Coast.`,i3=[{id:1,name:"Gearhart Beach",description:"A wide, flat, and sandy beach that stretches for miles. Unlike many other beaches, driving is permitted here, making it popular for accessing prime razor clamming spots or enjoying a tailgate sunset.",details:"Beach Driving & Clamming",image:"https://images.unsplash.com/photo-1615579989635-c2668c62c943?auto=format&fit=crop&w=800&q=80"},{id:2,name:"Gearhart Golf Links",description:"Established in 1892, this is the oldest golf course west of the Mississippi River. It offers a true Scottish links-style experience among the dunes, open to the public for a historic round of golf.",details:"Historic Golf Course",image:"https://images.unsplash.com/photo-1587174486073-ae5e5cff23aa?auto=format&fit=crop&w=800&q=80"},{id:3,name:"Necanicum Estuary",description:"Where the Necanicum River meets the ocean, this estuary is a haven for birdwatchers and nature lovers. It creates a natural border between Gearhart and Seaside, rich with coastal wildlife.",details:"Nature & Wildlife",image:"https://images.unsplash.com/photo-1441974231531-c6227db76b6e?auto=format&fit=crop&w=800&q=80"},{id:4,name:"McMenamins Gearhart Hotel",description:"Located at the golf course, this historic building serves as the social hub of the town. Even if you aren't staying, the Sand Trap pub and the surrounding grounds are worth a visit for their history and atmosphere.",details:"Historic Hotel & Dining",image:"https://images.unsplash.com/photo-1566073771259-6a8506099945?auto=format&fit=crop&w=800&q=80"},{id:5,name:"Gearhart Ridge Path",description:"A paved path that runs along the dunes, offering elevated views of the ocean and the beach grass. It's a favorite local spot for morning walks and evening strolls away from vehicles.",details:"Walking Path",image:"https://images.unsplash.com/photo-1476514525535-07fb3b4ae5f1?auto=format&fit=crop&w=800&q=80"},{id:6,name:"Historic Downtown Gearhart",description:"A tiny, charming town center featuring a few select shops, galleries, and cafes. It captures the essence of a quiet coastal village, perfect for a leisurely afternoon browse.",details:"Shopping & Culture",image:"https://images.unsplash.com/photo-1519451241324-20b4ea2c4220?auto=format&fit=crop&w=800&q=80"}],cCe=[{name:"Gearhart Ridge Path Loop",distance:"2.5 miles",difficulty:"Easy",type:"Loop",description:"A gentle, paved and gravel path winding through the dunes and neighborhoods of Gearhart. Perfect for viewing the famous local elk herds and enjoying ocean breezes.",icon:"Footprints"},{name:"Gearhart Beach Walk",distance:"4.0 miles",difficulty:"Easy",type:"Out & Back",description:"Walk as far as you like on the flat, hard-packed sand. Head north towards the shipwreck remains at very low tides or south towards the Necanicum estuary.",icon:"Waves"},{name:"Necanicum Estuary Trail",distance:"1.5 miles",difficulty:"Easy",type:"Out & Back",description:"A nature walk exploring the wetlands where the river meets the sea. Excellent for birdwatching, especially during migration seasons.",icon:"Bird"},{name:"Tillamook Head Traverse",distance:"6.3 miles",difficulty:"Moderate/Hard",type:"Point-to-Point",description:"Located just south near Seaside, this famous trail traces the Lewis and Clark expedition route over the headland, offering stunning cliffside views.",icon:"Mountain"},{name:"Youngs River Falls Trail",distance:"0.5 miles",difficulty:"Easy",type:"Out & Back",description:"A short drive inland takes you to this impressive 54-foot waterfall. A short, easy hike leads to the base of the falls, a perfect swimming hole in summer.",icon:"Water"},{name:"Saddle Mountain Trail",distance:"5.2 miles",difficulty:"Strenuous",type:"Out & Back",description:"For those seeking a challenge nearby, this trail offers the highest point in the northern coast range with panoramic views from the Columbia to the Pacific.",icon:"Summit"}],dCe=[{id:1,name:"McMenamins Gearhart Hotel",category:"Historic Hotel",description:"Situated right on the golf links, this boutique hotel offers classic McMenamins style with artwork, history, and direct access to the Sand Trap Pub.",features:["On Golf Course","Historic","Restaurant/Bar","Pet Friendly"]},{id:2,name:"The Drifthaven at Gearhart",category:"Boutique Inn",description:"A charming, renovated boutique inn offering a cozy, personalized coastal experience. Known for its curated decor and proximity to the beach.",features:["Boutique Style","Fire Pits","Beach Cruisers","Breakfast Basket"]},{id:3,name:"Gearhart by the Sea",category:"Condo Resort",description:"A large resort complex offering individually owned condos with ocean views. Features swimming pools and direct access to the beach and golf course.",features:["Ocean Views","Swimming Pools","Kitchens","Family Friendly"]},{id:5,name:"Nearby Seaside Options",category:"Various",description:"Just a few minutes south, the town of Seaside offers extensive lodging options ranging from budget motels to large riverfront resorts if Gearhart is booked.",features:["More Availability","Close Proximity","Pools","Oceanfront"]}],uCe=[{id:1,name:"Pacific Way Bakery & Cafe",cuisine:"Bakery & Cafe",description:"The heart of downtown Gearhart, famous for its morning pastries, coffee, and delicious lunch options. A must-visit for a relaxed start to the day.",price:"$$"},{id:2,name:"McMenamins Sand Trap Bar & Grill",cuisine:"Pub Fare",description:"Located at the golf course, serving classic Northwest pub fare, ales, and wines. The patio offers great views of golfers finishing their rounds.",price:"$$"},{id:3,name:"Prep Kitchen Gearhart",cuisine:"Northwest / American",description:"A local favorite offering fresh, seasonal dishes and excellent cocktails. Known for its cozy atmosphere and high-quality ingredients.",price:"$$$"},{id:4,name:"Good Times",cuisine:"Ice Cream & Snacks",description:"A delightful spot for a sweet treat after a day at the beach. Serving ice cream and snacks in a friendly, nostalgic setting.",price:"$"},{id:5,name:"Fultano's Pizza",cuisine:"Pizza & Italian",description:"A reliable coastal chain offering hot pizzas, salads, and family-friendly dining. Perfect for takeout to enjoy back at your rental or on the beach.",price:"$$"},{id:6,name:"Nearby Dining",cuisine:"Various",description:"For more extensive dining options, including seafood fine dining and international cuisine, nearby Seaside and Astoria are just a short drive away.",price:"$-$$$$"}],hCe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),fCe=({attractions:e})=>!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Explore the Charm"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Gearhart"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(hCe,{attraction:t,index:n},n))})]})}),mCe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},pCe=({trails:e})=>!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From peaceful dune walks to challenging nearby mountain climbs, Gearhart is a gateway to diverse coastal trails."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(mCe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})}),gCe=({hotels:e})=>{const t="Gearhart",n=["Nearby Seaside Options","Gearhart by the Sea"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},ej=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.cuisine&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.cuisine})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.price&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Price Range"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.price})]})]}),s3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),xCe=({restaurants:e})=>{if(!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2,4),a=e.slice(4);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Gearhart"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Enjoy intimate cafes, historic pub fare, and delicious local treats in a relaxed, crowd-free atmosphere."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Local Favorites"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(ej,{restaurant:i},s))})]}),r.jsx(s3,{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80",alt:"Cozy cafe dining",caption:"Charming local spots"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(s3,{src:"https://images.unsplash.com/photo-1514933651103-005eec06c04b?auto=format&fit=crop&w=800&q=80",alt:"Pub food and drinks",caption:"Relaxed coastal dining"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Casual & Sweet"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(ej,{restaurant:i},s))})]})]}),a.length>0&&r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"More Delicious Options"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:a.map((i,s)=>r.jsx(ej,{restaurant:i},s))})]})]})})},yCe=()=>{v.useEffect(()=>{console.log("GearheartPage mounted")},[]);const e=ke.gearhart,t=lt("Gearhart"),n=ct("Gearhart"),a=jn.gearhart;return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n}),r.jsx("script",{type:"application/ld+json",children:JSON.stringify({"@context":"https://schema.org","@type":"TouristDestination",name:"Gearhart",description:n,touristType:["GolfCourse","Beach"],geo:{"@type":"GeoCoordinates",latitude:46.027,longitude:-123.9189}})})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Gearhart, Oregon Coast",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Gearhart"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Gearhart"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12",children:[r.jsx("div",{className:"lg:col-span-2",children:r.jsx(Cr,{townName:"Gearhart",initialDescription:lCe},"Gearhart-About")}),r.jsx("div",{className:"lg:col-span-1",children:r.jsx(yt,{lat:e?.geo?.lat||46.027,lon:e?.geo?.lng||-123.9189,townName:"Gearhart"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Gearhart",townSlug:"gearhart",lat:e?.geo?.lat||46.027,lon:e?.geo?.lng||-123.9189})})]}),r.jsx(ht,{townName:"Gearhart",featuredImage:a,title:"Gearhart in Photos"}),r.jsx(dt,{attractions:i3,townName:"Gearhart"}),r.jsx(fCe,{attractions:i3}),r.jsx(pCe,{trails:cCe}),r.jsx(gCe,{hotels:dCe}),r.jsx(xCe,{restaurants:uCe})]}),r.jsx(Ye,{})]})},vCe=`Escape to Gleneden Beach, a sophisticated coastal retreat nestled between Lincoln City and Depoe Bay. Known for its pounding surf, dramatic sandstone bluffs, and the world-class Salishan Coastal Lodge, this community offers a more refined and quiet experience than its bustling neighbors. It is a place where luxury meets the raw beauty of the Oregon Coast.
The centerpiece of the area is the Salishan spit and Siletz Bay, offering a unique ecosystem where river waters mix with the Pacific. Visitors can explore the Salishan Marketplace for artisan shopping, enjoy a round of golf on the legendary Peter Jacobsen-designed course, or simply walk miles of uncrowded shoreline where ancient driftwood piles up against the cliffs. The sand here is coarser and the waves steeper, making for spectacular storm watching and seal spotting.
Whether you are indulging in a spa treatment, hiking through old-growth spruce forests to reach the bay, or enjoying a meal at the renowned Side Door Cafe, Gleneden Beach provides a perfect balance of relaxation and nature. It is an ideal destination for couples seeking a romantic getaway or anyone looking to recharge in style by the sea.`,o3=[{name:"Salishan Golf Links",description:"A legendary 18-hole course originally designed by Peter Jacobsen. It winds through rugged coastal pines and along the Siletz Bay, offering challenging play with stunning scenery at every hole.",details:"Open to the public. Pro shop and driving range available.",address:"7760 US-101, Gleneden Beach, OR"},{name:"Gleneden Beach State Recreation Site",description:"The primary public access to the beach. A beautiful spot for a picnic or beach walk, known for its soft sand, large driftwood logs, and the opportunity to spot whales just offshore.",details:"Free parking, restrooms, and picnic tables.",address:"US-101, Gleneden Beach, OR"},{name:"Fishing Rock State Recreation Site",description:"A hidden gem located just north of the main town. A short trail leads to a dramatic headland offering panoramic views of the ocean and a perfect vantage point for whale watching.",details:"Day-use only. Great for photography.",address:"Fishing Rock St, Gleneden Beach, OR"},{name:"Salishan Marketplace",description:"An upscale, open-air shopping center featuring art galleries, a candy shop, coffee house, and boutiques. A perfect place to spend a rainy afternoon browsing local artisan goods.",details:"Located across Hwy 101 from the lodge.",address:"7755 US-101, Gleneden Beach, OR"},{name:"Alder House Glass Blowing",description:"One of the oldest glass blowing studios in Oregon. Visit during the summer season to watch artists shape molten glass into incredible vases and floats, set in a rustic wooded location.",details:"Seasonal hours (check ahead).",address:"611 Immonen Rd, Gleneden Beach, OR"},{name:"Eden Hall",description:"A historic community hall that hosts concerts, weddings, and local events. It stands as a testament to the tight-knit community spirit of Gleneden Beach.",details:"Check local listings for events.",address:"6675 Gleneden Beach Loop, Gleneden Beach, OR"},{name:"Siletz Bay National Wildlife Refuge",description:"Located at the south end of Gleneden Beach, this refuge protects salt marsh, brackish marsh, and mudflats. It's a prime spot for birdwatching, kayaking, and seeing the 'ghost forest' pilings.",details:"Best viewed by kayak or from Hwy 101 pullouts.",address:"Siletz Bay, Gleneden Beach, OR"}],bCe=[{name:"Salishan Nature Trails",distance:"2.5 miles loop",difficulty:"Easy",elevation:"Flat",description:"A private but publicly accessible network of trails winding through the Salishan spit. Walk through dense coastal forests and along the bayfront to reach a secluded stretch of beach."},{name:"Fishing Rock Trail",distance:"0.5 miles round trip",difficulty:"Easy",elevation:"50 ft gain",description:"A short, rewarding walk through salal tunnels to a rocky bluff. The endpoint offers dizzying views of the crashing waves below and is a top spot for sunset."},{name:"Gleneden Beach Walk",distance:"Varies (up to 4 miles)",difficulty:"Moderate",elevation:"Flat (Sand)",description:"Walk the shoreline from the state recreation site. The beach here is steeper with coarser sand than Lincoln City, offering a more rugged workout and excellent agate hunting."},{name:"Fogarty Creek Trail",distance:"1 mile loop",difficulty:"Easy",elevation:"Flat",description:"Located just north of town, this trail follows a creek through a wind-protected canyon under spruce trees, emerging at a sheltered cove perfect for rock hounding."},{name:"Cedar Creek Trail",distance:"1.5 miles round trip",difficulty:"Easy",elevation:"100 ft gain",description:"A quiet forest walk located near the local community center. It offers a peaceful escape into the second-growth timber and fern-filled gullies typical of the central coast."}],wCe=[{name:"Salishan Coastal Lodge",category:"Luxury Resort",description:"The crown jewel of Gleneden Beach. This eco-friendly resort features rustic-luxe rooms with fireplaces, a world-class spa, tennis center, golf course, and multiple dining options nestled in the forest.",amenities:"Spa, golf course, aerial park, indoor pool, pet-friendly."},{name:"WorldMark Gleneden",category:"Resort/Condos",description:"Perched on a cliff overlooking the ocean, offering spacious condo-style units with full kitchens. Features a large outdoor pool and direct beach access via a steep staircase.",amenities:"Outdoor pool, hot tub, recreation center, kid-friendly."},{name:"Cavalier Beachfront Condominiums",category:"Vacation Rentals",description:"Located right on the oceanfront, these privately owned condos offer spectacular views and easy beach access. A great option for families wanting a home-away-from-home experience.",amenities:"Full kitchens, ocean views, indoor pool, recreation room."},{name:"Vacation Rentals",category:"Private Rentals",description:"Gleneden Beach has a wide selection of high-end vacation rental homes, from beachfront estates to cozy forest cabins, managed by local agencies like Meredith Lodging.",amenities:"Varies by property; many feature hot tubs and ocean decks."}],jCe=[{name:"The Attic Lounge",category:"Upscale Lounge",description:"Located at Salishan Lodge, offering sweeping views of the golf course and bay. Known for craft cocktails, gourmet wood-fired pizza, and a sophisticated rustic vibe.",features:"Views, craft cocktails, live music weekends."},{name:"Side Door Cafe",category:"Fine Dining",description:"A hidden gem located in the Eden Hall building. Famous for its locally sourced menu, fresh seafood, and intimate atmosphere. Reservations are highly recommended.",features:"Farm-to-table, extensive wine list, romantic."},{name:"Beachcrest Brewing",category:"Brewery/Pub",description:"Located in the Salishan Marketplace, this brewery offers small-batch craft beers and wood-fired pizzas. It features a large deck with ocean peeks and frequent live music.",features:"Craft beer, wood-fired pizza, live music."},{name:"Salishack Tavern",category:"Casual Tavern",description:"A relaxed, local favorite for hearty comfort food and a great beer selection. Known for its friendly atmosphere and innovative takes on tavern classics.",features:"Outdoor seating, local taps, comfort food."},{name:"Hook & Slice",category:"Casual",description:"Located at the golf clubhouse, offering casual fare like burgers and salads with a view of the greens. Open to the public for lunch and early dinner.",features:"Golf course views, patio seating, lunch."},{name:"Provisions Market",category:"Cafe/Breakfast",description:"The perfect spot for a morning latte or a healthy lunch. Located in the Salishan Marketplace, offering gourmet sandwiches, pastries, and local goods.",features:"Gourmet coffee, outdoor seating, grab-and-go."},{name:"Depoe Baykery",category:"Bakery",description:"A beloved local bakery with a location in the Marketplace. Famous for their donuts, fresh breads, and sweet treats to start your morning right.",features:"Fresh donuts, artisan bread, coffee."}],NCe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name}),r.jsx("div",{className:"bg-blue-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-blue-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-blue-700 bg-blue-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),kCe=({attractions:e})=>!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-blue-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-blue-600 font-bold tracking-wider uppercase text-sm",children:"Discover Gleneden"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Highlights & Hidden Gems"}),r.jsx("div",{className:"h-1 w-24 bg-blue-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6",children:e.map((t,n)=>r.jsx(NCe,{attraction:t,index:n},n))})]})}),_Ce=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Easy),children:e})},SCe=({trails:e})=>!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Nature Trails & Beach Walks"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Explore the unique ecosystems of Gleneden Beach, from the manicured paths of Salishan to the rugged sandstone bluffs of Fishing Rock."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(_Ce,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})}),CCe=({hotels:e})=>{const t="Gleneden Beach",n=["Vacation Rentals"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},tj=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),l3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),TCe=({restaurants:e})=>{if(v.useEffect(()=>{(!e||e.length===0)&&console.warn("RestaurantsSection: No restaurant data provided")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2,5),a=e.slice(5,7);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Gleneden Beach"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From romantic dinners in the forest to casual bites at the golf course, discover the flavors of this coastal enclave."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Fine Dining & Lounges"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(tj,{restaurant:i},s))})]}),r.jsx(l3,{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80",alt:"Upscale dining atmosphere",caption:"Elegant dining with coastal ambiance"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(l3,{src:"https://images.unsplash.com/photo-1575444758702-4a6b9222336e?auto=format&fit=crop&w=800&q=80",alt:"Craft beer and pizza",caption:"Local brews and wood-fired favorites"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Brews & Casual Eats"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(tj,{restaurant:i},s))})]})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Marketplace Treats"}),r.jsx("div",{className:"grid md:grid-cols-2 gap-6 max-w-4xl mx-auto",children:a.map((i,s)=>r.jsx(tj,{restaurant:i},s))}),r.jsx("div",{className:"mt-8 text-center",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1509440159596-0249088772ff?auto=format&fit=crop&w=1200&h=300&q=80",alt:"Bakery bread and coffee",className:"w-full h-48 object-cover rounded-xl opacity-90 shadow-md"})})]})]})})},ACe=()=>{v.useEffect(()=>{console.log("GlenedenBeachPage mounted")},[]);const e="Gleneden Beach",t=lt(e),n=ct(e),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/198018a5878ad5fcf6cafddb42efb27d.webp",i={name:e,description:n,image:a,geo:{lat:44.8879,lng:-124.0326},url:"https://oregoncoastal.com/town/gleneden-beach"};return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsx(Mt,{...i}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Gleneden Beach coastline",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Gleneden Beach"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-2",children:"Gleneden Beach"}),r.jsx(F.p,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.3,duration:.8},className:"text-xl text-white/90 font-light tracking-wide drop-shadow-md mb-4",children:"Sophisticated Coastal Retreat"}),r.jsx("div",{className:"h-1.5 w-32 bg-blue-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Gleneden Beach Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:vCe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Located on the beautiful Oregon Coast, Gleneden Beach offers sophisticated lodging and rugged beaches."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:i.geo.lat,lon:i.geo.lng,townName:"Gleneden Beach"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Gleneden Beach",townSlug:"gleneden-beach",lat:i.geo.lat,lon:i.geo.lng})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Gleneden Beach",featuredImage:a,title:"Gleneden Beach in Photos"})}),r.jsx(dt,{attractions:o3,townName:"Gleneden Beach"}),r.jsx(kCe,{attractions:o3}),r.jsx(SCe,{trails:bCe}),r.jsx(CCe,{hotels:wCe}),r.jsx(TCe,{restaurants:jCe})]}),r.jsx(Ye,{})]})},PCe=`
<p>Gold Beach, Oregon, is where the wild Rogue River meets the Pacific Ocean. Known for its rugged beauty and endless outdoor adventure, this coastal gem offers a unique blend of river and ocean experiences that define the South Coast spirit.</p>
<p>From the thrilling jet boat tours that sprint up the Rogue to the peaceful serenity of the surrounding Siskiyou National Forest, Gold Beach is a sanctuary for nature lovers. Visitors come here to escape the crowds, explore pristine beaches, and witness some of the most dramatic coastline in the Pacific Northwest.</p>
`,c3=[{id:"rogue-river-jet-boats",name:"Rogue River Jet Boat Tours",description:"Experience the thrill of racing up the legendary Rogue River. These tours offer a mix of high-speed excitement, wildlife viewing, and historical storytelling through the wild and scenic sections of the river.",image:"https://images.unsplash.com/photo-1544551763-46a013bb70d5",category:"Adventure"},{id:"cape-sebastian",name:"Cape Sebastian State Scenic Corridor",description:"Rising 700 feet above the ocean, this cape offers some of the most spectacular panoramic views on the Oregon Coast. It's a prime spot for whale watching during migration seasons.",image:"https://images.unsplash.com/photo-1500530855697-b586d89ba3ee",category:"Nature"},{id:"kissing-rock",name:"Kissing Rock",description:"A famous roadside rock formation located just south of town. This unique geological feature is a popular photo spot and provides easy access to a beautiful stretch of sandy beach.",image:"https://images.unsplash.com/photo-1505245208761-ba47250f367c",category:"Landmark"}],ECe=[{id:"cape-sebastian-trail",name:"Cape Sebastian Trail",distance:"1.5 miles",difficulty:"Moderate",description:"A scenic trail that winds through spruce forests to the edge of the cliffs, offering breathtaking views of the coastline looking south toward California."},{id:"myers-creek-beach",name:"Myers Creek Beach Walk",distance:"2.0 miles",difficulty:"Easy",description:"A flat, accessible walk along one of the most photographed beaches in Oregon, featuring dramatic sea stacks and tide pools."}],OCe=[{id:"tu-tu-tun-lodge",name:"Tu Tu' Tun Lodge",description:"A world-class resort nestled on the banks of the Rogue River, offering luxury accommodations and fine dining in a tranquil forest setting.",image:"https://images.unsplash.com/photo-1566073771259-6a8506099945"},{id:"gold-beach-inn",name:"Gold Beach Inn",description:"Oceanfront lodging with private beach access and comfortable rooms, perfect for families exploring the coast.",image:"https://images.unsplash.com/photo-1520250497591-112f2f40a3f4"}],RCe=[{id:"barnacle-bills",name:"Barnacle Bill's Seafood Market",description:"The place for fresh-caught local seafood, famous for their fish and chips and smoked salmon.",image:"https://images.unsplash.com/photo-1551730459-92db2a308d6a"},{id:"spinner-s",name:"Spinner's Seafood, Steak & Chop House",description:"Upscale dining featuring the best of local ingredients, from fresh Pacific catches to premium steaks.",image:"https://images.unsplash.com/photo-1533920379810-6bedac961555"}],ICe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),MCe=({attractions:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("AttractionsSection: No attractions data provided")},[e]),!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Experience the Adventure"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Gold Beach"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(ICe,{attraction:t,index:n},n))})]})})),LCe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200","Moderate/Strenuous":"bg-orange-100 text-orange-800 border-orange-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},DCe=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Discover the rugged beauty of the Southern Coast. From ancient old-growth forests to windswept dunes and dramatic headlands, Gold Beach offers diverse trails for every explorer."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(LCe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),BCe=({hotels:e})=>{const t="Gold Beach";return r.jsx(mt,{townName:t,fallbackHotels:e,affiliateHotels:st[t]})},FCe=e=>e?.toString().toLowerCase().replace(/\s+/g,"-").replace(/[^\w-]/g,"")||"",ey=({restaurant:e})=>r.jsxs("div",{id:FCe(e?.name),className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md scroll-mt-24 h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),d3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),zCe=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,5),a=e.slice(5,7),i=e.slice(7);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Gold Beach"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From fresh river salmon and ocean seafood to hearty logger-style breakfasts, the flavors of Gold Beach are as bold as its scenery."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"River & Ocean Dining"}),r.jsx("div",{className:"grid gap-6",children:t.map((s,o)=>r.jsx(ey,{restaurant:s},o))})]}),r.jsx(d3,{src:"https://images.unsplash.com/photo-1450494612745-731d0fd7e172?auto=format&fit=crop&w=800&q=80",alt:"Fine dining seafood",caption:"Exquisite seafood with river views"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(d3,{src:"https://images.unsplash.com/photo-1514933651103-005eec06c04b?auto=format&fit=crop&w=800&q=80",alt:"Pub and grill dining",caption:"Hearty food and lively atmosphere"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Pubs & Grills"}),r.jsx("div",{className:"grid gap-6",children:n.map((s,o)=>r.jsx(ey,{restaurant:s},o))})]})]}),r.jsxs("div",{className:"grid md:grid-cols-3 gap-6 mb-16",children:[r.jsx("div",{className:"md:col-span-3 text-center mb-4",children:r.jsx("h3",{className:"text-2xl font-bold text-orange-900 inline-block",children:"Local Favorites"})}),a.map((s,o)=>r.jsx(ey,{restaurant:s},o)),r.jsx("div",{className:"h-full min-h-[200px] rounded-xl overflow-hidden shadow-md",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1677503594487-19b2e78d5a01?auto=format&fit=crop&w=600&q=80",alt:"Casual dining plate",className:"w-full h-full object-cover"})})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Cafes, Breakfasts & Light Bites"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:i.map((s,o)=>r.jsx(ey,{restaurant:s},o))}),r.jsx("div",{className:"mt-8 text-center",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1495474472200-c8f94e1d743a?auto=format&fit=crop&w=1200&h=300&q=80",alt:"Breakfast and coffee",className:"w-full h-48 object-cover rounded-xl opacity-90"})})]})]})})},$Ce=[{name:"Coquille River Falls",difficulty:"Easy",distance:"0.5 miles",accessibility:3,description:"A powerful waterfall on the East Fork of the Coquille River, dropping 40 feet through a narrow canyon. Surrounded by old-growth forest in the remote Siskiyou Mountains.",notes:"Long drive on gravel forest roads - high-clearance vehicle recommended. Remote location with no services. Best in spring/early summer."}],HCe=()=>{v.useEffect(()=>{console.log("GoldBeachPage mounted")},[]);const e=ke["gold-beach"],t=lt("Gold Beach"),n=ct("Gold Beach"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c877cc6b256faf5d4fc943c9cf11f331.webp",i=["https://images.unsplash.com/photo-1698304678525-3eee8e977140","https://images.unsplash.com/photo-1591537931438-1969ee85e381","https://images.unsplash.com/photo-1608913017558-99bfda609c02","https://images.unsplash.com/photo-1595514444795-5196f080a5f2","https://images.unsplash.com/photo-1570696398032-f3a7b1da8c09"];return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Gold Beach, Oregon",description:n,url:"https://oregoncoastal.com/gold-beach",geo:{lat:42.4091,lng:-124.4187},image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Gold Beach coastline and Rogue River",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Gold Beach",region:"South Coast"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Gold Beach"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Gold Beach Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:PCe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Where the mighty Rogue River meets the Pacific Ocean, offering endless outdoor adventures."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||42.4073,lon:e?.geo?.lng||-124.4218,townName:"Gold Beach"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Gold Beach",townSlug:"gold-beach",lat:e?.geo?.lat||42.4073,lon:e?.geo?.lng||-124.4218})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Gold Beach",featuredImage:i[0],images:i,title:"Gold Beach in Photos"})}),r.jsx(dt,{attractions:c3,townName:"Gold Beach"}),r.jsx(MCe,{attractions:c3}),r.jsx(DCe,{trails:ECe}),r.jsx(Eh,{townName:"Gold Beach",waterfalls:$Ce,headerTitle:"Nearby Waterfalls",headerSubtitle:"Gold Beach and the wild southern coast sit at the edge of some of Oregon's most remote waterfall country, deep in the Siskiyou National Forest.",ctaText:"Basing yourself in Gold Beach? Gold Beach hotels put you close to the Rogue River, Coquille River Falls, and some of the wildest coastline in the state."}),r.jsx(BCe,{hotels:OCe}),r.jsx(zCe,{restaurants:RCe})]}),r.jsx(Ye,{})]})},WCe=`Located just south of Brookings across the Chetco River, Harbor is the industrious and vibrant heart of the Southern Oregon Coast's maritime activity. Often blending seamlessly with its northern neighbor, Harbor distinguishes itself as the home of the Port of Brookings Harbor—one of the busiest recreational ports on the West Coast. This bustling waterfront district serves as the gateway to the Pacific for fishermen, crabbers, and whale watchers alike.
Harbor enjoys the same "Banana Belt" climate as Brookings, renowned for its mild, sunny weather and year-round flowers. It is the center of the region's famous Easter lily industry, where surrounding fields burst into white blooms in mid-summer, creating a stunning agricultural tapestry against the backdrop of the Coast Range. Visitors here are drawn to the unpretentious charm, the smell of salt air and fresh seafood, and the rhythmic sounds of bell buoys ringing in the channel.
From the driftwood-scattered sands of Sporthaven Beach to the state-of-the-art facilities at Crissey Field State Recreation Site near the California border, Harbor offers diverse outdoor experiences. Whether you're launching a boat for a deep-sea adventure, hunting for agates, or simply enjoying the freshest fish and chips on the coast while watching sea lions play in the marina, Harbor provides an authentic, working-class coastal experience that welcomes travelers with open arms.`,u3=[{name:"Port of Brookings Harbor",description:"The heartbeat of the community and one of the safest bars on the West Coast. It's a hive of activity with commercial fishing boats unloading their catch, sport fishing charters departing daily, and a boardwalk lined with shops and restaurants.",details:"Great for crabbing off the public pier."},{name:"Sporthaven Beach",description:"A broad, sandy beach protected by the north jetty of the Chetco River. It's a favorite spot for surfers, campers, and those looking to watch fishing boats navigate the river bar. The sunsets here are spectacular.",details:"RV parking and camping available."},{name:"Crissey Field State Recreation Site",description:"The southernmost Oregon state park, featuring a modern welcome center and trails leading to a pristine beach. It's an excellent spot for birdwatching in the wetlands and finding driftwood along the shore.",details:"Located right at the California border."},{name:"McVay Rock State Recreation Site",description:"A hidden gem for rockhounds and clam diggers. This park features a rocky shoreline perfect for surf fishing and a challenging disc golf course with ocean views.",details:"Dog-friendly and less crowded."},{name:"Pelican Bay Arts Association",description:"Located at the Manley Art Center, this organization showcases the vibrant local art scene. Harbor and Brookings are home to many artists inspired by the stunning coastal light and landscapes.",details:"Gallery viewing and workshops available."},{name:"Chetco River Estuary",description:"Where fresh water meets the sea, this estuary is teeming with wildlife. Kayakers can paddle upriver to see harbor seals, herons, and playful river otters in calm emerald waters.",details:"Launch points available at the port."},{name:"Winchester Hill",description:"A scenic viewpoint offering panoramic vistas of the harbor, the ocean, and the lily fields. It's a perfect spot to get a lay of the land and appreciate the unique geography of the Banana Belt.",details:"Best views at sunset."},{name:"Lily Bulb Farms",description:"Harbor is the 'Easter Lily Capital of the World.' Drive along the back roads in July to see acres of fields in full white bloom, a sight found almost nowhere else on earth.",details:"Please respect private property and view from the road."},{name:"South Jetty",description:"Walk out along the massive rocks of the south jetty to feel the power of the ocean. It's a prime spot for watching winter storms (from a safe distance) and seeing whales during migration.",details:"Wear sturdy shoes for rock hopping."}],VCe=[{name:"Crissey Field Trail",distance:"1.0 mile loop",difficulty:"Easy",description:"A gentle, accessible boardwalk and gravel trail that winds through wetlands and dunes to the beach. Interpretive signs explain the local ecology and history."},{name:"Sporthaven Beach Walk",distance:"2.0 miles round trip",difficulty:"Easy",description:"A flat, sandy stroll from the jetty north towards Zych Creek. Perfect for barefoot walking, finding sand dollars, and letting dogs run in the surf."},{name:"Chetco River Road Scenic Drive/Walk",distance:"Varies",difficulty:"Easy",description:"While mostly a scenic drive, there are numerous pullouts along the river offering short trails down to gravel bars where you can swim, fish, or skip stones in crystal clear water."},{name:"McVay Rock Shoreline",distance:"0.5 miles",difficulty:"Moderate",description:"A short but sometimes scramble-y path down to the rocky beach. Once there, you can explore tide pools and rock formations for miles at low tide."},{name:"Winchester Trail (Nearby)",distance:"1.5 miles loop",difficulty:"Moderate",description:"Located just inland, this trail offers a hike through lush forest with glimpses of the ocean. It's a quiet escape from the coastal wind."}],UCe=[{name:"Brookings Inn Resort",category:"Mid-Range",priceTier:"$$",location:"Brookings, OR",description:"Comfortable rooms and reliable service offering a solid base camp for exploring the nearby harbor and surrounding coast.",amenities:"Free WiFi, Free Parking, Comfortable Rooms",rating:"4.0/5",image:"https://images.unsplash.com/photo-1566073771259-6a8506099945?auto=format&fit=crop&w=800&q=80"},{name:"Harbor Inn",category:"Mid-Range",priceTier:"$$",location:"Brookings, OR",description:"Conveniently situated inn with excellent access to the local marinas and waterfront dining options.",amenities:"Free WiFi, Free Parking, Comfortable Rooms",rating:"4.0/5",image:"https://images.unsplash.com/photo-1582719508461-905c673771fd?auto=format&fit=crop&w=800&q=80"},{name:"Wild Rivers Motor Lodge",category:"BUDGET/RETRO",priceTier:"$$",location:"Brookings, OR",description:"A classic retro motor lodge that’s been thoughtfully updated with contemporary features while retaining its charm.",amenities:"Free Wi-Fi, updated rooms, central location",rating:"4.0/5",image:"https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?auto=format&fit=crop&w=800&q=80"},{name:"Pacific Sunset Inn",category:"BUDGET",priceTier:"$$",location:"Brookings, OR",description:"An economical and straightforward accommodation option perfect for visitors focused on outdoor adventures.",amenities:"Free parking, coffee, budget-friendly",rating:"4.0/5",image:"https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?auto=format&fit=crop&w=800&q=80"},{name:"AmeriCoast Inn",category:"Mid-Range",priceTier:"$$",location:"Brookings, OR",description:"Providing comfortable, clean lodging with easy access to the region's best beaches and trails.",amenities:"Free WiFi, Free Parking, Comfortable Rooms",rating:"4.0/5",image:"https://images.unsplash.com/photo-1611892440504-42a792e24d32?auto=format&fit=crop&w=800&q=80"},{name:"Westward Inn",category:"BUDGET",priceTier:"$$",location:"Brookings, OR",description:"A well-priced stay that welcomes pets and offers standard amenities to start your day right.",amenities:"Free breakfast, pet-friendly rooms, cable TV",rating:"4.0/5",image:"https://images.unsplash.com/photo-1520250497591-112f2f40a3f4?auto=format&fit=crop&w=800&q=80"},{name:"Ocean Suites Motel",category:"MID-RANGE",priceTier:"$$",location:"Brookings, OR",description:"Perfect for longer stays, these suites offer kitchenettes and generous space just moments from the harbor.",amenities:"Kitchenettes, spacious rooms, near harbor",rating:"4.0/5",image:"https://images.unsplash.com/photo-1566073771259-6a8506099945?auto=format&fit=crop&w=800&q=80"},{name:"Blue Coast Inn and Suites",category:"BUDGET/MID-RANGE",priceTier:"$$",location:"Brookings, OR",description:"Offering a fresh, modern aesthetic and convenient practicalities for coastal travelers.",amenities:"Modern decor, free Wi-Fi, laundry facilities",rating:"4.0/5",image:"https://images.unsplash.com/photo-1582719508461-905c673771fd?auto=format&fit=crop&w=800&q=80"},{name:"Beachfront Inn",category:"MID-RANGE",priceTier:"$$",location:"Brookings, OR",description:"Boasting oceanfront access and a heated pool, this inn is an idyllic retreat for beach lovers.",amenities:"Oceanfront, heated pool, pet-friendly",rating:"4.0/5",image:"https://images.unsplash.com/photo-1590523277543-a94d2e4eb00b?auto=format&fit=crop&w=800&q=80"}],qCe=[{name:"The Hungry Clam",category:"Seafood/Casual",description:"Located right at the port, this is the quintessential spot for fish and chips. Watch the boats unload while enjoying chowder.",features:"Harbor views, fresh seafood, outdoor seating.",image:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80"},{name:"Zola's Pizzeria",category:"Pizza/Italian",description:"A lively spot with quirky decor and fantastic wood-fired pizzas. Known for live music and a fun, energetic atmosphere.",features:"Wood-fired pizza, live music, river views.",image:"https://images.unsplash.com/photo-1579751626657-72bc17010498?auto=format&fit=crop&w=800&q=80"},{name:"Catalyst Seafood",category:"Seafood/Lounge",description:"A sustainable seafood restaurant that harvests its own catch. Known for fresh poke bowls, fish tacos, and a great happy hour.",features:"Boat-to-table, sustainable, harbor views.",image:"https://images.unsplash.com/photo-1534422298391-e4f8c172dddb?auto=format&fit=crop&w=800&q=80"},{name:"Sporthaven House",category:"American/Bar",description:"A historic local bar and grill that's been serving the community for decades. Great burgers and a friendly, local vibe.",features:"Historic building, full bar, comfort food.",image:"https://images.unsplash.com/photo-1514933651103-005eec06c04b?auto=format&fit=crop&w=800&q=80"},{name:"Fat Cat Pizza",category:"Pizza/Family",description:"A local favorite for thick-crust pizza and a massive salad bar. It's the perfect place to take the whole family after a day at the beach.",features:"Salad bar, arcade games, family-friendly.",image:"https://images.unsplash.com/photo-1513104890138-7c749659a591?auto=format&fit=crop&w=800&q=80"},{name:"First Rise Baking Co.",category:"Bakery/Cafe",description:"A delightful bakery offering artisan breads, pastries, and strong coffee. The perfect way to start a morning in Harbor.",features:"Fresh baked goods, espresso, morning treats.",image:"https://images.unsplash.com/photo-1509440159596-0249088772ff?auto=format&fit=crop&w=800&q=80"},{name:"Railroad Street Market",category:"Deli/Sandwiches",description:"Though historically in Brookings, it serves the Harbor area with some of the best giant sandwiches on the coast. Great for picnic supplies.",features:"Huge sandwiches, deli, local produce.",image:"https://images.unsplash.com/photo-1528735602780-2552fd46c7af?auto=format&fit=crop&w=800&q=80"}],GCe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),KCe=({attractions:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("AttractionsSection: No attractions data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Explore the Port"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Harbor"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(GCe,{attraction:t,index:n},n))})]})})),ZCe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},YCe=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From riverside strolls to shoreline scrambles, Harbor offers accessible trails that highlight the region's diverse coastal and river ecology."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(ZCe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),JCe=({hotels:e})=>{const t="Brookings";return r.jsx(mt,{townName:t,fallbackHotels:e,affiliateHotels:st[t]})},nj=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),h3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),XCe=({restaurants:e})=>{if(v.useEffect(()=>{(!e||e.length===0)&&console.warn("RestaurantsSection: No restaurant data provided")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,5),a=e.slice(5,7);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Harbor"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From fresh-caught seafood right off the boat to cozy bakeries and lively pizzerias, Harbor serves up authentic coastal flavors."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Fresh Seafood"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(nj,{restaurant:i},s))})]}),r.jsx(h3,{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80",alt:"Fresh seafood plate",caption:"Fresh catch of the day at the port"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(h3,{src:"https://images.unsplash.com/photo-1579751626657-72bc17010498?auto=format&fit=crop&w=800&q=80",alt:"Pizza and drinks",caption:"Lively evenings and good food"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Pubs & Family Dining"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(nj,{restaurant:i},s))})]})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Bakery & Market"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-2 gap-6",children:a.map((i,s)=>r.jsx(nj,{restaurant:i},s))})]})]})})},QCe=[{title:"Pirates of the Pacific Festival",date:"August 7–9, 2026"},{title:"Second Saturday Art Walk",date:"Monthly"},{title:"Azalea Festival",date:"May 21–24, 2027"},{title:"Brookings Summer Arts Festival",date:"July 10–11, 2027"}],eTe=()=>{v.useEffect(()=>{console.log("HarborPage mounted")},[]);const e=ke.harbor,t=lt("Harbor"),n=ct("Harbor"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c83af0560b4f8c977f60d521543eadef.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Harbor, Oregon coastline",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Harbor"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Harbor"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Harbor Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:WCe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Located on the beautiful Southern Oregon Coast, Harbor offers unforgettable scenic views and coastal charm."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||42.0534,lon:e?.geo?.lng||-124.2844,townName:"Harbor"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Harbor",townSlug:"harbor",lat:e?.geo?.lat||42.0534,lon:e?.geo?.lng||-124.2844})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Harbor",featuredImage:a,title:"Harbor in Photos"})}),r.jsx(dt,{attractions:u3,townName:"Harbor"}),r.jsx(KCe,{attractions:u3}),r.jsx(YCe,{trails:VCe}),r.jsx($r,{events:QCe}),r.jsx(JCe,{hotels:UCe}),r.jsx(XCe,{restaurants:qCe})]}),r.jsx(Ye,{})]})},tTe=`
<p>Tucked away from the coastal winds and fog, Lakeside is a sun-drenched haven situated on the shores of the magnificent Tenmile Lakes. Known as the "Bass Capital of Oregon," this charming community offers a warmer, calmer alternative to the immediate coastline while still being just minutes from the ocean beaches and dunes.</p>
<p>Life in Lakeside revolves around the water. North Tenmile and South Tenmile Lakes span nearly 2,000 acres, connected by a navigable canal that invites days of exploration by boat, kayak, or paddleboard. Anglers from across the region flock here for world-class bass, trout, and perch fishing, while families enjoy swimming in the sheltered coves and water skiing on the open water.</p>
<p>Surrounded by lush forests and rolling hills, the town maintains a relaxed, vacation-town vibe year-round. Whether you're watching drag boat races, camping at the county park, or enjoying a meal overlooking the marina, Lakeside offers the perfect blend of freshwater fun and coastal proximity.</p>
`,f3=[{name:"Tenmile Lakes",description:"The crown jewel of Lakeside. These two large, interconnected freshwater lakes offer over 42 miles of shoreline. They are famous for premier bass fishing, high-speed boating, water skiing, and peaceful sailing in the protected arms.",details:"Public boat ramps available. Marina services nearby."},{name:"William M. Tugman State Park",description:"Located just north of town on Eel Lake, this park is a hidden treasure. It offers a quieter alternative to the busy coastal parks, with excellent fishing, swimming, and a lush forest setting that feels prehistoric.",details:"Day-use area, boat ramp, and campground."},{name:"Tenmile Lakes County Park",description:"The hub of local recreation, featuring boat launches, swimming areas, and camping facilities right on the water. It's the perfect spot for a family picnic or launching your watercraft for a day of adventure.",details:"RV and tent camping. Day-use fee required."},{name:"Spinreel Dune Buggy Rentals",description:"Located just a few miles west, Spinreel offers access to the northern end of the Oregon Dunes. Rent an ATV or take a guided tour to experience the thrill of riding on the massive sand mountains.",details:"Guided tours and rentals available. Fun for all ages."},{name:"Eel Lake",description:"A stunningly clear, U-shaped lake bordering Tugman State Park. Its steep, forested banks protect it from the wind, making it ideal for kayaking, canoeing, and paddleboarding in calm waters.",details:"5 mph speed limit ensures tranquility."},{name:"Lakeside Drag Boat Races",description:"An adrenaline-fueled annual event where high-speed boats race across Tenmile Lake. It draws crowds from all over the West Coast to watch the thunderous display of power and speed.",details:"Usually held in late summer. Check local calendar."}],nTe=[{name:"William M. Tugman Trail",distance:"1.0 mile loop",difficulty:"Easy",description:"A gentle, family-friendly trail winding through a dense forest of spruce, cedar, and alder along the south end of Eel Lake. It offers peek-a-boo views of the water and is great for spotting wildlife."},{name:"Hall Lake Trail",distance:"0.5 miles round trip",difficulty:"Easy",description:"A short, scenic hike to a small, secluded dune lake. The trail climbs over a small dune ridge and drops down to the lake, which is often quiet and peaceful. A hidden gem near the dunes."},{name:"Eel Creek Campground Trail",distance:"2.5 miles varying",difficulty:"Moderate",description:"Starting from the campground, this trail leads through the transition forest and out into the open dunes. It's a fantastic way to experience the unique ecosystem where the forest fights the encroaching sand."},{name:"Tenmile Lake Boat Access Only Trails",distance:"Varies",difficulty:"Moderate",description:"For the adventurous, take a boat to the far shores of Tenmile Lakes to explore informal trails and secluded beaches that are inaccessible by car. It's a true wilderness experience."}],rTe=[{name:"Lakeshore Lodge",category:"Lodge/Hotel",description:"The premier place to stay in Lakeside, offering rooms directly overlooking the lake. With an on-site restaurant and bar, it's the social hub of the town and offers fantastic sunset views.",amenities:"Lake views, restaurant, bar, event space."},{name:"Osprey Point RV Resort",category:"RV Resort",description:"A top-rated luxury RV resort located on Tenmile Lake. It features paved sites, boat moorage, a pub, and immaculate grounds. A favorite for RV travelers who want premium amenities.",amenities:"Full hookups, boat slips, pub, laundry, WiFi."},{name:"Tenmile Lakes County Park Campground",category:"Camping",description:"Located right in town on the lakefront. It offers both RV and tent sites with easy access to the boat ramps and swimming areas. A classic, affordable family camping experience.",amenities:"Boat ramp, showers, playground, lake access."},{name:"William M. Tugman State Park Campground",category:"Camping/Yurts",description:"Just north of town, this campground offers a quiet retreat in the woods near Eel Lake. The yurts are a popular option for year-round comfort.",amenities:"Yurts, hot showers, flush toilets, trail access."},{name:"North Lake Resort",category:"Marina/Cabins",description:"A historic resort and marina offering cabin rentals and boat services. It has a nostalgic, old-school fishing camp vibe that many visitors love.",amenities:"Cabins, boat rentals, tackle shop, marina."}],aTe=[{name:"Wulfy's Beach Bar & Grill",category:"American/Casual",description:"A fun, lively spot with a beachy vibe, known for its burgers, fish tacos, and outdoor seating. It's a great place to grab a cold drink after a day on the lake.",features:"Outdoor patio, sports bar, casual atmosphere."},{name:"The Lakeshore Lodge Restaurant",category:"Steak/Seafood",description:"Dining with a view. This restaurant offers a full menu of steaks, seafood, and pasta in a dining room that overlooks Tenmile Lake. The prime rib special is a local favorite.",features:"Lake views, full bar, sunset dining."},{name:"Osprey Point Pub & Pizza",category:"Pizza/Pub",description:"Located within the RV resort, this pub welcomes the public for excellent pizza, burgers, and microbrews. It has a friendly, community atmosphere.",features:"Hand-tossed pizza, craft beer, family-friendly."},{name:"Up the Creek Tavern",category:"Tavern/Bar",description:"A classic local watering hole serving up bar food favorites and cold beer. It's a no-frills spot where you can meet the locals and hear fish stories.",features:"Pool tables, bar food, local character."},{name:"Lakeside Market & Deli",category:"Deli/Takeout",description:"The go-to spot for grab-and-go lunches, fried chicken, and deli sandwiches before heading out on the boat. Convenient and tasty.",features:"Fried chicken, deli sandwiches, picnic supplies."}],iTe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-blue-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e.name}),r.jsx("div",{className:"bg-blue-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-blue-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e.description}),r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-blue-700 bg-blue-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),sTe=({attractions:e})=>r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-blue-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-blue-600 font-bold tracking-wider uppercase text-sm",children:"Explore the Lakes"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Lakeside"}),r.jsx("div",{className:"h-1 w-24 bg-blue-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(iTe,{attraction:t,index:n},n))})]})}),oTe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e})},lTe=({trails:e})=>r.jsx("section",{className:"py-20 px-4 bg-[#f4f8fb]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(Dk,{className:"w-8 h-8 text-emerald-600"}),"Nature Trails & Walks"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Discover peaceful paths through lush coastal forests and around tranquil lakes."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(oTe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})}),cTe=({hotels:e})=>{const t="Lakeside",n=["Osprey Point RV Resort","Tenmile Lakes County Park Campground","William M. Tugman State Park Campground","Coming Soon","North Lake Resort"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},dTe=({restaurant:e})=>r.jsxs("div",{className:"bg-white p-6 rounded-xl border border-gray-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900",children:e.name}),r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md whitespace-nowrap ml-2",children:e.category})]}),r.jsx("p",{className:"text-gray-600 mb-4 text-sm leading-relaxed flex-grow",children:e.description}),r.jsxs("div",{className:"pt-3 border-t border-gray-100 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-gray-500 uppercase tracking-wide mb-1",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-700 font-medium",children:e.features})]})]}),uTe=({restaurants:e})=>r.jsx("section",{className:"py-24 px-4 bg-orange-50/50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-500",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(fI,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Lakeside"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Enjoy hearty meals with a view, casual pub fare, and fresh local flavors in a relaxed setting."})]}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:e.map((t,n)=>r.jsx(dTe,{restaurant:t},n))})]})}),hTe=()=>{v.useEffect(()=>{console.log("LakesidePage mounted")},[]);const e=ke.lakeside,t=lt("Lakeside"),n=ct("Lakeside"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e921b311af063b364aecb010b4f38a5a.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Lakeside Oregon Travel",description:n,url:"https://oregoncoastal.com/town/lakeside",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Lakeside, Oregon - Tenmile Lakes",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Lakeside"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Lakeside"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Lakeside Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:tTe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Your gateway to the expansive Tenmile Lakes, perfect for fishing and boating."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat,lon:e?.geo?.lng,townName:"Lakeside"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Lakeside",townSlug:"lakeside",lat:e?.geo?.lat,lon:e?.geo?.lng})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Lakeside",featuredImage:a,title:"Lakeside in Photos"})}),r.jsx(dt,{attractions:f3,townName:"Lakeside"}),r.jsx(sTe,{attractions:f3}),r.jsx(lTe,{trails:nTe}),r.jsx(cTe,{hotels:rTe}),r.jsx(uTe,{restaurants:aTe})]}),r.jsx(Ye,{})]})},fTe=`
<p>Langlois (pronounced "Lang-less") is a small but mighty community on the Southern Oregon Coast that punches well above its weight in charm, culinary fame, and community spirit. Famous for its "World Famous" hot dogs and its quirky slogan "Langlois: It's Greener on the Other Side," this unincorporated hamlet sits amidst rolling green pastures, sheep ranches, and the wild winds of the Pacific.</p>
<p>Though brief in size, Langlois is a vital stop on Highway 101. It serves as the gateway to the stunning Floras Lake and Boice Cope Park, a world-renowned destination for windsurfing and kiteboarding due to the consistent coastal breezes. The town's rich agricultural heritage is visible in the historic barns and the vivid green hills that rise sharply from the ocean plain.</p>
<p>Visitors stop for the hot dogs but stay for the authentic rural coastal vibe. Whether you're exploring the nearby trails at Blacklock Point, shopping for local wool products, or just enjoying a moment of quiet in a town that feels like a step back to a simpler time, Langlois offers a unique and memorable pause on your journey down the coast.</p>
`,m3=[{name:"Floras Lake State Natural Area",description:"A unique coastal lake separated from the ocean by a narrow sand spit. It's a mecca for windsurfers and kiteboarders due to the reliable afternoon winds, and offers calm waters for kayaking in the morning.",details:"Day use fee required. renowned windsurfing spot."},{name:"Langlois Market",image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/57e87a2b789872b7ca172b050755891f.jpg",description:"The heartbeat of the town. This historic market is famous for its mustard-slathered hot dogs and house-made pickles. It's a rite of passage for Highway 101 travelers to stop here for a bite.",details:"World famous hot dogs & local goods."},{name:"Blacklock Point",description:"A rugged, lesser-known headland that juts into the Pacific. The hike out offers solitude, dramatic cliffs, and a historic sandstone quarry site. It's one of the most scenic spots on the entire coast.",details:"Remote and spectacular views."},{name:"Boice Cope County Park",description:"Located at Floras Lake, this park offers camping and day-use access to both the lake and the ocean beach. It's the launch point for water sports and a great family picnic spot.",details:"Camping available (first come, first served)."},{name:"Dragonfly Farm & Nursery",description:"Just north of town, this sprawling nursery is a plant lover's paradise. They host events, sell local art, and offer an incredible selection of coastal-hardy plants in a beautiful setting.",details:"Great for gifts and garden inspiration."},{name:"New River Nature Center",description:"A BLM-managed area just south of Langlois offering pristine trails along the New River, which runs parallel to the ocean. It's fantastic for birdwatching and gentle hiking.",details:" quiet trails, interpretive center."},{name:"Raincoast Arts",description:"A local gallery and community hub showcasing the work of South Coast artists. From pottery to painting, it reflects the creative spirit that thrives in this rural community.",details:"Check seasonal hours."},{name:"Cape Blanco State Park",description:"Located a short drive south, this park features the westernmost point in Oregon and a historic lighthouse. The winds here can be fierce, but the views are unmatched.",details:"Historic lighthouse tours available."}],mTe=[{name:"Blacklock Point Trail",distance:"4.2 miles round trip",difficulty:"Moderate",description:"A flat but sometimes muddy trail through dense salal and forest that opens up to a breathtaking sandstone cliff overlooking the ocean. The solitude here is profound."},{name:"Floras Lake to Blacklock Point",distance:"9.0 miles round trip",difficulty:"Moderate/Hard",description:"For a longer adventure, hike south from Floras Lake along the beach and bluffs to reach the point. Timing the tides is essential for the beach sections."},{name:"New River Loop Trail",distance:"2.5 miles loop",difficulty:"Easy",description:"A gentle, family-friendly trail system meandering through dunes, shore pines, and along the river bank. Excellent for spotting waterfowl and river otters."},{name:"Boice Cope Lake Trail",distance:"1.0 mile",difficulty:"Easy",description:"A short, easy walk along the edge of Floras Lake. It's perfect for watching the kiteboarders zip across the water or enjoying a sunset stroll."},{name:"Cape Blanco Lighthouse Trail",distance:"0.5 miles",difficulty:"Easy",description:"Short walk from the parking area to the lighthouse. It can be extremely windy, but standing at the edge of the continent is worth the bluster."},{name:"Sheep Pen Creek Trail",distance:"2.0 miles",difficulty:"Easy",description:"Another trail in the New River area offering diverse scenery from wetlands to grassy dunes, perfect for a quiet nature walk away from the highway."}],pTe=[{name:"Floras Lake House B&B",category:"Bed & Breakfast",description:"The premier place to stay in Langlois. Located right on the edge of Floras Lake, it caters to windsurfers and those seeking tranquility. The rooms offer stunning water views.",amenities:"Lakefront, windsurfing lessons, breakfast included."},{name:"Wildspring Guest Habitat (Port Orford)",category:"Luxury/Eco-Resort",description:"Located just south in Port Orford, this eco-friendly resort offers luxury cabins in a forest setting with ocean views. A romantic and peaceful getaway.",amenities:"Hot tub, breakfast, walking labyrinth."},{name:"Castaway by the Sea (Port Orford)",category:"Motel",description:"A reliable nearby option perched on a cliff in Port Orford with dramatic ocean views from almost every room. A short drive from Langlois.",amenities:"Ocean views, pet friendly, WiFi."}],gTe=[{name:"Langlois Market",category:"Deli / Market",image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/40f673a483d6ac85583a8e908aa66f3c.jpg",description:"Famous for their world-renowned hot dogs served with house-made sweet-hot mustard. It's a deli, a general store, and the town hall all rolled into one.",features:"Famous Hot Dogs, deli sandwiches, local goods."},{name:"The Spoon",category:"American / Diner",description:"A cozy roadside diner offering hearty breakfasts, burgers, and comfort food. It's the place to catch up on local news over a cup of coffee.",features:"All-day breakfast, homemade pies, friendly service."},{name:"Raincoast Cafe (Seasonal)",category:"Cafe",description:"Often operating in conjunction with the gallery or as a pop-up, offering excellent espresso and light bites. Check local listings as hours can vary seasonally.",features:"Artisan coffee, art gallery setting."}],xTe=({attraction:e,index:t})=>r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:[e?.image&&r.jsxs("div",{className:"relative h-48 overflow-hidden",children:[r.jsx("img",{src:e.image,alt:e.name,className:"w-full h-full object-cover transition-transform duration-500 hover:scale-110"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-black/20 to-transparent"})]}),r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})]}),yTe=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Rural Charm & Nature"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Attractions in Langlois"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(xTe,{attraction:t,index:n},n))})]})})),vTe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},bTe=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Vistas"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Discover hidden headlands, quiet lakes, and the wild beauty of the Southern Oregon Coast trails."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(vTe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),wTe=({hotels:e})=>{const t="Langlois",n=["Floras Lake House B&B","Wildspring Guest Habitat (Port Orford)","Castaway by the Sea (Port Orford)"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},jTe=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[e?.image&&r.jsx("div",{className:"mb-4 rounded-lg overflow-hidden h-40",children:r.jsx("img",{src:e.image,alt:e.name,className:"w-full h-full object-cover"})}),r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),NTe=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),kTe=({restaurants:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})}):r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Langlois"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Small town, big flavors. From the world-famous hot dogs to local market treats, taste the heart of Langlois."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Market & Classics"}),r.jsx("div",{className:"grid gap-6",children:e.map((t,n)=>r.jsx(jTe,{restaurant:t},n))})]}),r.jsx(NTe,{src:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/40f673a483d6ac85583a8e908aa66f3c.jpg",alt:"Langlois Market Interior",caption:"Step inside the world-famous Langlois Market"})]})]})})),_Te=()=>{v.useEffect(()=>{console.log("LangloisPage mounted")},[]);const e=ke.langlois,t=lt("Langlois"),n=ct("Langlois"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/17bd9faa00a2de20cd5caa78364dd87c.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Langlois, Oregon countryside",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Langlois"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Langlois"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Langlois Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:fTe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"A charming, quirky town famous for its world-class hot dogs and sheep farming."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||42.9248,lon:e?.geo?.lng||-124.4504,townName:"Langlois"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Langlois",townSlug:"langlois",lat:e?.geo?.lat||42.9248,lon:e?.geo?.lng||-124.4504})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Langlois",featuredImage:a,title:"Langlois Gallery"})}),r.jsx(dt,{attractions:m3,townName:"Langlois"}),r.jsx(yTe,{attractions:m3}),r.jsx(bTe,{trails:mTe}),r.jsx(wTe,{hotels:pTe}),r.jsx(kTe,{restaurants:gTe})]}),r.jsx(Ye,{})]})},STe=`
<p>Discover the magic of Lincoln City, a coastal playground where the creative fire of glassblowing meets the raw power of the Pacific. Spanning seven miles of soft, sandy beaches, this vibrant community offers an enchanting mix of artistic culture and outdoor adventure. Known as the "Kite Capital of the World" for its steady breezes and colorful festivals, Lincoln City invites you to look up at the sky, or look down at the sand where lucky beachcombers might find a hand-blown glass float—a signature treasure of this unique town.</p>
<p>Adventure awaits at every corner. To the north, the majestic Cascade Head offers hiking trails with sweeping ocean views and rare wildlife. In the center of town, the D River—once holding the title of the world's shortest river—connects the grand Devil's Lake to the sea, creating a haven for kayakers, paddleboarders, and anglers. The historic Taft District anchors the south with its bustling bayfront, crab pots, and the mesmerizing heat of glassblowing studios where you can watch artists at work or craft your own souvenir.</p>
<p>Whether you're trying your luck at Chinook Winds Casino Resort, exploring the tidal secrets of the Nelscott Reef, or simply watching a fiery sunset behind the silhouette of drift logs, Lincoln City delivers a quintessential Oregon Coast experience. It's a place where memories are made in glass and sand, perfect for families, couples, and solo explorers alike.</p>
`,p3=[{name:"Finders Keepers Glass Float Hunt",description:"A year-round treasure hunt where local Float Fairies hide over 3,000 hand-blown glass floats along the 7 miles of beach. If you find one, you keep it! It's a beloved tradition that brings the magic of treasure hunting to life.",details:"Floats are hidden above the high tide line. Keep your eyes peeled!"},{name:"Lincoln City Glass Center",description:"Located in the historic Taft District, this studio allows visitors to watch professional glassblowers create stunning works of art. Feeling adventurous? You can book a session to blow your own float, bowl, or paperweight.",details:"Open daily. 'Blow Your Own' appointments recommended."},{name:"Devil's Lake State Recreation Area",description:"A calm, 685-acre freshwater lake that flows into the ocean via the D River. It's a hotspot for kayaking, paddleboarding, fishing for rainbow trout, and lakeside camping protected from the coastal winds.",details:"Boat rentals and campground available."},{name:"Chinook Winds Casino Resort",description:"A premier entertainment destination offering 24-hour gaming, live entertainment, and several restaurants with ocean views. The resort is a hub of nightlife and excitement right on the beach.",details:"Owned by the Siletz Tribe. Oceanfront hotel attached."},{name:"Nelscott Reef",description:"One of the world's premier big wave surfing spots. When conditions are right, this reef located half a mile offshore produces massive waves that attract professional surfers from around the globe.",details:"Best viewed from the beach unless you're a pro surfer."},{name:"D River Wayside",description:"Home to the 'world's shortest river' connecting Devil's Lake to the Pacific. This wayside is the central hub for the famous Summer and Fall Kite Festivals, where giant kites fill the sky.",details:"Central beach access with parking and restrooms."},{name:"Road's End State Recreation Site",description:"Located at the northernmost point of the city, this beach offers a more secluded feel with stunning views of Cascade Head. It's an excellent spot for tide pooling and watching sailboarders.",details:"Great for tide pooling at low tide."},{name:"Lincoln City Outlets",description:"A shopper's delight featuring over 50 designer and brand-name stores. It's the perfect place to spend a rainy afternoon or find great deals on coastal gear and fashion.",details:"Located centrally on Hwy 101."}],CTe=[{name:"Cascade Head Trail",distance:"6.8 miles round trip (lower + upper)",difficulty:"Moderate/Hard",elevation:"1,200 ft gain",description:"A world-class hike offering some of the most spectacular views on the entire Oregon Coast. The trail winds through Sitka spruce forests before opening up to grassy headlands with panoramic ocean vistas. Protected as a UNESCO biosphere reserve."},{name:"Drift Creek Falls Trail",distance:"3 miles round trip",difficulty:"Easy/Moderate",description:"Famous for its 240-foot suspension bridge that hangs dramatically over a canyon, offering a bird's-eye view of a crashing 75-foot waterfall. A lush, fern-filled forest hike that is a must-do."},{name:"Salmon River Estuary Trail",distance:"4.5 miles round trip",difficulty:"Easy",description:"A gentle, scenic hike along the Salmon River as it winds towards the ocean. Great for birdwatching and seeing the diverse ecosystem where river meets sea. Located just north of town."},{name:"Road's End Beach Walk",distance:"Varies",difficulty:"Easy",description:"Walk north from the Road's End recreation site towards the headland. At very low tides, you can discover secret coves and colorful tide pools filled with starfish and anemones."},{name:"Devil's Lake Circumnavigation",distance:"Varies (Water Trail)",difficulty:"Moderate",description:"While not a hiking trail, this is a popular paddling trail. Kayak around the perimeter of the lake to explore wetlands and see calm waters teeming with waterfowl and wildlife."},{name:"Siletz Bay National Wildlife Refuge Trails",distance:"1-2 miles",difficulty:"Easy",description:"Flat, accessible trails winding through salt marshes and mudflats. This is a prime spot for birders, especially during migration seasons, and offers peaceful bay views."}],TTe=[{name:"Salishan Coastal Lodge & Resort",category:"Luxury Resort",description:"A historic, eco-friendly resort nestled in the forest just south of town. Features a world-class golf course, spa, tennis courts, and rustic-luxe rooms that blend seamlessly with nature.",amenities:"Golf course, spa, aerial park, multiple restaurants.",link:"https://expedia.com/affiliates/lincoln-city-hotels.XG28wG4"},{name:"Starfish Manor Oceanfront Hotel",category:"Luxury/Boutique",description:"Designed for romance and relaxation, offering oceanfront suites with large whirlpool tubs overlooking the waves. A perfect getaway for couples seeking privacy and views.",amenities:"In-room jacuzzis, fireplaces, oceanfront decks.",link:"https://expedia.com/affiliates/lincoln-city-hotels-starfish-manor-oceanfront-hotel.XG28wG4"},{name:"The Coho Oceanfront Lodge",category:"Mid-Range/Upscale",description:"A modern, renovated lodge offering fresh, clean design and sweeping ocean views. Known for its excellent service and amenities like a fire pit and indoor pool.",amenities:"Indoor pool, sauna, fitness center, breakfast included.",link:"https://expedia.com/affiliates/lincoln-city-hotels-the-coho-oceanfront-lodge.XG28wG4"},{name:"Sailor Jack's Oceanfront Inn",category:"Budget/Boutique",description:"A charming, independently owned inn with a distinct personality. Located right on the beach, it offers affordable comfort and easy access to the sand.",amenities:"Pet-friendly, direct beach access, themed rooms.",link:"https://expedia.com/affiliates/lincoln-city-hotels-sailor-jack-s-oceanfront-inn.XG28wG4"},{name:"Lincoln Sands Oceanfront Resort",category:"Family Resort",description:"An all-suite hotel located near the D River Wayside. Famous for its heated outdoor pool and patio, making it a favorite for families year-round.",amenities:"Heated outdoor pool, hot tub, kitchenettes.",link:"https://expedia.com/affiliates/lincoln-city-hotels.XG28wG4"},{name:"The Ashley Inn & Suites",category:"Mid-Range",description:"Conveniently located near the casino and beach, offering comfortable rooms and a welcoming environment for all travelers.",amenities:"Indoor pool, complimentary breakfast, easy beach access.",link:"https://expedia.com/affiliates/lincoln-city-hotels-the-ashley-inn-suites.XG28wG4"}],ATe=[{name:"Blackfish Cafe",category:"Seafood/NW Cuisine",description:"A local favorite for fresh, honest seafood dishes. Known for their cioppino and rockfish, served in a relaxed but polished setting.",features:"Fresh catch, local ingredients, great wine list."},{name:"Kyllo's Seafood Grill",category:"Seafood",description:"Located directly on the beach at the D River Wayside, offering stunning ocean views from every table. Famous for their halibut fish and chips and clam chowder.",features:"Oceanfront dining, cocktail bar, family friendly."},{name:"Beach Dog Cafe",category:"Casual/Cafe",description:"A quirky, beloved spot for breakfast and lunch. Known for their friendly service and delicious homemade biscuits and gravy.",features:"Breakfast all day, dog friendly patio."},{name:"Wildflower Grill",category:"American/Breakfast",description:"Set in a cozy cottage overlooking a wetland, offering hearty breakfasts and country-style dinners. The setting is peaceful and charming.",features:"Wetland views, generous portions."},{name:"Fathoms Restaurant & Bar",category:"Upscale",description:"Located on the 10th floor of the Inn at Spanish Head, offering the best elevated ocean views in town. Perfect for sunset dinners and cocktails.",features:"Panoramic views, penthouse dining, seafood."},{name:"Mo's Restaurant",category:"Casual Seafood",description:"An Oregon Coast icon located in the Taft District. Famous for their clam chowder, casual vibe, and views of Siletz Bay.",features:"Famous chowder, bay views, casual."},{name:"The Bay House",category:"Fine Dining",description:"Offering an exquisite fine dining experience with a focus on seasonal Northwest ingredients and an extensive wine cellar. Located south of town at Salishan.",features:"AAA 4-Diamond, extensive wine list."},{name:"Pig 'N Pancake",category:"Breakfast/Diner",description:"A classic coastal chain offering reliable, tasty breakfast favorites. A hit with families and those craving pancakes and bacon.",features:"Family friendly, breakfast classics."},{name:"Roadhouse 101",category:"American/Pub",description:"A lively spot with a rustic vibe, often featuring live music. Serves great burgers, steaks, and beers in a fun atmosphere.",features:"Live music, rustic decor, full bar."},{name:"Barnacle Bill's Seafood Market",category:"Market/Takeout",description:"A legendary spot for fresh seafood. Grab some smoked salmon or fresh crab to go, or enjoy their famous crab cocktail.",features:"Fresh market, smoked fish, takeout."},{name:"Eleanor's Undertow",category:"Casual/Ice Cream",description:"A fun, retro spot near the beach known for huge burgers and delicious ice cream shakes. A great pit stop after a day on the sand.",features:"Ice cream, burgers, retro vibe."},{name:"Lighthouse Brewpub",category:"Brewery/Pub",description:"Part of the McMenamins family, this brewpub offers their signature ales and pub fare in a building with a unique history.",features:"McMenamins ales, kid friendly, quirky art."}],PTe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-blue-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-blue-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-blue-700 bg-blue-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),ETe=({attractions:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("AttractionsSection: No attractions data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-blue-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-blue-600 font-bold tracking-wider uppercase text-sm",children:"Experience the Magic"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Lincoln City"}),r.jsx("div",{className:"h-1 w-24 bg-blue-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:e.map((t,n)=>r.jsx(PTe,{attraction:t,index:n},n))})]})})),OTe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},RTe=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsxs("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:[r.jsxs("div",{className:"max-w-3xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-teal-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Discover ancient forests, dramatic headlands, and peaceful estuaries. Lincoln City offers diverse landscapes ranging from the UNESCO-protected Cascade Head to the suspension bridge at Drift Creek."})]}),r.jsx("div",{className:"hidden md:block",children:r.jsx(Dk,{className:"w-16 h-16 text-teal-100"})})]}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(OTe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),ITe=({hotels:e})=>{const t="Lincoln City";return r.jsx(mt,{townName:t,fallbackHotels:e,affiliateHotels:st[t]})},rj=({restaurant:e,index:t})=>r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:"bg-white/80 backdrop-blur-sm p-5 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md flex flex-col h-full",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-lg font-bold text-orange-950 truncate pr-2",children:e?.name||"Restaurant"}),r.jsx("div",{className:"shrink-0",children:e?.category?.includes("Seafood")?r.jsx(yc,{className:"w-4 h-4 text-orange-400"}):e?.category?.includes("Coffee")||e?.category?.includes("Breakfast")?r.jsx(bt,{className:"w-4 h-4 text-orange-400"}):e?.category?.includes("Fine")||e?.category?.includes("Wine")?r.jsx(Nt,{className:"w-4 h-4 text-orange-400"}):r.jsx(rt,{className:"w-4 h-4 text-orange-400"})})]}),r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-50 px-2 py-1 rounded-md self-start mb-3",children:e?.category||"Dining"}),r.jsx("p",{className:"text-gray-600 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50 mt-auto",children:[r.jsx("p",{className:"text-[10px] font-bold text-orange-800 uppercase tracking-wide mb-1",children:"Highlight"}),r.jsx("p",{className:"text-xs text-gray-500",children:e.features})]})]}),g3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8 w-full",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),MTe=({restaurants:e})=>{if(v.useEffect(()=>{(!e||e.length===0)&&console.warn("RestaurantsSection: No restaurant data provided")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=[e[0],e[1],e[4],e[6]].filter(Boolean),n=[e[2],e[3],e[5],e[7]].filter(Boolean),a=[e[8],e[9],e[10],e[11]].filter(Boolean);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx("div",{className:"h-px w-12 bg-orange-200"}),r.jsx(yc,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Lincoln City"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"A culinary hotspot on the coast. From fresh chowder on the bay to fine dining with a view, explore the flavors of Lincoln City."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Fresh Seafood & Views"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(rj,{restaurant:i,index:s},s))})]}),r.jsx(g3,{src:"https://images.unsplash.com/photo-1534604973900-c43ab4c2e0ab?auto=format&fit=crop&w=800&q=80",alt:"Fresh seafood dining",caption:"World-class seafood with ocean views"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(g3,{src:"https://images.unsplash.com/photo-1504754524776-8f4f37790ca0?auto=format&fit=crop&w=800&q=80",alt:"Breakfast cafe",caption:"Cozy cafes and hearty breakfasts"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Casual Eats & Breakfast"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(rj,{restaurant:i,index:s},s))})]})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Pubs, Markets & Treats"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:a.map((i,s)=>r.jsx(rj,{restaurant:i,index:s},s))})]})]})})},LTe=[{name:"Drift Creek Falls",difficulty:"Easy/Moderate",distance:"3 miles",accessibility:3,description:"Dramatic 75-foot waterfall accessed via a stunning 240-foot suspension bridge. One of the most photographed hikes on the Oregon Coast, offering a perfect blend of old-growth forest, canyon views, and accessible adventure.",notes:"Bridge is sturdy but can sway - not for those with extreme height fears. Parking pass required. Can be muddy in winter."},{name:"Chitwood Falls",difficulty:"Moderate",distance:"Varies",accessibility:3,description:"A hidden gem tucked in the Coast Range east of Lincoln City. Multiple cascades tumble through mossy cliffs in a lush rainforest setting. Less crowded than Drift Creek.",notes:"Road access can be rough - high-clearance vehicle recommended. Multiple trail options of varying difficulty."}],DTe=[{title:"Siletz Bay Music Festival",date:"August 13–23, 2026"},{title:"Fall Kite Festival",date:"October 3–4, 2026"},{title:"Lincoln City Community Days",date:"Spring 2027"},{title:"Summer Kite Festival",date:"June 26–27, 2027"},{title:"Hiking Experiences",date:"Recurring (Check local calendar)"}],BTe=()=>{v.useEffect(()=>{console.log("LincolnCityPage mounted")},[]);const e=ke["lincoln-city"],t="Lincoln City",n=lt(t),a=ct(t),i="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/4b7ba56a47e804904a0e87f9ebad9b07.webp",s={name:t,description:a,image:i,geo:{lat:44.9729,lng:-124.0049},url:"https://oregoncoastal.com/town/lincoln-city"};return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:n}),r.jsx("meta",{name:"description",content:a}),r.jsx("meta",{property:"og:title",content:n}),r.jsx("meta",{property:"og:description",content:a})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsx(Mt,{...s}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:i,alt:"Lincoln City coastline with kites and waves",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Lincoln City"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-2",children:"Lincoln City"}),r.jsx(F.p,{initial:{opacity:0},animate:{opacity:1},transition:{delay:.3,duration:.8},className:"text-xl text-white/90 font-light tracking-wide drop-shadow-md mb-4",children:"Kites, Glass Floats & Seven Miles of Smiles"}),r.jsx("div",{className:"h-1.5 w-32 bg-blue-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Lincoln City Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:STe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Enjoy seven miles of continuous beach, vibrant kite festivals, and the famous Finders Keepers glass floats."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo.lat||44.9729,lon:e?.geo.lng||-124.0113,townName:"Lincoln City"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Lincoln City",townSlug:"lincoln-city",lat:e?.geo.lat||44.9729,lon:e?.geo.lng||-124.0113,defaultStationId:"9436101"})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Lincoln City",featuredImage:i,title:"Lincoln City in Photos"})}),r.jsx(dt,{attractions:p3,townName:"Lincoln City"}),r.jsx(ETe,{attractions:p3}),r.jsx(RTe,{trails:CTe}),r.jsx(Eh,{townName:"Lincoln City",waterfalls:LTe,headerTitle:"Nearby Waterfalls",headerSubtitle:"The lush Coast Range rises just east of Lincoln City, hiding some of the most dramatic waterfall hikes on the Oregon Coast.",ctaText:"Staying near Lincoln City for a waterfall day trip? Book hotels in Lincoln City through our Expedia affiliate links and stay close to Drift Creek Falls."}),r.jsx($r,{events:DTe}),r.jsx(ITe,{hotels:TTe}),r.jsx(MTe,{restaurants:ATe})]}),r.jsx(Ye,{})]})},FTe=`
<p><strong>Manzanita is the hidden gem of the Oregon Coast.</strong> Nestled between the lush, forested slopes of Neahkahnie Mountain and seven miles of pristine, sandy beach, this charming village offers a sophisticated yet laid-back retreat.</p>
<p>Unlike the busier coastal towns, Manzanita moves at a gentler pace. Its main street, Laneda Avenue, slopes gently down to the ocean, lined with boutique shops, cozy cafes, and art galleries. Here, you won't find neon signs or fast-food chains—just the sound of the waves, the scent of pine and sea salt, and a community deeply connected to its stunning natural surroundings.</p>
<p>Whether you're watching storm waves crash against the cliffs, golfing on a historic course, or enjoying a sunset bonfire on the beach, Manzanita invites you to relax, breathe deep, and find your own rhythm.</p>
`,x3=[{name:"Neahkahnie Mountain Viewpoints",description:"Legendary cliffs rising 1,600 feet above the ocean. The viewpoints along Highway 101 offer some of the most spectacular panoramas on the entire Oregon Coast, perfect for whale watching and sunsets.",details:"Scenic Viewpoint"},{name:"Manzanita Beach",description:"Seven miles of soft, white sand stretching from the foot of Neahkahnie Mountain to the Nehalem Bay jetty. It's wide, flat, and perfect for walking, kite flying, and evening fires.",details:"Beach Access"},{name:"Laneda Avenue",description:"The heart of the town. A charming, walkable street that runs directly to the beach, featuring unique local boutiques, bookstores, bakeries, and coffee shops.",details:"Shopping & Dining"},{name:"Nehalem Bay State Park",description:"Just south of town, this park features a 4-mile sand spit separating the bay from the ocean. It offers camping, biking trails, horse riding, and a small airstrip.",details:"State Park"},{name:"Hoffman Center for the Arts",description:"A cultural hub providing artistic, educational, and cultural programs. They host writing workshops, clay studios, horticultural events, and gallery exhibitions.",details:"Art & Culture"},{name:"Manzanita Links",description:"A scenic 9-hole golf course winding through pine and spruce trees on rolling dunes. Known for its friendly atmosphere and beautifully maintained greens.",details:"Golf Course"},{name:"Short Sand Beach (Oswald West)",description:"Located just north in Oswald West State Park, this sheltered cove is a surfer's paradise and a favorite spot for picnics, surrounded by an old-growth forest.",details:"Surfing & Hiking"},{name:"Manzanita Farmers Market",description:"Held on Friday evenings during the summer, this market showcases local produce, artisan crafts, live music, and delicious prepared foods.",details:"Seasonal Market"}],zTe=[{name:"Neahkahnie Mountain Trail",distance:"3.0 miles",difficulty:"Moderate/Hard",elevation:"900 ft",description:"A switchback trail leading to the summit of Neahkahnie Mountain. The effort is rewarded with breathtaking, aerial-like views of Manzanita and the coastline stretching south."},{name:"Cape Falcon Trail",distance:"4.8 miles",difficulty:"Moderate",elevation:"300 ft",description:"Wanders through majestic old-growth Sitka spruce forests to the tip of Cape Falcon, offering dramatic views of Smuggler's Cove and the ocean crashing below."},{name:"Short Sand Beach Trail",distance:"1.0 mile",difficulty:"Easy",elevation:"100 ft",description:"A gentle, family-friendly walk through a lush rainforest along a creek, ending at the popular surfing beach of Short Sand in Oswald West State Park."},{name:"Nehalem Bay Spit Trail",distance:"5.2 miles",difficulty:"Easy",elevation:"Flat",description:"A long, flat trail running along the sand spit between the ocean and the bay. Great for spotting elk, birds, and seals near the jetty."},{name:"Elk Mountain Trail",distance:"4.0 miles",difficulty:"Strenuous",elevation:"1900 ft",description:"For experienced hikers only. This steep, rugged climb inland from the coast offers incredible summit views but requires scrambling and good fitness."},{name:"Devil's Cauldron Trail",distance:"0.5 miles",difficulty:"Easy/Moderate",elevation:"100 ft",description:"A short but spectacular trail leading to a viewpoint overlooking a massive cove where ocean waves churn violently against sheer cliffs."}],$Te=[{name:"Coast Cabins",category:"Boutique",description:"Upscale, architectural cabins designed for privacy and relaxation. Features amenities like hot tubs, fire pits, and modern interiors just steps from the beach.",amenities:"Hot Tubs, Fire Pits, WiFi"},{name:"The Ocean Inn",category:"Oceanfront",description:"Located right on the beach, offering suites with full kitchens, fireplaces, and private decks. A perfect spot to watch the sunset from your room.",amenities:"Ocean Views, Kitchens, Fireplaces"},{name:"Inn at Manzanita",category:"Romantic",description:"A serene retreat nestled in the pines and spruce. The rooms feature jetted tubs and fireplaces, creating a cozy and romantic atmosphere.",amenities:"Jetted Tubs, Fireplaces, Gardens"},{name:"Sunset Surf Motel",category:"Oceanfront",description:"A classic, family-friendly motel with an unbeatable location directly overlooking the ocean. Features a seasonal outdoor pool and easy beach access.",amenities:"Pool, Ocean Views, Kitchenettes"},{name:"San Dune Inn",category:"Budget-Friendly",description:"A charming, retro-style inn located in the heart of town. Known for its friendly hosts, clean rooms, and proximity to shops and dining.",amenities:"Pet Friendly, BBQ Area, Bikes"},{name:"Spindrift Inn",category:"Boutique",description:"A quaint, restored motor court inn with a lovely garden courtyard. Each room is individually decorated, offering a cozy and personal touch.",amenities:"Gardens, Kitchenettes, WiFi"}],HTe=[{name:"The Big Wave Cafe",cuisine:"Seafood & American",price:"$$-$$$",description:"A local favorite known for its fresh seafood, razor clams, and hearty breakfasts. Friendly service and a warm, welcoming atmosphere.",features:"Fresh Seafood"},{name:"Yolk",cuisine:"Breakfast & Brunch",price:"$$",description:"A bright and modern spot serving creative breakfast dishes, homemade pastries, and excellent coffee. Expect a wait on weekends—it's that good.",features:"Best Brunch"},{name:"MacGregor's",cuisine:"Whiskey Bar & Small Plates",price:"$$-$$$",description:"An intimate, upscale bar offering an extensive whiskey selection, craft cocktails, and delicious small plates like chowder and charcuterie.",features:"Craft Cocktails"},{name:"Marzano's Pizza Pie",cuisine:"Pizza & Italian",price:"$$",description:"Famous for their wood-fired pizzas with perfectly crisp crusts and fresh toppings. A casual spot that's perfect for a post-beach dinner.",features:"Wood-Fired Pizza"},{name:"Wild Grocery & Cafe",cuisine:"Organic & Deli",price:"$$",description:"A health-conscious cafe and grocer serving organic smoothies, sandwiches, and salads. Great for grabbing a picnic lunch for the beach.",features:"Organic Options"},{name:"Left Coast Siesta",cuisine:"Mexican",price:"$",description:"Fast, fresh, and filling burritos and tacos. A popular spot for a quick, tasty meal with plenty of outdoor seating on the deck.",features:"Outdoor Deck"},{name:"Manzanita Coffee Co.",cuisine:"Coffee & Pastries",price:"$",description:"The place to start your morning. Roasts their own beans and serves excellent espresso drinks along with a selection of baked goods.",features:"House Roasted Coffee"},{name:"A Mighty Thai",cuisine:"Thai",price:"$$",description:"Authentic Thai cuisine with bold flavors. Offers all the classics like Pad Thai, curries, and spring rolls in a cozy setting.",features:"Takeout Available"},{name:"Neah-Kah-Nie Bistro",cuisine:"Bistro & Seafood",price:"$$$",description:"Fine dining in a relaxed atmosphere. The menu changes seasonally to highlight the freshest local ingredients and seafood.",features:"Seasonal Menu"},{name:"The Winery at Manzanita",cuisine:"Wine Bar & Snacks",price:"$$-$$$",description:"Taste small-batch wines produced right on the coast. Features a beautiful outdoor courtyard with fire pits, perfect for a relaxed evening.",features:"Dog Friendly Patio"}],WTe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-teal-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-teal-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-teal-700 bg-teal-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),VTe=({attractions:e})=>!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-teal-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-teal-600 font-bold tracking-wider uppercase text-sm",children:"Explore the Beauty"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Manzanita"}),r.jsx("div",{className:"h-1 w-24 bg-teal-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(WTe,{attraction:t,index:n},n))})]})}),UTe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-teal-100 text-teal-800 border-teal-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},qTe=({trails:e})=>!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-teal-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From the dramatic summit of Neahkahnie Mountain to peaceful forest walks, Manzanita is a hiker's paradise."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(UTe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})}),GTe=({hotels:e})=>{const t="Manzanita",n=["The Ocean Inn","Spindrift Inn"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},aj=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-teal-100 hover:border-teal-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-teal-950",children:e?.name||"Restaurant Name"}),e?.cuisine&&r.jsx("span",{className:"text-xs font-medium text-teal-600 bg-teal-100 px-2 py-1 rounded-md",children:e.cuisine})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.price&&r.jsxs("div",{className:"pt-3 border-t border-teal-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-teal-800 uppercase tracking-wide",children:"Price Range"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.price})]})]}),y3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-teal-500 pl-3",children:n})})]}),KTe=({restaurants:e})=>{if(!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-teal-50 text-center",children:r.jsx("p",{className:"text-teal-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,6),a=e.slice(6);return r.jsx("section",{className:"py-24 px-4 bg-teal-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-teal-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Manzanita"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Small town, big flavors. From fresh seafood to artisanal bakeries, Manzanita's culinary scene punches well above its weight."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-teal-900 border-b-2 border-teal-200 pb-2 inline-block",children:"Local Favorites"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(aj,{restaurant:i},s))})]}),r.jsx(y3,{src:"https://images.unsplash.com/photo-1555939594-58d7cb561ad1?auto=format&fit=crop&w=800&q=80",alt:"Delicious dining experience",caption:"Fresh flavors & cozy atmosphere"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(y3,{src:"https://images.unsplash.com/photo-1565299624946-b28f40a0ae38?auto=format&fit=crop&w=800&q=80",alt:"Pizza and casual food",caption:"Perfect for after the beach"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-teal-900 border-b-2 border-teal-200 pb-2 inline-block ml-auto",children:"Casual Eats"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(aj,{restaurant:i},s))})]})]}),a.length>0&&r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-teal-900 mb-8 text-center",children:"Coffee, Thai & Wine"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:a.map((i,s)=>r.jsx(aj,{restaurant:i},s))})]})]})})},ZTe=()=>{v.useEffect(()=>{console.log("ManzanitaPage mounted")},[]);const e=ke.manzanita,t=lt("Manzanita"),n=ct("Manzanita"),a=jn.manzanita;return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Manzanita Oregon Travel",description:n,url:"https://oregoncoastal.com/town/manzanita",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Manzanita, Oregon Coast and Neahkahnie Mountain",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Manzanita"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Manzanita"}),r.jsx("div",{className:"h-1.5 w-32 bg-teal-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Manzanita Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:FTe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Nestled at the foot of Neahkahnie Mountain, Manzanita boasts seven miles of pristine sandy beach."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||45.7184,lon:e?.geo?.lng||-123.9351,townName:"Manzanita"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Manzanita",townSlug:"manzanita",lat:e?.geo?.lat||45.7184,lon:e?.geo?.lng||-123.9351})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Manzanita",featuredImage:a,title:"Manzanita in Photos"})}),r.jsx(dt,{attractions:x3,townName:"Manzanita"}),r.jsx(VTe,{attractions:x3}),r.jsx(qTe,{trails:zTe}),r.jsx(GTe,{hotels:$Te}),r.jsx(KTe,{restaurants:HTe})]}),r.jsx(Ye,{})]})},YTe=`
<p>Nestled along the banks of the Nehalem River just minutes from the Pacific Ocean, Nehalem offers visitors a picturesque riverside retreat steeped in timber town history. This charming community of just 300 residents features classic frontier-style buildings with raised porches and hanging flower baskets that recall the area's logging boom era. Enveloped by coastal forests, Nehalem's natural beauty is quiet and idyllic—a refreshing departure from busier beach towns while remaining perfectly positioned for exploring the northern Oregon Coast.</p>
<p>The town's location at the confluence of river and ocean creates exceptional opportunities for fishing, crabbing, and wildlife viewing. The North Fork of the Nehalem River boasts excellent fishing for Coho salmon, while nearby Nehalem Bay draws anglers seeking Chinook, sturgeon, and steelhead. From shaded riverside docks wreathed in morning fog to world-class state parks minutes away, Nehalem serves as an ideal base camp for outdoor adventures. The Oregon Coast Scenic Railroad offers historic train rides along the river, while Nehalem Bay Winery—one of Oregon's 10 oldest wineries—invites visitors to sample wines overlooking dairy pastures in a lush valley setting.</p>
`,v3=[{name:"Nehalem Bay State Park",description:"Located on a 4-mile sandspit between Nehalem Bay and the Pacific Ocean, this popular park offers camping, hiking, beachcombing, kayaking, fishing, and wildlife viewing. The calm bay waters provide perfect conditions for kayaking and paddleboarding. Excellent crabbing and clamming at low tide. Features 265 campsites, 18 yurts, hiker-biker camp, and even a fly-in camp for small aircraft. A 1.8-mile bike trail connects the ocean to the bay through coastal forest. Wildlife including deer, elk, mountain lions, black bears, coyotes, and abundant birdlife call this area home.",details:"State Park"},{name:"Nehalem Bay Winery",description:"One of Oregon's 10 oldest wineries, established in a beautiful historic setting in a lush green valley on Highway 53, one mile off Highway 101. Sample traditional red and white vintages plus sweet and fruity wines at outdoor picnic tables overlooking dairy pastures. The winery offers a peaceful escape with stunning pastoral views. Perfect stop for wine tasting before or after beach adventures.",details:"Winery"},{name:"Nehalem River",description:"The scenic river flows through town, offering fishing, kayaking, and peaceful riverside walks. Shaded docks provide access for small boats and contemplative moments wreathed in morning fog. The North Fork boasts great fishing for Coho salmon. Kayak the river to explore marshlands and Sitka spruce forests while spotting egrets, blue herons, seals, and other wildlife.",details:"Nature"},{name:"Riverside Fish House",description:"Walk-up fish and chips stand on Highway 101 with outdoor seating overlooking the Nehalem River. Local favorite serving fresh seafood in casual riverside setting. Perfect lunch stop while exploring the area.",details:"Dining"},{name:"Waxer Distilling Company",description:"Small craft distillery with Old West feel featuring 23 different spirits including whiskies, brandy, rum, cordials, vodkas, and tequila. Tasting room on the river with indoor and outdoor seating. Casual, friendly vibe with knowledgeable staff. Great location for spirits enthusiasts.",details:"Distillery"},{name:"North County Recreation District (NCRD)",description:"Community center in a converted 1920s school building featuring heated swimming pool, fitness center, group exercise classes, yoga studio, gym, youth activities, theater, and art gallery. Spaces available to rent. Popular with locals and visitors for recreation and cultural events.",details:"Recreation"},{name:"Oregon Coast Scenic Railroad",description:"Historic diesel and steam locomotive excursions along the Nehalem River from Wheeler to Batterson. Two-hour scenic tours showcase vibrant autumn colors and beautiful river valley landscapes. Special seasonal rides including Fall Splendor Train Ride. Experience the magic of historic rail travel through Pacific Northwest scenery.",details:"Attraction"},{name:"Nearby Oswald West State Park",description:"Just north of Nehalem, this spectacular 2,500-acre park features pristine old-growth rainforest and Short Sand Beach, beloved by surfers. Easy trails through magnificent Sitka spruce lead to the beach. The Cape Falcon Trail offers spectacular 5-mile hike to dramatic coastal headland.",details:"State Park"}],JTe=[{name:"Nehalem Bay Spit Trail",distance:"5+ miles",difficulty:"Moderate",elevation:"Flat",description:"Explore the sandspit between Nehalem Bay and Pacific Ocean through dunes and coastal vegetation. Excellent for birdwatching, beachcombing, and solitude. Year-round access with changing seasonal landscapes. Can be windy. Part of Nehalem Bay State Park."},{name:"Cape Falcon Trail",distance:"5 miles round trip",difficulty:"Moderate",elevation:"300 ft gain",description:"Located in nearby Oswald West State Park, this spectacular trail winds through lush old-growth Sitka spruce before emerging at Cape Falcon's dramatic headland with stunning coastline views. Excellent for whale watching during migration seasons."},{name:"Neahkahnie Mountain Trail",distance:"5 miles loop",difficulty:"Strenuous",elevation:"1,700 feet",description:"Near Nehalem, this challenging hike rewards with panoramic coastline views from 1,661-foot summit. Trail traverses old-growth forests and wildflower meadows frequented by Roosevelt elk. On clear days, views extend for miles. Featured in local legends about buried Spanish treasure."},{name:"Nehalem River Kayaking",distance:"Variable",difficulty:"Easy to Moderate",elevation:"Water Level",description:"Launch from boat ramps and explore tranquil bay waters, marshlands, and Sitka spruce forests. Spot egrets, blue herons, seals, and other wildlife. Kayak Tillamook offers rentals and guided tours. Perfect for peaceful paddling in protected waters."},{name:"Short Sand Beach Trail",distance:"0.5 miles one-way",difficulty:"Easy",elevation:"Minimal",description:"In Oswald West State Park, easy walk alongside Short Sand Creek through magnificent coastal forest to popular surfing beach. Wheelbarrows provided for gear transport. Cathedral-like atmosphere created by towering trees."},{name:"Oregon Coast Trail Sections",distance:"Variable",difficulty:"Easy to Moderate",elevation:"Varies",description:"The 362-mile Oregon Coast Trail passes near Nehalem, offering access to pristine beaches and coastal forests. Hike sections north toward Cannon Beach or south through state parks."}],XTe=[{name:"Nehalem River Inn",description:"Beautifully restored 1930s historic building originally McLeod's Tavern & Cabins. Five boutique rooms feature handcrafted furniture, reclaimed hardwood floors, live-edge slab headboards, luxury linens, and cozy seating areas. Located on the banks of the Nehalem River with fire pit and riverside relaxation. Pet-friendly rooms available (Rooms 5 and 6). Just minutes from Manzanita beaches, Oswald West State Park, and Nehalem Bay State Park.",category:"Boutique",amenities:"Riverside, Fire Pit, Luxury Linens"},{name:"Wheeler on the Bay Lodge and Marina",description:"The only motor lodge on Nehalem Bay with rooms right on the water and private dock. Waterfront views of bay and mountains, jetted tubs, fireplaces, complimentary breakfast, free kayak use for multi-night stays, huge DVD collection. Perfect for fishing, crabbing, and kayaking enthusiasts. Friendly owners provide personalized service. Walking distance to Salmonberry Saloon restaurant.",category:"Waterfront Lodge",amenities:"Private Dock, Free Kayaks, Jetted Tubs"},{name:"Old Wheeler Hotel",description:"Lovingly restored historic boutique inn in nearby Wheeler (5 minutes south). Charming gem in heart of downtown with individual furnishings, modern comforts, and views of Nehalem Bay. Adults-only property. Walking distance to restaurants and shops.",category:"Historic Boutique",amenities:"Bay Views, Adults Only"},{name:"Nehalem Bay State Park Campground",description:"One of Oregon's largest coastal campgrounds with 265 electrical sites, 18 yurts, hiker-biker camp, and horse camp (17 sites with corrals). Renovations completed Fall 2025 include new restroom/shower building and upgraded utilities. Year-round camping with reservations up to 6 months in advance.",category:"Camping",amenities:"Yurts, Showers, Beach Access"},{name:"Vacation Rentals",description:"Selection of riverside homes and forest retreats available through local management companies and platforms like Airbnb and VRBO. Many properties offer riverside settings, full kitchens, and access to fishing and outdoor activities. Additional accommodations available in nearby Manzanita (5 minutes) and Wheeler (5 minutes south).",category:"Rentals",amenities:"Kitchens, Riverside, Private"}],QTe=[{name:"Buttercup Homemade Ice Creams & Chowders",description:"Named one of the 10 best places for chowder on the Oregon Coast. Fresh, gluten-free artisan chowders including NW seafood, Thai green curry, Thai red curry, Mexican, Peruvian, braised beef, butternut squash, Malaysian Laksa, and seasonal specialties. Homemade ice creams and vegan sorbets with unique flavors. Take-out only with riverside picnic tables behind building. Each bag hand-signed with artistic thank you. Thursday-Sunday 11:30am-5pm (closes 4pm Sunday). 35915 Highway 101 N.",category:"Chowder & Ice Cream",features:"Gluten-Free, Artisan"},{name:"Wanda's Cafe & Bakery",description:"Popular breakfast and brunch spot serving fresh pastries, hearty breakfasts, and homemade baked goods. Friendly, attentive service. Local favorite for morning meals. 12870 H Street.",category:"Bakery/Cafe",features:"Breakfast, Pastries"},{name:"Riverside Fish House",description:"Walk-up stand on Highway 101 with outdoor seating overlooking the Nehalem River. Fresh fish and chips, seafood baskets. Casual riverside dining perfect for quick lunches.",category:"Seafood",features:"River View, Casual"},{name:"Waxer Distilling Company Tasting Room",description:"Small craft distillery serving 23 different spirits. Tasting flights available. Indoor and outdoor seating on the river. Casual atmosphere for sampling locally-made spirits.",category:"Distillery",features:"Spirits, Tasting Room"},{name:"The Pizza Garden",description:"Local pizza spot serving pies and Italian favorites. Casual dining option in town. 12870 H Street.",category:"Italian",features:"Pizza, Casual"},{name:"Salmonberry Saloon",description:"Highly acclaimed restaurant and bar in nearby Wheeler (5 minutes south). Must-visit destination for dining and drinks.",category:"Restaurant & Bar",features:"Local Favorite"},{name:"The Schooner",description:"Local favorite in nearby Wheeler (5 minutes south).",category:"Restaurant",features:"Nearby Option"},{name:"Nearby Manzanita Dining",description:"Extensive dining options available in nearby Manzanita (5 minutes north) including Neah-Kah-Nie Bistro, Big Wave Café, Yolk, Offshore Grill, San Dune Pub, and more. See our Manzanita guide.",category:"Various",features:"Nearby Options"}],eAe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-teal-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-teal-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed text-sm",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-xs font-bold text-teal-700 bg-teal-50/50 inline-block px-3 py-1 rounded-md uppercase tracking-wider",children:e.details})})]})}),tAe=({attractions:e})=>!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-teal-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-teal-600 font-bold tracking-wider uppercase text-sm",children:"Discover Nehalem"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Attractions & Highlights"}),r.jsx("div",{className:"h-1 w-24 bg-teal-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:e.map((t,n)=>r.jsx(eAe,{attraction:t,index:n},n))})]})}),nAe=({level:e})=>{const t={Easy:"bg-teal-100 text-teal-800 border-teal-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy to Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},rAe=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-teal-600"}),"Hiking Trails & Outdoor Adventure"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From kayaking the calm waters of Nehalem Bay to summiting Neahkahnie Mountain, adventures abound in every direction."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(nAe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),aAe=({hotels:e})=>{const t="Nehalem",n=["Nehalem Bay State Park Campground","Vacation Rentals","Coming Soon","Nehalem River Inn"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},b3=({restaurant:e,image:t})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm rounded-xl border border-teal-100 hover:border-teal-300 transition-all shadow-sm hover:shadow-md overflow-hidden h-full flex flex-col",children:[r.jsx("div",{className:"h-48 w-full bg-teal-50 relative overflow-hidden",children:t?r.jsx("img",{src:t,alt:e.name,className:"w-full h-full object-cover transition-transform duration-500 hover:scale-105"}):r.jsx("div",{className:"flex items-center justify-center h-full text-teal-200",children:r.jsx(Du,{className:"w-8 h-8"})})}),r.jsxs("div",{className:"p-6 flex flex-col flex-grow",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-teal-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-teal-700 bg-teal-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-teal-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-teal-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]})]}),iAe=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-80 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-teal-500 pl-3",children:n})})]}),sAe=({restaurants:e})=>{const[t,n]=v.useState({});if(v.useEffect(()=>{(async()=>{const{data:l}=await Ht.from("town_photos").select("image_url, caption").eq("town_name","Nehalem");if(l){const c={};l.forEach((h,m)=>{e[m]&&(c[e[m].name]=h.image_url)}),n(c)}})()},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-teal-50 text-center",children:r.jsx("p",{className:"text-teal-900",children:"Dining information currently unavailable."})});const a=o=>{const l=["https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1509440159596-0249088772ff?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1534080564583-6be75777b70a?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1514362545857-3bc16c4c7d1b?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1513104890138-7c749659a591?auto=format&fit=crop&w=800&q=80"];return l[o%l.length]},i=e.slice(0,2),s=e.slice(2);return r.jsx("section",{className:"py-24 px-4 bg-teal-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-teal-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Nehalem"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Local favorites, artisan chowders, and riverfront sips."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-teal-900 border-b-2 border-teal-200 pb-2 inline-block",children:"Local Favorites"}),r.jsx("div",{className:"grid gap-6",children:i.map((o,l)=>r.jsx(b3,{restaurant:o,image:t[o.name]||a(l)},l))})]}),r.jsx(iAe,{src:"https://images.unsplash.com/photo-1621351183204-58cb30d50712?auto=format&fit=crop&w=800&q=80",alt:"Clam Chowder",caption:"Award-winning local chowders"})]}),s.length>0&&r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-teal-900 mb-8 text-center",children:"More Good Eats"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:s.map((o,l)=>r.jsx(b3,{restaurant:o,image:t[o.name]||a(l+2)},l))})]})]})})},oAe=()=>{v.useEffect(()=>{console.log("NehalemPage mounted")},[]);const e=ke.nehalem,t=lt("Nehalem"),n=ct("Nehalem"),a=jn.nehalem;return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Nehalem Oregon Travel",description:n,url:"https://oregoncoastal.com/town/nehalem",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Nehalem River and Coast",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Nehalem"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Nehalem"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12",children:[r.jsx("div",{className:"lg:col-span-2",children:r.jsx(Cr,{townName:"Nehalem",initialDescription:YTe},"Nehalem-About")}),r.jsx("div",{className:"lg:col-span-1",children:r.jsx(yt,{lat:e?.geo?.lat||45.7179,lon:e?.geo?.lng||-123.8965,townName:"Nehalem"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Nehalem",townSlug:"nehalem",lat:e?.geo?.lat||45.7179,lon:e?.geo?.lng||-123.8965})})]}),r.jsx(ht,{townName:"Nehalem",featuredImage:a,title:"Nehalem in Photos"}),r.jsx(dt,{attractions:v3,townName:"Nehalem"}),r.jsx(tAe,{attractions:v3}),r.jsx(rAe,{trails:JTe}),r.jsx(aAe,{hotels:XTe}),r.jsx(sAe,{restaurants:QTe})]}),r.jsx(Ye,{})]})},lAe=`
<p>Neskowin is a hidden gem on the Oregon Coast, known for its iconic Proposal Rock and the mysterious 'Ghost Forest'—ancient Sitka spruce stumps revealing themselves at low tide. This quiet village offers a serene escape with its pristine beach, charming golf course, and close-knit community vibe.</p>
<p>Located just north of Lincoln City, Neskowin feels worlds away, protected by the dramatic Cascade Head to the south. The village is characterized by its lovely cottages, lack of commercial sprawl, and deep connection to the natural landscape. Whether you are exploring the tide pools around Proposal Rock or hiking the breathtaking trails of Cascade Head, Neskowin offers a peaceful retreat into nature.</p>
`,w3=[{name:"Ghost Forest",description:"A hauntingly beautiful geological phenomenon featuring 2,000-year-old Sitka spruce stumps that are visible on the beach during low tide, remnants of an ancient forest.",details:"Ancient Geology"},{name:"Proposal Rock",description:"An iconic sea stack sitting right on the beach. Legend has it a sea captain took his beloved there to propose. It features a small trail to the top, but caution is advised.",details:"Landmark Sea Stack"},{name:"Neskowin Beach",description:"A broad, sandy beach offering spectacular views of Cascade Head and Proposal Rock. It is perfect for long walks, beachcombing, and watching the sunset.",details:"Pristine Coastline"},{name:"Cascade Head",description:"A massive headland rising dramatically from the ocean south of Neskowin. It provides shelter to the village and offers some of the best hiking views on the coast.",details:"Nature Preserve"},{name:"Neskowin Beach Golf Course",description:"One of the oldest golf courses on the Oregon Coast. This lovely 9-hole course meanders through the wetlands and offers beautiful views of the surrounding hills.",details:"Historic Golf"},{name:"Nestucca Bay National Wildlife Refuge",description:"Located nearby, this refuge is a haven for migratory birds, including the Dusky Canada Goose. It offers peaceful walking trails and scenic viewpoints.",details:"Wildlife Sanctuary"},{name:"Neskowin Farmers Market",description:"A beloved seasonal market held on weekends, featuring fresh local produce, artisan crafts, and delicious food from the surrounding Tillamook County area.",details:"Local Produce"},{name:"Neskowin Trading Company",description:"The heart of the village, this store offers gourmet foods, a wine selection, and daily essentials, serving as a central meeting point for locals and visitors.",details:"Village Hub"}],cAe=[{name:"Cascade Head Trail",distance:"3.4 miles",difficulty:"Moderate",elevation:"1,200 ft",description:"A rewarding hike taking you through sitka spruce forests to open grassy headlands with breathtaking panoramic views of the coastline and Salmon River estuary."},{name:"Salmon River Trail",distance:"5.0 miles",difficulty:"Easy/Moderate",elevation:"Minimal",description:"This scenic trail follows the Salmon River through old-growth forests, offering chances to see salmon runs in the fall and diverse wildlife year-round."},{name:"Drift Creek Falls Trail",distance:"3.0 miles",difficulty:"Moderate",elevation:"540 ft",description:"Famous for its 240-foot suspension bridge over the canyon and a spectacular 75-foot waterfall. A lush, fern-filled forest hike that is a must-do."},{name:"Proposal Rock Tide Pool Exploration",distance:"Varies",difficulty:"Easy",elevation:"Flat",description:"At low tide, the base of Proposal Rock reveals intricate tide pools filled with starfish, anemones, and crabs. Always be aware of the incoming tide."},{name:"Ghost Forest Exploration",distance:"1.0 mile",difficulty:"Easy",elevation:"Flat",description:"A beach walk to explore the ancient stumps of the Ghost Forest. Best viewed at negative low tides when the stumps are fully exposed."},{name:"Nestucca Bay Wildlife Refuge Trails",distance:"2.2 miles",difficulty:"Easy",elevation:"Gentle",description:"Well-maintained trails leading to an upper observation deck with sweeping views of the bay, ocean, and coastal meadows."}],dAe=[{name:"Proposal Rock Inn",category:"Condo Hotel",description:"Located in the heart of the village, offering comfortable condo-style accommodations with kitchens and fireplaces. Just steps from the beach and golf course.",amenities:"Kitchens, Central Location"},{name:"The Breakers",category:"Vacation Rentals",description:"Oceanfront cottages and condos providing stunning views of Proposal Rock and the Pacific. Enjoy direct beach access and the sound of the waves.",amenities:"Oceanfront, Views"},{name:"The Chelan",category:"Historic Condos",description:"Charming, privately owned condos located directly across from the beach. Known for their cozy atmosphere and proximity to the village center.",amenities:"Beach Access, Cozy"},{name:"Neskowin Creek RV Resort",category:"RV Park",description:"Situated in a wooded setting just inland from the village. Offers RV sites, cabins, and amenities like an indoor pool and sports courts.",amenities:"Pool, Family Friendly"},{name:"Vacation Rentals",category:"Private Homes",description:"Neskowin has a wide variety of private vacation homes for rent, ranging from modern luxury beach houses to rustic cabins tucked into the trees.",amenities:"Various Options"}],uAe=[{name:"Hawk Creek Cafe",category:"Casual Dining",description:"A local favorite serving wood-fired pizzas, fresh seafood, and burgers. The outdoor patio is perfect for sunny days, located right by the creek.",features:"Wood-fired Pizza, Patio"},{name:"Neskowin Trading Company",category:"Bistro/Deli",description:"Offers a gourmet deli counter, extensive wine selection, and bistro-style meals. It's the perfect spot for a quick lunch or picking up picnic supplies.",features:"Gourmet Deli, Wine"},{name:"Village Scoop",category:"Ice Cream",description:"A seasonal treat shop offering delicious ice cream, candy, and espresso. A must-visit stop after a day on the beach or golf course.",features:"Ice Cream, Sweets"},{name:"Dining Note",category:"Information",description:"Dining options within Neskowin are limited but high quality. For more extensive dining choices, Pacific City and Lincoln City are just a short drive away.",features:"Local Info"}],hAe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),fAe=({attractions:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("AttractionsSection: No attractions data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Explore the Hidden Gem"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Neskowin"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(hAe,{attraction:t,index:n},n))})]})})),mAe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},pAe=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From the mystical Ghost Forest to the towering heights of Cascade Head, Neskowin offers unforgettable coastal adventures."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(mAe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),gAe=({hotels:e})=>{const t="Neskowin",n=["Neskowin Creek RV Resort","Vacation Rentals","Coming Soon","Proposal Rock Inn","The Breakers","The Chelan"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},xAe=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),j3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),yAe=({restaurants:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("RestaurantsSection: No restaurant data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})}):r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Neskowin"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"While intimate, Neskowin offers delightful dining experiences, from wood-fired pizza to gourmet deli finds."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-start mb-16",children:[r.jsx("div",{className:"space-y-6",children:r.jsx("div",{className:"grid gap-6",children:e.map((t,n)=>r.jsx(xAe,{restaurant:t},n))})}),r.jsxs("div",{className:"space-y-8",children:[r.jsx(j3,{src:"https://images.unsplash.com/photo-1594212699903-ec8a3eca50f5?auto=format&fit=crop&w=800&q=80",alt:"Wood fired pizza",caption:"Enjoy casual dining with a view"}),r.jsx(j3,{src:"https://images.unsplash.com/photo-1501443762994-82bd5dace89a?auto=format&fit=crop&w=800&q=80",alt:"Ice cream cone",caption:"Sweet treats for a beach day"})]})]})]})})),vAe=()=>{v.useEffect(()=>{console.log("NeskowinPage mounted")},[]);const e=ke.neskowin,t=lt("Neskowin"),n=ct("Neskowin"),a=jn.neskowin;return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Neskowin, Oregon",description:n,url:window.location.href,image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Neskowin, Oregon coastline",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Neskowin"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Neskowin"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Neskowin Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:lAe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:'Known for its quiet charm and the mysterious ancient "Ghost Forest" stumps on the beach.'})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||45.1032,lon:e?.geo?.lng||-123.9804,townName:"Neskowin"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Neskowin",townSlug:"neskowin",lat:e?.geo?.lat||45.1032,lon:e?.geo?.lng||-123.9804})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Neskowin",featuredImage:a,title:"Neskowin in Photos"})}),r.jsx(dt,{attractions:w3,townName:"Neskowin"}),r.jsx(fAe,{attractions:w3}),r.jsx(pAe,{trails:cAe}),r.jsx(gAe,{hotels:dAe}),r.jsx(yAe,{restaurants:uAe})]}),r.jsx(Ye,{})]})},bAe=`Netarts is a quiet, unassuming gem tucked away on the Three Capes Scenic Route. Unlike the bustling tourist hubs to the north, Netarts feels like a secret shared among friends. It is a place defined by its pristine bay—one of the cleanest estuaries in the United States—where oyster farming is not just an industry but a way of life.
Here, the rhythm of the day is set by the tides. Visitors come to dig for clams in the rich mudflats, kayak through calm waters reflecting the evergreen hills, or simply watch the fog roll over Cape Lookout. With easy access to spectacular state parks, a legendary seafood scene, and an atmosphere of deep tranquility, Netarts is the perfect retreat for those seeking the authentic, slower-paced soul of the Oregon Coast.`,N3=[{name:"Netarts Bay",description:"The crown jewel of the area, this pristine estuary is famous for its high water quality and abundant marine life. It's a prime destination for crabbing, clamming, kayaking, and spotting harbor seals resting on the sandbars.",details:"Water Recreation"},{name:"Netarts Spit",description:"A long, sandy stretch separating the bay from the ocean. Accessible from Cape Lookout State Park, it offers miles of solitude, beachcombing, and the unique experience of having calm bay waters on one side and crashing ocean waves on the other.",details:"Beach & Dunes"},{name:"Tunnel Beach",description:"Located near Oceanside, this unique beach is accessed via a man-made tunnel through Maxwell Point. It opens up to a secluded cove filled with agates, sea caves, and dramatic rock formations.",details:"Hidden Gem"},{name:"Cape Lookout State Park",description:"A massive headland jutting two miles into the Pacific. The park features lush old-growth forests, a popular campground, and hiking trails that offer some of the best whale-watching vantage points on the coast.",details:"State Park"},{name:"JAndy Oyster Co.",description:"A local favorite for fresh shellfish. They grow their oysters right in Netarts Bay, ensuring the freshest possible taste. Visitors can buy bags of oysters to grill or enjoy them on-site.",details:"Local Seafood"},{name:"Nevør Shellfish Farm",description:"Another testament to the bay's bounty, Nevør Shellfish Farm offers sustainably grown oysters and clams. Their focus on quality and environmental stewardship makes them a staple of the local food scene.",details:"Sustainable Farming"},{name:"Jacobsen Salt Company",description:"Located right on the bay, this nationally renowned company harvests sea salt from the pristine waters of Netarts. They often have a small stand or shop where you can purchase their famous finishing salts.",details:"Artisan Salt"},{name:"Bayocean Peninsula",description:"The site of a town that fell into the sea. Once a resort community, it was reclaimed by nature. Now it's a fascinating place to hike, exploring the ghost forest and imagining the history of the lost town.",details:"Historic Site"}],wAe=[{name:"Cape Lookout Trail",distance:"4.8 miles round trip",difficulty:"Moderate",elevation:"400 ft gain",description:"One of the most spectacular hikes on the coast. The trail follows the headland tip, offering dizzying views of the ocean below. It's a prime spot for seeing gray whales during migration."},{name:"Tunnel Beach Trail",distance:"0.5 miles",difficulty:"Easy",elevation:"Flat",description:"A short walk through the tunnel at Maxwell Point leads to the hidden beach. Note: Access can be limited during high tide, so check tide tables before visiting."},{name:"Netarts Spit Trail",distance:"10 miles round trip",difficulty:"Moderate",elevation:"Flat",description:"A long, flat beach walk along the spit. You can go as far as you like. It's peaceful, sandy, and perfect for finding sand dollars and solitude."},{name:"Cape Meares Loop Trail",distance:"1.5 miles",difficulty:"Easy",elevation:"Minimal",description:"Located just north, this trail features the Cape Meares Lighthouse, the famous 'Octopus Tree,' and breathtaking viewpoints of the coastline."},{name:"Munson Creek Falls Trail",distance:"0.5 miles",difficulty:"Easy",elevation:"Minimal",description:"A short, family-friendly trail leading to the tallest waterfall in the Coast Range (319 feet). The path winds through an enchanting old-growth forest."},{name:"Bayocean Spit Trail",distance:"7.8 miles loop",difficulty:"Moderate",elevation:"Flat",description:"Explore the site of the lost resort town. The trail offers a mix of bay and ocean views, walking through dunes and forest on the peninsula."}],jAe=[{name:"Terimore Lodging by the Sea",category:"Beachfront",description:"Classic coastal lodging located right on the edge of Netarts Bay. Rooms offer stunning views of the water, making it easy to watch the tides change from your balcony.",amenities:"Bay Views, Kitchenettes, Pet Friendly"},{name:"The Surf Inn",category:"Motel",description:"A renovated, charming inn offering a comfortable and stylish base for your adventures. It's clean, modern, and located centrally in Netarts.",amenities:"Modern Decor, Free WiFi, Parking"},{name:"Netarts Bay Garden RV Resort",category:"RV & Camping",description:"A well-maintained RV resort offering a quiet community atmosphere. It's walking distance to the bay and local shops, perfect for road trippers.",amenities:"Full Hookups, Gardens, Boat Parking"},{name:"Vacation Rentals",category:"Private Homes",description:"Netarts has a wide selection of private vacation homes, from cozy A-frames to expansive luxury beach houses. Ideal for families or groups wanting a home-away-from-home experience.",amenities:"Various Amenities, Kitchens, Privacy"},{name:"Note",category:"Info",description:"Accommodations in Netarts are more limited than in larger towns, which preserves its quiet charm. Booking well in advance is recommended, especially for summer weekends.",amenities:"Plan Ahead"}],NAe=[{name:"The Schooner Restaurant & Lounge",category:"Seafood/Upscale",description:"The culinary heart of Netarts. Located right on the bay, it serves incredibly fresh seafood, often sourced directly from the water you're looking at. The outdoor patio with fire pits is legendary.",features:"Bayfront Dining, Fresh Oysters, Cocktails"},{name:"Upstairs Bar and Grill",category:"Casual/Pub",description:"A relaxed spot offering hearty pub fare, burgers, and seafood baskets. It has a friendly, local vibe and great views of the bay from the upper level.",features:"Bay Views, Burgers, Sports"},{name:"Bayside Market & Deli",category:"Deli/Market",description:"More than just a convenience store, this market offers excellent deli sandwiches, pizza, and growler fills. It's the perfect stop for picnic supplies before heading to the beach.",features:"Pizza, Deli Sandwiches, Growlers"},{name:"Fresh Seafood Market",category:"Market",description:"For those with a kitchen, buying fresh crab, clams, or oysters directly from local markets (like JAndy) is a must-do culinary experience in Netarts.",features:"Fresh Catch, Take-and-Cook"},{name:"Note",category:"Info",description:"Dining options are few but high quality. For more variety, the town of Tillamook is just a short 15-minute drive east.",features:"Limited Hours, Seasonal"}],kAe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-blue-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-blue-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-blue-700 bg-blue-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),_Ae=({attractions:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("AttractionsSection: No attractions data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-blue-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-blue-600 font-bold tracking-wider uppercase text-sm",children:"Discover the Coast"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Netarts"}),r.jsx("div",{className:"h-1 w-24 bg-blue-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(kAe,{attraction:t,index:n},n))})]})})),SAe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-blue-100 text-blue-800 border-blue-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},CAe=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-blue-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Explore the Three Capes Scenic Route on foot. From the ancient forests of Cape Lookout to the sandy solitude of Netarts Spit, nature is waiting."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-blue-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(SAe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),TAe=({hotels:e})=>{const t="Netarts",n=["Netarts Bay Garden RV Resort","Vacation Rentals","Note","Coming Soon"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},k3=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-blue-100 hover:border-blue-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-blue-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-blue-600 bg-blue-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-blue-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-blue-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),AAe=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-blue-500 pl-3",children:n})})]}),PAe=({restaurants:e})=>{if(v.useEffect(()=>{(!e||e.length===0)&&console.warn("RestaurantsSection: No restaurant data provided")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-blue-50 text-center",children:r.jsx("p",{className:"text-blue-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2);return r.jsx("section",{className:"py-24 px-4 bg-blue-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-blue-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Netarts"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Savor the flavor of the sea with locally grown oysters and fresh catch right from the bay."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-blue-900 border-b-2 border-blue-200 pb-2 inline-block",children:"Local Favorites"}),r.jsx("div",{className:"grid gap-6",children:t.map((a,i)=>r.jsx(k3,{restaurant:a},i))})]}),r.jsx(AAe,{src:"https://images.unsplash.com/photo-1621351183204-58cb30d50712?auto=format&fit=crop&w=800&q=80",alt:"Fresh Oysters",caption:"World-famous Netarts Bay oysters"})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-blue-900 mb-8 text-center",children:"Markets & Casual Eats"}),r.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:n.map((a,i)=>r.jsx(k3,{restaurant:a},i))})]})]})})},EAe=()=>{v.useEffect(()=>{console.log("NetartsPage mounted")},[]);const e=ke.netarts,t=lt("Netarts"),n=ct("Netarts"),a=jn.netarts;return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Netarts Bay",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Netarts"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Netarts"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12",children:[r.jsx("div",{className:"lg:col-span-2",children:r.jsx(Cr,{townName:"Netarts",initialDescription:bAe},"Netarts-About")}),r.jsx("div",{className:"lg:col-span-1",children:r.jsx(yt,{lat:e?.geo?.lat||45.4312,lon:e?.geo?.lng||-123.9451,townName:"Netarts"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Netarts",townSlug:"netarts",lat:e?.geo?.lat||45.4312,lon:e?.geo?.lng||-123.9451})})]}),r.jsx(ht,{townName:"Netarts",featuredImage:a,title:"Netarts in Photos"}),r.jsx(dt,{attractions:N3,townName:"Netarts"}),r.jsx(_Ae,{attractions:N3}),r.jsx(CAe,{trails:wAe}),r.jsx(TAe,{hotels:jAe}),r.jsx(PAe,{restaurants:NAe})]}),r.jsx(Ye,{})]})},OAe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),RAe=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Explore the Coast"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Newport"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(OAe,{attraction:t,index:n},n))})]})})),IAe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},MAe=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From iconic headlands to quiet coastal forests, Newport offers diverse trails that showcase the region's stunning geology and wildlife."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(IAe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),LAe=({hotels:e})=>{const t="Newport",n=["Inn at Nye Beach"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},ty=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md whitespace-nowrap",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),_3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),DAe=({restaurants:e})=>{if(v.useEffect(()=>{(!e||e.length===0)&&console.warn("RestaurantsSection: No restaurant data provided")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,5),a=e.slice(5,8),i=e.slice(8,12);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Newport"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From fresh-off-the-boat seafood on the Bayfront to cozy bistros in Nye Beach, Newport is the culinary capital of the central coast."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Fine Dining & Seafood"}),r.jsx("div",{className:"grid gap-6",children:t.map((s,o)=>r.jsx(ty,{restaurant:s},o))})]}),r.jsx(_3,{src:"https://images.unsplash.com/photo-1534080564583-6be75777b70a?auto=format&fit=crop&w=800&q=80",alt:"Fresh seafood plate",caption:"Fresh catch of the day served with bay views"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(_3,{src:"https://images.unsplash.com/photo-1661516497335-6af01d60c1b6",alt:"Cozy brewpub interior with wooden tables and local atmosphere",caption:"Newport's legendary pub & chowder scene"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Icons & Breweries"}),r.jsx("div",{className:"grid gap-6",children:n.map((s,o)=>r.jsx(ty,{restaurant:s},o))})]})]}),r.jsxs("div",{className:"grid md:grid-cols-3 gap-6 mb-16",children:[r.jsx("div",{className:"md:col-span-3 text-center mb-4",children:r.jsx("h3",{className:"text-2xl font-bold text-orange-900 inline-block",children:"Global Flavors & Comfort Food"})}),a.map((s,o)=>r.jsx(ty,{restaurant:s},o)),r.jsx("div",{className:"h-full min-h-[200px] rounded-xl overflow-hidden shadow-md hidden md:block",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1626074353765-517a681e40be?auto=format&fit=crop&w=600&q=80",alt:"Comfort food dining",className:"w-full h-full object-cover"})})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Cafes, Bistros & Bakeries"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6",children:i.map((s,o)=>r.jsx(ty,{restaurant:s},o))}),r.jsx("div",{className:"mt-8 text-center",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1497935586351-b67a49e012bf?auto=format&fit=crop&w=1200&h=300&q=80",alt:"Bakery treats and coffee",className:"w-full h-48 object-cover rounded-xl opacity-90"})})]})]})})},BAe=[{name:"Drift Creek Falls",difficulty:"Easy/Moderate",distance:"3 miles",accessibility:3,description:"Dramatic 75-foot waterfall accessed via a stunning 240-foot suspension bridge. One of the most photographed hikes on the Oregon Coast, offering a perfect blend of old-growth forest, canyon views, and accessible adventure.",notes:"Bridge is sturdy but can sway - not for those with extreme height fears. Parking pass required. Can be muddy in winter."},{name:"Alsea Falls",difficulty:"Easy",distance:"0.5 miles",accessibility:4,description:"A picturesque 35-foot waterfall on the South Fork of the Alsea River, accessible via a very short, easy trail. Perfect for families and those wanting a quick waterfall fix.",notes:"Fully developed park with picnic areas and restrooms. Popular spot, especially on weekends. Swimming holes below the falls in summer."}],FAe=[{title:"Newport Seafood & Wine Festival",date:"February 25–28, 2027"},{title:"Blessing of the Fleet",date:"May 2027 (Memorial Day Weekend)"},{title:"Loyalty Days Celebration",date:"May 1–3, 2027"},{title:"Coast Hills Classic Mountain Bike Race",date:"May 2027"},{title:"Newport Marathon & Half",date:"June 5, 2027"},{title:"National Night Out",date:"August 4, 2026"}],zAe=()=>{v.useEffect(()=>{console.log("NewportPage mounted")},[]);const e=ke.newport,t=lt("Newport"),n=ct("Newport"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c6fc2828b4f0e652c620d7b1874dcdab.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Newport, Oregon waterfront and bridge",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Newport"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-6xl md:text-8xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Newport"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Newport Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:Tse}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"A vibrant coastal city featuring the historic Bayfront, two lighthouses, and the renowned Oregon Coast Aquarium."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo.lat||44.6368,lon:e?.geo.lng||-124.0535,townName:"Newport"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Newport",townSlug:"newport",lat:e?.geo.lat||44.6368,lon:e?.geo.lng||-124.0535})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Newport",featuredImage:a,title:"Newport in Photos"})}),r.jsx(dt,{attractions:SN,townName:"Newport"}),r.jsx(RAe,{attractions:SN}),r.jsx(MAe,{trails:Y8}),r.jsx(Eh,{townName:"Newport",waterfalls:BAe,headerTitle:"Nearby Waterfalls",headerSubtitle:"Newport's central coast location puts several Coast Range waterfalls within easy day-trip distance - perfect for days when the beach takes a back seat.",ctaText:"Making Newport your base for waterfall hiking? Newport hotels put you within 30-45 minutes of Drift Creek Falls and Alsea Falls."}),r.jsx($r,{events:FAe}),r.jsx(LAe,{hotels:Ase}),r.jsx(DAe,{restaurants:J8})]}),r.jsx(Ye,{})]})},$Ae=`
<p>North Bend is the energetic northern neighbor of Coos Bay, located on the distinct peninsula where the magnificent McCullough Memorial Bridge spans the bay. Known for its rich diverse history, from shipbuilding to timber, North Bend today serves as the primary gateway to the Oregon Dunes National Recreation Area and the adventure that awaits there.</p>
<p>The city skyline is dominated by the bridge—an engineering marvel of the 1930s—but looking closer reveals a town full of character. The waterfront boardwalk offers peaceful views of passing ships and working tugboats, while the downtown area features the historic Liberty Theatre and charming antique shops. It is a town that celebrates its connection to the water and the sand.</p>
<p>For outdoor enthusiasts, North Bend is the launchpad for dune buggies, ATVs, and sandboarding at the nearby dunes. Yet, it balances this adrenaline with the quiet beauty of Simpson Park and the sophisticated entertainment of The Mill Casino. Whether you're here to ride the dunes, try your luck at the tables, or simply marvel at the bridge at sunset, North Bend offers a warm coastal welcome.</p>
`,S3=[{name:"McCullough Memorial Bridge",description:"This iconic cantilever bridge is the defining landmark of the Southern Oregon Coast. Completed in 1936, it spans over a mile across Coos Bay. Its elegant gothic-style architecture makes it a favorite subject for photographers and a breathtaking drive.",details:"Best viewed from the North Bend Boardwalk or Simpson Park."},{name:"The Mill Casino • Hotel & RV Park",description:"Located on the waterfront, this tribal casino offers 24-hour gaming, live entertainment, and several dining options. It's a major hub for nightlife in the area and hosts numerous events and concerts throughout the year.",details:"Owned by the Coquille Indian Tribe. Waterfront views."},{name:"Oregon Dunes National Recreation Area",description:"North Bend is the northern gateway to this massive expanse of wind-sculpted sand. The Horsfall area offers diverse riding opportunities for OHVs, as well as hiking trails and beach access for those on foot.",details:"OHV rentals available nearby. Recreation pass required."},{name:"North Bend Boardwalk",description:"A scenic wooden boardwalk along the bayfront that offers unobstructed views of the bridge and the harbor. It's a peaceful place for a morning walk, watching the fishing boats, or enjoying a picnic.",details:"Free public access. Located near downtown."},{name:"Simpson Park",description:"Originally the estate of town founder Louis Simpson, this park preserves beautiful grounds and forest trails. It's a quiet retreat right in the city, perfect for families and history buffs.",details:"Features a playground and covered picnic areas."},{name:"Liberty Theatre",description:"A beautifully restored historic theatre that serves as the cultural heart of North Bend. It hosts the Little Ole Opry, movie screenings, and community theater productions in an intimate, classic setting.",details:"Check local listings for showtimes and events."},{name:"Pony Village Mall",description:"The largest indoor shopping mall on the Oregon Coast. While it offers modern shopping, its name pays homage to the area's history and the 'Pony Slough' that winds behind it.",details:"Shopping, dining, and cinema."},{name:"Coos Historical & Maritime Museum",description:"Located just across the line in Coos Bay but essential to North Bend's story, this modern museum on the waterfront details the region's logging, shipping, and indigenous history.",details:"Interactive exhibits and gift shop."},{name:"Horsfall Beach",description:"A stunning, wide stretch of sandy beach accessible via the dunes. It's a popular spot for beachcombing, watching the waves, and seeing the dune riders in the distance.",details:"Day-use fee area. Great for sunsets."},{name:"David Dewett Veterans Memorial",description:"Located at the entrance to Simpson Park, this moving memorial honors local veterans. It is beautifully maintained and offers a moment of reflection amidst the park setting.",details:"Open to the public year-round."}],HAe=[{name:"Bluebill Lake Trail",distance:"1.25 miles loop",difficulty:"Easy",description:"A fantastic, accessible trail that circles a freshwater lake surrounded by dunes and forest. The boardwalk sections make it easy for families, and it's a prime spot for birdwatching."},{name:"Simpson Park Wilderness Trail",distance:"1.5 miles loop",difficulty:"Moderate",description:"Winds through the dense forest of Simpson Park. Despite being in town, the tall trees and lush ferns make you feel miles away. A hidden gem for a quick nature fix."},{name:"Horsfall Dunes Loop",distance:"2.0 miles loop",difficulty:"Moderate",description:"Experience the open sand. This trail guides you through the shifting dunes to the beach. Walking in sand adds a challenge, but the stark beauty of the landscape is worth it."},{name:"North Spit Trail",distance:"4-8 miles varying",difficulty:"Moderate",description:"Located across the bay (access via dunes or boat), the North Spit offers miles of rugged, remote hiking along the bay and ocean, often with snowy plover nesting areas (seasonal restrictions apply)."},{name:"Empire Lakes Trail",distance:"2.0 miles loop",difficulty:"Easy",description:"Located nearby in Coos Bay/North Bend border area. A gentle trail around the lower and upper lakes, popular for jogging and fishing access."},{name:"John Topits Park Trail",distance:"3.5 miles network",difficulty:"Easy",description:"A network of paved and unpaved trails winding through the Empire Lakes area. It offers a mix of forest and lake views, suitable for all ages."}],WAe=[{name:"The Mill Casino • Hotel",category:"Resort/Casino",description:"The premier lodging destination in North Bend. Rooms offer bay views, and guests have immediate access to the casino floor, restaurants, and pool. The waterfront location is stunning.",amenities:"Pool, hot tub, multiple restaurants, casino, bay views."},{name:"Quality Inn & Suites at Coos Bay",category:"Mid-Range",description:"Located in North Bend (despite the name), this hotel offers reliable comfort set back in a quiet wooded area near the mall. Known for its lush garden setting and good breakfast.",amenities:"Hot breakfast, hot tub, quiet location."},{name:"City Center Motel",category:"Budget/Motel",description:"A classic, retro-style motel located right in downtown North Bend. It's clean, affordable, and walkable to local cafes and the Liberty Theatre.",amenities:"Free WiFi, pet-friendly, central location."},{name:"Bay Bridge Motel",category:"Budget",description:"Situated near the bridge approach, this motel offers basic, no-frills accommodation. It's a convenient stopover for travelers focusing on the scenic drive.",amenities:"Bridge views, economical rates."},{name:"Itty Bitty Inn",category:"Unique/Budget",description:"A quirky, retro roadside inn with themed rooms and a lot of personality. It offers bike rentals and growler fills, catering to the adventurous traveler.",amenities:"Themed rooms, bike rentals, eco-friendly."}],VAe=[{name:"The Plank House",category:"Steak/Seafood",description:"Located inside The Mill Casino, this restaurant offers fine dining with a view of the bay. The menu features locally sourced seafood, steaks, and an extensive wine list.",features:"Waterfront view, romantic atmosphere, Sunday brunch."},{name:"Ciccarelli's Restaurant",category:"Italian/Steakhouse",description:"A local institution located in a historic building. Known for its high-quality steaks, homemade pastas, and a beautiful outdoor garden patio featuring live music.",features:"Garden dining, espresso bar, fresh roasted coffee."},{name:"The Pancake Mill",category:"Breakfast/Diner",description:"Famous for its massive menu of pancakes and waffles. It's a bustling morning spot where locals gather for hearty breakfasts and pies.",features:"All-day breakfast, homemade pies, family-friendly."},{name:"Tai's Dynasty",category:"Chinese",description:"A long-standing favorite for Chinese cuisine in the area. Known for its large portions, friendly service, and reliable classics.",features:"Family style, takeout, cocktail lounge."},{name:"Kozy Kitchen",category:"Diner",description:"A classic American diner serving comfort food. From burgers to meatloaf, it's unpretentious and satisfying cooking.",features:"Comfort food, generous portions, local vibe."},{name:"Yeong's Place",category:"Burgers/American",description:"A hidden gem known for arguably the best burgers in town. It's a small, casual spot with a loyal following.",features:"Gourmet burgers, casual atmosphere."},{name:"Tin Thistle",category:"Vegan/Vegetarian",description:"A refreshing spot offering whole-food, plant-based meals. Their bowls, burgers, and baked goods are delicious even for non-vegetarians.",features:"100% plant-based, organic ingredients, healthy options."},{name:"Captain's Choice Fish House",category:"Seafood/Fish & Chips",description:"Located near the boardwalk, this spot serves up fresh fish and chips and chowder. It's casual, quick, and authentic.",features:"Fresh catch, outdoor seating, quick service."}],UAe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),qAe=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Bridges, Dunes & History"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in North Bend"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(UAe,{attraction:t,index:n},n))})]})})),GAe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},KAe=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Discover trails that traverse sandy dunes, wind through coastal pine forests, and circle serene freshwater lakes—all within minutes of town."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(GAe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),ZAe=({hotels:e})=>{const t="North Bend";return r.jsx(mt,{townName:t,fallbackHotels:e,affiliateHotels:st[t]})},ij=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),C3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),YAe=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2,5),a=e.slice(5);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in North Bend"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From elegant casino steak dinners to classic local diners and fresh seafood markets, North Bend offers diverse flavors for every palate."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Dinner & Date Night"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(ij,{restaurant:i},s))})]}),r.jsx(C3,{src:"https://images.unsplash.com/photo-1544148103-0773bf10d330?auto=format&fit=crop&w=800&q=80",alt:"Fine dining seafood",caption:"Elegant flavors with coastal flair"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(C3,{src:"https://images.unsplash.com/photo-1533777857889-4be7c70b33f7?auto=format&fit=crop&w=800&q=80",alt:"Pancakes and breakfast",caption:"Legendary local breakfast spots"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Local Favorites"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(ij,{restaurant:i},s))})]})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Casual Eats & Healthy Bites"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:a.map((i,s)=>r.jsx(ij,{restaurant:i},s))}),r.jsx("div",{className:"mt-8 text-center",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1512621776951-a57141f2eefd?auto=format&fit=crop&w=1200&h=300&q=80",alt:"Fresh healthy food",className:"w-full h-48 object-cover rounded-xl opacity-90"})})]})]})})},JAe=[{title:"Charleston Seafood Festival",date:"August 8–9, 2026"},{title:"Blackberry Arts Festival",date:"August 22, 2026"},{title:"Bay Area Fun Festival",date:"September 19–20, 2026"},{title:"Shore Acres Holiday Lights",date:"November 26 – December 31, 2026"},{title:"Coos Bay Wine Walk",date:"First Friday of every month"}],XAe=()=>{v.useEffect(()=>{console.log("NorthBendPage mounted")},[]);const e=lt("North Bend"),t=ct("North Bend"),n="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/072208077f88884fb8012cdedd684f53.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:e}),r.jsx("meta",{name:"description",content:t}),r.jsx("meta",{property:"og:title",content:e}),r.jsx("meta",{property:"og:description",content:t})]}),r.jsx(Mt,{name:"North Bend Oregon Travel",description:t,url:"https://oregoncoastal.com/town/north-bend",image:n}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:n,alt:"McCullough Memorial Bridge North Bend",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"North Bend"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"North Bend"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About North Bend Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:$Ae}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Located on the beautiful Oregon Coast, North Bend offers unforgettable scenic views, bridges, dunes, and coastal history."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:43.4065,lon:-124.2243,townName:"North Bend"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"North Bend",townSlug:"north-bend",lat:43.4065,lon:-124.2243})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"North Bend",featuredImage:n,title:"North Bend in Photos"})}),r.jsx(dt,{attractions:S3,townName:"North Bend"}),r.jsx(qAe,{attractions:S3}),r.jsx(KAe,{trails:HAe}),r.jsx($r,{events:JAe}),r.jsx(ZAe,{hotels:WAe}),r.jsx(YAe,{restaurants:VAe})]}),r.jsx(Ye,{})]})},QAe=`Oceanside is a dramatic, amphitheater-like village built into a steep hillside facing the Pacific Ocean. Known for its spectacular views of Three Arch Rocks and its unique tunnel access to hidden beaches, it offers a front-row seat to the raw power of the Oregon Coast.
This tiny community feels suspended in time and place, removed from the highway bustle. It is a haven for rockhounds searching for agates, birdwatchers observing puffins on the offshore rocks, and anyone seeking the profound quiet that comes with watching the waves crash against the cliffs.`,T3=[{name:"Three Arch Rocks",description:"These iconic sea stacks dominate the horizon and form the first National Wildlife Refuge established west of the Mississippi. They are home to thousands of nesting seabirds, including tufted puffins, and a massive colony of sea lions.",details:"National Wildlife Refuge"},{name:"Tunnel Beach",description:"Accessible through a man-made tunnel in Maxwell Point (during low tide), this secluded cove is a magical spot filled with sea caves, jagged rocks, and tide pools waiting to be explored.",details:"Hidden Gem"},{name:"Oceanside Beach",description:"The main beach offers easy access and wide sandy stretches perfect for walking, picnicking, and watching paragliders land on the shore. It's renowned for agate hunting, especially after winter storms.",details:"Agate Hunting"},{name:"Cape Meares",description:"Just north of town, this headland features a historic lighthouse, the famous 'Octopus Tree', and panoramic viewpoints where you can spot migrating gray whales.",details:"State Scenic Viewpoint"},{name:"Short Beach",description:"Located between Oceanside and Cape Meares, this hidden beach is reached via a long wooden staircase (approx. 100 steps). It's quiet, beautiful, and features a unique 'larsonite' waterfall.",details:"Secluded Access"},{name:"Anderson's Viewpoint",description:"A stunning roadside pullout high above the ocean on the Three Capes Scenic Route. It offers one of the most photographed vistas of Three Arch Rocks and the endless Pacific horizon.",details:"Scenic Lookout"},{name:"WWII Radar Station",description:"Hidden in the brush near the top of the hill, the concrete remnants of a World War II radar station offer a glimpse into history and a commanding view of the coastline.",details:"Historical Site"},{name:"Rockhounding",description:"Oceanside is premier territory for finding agates, jaspers, and zeolites. The gravel beds exposed at low tide are treasure chests for patient beachcombers.",details:"Activity"}],ePe=[{name:"Oceanside Beach Trail",distance:"Varies",difficulty:"Easy",elevation:"Flat",description:"A refreshing walk along the shoreline. At low tide, you can walk miles south towards Netarts Spit, enjoying the sound of the surf and the search for sea glass."},{name:"Maxwell Point Tunnel",distance:"0.5 miles",difficulty:"Moderate",elevation:"Rocky",description:"Not a long hike, but an adventure. Navigate through the dark tunnel (bring a light!) and scramble over rocks to reach the secluded Tunnel Beach on the other side."},{name:"Cape Meares Lighthouse Loop",distance:"0.5 miles",difficulty:"Easy",elevation:"Minimal",description:"Paved paths lead from the parking area to the lighthouse and various viewpoints. It's accessible and offers some of the best views on the entire coast."},{name:"Octopus Tree Trail",distance:"0.2 miles",difficulty:"Easy",elevation:"Flat",description:"A very short walk to see the massive Sitka spruce with its candelabra-shaped branches. This tree was culturally significant to local tribes and is a botanical wonder."},{name:"Cape Lookout Trail",distance:"4.8 miles",difficulty:"Moderate",elevation:"400 ft",description:"A short drive south, this trail takes you to the tip of the cape. You're hiking 400 feet above the ocean with sheer cliffs dropping away on both sides."},{name:"Netarts Bay Kayaking",distance:"Varies",difficulty:"Moderate",elevation:"Water",description:"Launch from nearby Netarts and paddle the calm waters of the bay. It's an excellent way to see the area from a different perspective and spot harbor seals."}],tPe=[{name:"Oceanside Inn",category:"Hotel",description:"Perched right on the beachfront, offering rooms with unhindered views of the ocean. Fall asleep to the sound of crashing waves just feet from your window.",amenities:"Oceanfront, WiFi, Kitchenettes"},{name:"Ocean Front Cabins",category:"Cabins",description:"Charming, rustic cabins located directly overlooking the beach. They offer a cozy, private experience perfect for couples or solo travelers seeking solitude.",amenities:"Private Decks, Fireplaces, Views"},{name:"Turtlejanes B&B",category:"Bed & Breakfast",description:"A welcoming B&B with a reputation for hospitality and spectacular views. Enjoy a homemade breakfast while watching the morning light hit Three Arch Rocks.",amenities:"Breakfast, Ocean Views, Cozy"},{name:"Vacation Rentals",category:"Private Homes",description:"Because Oceanside is built on a hillside, almost every vacation rental boasts an incredible view. Options range from modern luxury homes to vintage beach shacks.",amenities:"Kitchens, Decks, Family Friendly"},{name:"Note",category:"Info",description:"Lodging in Oceanside is limited and popular. It is highly recommended to book well in advance, especially for summer dates and storm-watching season.",amenities:"Book Early"}],nPe=[{name:"Roseanna's Cafe",category:"Seafood/Dessert",description:"An institution in Oceanside. Famous for its delicious seafood chowder, massive desserts, and a dining room that feels like it's hovering over the ocean.",features:"Ocean Views, Local Legend, Chowder"},{name:"Blue Agate Cafe",category:"Breakfast/Lunch",description:"A cozy spot for hearty breakfasts and lunch specials. It's the community hub where locals and visitors mix over coffee and pancakes.",features:"Comfort Food, Friendly, Casual"},{name:"Current Cafe",category:"Cafe/Bistro",description:"A modern addition to the scene, offering artisanal coffee, light bites, and fresh ingredients. A perfect spot to grab a latte before a beach walk.",features:"Espresso, Light Eats, Modern"},{name:"Three Arch Coffee",category:"Coffee Shop",description:"Serving up hot drinks to warm you up after a windy day on the beach. Great for grabbing a quick pastry and watching the waves.",features:"Coffee, Pastries, To-Go"},{name:"Note",category:"Info",description:"Dining options are limited in this small village. For more variety, including grocery stores, the town of Tillamook is about 20 minutes away.",features:"Limited Hours, Seasonal"}],rPe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-cyan-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-cyan-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-cyan-700 bg-cyan-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),aPe=({attractions:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("AttractionsSection: No attractions data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-cyan-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-cyan-600 font-bold tracking-wider uppercase text-sm",children:"Discover the Coast"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Oceanside"}),r.jsx("div",{className:"h-1 w-24 bg-cyan-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(rPe,{attraction:t,index:n},n))})]})})),iPe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-teal-100 text-teal-800 border-teal-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},sPe=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-teal-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Explore the Three Capes Scenic Route. From secret tunnels to ancient forests and lighthouse views, the trails here are unforgettable."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(iPe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),oPe=({hotels:e})=>{const t="Oceanside",n=["Vacation Rentals","Note","Coming Soon","Ocean Front Cabins","Turtlejanes B&B"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},A3=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-sky-100 hover:border-sky-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-sky-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-sky-600 bg-sky-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-sky-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-sky-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),lPe=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-sky-500 pl-3",children:n})})]}),cPe=({restaurants:e})=>{if(v.useEffect(()=>{(!e||e.length===0)&&console.warn("RestaurantsSection: No restaurant data provided")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-sky-50 text-center",children:r.jsx("p",{className:"text-sky-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2);return r.jsx("section",{className:"py-24 px-4 bg-sky-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-sky-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Oceanside"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Small town, big flavors. Enjoy fresh local seafood with a side of panoramic ocean views."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-sky-900 border-b-2 border-sky-200 pb-2 inline-block",children:"Oceanfront Favorites"}),r.jsx("div",{className:"grid gap-6",children:t.map((a,i)=>r.jsx(A3,{restaurant:a},i))})]}),r.jsx(lPe,{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80",alt:"Seafood dinner",caption:"Dining with a view of Three Arch Rocks"})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-sky-900 mb-8 text-center",children:"Cafes & Coffee"}),r.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:n.map((a,i)=>r.jsx(A3,{restaurant:a},i))})]})]})})},dPe=()=>{v.useEffect(()=>{console.log("OceansidePage mounted")},[]);const e=ke.oceanside,t=lt("Oceanside"),n=ct("Oceanside"),a=jn.oceanside;return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Oceanside, Oregon coastline",className:"w-full h-full object-cover object-top"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Oceanside"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Oceanside"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12",children:[r.jsx("div",{className:"lg:col-span-2",children:r.jsx(Cr,{townName:"Oceanside",initialDescription:QAe},"Oceanside-About")}),r.jsx("div",{className:"lg:col-span-1",children:r.jsx(yt,{lat:e?.geo?.lat||45.459,lon:e?.geo?.lng||-123.9687,townName:"Oceanside"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Oceanside",townSlug:"oceanside",lat:e?.geo?.lat||45.459,lon:e?.geo?.lng||-123.9687})})]}),r.jsx(ht,{townName:"Oceanside",featuredImage:a,title:"Oceanside in Photos"}),r.jsx(dt,{attractions:T3,townName:"Oceanside"}),r.jsx(aPe,{attractions:T3}),r.jsx(sPe,{trails:ePe}),r.jsx(oPe,{hotels:tPe}),r.jsx(cPe,{restaurants:nPe})]}),r.jsx(Ye,{})]})},uPe=`
<p>Welcome to Otter Rock, a hidden gem on the Central Oregon Coast often called the "Waikiki of Oregon" for its protected beach and beginner-friendly surf breaks. Nestled between Newport and Depoe Bay, this small community sits atop dramatic sandstone cliffs overlooking the Pacific Ocean, offering some of the most spectacular vantage points in the region.</p>
<p>The crown jewel of Otter Rock is the Devil's Punchbowl State Natural Area, a collapsed sea cave where churning waves swirl and thunder during high tide, creating a mesmerizing natural cauldron. During low tide, visitors can safely hike into the punchbowl itself to explore colorful tide pools teeming with starfish, anemones, and crabs. The area is also a designated Marine Reserve, ensuring pristine waters and abundant wildlife.</p>
<p>Beyond the geology, Otter Rock is a haven for relaxation. Whether you're staying at the cliffside Inn at Otter Crest, spotting gray whales from the headlands, or enjoying a bowl of clam chowder with an ocean view, this quiet village offers an intimate connection to the rugged beauty of the Oregon coastline.</p>
`,P3=[{name:"Devil's Punchbowl State Natural Area",description:"A hollow rock formation shaped like a giant punch bowl. Violent waves churn, swirl, and foam inside during high tide, while low tide reveals a walkable marine garden inside the collapsed cave.",details:"Free parking. Best viewed at high tide for action, low tide for hiking.",address:"1st St, Otter Rock, OR"},{name:"Otter Rock Marine Reserve",description:"One of Oregon's five dedicated marine reserves, protecting 1.2 square miles of ocean habitat. It's a prime spot for scientific research and offers protected waters for seabirds and marine mammals.",details:"No fishing or harvesting allowed.",address:"Offshore, Otter Rock, OR"},{name:"Otter Rock Beach",description:"Known locally as the 'Waikiki of Oregon,' this sheltered sandy beach is famous for its manageable waves, making it one of the best spots on the coast for beginner surfers and bodyboarders.",details:"Access via trail from Devil's Punchbowl parking.",address:"Otter Rock, OR"},{name:"Otter Crest Loop",description:"A scenic section of the old Oregon Coast Highway. This narrow, one-way road winds along the cliff edge, offering breathtaking unobstructed views of the ocean and coastline.",details:"One-way southbound traffic only.",address:"Otter Crest Loop, Otter Rock, OR"},{name:"Cape Foulweather",description:"Just north of Otter Rock, this headland rises 500 feet above the sea. It was the first point on the Oregon Coast sighted by Captain James Cook in 1778 and offers panoramic views.",details:"Gift shop and viewing area at the summit.",address:"Otter Crest Loop, Otter Rock, OR"},{name:"Flying Dutchman Winery",description:"Perched on the cliffs, this is one of the only wineries where you can watch whales while tasting award-winning Pinot Noir. A unique coastal wine experience.",details:"Tasting room with ocean views.",address:"915 1st St, Otter Rock, OR"},{name:"Beverly Beach State Park",description:"Located just south of town, this popular park features a large campground nestled in the forest and easy access to a long expanse of sandy beach extending to Newport.",details:"Camping, yurts, and day-use access.",address:"198 NE 123rd St, Newport, OR (Adjacent)"},{name:"The Lookout Observatory",description:"A dedicated viewing platform at Cape Foulweather providing high-powered spotting scopes. It is one of the premier land-based whale watching sites in the world.",details:"Located at the Gift Shop.",address:"Cape Foulweather, Otter Rock, OR"}],hPe=[{name:"Devil's Punchbowl Entry Trail",distance:"0.5 miles round trip",difficulty:"Moderate",elevation:"Steep descent",description:"A short but steep trail leading from the parking area down to the beach. Vital for accessing the inside of the Punchbowl at low tide."},{name:"Otter Crest Beach Tide Pool Walk",distance:"1.0 mile variable",difficulty:"Easy",elevation:"Flat (Sand/Rock)",description:"Explore the rich intertidal zone protected by the Marine Reserve. Navigate slippery rocks to find urchins, sea stars, and gumboot chitons."},{name:"Beverly Beach Walk",distance:"3.0 miles round trip",difficulty:"Easy",elevation:"Flat",description:"A classic beach walk from Otter Rock south to Spencer Creek. Wide sands and fossil hunting opportunities make this a local favorite."},{name:"Otter Crest Loop Walking Path",distance:"2.5 miles one way",difficulty:"Moderate",elevation:"Gentle climb",description:"Walk along the scenic roadway (safely) or the adjacent paths to enjoy high-elevation ocean views without the car."},{name:"Cape Foulweather Trail",distance:"0.5 miles",difficulty:"Easy",elevation:"100 ft gain",description:"A paved path connecting viewpoints at the summit. On a clear day, you can see 40 miles out to sea and south to Yaquina Head."},{name:"Drift Creek Falls Trail",distance:"3.0 miles round trip",difficulty:"Moderate",elevation:"540 ft gain",description:"Located inland from Otter Rock, this famous trail features a 240-foot suspension bridge crossing a canyon with a spectacular waterfall view."}],fPe=[{name:"The Inn at Otter Crest",category:"Resort",description:"A 35-acre oceanfront resort nestled into the forest and cliffs. Rooms feature private balconies with stunning ocean views, and the property includes a pool, hot tub, and private beach access.",amenities:"Ocean views, heated pool, walking trails, private beach cove."},{name:"Alpine Chalets",category:"Vacation Rentals",description:"Charming A-frame chalets located directly overlooking the ocean. These standalone units offer privacy and panoramic views of the Devil's Punchbowl area.",amenities:"Kitchens, fireplaces, oceanfront decks."},{name:"Otter Rock Vacation Rentals",category:"Private Homes",description:"Various private cliffside homes and cottages available for rent. Perfect for families wanting a full house experience with kitchens and direct beach access.",amenities:"Full kitchens, multi-room, pet-friendly options."}],mPe=[{name:"Mo's West at Otter Rock",category:"Casual Seafood",description:"A satellite location of the famous Mo's, offering their legendary clam chowder with a view of the Punchbowl. Casual, counter-service style perfect for a beach day.",features:"Clam chowder, fish & chips, ocean view."},{name:"Flying Dutchman Winery",category:"Winery",description:"While primarily a winery, they offer cheese plates and snacks to accompany their wine flights. The cliffside location makes it a premier spot for a relaxing afternoon drink.",features:"Wine tasting, light bites, patio seating."},{name:"Cliffside Coffee & Sweets",category:"Cafe",description:"A cozy spot for espresso, saltwater taffy, and homemade fudge. Grab a hot drink to warm up after exploring the windy headlands.",features:"Espresso, fudge, ice cream."},{name:"Sea Glass Bistro",category:"American",description:"Located within the Inn at Otter Crest (seasonal availability), offering breakfast and dinner with forest and ocean views. Known for hearty breakfasts.",features:"Resort dining, forest views, breakfast."},{name:"Pura Vida Surf Shop",category:"Snacks/Gear",description:"The local surf hub that also offers quick energy snacks and drinks for surfers heading down to the beach. The vibe is authentically coastal.",features:"Surf gear, cold drinks, snacks."}],pPe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name}),r.jsx("div",{className:"bg-blue-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-blue-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-blue-700 bg-blue-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),gPe=({attractions:e})=>!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-blue-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-blue-600 font-bold tracking-wider uppercase text-sm",children:"Geology & Marine Life"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Wonders of the Rock"}),r.jsx("div",{className:"h-1 w-24 bg-blue-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6",children:e.map((t,n)=>r.jsx(pPe,{attraction:t,index:n},n))})]})}),xPe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Easy),children:e})},yPe=({trails:e})=>!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-teal-600"}),"Cliffside Trails & Beach Walks"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Explore the unique geology of the Devil's Punchbowl or take a long, peaceful walk along Beverly Beach."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(xPe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})}),vPe=({hotels:e})=>{const t="Otter Rock",n=["Otter Rock Vacation Rentals"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},bPe=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-teal-100 hover:border-teal-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-teal-950",children:e?.name}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-teal-600 bg-teal-100 px-2 py-1 rounded-md whitespace-nowrap",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-teal-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-teal-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),wPe=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-teal-500 pl-3",children:n})})]}),jPe=({restaurants:e})=>!e||e.length===0?null:r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-teal-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Otter Rock"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From famous chowder to cliffside wine tasting, enjoy local flavors with a view of the Pacific."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(wPe,{src:"https://images.unsplash.com/photo-1666616881093-1131c83669dd",alt:"Casual seafood restaurant with family dining atmosphere",caption:"Chowder & Ocean Views"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-teal-900 border-b-2 border-teal-200 pb-2 inline-block ml-auto",children:"Local Eats"}),r.jsx("div",{className:"grid gap-6",children:e.map((t,n)=>r.jsx(bPe,{restaurant:t},n))})]})]})]})}),NPe=()=>{v.useEffect(()=>{console.log("OtterRockPage mounted")},[]);const e=ke["otter-rock"],t="Otter Rock",n=lt(t),a=ct(t),i="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/db7f80fe48b5bd85006a138f546efff8.webp",s={name:t,description:a,image:i,geo:{lat:44.7523,lng:-124.0673},url:"https://oregoncoastal.com/town/otter-rock"};return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:n}),r.jsx("meta",{name:"description",content:a}),r.jsx("meta",{property:"og:title",content:n}),r.jsx("meta",{property:"og:description",content:a})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsx(Mt,{...s}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:i,alt:"Otter Rock coastline and Devil's Punchbowl",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx("span",{className:"text-teal-400 font-bold uppercase tracking-widest text-sm md:text-base mb-4 drop-shadow-md",children:"Central Coast"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-2",children:"Otter Rock"}),r.jsx("p",{className:"text-xl text-white/90 font-light tracking-wide drop-shadow-md",children:"Gateway to the Devil's Punchbowl"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto town-grid-layout mb-12",children:[r.jsx("div",{className:"town-about-section",children:r.jsx(Cr,{townName:"Otter Rock",initialDescription:uPe})}),r.jsx("div",{className:"town-weather-section",children:r.jsx(yt,{lat:e?.geo?.lat||44.7523,lon:e?.geo?.lng||-124.0673,townName:"Otter Rock"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Otter Rock",townSlug:"otter-rock",lat:e?.geo?.lat||44.7523,lon:e?.geo?.lng||-124.0673})})]}),r.jsx(ht,{townName:"Otter Rock",featuredImage:i,title:"Otter Rock in Photos"}),r.jsx(dt,{attractions:P3,townName:"Otter Rock"}),r.jsx(gPe,{attractions:P3}),r.jsx(yPe,{trails:hPe}),r.jsx(vPe,{hotels:fPe}),r.jsx(jPe,{restaurants:mPe})]}),r.jsx(Ye,{})]})},kPe=`
<p>Perched at the base of majestic Cape Kiwanda on Oregon's scenic Three Capes Loop, Pacific City offers visitors a unique blend of outdoor adventure, craft beer culture, and small-town charm. This community of just over 1,000 residents is home to Oregon's tallest Haystack Rock—a massive 327-foot sea stack rising dramatically offshore, over 100 feet taller than Cannon Beach's famous namesake.</p>
<p>The iconic 240-foot Cape Kiwanda sand dune beckons climbers to its summit for panoramic Pacific views, while the sheltered beach below hosts Oregon's only remaining dory fishing fleet, where flat-bottomed boats still launch directly from the sand as they have for over a century. Pacific City's character blends adventure sports with laid-back coastal living. World-class surfing draws enthusiasts to consistent breaks sheltered by Cape Kiwanda's sandstone cliffs.</p>
<p>The Pelican Brewing Company—Oregon's only beachfront brewpub—serves award-winning craft beers with front-row views of surfers and sunset. Bob Straub State Park offers miles of pristine shoreline for horseback riding, while nearby Nestucca River provides exceptional kayaking and salmon fishing. Just minutes from Tillamook's cheese and aviation museums and perfectly positioned on the Three Capes Scenic Route connecting Cape Meares, Cape Lookout, and Cape Kiwanda, Pacific City delivers authentic Oregon Coast experiences without pretension.</p>
`,E3=[{name:"Cape Kiwanda State Natural Area",description:"A sandstone headland featuring a massive dune to climb, dramatic wave action, and intricate rock formations. It's one of the three points on the Three Capes Scenic Route.",details:"Dune Climb & Views"},{name:"Haystack Rock",description:"Rising 327 feet from the sea, this is the tallest of Oregon's 'Haystack Rocks'. It serves as a stunning backdrop for beachcombers and a refuge for seabirds.",details:"Iconic Sea Stack"},{name:"Dory Fishing Fleet",description:"Witness a living tradition as flat-bottomed dory boats launch and land directly through the surf on the beach, a unique local fishing method dating back over a century.",details:"Local Heritage"},{name:"Bob Straub State Park",description:"Located on the Nestucca Spit, this park offers miles of undeveloped beach, dunes, and wetlands, perfect for hiking, horseback riding, and finding solitude.",details:"Nature & Hiking"},{name:"Pelican Brewing Company",description:"Oregon's only beachfront brewpub. Enjoy award-winning craft beers and coastal cuisine while watching the waves crash against Cape Kiwanda right outside your window.",details:"Dining & Brewery"},{name:"Nestucca Bay National Wildlife Refuge",description:"A sanctuary for migratory birds, including the Dusky Canada Goose. The refuge offers peaceful walking trails and spectacular views of the coastline and bay.",details:"Birdwatching"},{name:"Nestucca River",description:"A pristine river system renowned for its Chinook salmon and steelhead fishing. It's also a favorite spot for kayaking, paddleboarding, and observing river otters.",details:"Fishing & Boating"},{name:"Sand Lake Recreation Area",description:"Just north of town, this area features over 1,000 acres of open dunes surrounded by forests, a popular destination for OHV (Off-Highway Vehicle) enthusiasts.",details:"ATV & Dunes"}],_Pe=[{name:"Cape Kiwanda Dune Climb",distance:"1.0 mile",difficulty:"Moderate/Hard",elevation:"240 ft",description:"A steep trudge up the massive sand dune rewards you with arguably the best views on the Oregon Coast, overlooking the cape, the rock, and the ocean."},{name:"Bob Straub State Park Beach Walk",distance:"Varies",difficulty:"Easy",elevation:"Flat",description:"Walk as far as you like along the Nestucca Spit. It's a peaceful, less crowded alternative to the main beach, with dunes on one side and ocean on the other."},{name:"Cape Lookout Trail",distance:"4.8 miles",difficulty:"Moderate",elevation:"400 ft",description:"Located a short drive north, this trail takes you to the tip of a peninsula jutting 2 miles into the ocean, offering prime whale watching opportunities."},{name:"Nestucca Ridge Trail",distance:"1.5 miles",difficulty:"Easy",elevation:"Varies",description:"A local trail offering a mix of forest and views of the town and river. It's a great way to explore the residential and natural sides of Pacific City."},{name:"Nestucca Bay Wildlife Refuge Trails",distance:"2.2 miles",difficulty:"Easy",elevation:"Gentle",description:"Well-maintained trails lead through meadows and forest to an upper observation deck with sweeping panoramic views of the bay and ocean."},{name:"Cape Meares Loop Trail",distance:"0.5 miles",difficulty:"Easy",elevation:"Minimal",description:"Further north on the scenic loop, this short trail visits the lighthouse and the famous 'Octopus Tree', a massive Sitka spruce with unique branching."}],SPe=[{name:"Headlands Coastal Lodge & Spa",category:"Luxury Resort",description:"An upscale oceanfront lodge offering luxury rooms and cottages. Features a full-service spa, ocean-view dining, and adventure coaches to help plan your day.",amenities:"Spa, Oceanfront, Luxury"},{name:"Inn at Cape Kiwanda",category:"Boutique Hotel",description:"Located across the street from the beach, every room features an ocean view and a fireplace. It's the perfect comfortable base for your coastal adventures.",amenities:"Ocean Views, Fireplaces"},{name:"Pacific City Inn",category:"Inn/Motel",description:"A charming and affordable option located in the heart of town. It offers a cozy, friendly atmosphere within walking distance of shops and dining.",amenities:"Central, cozy, WiFi"}],CPe=[{name:"Pelican Brewing Company",category:"Brewpub",description:"The crown jewel of Pacific City dining. Famous for its clam chowder, fish and chips, and extensive lineup of award-winning craft beers brewed on-site.",features:"Beachfront, Craft Beer"},{name:"The Grateful Bread Bakery",category:"Bakery/Restaurant",description:"A beloved local spot known for its fresh-baked breads, massive scones, and hearty breakfasts. The friendly, laid-back vibe makes it a community staple.",features:"Bakery, Breakfast, Lunch"},{name:"Meridian Restaurant & Bar",category:"Fine Dining",description:"Located in the Headlands Lodge, offering an open kitchen and Pacific Northwest coastal cuisine focused on locally sourced ingredients and seafood.",features:"Upscale, Ocean Views"},{name:"The Riverhouse Nestucca",category:"Seafood",description:"Situated on the banks of the Nestucca River, this spot offers fresh seafood and burgers in a historic building. You can even kayak right up to the dock.",features:"River Views, Seafood"},{name:"Stimulus Coffee + Bakery",category:"Coffee Shop",description:"A modern coffee house serving ethically sourced coffee and house-made pastries. A great place to grab a morning boost before hitting the waves.",features:"Espresso, Pastries, WiFi"},{name:"Ben & Jeff's Burgers and Tacos",category:"Casual",description:"Located inside the Cape Kiwanda Marketplace, offering quick and delicious burgers, tacos, and burritos perfect for a beach picnic.",features:"Quick Bites, Tacos"},{name:"Oar House Bar & Grill",category:"Bar & Grill",description:"A relaxed local hangout offering pub fare, drinks, and sports on TV. A good spot to unwind after a day of fishing or hiking.",features:"Pub Food, Sports, Casual"},{name:"Beach Walk",category:"Asian Fusion",description:"Offering a unique menu of Asian-inspired dishes and fresh sushi rolls, providing a tasty alternative to standard coastal pub fare.",features:"Sushi, Asian Fusion"},{name:"Doryland Pizza",category:"Pizza Parlor",description:"A family-friendly pizza place with a salad bar and arcade games. Named after the local fishing fleet, it's a hit with kids and groups.",features:"Pizza, Arcade, Family"},{name:"Village Coffee Shoppe",category:"Diner",description:"A classic small-town diner serving traditional American breakfast and lunch comfort food. Simple, tasty, and unpretentious.",features:"Breakfast, Diner"},{name:"Megpies Bakery & Café",category:"Bakery",description:"Known for their delicious pies, savory pasties, and sweet treats. A hidden gem for those with a sweet tooth looking for homemade quality.",features:"Pies, Pastries"},{name:"Sportsman's Pub-n-Grub",category:"Pub",description:"A lively spot for locals and visitors alike, featuring hearty portions of fish and chips, burgers, and a wide selection of beers on tap.",features:"Live Music, Pub Grub"}],TPe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-amber-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-amber-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-amber-700 bg-amber-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),APe=({attractions:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("AttractionsSection: No attractions data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-amber-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-amber-600 font-bold tracking-wider uppercase text-sm",children:"Explore the Dory Fleet Home"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Pacific City"}),r.jsx("div",{className:"h-1 w-24 bg-amber-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(TPe,{attraction:t,index:n},n))})]})})),PPe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-teal-100 text-teal-800 border-teal-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},EPe=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-amber-600"}),"Hiking Trails & Dunes"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From challenging dune climbs to peaceful river walks, Pacific City offers diverse trails for every skill level."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-amber-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(PPe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),OPe=({hotels:e})=>{const t="Pacific City";return r.jsx(mt,{townName:t,fallbackHotels:e,affiliateHotels:st[t]})},RPe=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-amber-100 hover:border-amber-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-amber-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-amber-800 bg-amber-100 px-2 py-1 rounded-md whitespace-nowrap ml-2",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-amber-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-amber-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),IPe=({restaurants:e})=>{if(v.useEffect(()=>{(!e||e.length===0)&&console.warn("RestaurantsSection: No restaurant data provided")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-amber-50 text-center",children:r.jsx("p",{className:"text-amber-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2);return r.jsx("section",{className:"py-24 px-4 bg-amber-50",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-amber-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(fI,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Pacific City"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From world-famous beachfront brews to cozy bakeries and fresh river-caught seafood."})]}),r.jsx("div",{className:"grid md:grid-cols-2 gap-8 mb-16",children:t.map((a,i)=>r.jsxs("div",{className:"bg-white p-8 rounded-2xl shadow-lg border-t-4 border-amber-500",children:[r.jsx("h3",{className:"text-2xl font-bold text-gray-900 mb-2",children:a.name}),r.jsx("span",{className:"inline-block bg-amber-100 text-amber-800 text-xs font-bold px-2 py-1 rounded mb-4",children:a.category}),r.jsx("p",{className:"text-gray-600 mb-4 text-lg",children:a.description}),r.jsxs("p",{className:"text-sm font-medium text-amber-700",children:["✨ ",a.features]})]},i))}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-amber-900 mb-8 text-center",children:"More Local Favorites"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:n.map((a,i)=>r.jsx(RPe,{restaurant:a},i))})]})]})})},MPe="https://whalewatching.live/api/status",O3="kruseroot",LPe=12e4,R3="https://www.tiktok.com/@kruseroot?_r=1&_t=ZT-99roT1rgFuY",DPe="https://whalewatching.live/api/social-stats",BPe=1440*60*1e3,FPe="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/901f4f5812079a900a7fbe8f6d86a158.jpg",zPe=()=>{const[e,t]=v.useState(!1),[n,a]=v.useState(!0),[i,s]=v.useState(null),[o,l]=v.useState(null),[c,h]=v.useState(null),m=v.useCallback(async()=>{try{const x=await fetch(DPe,{headers:{Accept:"application/json"}});if(!x.ok)throw new Error(`HTTP ${x.status}`);const b=await x.json(),j=Array.isArray(b?.stats)?b.stats:[],N=O=>String(O?.username||O?.handle||O?.user||"").toLowerCase().replace(/^@/,"")===O3,_=j.filter(N),S=_.length?_:j,A=S.find(O=>String(O?.platform||"").toLowerCase()==="tiktok"&&N(O))||S.find(O=>String(O?.platform||"").toLowerCase()==="tiktok");A&&(A.follower_label||A.follower_count!=null)&&l({label:A.follower_label||String(A.follower_count),unit:"followers"});const P=(_.length?_:j).map(O=>O?.checked_at).filter(Boolean).sort(),I=P.length?P[P.length-1]:b?.checked_at;if(I){const O=new Date(I);h(Number.isNaN(O.getTime())?null:O)}}catch{}},[]),p=v.useCallback(async()=>{try{const x=await fetch(MPe,{headers:{Accept:"application/json"}});if(!x.ok)throw new Error(`HTTP ${x.status}`);const b=await x.json(),N=(Array.isArray(b?.lives)?b.lives:[]).some(_=>String(_?.username||"").toLowerCase()===O3&&_?.is_live===!0);t(N),s(new Date)}catch{s(new Date)}finally{a(!1)}},[]);return v.useEffect(()=>{p();const x=setInterval(p,LPe);return()=>clearInterval(x)},[p]),v.useEffect(()=>{m();const x=setInterval(m,BPe);return()=>clearInterval(x)},[m]),r.jsx("section",{className:"relative py-14 md:py-20 px-4 bg-[hsl(var(--cream-bg))] border-b border-[hsl(var(--border))]","aria-labelledby":"kruseroot-heading",children:r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 min-[900px]:grid-cols-[55fr_45fr] gap-8 min-[900px]:gap-12 items-center",children:[r.jsx("div",{className:"relative w-full",children:r.jsx("div",{className:"relative aspect-[4/3] w-full overflow-hidden rounded-sm bg-[#1a2a32] shadow-editorial ring-1 ring-black/10",children:r.jsx("img",{src:FPe,alt:"KruseRoot live stream collage with Oregon Coast sunset at Haystack Rock and smiling yellow Labrador",className:"absolute inset-0 h-full w-full object-contain bg-[#f5f0e6]",draggable:!1})})}),r.jsxs("div",{className:"flex flex-col justify-center text-left min-[900px]:rounded-sm min-[900px]:border min-[900px]:border-[hsl(var(--border))] min-[900px]:bg-white/70 min-[900px]:p-8 lg:p-10 min-[900px]:shadow-editorial",children:[r.jsx("p",{className:"mb-3 text-xs font-sans font-semibold uppercase tracking-[0.2em] text-sage",children:"Local Live Streams · Pacific City · Oregon Coast"}),r.jsx("h2",{id:"kruseroot-heading",className:"mb-5 font-serif text-3xl md:text-4xl font-bold tracking-wide text-primary normal-case",children:"KruseRoot"}),r.jsx("div",{className:"mb-6 h-1 w-16 bg-amber-400 rounded-full","aria-hidden":"true"}),r.jsx("p",{className:"text-base md:text-lg text-foreground/90 leading-relaxed font-sans font-light mb-4",children:"Live from the PNW on the Oregon Coast in Pacific City and surrounding areas."}),o&&r.jsx("div",{className:"mb-6 grid grid-cols-1 gap-3 max-w-xs",children:r.jsxs("div",{className:"rounded-sm border border-[hsl(var(--border))] bg-[hsl(var(--muted))]/40 px-4 py-3",children:[r.jsx("p",{className:"text-xs font-sans font-semibold uppercase tracking-[0.15em] text-sage",children:"TikTok"}),r.jsxs("p",{className:"mt-1 text-lg md:text-xl font-serif font-bold text-primary leading-tight",children:[o.label,r.jsx("span",{className:"ml-1 text-sm font-sans font-light text-foreground/60 normal-case",children:o.unit})]})]})}),c&&r.jsxs("p",{className:"mb-6 text-xs font-sans font-light text-foreground/50",children:["Updated"," ",c.toLocaleDateString([],{month:"short",day:"numeric",year:"numeric"})]}),r.jsxs("div",{className:`mb-6 rounded-sm border px-4 py-3 transition-colors duration-300 ${e?"border-red-300 bg-red-50":"border-[hsl(var(--border))] bg-[hsl(var(--muted))]/40"}`,"aria-live":"polite",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[e?r.jsxs("span",{className:"relative flex h-3 w-3 flex-none","aria-hidden":"true",children:[r.jsx("span",{className:"absolute inline-flex h-full w-full animate-ping rounded-full bg-red-500 opacity-75"}),r.jsx("span",{className:"relative inline-flex h-3 w-3 rounded-full bg-red-600"})]}):r.jsx("span",{className:"inline-flex h-3 w-3 flex-none rounded-full bg-[hsl(var(--muted-foreground))]/50","aria-hidden":"true"}),r.jsx("p",{className:`text-sm md:text-base font-sans font-medium leading-snug ${e?"text-red-700":"text-foreground/70"}`,children:n?"Checking KruseRoot’s live status…":e?"KruseRoot is LIVE now on TikTok":"KruseRoot is offline right now"})]}),e&&r.jsxs("a",{href:R3,target:"_blank",rel:"noopener noreferrer",className:"mt-3 inline-flex min-h-[44px] items-center gap-2 rounded-sm bg-red-600 px-5 py-2.5 text-sm font-sans font-semibold uppercase tracking-wider text-white shadow-sm transition hover:bg-red-700 active:scale-[0.98] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-red-600",children:[r.jsx(wI,{className:"h-4 w-4",strokeWidth:2,"aria-hidden":"true"}),"Watch Live",r.jsx(Ka,{className:"h-3.5 w-3.5 opacity-80","aria-hidden":"true"})]}),i&&r.jsxs("p",{className:"mt-2 text-xs font-sans font-light text-foreground/50",children:["Last checked"," ",i.toLocaleTimeString([],{hour:"numeric",minute:"2-digit"})]})]}),!e&&r.jsx("div",{className:"flex flex-wrap gap-3",children:r.jsxs("a",{href:R3,target:"_blank",rel:"noopener noreferrer",className:"inline-flex min-h-[44px] items-center gap-2 rounded-sm border border-[hsl(var(--primary))] bg-[hsl(var(--primary))] px-5 py-2.5 text-sm font-sans font-semibold uppercase tracking-wider text-[hsl(var(--primary-foreground))] transition hover:bg-transparent hover:text-[hsl(var(--primary))] active:scale-[0.98] focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[hsl(var(--primary))]",children:["TikTok",r.jsx(Ka,{className:"h-3.5 w-3.5 opacity-80","aria-hidden":"true"})]})})]})]})})},$Pe=[{title:"Tillamook County Fair",date:"August 5-8, 2026 | 10:00 am - 10:00 pm",description:"Tillamook County Fairgrounds"},{title:"Coastal Chords & Corks: Ben Rice",date:"August 12, 2026 | 5:00 pm - 8:00 pm",description:"Meridian Restaurant and Bar"},{title:"Siletz Bay Music Festival",date:"August 13-23, 2026 | All Day",description:"Lincoln City Cultural Center"},{title:"Fireside Fridays: Elk Cove Winery",date:"August 14, 2026 | 3:00 pm - 5:00 pm",description:"Meridian Restaurant and Bar"},{title:"Nestucca Valley Artisans Art Fest",date:"August 15-16, 2026 | 10:00 am - 4:00 pm",description:"Kiawanda Community Center"},{title:"Coastal Chords & Corks: Ramsey Embick",date:"August 19, 2026 | 5:00 pm - 8:00 pm",description:"Meridian Restaurant and Bar"},{title:"Coastal Chords & Corks: Acoustic Minds",date:"August 26, 2026 | 5:00 pm - 8:00 pm",description:"Meridian Restaurant and Bar"},{title:"Vintage Hitchcock: A Live Radio Play",date:"September 9-20, 2026 | All Day",description:"The Barn Community Playhouse"},{title:"Lincoln City Fall Kite Festival",date:"September 18-20, 2026 | All Day",description:"D-River Wayside State Park"},{title:"Cape Kiwanda Longboard Classic",date:"September 18-20, 2026 | All Day",description:"Cape Kiwanda Day Use Parking"},{title:"Neskowin Ghost Forest",date:"October 1-31, 2026 | Low Tide",description:"Neskowin Ghost Forest"},{title:"Kilchis River Pumpkin Patch & Corn Maze",date:"Weekends in October | All Day",description:"Tillamook"},{title:"Community Beach Cleanup",date:"October 3, 2026 | 10:00 am - 12:00 pm",description:"Cape Kiwanda Day Use Parking"},{title:"Oregon's King Tides",date:"Nov 23-27, Dec 22-26, Jan 20-24 | All Day",description:"Cape Kiwanda Day Use Parking"},{title:"Thanksgiving Dinner at Meridian",date:"November 26, 2026 | 12:00 pm - 6:00 pm",description:"Meridian Restaurant and Bar"},{title:"Community Beach Cleanup",date:"December 5, 2026 | 10:00 am - 12:00 pm",description:"Cape Kiwanda Day Use Parking"}],HPe=()=>{v.useEffect(()=>{console.log("PacificCityPage mounted")},[]);const e=ke["pacific-city"],t=lt("Pacific City"),n=ct("Pacific City"),a=jn["pacific-city"];return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Pacific City, Oregon",description:n,url:window.location.href,image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Sunset/golden hour photo showing dramatic sea stacks, rocky cliffs with trees on top, sandy beach, waves, and golden sunlight reflecting on the water",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Pacific City"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Pacific City"}),r.jsx("div",{className:"h-1.5 w-32 bg-amber-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsx(zPe,{}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Pacific City Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:kPe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Located on the beautiful Oregon Coast, Pacific City is known for its towering Cape Kiwanda, dory fleet, and oceanfront dunes."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||45.2015,lon:e?.geo?.lng||-123.9626,townName:"Pacific City"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Pacific City",townSlug:"pacific-city",lat:e?.geo?.lat||45.2015,lon:e?.geo?.lng||-123.9626})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Pacific City",featuredImage:a,title:"Pacific City in Photos"})}),r.jsx(dt,{attractions:E3,townName:"Pacific City"}),r.jsx(APe,{attractions:E3}),r.jsx(EPe,{trails:_Pe}),r.jsx($r,{events:$Pe}),r.jsx(OPe,{hotels:SPe}),r.jsx(IPe,{restaurants:CPe})]}),r.jsx(Ye,{})]})},Iu=({slotId:e,format:t="auto",responsive:n="true",className:a=""})=>{const i=v.useRef(null),[s,o]=v.useState(!1);return v.useEffect(()=>{let l;if(i.current&&i.current.innerHTML==="")try{(window.adsbygoogle=window.adsbygoogle||[]).push({})}catch(c){console.error("AdSense initialization error:",c),o(!0)}return l=setTimeout(()=>{i.current&&i.current.getAttribute("data-adsbygoogle-status")==="done"&&o(!1)},3e3),()=>clearTimeout(l)},[]),r.jsxs("div",{className:`w-full max-w-5xl mx-auto px-4 my-8 flex flex-col items-center justify-center ${a}`,children:[r.jsx("span",{className:"text-[10px] text-stone-400 uppercase tracking-widest mb-2 font-medium",children:"Advertisement"}),r.jsx("div",{className:"w-full flex items-center justify-center bg-stone-50 border border-stone-200 rounded-lg shadow-sm min-h-[100px] md:min-h-[120px] p-2 overflow-hidden relative",children:s?r.jsx("div",{className:"text-stone-400 text-sm",children:"Ad failed to load."}):r.jsx("div",{ref:i,className:"w-full h-full flex justify-center items-center",children:r.jsx("ins",{className:"adsbygoogle",style:{display:"block",width:"100%",textAlign:"center"},"data-ad-client":"ca-pub-YOUR_CLIENT_ID_HERE","data-ad-slot":e,"data-ad-format":t,"data-full-width-responsive":n})})})]})},sj={"arch-cape":{top:"1000000001",middle:"1000000002",bottom:"1000000003"},"bay-city":{top:"1000000011",middle:"1000000012",bottom:"1000000013"},"cannon-beach":{top:"1000000021",middle:"1000000022",bottom:"1000000023"},harbor:{top:"1000000031",middle:"1000000032",bottom:"1000000033"},"pacific-city":{top:"1000000041",middle:"1000000042",bottom:"1000000043"},"port-orford":{top:"1000000051",middle:"1000000052",bottom:"1000000053"},"rockaway-beach":{top:"1000000061",middle:"1000000062",bottom:"1000000063"},default:{top:"9999999991",middle:"9999999992",bottom:"9999999993"}},k$=e=>{if(!e)return sj.default;const t=e.toLowerCase().replace(/\s+/g,"-");return sj[t]||sj.default},WPe=`
<p>Welcome to Port Orford, the westernmost city in the contiguous United States and a hidden jewel of the Southern Oregon Coast. Perched on a dramatic headland overlooking the Pacific Ocean, this authentic working fishing port offers breathtaking vistas, rich history, and a slower, more peaceful pace of life. Unlike the bustling tourist towns to the north, Port Orford retains a rugged, untouched charm where nature takes center stage.</p>
<p>The town is anchored by the spectacular Battle Rock Wayside, site of a historic conflict and now a stunning beach accessible at low tide. Just offshore, towering sea stacks rise from the crashing waves, creating a photographer's paradise. The active port is unique—it is one of only two "dolly docks" in the US, where fishing vessels are lifted in and out of the water by massive cranes each day, a spectacle that visitors gather to watch.</p>
<p>Surrounded by state parks, pristine lakes, and the majestic Humbug Mountain, Port Orford is an outdoor lover's dream. Whether you're exploring the historic Cape Blanco Lighthouse, hiking the trails at Port Orford Heads for 360-degree ocean views, or enjoying fresh-caught seafood at a dockside restaurant, you'll find a deep connection to the wild beauty of the Pacific Northwest here.</p>
`,I3=[{name:"Battle Rock Wayside",description:"The crown jewel of Port Orford, this massive sea stack is connected to the shore by a sandy spit accessible at low tide. It's a site of historical significance and offers incredible climbing, tide pooling, and photography opportunities right from Highway 101.",details:"Free parking and beach access. Best visited at low tide."},{name:"Cape Blanco Lighthouse",description:"Perched on the westernmost point of Oregon, this is the oldest standing lighthouse on the coast. The grounds offer sweeping views, tours of the historic lens room, and trails leading down to secluded black sand beaches.",details:"Tours available seasonally. $2 donation suggested."},{name:"Port Orford Heads State Park",description:"A former Coast Guard lifeboat station turned state park. Short trails wind through spruce forests to open headlands offering panoramic views of the ocean, sea stacks, and migrating whales. The historic lifeboat museum is a must-see.",details:"Museum open seasonally. Trails open year-round."},{name:"The Dolly Dock",description:"Port Orford has no natural deep-water harbor, so fishing boats are lifted out of the water by giant cranes and placed on trailers (dollies) on the dock. Watching the fleet launch or return is a unique daily ritual found almost nowhere else.",details:"Located at the Port of Port Orford. Best viewed in mornings/evenings."},{name:"Hughes House",description:"A beautifully restored 1898 Victorian farmhouse located near Cape Blanco. Built for pioneer dairyman Patrick Hughes, it offers a glimpse into early settler life on the wild coast, surrounded by pastoral fields and river views.",details:"Tours available seasonally (Apr-Oct). Free admission."},{name:"Prehistoric Gardens",description:"Located just south of town in a lush rainforest, this kitschy yet charming roadside attraction features life-size sculptures of dinosaurs. It's a fun, family-friendly stop that feels like stepping back in time.",details:"Admission fee required. Self-guided walking tour."},{name:"Humbug Mountain State Park",description:"Dominating the skyline south of town, Humbug Mountain rises directly from the ocean to 1,756 feet. The park offers camping, beach access, and one of the coast's most rewarding hikes to the summit.",details:"Day use and campground facilities available."},{name:"Garrison Lake",description:"Separated from the ocean by only a narrow strip of dunes, this freshwater lake is perfect for kayaking, fishing, and boating. It winds through the town and offers a peaceful alternative to the wild ocean.",details:"Boat ramps available at 12th St and Pinehurst."},{name:"Tseriadun State Recreation Site",description:"A tranquil park at the entrance to Garrison Lake, featuring trails through shore pines and easy access to Agate Beach. It's an excellent spot for agate hunting, picnicking, and watching the sunset away from crowds.",details:"No fee. Restrooms and picnic tables available."}],VPe=[{name:"Humbug Mountain Trail",distance:"5.5 miles loop",difficulty:"Strenuous",elevation:"1,730 ft gain",description:"A challenging but rewarding climb through old-growth forest to the summit of one of the highest headlands on the Oregon Coast. The views from the top peek through the trees, but the real magic is the lush, fern-filled forest journey."},{name:"Port Orford Heads Trail",distance:"1.2 miles loop",difficulty:"Easy",description:"A gentle, family-friendly walk leading to three different viewpoints. You'll see the Nellie's Cove, the expanse of the Pacific, and the historic lifeboat station site. Great for whale watching."},{name:"Cape Blanco Coastal Trail",distance:"4.5 miles round trip",difficulty:"Moderate",description:"Winds along the bluffs from the lighthouse down to the Sixes River. The trail offers constant ocean views, windswept grassy plains, and access to miles of lonely, driftwood-scattered beaches."},{name:"Blacklock Point Trail",distance:"4.2 miles round trip",difficulty:"Moderate",description:"Located north of town near the airport, this trail passes through dense forest before opening up to a spectacular, remote sandstone cliff viewpoint that feels like the edge of the world."},{name:"Elk River Trail",distance:"3.0 miles (variable)",difficulty:"Easy/Moderate",description:"Just inland, the Elk River is known for its emerald waters. This trail follows the riverbank through ancient myrtlewood groves and is perfect for a peaceful nature walk away from the coastal wind."},{name:"Cove Beach Walk",distance:"2.0 miles",difficulty:"Easy",description:"Starting from Battle Rock, walk south along the grey sands of Cove Beach towards Humbug Mountain. It's a classic beachcombing stroll with dramatic sea stacks and potential for finding agates."}],UPe=[{name:"WildSpring Guest Habitat",category:"Luxury/Boutique",description:"An eco-friendly luxury resort set in a five-acre forest overlooking the ocean. Guests stay in plush cabins and enjoy an open-air slate hot tub. It's serene, romantic, and designed for deep relaxation.",amenities:"Ocean-view hot tub, walking labyrinth, breakfast buffet."},{name:"Castaway by the Sea",category:"Mid-Range",description:"Located on the bluff directly overlooking Battle Rock and the ocean. Every room offers a spectacular view, making it a favorite for storm watchers and sunset lovers.",amenities:"Private balconies, pet-friendly rooms, direct beach access nearby."},{name:"Sea Crest Motel",category:"Budget/Mid-Range",description:"A classic, well-maintained roadside motel offering clean, comfortable rooms with grand ocean views. The landscaped grounds and friendly service make it a reliable choice.",amenities:"Ocean views, garden seating, free Wi-Fi."},{name:"Whaleshead Beach Resort",category:"Vacation Rentals",description:"Located south of town, this resort features individual cottages and cabins nestled across the highway from a stunning beach. Perfect for families wanting more space and kitchen facilities.",amenities:"Full kitchens, decks, tunnel access to beach."},{name:"Battle Rock Guest House",category:"Vacation Rental",description:"A historic home perched right above Battle Rock Park. It offers the privacy of a home rental with unbeatable proximity to the beach and town center.",amenities:"Full house rental, panoramic decks, historic charm."},{name:"The Inn at Port Orford",category:"Budget",description:"Simple, affordable lodging on the north end of town. Most rooms have decent ocean views, and it serves as a convenient basecamp for exploring the area.",amenities:"Microwaves/fridges, coffee makers, pet-friendly."},{name:"Shoreline Inn (Nearby)",category:"Mid-Range",description:"Though technically a short drive, it offers beachfront stays with a rustic, nautical vibe popular with visitors to the region.",amenities:"Beachfront, simple amenities, cozy atmosphere."}],qPe=[{name:"Redfish",category:"Upscale Seafood",description:"Port Orford's premier fine dining experience. The modern building features floor-to-ceiling windows overlooking Battle Rock, serving French-inspired coastal cuisine and excellent wines.",features:"Ocean views, seasonal menu, craft cocktails."},{name:"Griff's on the Dock",category:"Casual Seafood",description:"Located literally on the working dock, this is the place for fish and chips. It's tiny, authentic, and the seafood comes straight off the boats outside.",features:"Dockside seating, freshest fish in town, chowder."},{name:"The Crazy Norwegian's Fish & Chips",category:"Casual Dining",description:"A local legend known for its massive portions and quirky character. Their fish and chips and clam chowder are staples for Highway 101 road trippers.",features:"Huge portions, homemade pies, family-friendly."},{name:"Tasty Kate's",category:"Bakery/Cafe",description:"A charming spot for morning coffee, homemade pastries, and light lunches. Known for their artistic presentation and welcoming atmosphere.",features:"Artisan pastries, organic coffee, garden seating."},{name:"Golden Harvest",category:"American/Diner",description:"A reliable, friendly diner serving hearty breakfasts and classic American comfort food. It's a favorite among locals for a solid meal.",features:"All-day breakfast, homemade biscuits, local hub."},{name:"Mr. Ed's Underground Pub",category:"Pub/Bar",description:"A fun, local watering hole with a surprisingly extensive menu of burgers, sandwiches, and bar snacks. Great place to meet locals and catch a game.",features:"Sports bar vibe, pool tables, hearty burgers."},{name:"One-Stop Market & Deli",category:"Deli/Takeout",description:"More than just a convenience store, their deli counter serves up excellent sandwiches and hot food to go, perfect for a picnic at the Heads.",features:"Grab-and-go, fresh deli sandwiches, fried chicken."},{name:"TJ's Cafe",category:"Cafe/American",description:"A straightforward, no-nonsense cafe offering good food at fair prices. Known for friendly service and satisfying portions.",features:"Breakfast specials, senior menu, casual."},{name:"Port & Starboard",category:"Pizza/Lounge",description:"A cozy spot for evening entertainment, offering pizzas, drinks, and occasional live music or karaoke.",features:"Pizza, full bar, evening entertainment."}],GPe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),KPe=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Discover the Hidden Gems"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Port Orford"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(GPe,{attraction:t,index:n},n))})]})})),ZPe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},YPe=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Port Orford offers some of the most scenic and uncrowded trails on the coast. From the steep summit of Humbug Mountain to windswept headland loops, nature is just steps away."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(ZPe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),JPe=({hotels:e})=>{const t="Port Orford",n=["Castaway by the Sea","Sea Crest Motel","Whaleshead Beach Resort","The Inn at Port Orford"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},oj=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),M3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),XPe=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2,6),a=e.slice(6,9);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Port Orford"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From fresh seafood caught right off the dock to cozy cafes and local pubs, Port Orford offers authentic flavors without the crowds."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Oceanview & Dockside"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(oj,{restaurant:i},s))})]}),r.jsx(M3,{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80",alt:"Seafood dinner with view",caption:"Dining with spectacular ocean views"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(M3,{src:"https://images.unsplash.com/photo-1513104890138-7c749659a591?auto=format&fit=crop&w=800&q=80",alt:"Comfort food plate",caption:"Hearty comfort food favorites"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Local Favorites"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(oj,{restaurant:i},s))})]})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Quick Bites & Pubs"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:a.map((i,s)=>r.jsx(oj,{restaurant:i},s))})]})]})})},QPe=()=>{v.useEffect(()=>{console.log("PortOrfordPage mounted")},[]);const e=ke["port-orford"],t=lt("Port Orford"),n=ct("Port Orford"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2a920d94b7ea480bbad4676664281550.webp",i=k$("port-orford"),s=[{question:"What is special about the Port of Port Orford?",answer:"It is one of only two 'dolly docks' in the United States. Since there is no natural deep harbor, fishing boats are lifted in and out of the water by giant cranes every day."},{question:"Can you climb Battle Rock?",answer:"Yes, but only during low tide when the sandy spit connecting it to the beach is accessible. Always watch the tides carefully to avoid being stranded."},{question:"Is Port Orford the most western city?",answer:"Yes, Port Orford is the westernmost incorporated city in the 48 contiguous United States."},{question:"When is Cape Blanco Lighthouse open?",answer:"Tours generally run from April through October, though the park grounds are open year-round for hiking and viewing the lighthouse from the outside."}];return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Port Orford, Oregon",description:n,url:"https://oregoncoastal.com/town/port-orford",geo:{lat:42.7457,lng:-124.4984},image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Port Orford coastline with Battle Rock",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Port Orford",region:"South Coast"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Port Orford"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Port Orford Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:WPe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"The oldest town on the Oregon coast, featuring a unique dolly dock port and dramatic ocean vistas."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||42.7457,lon:e?.geo?.lng||-124.4984,townName:"Port Orford"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Port Orford",townSlug:"port-orford",lat:e?.geo?.lat||42.7457,lon:e?.geo?.lng||-124.4984})})]}),r.jsx(Iu,{slotId:i.top}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Port Orford",featuredImage:a,title:"Port Orford in Photos"})}),r.jsx(dt,{attractions:I3,townName:"Port Orford"}),r.jsx(KPe,{attractions:I3}),r.jsx(YPe,{trails:VPe}),r.jsx(Iu,{slotId:i.middle}),r.jsx(JPe,{hotels:UPe}),r.jsx(Iu,{slotId:i.bottom}),r.jsx(XPe,{restaurants:qPe}),r.jsx(hp,{faqs:s,title:"Port Orford Visitor FAQs"})]}),r.jsx(Ye,{})]})},eEe=`
<p>Situated at the confluence of the Umpqua, Smith, and Scholfield rivers, Reedsport is the heart of the Oregon Dunes National Recreation Area. This riverfront community offers a unique blend of rugged outdoor adventure, wildlife viewing, and maritime history. As the gateway to the Oregon Dunes, it serves as the perfect launchpad for exploring the shifting sands that tower up to 500 feet above the ocean.</p>
<p>Reedsport is famously known for the Dean Creek Elk Viewing Area, where a resident herd of majestic Roosevelt elk grazes year-round in the pastures just outside of town. The Umpqua Discovery Center on the waterfront provides an immersive look into the region's cultural and natural history, from the Kuu-ich indigenous people to the early pioneers and the timber industry. The town's boardwalk offers peaceful river views and spots to watch seals play in the water.</p>
<p>Whether you're renting an ATV to conquer the dunes, fishing for salmon in the mighty Umpqua River, or hiking through coastal forests to hidden lakes, Reedsport delivers an authentic connection to nature. It is a place where the forest meets the river and the river meets the sea, offering endless opportunities for exploration and discovery.</p>
`,L3=[{name:"Dean Creek Elk Viewing Area",description:"Located just three miles east of Reedsport, this 1,000-acre wildlife management area is home to a resident herd of 60-100 Roosevelt elk. Viewing stations offer excellent opportunities to photograph these majestic animals grazing in the meadows.",details:"Free admission. Best viewing times are early morning and late evening."},{name:"Umpqua Discovery Center",description:"An interactive museum located on the Reedsport riverfront. Exhibits include 'Tidewaters & Time,' which explores the cultural history of the Lower Umpqua, and 'Sounds of the Sea,' a sensory experience of the coastal environment.",details:"Open daily. Great for families and history buffs."},{name:"Oregon Dunes National Recreation Area",description:"Reedsport is the headquarters for the Oregon Dunes, the largest expanse of coastal sand dunes in North America. The dunes stretch for 40 miles and offer hiking, OHV riding, sandboarding, and photography opportunities.",details:"Recreation pass required for some areas. Rentals available in town."},{name:"Umpqua River Lighthouse",description:"Located just a few miles away in Winchester Bay, this historic lighthouse was the first on the Oregon Coast to have a red-and-white lens. Tours of the active lighthouse and the adjacent museum are a highlight for visitors.",details:"Tours available daily. Located inside Umpqua Lighthouse State Park."},{name:"Bolon Island Tideways State Scenic Corridor",description:"A small island in the Umpqua River accessible by bridge. It features a hiking trail that leads through a lush forest to the water's edge, offering a quiet escape and great birdwatching.",details:"Free access. A hidden gem for a quick nature walk."},{name:"Tahkenitch Lake",description:"Located north of town, this sprawling coastal lake is a paradise for anglers and boaters. It is known for its largemouth bass, coho salmon, and perch fishing, as well as its beautiful forested shoreline.",details:"Boat ramps and campgrounds available nearby."},{name:"Old Town Reedsport",description:"The historic heart of the city along the riverfront. Visitors can stroll the boardwalk, visit the chainsaw carving sculptures, and explore local shops and galleries that celebrate the town's timber heritage.",details:"Features the Oregon Divisional Chainsaw Carving Championships site."},{name:"Loon Lake Recreation Area",description:"A bit further inland, Loon Lake offers a sheltered spot for swimming, water skiing, and camping. The sandy beach and warmer inland weather make it a popular summer destination for families.",details:"BLM managed site. Day-use fees apply."}],tEe=[{name:"Bluebill Lake Trail",distance:"1.25 miles loop",difficulty:"Easy",description:"A gentle boardwalk and gravel trail that circles a small, marshy lake. It's an excellent spot for birding and seeing wetland plants like skunk cabbage and salamanders."},{name:"John Dellenback Dunes Trail",distance:"5.4 miles round trip",difficulty:"Moderate/Hard",description:"One of the most spectacular hikes on the coast. The trail leads through a spruce forest before opening up into the vast, otherworldly landscape of the open dunes, eventually reaching the ocean."},{name:"Tahkenitch Dunes Trail",distance:"6.0 miles loop",difficulty:"Moderate",description:"A diverse loop that traverses old-growth forest, open dunes, and the beach. Hikers might spot seasonal waterfalls and elk tracks in the sand."},{name:"Umpqua Dunes Trail",distance:"2.5 miles round trip",difficulty:"Moderate",description:"This trail offers quick access to the highest dunes in the area. The shifting sands make the hike a workout, but the panoramic views of the ocean and mountains are worth the effort."},{name:"William M. Tugman Trail",distance:"1.0 mile loop",difficulty:"Easy",description:"Located in the nearby state park, this trail winds through the forest along the edge of Eel Lake. It's a peaceful, flat hike suitable for all ages."},{name:"Lake Marie Trail",distance:"1.0 mile loop",difficulty:"Easy",description:"A lovely wooded trail that circles Lake Marie near the Umpqua Lighthouse. It offers glimpses of the lake and connects to trails leading out to the dunes."}],nEe=[{name:"Best Western Salbasgeon Inn",category:"Mid-Range",description:"A reliable and comfortable choice located centrally in Reedsport. Features an indoor pool and easy access to the Umpqua Discovery Center and riverfront.",amenities:"Indoor pool, hot tub, full breakfast, fitness center."},{name:"Salbasgeon Suites",category:"Suites",description:"Offering spacious suites with kitchenettes, this is a great option for families or longer stays. The friendly staff and clean rooms make it a local favorite.",amenities:"Kitchenettes, free WiFi, laundry facilities."},{name:"Economy Inn Reedsport",category:"Budget",description:"A straightforward, budget-friendly motel offering clean rooms and basic amenities. Ideal for travelers who plan to spend most of their time exploring the dunes.",amenities:"Free WiFi, microwave/fridge, pet-friendly rooms."},{name:"Anchor Bay Inn",category:"Budget/Value",description:"Located conveniently on Highway 101, offering simple, clean accommodation with friendly service. A practical stopover for coastal road trippers.",amenities:"Free coffee, cable TV, easy highway access."},{name:"Fir Grove Motel",category:"Retro/Budget",description:"A charming, smaller motel with a retro vibe. The grounds are well-kept with fir trees, offering a bit more quiet than other highway-side options.",amenities:"Garden setting, ground floor rooms, free parking."},{name:"Umpqua Lighthouse Yurts",category:"Glamping",description:"For a unique stay, book a yurt at Umpqua Lighthouse State Park. These heated canvas structures offer a comfortable camping experience near Lake Marie and the dunes.",amenities:"Heated, electricity, fire ring, shared bathrooms."}],rEe=[{name:"Harbor Light Restaurant",category:"Seafood/Steak",description:"A local institution known for its historic maritime decor and hearty portions. Famous for their clam chowder and fish and chips, serving the community for decades.",features:"Historic photos, full bar, family-friendly."},{name:"Don's Main Street Family Restaurant",category:"Diner/American",description:"A classic American diner serving breakfast all day, burgers, and milkshakes. It has a nostalgic 50s vibe and is a favorite among locals for comfort food.",features:"All-day breakfast, vintage decor, homemade pies."},{name:"Two Shy Brewing",category:"Brewery",description:"Reedsport's own craft brewery, offering a rotating selection of locally brewed beers in a relaxed taproom setting. A great place to unwind after a day on the dunes.",features:"Craft beer, food trucks often on-site, community vibe."},{name:"Sugar Shack Bakery",category:"Bakery/Cafe",description:"A must-stop for anyone with a sweet tooth. Known for massive donuts, fresh pastries, and sandwiches on homemade bread. Get there early for the best selection.",features:"Giant donuts, fresh bread, early morning hours."},{name:"Unger's Bay Fish & Chips",category:"Seafood/Casual",description:"Located nearby in Winchester Bay, this floating restaurant serves some of the freshest seafood on the coast. Eating fish and chips right on the water is a quintessential experience.",features:"Floating restaurant, dockside seating, fresh market."},{name:"Bedrock's on the Bay",category:"Pizza/Seafood",description:"Also in Winchester Bay, offering gourmet pizzas, chowder bowls, and seafood with views of the harbor. A lively spot with a fun atmosphere.",features:"Harbor views, pizza, outdoor seating."},{name:"El Guadalajara",category:"Mexican",description:"A colorful family-owned restaurant serving authentic Mexican dishes. Known for their large portions, sizzling fajitas, and friendly service.",features:"Full bar, colorful decor, large groups welcome."},{name:"Defeat River Brewery",category:"Brewery/Pub",description:"A newer addition to the local scene, offering small-batch brews and a cozy atmosphere. Named after a local tributary, it celebrates the region's geography.",features:"Small batch beer, pretzels, local hang-out."}],aEe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),iEe=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Wildlife & Wilderness"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Reedsport"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(aEe,{attraction:t,index:n},n))})]})})),sEe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},oEe=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Reedsport offers a diverse range of trails, from easy boardwalks through wetlands to challenging treks across the open dunes. Discover the unique ecosystems where the forest meets the sand."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(sEe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),lEe=({hotels:e})=>{const t="Reedsport",n=["Fir Grove Motel"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},lj=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),D3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),cEe=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,5),a=e.slice(5);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Reedsport"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From fresh seafood at Winchester Bay to classic American diners and bakeries, Reedsport offers hearty meals to fuel your adventures."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Local Favorites"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(lj,{restaurant:i},s))})]}),r.jsx(D3,{src:"https://images.unsplash.com/photo-1555939594-58d7cb561ad1?auto=format&fit=crop&w=800&q=80",alt:"Hearty diner food",caption:"Classic comfort food and local brews"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(D3,{src:"https://images.unsplash.com/photo-1509440159596-0249088772ff?auto=format&fit=crop&w=800&q=80",alt:"Fresh pastries",caption:"Start your day with fresh baked goods"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Quick Bites"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(lj,{restaurant:i},s))})]})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Casual Dining & Seafood"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:a.map((i,s)=>r.jsx(lj,{restaurant:i},s))}),r.jsx("div",{className:"mt-8 text-center",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1534080564583-6be75777b70a?auto=format&fit=crop&w=1200&h=300&q=80",alt:"Seafood dinner",className:"w-full h-48 object-cover rounded-xl opacity-90"})})]})]})})},dEe=()=>{v.useEffect(()=>{console.log("ReedsportPage mounted")},[]);const e=ke.reedsport,t=lt("Reedsport"),n=ct("Reedsport"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/8c4def8dadeb5e37fc696c35b7fe47c7.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Reedsport Oregon Travel",description:n,url:"https://oregoncoastal.com/town/reedsport",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Reedsport, Oregon River and Bridge",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Reedsport"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Reedsport"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Reedsport Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:eEe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Located in the heart of the Oregon Dunes National Recreation Area where the Umpqua River meets the sea."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||43.7023,lon:e?.geo?.lng||-124.0968,townName:"Reedsport"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Reedsport",townSlug:"reedsport",lat:e?.geo?.lat||43.7023,lon:e?.geo?.lng||-124.0968})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Reedsport",featuredImage:a,title:"Reedsport in Photos"})}),r.jsx(dt,{attractions:L3,townName:"Reedsport"}),r.jsx(iEe,{attractions:L3}),r.jsx(oEe,{trails:tEe}),r.jsx(lEe,{hotels:nEe}),r.jsx(cEe,{restaurants:rEe})]}),r.jsx(Ye,{})]})},uEe=`
<p>Nicknamed "the Coney Island of the Oregon Coast," Rockaway Beach delivers classic beach town fun with seven miles of wide, sandy shoreline and a delightfully nostalgic atmosphere. This family-friendly community of 1,300 residents has welcomed vacationers since the 1920s when passenger trains first connected the coast to Portland. Today, Rockaway Beach maintains that welcoming small-town charm while offering modern conveniences, making it an ideal destination for families seeking authentic Oregon Coast experiences without pretension or crowds.</p>
<p>The town's defining features include the dramatic Twin Rocks formation rising from the surf, the historic Oregon Coast Scenic Railroad offering vintage train excursions, and the Cedar Wetlands Preserve showcasing Oregon's largest Sitka spruce—the 154-foot "Ascending Giant." Highway 101 runs directly through town at reduced speed, with shops, restaurants, candy stores, and beach access points lining both sides. Unlike some quieter coastal villages, Rockaway Beach embraces its role as a fun, accessible beach destination where families can fly kites, build bonfires, explore tide pools, and enjoy the simple pleasures of coastal living. The beach remains surprisingly uncrowded despite abundant vacation rentals and hotel rooms, offering plenty of space for everyone to spread out and enjoy the Pacific.</p>
`,B3=[{name:"Twin Rocks",description:"The iconic symbol of Rockaway Beach, these two massive sea stacks rise dramatically from the ocean. The natural sandstone arch in the southern rock creates a stunning window for sunsets and is a favorite subject for photographers.",details:"Natural Landmark"},{name:"Oregon Coast Scenic Railroad",description:"Experience living history on this heritage railroad. Steam locomotives pull vintage cars right through the center of town, offering nostalgic rides between Rockaway Beach and Garibaldi with ocean views along the way.",details:"Historic Train"},{name:"Cedar Wetlands Preserve",description:"A hidden natural treasure featuring a raised wooden boardwalk winding through an ancient cedar and spruce swamp. It's home to the 'Big Tree,' a massive old-growth cedar that has survived for centuries.",details:"Nature Preserve"},{name:"International Police Museum",description:"A unique and fascinating small museum dedicated to law enforcement history from around the world. Displays include uniforms, equipment, and historical artifacts that tell the story of policing through the ages.",details:"Museum"},{name:"Rockaway Beach Wayside",description:"The main beach access point in the center of town, featuring the famous red caboose (Visitor Center), ample parking, restrooms, and direct access to the miles of sandy beach. It's the hub of town activity.",details:"Beach Access"},{name:"Lake Lytle",description:"Located along Highway 101, this freshwater lake is popular for fishing, kayaking, and birdwatching. It offers a tranquil alternative to the ocean and is regularly stocked with trout.",details:"Fishing & Boating"},{name:"The Big Tree",description:"Located within the Cedar Wetlands Preserve, this giant western red cedar is one of the largest on the Oregon Coast. A short, accessible boardwalk leads directly to its massive base.",details:"Old Growth Forest"},{name:"Trojan Horse & Gift Shops",description:"Rockaway's downtown strip is lined with eclectic shops. From the famous Trojan Horse antique store to souvenir shops selling kites and taffy, browsing these local businesses is a classic rainy day activity.",details:"Shopping"}],hEe=[{name:"Cedar Wetlands Preserve Trail",distance:"1.2 miles",difficulty:"Easy",elevation:"Flat",description:"An accessible boardwalk loop that takes you deep into a prehistoric-looking swamp forest. Perfect for families and nature lovers wanting to see massive trees without a strenuous hike."},{name:"Rockaway Beach Boardwalk",distance:"0.5 miles",difficulty:"Easy",elevation:"Flat",description:"A paved and boardwalk path running along the edge of the beach and nature areas. It offers great ocean views and is wheelchair and stroller friendly."},{name:"Barview Jetty County Park",distance:"1.5 miles",difficulty:"Easy",elevation:"Sea Level",description:"Located at the south end of Rockaway, walk out onto the jetty to watch waves crash and fishing boats cross the bar. Great for spotting seals and marine life."},{name:"Kilchis Point Reserve (Nearby)",distance:"2 miles",difficulty:"Easy",elevation:"Flat",description:"A short drive away on Tillamook Bay, this interpretive trail explores the history of the native Tillamook people and early settlers through beautiful forests and wetlands."},{name:"Neahkahnie Mountain (Nearby)",distance:"3 miles",difficulty:"Moderate/Hard",elevation:"1600 ft",description:"For those seeking a challenge and a view, this iconic hike just north of town offers the best panoramic vistas on the entire Oregon Coast."},{name:"Munson Creek Falls",distance:"0.5 miles",difficulty:"Easy",elevation:"100 ft",description:"A short drive south, a quick hike leads to the tallest waterfall in the Coast Range, cascading 319 feet through lush forest."}],fEe=[{name:"Rockaway Beach Resort",category:"Resort",description:"A beachfront timeshare and rental resort offering spacious units with kitchens and ocean views. Amenities include an indoor pool, spa, and direct beach access, making it a favorite for families.",amenities:"Pool, Kitchens, Oceanfront"},{name:"Surfside Resort",category:"Hotel",description:"Located right on the oceanfront, this hotel offers comfortable rooms with stunning views of Twin Rocks. Guests love the indoor pool and the ability to walk straight out onto the sand.",amenities:"Indoor Pool, Ocean Views"},{name:"Silver Sands Motel",category:"Motel",description:"A classic, budget-friendly motel with a prime location. Clean, simple rooms and friendly service make this a reliable base camp for beach adventures.",amenities:"Kitchenettes, Beach Access"},{name:"Tradewinds Motel",category:"Motel",description:"A charming, family-owned motel known for its hospitality. Many rooms feature ocean views and kitchenettes. It captures the retro vibe of Rockaway's early days.",amenities:"Pet Friendly, WiFi"},{name:"The Sea Treasure Inn",category:"Inn",description:"A cozy and affordable option a block from the beach. Offers a mix of standard rooms and suites with kitchens. A quiet spot to relax after a day of exploring.",amenities:"BBQ Area, Kitchens"},{name:"Beach Stay Motel",category:"Boutique Motel",description:"Recently updated with modern decor, this motel offers a fresh and stylish take on the classic roadside inn. Contactless check-in and curated amenities appeal to modern travelers.",amenities:"Modern Decor, Contactless"},{name:"Twin Rocks Motel",category:"Cabins/Motel",description:"Offering individual cottages and motel rooms directly overlooking the famous Twin Rocks. The private cabins provide a rustic and romantic coastal experience.",amenities:"Cottages, Fireplaces"}],mEe=[{name:"Old Oregon Smokehouse",category:"Seafood/Casual",description:"A landmark rustic shack serving some of the best clam chowder and fish & chips on the coast. Outdoor seating only, but the food is worth braving the elements.",features:"Famous Chowder, Casual"},{name:"Sand Dollar Restaurant",category:"American/Seafood",description:"A lively spot with a full bar and a menu featuring coastal classics. Known for its prime rib, seafood baskets, and live music on weekends.",features:"Live Music, Full Bar"},{name:"Pronto Pup",category:"Fast Food",description:"Home of the original corndog! This roadside attraction features a giant mechanical corndog on the roof and serves the famous batter-dipped treats that started it all.",features:"Historic, Corndogs"},{name:"Upper Crust Pizza",category:"Pizza",description:"A family favorite serving hearty pizzas loaded with toppings. A great spot to grab a pie to take back to the hotel or eat on the beach at sunset.",features:"Takeout, Family Style"},{name:"Lakeside Hideaway",category:"Pub/Grill",description:"Located near Lake Lytle, this friendly sports bar and grill offers burgers, steaks, and cold beer. A local hangout with a welcoming atmosphere.",features:"Sports Bar, Burgers"},{name:"Cowbelle Cafe",category:"Breakfast",description:"The go-to spot for hearty breakfasts. Fluffy pancakes, massive omelets, and bottomless coffee fuel locals and visitors alike for a day on the shore.",features:"Big Portions, Breakfast"},{name:"Rick's Roadhouse",category:"Bar & Grill",description:"A fun, energetic establishment with pool tables, lottery games, and a solid menu of pub grub. Great for a casual night out with friends.",features:"Pool Tables, Nightlife"},{name:"Grumpy's Cafe",category:"Cafe/Lunch",description:"Don't let the name fool you—the service is friendly! Known for excellent sandwiches, homemade soups, and fresh baked goods.",features:"Sandwiches, Soups"},{name:"Offshore Grill",category:"Bistro",description:"Offering a slightly more upscale dining experience with a focus on fresh, local ingredients and creative preparations of seafood and steak.",features:"Farm-to-Table, Wine"},{name:"The Beach Bite",category:"Casual/To-Go",description:"A perfect stop for beach snacks, ice cream, and quick meals. Conveniently located for grabbing a bite without leaving the ocean breeze.",features:"Ice Cream, Quick Bites"}],pEe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-sky-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-sky-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed text-sm",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-xs font-bold text-sky-700 bg-sky-50/50 inline-block px-3 py-1 rounded-md uppercase tracking-wider",children:e.details})})]})}),gEe=({attractions:e})=>!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-sky-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-sky-600 font-bold tracking-wider uppercase text-sm",children:"Explore Rockaway Beach"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Attractions & Highlights"}),r.jsx("div",{className:"h-1 w-24 bg-sky-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:e.map((t,n)=>r.jsx(pEe,{attraction:t,index:n},n))})]})}),xEe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},yEe=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-sky-600"}),"Hiking Trails & Nature Walks"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From the accessible Cedar Wetlands boardwalk to challenging coastal peaks, discover nature around Rockaway Beach."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-sky-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(xEe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),vEe=({hotels:e})=>{const t="Rockaway Beach",n=["The Sea Treasure Inn","Beach Stay Motel"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},cj=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-sky-100 hover:border-sky-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-sky-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-sky-600 bg-sky-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-sky-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-sky-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),F3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-sky-500 pl-3",children:n})})]}),bEe=({restaurants:e})=>{if(v.useEffect(()=>{(!e||e.length===0)&&console.warn("RestaurantsSection: No restaurant data provided")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-sky-50 text-center",children:r.jsx("p",{className:"text-sky-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,5),a=e.slice(5);return r.jsx("section",{className:"py-24 px-4 bg-sky-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-sky-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Rockaway Beach"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Classic corndogs, fresh seafood, and family favorites along Highway 101."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-sky-900 border-b-2 border-sky-200 pb-2 inline-block",children:"Beach Classics"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(cj,{restaurant:i},s))})]}),r.jsx(F3,{src:"https://images.unsplash.com/photo-1599305090598-fe179d501227?auto=format&fit=crop&w=800&q=80",alt:"Corndog and fries",caption:"Iconic beach treats & chowder"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(F3,{src:"https://images.unsplash.com/photo-1593560708920-638784597446?auto=format&fit=crop&w=800&q=80",alt:"Pizza",caption:"Family pizza night"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-sky-900 border-b-2 border-sky-200 pb-2 inline-block ml-auto",children:"Casual & Pizza"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(cj,{restaurant:i},s))})]})]}),a.length>0&&r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-sky-900 mb-8 text-center",children:"More Good Eats"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:a.map((i,s)=>r.jsx(cj,{restaurant:i},s))})]})]})})},wEe=()=>{v.useEffect(()=>{console.log("RockawaySeasideBeachPage mounted")},[]);const e=ke["rockaway-beach"],t=lt("Rockaway Beach"),n=ct("Rockaway Beach"),a=jn["rockaway-beach"],i="Scenic beach view of Rockaway Beach with Twin Rocks arch formation in the ocean, waves crashing on the sandy shore, and an overcast sky.",s=k$("rockaway-beach");return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Rockaway Beach Oregon Travel",description:n,url:"https://oregoncoastal.com/town/rockaway-beach",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:i,className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Rockaway Beach"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Rockaway Beach"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12",children:[r.jsx("div",{className:"lg:col-span-2",children:r.jsx(Cr,{townName:"Rockaway Beach",initialDescription:uEe},"RockawayBeach-About")}),r.jsx("div",{className:"lg:col-span-1",children:r.jsx(yt,{lat:e?.geo?.lat||45.6132,lon:e?.geo?.lng||-123.9437,townName:"Rockaway Beach"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Rockaway Beach",townSlug:"rockaway-beach",lat:e?.geo?.lat||45.6132,lon:e?.geo?.lng||-123.9437})})]}),r.jsx(Iu,{slotId:s.top}),r.jsx(ht,{townName:"Rockaway Beach",featuredImage:a,title:"Rockaway Beach in Photos"}),r.jsx(dt,{attractions:B3,townName:"Rockaway Beach"}),r.jsx(gEe,{attractions:B3}),r.jsx(yEe,{trails:hEe}),r.jsx(Iu,{slotId:s.middle}),r.jsx(vEe,{hotels:fEe}),r.jsx(Iu,{slotId:s.bottom}),r.jsx(bEe,{restaurants:mEe})]}),r.jsx(Ye,{})]})},jEe=`
<p class="text-xl md:text-2xl font-light text-gray-700 mb-8 leading-relaxed">
Seaside is the classic Oregon Coast destination, a place where generations of families have created summer memories for over a century. Anchored by the historic 1.5-mile Promenade and the famous Broadway turnaround, this bustling beach town offers a perfect mix of nostalgia, fun, and natural beauty.
</p>
<p class="text-lg text-gray-600 mb-6 leading-relaxed">
From feeding the seals at the seaside Aquarium to playing Skee-Ball at the Funland Arcade, Seaside embraces its reputation as the region's playground. The wide, sandy beach stretches for miles, providing ample space for kite flying, sandcastle building, and watching spectacular sunsets over the Pacific.
</p>
<p class="text-lg text-gray-600 leading-relaxed">
Beyond the cotton candy and bumper cars, Seaside serves as a gateway to serious outdoor adventure. Hikers flock to majestic Tillamook Head, kayakers explore the Necanicum estuary, and surfers catch waves at the cove. Whether you're seeking family entertainment or a basecamp for coastal exploration, Seaside delivers an energetic and welcoming experience.
</p>
`,z3=[{id:1,name:"The Promenade",description:"Built in the 1920s, this 1.5-mile paved walkway parallels the ocean and offers the perfect place for a morning jog, sunset stroll, or bike ride with ocean views.",details:"Historic Landmark",image:"https://images.unsplash.com/photo-1562315366-231a4773824f?auto=format&fit=crop&w=800&q=80"},{id:2,name:"Seaside Aquarium",description:"One of the oldest aquariums on the West Coast, famous for its resident harbor seals that visitors can feed. It offers a hands-on experience with local marine life.",details:"Family Favorite",image:"https://images.unsplash.com/photo-1621217030567-e17f7b3b3a3c?auto=format&fit=crop&w=800&q=80"},{id:3,name:"The Turnaround",description:"The official end of the Lewis and Clark Trail, marked by a bronze statue of the explorers. It is the central hub of Seaside where Broadway meets the beach.",details:"Historic Monument",image:"https://images.unsplash.com/photo-1620025701888-0f04dc7b88ec?auto=format&fit=crop&w=800&q=80"},{id:4,name:"Funland Arcade",description:"A nostalgic amusement center that has been entertaining families since 1931. Features classic Skee-Ball, bumper cars, and modern video games.",details:"Entertainment",image:"https://images.unsplash.com/photo-1559827260-dc66d52bef19?auto=format&fit=crop&w=800&q=80"},{id:5,name:"Necanicum Estuary",description:"Where the river meets the sea, this quiet estuary offers excellent opportunities for birdwatching, crabbing, and kayaking away from the busy downtown.",details:"Nature & Wildlife",image:"https://images.unsplash.com/photo-1441974231531-c6227db76b6e?auto=format&fit=crop&w=800&q=80"},{id:6,name:"Seaside Carousel Mall",description:"Home to a classic carousel that delights children and adults alike. The surrounding mall features unique shops, candy stores, and coffee spots.",details:"Shopping & Fun",image:"https://images.unsplash.com/photo-1513883049090-d0b7439799bf?auto=format&fit=crop&w=800&q=80"},{id:7,name:"Tillamook Head Trailhead",description:"Located at the south end of Seaside, this trailhead leads hikers up into the lush coastal rainforest for breathtaking views of the lighthouse and coastline.",details:"Hiking Access",image:"https://images.unsplash.com/photo-1615678457053-157d6e6a4577?auto=format&fit=crop&w=800&q=80"},{id:8,name:"Seaside Historical Society Museum",description:"A charming museum showcasing the history of Seaside as Oregon's first resort town, featuring Native American artifacts and logging history.",details:"Museum & Culture",image:"https://images.unsplash.com/photo-1582236372551-78926227b9c6?auto=format&fit=crop&w=800&q=80"}],NEe=[{name:"Tillamook Head Traverse",distance:"6.3 miles",difficulty:"Moderate/Hard",type:"Point-to-Point",description:"Follow in the footsteps of Lewis and Clark. This trail climbs through old-growth sitka spruce to high cliffs overlooking the Tillamook Rock Lighthouse.",icon:"Mountain",elevation:"1,200 ft"},{name:"Necanicum Estuary Park Loop",distance:"1.0 miles",difficulty:"Easy",type:"Loop",description:"A gentle boardwalk and paved path winding through wetlands. A perfect spot for birding and viewing elk that often graze in the estuary.",icon:"Bird",elevation:"Flat"},{name:"Mill Ponds Park Trail",distance:"0.8 miles",difficulty:"Easy",type:"Loop",description:"A peaceful nature walk around calm ponds located on the east side of town. Great for families and dog walking.",icon:"Footprints",elevation:"Flat"},{name:"Saddle Mountain Trail",distance:"5.2 miles",difficulty:"Strenuous",type:"Out & Back",description:"A short drive from Seaside, this challenging hike offers arguably the best panoramic views in the entire Coast Range on a clear day.",icon:"Summit",elevation:"1,600 ft"},{name:"Clatsop Loop Trail",distance:"2.8 miles",difficulty:"Moderate",type:"Loop",description:"Located within Ecola State Park (accessible via Tillamook Head trail or driving), this loop offers stunning ocean vistas and forest scenery.",icon:"Tree",elevation:"800 ft"},{name:"Canyon Road Hike",distance:"3.0 miles",difficulty:"Easy/Moderate",type:"Out & Back",description:"A logging road trail that takes you away from the beach crowds into the quiet coastal hills behind Seaside.",icon:"Path",elevation:"400 ft"}],kEe=[{name:"Motel 6 Seaside, OR",chain:"Motel 6",stars:2,price:"$",rating:"3.8/5",address:"2369 S Roosevelt Dr, Seaside, OR 97138",description:"A budget-friendly option located just off Highway 101, offering straightforward, clean accommodations. It's a convenient base camp for exploring the coast, featuring pet-friendly rooms and an indoor pool.",amenities:["Indoor Pool","Pet Friendly","Free WiFi","Free Parking","Accessible Rooms"],image:"https://images.unsplash.com/photo-1566665797739-1674de7a421a?auto=format&fit=crop&w=1000&q=80",affiliateUrl:"https://expedia.com/affiliates/seaside-hotels-motel-6-seaside.oHFkfmo",linkRel:"noopener sponsored"},{name:"Inn at the Shore",chain:"Independent",stars:3,price:"$$",rating:"4.4/5",address:"2275 S Promenade, Seaside, OR 97138",description:"Located at the quiet southern end of the Seaside Promenade, this charming inn offers spectacular ocean views, gas fireplaces, and private balconies, perfect for a relaxing getaway.",amenities:["Ocean Views","Free WiFi","Bicycles Available","Private Balconies","Fireplaces"],image:"https://images.unsplash.com/photo-1582719508461-905c673771fd?auto=format&fit=crop&w=1000&q=80",affiliateUrl:"https://expedia.com/affiliates/seaside-hotels-inn-at-the-shore.6OoUMLB",linkRel:"noopener sponsored"},{name:"Hi-Tide Oceanfront Inn",chain:"Independent",stars:2,price:"$$",rating:"4.0/5",address:"30 Ave G, Seaside, OR 97138",description:"Directly on the beach, offering comfortable rooms with fireplaces, kitchenettes, and stunning ocean views right from your private balcony. Renowned for its warm hospitality.",amenities:["Oceanfront Balconies","Kitchenettes","Gas Fireplaces","Free Fresh Cookies","Pet Friendly"],image:"https://images.unsplash.com/photo-1657456017642-9ab864c41240?auto=format&fit=crop&w=1000&q=80",affiliateUrl:"https://expedia.com/affiliate/MrBgPbe",linkRel:"noopener sponsored"},{name:"Ebb Tide Oceanfront Inn",chain:"Independent",stars:3,price:"$$",rating:"4.1/5",address:"300 N Promenade, Seaside, OR 97138",description:"Situated right on the sandy shore, providing excellent ocean views and a peaceful retreat. Wake up to the sound of crashing waves and enjoy easy walks along the historic Promenade.",amenities:["Ocean Views","Pet Friendly","Direct Beach Access","Free Breakfast","Indoor Pool"],image:"https://images.unsplash.com/photo-1578345535994-b6f7d1fa5b31?auto=format&fit=crop&w=1000&q=80",affiliateUrl:"https://expedia.com/affiliate/gCihDTZ",linkRel:"noopener sponsored"},{name:"Seashore Inn on the Beach",chain:"Independent",stars:3,price:"$$",rating:"4.2/5",address:"60 N Promenade, Seaside, OR 97138",description:"Providing comfortable oceanfront accommodations with immediate access to Seaside's famous paved Promenade. Unwind in the indoor pool and hot tub after exploring the coast.",amenities:["Indoor Pool & Spa","Free Light Breakfast","Direct Beach Access","Oceanfront","Free Parking"],image:"https://images.unsplash.com/photo-1613013441633-785518cf90b3?auto=format&fit=crop&w=1000&q=80",affiliateUrl:"https://expedia.com/affiliates/seaside-hotels-seashore-inn-on-the-beach.L90pfUw",linkRel:"noopener sponsored",bgClass:"bg-gradient-to-br from-blue-500 to-cyan-400"}],_Ee=[{id:1,name:"Mo's Seafood & Chowder",cuisine:"Seafood",description:"An Oregon Coast icon located right on the beach. Famous for their clam chowder, fish and chips, and casual family atmosphere.",price:"$$"},{id:2,name:"Nonni's Italian Bistro",cuisine:"Italian",description:"Authentic Italian cuisine featuring homemade pastas, fresh seafood dishes, and a warm, inviting atmosphere in downtown.",price:"$$$"},{id:3,name:"Dooger's Seafood & Grill",cuisine:"Seafood & Steak",description:"A local favorite for decades, known for its gluten-free options, clam chowder, and hearty seafood platters.",price:"$$"},{id:4,name:"Firehouse Grill",cuisine:"American / Burgers",description:"Housed in an old fire station, serving up gourmet burgers, breakfasts, and comfort food with a fun local history theme.",price:"$$"},{id:5,name:"Norma's Seafood & Steak",cuisine:"Fine Casual",description:"A staple of Seaside dining, offering high-quality steaks and fresh local seafood in a classic coastal setting.",price:"$$$"},{id:6,name:"Dundee's Bar & Grill",cuisine:"Pub Fare",description:"A lively sports bar and grill offering burgers, wings, and plenty of TVs to catch the game after a day at the beach.",price:"$$"},{id:7,name:"Grizzly Tuna",cuisine:"Fish & Chips",description:"A wildly popular drive-thru kiosk shaped like a giant tuna, serving perfectly fried fish and chips.",price:"$"},{id:8,name:"Osprey Cafe",cuisine:"Breakfast & Brunch",description:"A cozy spot offering delicious homemade breakfasts, international dishes, and excellent coffee.",price:"$$"},{id:9,name:"Seaside Brewing Co.",cuisine:"Brewery",description:"Located in the historic old city jail, serving craft beers brewed on-site and a menu of pub favorites.",price:"$$"},{id:10,name:"Tora Sushi",cuisine:"Japanese / Sushi",description:"Providing fresh sushi, sashimi, and Japanese entrees. A great alternative to traditional fried coastal fare.",price:"$$"},{id:11,name:"The Stand",cuisine:"Mexican",description:"A hidden gem for authentic, fresh Mexican food. Known for huge burritos and fresh salsa.",price:"$"},{id:12,name:"Twisted Fish Steakhouse",cuisine:"Steakhouse",description:"An upscale casual dining experience with a diverse menu of steaks, seafood, and cocktails.",price:"$$$"},{id:13,name:"Pig 'N Pancake",cuisine:"Breakfast",description:"An Oregon coast tradition. Famous for sourdough pancakes and hearty breakfasts served all day.",price:"$$"}],SEe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-blue-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-blue-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-blue-700 bg-blue-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),CEe=({attractions:e})=>!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-blue-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-blue-600 font-bold tracking-wider uppercase text-sm",children:"Family Fun & History"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Seaside"}),r.jsx("div",{className:"h-1 w-24 bg-blue-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(SEe,{attraction:t,index:n},n))})]})}),TEe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-blue-100 text-blue-800 border-blue-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},AEe=({trails:e})=>!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-blue-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From the famous Tillamook Head trail to gentle estuary walks, Seaside offers outdoor adventures for every level of hiker."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-blue-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(TEe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})}),PEe=({hotels:e})=>{const t="Seaside";return r.jsx(mt,{townName:t,fallbackHotels:e,affiliateHotels:st[t]})},dj=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-blue-100 hover:border-blue-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-blue-950",children:e?.name||"Restaurant Name"}),e?.cuisine&&r.jsx("span",{className:"text-xs font-medium text-blue-600 bg-blue-100 px-2 py-1 rounded-md",children:e.cuisine})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.price&&r.jsxs("div",{className:"pt-3 border-t border-blue-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-blue-800 uppercase tracking-wide",children:"Price Range"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.price})]})]}),$3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-blue-500 pl-3",children:n})})]}),EEe=({restaurants:e})=>{if(!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-blue-50 text-center",children:r.jsx("p",{className:"text-blue-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2,4),a=e.slice(4);return r.jsx("section",{className:"py-24 px-4 bg-blue-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-blue-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Seaside"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From fresh chowder on the beach to authentic Italian bistros, Seaside offers diverse flavors for the whole family."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-blue-900 border-b-2 border-blue-200 pb-2 inline-block",children:"Local Icons"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(dj,{restaurant:i},s))})]}),r.jsx($3,{src:"https://images.unsplash.com/photo-1615887023516-9b6c00f91ce9?auto=format&fit=crop&w=800&q=80",alt:"Seafood dining",caption:"Fresh catch and chowder"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx($3,{src:"https://images.unsplash.com/photo-1550547660-d9450f859349?auto=format&fit=crop&w=800&q=80",alt:"Burger and fries",caption:"Casual family favorites"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-blue-900 border-b-2 border-blue-200 pb-2 inline-block ml-auto",children:"Family Favorites"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(dj,{restaurant:i},s))})]})]}),a.length>0&&r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-blue-900 mb-8 text-center",children:"More Delicious Options"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:a.map((i,s)=>r.jsx(dj,{restaurant:i},s))})]})]})})},OEe=[{title:"Cannon Beach Chorus Concerts",date:"Seasonal (Check July/December)"},{title:"Buskers in the Park",date:"Thursdays (thru Sept 3, 2026)"},{title:"Stormy Weather Arts Festival",date:"November 6–8, 2026"},{title:"Cannon Beach Independence Day Parade",date:"July 4, 2027"},{title:"Seaside Beach Volleyball",date:"August 13–16, 2026"},{title:"Hood to Coast Relay Finish",date:"August 28, 2026"}],REe=()=>{v.useEffect(()=>{console.log("SeasidePage mounted")},[]);const e=ke.seaside,t=lt("Seaside"),n=ct("Seaside"),a=jn.seaside;return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Seaside Oregon Travel",description:n,url:"https://visitseaside.com",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Seaside, Oregon Promenade and Beach",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Seaside"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Seaside"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12",children:[r.jsx("div",{className:"lg:col-span-2",children:r.jsx(Cr,{townName:"Seaside",initialDescription:jEe},"Seaside-About")}),r.jsx("div",{className:"lg:col-span-1",children:r.jsx(yt,{lat:e?.geo?.lat||45.9932,lon:e?.geo?.lng||-123.9226,townName:"Seaside"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Seaside",townSlug:"seaside",lat:e?.geo?.lat||45.9932,lon:e?.geo?.lng||-123.9226,defaultStationId:"9437908"})})]}),r.jsx(ht,{townName:"Seaside",featuredImage:a,title:"Seaside in Photos"}),r.jsx(dt,{attractions:z3,townName:"Seaside"}),r.jsx(CEe,{attractions:z3}),r.jsx(AEe,{trails:NEe}),r.jsx($r,{events:OEe}),r.jsx(PEe,{hotels:kEe}),r.jsx(EEe,{restaurants:_Ee})]}),r.jsx(Ye,{})]})},IEe=`
<p>Just across the iconic Art Deco arches of the Yaquina Bay Bridge from Newport lies South Beach, a vibrant coastal community defined by its connection to nature, science, and the sea. While often grouped with its northern neighbor, South Beach boasts its own distinct identity as the "Adventure Side" of the bay, serving as the gateway to miles of pristine dunes, surfing jetties, and world-class marine education centers.</p>
<p>South Beach is perhaps best known as the home of the Oregon Coast Aquarium, one of the premier marine centers in the Pacific Northwest, and the Hatfield Marine Science Center. It is a place where visitors can walk through acrylic tunnels surrounded by sharks, interact with giant Pacific octopuses, and learn about the delicate coastal ecosystems. Beyond the science, South Beach State Park offers expansive sandy shores, paved biking trails, and some of the best camping and yurt stays on the coast.</p>
<p>Whether you're catching waves at the South Jetty, exploring the quiet old-growth spruce forests of Mike Miller Park, or enjoying fresh crab at the local fish market, South Beach offers a laid-back, outdoor-focused experience. It is the perfect base camp for families and explorers looking to immerse themselves in the wild beauty of the Central Oregon Coast.</p>
`,H3=[{name:"Oregon Coast Aquarium",description:"The crown jewel of South Beach. This world-class facility features the famous 'Passages of the Deep' tunnels where you walk beneath sharks and rays. Exhibits focus on local flora and fauna, including playful sea otters, puffins, and a touch pool for hands-on learning.",details:"Open daily. Timed entry tickets recommended."},{name:"South Beach State Park",description:"Spanning miles of shoreline south of the jetty, this park is a haven for outdoor enthusiasts. It features vast sandy beaches, a popular campground with yurts, and paved trails that wind through the dunes. It's also a prime spot for equestrian beach rides.",details:"Day use fee or State Park pass required."},{name:"Hatfield Marine Science Center",description:"Operated by Oregon State University, this research hub is open to the public with fascinating interactive exhibits. Learn about tsunamis, operate a robotic arm, and see the famous Giant Pacific Octopus. It's where real science meets public education.",details:"Donation based admission. Check schedule for octopus feedings."},{name:"South Jetty",description:"Extending far into the Pacific, the South Jetty protects the entrance to Yaquina Bay. It's a premier destination for surfers, storm watchers, and fishermen. The paved path along the jetty offers incredible views of the bridge and sunsets.",details:"Windy! Bring a jacket. Great for watching boat traffic."},{name:"Aquarium Village",description:"A charming collection of pirate-themed shops and boutiques located just outside the aquarium. Browse for unique gifts, antiques, and local art, or grab a sweet treat at the candy shop.",details:"Free parking. Fun photo ops with pirate statues."},{name:"Mike Miller Educational Park",description:"A hidden gem located just inland. This park preserves a tract of coastal forest that remains largely untouched. It's a quiet contrast to the windy beach, with towering trees, ferns, and a peaceful atmosphere.",details:"Free access. Great for birdwatching."},{name:"Brian Booth State Park (Ona Beach)",description:"Just a short drive south, this park offers a unique mix of beach and kayaking opportunities along Beaver Creek. It's a fantastic spot for paddling through quiet wetlands to spot herons and otters.",details:"Kayak rentals available nearby seasonally."}],MEe=[{name:"South Jetty Trail",distance:"2.5 miles (one way)",difficulty:"Easy",description:"A paved, ADA-accessible trail that runs from the state park day-use area all the way to the tip of the South Jetty. Perfect for biking, jogging, and watching the waves crash against the rocks."},{name:"Mike Miller Nature Loop",distance:"1.2 miles loop",difficulty:"Easy/Moderate",description:"This interpretive trail winds through diverse coastal vegetation, including spruce, pine, and salal. It includes bridges over wetlands and slight elevation changes, offering a secluded forest experience."},{name:"Cooper Ridge Nature Trail",distance:"1.7 miles loop",difficulty:"Moderate",description:"Located within South Beach State Park, this trail heads inland through dense shore pine forest and sits slightly higher, offering glimpses of the ocean through the trees."},{name:"Old Jetty Trail",distance:"1.0 mile",difficulty:"Easy",description:"A sandy and paved mix that follows the path of the original jetty structure. It connects the campground to the beach and is popular with campers for evening sunset walks."},{name:"Yaquina Bay Estuary Trail",distance:"0.75 miles",difficulty:"Easy",description:"A short educational walk near the Science Center that highlights the importance of the estuary. Interpretive signs explain the mudflat ecology and the birds that rely on it."},{name:"Beaver Creek Marsh Trail",distance:"3.5 miles varied",difficulty:"Easy",description:"Nearby at Ona Beach, these trails explore the marshland behind the beach. It's a flat, winding grassy path that is excellent for spotting wildlife away from the beach crowds."}],LEe=[{name:"Whaler's Rest RV & Camping Resort",category:"Resort/RV",description:"Located in a wooded setting just south of the main hub, this Thousand Trails resort offers cabins and RV spots. It features an indoor pool, mini-golf, and a lodge, making it a family favorite.",amenities:"Indoor pool, clubhouse, tennis courts, cabins."},{name:"La Quinta Inn & Suites",category:"Mid-Range",description:"Conveniently located walking distance to the Aquarium and Science Center. It offers modern, comfortable rooms and is very pet-friendly, making it a great base for aquarium visitors.",amenities:"Indoor pool, free breakfast, pet-friendly."},{name:"South Beach State Park Yurts",category:"Camping/Glamping",description:"For a rustic experience without the tent, the park's yurts are legendary. Heated and furnished with beds, they offer immediate access to the dunes and jetty trail.",amenities:"Fire pits, beach access, hot showers nearby."},{name:"Holiday Inn Express Newport",category:"Mid-Range",description:"Technically in South Beach, this reliable hotel sits close to the bridge. It's known for clean rooms and easy access to both the aquarium side and the downtown Newport side.",amenities:"Express Start breakfast, pool, fitness center."},{name:"Motel 6 Newport",category:"Budget",description:"A simple, clean, and budget-friendly option located right in South Beach. It's no-frills but places you minutes from the beach and the brewery.",amenities:"Kids stay free, pet-friendly, free coffee."}],DEe=[{name:"South Beach Fish Market",category:"Seafood/Casual",description:"Famous for their fresh crab and massive fish and chips portions. It's a market first, so you know the seafood is fresh. The outdoor seating is rustic and perfect for a sunny day.",features:"Fresh crab market, outdoor picnic tables, huge portions."},{name:"Rogue Ales & Spirits",category:"Brewery/Pub",description:"The massive headquarters of Rogue Nation. Located near the marina, you can tour the distillery and brewery before settling in for a Dead Guy Ale and a Kobe beef burger.",features:"Brewery tours, distillery, large gift shop."},{name:"Wolf Tree Brewery Taproom",category:"Brewery",description:"A local favorite located in the Aquarium Village. They specialize in spruce-tip ales and other unique, locally inspired brews in a cozy, cattle-ranch themed setting.",features:"Locally sourced ingredients, patio seating, dog friendly."},{name:"Ferry Slip Cafe",category:"Breakfast/Diner",description:"A classic diner located near the marina. Known for hearty fisherman's breakfasts, biscuits and gravy, and a view of the boats in the harbor.",features:"Harbor views, homestyle breakfast, early hours."}],BEe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),FEe=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Explore the Adventure Side"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in South Beach"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(BEe,{attraction:t,index:n},n))})]})})),zEe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},$Ee=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Trails, Dunes & Jetties"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Discover the diverse landscapes of South Beach, from the wind-swept jetty and sandy dunes to quiet coastal forests and estuary walks."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(zEe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),HEe=({hotels:e})=>{const t="South Beach",n=["Whaler's Rest RV & Camping Resort","South Beach State Park Yurts","Coming Soon"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},W3=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md whitespace-nowrap",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),V3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),WEe=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2,4);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in South Beach"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Fresh seafood markets, world-famous breweries, and hearty breakfasts fuel your adventures on this side of the bay."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Fresh & Famous"}),r.jsx("div",{className:"grid gap-6",children:t.map((a,i)=>r.jsx(W3,{restaurant:a},i))})]}),r.jsx(V3,{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80",alt:"Fresh fish market display",caption:"Local markets serving the day's catch"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(V3,{src:"https://images.unsplash.com/photo-1514933651103-005eec06c04b?auto=format&fit=crop&w=800&q=80",alt:"Brewery interior",caption:"Craft brews and casual bites"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Casual & Craft"}),r.jsx("div",{className:"grid gap-6",children:n.map((a,i)=>r.jsx(W3,{restaurant:a},i))})]})]})]})})},VEe=()=>{v.useEffect(()=>{console.log("SouthBeachPage mounted")},[]);const e=ke["south-beach"],t=lt("South Beach"),n=ct("South Beach"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e1e041b89722871843a1b35e49288748.webp";return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"South Beach, Oregon coastline",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"South Beach"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"South Beach"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto town-grid-layout mb-12",children:[r.jsx("div",{className:"town-about-section",children:r.jsx(Cr,{townName:"South Beach",initialDescription:IEe})}),r.jsx("div",{className:"town-weather-section",children:r.jsx(yt,{lat:e?.geo?.lat||44.6062,lon:e?.geo?.lng||-124.0434,townName:"South Beach"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"South Beach",townSlug:"south-beach",lat:e?.geo?.lat||44.6062,lon:e?.geo?.lng||-124.0434})})]}),r.jsx(ht,{townName:"South Beach",featuredImage:a,title:"South Beach Gallery"}),r.jsx(Mt,{name:"South Beach, Oregon",description:n,image:a,url:window.location.href,geo:{latitude:44.6333,longitude:-124.0667}}),r.jsx(dt,{attractions:H3,townName:"South Beach"}),r.jsx(FEe,{attractions:H3}),r.jsx($Ee,{trails:MEe}),r.jsx(HEe,{hotels:LEe}),r.jsx(WEe,{restaurants:DEe})]}),r.jsx(Ye,{})]})},UEe=`
<p>Tillamook is more than just a name on a cheese wrapper—it's a vibrant agricultural hub surrounded by some of the Oregon Coast's most dramatic landscapes. Known globally for the Tillamook Creamery, the town sits in a lush valley where five rivers converge into Tillamook Bay. It's a place where rolling green pastures meet the rugged Pacific Ocean, offering a unique blend of farming heritage and coastal wildness.</p>
<p>Beyond the dairy farms, Tillamook is a gateway to adventure. Aviation enthusiasts flock to the massive WWII-era blimp hangar at the Air Museum, while nature lovers explore the waterfalls of the Tillamook State Forest or the scenic beauty of the Three Capes Scenic Loop. Whether you're kayaking the bay, hiking Kings Mountain, or sampling the region's famous ice cream and cheese, Tillamook offers a rich, flavorful, and authentic Oregon experience.</p>
`,U3=[{name:"Tillamook Creamery",description:"The most famous attraction in town. Take a self-guided tour of the factory, learn about the cheese-making process, and visit the massive dining hall for fresh ice cream, cheese curds, and gourmet burgers.",details:"Food & Industry"},{name:"Tillamook Air Museum",description:"Housed in a colossal WWII blimp hangar (Hangar B), this museum features a fascinating collection of vintage aircraft and aviation artifacts. The structure itself is an architectural marvel.",details:"History & Aviation"},{name:"Blue Heron French Cheese Company",description:"A charming destination featuring a petting farm, vintage farm equipment, a deli with wine tasting, and unique gifts. Famous for its brie and other specialty cheeses.",details:"Farm & Food"},{name:"Tillamook County Pioneer Museum",description:"Explore the rich history of the region across three floors of exhibits, including Native American artifacts, logging history, and a replica pioneer home. A deep dive into local heritage.",details:"Museum"},{name:"Tillamook Forest Center",description:"Located inland on the Wilson River Highway, this center educates visitors about the Tillamook Burn and forest management through interactive exhibits and a suspension bridge over the river.",details:"Nature & Education"},{name:"Latimer Quilt & Textile Center",description:"A unique museum dedicated to the preservation and promotion of textile arts. Features beautiful rotating exhibits of vintage quilts, weaving, and spinning demonstrations.",details:"Arts & Culture"},{name:"Three Capes Scenic Loop",description:"One of the most spectacular drives on the coast. Though parts of the original loop are closed, you can still access Cape Meares, Cape Lookout, and Cape Kiwanda for breathtaking views.",details:"Scenic Drive"},{name:"Munson Creek Falls",description:"Home to the tallest waterfall in the Coast Range. A short, easy trail leads through an old-growth forest to the base of the impressive 319-foot cascading falls.",details:"Nature"}],qEe=[{name:"Cape Lookout Trail",distance:"4.8 miles",difficulty:"Moderate",elevation:"930 ft",description:"A stunning hike along a narrow basalt promontory jutting two miles into the ocean. Offers incredible opportunities for whale watching and views of the coastline."},{name:"Cape Meares Lighthouse Trail",distance:"0.5 miles",difficulty:"Easy",elevation:"Minimal",description:"A paved path leads to the historic lighthouse and the famous 'Octopus Tree.' The cliffs here are excellent for spotting nesting seabirds."},{name:"Munson Creek Falls Trail",distance:"0.6 miles",difficulty:"Easy",elevation:"100 ft",description:"A family-friendly walk through lush forest to view the three-tiered waterfall. The trail is accessible and offers a peaceful retreat into nature."},{name:"Kings Mountain Trail",distance:"5.0 miles",difficulty:"Strenuous",elevation:"2,500 ft",description:"A steep, challenging climb in the Tillamook State Forest that rewards hikers with panoramic views of the Coast Range and, on clear days, the ocean."},{name:"Wilson River Trail",distance:"Varies",difficulty:"Moderate",elevation:"Varies",description:"A long-distance trail following the Wilson River. Sections offer access to swimming holes, waterfalls (like Lester Creek Falls), and beautiful forest scenery."},{name:"Bayocean Spit Trail",distance:"7.8 miles",difficulty:"Easy/Moderate",elevation:"Flat",description:"Hike along the sandy spit that was once the site of a resort town swallowed by the sea. A loop trail offers bay and ocean views with diverse wildlife."},{name:"Kilchis Point Reserve Trails",distance:"2.0 miles",difficulty:"Easy",elevation:"Flat",description:"Located in nearby Bay City, these interpretive trails wander through wetlands and spruce forests to the edge of Tillamook Bay. Great for birdwatching."}],GEe=[{name:"Ashley Inn of Tillamook",category:"Hotel",description:"A comfortable and centrally located hotel offering spacious rooms, an indoor pool, and complimentary breakfast. A reliable choice for families.",amenities:"Pool, Breakfast, WiFi"},{name:"Tillamook Inn",category:"Inn/Motel",description:"A recently updated property providing modern, clean accommodations near the town center. Convenient access to the Creamery and Highway 101.",amenities:"Renovated, Parking"},{name:"Sheltered Nook on Tillamook Bay",category:"Tiny Homes",description:"Located in Bay City, this unique lodging features fully equipped tiny homes focused on sustainability. Offers a community feel with a shared fire pit.",amenities:"Kitchens, Pet Friendly"},{name:"Vacation Rentals",category:"Rentals",description:"Numerous private homes and cabins are available throughout the valley and near the bay, offering more space and privacy for groups or longer stays.",amenities:"Various"},{name:"Campgrounds",category:"Camping",description:"The area boasts excellent camping, including county parks like Barview Jetty and Trask River, offering tent and RV sites in scenic settings.",amenities:"Nature, RV Sites"},{name:"Nearby Options",category:"Info",description:"For oceanfront stays, look to nearby Oceanside, Netarts, or Rockaway Beach, all just a short drive from Tillamook's central amenities.",amenities:"Beach Access"}],KEe=[{name:"Pacific Restaurant",category:"Seafood/Steak",description:"A local favorite for fine dining in a relaxed atmosphere. Known for fresh local seafood, high-quality steaks, and excellent service.",features:"Upscale, Cocktails"},{name:"Alice's Country House",category:"American",description:"A classic country diner serving hearty portions of comfort food. Famous for their prime rib and friendly, home-style vibe.",features:"Comfort Food, Portions"},{name:"La Mexicana Restaurant",category:"Mexican",description:"Authentic Mexican cuisine made with fresh ingredients. A vibrant spot for tacos, enchiladas, and margaritas in the heart of town.",features:"Authentic, Family Friendly"},{name:"Rodeo Steakhouse and Grill",category:"Steakhouse",description:"A western-themed steakhouse offering a robust menu of steaks, burgers, and salads. A fun atmosphere perfect for a hearty dinner.",features:"Themed, Hearty"},{name:"The Fern Cafe",category:"Cafe/Diner",description:"A hidden gem for breakfast and lunch. Loved by locals for their omelets, pancakes, and classic diner fare served with a smile.",features:"Breakfast, Local Spot"},{name:"Dutch Mill Cafe",category:"Diner",description:"A nostalgic 50s-style diner serving burgers, shakes, and breakfast all day. A fun stop for families and retro enthusiasts.",features:"Retro Vibe, Shakes"},{name:"JAndy Oyster Co.",category:"Seafood",description:"Located in downtown Tillamook, offering fresh oysters grown in Netarts Bay. A casual spot for raw, grilled, or fried oysters and chowder.",features:"Fresh Oysters, Casual"},{name:"Werner Beef & Brew",category:"Brewpub",description:"Attached to the Werner jerky factory, this taproom serves their own craft beers alongside a menu featuring their high-quality meats.",features:"Craft Beer, Deli Meats"},{name:"Tillamook Country Smoker",category:"Deli/Outlet",description:"The factory outlet for the famous jerky brand. Offers great deals on smoked meats and features a deli counter for quick, savory bites.",features:"Jerky, Snacks"},{name:"Five Rivers Coffee Roasters",category:"Coffee",description:"The place for serious coffee lovers. Roasting their own beans on-site, they offer excellent espresso drinks and pastries in a cozy setting.",features:"Local Roast, Espresso"}],ZEe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-green-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-green-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed text-sm",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-xs font-bold text-green-700 bg-green-50/50 inline-block px-3 py-1 rounded-md uppercase tracking-wider",children:e.details})})]})}),YEe=({attractions:e})=>!e||e.length===0?null:r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-green-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-green-600 font-bold tracking-wider uppercase text-sm",children:"Explore the Valley"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Tillamook Attractions"}),r.jsx("div",{className:"h-1 w-24 bg-green-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6",children:e.map((t,n)=>r.jsx(ZEe,{attraction:t,index:n},n))})]})}),JEe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},XEe=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-green-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Discover lush rainforests, waterfalls, and dramatic capes just minutes from town."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-green-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(JEe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),QEe=({hotels:e})=>{const t="Tillamook",n=["Vacation Rentals","Campgrounds","Nearby Options","Sheltered Nook on Tillamook Bay"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},uj=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-green-100 hover:border-green-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-green-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-green-600 bg-green-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-green-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-green-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),q3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-green-500 pl-3",children:n})})]}),e4e=({restaurants:e})=>{if(v.useEffect(()=>{(!e||e.length===0)&&console.warn("RestaurantsSection: No restaurant data provided")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-green-50 text-center",children:r.jsx("p",{className:"text-green-900",children:"Dining information currently unavailable."})});const t=e.slice(0,4),n=e.slice(4,7),a=e.slice(7);return r.jsx("section",{className:"py-24 px-4 bg-green-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-green-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Tillamook"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From world-famous cheese and ice cream to fresh local seafood and hearty ranch-style meals."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-green-900 border-b-2 border-green-200 pb-2 inline-block",children:"Local Favorites"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(uj,{restaurant:i},s))})]}),r.jsx(q3,{src:"https://images.unsplash.com/photo-1544025162-d76694265947?auto=format&fit=crop&w=800&q=80",alt:"Hearty steak dinner",caption:"Hearty meals for coastal adventurers"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(q3,{src:"https://images.unsplash.com/photo-1565299624946-b28f40a0ae38?auto=format&fit=crop&w=800&q=80",alt:"Pizza and casual food",caption:"Casual bites and family spots"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-green-900 border-b-2 border-green-200 pb-2 inline-block ml-auto",children:"Casual Dining"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(uj,{restaurant:i},s))})]})]}),r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-green-900 mb-8 text-center",children:"Cafes & Quick Bites"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:a.map((i,s)=>r.jsx(uj,{restaurant:i},s))})]})]})})},t4e=[{name:"Munson Creek Falls",difficulty:"Easy",distance:"0.5 miles",accessibility:4,description:"At 266 feet, Munson Creek Falls is the tallest waterfall in the Oregon Coast Range - and one of the easiest to reach. A short, paved trail leads through massive old-growth Sitka spruce to a stunning viewpoint.",notes:"Fully paved trail makes it wheelchair and stroller accessible. Can be crowded on summer weekends. No facilities on-site."},{name:"Nehalem Falls",difficulty:"Easy",distance:"0.5 miles",accessibility:4,description:"A beautiful 100-foot waterfall on the Nehalem River, easily accessible from Highway 101. Less dramatic than Munson Creek but offers a quieter, more intimate experience.",notes:"Very short walk from parking area. Good for families with young children. Swimming holes nearby in summer."}],n4e=()=>{v.useEffect(()=>{console.log("TillamookPage mounted")},[]);const e=ke.tillamook,t=lt("Tillamook"),n=ct("Tillamook"),a=jn.tillamook;return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Tillamook Oregon Travel",description:n,url:"https://oregoncoastal.com/town/tillamook",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Tillamook, Oregon Countryside",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Tillamook"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Tillamook"}),r.jsx("div",{className:"h-1.5 w-32 bg-green-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Tillamook Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:UEe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Famous for its dairy heritage, lush valleys, and gateway to scenic coastal bays."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||45.4562,lon:e?.geo?.lng||-123.844,townName:"Tillamook"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Tillamook",townSlug:"tillamook",lat:e?.geo?.lat||45.4562,lon:e?.geo?.lng||-123.844,defaultStationId:"9437331"})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Tillamook",featuredImage:a,title:"Tillamook in Photos"})}),r.jsx(dt,{attractions:U3,townName:"Tillamook"}),r.jsx(YEe,{attractions:U3}),r.jsx(XEe,{trails:qEe}),r.jsx(Eh,{townName:"Tillamook",waterfalls:t4e,headerTitle:"Nearby Waterfalls",headerSubtitle:"Tillamook County's misty Coast Range is home to the tallest waterfall in the Oregon Coast Range - and it's surprisingly easy to reach.",ctaText:"Spending the night near Tillamook? Stay in Tillamook and use it as your base for Munson Creek Falls, the Tillamook Creamery, and Three Capes Scenic Route."}),r.jsx(QEe,{hotels:GEe}),r.jsx(e4e,{restaurants:KEe})]}),r.jsx(Ye,{})]})},r4e=`
<p>Located just seven miles inland from the Pacific Ocean on the winding Yaquina River, Toledo is a town with grit, history, and a rapidly growing artistic soul. Often overshadowed by its coastal neighbor Newport, Toledo offers a more authentic, rooted experience of the Oregon Coast region. Known as the "Industrial Heart" of Lincoln County due to its historic paper mill and timber legacy, it has successfully pivoted to become a vibrant hub for artists and makers.</p>
<p>The town's steep hillsides, lined with Victorian homes and winding streets, have earned it comparisons to a miniature San Francisco. Main Street is a charming throwback, featuring antique stores, art galleries, and murals that celebrate the town's history. Toledo is famous for its annual Art Walk and Labor Day festival, which highlight the community's dual identity as a working-class stronghold and a creative sanctuary.</p>
<p>Outdoor lovers appreciate Toledo as a gateway to the diverse Yaquina River ecosystem. Whether you're paddling the calm waters, fishing for Chinook salmon, or exploring the nearby coastal forests, Toledo provides a quieter, warmer, and often sunnier alternative to the immediate coast. It is a place where industry meets artistry, offering a warm welcome to those who venture just a few minutes off Highway 101.</p>
`,G3=[{name:"Toledo History Center",description:"Located on Main Street, this museum offers a fascinating look into the region's logging and railroad history. Exhibits feature vintage equipment, photographs of the early 20th century, and stories of the families who built the town.",details:"Free admission. Open weekends and during summer."},{name:"Yaquina River Museum of Art",description:"A testament to Toledo's artistic revival, this museum showcases works by local and regional artists. It focuses on landscape painting and sculpture that reflect the beauty of the Yaquina watershed.",details:"Located in the heart of downtown. Check website for exhibition schedules."},{name:"Port of Toledo Waterfront Park",description:"A beautifully maintained park along the river featuring a public boat launch, picnic areas, and a viewing platform. It's the perfect spot to watch the fishing boats and occasionally see the historic sternwheeler.",details:"Great for picnics and launching kayaks."},{name:"Toledo Waterfront Market",description:"Held weekly during the summer at Memorial Field, this market features local produce, artisan crafts, and live music. It's a gathering place for the community and a great spot to find unique souvenirs.",details:"Thursdays in summer. Family-friendly."},{name:"Michael Gibbons Signature Gallery",description:"Housed in a historic vicarage, this gallery features the work of the late Michael Gibbons, a renowned landscape painter who championed Toledo as an art community. The garden behind the gallery is also a work of art.",details:"Open by appointment or during special events."},{name:"The Timbers",description:"A local landmark bar and grill that has served the community for decades. It's known for its friendly atmosphere, stiff drinks, and being the place where locals gather after a shift at the mill.",details:"21+ establishment. Cash only mostly."},{name:"Paddle Park",description:"Located just upstream, this park is designed specifically for non-motorized boats. It offers a quiet place to launch a canoe or kayak and explore the tidal marshes of the Yaquina River.",details:"Life jackets required on the water."}],a4e=[{name:"Yaquina Bay Estuary Trail",distance:"1.5 miles",difficulty:"Easy",description:"While technically closer to Newport, this trail system extends along the river towards Toledo. It offers excellent birdwatching opportunities, especially for herons and egrets in the tidal flats."},{name:"Ollala Lake Trail",distance:"1.0 mile loop",difficulty:"Easy",description:"Located a short drive northeast of Toledo, this reservoir offers a peaceful loop trail through the forest. It's a popular spot for trout fishing and family picnics away from the coastal wind."},{name:"Big Creek Park Trail",distance:"2.0 miles varied",difficulty:"Moderate",description:"A local favorite for dog walkers and joggers. The trails wind through second-growth forest and offer a quiet escape right on the edge of town."},{name:"Mill Creek Ridge",distance:"3.5 miles",difficulty:"Moderate/Hard",description:"Old logging roads open to hikers that offer elevation gain and views of the industrial valley and the river winding towards the ocean."},{name:"Harris Bridge Vineyard Walk",distance:"0.5 miles",difficulty:"Easy",description:"A gentle stroll through a historic vineyard located near the covered Harris Bridge. It's scenic, romantic, and often ends with a wine tasting."}],i4e=[{name:"Toledo Riverfront Hotel",category:"Budget/Mid-Range",description:"A simple, clean hotel located right on the river. Rooms offer views of the water and the historic bridge. It's a quiet alternative to the busy hotels in Newport.",amenities:"Free Wi-Fi, river views, walking distance to downtown."},{name:"Grandma's Cottage",category:"Vacation Rental",description:"A charming historic home available for rent. It features vintage decor, a full kitchen, and a lovely garden, offering a true 'home away from home' experience.",amenities:"Full kitchen, garden, 2 bedrooms."},{name:"Ollala Lake Campground",category:"Camping",description:"For those who prefer to sleep under the stars, this campground offers lakeside sites surrounded by heavy timber. It's peaceful, secluded, and great for fishing.",amenities:"Boat ramp, fishing docks, potable water."},{name:"The Landmark Inn",category:"Boutique/Historic",description:"Currently undergoing renovation, this historic building is a centerpiece of Toledo. When open, it offers themed rooms that celebrate the town's timber heritage.",amenities:"Central location, historic charm."}],s4e=[{name:"Timbers Restaurant & Lounge",category:"American/Pub",description:"The go-to spot for burgers, steaks, and prime rib on weekends. It has a rustic, logging-camp vibe and serves hearty portions that won't leave you hungry.",features:"Prime rib specials, full bar, lottery games."},{name:"Pig Feathers BBQ",category:"BBQ",description:"Authentic, slow-smoked BBQ located right in town. Known for their brisket, pulled pork, and house-made sauces. The smell alone draws you in from the street.",features:"Smoked meats, catering, outdoor seating."},{name:"Holy Toledo!",category:"Cafe/Bar",description:"A quirky local spot offering great coffee in the morning and beers in the evening. It's a community hub where artists and mill workers rub elbows.",features:"Live music, local art on walls, craft beer."},{name:"Cobblestone Pizza Co.",category:"Pizza/Italian",description:"Family-friendly pizza parlor serving hand-tossed pies with generous toppings. Their calzones are legendary, and the salad bar is always fresh.",features:"Family style, delivery, arcade games."}],o4e=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),l4e=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Discover the Heritage"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Toledo"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(o4e,{attraction:t,index:n},n))})]})})),c4e=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},d4e=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & River Walks"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Explore the lush forests and quiet riverbanks of the Yaquina valley. Toledo offers peaceful trails away from the coastal winds."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(c4e,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),u4e=({hotels:e})=>{const t="Toledo",n=["Ollala Lake Campground","Coming Soon","Toledo Riverfront Hotel","Grandma's Cottage"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},K3=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md whitespace-nowrap",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),Z3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),h4e=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2,4);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Toledo"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Hearty pub fare, authentic BBQ, and community cafes define the flavor of this industrial arts town."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Local Legends"}),r.jsx("div",{className:"grid gap-6",children:t.map((a,i)=>r.jsx(K3,{restaurant:a},i))})]}),r.jsx(Z3,{src:"https://images.unsplash.com/photo-1544025162-d76694265947?auto=format&fit=crop&w=800&q=80",alt:"Hearty BBQ ribs",caption:"Comfort food done right"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(Z3,{src:"https://images.unsplash.com/photo-1511920170033-f8396924c348?auto=format&fit=crop&w=800&q=80",alt:"Coffee shop interior",caption:"Coffee, beer, and community"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"Casual Eats"}),r.jsx("div",{className:"grid gap-6",children:n.map((a,i)=>r.jsx(K3,{restaurant:a},i))})]})]})]})})},f4e=()=>{v.useEffect(()=>{console.log("ToledoPage mounted")},[]);const e=ke.toledo,t=lt("Toledo"),n=ct("Toledo"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/457d2a9a2f4957025e208eca9ea65735.webp";return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Toledo, Oregon scenic view",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Toledo"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Toledo"})]})]}),r.jsxs("main",{className:"w-full",children:[r.jsx(ft,{townName:"Toledo",townSlug:"toledo",lat:e?.geo?.lat,lon:e?.geo?.lng}),r.jsx("section",{className:"py-12 md:py-16 px-6 bg-white",children:r.jsxs("div",{className:"max-w-4xl mx-auto text-center",children:[r.jsx("h2",{className:"text-4xl md:text-5xl font-semibold text-gray-900 mb-8 tracking-tight leading-tight",children:"About Toledo Oregon"}),r.jsx("div",{className:"prose prose-lg md:prose-xl text-gray-700 leading-loose mx-auto",dangerouslySetInnerHTML:{__html:r4e}}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full mt-10"})]})}),r.jsx(ht,{townName:"Toledo",featuredImage:a,title:"Toledo Gallery"}),r.jsx(Mt,{name:"Toledo, Oregon",description:n,image:a,url:window.location.href,geo:{latitude:44.6215,longitude:-123.9373}}),r.jsx(dt,{attractions:G3,townName:"Toledo"}),r.jsx(l4e,{attractions:G3}),r.jsx(d4e,{trails:a4e}),r.jsx(u4e,{hotels:i4e}),r.jsx(h4e,{restaurants:s4e})]}),r.jsx(Ye,{})]})},m4e=`
<p class="text-xl md:text-2xl font-light text-gray-700 mb-8 leading-relaxed">
Tolovana Park is the quiet, serene soul of the Cannon Beach area. Located just south of the bustling downtown, this community offers a more relaxed pace while providing some of the most spectacular views of Haystack Rock and the Oregon coastline.
</p>
<p class="text-lg text-gray-600 mb-6 leading-relaxed">
Anchored by the expansive Tolovana Beach State Recreation Site, this area is a favorite for families, beachcombers, and those seeking a peaceful retreat. The wide, sandy shoreline is perfect for kite flying, evening bonfires, and long walks where the rhythm of the tides sets the schedule.
</p>
<p class="text-lg text-gray-600 leading-relaxed">
While it feels like a hidden gem, Tolovana Park boasts its own unique character with charming local pubs, world-class bakeries, and luxury oceanfront lodges. It serves as the perfect basecamp for exploring the magic of the North Coast without the crowds.
</p>
`,Y3=[{id:1,name:"Tolovana Beach State Recreation Site",description:"The heart of the community, offering easy beach access, a playground, and plenty of parking. It's the premier spot for launching expansive beach walks south toward Arch Cape or north to Haystack Rock.",details:"State Park Access",image:"https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=800&q=80"},{id:2,name:"Haystack Rock (South View)",description:"While often associated with downtown Cannon Beach, the view of Haystack Rock from Tolovana offers a unique, less crowded perspective. At low tide, the walk to the rock is a pleasant mile-long stroll.",details:"Iconic Landmark",image:"https://images.unsplash.com/photo-1533420803444-a0293144eb7e?auto=format&fit=crop&w=800&q=80"},{id:3,name:"Tolovana Arts Colony",description:"A nonprofit organization that brings the community together through art. They host festivals, workshops, and concerts, reflecting the deep artistic roots of the area.",details:"Culture & Arts",image:"https://images.unsplash.com/photo-1513883049090-d0b7439799bf?auto=format&fit=crop&w=800&q=80"},{id:4,name:"Lost Art of Nursing Museum",description:"A unique, small private museum dedicated to the history of nursing. It features antique medical equipment, uniforms, and stories from the profession's past.",details:"History Museum",image:"https://images.unsplash.com/photo-1582236372551-78926227b9c6?auto=format&fit=crop&w=800&q=80"},{id:5,name:"Sea Level Bakery + Coffee",description:"More than just a bakery, Sea Level is a morning ritual for locals and visitors. Famous for their scratch-made breads and pastries that sell out daily.",details:"Local Favorite",image:"https://images.unsplash.com/photo-1509440159596-0249088772ff?auto=format&fit=crop&w=800&q=80"},{id:6,name:"Fresh Foods Market",description:"A gourmet marketplace that anchors the commercial district. It's the place to find local organic produce, fine wines, and artisanal snacks for a beach picnic.",details:"Marketplace",image:"https://images.unsplash.com/photo-1542838132-92c53300491e?auto=format&fit=crop&w=800&q=80"},{id:7,name:"Silver Point Interpretive Overlook",description:"Located just south of Tolovana Park on Highway 101, this overlook provides sweeping panoramic views of the coastline, including Jockey Cap rock and the endless Pacific horizon.",details:"Scenic Viewpoint",image:"https://images.unsplash.com/photo-1615678457053-157d6e6a4577?auto=format&fit=crop&w=800&q=80"}],p4e=[{name:"Tolovana Beach Walk",distance:"2.0 miles",difficulty:"Easy",type:"Out & Back",description:"A classic, flat beach walk stretching from the recreation site north to Haystack Rock. Best enjoyed at low tide for exploring tide pools.",icon:"Ocean",elevation:"Flat"},{name:"Arcadia Beach Trail",distance:"1.0 miles",difficulty:"Easy",type:"Beach Walk",description:"Just a short drive south, Arcadia Beach offers sea caves and tide pools. The walk connects to Lion Rock at low tide.",icon:"Wave",elevation:"Flat"},{name:"Cedar Street Path",distance:"0.5 miles",difficulty:"Easy",type:"Loop",description:"A gentle neighborhood walk winding through the charming cottages and quiet streets of Tolovana Park, perfect for a morning coffee stroll.",icon:"Footprints",elevation:"Flat"},{name:"Oswald West - Short Sand Beach",distance:"1.2 miles",difficulty:"Easy/Moderate",type:"Out & Back",description:"Located 10 minutes south, this trail takes you through a majestic old-growth rainforest to a popular surfer's cove protected from the wind.",icon:"Tree",elevation:"100 ft"},{name:"Angora Hiking Trail",distance:"1.5 miles",difficulty:"Moderate",type:"Out & Back",description:"An obscure, unmaintained trail south of town that leads into the coastal hills. Offers solitude and a rugged forest experience for adventurous hikers.",icon:"Mountain",elevation:"400 ft"}],g4e=[{id:1,name:"Tolovana Inn",category:"Oceanfront Resort",description:"A landmark hotel offering spacious suites with full kitchens and fireplaces. Famous for its indoor saltwater pool and direct access to the state recreation site.",amenities:["Indoor Pool","Pet Friendly","Kitchens","Ocean Views"]},{id:2,name:"The Ocean Lodge",category:"Luxury Lodge",description:"Reminiscent of a 1940s grand resort, featuring massive Douglas fir beams and a two-story stone fireplace in the lobby. A romantic and upscale escape.",amenities:["Fireplaces","Cookie Hour","Continental Breakfast","Beachfront"]},{id:3,name:"Inn at Cannon Beach",category:"Garden Cottage",description:"Set one block from the beach, this inn features cottage-style rooms arranged around a lush garden courtyard and bunny-filled lawn. Quiet and charming.",amenities:["Free Breakfast","Garden Courtyard","Art Gallery","Pet Friendly"]}],x4e=[{id:1,name:"Warren House Pub",cuisine:"Pub Fare",description:"A cozy, historic spot that feels like a local's secret. Serving hearty burgers, fish and chips, and cold microbrews in a relaxed atmosphere away from the crowds.",price:"$$"},{id:2,name:"Mo's Cannon Beach",cuisine:"Seafood",description:"The Tolovana location of the Oregon Coast icon. Famous for its clam chowder, oceanfront patio dining, and family-friendly vibe.",price:"$$"},{id:3,name:"Sea Level Bakery + Coffee",cuisine:"Bakery / Cafe",description:"Renowned for made-from-scratch breads, pastries, and excellent coffee. A morning staple for anyone staying in the south end of town.",price:"$"},{id:4,name:"Fresh Foods Deli",cuisine:"Deli / Takeout",description:"Inside the Fresh Foods marketplace, offering gourmet sandwiches, salads, and hot soups perfect for taking down to a beach bonfire.",price:"$$"},{id:5,name:"Stephanie Inn Dining Room",cuisine:"Fine Dining",description:"An exclusive, prix-fixe dining experience offering seasonal Northwest cuisine. Reservations are essential for this high-end culinary journey.",price:"$$$$"},{id:6,name:"Surfcrest Market Pizza",cuisine:"Pizza / Casual",description:"A hidden spot for grabbing a quick, delicious pizza or ice cream cone. Conveniently located for beachgoers needing a midday refuel.",price:"$"},{id:7,name:"Wayfarer Restaurant",cuisine:"Seafood & Steak",description:"Technically just north of Tolovana, but easily walkable along the beach. Offers classic coastal dining with stunning views of Haystack Rock.",price:"$$$"},{id:8,name:"Pelican Brewing",cuisine:"Brewery",description:"Located a short distance north, offering award-winning beers and pub food in a modern, airy setting with an open kitchen.",price:"$$"}],y4e=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-indigo-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-indigo-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-indigo-700 bg-indigo-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),v4e=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-indigo-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-indigo-600 font-bold tracking-wider uppercase text-sm",children:"Peaceful & Scenic"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Tolovana"}),r.jsx("div",{className:"h-1 w-24 bg-indigo-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(y4e,{attraction:t,index:n},n))})]})})),b4e=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-teal-100 text-teal-800 border-teal-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},w4e=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-indigo-600"}),"Hiking Trails & Beach Walks"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Tolovana Park is a walker's paradise. Enjoy miles of flat sandy beach, explore nearby state parks, or discover hidden trails in the coastal forests."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-indigo-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(b4e,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),j4e=({hotels:e})=>{const t="Tolovana",n=["Coming Soon"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},hj=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-blue-100 hover:border-blue-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-blue-950",children:e?.name||"Restaurant Name"}),e?.cuisine&&r.jsx("span",{className:"text-xs font-medium text-blue-600 bg-blue-100 px-2 py-1 rounded-md",children:e.cuisine})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.price&&r.jsxs("div",{className:"pt-3 border-t border-blue-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-blue-800 uppercase tracking-wide",children:"Price Range"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.price})]})]}),J3=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-blue-500 pl-3",children:n})})]}),N4e=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-blue-50 text-center",children:r.jsx("p",{className:"text-blue-900",children:"Dining information currently unavailable."})});const t=e.slice(0,2),n=e.slice(2,4),a=e.slice(4);return r.jsx("section",{className:"py-24 px-4 bg-blue-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-blue-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Tolovana"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From cozy pubs and artisan bakeries to beach picnics from the local market, Tolovana Park offers delicious flavors in a laid-back setting."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-blue-900 border-b-2 border-blue-200 pb-2 inline-block",children:"Local Icons"}),r.jsx("div",{className:"grid gap-6",children:t.map((i,s)=>r.jsx(hj,{restaurant:i},s))})]}),r.jsx(J3,{src:"https://images.unsplash.com/photo-1579631542720-3a87824fff86?auto=format&fit=crop&w=800&q=80",alt:"Cozy pub interior",caption:"Warm atmosphere and hearty food"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(J3,{src:"https://images.unsplash.com/photo-1555507036-ab1f4038808a?auto=format&fit=crop&w=800&q=80",alt:"Fresh bakery treats",caption:"Start your morning with fresh pastries"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-blue-900 border-b-2 border-blue-200 pb-2 inline-block ml-auto",children:"Bakeries & Markets"}),r.jsx("div",{className:"grid gap-6",children:n.map((i,s)=>r.jsx(hj,{restaurant:i},s))})]})]}),a.length>0&&r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-blue-900 mb-8 text-center",children:"More Delicious Options Nearby"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-2 gap-6",children:a.map((i,s)=>r.jsx(hj,{restaurant:i},s))})]})]})})},k4e=()=>{v.useEffect(()=>{console.log("TolovanaPage mounted")},[]);const e=ke["tolovana-park"]||ke.tolovana,t=lt("Tolovana Park"),n=ct("Tolovana Park"),a=jn.tolovanaPark;return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Tolovana Park Travel Guide",description:n,url:"https://visittolovanapark.com",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Tolovana Park Beach",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Tolovana Park"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Tolovana Park"})]})]}),r.jsxs("main",{className:"w-full",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12",children:[r.jsx("div",{className:"lg:col-span-2",children:r.jsx(Cr,{townName:"Tolovana Park",initialDescription:m4e},"Tolovana-About")}),r.jsx("div",{className:"lg:col-span-1",children:r.jsx(yt,{lat:e?.geo?.lat||45.8643,lon:e?.geo?.lng||-123.9604,townName:"Tolovana Park"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Tolovana Park",townSlug:"tolovana-park",lat:e?.geo?.lat||45.8643,lon:e?.geo?.lng||-123.9604})})]}),r.jsx(ht,{townName:"Tolovana Park",featuredImage:a,title:"Tolovana Park in Photos"}),r.jsx(dt,{attractions:Y3,townName:"Tolovana Park"}),r.jsx(v4e,{attractions:Y3}),r.jsx(w4e,{trails:p4e}),r.jsx(j4e,{hotels:g4e}),r.jsx(N4e,{restaurants:x4e})]}),r.jsx(Ye,{})]})},_4e=`
<p>Where the Alsea River meets the Pacific Ocean, you'll find Waldport—a coastal gem often called "The Beachcomber's Paradise." Unlike its busier neighbors, Waldport offers a serene, unhurried rhythm defined by the ebb and flow of the tides. The town is dominated by the majestic Alsea Bay Bridge, a stunning architectural landmark that serves as the gateway to some of the best crabbing and fishing on the entire Oregon Coast.</p>
<p>Waldport's charm lies in its diverse water activities. From kayaking the quiet sloughs of the Alsea Bay to digging for clams at low tide or watching harbor seals bask on the sandbars, life here revolves around the water. The surrounding forests offer miles of hiking trails, while the expansive sandy beaches provide solitude for long walks and storm watching. It is a community that deeply values its history, visible in the Alsea Bay Bridge Interpretive Center and the warm hospitality of its locals.</p>
<p>Whether you are seeking a quiet retreat to disconnect, an outdoor adventure in the Drift Creek Wilderness, or simply the best crab dinner of your life, Waldport delivers an authentic coastal experience. It is a place where nature is the main attraction, inviting visitors to slow down, breathe in the salt air, and appreciate the raw beauty of the Central Oregon Coast.</p>
`,X3=[{name:"Alsea Bay Bridge & Historic Interpretive Center",description:"This iconic bridge isn't just a way to cross the bay; it's a destination. The Interpretive Center at the south end offers fascinating exhibits on the history of the bridge, the local timber industry, and the unique ecology of the Alsea Bay estuary.",details:"Free admission. Located at the south end of the bridge."},{name:"Port of Alsea / Robinson Park",description:"The heart of Waldport's river activity. This bustling marina offers boat launches, crab pot rentals, and a perfect spot to watch the fishing boats head out. Robinson Park provides picnic areas and river access for families.",details:"Great for crabbing right off the dock."},{name:"Alsea River Water Trail",description:"A paddler's dream, this water trail creates a navigable route through the estuary and up the river. It's teeming with wildlife, including herons, eagles, and river otters, offering a peaceful way to explore the ecosystem.",details:"Kayak and canoe rentals available in town."},{name:"Governor Patterson Memorial State Recreation Site",description:"Just south of town, this sprawling park offers miles of flat, sandy beach perfect for kite flying, windsurfing, and watching spectacular sunsets. It's less crowded than other state parks, offering a true sense of solitude.",details:"Day-use area with restrooms and picnic tables."},{name:"Beachside State Recreation Site",description:"True to its name, this park sits right on the edge of the sand. It's a favorite for campers who want to fall asleep to the sound of crashing waves. The day-use area is excellent for beachcombing and kite flying.",details:"Camping available seasonally. excellent beach access."},{name:"Waldport Heritage Museum",description:"Housed in the old Alsea Bay Bridge control center, this museum preserves the rich history of the area. Exhibits cover the indigenous Alsi people, early homesteaders, and the construction of the famous bridge.",details:"Run by the Waldport Heritage Society. Check hours."},{name:"Crestline Disc Golf Course",description:"A hidden gem for disc golf enthusiasts, this challenging course winds through a mature coastal forest. It offers technical shots and beautiful scenery, making for a fun afternoon hike with a frisbee.",details:"Located near Crestline Park. Free to play."},{name:"Cove Creek Golf Course",description:"For traditional golfers, this 9-hole course offers a relaxed but well-maintained experience. Tucked away in a quiet valley, it features water hazards and tree-lined fairways that capture the peaceful rural atmosphere.",details:"Public course. Cart rentals available."}],S4e=[{name:"Oregon Coast Trail (Waldport Section)",distance:"Varied",difficulty:"Moderate",description:"The OCT passes right through Waldport, primarily following the sandy beach. Walking from the bridge south to Governor Patterson State Park offers a classic Oregon beach hiking experience."},{name:"Crestline Park Woodland Trail",distance:"1.0 mile loop",difficulty:"Easy",description:"A lovely, paved and gravel loop through the forest right in the middle of town. It's perfect for a quick nature walk, jogging, or walking the dog without leaving the city limits."},{name:"Alsea Bay Beach Walk",distance:"2.0 miles",difficulty:"Easy",description:"Starting from the Port of Alsea, walk along the bay at low tide. You'll see clam diggers, seals hauling out on the sandbars, and the bridge looming overhead."},{name:"Drift Creek Wilderness Trails",distance:"3-5 miles varied",difficulty:"Moderate/Hard",description:"Located inland from Waldport, this wilderness area offers old-growth forests and the famous Drift Creek suspension bridge trail. It's a must-do for serious hikers seeking temperate rainforest beauty."},{name:"Governor Patterson Beach Walk",distance:"Unlimited",difficulty:"Easy",description:"This park offers access to miles of uninterrupted beach. Heading south towards Yachats provides solitude and excellent agate hunting grounds, especially after winter storms."},{name:"Brian Booth State Park (Beaver Creek)",distance:"2-4 miles",difficulty:"Easy/Moderate",description:"Just north of Waldport, this park protects the Beaver Creek wetlands. Trails wind through marshes and uplands, offering some of the best birdwatching on the coast."}],C4e=[{name:"Cliff House Bed & Breakfast",category:"Luxury/Boutique",description:"Perched on a bluff overlooking the ocean, this restored historic home offers breathtaking panoramic views. Each room is uniquely decorated, creating a romantic and intimate atmosphere perfect for couples.",amenities:"Ocean views, gourmet breakfast, jacuzzi tubs."},{name:"The Waldport Inn",category:"Mid-Range Motel",description:"A newly remodeled motel offering clean, modern rooms and spacious family suites. Guests praise the spotless cleanliness and friendly staff. Features EV charging stations (including Tesla), a bike maintenance area, and pet-friendly rooms.",amenities:"EV charging, free WiFi, pet-friendly, 10am checkout."},{name:"Giant Alsi Resort (Bayfront Resort)",category:"Resort/Waterfront",description:"An 80-room resort on ~20 acres along Alsea Bay, originally the Pat Boone Inn. Offers bay views, family suites, and easy beach access. While amenities like the pool and restaurant vary seasonally, the location is unbeatable for crabbing and bay watching.",amenities:"Bay views, seasonal pool, game room, pet-friendly rooms."},{name:"Beachside State Recreation Site",category:"Camping",description:"For those who want to be as close to nature as possible, this campground is literally steps from the sand. Fall asleep to the rhythm of the waves and wake up to a salty breeze.",amenities:"Yurts, tent sites, RV hookups, hot showers."},{name:"Waldport Vacation Rentals",category:"Vacation Home",description:"Waldport has a high density of vacation rental homes, ranging from riverfront cabins to large ocean-view estates. This is often the best option for families or groups looking for a 'home away from home' experience.",amenities:"Full kitchens, private decks, varying locations."}],T4e=[{name:"Hilltop Café Bistro",category:"American/Bistro",description:"True to its name, this spot offers commanding views of the ocean. Known for fresh ingredients and a menu that elevates comfort food, it's a favorite for breakfast and lunch.",features:"Ocean views, benedicts, homemade soups."},{name:"SkoSH",category:"Fusion/Casual",description:"A clean, modern eatery offering a unique mix of flavors, from rice bowls to artisan sandwiches. It's a fresh, healthy alternative to deep-fried coastal fare.",features:"Vegetarian options, craft beer, outdoor seating."},{name:"Grand Central Pizza",category:"Pizza/Italian",description:"The local go-to for hand-tossed pizza and pasta. It has a fun, family-friendly railway theme and serves hearty portions that are perfect after a day of hiking.",features:"Family style, arcade games, delivery."},{name:"Salty Dawg",category:"American/Pub",description:"A classic coastal bar and grill with a relaxed atmosphere. Known for its friendly service and standard pub favorites, it's a great spot to unwind with locals.",features:"Full bar, burgers, casual atmosphere."},{name:"China Restaurant",category:"Chinese",description:"Offering a wide variety of traditional Chinese-American dishes. It is a reliable choice for families looking for generous portions and classic flavors in the heart of town.",features:"Large portions, lunch specials, family-friendly."},{name:"Mexican Fresh",category:"Mexican",description:"Providing authentic Mexican cuisine with fresh ingredients. From street tacos to hearty burritos, this spot brings vibrant south-of-the-border flavors to the coast.",features:"Authentic flavors, quick service, fresh salsas."},{name:"Left Coast Smashburgers",category:"American/Burgers",description:"Focusing on the art of the smashburger, this local favorite delivers crispy-edged patties and high-quality toppings. Perfect for a quick, satisfying meal.",features:"Smashburgers, hand-cut fries, milkshakes."},{name:"Subway",category:"Fast Food",description:"Reliable and familiar, offering the standard menu of made-to-order sandwiches. A quick option for travelers passing through.",features:"Fast service, consistent quality."}],A4e=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),P4e=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Discover the Bayshore"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Waldport"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(A4e,{attraction:t,index:n},n))})]})})),E4e=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},O4e=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Beach Walks"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Explore the Alsea Bay estuary, walk miles of sandy beaches, or head inland to the ancient forests of Drift Creek. Waldport is a hiker's haven."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(E4e,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),R4e=({hotels:e})=>{const t="Waldport",n=["Beachside State Recreation Site","Waldport Vacation Rentals","Cliff House Bed & Breakfast"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},fj=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md whitespace-nowrap",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),I4e=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),M4e=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,5),a=e.slice(5,7);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Waldport"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Fresh seafood, river views, and friendly diners define the Waldport culinary scene."})]}),r.jsx("div",{className:"grid md:grid-cols-3 gap-8 items-stretch mb-16",children:t.map((i,s)=>r.jsx(fj,{restaurant:i},s))}),r.jsx(I4e,{src:"https://images.unsplash.com/photo-1534080564583-6be75777b70a?auto=format&fit=crop&w=1200&q=80",alt:"Seafood dinner",caption:"Fresh seafood with a view"}),r.jsxs("div",{className:"grid md:grid-cols-2 lg:grid-cols-4 gap-6 items-stretch mb-16",children:[n.map((i,s)=>r.jsx(fj,{restaurant:i},s)),a.map((i,s)=>r.jsx(fj,{restaurant:i},s))]})]})})},L4e=[{title:"Waldport Beachcomber Festival (70th Annual)",date:"June 19–21, 2027"},{title:"3rd of July Fireworks",date:"July 3, 2027"},{title:"Oregon Coast Gravel Epic",date:"May 1, 2027"},{title:"Beach, Bike & Blues Festival",date:"September 12, 2026"},{title:"Candlelight Remembrance",date:"November 21, 2026"}],D4e=()=>{v.useEffect(()=>{console.log("WaldportPage mounted")},[]);const e=ke.waldport,t=lt("Waldport"),n=ct("Waldport"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/f29f63a80e5ae25aecbbc6b26c9d6390.webp";return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Waldport, Oregon Alsea Bay Bridge",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Waldport"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Waldport"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto town-grid-layout mb-12",children:[r.jsx("div",{className:"town-about-section",children:r.jsx(Cr,{townName:"Waldport",initialDescription:_4e},"Waldport-About")}),r.jsx("div",{className:"town-weather-section",children:r.jsx(yt,{lat:e?.geo?.lat||44.4268,lon:e?.geo?.lng||-124.0734,townName:"Waldport"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Waldport",townSlug:"waldport",lat:e?.geo?.lat||44.4268,lon:e?.geo?.lng||-124.0734,tideStationId:"9434939"})})]}),r.jsx(ht,{townName:"Waldport",featuredImage:a,title:"Waldport Gallery"}),r.jsx(Mt,{name:"Waldport, Oregon",description:n,image:a,url:window.location.href,geo:{latitude:44.4267,longitude:-124.0733}}),r.jsx(dt,{attractions:X3,townName:"Waldport"}),r.jsx(P4e,{attractions:X3}),r.jsx(O4e,{trails:S4e}),r.jsx($r,{events:L4e}),r.jsx(R4e,{hotels:C4e}),r.jsx(M4e,{restaurants:T4e})]}),r.jsx(Ye,{})]})},B4e=`Located at the rugged northwestern tip of Oregon, Warrenton is a town defined by its dramatic relationship with the sea and history. Bounded by the Pacific Ocean to the west and the mighty Columbia River to the north, this coastal gem offers more than just scenic vistas—it is a living museum of military history and maritime heritage.
Warrenton is perhaps best known as the home of Fort Stevens State Park, one of the largest public campgrounds in the nation, where the rusted skeleton of the Peter Iredale shipwreck rests eternally in the sand. Beyond the beach, the town serves as a gateway to the Lewis and Clark National Historical Park, inviting visitors to walk in the footsteps of the legendary explorers at Fort Clatsop.
From the adrenaline rush of zip-lining through coastal forests to the peaceful solitude of the Skipanon River trails, Warrenton offers a diverse array of adventures. Whether you're digging for razor clams at low tide, cycling the waterfront trail, or watching elk graze near the harbor, Warrenton provides an authentic and unforgettable North Coast experience.`,Q3=[{id:1,name:"Fort Stevens State Park",description:"Once a primary military defense installation for the mouth of the Columbia River, Fort Stevens is now a 4,300-acre park offering history, nature, and recreation. Explore historic concrete batteries, hike miles of trails, or enjoy one of the nation's largest campgrounds.",details:"Historic Military Site & Camping",image:"https://images.unsplash.com/photo-1592122529685-e37933d42c87?auto=format&fit=crop&w=800&q=80"},{id:2,name:"Peter Iredale Shipwreck",description:"The hauntingly beautiful rusting bow of the Peter Iredale, a four-masted steel barque that ran ashore in 1906, remains one of the most photographed landmarks on the Oregon Coast. It is easily accessible on the beach at Fort Stevens.",details:"Iconic Shipwreck",image:"https://images.unsplash.com/photo-1616450537021-08103c800f13?auto=format&fit=crop&w=800&q=80"},{id:3,name:"High Life Adventures Zip Line Tours",description:"Experience the coast from a new perspective with an exhilarating guided zip line tour. Soar over ponds, through seasoned timber, and enjoy the stunning natural landscape on an 8-line course.",details:"Adventure & Zip Lining",image:"https://images.unsplash.com/photo-1533589484967-17d4a3b83921?auto=format&fit=crop&w=800&q=80"},{id:4,name:"Warrenton Waterfront Trail",description:"This scenic trail follows the Skipanon River and the Columbia River shoreline, offering peaceful views of the water, wildlife, and fishing boats. Perfect for walking, jogging, or a family bike ride.",details:"Hiking & Biking Trail",image:"https://images.unsplash.com/photo-1441974231531-c6227db76b6e?auto=format&fit=crop&w=800&q=80"},{id:5,name:"Sunset Beach State Recreation Site",description:"A sprawling sandy beach that provides direct ocean access. Known for its wide shoreline, it is a popular spot for kite flying, picnicking, and offers vehicle access to the sand.",details:"Beach Access & Driving",image:"https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=800&q=80"},{id:6,name:"Lewis and Clark National Historical Park",description:"Visit Fort Clatsop, the replica of the 1805-1806 winter encampment of the Corps of Discovery. The park features a visitor center, exhibit hall, and trails that trace the explorers' history.",details:"National Historic Site",image:"https://images.unsplash.com/photo-1599594243626-d6219c43d964?auto=format&fit=crop&w=800&q=80"},{id:7,name:"Razor Clamming",description:"The beaches from Warrenton to Seaside are world-famous for razor clamming. During approved tides, thousands flock to the sands with shovels and guns to harvest these delicious local delicacies.",details:"Local Activity",image:"https://images.unsplash.com/photo-1620025701888-0f04dc7b88ec?auto=format&fit=crop&w=800&q=80"},{id:8,name:"Skipanon Peninsula & Harbor",description:"A hidden natural gem offering trails through coastal forests and opportunities to spot local elk herds. The marina area provides a glimpse into the local fishing industry.",details:"Nature & Wildlife",image:"https://images.unsplash.com/photo-1596328905322-38d7c4937213?auto=format&fit=crop&w=800&q=80"}],F4e=[{name:"Fort To Sea Trail",distance:"6.1 miles",difficulty:"Moderate",type:"Point-to-Point",description:"A historic trail connecting Fort Clatsop to Sunset Beach, traversing forests, dunes, and coastal plains. Retrace the steps of the Lewis and Clark expedition as they traveled to the coast.",icon:"Mountain"},{name:"Coffenbury Lake Loop",distance:"2.5 miles",difficulty:"Easy",type:"Loop",description:"A peaceful, family-friendly loop around Coffenbury Lake within Fort Stevens State Park. The paved sections make it accessible, and it's perfect for birdwatching and a gentle nature walk.",icon:"Trees"},{name:"Warrenton Waterfront Trail",distance:"4.8 miles",difficulty:"Easy",type:"Out & Back",description:"A paved, multi-use trail following the Skipanon River and Columbia River waterfront. Offers excellent views of passing ships, wildlife, and fishing boats, suitable for walking and cycling.",icon:"Waves"},{name:"Netul River Trail",distance:"3.0 miles",difficulty:"Easy",type:"Out & Back",description:"Located at Lewis and Clark National Historical Park, this trail meanders along the Lewis and Clark River. It connects the visitor center to Netul Landing, offering serene river views.",icon:"River"},{name:"Battery Russell Trail",distance:"2.0 miles",difficulty:"Easy",type:"Loop",description:"A trail within Fort Stevens that leads to the historic Battery Russell fortification. Combines military history with a pleasant walk through coastal pine forests.",icon:"Shield"},{name:"Clatsop Loop Trail",distance:"3.0 miles",difficulty:"Moderate",type:"Loop",description:"Ascends from the Indian Beach area (technically Ecola but accessible nearby) offering dramatic ocean viewpoints. It explores Sitka spruce forests and follows a portion of the original Corps of Discovery route.",icon:"Binoculars"},{name:"Skipanon River Loop",distance:"2.2 miles",difficulty:"Easy",type:"Loop",description:"A quiet nature trail looping around the Skipanon River area. Great for spotting herons, eagles, and local elk herds that frequent the marshy banks.",icon:"Bird"},{name:"Jetty Road Trail",distance:"5.5 miles",difficulty:"Moderate",type:"Out & Back",description:"Walk along the South Jetty of the Columbia River. This rugged path offers raw views of the crashing Pacific waves meeting the river, popular for storm watching and fishing access.",icon:"Anchor"},{name:"Kwikway Trail",distance:"1.5 miles",difficulty:"Easy",type:"Connector",description:"A connecting trail within Fort Stevens State Park linking the campground areas to the beach and other trail networks. A simple, flat route through coastal shrubbery.",icon:"Footprints"}],z4e=[{id:1,name:"Fort Stevens State Park Campground",category:"Camping & Yurts",description:"One of the nation's largest public campgrounds, located right next to the historic shipwreck and military batteries. Offers yurts, full-hookup sites, and tent camping surrounded by shore pines and dunes.",features:["Beach Access","Yurts","Hiking Trails","Historic Sites"]},{id:2,name:"South Jetty Inn",category:"Inn / Motel",description:"A charming, budget-friendly inn located near the entrance to Fort Stevens. Known for its distinct murals and cozy atmosphere, it's a perfect base camp for fishing trips and park exploration.",features:["Kitchenettes","Near Park Entrance","Pet Friendly","Free Wi-Fi"]},{id:3,name:"Kampers West RV Park",category:"RV Park & Camping",description:"A well-maintained private RV park situated along the river. Offers a quiet alternative to the state park with easy access to Warrenton's shopping and the marina.",features:["Full Hookups","River Access","Laundry","Clean Facilities"]},{id:4,name:"Shilo Inn Suites Warrenton",category:"Hotel",description:"A reliable and comfortable hotel option offering suites and an indoor pool. Conveniently located near Highway 101, making it an easy drive to both Astoria and Seaside.",features:["Indoor Pool","Suites","Breakfast","Fitness Center"]}],$4e=[{id:1,name:"Dooger's Seafood & Grill",cuisine:"Seafood",description:"A North Coast staple known for its clam chowder and classic seafood dishes. A relaxed, family-friendly atmosphere perfect for dinner after a day at the beach.",price:"$$"},{id:2,name:"El Catrin Mexican Kitchen",cuisine:"Mexican",description:"Authentic and vibrant Mexican cuisine serving fresh tacos, enchiladas, and margaritas. Known for generous portions and friendly service.",price:"$$"},{id:3,name:"Nisa's Thai Kitchen",cuisine:"Thai",description:"A local favorite for flavorful Thai curries, noodle dishes, and stir-fries. Offers a cozy dining experience with a wide variety of vegetarian options.",price:"$$"},{id:4,name:"Arnie's Cafe",cuisine:"American Diner",description:"The go-to spot for a hearty, traditional American breakfast. Famous for their omelets, biscuits and gravy, and welcoming small-town diner vibe.",price:"$"},{id:5,name:"Buoy 9 Restaurant",cuisine:"Seafood & American",description:"Situated near the marina, offering fresh local seafood, burgers, and comfort food. A historic spot that has been serving the community for decades.",price:"$$"},{id:6,name:"Ixtapa Mexican Restaurant",cuisine:"Mexican",description:"A lively restaurant offering a broad menu of Mexican favorites. Great for large groups and families, with a festive atmosphere and colorful decor.",price:"$$"},{id:7,name:"Fultano's Pizza",cuisine:"Pizza & Italian",description:"Classic coastal pizza parlor serving hot pies, salad bars, and sandwiches. A reliable choice for a quick, delicious meal.",price:"$$"},{id:8,name:"Tora Sushi",cuisine:"Japanese & Sushi",description:"Fresh sushi and Japanese cuisine. Offers a clean, modern setting to enjoy sashimi, rolls, and bento boxes made with quality ingredients.",price:"$$"},{id:9,name:"Serendipity Caffe",cuisine:"Coffee & Cafe",description:"A delightful coffee shop offering espresso drinks, fresh pastries, and light lunch options. A perfect morning stop before hitting the trails.",price:"$"},{id:10,name:"Astoria Golf & Country Club Restaurant",cuisine:"Fine Dining / American",description:"Located at the historic golf course, offering elevated American cuisine with views of the greens. Open to the public for a more refined dining experience.",price:"$$$"}],H4e=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),W4e=({attractions:e})=>!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Explore the History"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Warrenton"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(H4e,{attraction:t,index:n},n))})]})}),V4e=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},U4e=({trails:e})=>!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From coastal dunes to historic military roads, Warrenton offers diverse trails for every skill level. Discover shipwrecks, wildlife, and sweeping river views."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(V4e,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})}),q4e=({hotels:e})=>{const t="Warrenton",n=["Fort Stevens State Park Campground","Kampers West RV Park","South Jetty Inn"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},ny=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.cuisine&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md",children:e.cuisine})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed",children:e?.description||"No description available."}),e?.price&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Price Range"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.price})]})]}),eR=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),G4e=({restaurants:e})=>{if(!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,5),a=e.slice(5,7),i=e.slice(7);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Warrenton"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"From fresh seafood near the marina to hearty comfort food and international flavors, Warrenton offers delicious local dining."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block",children:"Local Favorites"}),r.jsx("div",{className:"grid gap-6",children:t.map((s,o)=>r.jsx(ny,{restaurant:s},o))})]}),r.jsx(eR,{src:"https://images.unsplash.com/photo-1615141982880-13aa0d4cfbc7?auto=format&fit=crop&w=800&q=80",alt:"Seafood dinner",caption:"Fresh catches and hearty meals"})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsx(eR,{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80",alt:"Restaurant interior",caption:"Cozy atmosphere and friendly service"}),r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block ml-auto",children:"International & Casual"}),r.jsx("div",{className:"grid gap-6",children:n.map((s,o)=>r.jsx(ny,{restaurant:s},o))})]})]}),r.jsxs("div",{className:"grid md:grid-cols-3 gap-6 mb-16",children:[r.jsx("div",{className:"md:col-span-3 text-center mb-4",children:r.jsx("h3",{className:"text-2xl font-bold text-orange-900 inline-block",children:"More Delicious Options"})}),a.map((s,o)=>r.jsx(ny,{restaurant:s},o)),r.jsx("div",{className:"h-full min-h-[200px] rounded-xl overflow-hidden shadow-md",children:r.jsx("img",{src:"https://images.unsplash.com/photo-1565299624946-b28f40a0ae38?auto=format&fit=crop&w=600&q=80",alt:"Pizza and comfort food",className:"w-full h-full object-cover"})})]}),i.length>0&&r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-orange-900 mb-8 text-center",children:"Cafe & Quick Bites"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:i.map((s,o)=>r.jsx(ny,{restaurant:s},o))})]})]})})},K4e=[{title:"Astoria Second Saturday Art Walk",date:"Monthly (Every 2nd Saturday)"},{title:"Great Columbia Crossing",date:"October 11, 2026"},{title:"FisherPoets Gathering",date:"February 26–28, 2027"},{title:"Astoria Scandinavian Midsummer",date:"June 18–20, 2027"},{title:"Astoria Regatta",date:"August 11–15, 2027"},{title:"Rigs & Reggae",date:"August 2027"}],Z4e=()=>{v.useEffect(()=>{console.log("WarrentonPage mounted")},[]);const e=ke.warrenton,t=lt("Warrenton"),n=ct("Warrenton"),a=jn.warrenton;return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Warrenton, Oregon Coast",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Warrenton"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Warrenton"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12",children:[r.jsx("div",{className:"lg:col-span-2",children:r.jsx(Cr,{townName:"Warrenton",initialDescription:B4e},"Warrenton-About")}),r.jsx("div",{className:"lg:col-span-1",children:r.jsx(yt,{lat:e?.geo?.lat||46.1648,lon:e?.geo?.lng||-123.9226,townName:"Warrenton"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Warrenton",townSlug:"warrenton",lat:e?.geo?.lat||46.1648,lon:e?.geo?.lng||-123.9226})})]}),r.jsx(ht,{townName:"Warrenton",featuredImage:a,title:"Warrenton in Photos"}),r.jsx(dt,{attractions:Q3,townName:"Warrenton"}),r.jsx(W4e,{attractions:Q3}),r.jsx(U4e,{trails:F4e}),r.jsx($r,{events:K4e}),r.jsx(q4e,{hotels:z4e}),r.jsx(G4e,{restaurants:$4e})]}),r.jsx(Ye,{})]})},Y4e=`
<p>Known affectionately as "The Little Town with a Big View," Wheeler is a hidden gem perched on the edge of Nehalem Bay. Facing west toward the Pacific, it offers some of the most spectacular sunsets on the entire Oregon Coast, bathing the bay and the distant Nehalem Spit in golden hues. This charming village feels frozen in time, with a walkable downtown strip lined with historic buildings, antique shops, and artisan boutiques.</p>
<p>Wheeler’s identity is deeply tied to the water and the rails. It serves as a key stop for the Oregon Coast Scenic Railroad, where steam whistles echo off the surrounding hills, evoking the romance of a bygone era. The marina provides direct access for kayaking, crabbing, and fishing, while the waterfront park invites visitors to simply sit and watch the tides change. Whether you're hunting for vintage treasures, enjoying fresh seafood with a bay view, or launching a kayak into the mist, Wheeler offers a peaceful, creative, and scenic escape from the ordinary.</p>
`,tR=[{name:"Oregon Coast Scenic Railroad",description:"Wheeler serves as a charming depot for this heritage railroad. Visitors can watch the steam engine pull into town or board the train for a scenic journey along the bay and river. The historic atmosphere of the train perfectly matches Wheeler's old-world vibe.",details:"Train Depot"},{name:"Wheeler Marina",description:"The heart of outdoor recreation in town, the marina offers boat rentals, crab ring rentals, and a launch point for kayaks. It's the gateway to exploring the Nehalem Bay Estuary, teeming with birds, seals, and fish.",details:"Marina & Rentals"},{name:"Wheeler Antiques & Vintage",description:"Wheeler is renowned as an antiquing destination. The downtown area features several high-quality antique malls and vintage shops where collectors can find maritime artifacts, glass, furniture, and rare collectibles.",details:"Shopping"},{name:"Waterfront Park",description:"A beautifully maintained grassy area right on the bay's edge. It features picnic tables, benches perfectly positioned for sunset viewing, and unobstructed views of Neahkahnie Mountain and the Nehalem Spit.",details:"Park & Views"},{name:"Botts Marsh",description:"Adjacent to the town, this protected wetland area is a birdwatcher's paradise. It serves as a vital habitat for migratory birds, herons, and bald eagles. The changing tides create a dynamic landscape fascinating to observe.",details:"Nature Reserve"},{name:"Upper Park",description:"Located on the hill above downtown, this park offers a different perspective with sweeping panoramic views of the entire bay, the ocean entrance, and the town rooftops below. A quiet spot for reflection.",details:"Scenic Lookout"},{name:"Nehalem Bay Arts",description:"Reflecting the town's creative spirit, Wheeler is home to local artisans and galleries. Visitors can find unique pottery, paintings, and handcrafted jewelry inspired by the coastal landscape.",details:"Art & Culture"},{name:"Historical Walking Tour",description:"Wheeler's compact downtown is rich in history. A self-guided walk reveals buildings from the early 1900s, telling the story of the town's evolution from a timber and fishing hub to a beloved tourist retreat.",details:"Heritage"}],J4e=[{name:"Wheeler Upper Park Trail",distance:"0.5 miles",difficulty:"Easy",elevation:"100 ft gain",description:"A short but rewarding walk leading to the upper park. The elevation gain provides one of the best vantage points for photographing Nehalem Bay and the Pacific Ocean horizon."},{name:"Botts Marsh Edge Walk",distance:"1 mile",difficulty:"Easy",elevation:"Flat",description:"A gentle walk along the perimeter of the marshlands. Best done at low tide to see elk prints and wading birds. It connects visitors directly with the estuary ecosystem."},{name:"Nehalem Bay Water Trail",distance:"Variable",difficulty:"Moderate",elevation:"Water Level",description:"For kayakers and SUPs, the 'trail' is the water itself. Paddle from Wheeler to Nehalem or out toward the state park. Watch for tides and wind, but enjoy close encounters with harbor seals."},{name:"Salmonberry Trail (Sections)",distance:"Varies",difficulty:"Moderate",elevation:"Varies",description:"While the full trail is a work in progress, nearby sections offer glimpses into the ambitious project to convert the old rail line into a world-class hiking and biking path connecting the coast to the valley."},{name:"Neahkahnie Mountain (Nearby)",distance:"3 miles",difficulty:"Strenuous",elevation:"1600 ft",description:"Just a short drive north, this iconic hike is a must-do for Wheeler visitors seeking a challenge. The summit offers legendary views that frame Wheeler and the bay perfectly."},{name:"Nehalem Spit Walk",distance:"4 miles",difficulty:"Moderate",elevation:"Flat",description:"Accessible via boat from Wheeler or driving to the State Park, walking the spit offers solitude, dunes, and the raw power of the ocean meeting the bay."}],X4e=[{name:"Old Wheeler Hotel",category:"Historic Boutique",description:"A stunningly restored historic building that anchors the town. Each room is individually decorated with antiques and plush furnishings. Known for its romantic ambiance and views of the bay, it's an adults-only retreat that feels like stepping back in time.",amenities:"Bay Views, Antiques, Piano"},{name:"Wheeler on the Bay Lodge",category:"Waterfront Lodge",description:"The only motel right on the water in the area. Rooms feature private decks, fireplaces, and jetted tubs. Guests enjoy complimentary use of kayaks and an extensive movie library. Perfect for those who want to wake up to the sound of water lapping against the dock.",amenities:"Private Dock, Free Kayaks, Fireplaces"},{name:"Nehalem Bay Cottages",category:"Vacation Rentals",description:"Various charming cottages and vacation homes scattered around the hillside and waterfront. These offer more privacy and kitchen facilities, ideal for families or longer stays in the 'Little Town with a Big View'.",amenities:"Kitchens, Privacy, Decks"}],Q4e=[{name:"Salmonberry Saloon",category:"Gastropub",description:"The culinary star of Wheeler. Located in a historic building right on the water, it serves incredible, locally sourced seafood and farm-to-table dishes. The deck offers arguably the best dining view on the coast.",features:"Waterfront Deck, Local Seafood"},{name:"The Roost",category:"Breakfast/Cafe",description:"A cozy, welcoming spot for breakfast and lunch. Known for homemade pastries, hearty scrambles, and excellent coffee. It's the local gathering place where community news is shared over steaming mugs.",features:"Homemade Pastries, Cozy"},{name:"Rising Star Cafe",category:"Pasta/Italian",description:"A hidden gem offering intimate dining with a focus on fresh pastas and seasonal ingredients. The atmosphere is warm and unpretentious, with food that rivals big-city Italian restaurants.",features:"Fresh Pasta, Intimate"},{name:"Handy Creek Bakery",category:"Bakery",description:"Small artisan bakery offering fresh breads, cookies, and savory treats. Perfect for grabbing picnic supplies before heading out on the bay or a hike.",features:"Artisan Bread, To-Go"},{name:"Wheeler Treasures Coffee",category:"Coffee/Snacks",description:"Located within the antique district, this spot offers a quick caffeine fix and light snacks. Sip a latte while browsing vintage finds or watching the train roll by.",features:"Espresso, Antiques"}],eOe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-cyan-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-cyan-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-cyan-700 bg-cyan-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),tOe=({attractions:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("AttractionsSection: No attractions data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-cyan-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-cyan-600 font-bold tracking-wider uppercase text-sm",children:"Explore the History"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Wheeler"}),r.jsx("div",{className:"h-1 w-24 bg-cyan-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(eOe,{attraction:t,index:n},n))})]})})),nOe=({level:e})=>{const t={Easy:"bg-cyan-100 text-cyan-800 border-cyan-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy to Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},rOe=({trails:e})=>(v.useEffect(()=>{(!e||e.length===0)&&console.warn("HikingTrailsSection: No trails data provided")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-cyan-600"}),"Hiking Trails & Outdoor Adventure"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From gentle marsh walks to kayaking the bay, Wheeler offers peaceful adventures in nature."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-cyan-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(nOe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),aOe=({hotels:e})=>{const t="Wheeler",n=["Nehalem Bay Cottages"],a=e?e.filter(i=>!n.includes(i.name)):[];return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:st[t]})},nR=({restaurant:e,image:t})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm rounded-xl border border-cyan-100 hover:border-cyan-300 transition-all shadow-sm hover:shadow-md overflow-hidden h-full flex flex-col",children:[r.jsx("div",{className:"h-48 w-full bg-cyan-50 relative overflow-hidden",children:t?r.jsx("img",{src:t,alt:e.name,className:"w-full h-full object-cover transition-transform duration-500 hover:scale-105"}):r.jsx("div",{className:"flex items-center justify-center h-full text-cyan-200",children:r.jsx(Du,{className:"w-8 h-8"})})}),r.jsxs("div",{className:"p-6 flex flex-col flex-grow",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-cyan-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-cyan-700 bg-cyan-100 px-2 py-1 rounded-md",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-cyan-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-cyan-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]})]}),iOe=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-80 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-cyan-500 pl-3",children:n})})]}),sOe=({restaurants:e})=>{const[t,n]=v.useState({});if(v.useEffect(()=>{(async()=>{const{data:l}=await Ht.from("town_photos").select("image_url, caption").eq("town_name","Wheeler");if(l){const c={};l.forEach((h,m)=>{e[m]&&(c[e[m].name]=h.image_url)}),n(c)}})()},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-cyan-50 text-center",children:r.jsx("p",{className:"text-cyan-900",children:"Dining information currently unavailable."})});const a=o=>{const l=["https://images.unsplash.com/photo-1414235077428-338989a2e8c0?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1495474472287-4d71bcdd2085?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1481931098730-318b6f776db0?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1554118811-1e0d58224f24?auto=format&fit=crop&w=800&q=80","https://images.unsplash.com/photo-1509042239860-f550ce710b93?auto=format&fit=crop&w=800&q=80"];return l[o%l.length]},i=e.slice(0,1),s=e.slice(1);return r.jsx("section",{className:"py-24 px-4 bg-cyan-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-cyan-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Wheeler"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Fresh seafood, cozy cafes, and sunset views from the deck."})]}),r.jsxs("div",{className:"grid md:grid-cols-2 gap-8 items-center mb-16",children:[r.jsxs("div",{className:"space-y-6",children:[r.jsx("h3",{className:"text-2xl font-bold text-cyan-900 border-b-2 border-cyan-200 pb-2 inline-block",children:"Waterfront Dining"}),r.jsx("div",{className:"grid gap-6",children:i.map((o,l)=>r.jsx(nR,{restaurant:o,image:t[o.name]||a(l)},l))})]}),r.jsx(iOe,{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80",alt:"Seafood dinner",caption:"Sunset dining on the bay"})]}),s.length>0&&r.jsxs("div",{className:"bg-white/60 p-8 rounded-2xl shadow-sm",children:[r.jsx("h3",{className:"text-2xl font-bold text-cyan-900 mb-8 text-center",children:"Local Favorites"}),r.jsx("div",{className:"grid md:grid-cols-2 lg:grid-cols-3 gap-6",children:s.map((o,l)=>r.jsx(nR,{restaurant:o,image:t[o.name]||a(l+1)},l))})]})]})})},oOe=()=>{v.useEffect(()=>{console.log("WheelerPage mounted")},[]);const e=ke.wheeler,t=lt("Wheeler"),n=ct("Wheeler"),a=jn.wheeler;return r.jsxs("div",{className:"min-h-screen bg-white",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Wheeler Oregon Travel",description:n,url:"https://oregoncoastal.com/town/wheeler",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden",children:[r.jsxs("div",{className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Wheeler, Oregon Bayfront",className:"w-full h-full object-cover"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-center text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Wheeler"}),r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight",children:"Wheeler"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12",children:[r.jsx("div",{className:"lg:col-span-2",children:r.jsx(Cr,{townName:"Wheeler",initialDescription:Y4e},"Wheeler-About")}),r.jsx("div",{className:"lg:col-span-1",children:r.jsx(yt,{lat:e?.geo?.lat||45.6887,lon:e?.geo?.lng||-123.8812,townName:"Wheeler"})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Wheeler",townSlug:"wheeler",lat:e?.geo?.lat||45.6887,lon:e?.geo?.lng||-123.8812})})]}),r.jsx(ht,{townName:"Wheeler",featuredImage:a,title:"Wheeler in Photos"}),r.jsx(dt,{attractions:tR,townName:"Wheeler"}),r.jsx(tOe,{attractions:tR}),r.jsx(rOe,{trails:J4e}),r.jsx(aOe,{hotels:X4e}),r.jsx(sOe,{restaurants:Q4e})]}),r.jsx(Ye,{})]})},lOe=`
<p>Winchester Bay is the heartbeat of the central Oregon coast's "Dunes Country," offering a perfect blend of high-octane adventure and serene coastal beauty. Situated at the mouth of the Umpqua River, this vibrant community is most famous for its proximity to the Oregon Dunes National Recreation Area, specifically the massive dunes at Umpqua Lighthouse State Park that draw off-road enthusiasts from across the country.</p>
<p>Beyond the dunes, Winchester Bay is a premier fishing and crabbing destination. The Salmon Harbor Marina is one of the largest and best-equipped on the Oregon Coast, providing a launching point for deep-sea fishing charters and excellent dock-side crabbing. The town's Salmon Harbor is a working waterfront where you can watch the commercial fleet bring in the day's catch or enjoy fresh seafood just steps from the docks.</p>
<p>History and scenery meet at the Umpqua River Lighthouse, which stands tall overlooking the river entrance. With its unique red and white lens, it remains one of the most distinctive landmarks on the coast. Whether you're here to conquer the dunes on an ATV, explore the quiet hiking trails around Lake Marie, or simply enjoy a sunset over the Pacific, Winchester Bay provides an authentic and exhilarating coastal experience.</p>
`,rR=[{name:"Umpqua River Lighthouse",description:"Built in 1894, this historic lighthouse features a unique red and white Fresnel lens. Tours are available through the adjacent museum, providing a glimpse into the region's maritime history and stunning views of the dunes.",details:"Tours available daily; museum on-site."},{name:"Oregon Dunes National Recreation Area",description:"Winchester Bay serves as a major gateway to some of the highest dunes in the world. This area is a playground for OHVs (Off-Highway Vehicles), offering miles of shifting sands and dramatic coastal views.",details:"Permits required for OHV use."},{name:"Salmon Harbor Marina",description:"One of the largest marinas on the Oregon Coast, it's the center of activity for crabbing, fishing, and boating. The marina offers extensive facilities for both recreational and commercial vessels.",details:"Excellent crabbing from the public docks."},{name:"Lake Marie",description:"A serene freshwater lake located within Umpqua Lighthouse State Park. It features a walking trail around its perimeter and is a popular spot for swimming, fishing, and non-motorized boating.",details:"Gentle 1-mile perimeter trail."},{name:"Ziolkouski Beach Park",description:"Located at the end of the South Jetty, this park offers beach access and great views of the Umpqua River bar. It's a popular spot for watching ships navigate the river entrance.",details:"Picnic areas and beach access."}],cOe=[{name:"Lake Marie Trail",distance:"1.0 mile loop",difficulty:"Easy",description:"A scenic and level trail that circles Lake Marie, winding through coastal forest and offering multiple viewpoints of the water."},{name:"Umpqua Dunes Trail",distance:"2.3 miles",difficulty:"Moderate/Hard",description:"This trail takes hikers directly into the massive open dunes. Walking on sand is strenuous, but the reward is a surreal landscape and views of the Pacific."},{name:"Chief Tsiltcoos Trail",distance:"3.5 miles",difficulty:"Moderate",description:"Located nearby, this trail explores the diverse coastal forest and dunes, providing a quieter alternative to the more popular OHV areas."}],_$=[{name:"Winchester Bay Inn",category:"Hotel",image:"https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/6761ae5915cb19565e5244bd498d2d03.jpg",description:"A charming and conveniently located inn featuring bright coastal architecture. Situated near the Salmon Harbor Marina and the Umpqua River Lighthouse, it offers comfortable accommodations for explorers of the dunes and the sea.",amenities:"Free WiFi, Pet-friendly rooms, Near Marina, Mountain views.",bookingUrl:"https://expedia.com/affiliates/reedsport-hotels-winchester-bay-inn.dTkNbbo"}],dOe=[{name:"Salmon Harbor Cafe and Mercantile & The Wheelhouse Winchester Bay",rating:"4.7",reviews:"112",price:"$10–20",category:"Pacific Northwestern",address:"110 Bayfront Loop",status:"Closed · Opens 8 AM Thu",quote:'"An absolute gem! The food is incredible and the staff makes you feel right at home."'},{name:"Griff's On the Bay Restaurant",rating:"4.2",reviews:"768",price:"$20–30",category:"Seafood",address:"142 Bayfront Loop",status:"",quote:'"Some of the best fish and chips on the Oregon coast, right on the water."'},{name:"Blue Box Seafood Company",rating:"4.4",reviews:"165",price:"$10–20",category:"Seafood",address:"200 Coho Pt Lp",status:"Closed · Opens 11:30 AM Thu",quote:'"Incredible fresh catch and great clam chowder in a no-frills setting."'},{name:"Salmon Harbor Marina",rating:"4.3",reviews:"96",price:"",category:"Marina",address:"100 Ork Rock Rd",status:"",quote:'"Beautiful views of the working boats and a great place to walk around."'},{name:"Crabby's Bar & Grill",rating:"4.2",reviews:"793",price:"$20–30",category:"Seafood",address:"196 Bayfront Loop",status:"",quote:'"Awesome atmosphere, strong drinks, and perfectly cooked crab legs."'},{name:'Double "D" On The Rocks',rating:"4.3",reviews:"713",price:"$10–20",category:"Sports bar",address:"460 Beach Blvd",status:"",quote:'"Great local dive bar with friendly service, cold beer, and tasty burgers."'},{name:"Big Fish Café",rating:"4.7",reviews:"322",price:"$20–30",category:"Seafood",address:"345 Riverfront Way",status:"",quote:'"A wonderful dining experience with top-tier seafood and beautiful presentation."'},{name:"Bedrock's On The Bay",rating:"4.1",reviews:"1.1K",price:"$10–20",category:"Pizza",address:"105 Coho Pt Lp",status:"",quote:'"Perfect spot for a family dinner. The pizza is loaded with toppings!"'},{name:"The Salmonberry",rating:"4.4",reviews:"444",price:"$20–30",category:"Restaurant",address:"380 Marine Dr",status:"Closed · Opens 4 PM Fri",quote:'"Amazing flavors and a really cozy interior. Definitely worth the stop."'}],uOe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),hOe=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Lighthouses & Dunes"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Top Attractions in Winchester Bay"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(uOe,{attraction:t,index:n},n))})]})})),fOe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},mOe=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"Discover trails that wind through coastal forests, circle serene lakes, and traverse the massive shifting sands of the Oregon Dunes."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(fOe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),pOe=({hotels:e})=>{const t="Winchester Bay",a=(e&&e.length>0?e:_$).filter(o=>o.name==="Winchester Bay Inn"),s=(st[t]||[]).filter(o=>o.name==="Winchester Bay Inn");return r.jsx(mt,{townName:t,fallbackHotels:a,affiliateHotels:s})},gOe=rp("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function aR({className:e,variant:t,...n}){return r.jsx("div",{className:Se(gOe({variant:t}),e),...n})}const xOe=({restaurant:e})=>r.jsxs(gp,{className:"h-full flex flex-col hover:shadow-lg transition-shadow duration-300 border-orange-100 group",children:[r.jsxs(I2,{className:"pb-3",children:[r.jsxs("div",{className:"flex justify-between items-start gap-4",children:[r.jsx(M2,{className:"text-xl font-bold text-gray-900 group-hover:text-orange-700 transition-colors",children:e.name}),e.price&&r.jsx(aR,{variant:"outline",className:"bg-orange-50 text-orange-700 border-orange-200 whitespace-nowrap",children:e.price})]}),r.jsxs("div",{className:"flex flex-wrap items-center gap-2 mt-2",children:[r.jsxs("div",{className:"flex items-center text-yellow-500 bg-yellow-50 px-2 py-0.5 rounded text-sm font-medium",children:[r.jsx(Fu,{className:"w-4 h-4 mr-1 fill-current"}),e.rating]}),r.jsxs("span",{className:"text-sm text-gray-500",children:["(",e.reviews," reviews)"]}),r.jsx("span",{className:"text-gray-300",children:"•"}),r.jsx(aR,{variant:"secondary",className:"bg-gray-100 text-gray-700 hover:bg-gray-200",children:e.category})]})]}),r.jsxs(Zv,{className:"flex-grow flex flex-col gap-4",children:[r.jsxs("div",{className:"space-y-2 text-sm text-gray-600",children:[r.jsxs("div",{className:"flex items-start gap-2",children:[r.jsx(We,{className:"w-4 h-4 mt-0.5 text-orange-500 shrink-0"}),r.jsx("span",{children:e.address})]}),e.status&&r.jsxs("div",{className:"flex items-start gap-2",children:[r.jsx(gI,{className:"w-4 h-4 mt-0.5 text-red-500 shrink-0"}),r.jsx("span",{className:"text-red-600 font-medium",children:e.status})]})]}),r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsxs("div",{className:"flex items-start gap-2 text-gray-600 bg-gray-50 p-3 rounded-lg",children:[r.jsx(bI,{className:"w-4 h-4 mt-1 text-gray-400 shrink-0"}),r.jsx("p",{className:"text-sm italic font-serif leading-relaxed",children:e.quote})]})})]})]}),yOe=({restaurants:e})=>!e||e.length===0?r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})}):r.jsx("section",{className:"py-24 px-4 bg-gradient-to-b from-orange-50/50 to-white",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16 max-w-3xl mx-auto",children:[r.jsx("div",{className:"flex items-center justify-center gap-2 mb-4",children:r.jsx("div",{className:"p-3 bg-orange-100 rounded-full text-orange-600",children:r.jsx(rt,{className:"w-6 h-6"})})}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-6",children:"Dining in Winchester Bay"}),r.jsx("p",{className:"text-lg text-gray-600",children:"Savor the freshest seafood on the coast, enjoyed right on the docks where it was landed. Winchester Bay offers authentic, unpretentious dining at its best. Explore our top local recommendations."})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:e.map((t,n)=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:n*.1},children:r.jsx(xOe,{restaurant:t})},n))})]})}),vOe=()=>{v.useEffect(()=>{console.log("WinchesterBayPage mounted")},[]);const e=ke["winchester-bay"],t=lt("Winchester Bay"),n=ct("Winchester Bay"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2f37573b78ca4f0f6ac0a59604cf403c.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Winchester Bay Oregon Travel",description:n,url:"https://oregoncoastal.com/town/winchester-bay",image:a}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Winchester Bay, Oregon Lighthouse and Harbor",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Winchester Bay"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Winchester Bay"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Winchester Bay Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:lOe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Known as the crab capital of the Oregon Coast with a vibrant working harbor and historic lighthouse."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||43.6765,lon:e?.geo?.lng||-124.1768,townName:"Winchester Bay"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Winchester Bay",townSlug:"winchester-bay",lat:e?.geo?.lat||43.6765,lon:e?.geo?.lng||-124.1768})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Winchester Bay",featuredImage:a,title:"Winchester Bay in Photos"})}),r.jsx(dt,{attractions:rR,townName:"Winchester Bay"}),r.jsx(hOe,{attractions:rR}),r.jsx(mOe,{trails:cOe}),r.jsx(pOe,{hotels:_$}),r.jsx(yOe,{restaurants:dOe})]}),r.jsx(Ye,{})]})},bOe=`Perched between the lush temperate rainforest of the Coast Range and the dramatic basalt churn of the Pacific, Yachats (pronounced YAH-hots) is often called the "Gem of the Oregon Coast." This small village is renowned for its rocky shoreline where waves crash spectacularly against jagged cliffs, offering a more wild and untamed coastal experience than the sandy beaches to the north. Visitors flock here for the world-class hiking at Cape Perpetua, the mysterious Thor's Well, and a vibrant local arts scene that punches far above its weight for a town of its size.`,iR=[{name:"Thor's Well",description:"A gaping sinkhole in the basalt shoreline that appears to drain the ocean during high tide and storms.",image:"https://images.unsplash.com/photo-1590424555024-5d51d5469956?auto=format&fit=crop&w=800&q=80"},{name:"Cape Perpetua Scenic Area",description:"The highest point on the Oregon Coast accessible by car, offering 26 miles of trails and breathtaking views.",image:"https://images.unsplash.com/photo-1621262489823-3b6528d29759?auto=format&fit=crop&w=800&q=80"},{name:"Devil's Churn",description:"A narrow fissure in the coastal rock where the incoming tide is forced into a violent, frothing spray.",image:"https://images.unsplash.com/photo-1605342938426-5a49ca817344?auto=format&fit=crop&w=800&q=80"},{name:"Yachats Ocean Road State Natural Site",description:"A scenic one-mile loop providing easy access to tide pools and incredible wave-watching spots.",image:"https://images.unsplash.com/photo-1505245208761-ba87350d39ee?auto=format&fit=crop&w=800&q=80"}],wOe=[{name:"Saint Perpetua Trail",distance:"1.5 miles",difficulty:"Moderate",description:"Short but steep switchbacks leading to the best panoramic view of the coastline."},{name:"Amanda's Trail",distance:"3.2 miles",difficulty:"Moderate",description:"Connects Yachats to Cape Perpetua through old-growth forest, telling a somber local history."},{name:"Cook's Ridge Trail",distance:"6.4 miles",difficulty:"Challenging",description:"A beautiful loop through giant Sitka spruce and Douglas fir forests."}],jOe=[{name:"Overleaf Lodge & Spa",description:"Upscale oceanfront lodging with a full-service spa and stunning views of the rocky coast."},{name:"Adobe Resort",description:"Classic coastal resort with an award-winning restaurant and lounge overlooking the surf."},{name:"Fireside Motel",description:"Pet-friendly oceanfront motel with direct access to the 804 Trail and tide pools."}],NOe=[{name:"Ona Restaurant & Lounge",category:"Fine Dining",description:"Creative Pacific Northwest cuisine featuring local ingredients and fresh-caught seafood.",features:"Ocean views and seasonal menus"},{name:"Luna Sea Fish House",category:"Seafood",description:"Owned by a local fisherman, serving the freshest fish and chips, clam chowder, and grilled seafood.",features:"Casual atmosphere and outdoor seating"},{name:"Pelican Brewing Yachats",category:"Brewpub",description:"Located in the former home of Le Roy's Blue Whale and the Whale's Tail Diner, the remodeled neighborhood pub preserves the building's iconic indoor whale mural.",features:"Iconic indoor whale mural and neighborhood pub atmosphere"},{name:"Outta Gas Pizza",category:"Pizza",description:"Fresh hand-tossed pizza and sandwiches are served at this casual spot, which also has a game room with shuffleboard.",features:"Casual dining and game room"},{name:"Green Salmon Coffee & Tea",category:"Cafe",description:"Eco-friendly cafe specializing in organic coffees, vast tea selection, and vegan-friendly pastries.",features:"Great breakfast and specialty drinks"},{name:"Beach Street Kitchen",category:"Casual",description:"Gourmet sandwiches and bowls made from scratch with a focus on fresh, local ingredients.",features:"Health-conscious and locally sourced"}],kOe=({attraction:e,index:t})=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},className:"bg-white rounded-xl shadow-md hover:shadow-xl transition-all duration-300 overflow-hidden border border-gray-100 flex flex-col h-full",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:e?.name||"Unknown Attraction"}),r.jsx("div",{className:"bg-lime-50 p-2 rounded-full shrink-0 ml-2",children:r.jsx(We,{className:"w-5 h-5 text-lime-600"})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:e?.description||"No description available."}),e?.details&&r.jsx("div",{className:"mt-auto pt-4 border-t border-gray-100",children:r.jsx("p",{className:"text-sm font-medium text-lime-700 bg-lime-50/50 inline-block px-3 py-1 rounded-md",children:e.details})})]})}),_Oe=({attractions:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("AttractionsSection: No attractions data provided"):console.log("AttractionsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-gray-50 text-center",children:r.jsx("p",{className:"text-gray-500",children:"Attraction information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-gradient-to-b from-white to-lime-50/30",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsx(F.span,{initial:{opacity:0},whileInView:{opacity:1},className:"text-lime-600 font-bold tracking-wider uppercase text-sm",children:"Wonders of the Coast"}),r.jsx(F.h2,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},className:"text-4xl md:text-5xl font-bold text-gray-900 mt-2 mb-6",children:"Must-See Yachats Sights"}),r.jsx("div",{className:"h-1 w-24 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(kOe,{attraction:t,index:n},n))})]})})),SOe=({level:e})=>{const t={Easy:"bg-green-100 text-green-800 border-green-200",Moderate:"bg-yellow-100 text-yellow-800 border-yellow-200",Strenuous:"bg-red-100 text-red-800 border-red-200","Moderate/Hard":"bg-orange-100 text-orange-800 border-orange-200","Easy/Moderate":"bg-lime-100 text-lime-800 border-lime-200"};return r.jsx("span",{className:Se("px-2.5 py-0.5 rounded-full text-xs font-medium border",t[e]||t.Moderate),children:e||"Unknown"})},COe=({trails:e})=>(v.useEffect(()=>{!e||e.length===0?console.warn("HikingTrailsSection: No trails data provided"):console.log("HikingTrailsSection loaded with:",e.length,"items")},[e]),!e||e.length===0?r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa] text-center",children:r.jsx("p",{className:"text-gray-500",children:"Hiking trail information currently unavailable."})}):r.jsx("section",{className:"py-20 px-4 bg-[#f8f9fa]",children:r.jsxs("div",{className:"max-w-5xl mx-auto",children:[r.jsx("div",{className:"flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8",children:r.jsxs("div",{className:"max-w-2xl",children:[r.jsxs("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3",children:[r.jsx(wt,{className:"w-8 h-8 text-emerald-600"}),"Hiking Trails & Nature"]}),r.jsx("p",{className:"text-gray-600 text-lg",children:"From the dramatic heights of Cape Perpetua to the gentle coastal paths of the 804, Yachats offers some of the most spectacular hiking in the Pacific Northwest."})]})}),r.jsx("div",{className:"grid grid-cols-1 gap-4",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.05},className:"bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors",children:t.name}),r.jsxs("div",{className:"flex items-center gap-3 flex-wrap",children:[r.jsx(SOe,{level:t.difficulty}),r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(gt,{className:"w-4 h-4"})," ",t.distance]}),t.elevation&&r.jsxs("span",{className:"text-sm text-gray-500 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-4 h-4"})," ",t.elevation]})]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed text-sm md:text-base",children:t.description})]},n))})]})})),TOe=({hotels:e})=>{const t="Yachats";return r.jsx(mt,{townName:t,fallbackHotels:e,affiliateHotels:st[t]})},mj=({restaurant:e})=>r.jsxs("div",{className:"bg-white/80 backdrop-blur-sm p-6 rounded-xl border border-orange-100 hover:border-orange-300 transition-all shadow-sm hover:shadow-md h-full flex flex-col",children:[r.jsxs("div",{className:"flex justify-between items-baseline mb-3",children:[r.jsx("h3",{className:"text-xl font-bold text-orange-950",children:e?.name||"Restaurant Name"}),e?.category&&r.jsx("span",{className:"text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md whitespace-nowrap",children:e.category})]}),r.jsx("p",{className:"text-gray-700 mb-4 text-sm leading-relaxed flex-grow",children:e?.description||"No description available."}),e?.features&&r.jsxs("div",{className:"pt-3 border-t border-orange-100/50 mt-auto",children:[r.jsx("p",{className:"text-xs font-bold text-orange-800 uppercase tracking-wide",children:"Highlight"}),r.jsx("p",{className:"text-sm text-gray-600",children:e.features})]})]}),AOe=({src:e,alt:t,caption:n})=>r.jsxs("div",{className:"group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8",children:[r.jsx("img",{src:e,alt:t,className:"w-full h-full object-cover transition-transform duration-700 group-hover:scale-105",loading:"lazy"}),r.jsx("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6",children:r.jsx("p",{className:"text-white font-medium text-lg border-l-4 border-orange-500 pl-3",children:n})})]}),POe=({restaurants:e})=>{if(v.useEffect(()=>{!e||e.length===0?console.warn("RestaurantsSection: No restaurant data provided"):console.log("RestaurantsSection loaded with:",e.length,"items")},[e]),!e||e.length===0)return r.jsx("section",{className:"py-24 px-4 bg-orange-50 text-center",children:r.jsx("p",{className:"text-orange-900",children:"Dining information currently unavailable."})});const t=e.slice(0,3),n=e.slice(3,6),a=e.slice(6,9);return r.jsx("section",{className:"py-24 px-4 bg-orange-50",children:r.jsxs("div",{className:"max-w-6xl mx-auto",children:[r.jsxs("div",{className:"text-center mb-16",children:[r.jsxs("div",{className:"flex items-center justify-center gap-2 mb-4 text-orange-600",children:[r.jsx(rt,{className:"w-6 h-6"}),r.jsx(Nt,{className:"w-6 h-6"}),r.jsx(bt,{className:"w-6 h-6"})]}),r.jsx("h2",{className:"text-4xl md:text-5xl font-bold text-gray-900 mb-4",children:"Dining in Yachats"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Small village, big flavors. From fresh seafood caught by local fishermen to organic bakeries and farm-to-table dining."})]}),r.jsx("div",{className:"grid md:grid-cols-3 gap-8 items-stretch mb-16",children:t.map((i,s)=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:s*.1},children:r.jsx(mj,{restaurant:i})},s))}),r.jsx(AOe,{src:"https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=1200&q=80",alt:"Coastal dining in Yachats",caption:"Local flavors with a Pacific view"}),r.jsx("div",{className:"grid md:grid-cols-3 gap-6 items-stretch mb-16",children:n.map((i,s)=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:s*.1},children:r.jsx(mj,{restaurant:i})},s))}),a.length>0&&r.jsx("div",{className:"grid md:grid-cols-3 gap-6 items-stretch",children:a.map((i,s)=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:s*.1},children:r.jsx(mj,{restaurant:i})},s))})]})})},EOe=[{title:"Yachats Mushroom Festival",date:"October 16–18, 2026"},{title:"Yachats Music Festival",date:"July 9–11, 2027"},{title:"La de da Parade",date:"July 4, 2027"},{title:"Weekly Pickleball",date:"Recurring (Mondays/Thursdays)"}],OOe=()=>{v.useEffect(()=>{console.log("YachatsPage mounted")},[]);const e=ke.yachats,t=lt("Yachats"),n=ct("Yachats"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e7a98346b0f2453dedf2c0e629d0d68c.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n})]}),r.jsx(Mt,{name:"Yachats, Oregon",description:n,image:a,url:window.location.href,geo:{latitude:44.3112,longitude:-124.1049}}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Yachats, Oregon coastline",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Yachats"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Yachats"}),r.jsx("div",{className:"h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Yachats Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:bOe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:'Nestled between lush forest and the wild Pacific, Yachats is often called the "Gem of the Oregon Coast."'})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||44.3112,lon:e?.geo?.lng||-124.1049,townName:"Yachats"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Yachats",townSlug:"yachats",lat:e?.geo?.lat||44.3112,lon:e?.geo?.lng||-124.1049})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Yachats",featuredImage:a,title:"Yachats Gallery"})}),r.jsx(dt,{attractions:iR,townName:"Yachats"}),r.jsx(_Oe,{attractions:iR}),r.jsx(COe,{trails:wOe}),r.jsx($r,{events:EOe}),r.jsx(TOe,{hotels:jOe}),r.jsx(POe,{restaurants:NOe})]}),r.jsx(Ye,{})]})},ROe=`
<p>Seal Rock is a captivating stretch of the Central Oregon Coast where the forest tumbles directly into the sea, meeting a chaotic and beautiful jumble of basalt sea stacks. Named for the seals that have historically hauled out on the offshore rocks, this small, unincorporated community offers some of the most dramatic and accessible geology on the entire coastline.</p>
<p>Unlike its busier neighbors, Newport and Waldport, Seal Rock is a quiet sanctuary. The main attraction is the Seal Rock State Recreation Site, where a short trail through an enchanting spruce forest leads to massive rock formations that break the waves and create protected tide pools teeming with life. At low tide, it is a premier destination for discovering starfish, anemones, and crabs in their natural habitat.</p>
<p>The village itself is a charming collection of artisan shops, galleries, and a few eateries that reflect the slow, nature-focused pace of life here. Whether you are storm watching from the bluffs, hunting for agates on the beach, or watching the sunset illuminate Elephant Rock, Seal Rock offers a concentrated dose of the wild beauty that defines Oregon.</p>
`,sR=[{name:"Seal Rock State Recreation Site",description:"The crown jewel of the area. A short, paved trail winds through old-growth spruce to viewpoints overlooking Elephant Rock and a chain of basalt sea stacks. Steep trails lead down to the beach and excellent tide pools.",details:"Day-use only. Great for picnics and birdwatching."},{name:"Elephant Rock",description:"The massive, trunk-like rock formation that dominates the view from the state park. It's a favorite subject for photographers, especially at sunset when the silhouette is stark against the colorful sky.",details:"Best viewed from the upper viewpoint."},{name:"Seal Rock Tide Pools",description:"Located at the base of the sea stacks, these are some of the most accessible and diverse tide pools on the coast. Expect to see giant green anemones, purple sea stars, chitons, and hermit crabs.",details:"Check tide tables! Go at low tide for safety."},{name:"Driftwood Beach State Recreation Site",description:"Just north of Seal Rock, this wide, flat beach is famous for the massive amounts of driftwood that wash ashore. It's a popular spot for building beach forts and having bonfires.",details:"Restrooms and picnic tables available."},{name:"Brian Booth State Park (Ona Beach)",description:"Located just south, this park offers a unique mix of beach and kayaking opportunities along Beaver Creek. It's a fantastic spot for paddling through quiet wetlands to spot herons and otters.",details:"Kayak rentals available nearby seasonally."},{name:"Seal Rock Wood Carvers",description:"A local landmark and gallery featuring intricate wood carvings, largely of marine life and bears. It's a testament to the artisan spirit of the community.",details:"Located right on Highway 101."},{name:"Jaquito's Rock",description:"Another prominent sea stack visible from the beach, often bustling with seabirds like cormorants and gulls. It adds to the rugged, rocky aesthetic of the coastline.",details:"Bring binoculars for birdwatching."}],IOe=[{name:"Seal Rock State Park Loop",distance:"0.5 miles",difficulty:"Easy",description:"A gentle, ADA-accessible path through a magical Sitka spruce forest that leads to the main observation deck. It's short but incredibly scenic."},{name:"Beach Access Trail",distance:"0.2 miles (steep)",difficulty:"Moderate",description:"From the viewpoint, a steeper trail descends to the beach and tide pools. Use caution on the rocks, which can be slippery with kelp and algae."},{name:"Driftwood Beach Trail",distance:"1.0 mile",difficulty:"Easy",description:"A sandy walk along the beach north of Seal Rock. It's flat and open, perfect for long walks with the dog or finding the perfect piece of driftwood."},{name:"Beaver Creek Marsh Trail",distance:"3.5 miles varied",difficulty:"Easy",description:"Located at nearby Ona Beach, this trail winds through the marshlands behind the beach. It's a quiet, flat path excellent for spotting elk and waterfowl."},{name:"Cooper Ridge Nature Trail",distance:"1.7 miles loop",difficulty:"Moderate",description:"Located a bit north in South Beach State Park, this trail offers a slightly elevated hike through dense shore pine forest with ocean peeks."},{name:"Ona Beach to Seal Rock Beach Walk",distance:"2.5 miles (one way)",difficulty:"Moderate",description:"At very low tide, it's possible to walk along the sand between these two parks, navigating around rocky outcrops. Check tides carefully to avoid getting trapped!"}],MOe=st.Waldport||[],LOe=[{name:"Yachats Brewing + Farmstore",category:"Brewery/Farm-to-Table",description:"While technically in nearby Yachats, it's the closest premier dining spot. Known for fermented vegetables, house-smoked meats, and exceptional beers.",features:"Organic ingredients, outdoor patio, probiotic foods."},{name:"Indulge Sweets",category:"Bakery/Cafe",description:"A local favorite for fudge, truffles, and ice cream. It's the perfect stop after a hike at the state park to satisfy your sweet tooth.",features:"Handmade chocolates, espresso, salt water taffy."},{name:"Hilltop Cafe-Bistro",category:"American/Bistro",description:"Located just north in Waldport, offering hearty breakfasts and lunches with a view. Famous for their benedicts and friendly service.",features:"Breakfast all day, ocean views, comfort food."}],DOe=({attractions:e})=>r.jsx("section",{className:"py-16 px-4 bg-gray-50 border-t border-gray-100",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-12",children:[r.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4",children:"Things to Do in Seal Rock"}),r.jsx("div",{className:"h-1 w-20 bg-lime-500 mx-auto rounded-full"})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",children:e.map((t,n)=>r.jsx(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.1},className:"bg-white rounded-xl shadow-md overflow-hidden hover:shadow-lg transition-shadow border border-gray-100 flex flex-col",children:r.jsxs("div",{className:"p-6 flex flex-col h-full",children:[r.jsxs("div",{className:"flex items-start mb-4",children:[r.jsx("div",{className:"bg-blue-50 p-3 rounded-full mr-4 text-blue-600",children:r.jsx(We,{className:"w-6 h-6"})}),r.jsx("div",{children:r.jsx("h3",{className:"text-xl font-bold text-gray-900 leading-tight",children:t.name})})]}),r.jsx("p",{className:"text-gray-600 mb-6 flex-grow leading-relaxed",children:t.description}),t.details&&r.jsxs("div",{className:"bg-gray-50 rounded-lg p-4 mt-auto border border-gray-100",children:[r.jsxs("div",{className:"flex items-center text-sm text-gray-700 font-medium mb-1",children:[r.jsx(yI,{className:"w-4 h-4 mr-2 text-blue-500"}),"Good to Know"]}),r.jsx("p",{className:"text-sm text-gray-600 ml-6",children:t.details})]})]})},n))})]})}),BOe=({trails:e})=>r.jsx("section",{className:"py-16 px-4 bg-white border-t border-gray-100",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-12",children:[r.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4",children:"Hiking & Trails"}),r.jsx("div",{className:"h-1 w-20 bg-emerald-600 mx-auto rounded-full mb-6"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Discover the best coastal trails and nature walks around Seal Rock."})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.1},className:"bg-gray-50 rounded-xl p-6 border border-gray-100 hover:border-emerald-200 transition-colors h-full flex flex-col shadow-sm",children:[r.jsxs("h3",{className:"text-xl font-bold text-gray-900 mb-3 flex items-center",children:[r.jsx(Vq,{className:"w-5 h-5 mr-2 text-emerald-600"}),t.name]}),r.jsxs("div",{className:"flex items-center space-x-4 mb-4 text-sm font-medium",children:[r.jsx("span",{className:`px-3 py-1 rounded-full ${t.difficulty==="Easy"?"bg-green-100 text-green-700":t.difficulty==="Moderate"?"bg-yellow-100 text-yellow-700":"bg-red-100 text-red-700"}`,children:t.difficulty}),r.jsxs("span",{className:"text-gray-600 flex items-center",children:[r.jsx(We,{className:"w-4 h-4 mr-1 text-gray-400"}),t.distance]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed",children:t.description})]},n))})]})}),FOe=({hotels:e})=>r.jsx(mt,{hotels:e,title:"Where to Stay near Seal Rock",description:"While Seal Rock offers primarily vacation rentals, nearby Waldport provides excellent oceanfront hotels and cozy inns just minutes away."}),zOe=()=>{const e=[{name:"Luna Sea Fish House",category:"Seafood Restaurant",description:"Relaxed eatery featuring beer-battered cod, halibut and fish tacos, plus seafood platters.",features:"Happy hour food, Private dining room, Great cocktails",address:"10111 NW Pacific Coast Hwy, Seal Rock, OR 97376",phone:"(541) 563-5862",hours:"Open · Closes 9 PM",rating:null,price:null},{name:"Chubby Lil Mermaid Bakery and Gift Shop",category:"Bakery",description:"Cozy bakery stocking a variety of donuts, cookies and cakes.",features:null,address:"10645 NW Pacific Coast Hwy, Seal Rock, OR 97376",phone:"(541) 819-1555",hours:"Open · Closes 3 PM",rating:null,price:null},{name:"3 Burritos",category:"Mexican Restaurant",description:"Authentic Mexican cuisine offering delicious burritos and more along the coast.",features:null,address:"10841 NW Pacific Coast Hwy, Seal Rock, OR 97376",phone:"(541) 543-7174",hours:null,rating:"4.8",price:"$10–20"},{name:"Indulge Sweets",category:"BAKERY/CAFE",description:"A local favorite for fudge, truffles, and ice cream. It's the perfect stop after a hike at the state park to satisfy your sweet tooth.",features:"Handmade chocolates, espresso, salt water taffy",address:null,phone:null,hours:null,rating:null,price:null}];return r.jsx("section",{className:"py-16 px-4 bg-gray-50 border-t border-gray-100",children:r.jsxs("div",{className:"max-w-7xl mx-auto",children:[r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:"text-center mb-12",children:[r.jsx("h2",{className:"text-3xl md:text-4xl font-bold text-gray-900 mb-4",children:"Where to Eat"}),r.jsx("div",{className:"h-1 w-20 bg-orange-500 mx-auto rounded-full mb-6"}),r.jsx("p",{className:"text-lg text-gray-600 max-w-2xl mx-auto",children:"Enjoy local flavors and coastal cuisine around Seal Rock."})]}),r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:e.map((t,n)=>r.jsxs(F.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:n*.1},className:"bg-white rounded-xl p-6 border border-gray-100 shadow-sm hover:shadow-md transition-shadow h-full flex flex-col",children:[r.jsxs("div",{className:"flex items-start justify-between mb-4",children:[r.jsxs("h3",{className:"text-xl font-bold text-gray-900 flex items-center",children:[r.jsx(rt,{className:"w-5 h-5 mr-2 text-orange-500"}),t.name]}),t.rating&&r.jsxs("div",{className:"flex items-center bg-orange-50 px-2 py-1 rounded-md",children:[r.jsx(Fu,{className:"w-4 h-4 text-orange-500 mr-1 fill-current"}),r.jsx("span",{className:"text-sm font-semibold text-orange-700",children:t.rating})]})]}),r.jsxs("div",{className:"mb-4 flex flex-wrap gap-2",children:[r.jsx("span",{className:"inline-block bg-orange-50 text-orange-700 text-xs font-semibold px-3 py-1 rounded-full uppercase tracking-wide",children:t.category}),t.price&&r.jsxs("span",{className:"inline-flex items-center bg-green-50 text-green-700 text-xs font-semibold px-3 py-1 rounded-full",children:[r.jsx(_q,{className:"w-3 h-3 mr-0.5"}),t.price]})]}),r.jsx("p",{className:"text-gray-600 leading-relaxed mb-6 flex-grow",children:t.description}),r.jsxs("div",{className:"space-y-2 mt-auto text-sm text-gray-600",children:[t.address&&r.jsxs("div",{className:"flex items-start",children:[r.jsx(We,{className:"w-4 h-4 mr-2 text-gray-400 mt-0.5 flex-shrink-0"}),r.jsx("span",{children:t.address})]}),t.phone&&r.jsxs("div",{className:"flex items-center",children:[r.jsx(qq,{className:"w-4 h-4 mr-2 text-gray-400 flex-shrink-0"}),r.jsx("span",{children:t.phone})]}),t.hours&&r.jsxs("div",{className:"flex items-center text-green-600 font-medium",children:[r.jsx(gI,{className:"w-4 h-4 mr-2 flex-shrink-0"}),r.jsx("span",{children:t.hours})]})]}),t.features&&r.jsxs("div",{className:"mt-4 pt-4 border-t border-gray-100 flex items-start text-sm text-gray-500",children:[r.jsx(Fu,{className:"w-4 h-4 mr-2 text-yellow-400 flex-shrink-0 mt-0.5 fill-current"}),r.jsx("span",{className:"italic",children:t.features})]})]},n))})]})})},$Oe=()=>{v.useEffect(()=>{console.log("SealRockPage mounted")},[]);const e=ke["seal-rock"],t=lt("Seal Rock"),n=ct("Seal Rock"),a="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/8827892cb93ca1b0cd53550f0936dcde.webp";return r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsxs($e,{children:[r.jsx("title",{children:t}),r.jsx("meta",{name:"description",content:n}),r.jsx("meta",{property:"og:title",content:t}),r.jsx("meta",{property:"og:description",content:n}),r.jsx("link",{rel:"canonical",href:"https://oregoncoastal.com/seal-rock"})]}),r.jsx(ut,{}),r.jsx(Ge,{}),r.jsxs("div",{className:"relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900",children:[r.jsxs(F.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:"absolute inset-0",children:[r.jsx("img",{src:a,alt:"Seal Rock, Oregon coastline",className:"w-full h-full object-cover opacity-90"}),r.jsx("div",{className:"absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80"})]}),r.jsxs("div",{className:"relative z-10 h-full flex flex-col items-center justify-end pb-24 text-center px-4 max-w-5xl mx-auto",children:[r.jsx(xt,{townName:"Seal Rock"}),r.jsx(F.h1,{initial:{opacity:0,y:30},animate:{opacity:1,y:0},transition:{duration:.8},className:"text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-4",children:"Seal Rock"}),r.jsx("div",{className:"h-1.5 w-32 bg-teal-400 rounded-full mb-0 shadow-lg"})]})]}),r.jsxs("main",{className:"w-full flex-grow",children:[r.jsxs("section",{className:"py-16 px-4 bg-white relative",children:[r.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 -translate-y-1/2 bg-white p-4 rounded-full shadow-xl z-10",children:r.jsx("span",{className:"text-4xl",children:"🌊"})}),r.jsxs("div",{className:"max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12",children:[r.jsxs(F.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"lg:col-span-2 bg-slate-50 rounded-2xl border border-gray-200 p-6 lg:p-8 shadow-sm flex flex-col h-full",children:[r.jsx("div",{className:"flex flex-col items-start gap-3 mb-6",children:r.jsx("h2",{className:"text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight",children:"About Seal Rock Oregon"})}),r.jsx("div",{className:"flex-grow",children:r.jsx("div",{className:"text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left",dangerouslySetInnerHTML:{__html:ROe}})}),r.jsx("div",{className:"mt-8 pt-6 border-t border-gray-200 mt-auto",children:r.jsx("p",{className:"text-sm text-gray-500 font-medium italic text-left",children:"Located on the beautiful Oregon Coast, Seal Rock is renowned for its tide pools and dramatic basalt sea stacks."})})]}),r.jsx(F.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.6,delay:.2},className:"lg:col-span-1 h-full",children:r.jsx("div",{className:"h-full w-full",children:r.jsx(yt,{lat:e?.geo?.lat||44.4984,lon:e?.geo?.lng||-124.0829,townName:"Seal Rock"})})})]}),r.jsx("div",{className:"max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8",children:r.jsx(ft,{townName:"Seal Rock",townSlug:"seal-rock",lat:e?.geo?.lat||44.4984,lon:e?.geo?.lng||-124.0829})})]}),r.jsx("div",{className:"relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16",children:r.jsx(ht,{townName:"Seal Rock",featuredImage:a,title:"Seal Rock in Photos"})}),r.jsx(dt,{attractions:sR,townName:"Seal Rock"}),r.jsx(DOe,{attractions:sR}),r.jsx(BOe,{trails:IOe}),r.jsx(FOe,{hotels:MOe}),r.jsx(zOe,{restaurants:LOe})]}),r.jsx(Ye,{})]})},HOe=()=>{const[e,t]=v.useState(""),[n,a]=v.useState(""),[i,s]=v.useState(!1),[o,l]=v.useState(null),[c,h]=v.useState("idle"),[m,p]=v.useState(""),[x,b]=v.useState(!1),{login:j,isAuthenticated:N}=ch(),_=rh(),{toast:S}=ip();v.useEffect(()=>{N&&_("/admin")},[N,_]);const A=async()=>{h("testing"),p("Pinging Supabase Auth Service...");try{const O=Date.now(),{data:M,error:z}=await Ht.auth.getSession(),$=Date.now()-O;z?(h("error"),p(`Connection Failed (${$}ms): ${z.message}`)):(h("success"),p(`Connected successfully (${$}ms). Service is reachable.`))}catch(O){h("error"),p(`Network Exception: ${O.message}`)}},P=async()=>{b(!0);try{const{data:O,error:M}=await Ht.functions.invoke("reset-admin-user");if(M)throw M;if(O.success)S({title:`Admin User ${O.action==="created"?"Created":"Reset"}`,description:`User ID: ${O.userId}. Password reset to "password".`,className:"bg-blue-50 border-blue-200 text-blue-900"}),t("admin@example.com"),a("password");else throw new Error(O.error||"Unknown error in edge function")}catch(O){S({title:"Reset Failed",description:O.message,variant:"destructive"})}finally{b(!1)}},I=async O=>{O.preventDefault(),l(null),s(!0);try{const M=await j(e,n);M.success?(S({title:"Login Successful",description:"Welcome back, Admin!",className:"bg-green-50 border-green-200 text-green-900"}),_("/admin")):(l({message:M.error,code:M.details?.code||M.details?.status||"UNKNOWN",hint:M.details?.name||"Auth Error"}),S({title:"Login Failed",description:M.error,variant:"destructive"}),s(!1))}catch(M){l({message:"An unexpected client-side error occurred.",code:"CLIENT_EXCEPTION",hint:M.message}),s(!1)}};return r.jsxs("div",{className:"min-h-screen bg-gray-50 flex flex-col",children:[r.jsx(Ge,{}),r.jsx("div",{className:"flex-grow flex items-center justify-center px-4 py-12",children:r.jsxs("div",{className:"max-w-md w-full space-y-8",children:[r.jsxs("div",{className:"bg-white rounded-xl shadow-lg p-8 border border-gray-100",children:[r.jsxs("div",{className:"text-center mb-8",children:[r.jsx("div",{className:"bg-lime-100 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4",children:r.jsx(JT,{className:"w-8 h-8 text-[#2d5016]"})}),r.jsx("h1",{className:"text-2xl font-bold text-gray-900",children:"Admin Access"}),r.jsx("p",{className:"text-gray-500 mt-2",children:"Sign in to manage content"})]}),o&&r.jsx("div",{className:"mb-6 bg-red-50 border border-red-200 rounded-lg p-4",children:r.jsxs("div",{className:"flex items-start gap-3",children:[r.jsx(Qe,{className:"w-5 h-5 text-red-600 flex-shrink-0 mt-0.5"}),r.jsxs("div",{className:"flex-1",children:[r.jsx("h4",{className:"text-sm font-semibold text-red-800",children:"Login Failed"}),r.jsx("p",{className:"text-sm text-red-700 mt-1",children:o.message}),(o.code||o.hint)&&r.jsxs("div",{className:"mt-2 text-xs font-mono bg-red-100 p-2 rounded text-red-800 overflow-x-auto",children:["Code: ",o.code,r.jsx("br",{}),"Type: ",o.hint]})]})]})}),r.jsxs("form",{onSubmit:I,className:"space-y-6",children:[r.jsxs("div",{children:[r.jsx("label",{htmlFor:"email",className:"block text-sm font-medium text-gray-700 mb-1",children:"Email Address"}),r.jsxs("div",{className:"relative",children:[r.jsx(Hq,{className:"absolute left-3 top-2.5 h-5 w-5 text-gray-400"}),r.jsx("input",{id:"email",name:"email",type:"email",required:!0,value:e,onChange:O=>{t(O.target.value),o&&l(null)},className:"w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-[#2d5016] focus:border-transparent outline-none transition-all text-gray-900 bg-white",placeholder:"admin@example.com",autoComplete:"email"})]})]}),r.jsxs("div",{children:[r.jsx("label",{htmlFor:"password",className:"block text-sm font-medium text-gray-700 mb-1",children:"Password"}),r.jsxs("div",{className:"relative",children:[r.jsx(JT,{className:"absolute left-3 top-2.5 h-5 w-5 text-gray-400"}),r.jsx("input",{id:"password",name:"password",type:"password",required:!0,value:n,onChange:O=>{a(O.target.value),o&&l(null)},className:"w-full pl-10 pr-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-[#2d5016] focus:border-transparent outline-none transition-all text-gray-900 bg-white",placeholder:"••••••••",autoComplete:"current-password"})]})]}),r.jsx(pn,{type:"submit",disabled:i,className:"w-full bg-[#2d5016] hover:bg-[#1a300d] text-white py-2 rounded-lg font-semibold shadow-md transition-all hover:scale-[1.02]",children:i?r.jsxs(r.Fragment,{children:[r.jsx(Fr,{className:"mr-2 h-4 w-4 animate-spin"}),"Authenticating..."]}):"Sign In"})]})]}),r.jsxs("div",{className:"space-y-4",children:[r.jsxs("div",{className:"bg-gray-100 rounded-xl p-4 border border-gray-200",children:[r.jsxs("div",{className:"flex items-center justify-between mb-3",children:[r.jsx("h3",{className:"text-xs font-semibold text-gray-500 uppercase tracking-wider",children:"System Status"}),r.jsxs(pn,{variant:"ghost",size:"sm",onClick:A,className:"h-6 text-xs text-gray-600 hover:text-gray-900",disabled:c==="testing",children:[c==="testing"?r.jsx(Fr,{className:"w-3 h-3 animate-spin"}):r.jsx(Sm,{className:"w-3 h-3 mr-1"})," Test Connection"]})]}),r.jsx("div",{className:`text-xs p-2 rounded border ${c==="success"?"bg-green-50 border-green-200 text-green-700":c==="error"?"bg-red-50 border-red-200 text-red-700":"bg-white border-gray-200 text-gray-500"}`,children:r.jsxs("div",{className:"flex items-center gap-2",children:[c==="success"?r.jsx(dG,{className:"w-3 h-3"}):c==="error"?r.jsx(cG,{className:"w-3 h-3"}):r.jsx("div",{className:"w-2 h-2 rounded-full bg-gray-300"}),r.jsx("span",{children:m||"Click 'Test Connection' to verify database reachability."})]})})]}),r.jsxs("div",{className:"bg-blue-50 rounded-xl p-4 border border-blue-100",children:[r.jsx("div",{className:"flex items-center justify-between mb-2",children:r.jsxs("h3",{className:"text-xs font-semibold text-blue-800 uppercase tracking-wider flex items-center gap-1",children:[r.jsx(eG,{className:"w-3 h-3"})," Admin Recovery"]})}),r.jsx("p",{className:"text-xs text-blue-600 mb-3",children:"Can't login? Reset the default admin account."}),r.jsx(pn,{variant:"outline",size:"sm",onClick:P,disabled:x,className:"w-full h-8 text-xs border-blue-200 text-blue-700 hover:bg-blue-100 hover:text-blue-800",children:x?r.jsxs(r.Fragment,{children:[r.jsx(Fr,{className:"w-3 h-3 animate-spin mr-2"}),"Resetting User..."]}):"Reset User (admin@example.com)"})]})]})]})})]})},WOe=({townName:e,onUploadComplete:t})=>{const{isAuthenticated:n}=ch(),[a,i]=v.useState([]),[s,o]=v.useState(!1),[l,c]=v.useState(0),h=v.useRef(null),{toast:m}=ip(),p=P=>{P.preventDefault(),P.stopPropagation()},x=P=>{P.preventDefault(),P.stopPropagation(),!s&&P.dataTransfer.files&&P.dataTransfer.files.length>0&&j(P.dataTransfer.files)},b=P=>{P.target.files&&P.target.files.length>0&&j(P.target.files),h.current&&(h.current.value="")},j=P=>{const I=Array.from(P).filter(O=>{const M=O.type.startsWith("image/"),z=O.size<=10*1024*1024;return M&&z}).map(O=>({file:O,id:Math.random().toString(36).substr(2,9),preview:URL.createObjectURL(O),status:"pending",errorMessage:""}));if(I.length===0){m({title:"Invalid Files",description:"Please select valid images (Max 10MB).",variant:"destructive"});return}i(O=>[...O,...I])},N=P=>{s||i(I=>I.filter(O=>O.id!==P))},_=()=>{s||(i([]),c(0))},S=async()=>{if(!e){m({title:"Error",description:"No town selected.",variant:"destructive"});return}const{data:{session:P},error:I}=await Ht.auth.getSession();if(!P||I){m({title:"Authentication Error",description:"You must be logged in to upload photos.",variant:"destructive"});return}const O=a.filter(K=>K.status==="pending"||K.status==="error");if(O.length===0)return;o(!0),c(0);let M=0,z=0;const $=O.length;for(const K of O){A(K.id,"uploading");try{const X=K.file.name.split(".").pop(),te=e.toLowerCase().replace(/[^a-z0-9]/g,"-"),q=Math.random().toString(36).substring(2,10),he=`${te}-${q}.${X}`,{error:ne}=await Ht.storage.from("town-images").upload(he,K.file,{cacheControl:"3600",upsert:!1});if(ne)throw new Error(`Upload failed: ${ne.message}`);const{data:{publicUrl:G}}=Ht.storage.from("town-images").getPublicUrl(he);A(K.id,"optimizing");let H=G,Q=null,W=null,ie=null;try{const{data:V,error:re}=await Ht.functions.invoke("optimize-image",{body:{imageUrl:G,fileName:he}});re?console.warn("Optimization warning (non-fatal):",re):V?.success&&(H=V.optimizedUrl,Q=V.thumbnailUrl,W=V.originalSize,ie=V.optimizedSize)}catch(V){console.error("Optimization fetch error:",V)}const{error:Y}=await Ht.from("town_photos").insert([{town_name:e,image_url:H,thumbnail_url:Q||H,original_size:W,optimized_size:ie,caption:K.file.name.split(".")[0]}]);if(Y)throw Y;A(K.id,"success"),M++}catch(X){console.error(`Error uploading ${K.file.name}:`,X),A(K.id,"error",X.message)}z++,c(Math.round(z/$*100))}o(!1),M>0&&(m({title:"Upload Complete",description:`Successfully uploaded ${M} photos for ${e}.`,className:"bg-green-50 border-green-200 text-green-900"}),t&&(console.log("Triggering onUploadComplete"),t()),setTimeout(()=>{i(K=>K.filter(X=>X.status!=="success")),c(0)},2e3))},A=(P,I,O="")=>{i(M=>M.map(z=>z.id===P?{...z,status:I,errorMessage:O}:z))};return!n&&!s?r.jsxs("div",{className:"bg-amber-50 p-6 rounded-xl border border-amber-200 text-center",children:[r.jsx(Qq,{className:"w-8 h-8 text-amber-600 mx-auto mb-2"}),r.jsx("h3",{className:"font-semibold text-amber-800",children:"Authentication Required"}),r.jsx("p",{className:"text-sm text-amber-700 mt-1",children:"You must be logged in as an admin to upload photos."})]}):r.jsxs("div",{className:"bg-white p-6 rounded-xl border border-gray-200 shadow-sm",children:[r.jsx("div",{className:"flex justify-between items-center mb-4",children:r.jsxs("h3",{className:"text-lg font-semibold text-gray-800 flex items-center gap-2",children:[r.jsx(QT,{className:"w-5 h-5 text-[#2d5016]"}),"Upload Photos for ",e]})}),r.jsxs("div",{className:`border-2 border-dashed rounded-lg p-8 text-center transition-all cursor-pointer relative
${e?"hover:bg-gray-50":"opacity-50 pointer-events-none bg-gray-50"}
${s?"opacity-70 pointer-events-none":""}`,onDragOver:p,onDrop:x,onClick:()=>!s&&e&&h.current?.click(),children:[r.jsx("input",{type:"file",ref:h,className:"hidden",multiple:!0,accept:"image/*",onChange:b}),r.jsxs("div",{className:"flex flex-col items-center justify-center gap-2",children:[r.jsx("div",{className:"bg-gray-100 p-3 rounded-full text-gray-500",children:s?r.jsx(Fr,{className:"w-6 h-6 animate-spin"}):r.jsx(Mq,{className:"w-6 h-6"})}),r.jsx("p",{className:"text-sm font-medium text-gray-700",children:s?"Uploading in progress...":"Click to select or drag photos here"}),!s&&r.jsx("p",{className:"text-xs text-gray-500",children:"Max 10MB per file • Optimized automatically"})]})]}),a.length>0&&r.jsxs("div",{className:"mt-6 space-y-4",children:[r.jsxs("div",{className:"flex justify-between items-center border-b border-gray-100 pb-2",children:[r.jsxs("span",{className:"text-sm font-medium text-gray-700",children:["Queue (",a.length,")"]}),!s&&r.jsx("button",{onClick:_,className:"text-xs text-red-500 hover:text-red-700",children:"Clear all"})]}),r.jsx("div",{className:"max-h-60 overflow-y-auto space-y-2 pr-1",children:a.map(P=>r.jsxs("div",{className:"flex items-center gap-3 bg-gray-50 p-2 rounded border border-gray-200",children:[r.jsx("div",{className:"w-10 h-10 rounded overflow-hidden flex-shrink-0 bg-gray-200",children:r.jsx("img",{src:P.preview,alt:"",className:"w-full h-full object-cover"})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[r.jsx("p",{className:"text-sm text-gray-700 truncate",children:P.file.name}),r.jsxs("p",{className:"text-xs flex items-center gap-1",children:[P.status==="pending"&&r.jsx("span",{className:"text-gray-500",children:"Ready"}),P.status==="uploading"&&r.jsxs("span",{className:"text-blue-600 flex items-center gap-1",children:[r.jsx(Fr,{className:"w-3 h-3 animate-spin"})," Uploading..."]}),P.status==="optimizing"&&r.jsxs("span",{className:"text-purple-600 flex items-center gap-1",children:[r.jsx(nG,{className:"w-3 h-3 animate-pulse"})," Optimizing..."]}),P.status==="success"&&r.jsxs("span",{className:"text-green-600 flex items-center gap-1",children:[r.jsx(Rk,{className:"w-3 h-3"})," Done"]}),P.status==="error"&&r.jsxs("span",{className:"text-red-600 flex items-center gap-1",children:[r.jsx(Qe,{className:"w-3 h-3"})," Failed"]})]})]}),P.status==="pending"&&!s&&r.jsx("button",{onClick:()=>N(P.id),className:"text-gray-400 hover:text-red-500",children:r.jsx(Uc,{className:"w-4 h-4"})})]},P.id))}),a.some(P=>P.status==="pending"||P.status==="error")&&r.jsx(pn,{onClick:S,disabled:s||!e,className:"w-full bg-[#2d5016] hover:bg-[#1a300d] transition-all",children:s?r.jsxs(r.Fragment,{children:[r.jsx(Fr,{className:"w-4 h-4 mr-2 animate-spin"}),"Processing ",l,"%"]}):r.jsxs(r.Fragment,{children:[r.jsx(QT,{className:"w-4 h-4 mr-2"}),"Start Upload"]})})]})]})};var pj="focusScope.autoFocusOnMount",gj="focusScope.autoFocusOnUnmount",oR={bubbles:!1,cancelable:!0},VOe="FocusScope",S$=v.forwardRef((e,t)=>{const{loop:n=!1,trapped:a=!1,onMountAutoFocus:i,onUnmountAutoFocus:s,...o}=e,[l,c]=v.useState(null),h=Ga(i),m=Ga(s),p=v.useRef(null),x=na(t,N=>c(N)),b=v.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;v.useEffect(()=>{if(a){let N=function(P){if(b.paused||!l)return;const I=P.target;l.contains(I)?p.current=I:ll(p.current,{select:!0})},_=function(P){if(b.paused||!l)return;const I=P.relatedTarget;I!==null&&(l.contains(I)||ll(p.current,{select:!0}))},S=function(P){if(document.activeElement===document.body)for(const O of P)O.removedNodes.length>0&&ll(l)};document.addEventListener("focusin",N),document.addEventListener("focusout",_);const A=new MutationObserver(S);return l&&A.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",N),document.removeEventListener("focusout",_),A.disconnect()}}},[a,l,b.paused]),v.useEffect(()=>{if(l){cR.add(b);const N=document.activeElement;if(!l.contains(N)){const S=new CustomEvent(pj,oR);l.addEventListener(pj,h),l.dispatchEvent(S),S.defaultPrevented||(UOe(YOe(C$(l)),{select:!0}),document.activeElement===N&&ll(l))}return()=>{l.removeEventListener(pj,h),setTimeout(()=>{const S=new CustomEvent(gj,oR);l.addEventListener(gj,m),l.dispatchEvent(S),S.defaultPrevented||ll(N??document.body,{select:!0}),l.removeEventListener(gj,m),cR.remove(b)},0)}}},[l,h,m,b]);const j=v.useCallback(N=>{if(!n&&!a||b.paused)return;const _=N.key==="Tab"&&!N.altKey&&!N.ctrlKey&&!N.metaKey,S=document.activeElement;if(_&&S){const A=N.currentTarget,[P,I]=qOe(A);P&&I?!N.shiftKey&&S===I?(N.preventDefault(),n&&ll(P,{select:!0})):N.shiftKey&&S===P&&(N.preventDefault(),n&&ll(I,{select:!0})):S===A&&N.preventDefault()}},[n,a,b.paused]);return r.jsx(gn.div,{tabIndex:-1,...o,ref:x,onKeyDown:j})});S$.displayName=VOe;function UOe(e,{select:t=!1}={}){const n=document.activeElement;for(const a of e)if(ll(a,{select:t}),document.activeElement!==n)return}function qOe(e){const t=C$(e),n=lR(t,e),a=lR(t.reverse(),e);return[n,a]}function C$(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:a=>{const i=a.tagName==="INPUT"&&a.type==="hidden";return a.disabled||a.hidden||i?NodeFilter.FILTER_SKIP:a.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function lR(e,t){for(const n of e)if(!GOe(n,{upTo:t}))return n}function GOe(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function KOe(e){return e instanceof HTMLInputElement&&"select"in e}function ll(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&KOe(e)&&t&&e.select()}}var cR=ZOe();function ZOe(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=dR(e,t),e.unshift(t)},remove(t){e=dR(e,t),e[0]?.resume()}}}function dR(e,t){const n=[...e],a=n.indexOf(t);return a!==-1&&n.splice(a,1),n}function YOe(e){return e.filter(t=>t.tagName!=="A")}var xj=0;function JOe(){v.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??uR()),document.body.insertAdjacentElement("beforeend",e[1]??uR()),xj++,()=>{xj===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),xj--}},[])}function uR(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var $S="Dialog",[T$,A$]=ih($S),[XOe,Ei]=T$($S),P$=e=>{const{__scopeDialog:t,children:n,open:a,defaultOpen:i,onOpenChange:s,modal:o=!0}=e,l=v.useRef(null),c=v.useRef(null),[h=!1,m]=Iv({prop:a,defaultProp:i,onChange:s});return r.jsx(XOe,{scope:t,triggerRef:l,contentRef:c,contentId:xm(),titleId:xm(),descriptionId:xm(),open:h,onOpenChange:m,onOpenToggle:v.useCallback(()=>m(p=>!p),[m]),modal:o,children:n})};P$.displayName=$S;var E$="DialogTrigger",O$=v.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,i=Ei(E$,n),s=na(t,i.triggerRef);return r.jsx(gn.button,{type:"button","aria-haspopup":"dialog","aria-expanded":i.open,"aria-controls":i.contentId,"data-state":VS(i.open),...a,ref:s,onClick:Wt(e.onClick,i.onOpenToggle)})});O$.displayName=E$;var HS="DialogPortal",[QOe,R$]=T$(HS,{forceMount:void 0}),I$=e=>{const{__scopeDialog:t,forceMount:n,children:a,container:i}=e,s=Ei(HS,t);return r.jsx(QOe,{scope:t,forceMount:n,children:v.Children.map(a,o=>r.jsx(sh,{present:n||s.open,children:r.jsx(Ck,{asChild:!0,container:i,children:o})}))})};I$.displayName=HS;var Ev="DialogOverlay",M$=v.forwardRef((e,t)=>{const n=R$(Ev,e.__scopeDialog),{forceMount:a=n.forceMount,...i}=e,s=Ei(Ev,e.__scopeDialog);return s.modal?r.jsx(sh,{present:a||s.open,children:r.jsx(e5e,{...i,ref:t})}):null});M$.displayName=Ev;var e5e=v.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,i=Ei(Ev,n);return r.jsx(Y2,{as:Lu,allowPinchZoom:!0,shards:[i.contentRef],children:r.jsx(gn.div,{"data-state":VS(i.open),...a,ref:t,style:{pointerEvents:"auto",...a.style}})})}),Hc="DialogContent",L$=v.forwardRef((e,t)=>{const n=R$(Hc,e.__scopeDialog),{forceMount:a=n.forceMount,...i}=e,s=Ei(Hc,e.__scopeDialog);return r.jsx(sh,{present:a||s.open,children:s.modal?r.jsx(t5e,{...i,ref:t}):r.jsx(n5e,{...i,ref:t})})});L$.displayName=Hc;var t5e=v.forwardRef((e,t)=>{const n=Ei(Hc,e.__scopeDialog),a=v.useRef(null),i=na(t,n.contentRef,a);return v.useEffect(()=>{const s=a.current;if(s)return j8(s)},[]),r.jsx(D$,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Wt(e.onCloseAutoFocus,s=>{s.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Wt(e.onPointerDownOutside,s=>{const o=s.detail.originalEvent,l=o.button===0&&o.ctrlKey===!0;(o.button===2||l)&&s.preventDefault()}),onFocusOutside:Wt(e.onFocusOutside,s=>s.preventDefault())})}),n5e=v.forwardRef((e,t)=>{const n=Ei(Hc,e.__scopeDialog),a=v.useRef(!1),i=v.useRef(!1);return r.jsx(D$,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:s=>{e.onCloseAutoFocus?.(s),s.defaultPrevented||(a.current||n.triggerRef.current?.focus(),s.preventDefault()),a.current=!1,i.current=!1},onInteractOutside:s=>{e.onInteractOutside?.(s),s.defaultPrevented||(a.current=!0,s.detail.originalEvent.type==="pointerdown"&&(i.current=!0));const o=s.target;n.triggerRef.current?.contains(o)&&s.preventDefault(),s.detail.originalEvent.type==="focusin"&&i.current&&s.preventDefault()}})}),D$=v.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:a,onOpenAutoFocus:i,onCloseAutoFocus:s,...o}=e,l=Ei(Hc,n),c=v.useRef(null),h=na(t,c);return JOe(),r.jsxs(r.Fragment,{children:[r.jsx(S$,{asChild:!0,loop:!0,trapped:a,onMountAutoFocus:i,onUnmountAutoFocus:s,children:r.jsx(Sk,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":VS(l.open),...o,ref:h,onDismiss:()=>l.onOpenChange(!1)})}),r.jsxs(r.Fragment,{children:[r.jsx(a5e,{titleId:l.titleId}),r.jsx(s5e,{contentRef:c,descriptionId:l.descriptionId})]})]})}),WS="DialogTitle",B$=v.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,i=Ei(WS,n);return r.jsx(gn.h2,{id:i.titleId,...a,ref:t})});B$.displayName=WS;var F$="DialogDescription",z$=v.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,i=Ei(F$,n);return r.jsx(gn.p,{id:i.descriptionId,...a,ref:t})});z$.displayName=F$;var $$="DialogClose",H$=v.forwardRef((e,t)=>{const{__scopeDialog:n,...a}=e,i=Ei($$,n);return r.jsx(gn.button,{type:"button",...a,ref:t,onClick:Wt(e.onClick,()=>i.onOpenChange(!1))})});H$.displayName=$$;function VS(e){return e?"open":"closed"}var W$="DialogTitleWarning",[r5e,V$]=vU(W$,{contentName:Hc,titleName:WS,docsSlug:"dialog"}),a5e=({titleId:e})=>{const t=V$(W$),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return v.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},i5e="DialogDescriptionWarning",s5e=({contentRef:e,descriptionId:t})=>{const a=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${V$(i5e).contentName}}.`;return v.useEffect(()=>{const i=e.current?.getAttribute("aria-describedby");t&&i&&(document.getElementById(t)||console.warn(a))},[a,e,t]),null},o5e=P$,l5e=O$,c5e=I$,d5e=M$,u5e=L$,h5e=B$,f5e=z$,U$=H$,q$="AlertDialog",[m5e]=ih(q$,[A$]),vo=A$(),G$=e=>{const{__scopeAlertDialog:t,...n}=e,a=vo(t);return r.jsx(o5e,{...a,...n,modal:!0})};G$.displayName=q$;var p5e="AlertDialogTrigger",K$=v.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,i=vo(n);return r.jsx(l5e,{...i,...a,ref:t})});K$.displayName=p5e;var g5e="AlertDialogPortal",Z$=e=>{const{__scopeAlertDialog:t,...n}=e,a=vo(t);return r.jsx(c5e,{...a,...n})};Z$.displayName=g5e;var x5e="AlertDialogOverlay",Y$=v.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,i=vo(n);return r.jsx(d5e,{...i,...a,ref:t})});Y$.displayName=x5e;var Mu="AlertDialogContent",[y5e,v5e]=m5e(Mu),J$=v.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:a,...i}=e,s=vo(n),o=v.useRef(null),l=na(t,o),c=v.useRef(null);return r.jsx(r5e,{contentName:Mu,titleName:X$,docsSlug:"alert-dialog",children:r.jsx(y5e,{scope:n,cancelRef:c,children:r.jsxs(u5e,{role:"alertdialog",...s,...i,ref:l,onOpenAutoFocus:Wt(i.onOpenAutoFocus,h=>{h.preventDefault(),c.current?.focus({preventScroll:!0})}),onPointerDownOutside:h=>h.preventDefault(),onInteractOutside:h=>h.preventDefault(),children:[r.jsx(zR,{children:a}),r.jsx(w5e,{contentRef:o})]})})})});J$.displayName=Mu;var X$="AlertDialogTitle",Q$=v.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,i=vo(n);return r.jsx(h5e,{...i,...a,ref:t})});Q$.displayName=X$;var eH="AlertDialogDescription",tH=v.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,i=vo(n);return r.jsx(f5e,{...i,...a,ref:t})});tH.displayName=eH;var b5e="AlertDialogAction",nH=v.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,i=vo(n);return r.jsx(U$,{...i,...a,ref:t})});nH.displayName=b5e;var rH="AlertDialogCancel",aH=v.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...a}=e,{cancelRef:i}=v5e(rH,n),s=vo(n),o=na(t,i);return r.jsx(U$,{...s,...a,ref:o})});aH.displayName=rH;var w5e=({contentRef:e})=>{const t=`\`${Mu}\` requires a description for the component to be accessible for screen reader users.
You can add a description to the \`${Mu}\` by passing a \`${eH}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
Alternatively, you can use your own component as a description by assigning it an \`id\` and passing the same value to the \`aria-describedby\` prop in \`${Mu}\`. If the description is confusing or duplicative for sighted users, you can use the \`@radix-ui/react-visually-hidden\` primitive as a wrapper around your description component.
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return v.useEffect(()=>{document.getElementById(e.current?.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},j5e=G$,N5e=K$,k5e=Z$,iH=Y$,sH=J$,oH=nH,lH=aH,cH=Q$,dH=tH;const _5e=j5e,S5e=N5e,C5e=k5e,uH=v.forwardRef(({className:e,...t},n)=>r.jsx(iH,{className:Se("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t,ref:n}));uH.displayName=iH.displayName;const hH=v.forwardRef(({className:e,...t},n)=>r.jsxs(C5e,{children:[r.jsx(uH,{}),r.jsx(sH,{ref:n,className:Se("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",e),...t})]}));hH.displayName=sH.displayName;const fH=({className:e,...t})=>r.jsx("div",{className:Se("flex flex-col space-y-2 text-center sm:text-left",e),...t});fH.displayName="AlertDialogHeader";const mH=({className:e,...t})=>r.jsx("div",{className:Se("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});mH.displayName="AlertDialogFooter";const pH=v.forwardRef(({className:e,...t},n)=>r.jsx(cH,{ref:n,className:Se("text-lg font-semibold",e),...t}));pH.displayName=cH.displayName;const gH=v.forwardRef(({className:e,...t},n)=>r.jsx(dH,{ref:n,className:Se("text-sm text-muted-foreground",e),...t}));gH.displayName=dH.displayName;const xH=v.forwardRef(({className:e,...t},n)=>r.jsx(oH,{ref:n,className:Se("inline-flex h-10 items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground ring-offset-background transition-colors hover:bg-primary/90 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",e),...t}));xH.displayName=oH.displayName;const yH=v.forwardRef(({className:e,...t},n)=>r.jsx(lH,{ref:n,className:Se("inline-flex h-10 items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium ring-offset-background transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",e),...t}));yH.displayName=lH.displayName;const T5e=({townName:e,refreshTrigger:t})=>{const[n,a]=v.useState([]),[i,s]=v.useState(!1),[o,l]=v.useState(null),[c,h]=v.useState(null),{toast:m}=ip();v.useEffect(()=>{e?p():a([])},[e,t]);const p=async()=>{s(!0),l(null),console.log(`[Grid] Fetching photos for: ${e}`);try{const{data:b,error:j}=await Ht.from("town_photos").select("*").eq("town_name",e).order("created_at",{ascending:!1});if(j)throw j;console.log(`[Grid] Fetched ${b.length} photos`),a(b||[])}catch(b){console.error("[Grid] Error fetching photos:",b),l("Failed to load photos. Please try again.")}finally{s(!1)}},x=async b=>{h(b.id);try{if(b.image_url)try{const N=b.image_url.split("/"),_=N[N.length-1],{error:S}=await Ht.storage.from("town-images").remove([_]);S&&console.warn("[Grid] Storage delete warning:",S)}catch(N){console.warn("[Grid] Failed to parse filename for storage deletion",N)}const{error:j}=await Ht.from("town_photos").delete().eq("id",b.id);if(j)throw j;a(N=>N.filter(_=>_.id!==b.id)),m({title:"Photo deleted",description:"The photo has been removed successfully."})}catch(j){console.error("[Grid] Delete error:",j),m({title:"Delete failed",description:"Could not delete the photo. Please try again.",variant:"destructive"})}finally{h(null)}};return e?i?r.jsxs("div",{className:"flex flex-col items-center justify-center h-64",children:[r.jsx(Fr,{className:"w-8 h-8 text-[#2d5016] animate-spin mb-2"}),r.jsxs("p",{className:"text-gray-500",children:["Loading photos for ",e,"..."]})]}):o?r.jsxs("div",{className:"bg-red-50 p-4 rounded-lg flex items-center gap-3 text-red-700",children:[r.jsx(Qe,{className:"w-5 h-5 shrink-0"}),r.jsx("p",{children:o}),r.jsx(pn,{variant:"outline",size:"sm",onClick:p,className:"ml-auto border-red-200 hover:bg-red-100",children:"Retry"})]}):n.length===0?r.jsxs("div",{className:"flex flex-col items-center justify-center h-64 bg-gray-50 rounded-lg border border-gray-200",children:[r.jsx(Du,{className:"w-10 h-10 text-gray-300 mb-3"}),r.jsxs("p",{className:"text-gray-500 font-medium",children:["No photos found for ",e]}),r.jsx("p",{className:"text-gray-400 text-sm mt-1",children:"Upload some photos to get started!"})]}):r.jsxs("div",{children:[r.jsxs("div",{className:"flex justify-between items-center mb-4",children:[r.jsxs("span",{className:"text-sm text-gray-500",children:["Showing ",n.length," photo",n.length!==1&&"s"]}),r.jsxs(pn,{variant:"ghost",size:"sm",onClick:p,className:"h-8 text-gray-500 hover:text-gray-900",children:[r.jsx(Sm,{className:"w-3 h-3 mr-2"}),"Refresh"]})]}),r.jsx("div",{className:"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4",children:n.map(b=>r.jsxs("div",{className:"group relative bg-white border border-gray-200 rounded-lg overflow-hidden shadow-sm hover:shadow-md transition-shadow",children:[r.jsxs("div",{className:"aspect-square bg-gray-100 relative",children:[r.jsx("img",{src:b.thumbnail_url||b.image_url,alt:b.caption||"Town photo",className:"w-full h-full object-cover",loading:"lazy",onError:j=>{j.target.onerror=null,j.target.src="https://placehold.co/400x400?text=Image+Error"}}),r.jsx("div",{className:"absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors"})]}),r.jsxs("div",{className:"p-3",children:[r.jsx("p",{className:"text-xs text-gray-500 truncate mb-2",title:b.caption,children:b.caption||"No caption"}),r.jsxs(_5e,{children:[r.jsx(S5e,{asChild:!0,children:r.jsx(pn,{variant:"destructive",size:"sm",className:"w-full h-8 text-xs bg-white text-red-600 border border-red-200 hover:bg-red-50 hover:text-red-700 shadow-none",disabled:c===b.id,children:c===b.id?r.jsx(Fr,{className:"w-3 h-3 animate-spin"}):r.jsxs(r.Fragment,{children:[r.jsx(iG,{className:"w-3 h-3 mr-1.5"}),"Delete"]})})}),r.jsxs(hH,{children:[r.jsxs(fH,{children:[r.jsx(pH,{children:"Delete this photo?"}),r.jsx(gH,{children:"This action cannot be undone. This will permanently remove the photo from the gallery."})]}),r.jsxs(mH,{children:[r.jsx(yH,{children:"Cancel"}),r.jsx(xH,{onClick:()=>x(b),className:"bg-red-600 hover:bg-red-700 text-white",children:"Delete Photo"})]})]})]})]})]},b.id))})]}):r.jsxs("div",{className:"flex flex-col items-center justify-center h-64 bg-gray-50 rounded-lg border-2 border-dashed border-gray-200 text-gray-400",children:[r.jsx(Du,{className:"w-12 h-12 mb-3 opacity-50"}),r.jsx("p",{children:"Select a town to manage photos"})]})},US=async(e="Astoria")=>{console.group(`🔠[Tide Debugger] Executing full trace for: ${e}`);const t={townName:e,stationPath:null,apiResponse:null,parsedData:null,timezoneNote:"Checking for 45-60 min offset (Lunar Day Shift vs Timezone Shift)",errors:[],success:!1};try{const n=a_(e);if(t.stationPath=n,console.log(`[Step 1] Resolved Mapping -> Path: ${n}`),!n)throw new Error("Station path resolution failed.");console.log("[Step 2] Fetching from Edge Function...");const a=performance.now(),i=await zS(n),s=(performance.now()-a).toFixed(2);t.apiResponse={source:i.source,timestamp:i.timestamp,durationMs:s},console.log(`[Step 2] Response received in ${s}ms. Source: ${i.source}`),i.error&&(t.errors.push(`API returned error: ${i.error}`),console.warn("[Step 3] Error in response:",i.error)),i.tides&&i.tides.length>0?(t.parsedData=i.tides,t.success=!0,console.log("[Step 3] Raw tide data received:",JSON.stringify(i.tides,null,2)),console.log("[Analysis] If the times displayed below are consistently 45-60 minutes AHEAD or BEHIND actual local time, this is a LUNAR DAY SHIFT, meaning the HTML scraper is grabbing yesterday's or tomorrow's data table.")):(t.errors.push("No tide records parsed or returned empty."),console.warn("[Step 3] âš ï¸ No tide records parsed."))}catch(n){console.error("⌠Critical failure in debugger:",n),t.errors.push(n.message)}finally{console.groupEnd()}return t};typeof window<"u"&&(window.testTideDebugFlow=US);const A5e=async()=>{const e=["Astoria","Newport","Bandon","Coos Bay","Lincoln City"];console.group("â±ï¸ [Time Verification] Auditing Multiple Towns");const t=[];for(const n of e){console.log(`Testing ${n}...`);try{const a=await US(n);t.push({town:n,success:a.success,path:a.stationPath,sampleData:a.parsedData?a.parsedData.slice(0,2):null,errors:a.errors})}catch(a){t.push({town:n,success:!1,errors:[a.message]})}}return console.log("[Time Verification] Final Report:",t),console.groupEnd(),t},P5e=()=>{const[e,t]=v.useState(!1),[n,a]=v.useState(null),[i,s]=v.useState(null),{toast:o}=r0(),l=async()=>{t(!0),o({title:"Running Diagnostics",description:"Testing Astoria configuration..."});try{const h=await US("Astoria");a(h),o({title:"Diagnostics Complete",description:"See results below."})}catch(h){o({title:"Diagnostic Failed",description:h.message,variant:"destructive"})}t(!1)},c=async()=>{t(!0),o({title:"Verifying Multiple Towns",description:"Testing across the coast..."});try{const h=await A5e();s(h),o({title:"Verification Complete",description:"Multi-town data fetched."})}catch(h){o({title:"Verification Failed",description:h.message,variant:"destructive"})}t(!1)};return r.jsxs("div",{className:"bg-white p-6 rounded-xl border border-gray-200 shadow-sm space-y-6",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-start md:items-center border-b border-gray-100 pb-4 gap-4",children:[r.jsxs("div",{children:[r.jsxs("h2",{className:"text-xl font-bold text-gray-800 flex items-center gap-2",children:[r.jsx(hI,{className:"w-5 h-5 text-indigo-500"})," Tide Time & Offset Diagnostic"]}),r.jsx("p",{className:"text-sm text-gray-500 mt-1",children:"Investigate 45-60 min offset issues"})]}),r.jsxs("div",{className:"flex gap-2",children:[r.jsxs(pn,{onClick:l,disabled:e,variant:"outline",size:"sm",className:"gap-2",children:[r.jsx(Zq,{className:`w-4 h-4 ${e?"animate-spin":""}`})," Run Astoria Test"]}),r.jsx(pn,{onClick:c,disabled:e,variant:"secondary",size:"sm",className:"gap-2",children:"Verify All Towns"})]})]}),n&&r.jsxs("div",{className:"space-y-4",children:[r.jsx("h3",{className:"font-semibold text-lg border-b pb-2",children:"Astoria Report"}),r.jsxs("div",{className:"grid grid-cols-2 gap-4 text-sm",children:[r.jsxs("div",{className:"p-3 bg-gray-50 rounded-lg border border-gray-100",children:[r.jsx("span",{className:"text-gray-500 block mb-1",children:"Status"}),n.success?r.jsxs("span",{className:"text-green-600 font-medium flex items-center",children:[r.jsx(um,{className:"w-4 h-4 mr-1"})," Success"]}):r.jsxs("span",{className:"text-red-600 font-medium flex items-center",children:[r.jsx(jq,{className:"w-4 h-4 mr-1"})," Failed"]})]}),r.jsxs("div",{className:"p-3 bg-gray-50 rounded-lg border border-gray-100",children:[r.jsx("span",{className:"text-gray-500 block mb-1",children:"Station Path"}),r.jsx("span",{className:"font-mono text-xs",children:n.stationPath})]})]}),r.jsxs("div",{className:"bg-slate-900 text-green-400 p-4 rounded-lg overflow-x-auto text-xs font-mono",children:[r.jsx("p",{className:"text-white mb-2",children:"// Raw Parsed Output (Look at times carefully):"}),r.jsx("pre",{children:JSON.stringify(n.parsedData,null,2)})]}),n.errors?.length>0&&r.jsxs("div",{className:"bg-red-50 p-4 rounded-lg text-sm text-red-700",children:[r.jsx("strong",{children:"Errors:"}),r.jsx("ul",{className:"list-disc pl-5 mt-2",children:n.errors.map((h,m)=>r.jsx("li",{children:h},m))})]})]}),i&&r.jsxs("div",{className:"space-y-4",children:[r.jsx("h3",{className:"font-semibold text-lg border-b pb-2",children:"Multi-Town Verification"}),r.jsx("div",{className:"overflow-x-auto",children:r.jsxs("table",{className:"w-full text-sm text-left",children:[r.jsx("thead",{className:"bg-gray-50 text-gray-500 uppercase",children:r.jsxs("tr",{children:[r.jsx("th",{className:"px-4 py-2",children:"Town"}),r.jsx("th",{className:"px-4 py-2",children:"Status"}),r.jsx("th",{className:"px-4 py-2",children:"First Tide Time"})]})}),r.jsx("tbody",{children:i.map((h,m)=>r.jsxs("tr",{className:"border-b",children:[r.jsx("td",{className:"px-4 py-2 font-medium",children:h.town}),r.jsx("td",{className:"px-4 py-2",children:h.success?r.jsx("span",{className:"text-green-600",children:"Valid"}):r.jsx("span",{className:"text-red-600",children:"Error"})}),r.jsx("td",{className:"px-4 py-2 font-mono",children:h.sampleData?.[0]?.time||"N/A"})]},m))})]})})]}),!n&&!i&&r.jsx("div",{className:"py-8 text-center text-gray-500 border-2 border-dashed border-gray-100 rounded-xl",children:"Click a button above to run diagnostics and identify timezone/parsing offsets."})]})},E5e=async()=>{const e="Waldport is a charming waterfront town nestled along Alsea Bay, offering visitors a quintessential Oregon coast experience. Known for its scenic beauty, excellent fishing opportunities, and artistic community, Waldport combines small-town charm with access to stunning natural attractions. The town serves as a gateway to the Alsea River and features beautiful beaches, hiking trails, and a thriving local culture.";try{const{data:t,error:n}=await Ht.from("town_descriptions").select("id").eq("town_name","Waldport").maybeSingle();if(n)return console.error("Error fetching Waldport description:",n.message),{success:!1,error:n.message};if(t){const{error:a}=await Ht.from("town_descriptions").update({description:e}).eq("id",t.id);return a?(console.error("Error updating Waldport description:",a.message),{success:!1,error:a.message}):(console.log("Successfully updated Waldport description."),{success:!0,message:"Waldport description updated successfully!"})}else{const{error:a}=await Ht.from("town_descriptions").insert([{town_name:"Waldport",description:e}]);return a?(console.error("Error inserting Waldport description:",a.message),{success:!1,error:a.message}):(console.log("Successfully inserted new Waldport description."),{success:!0,message:"New Waldport description created successfully!"})}}catch(t){return console.error("Unexpected error updating Waldport description:",t),{success:!1,error:t.message}}},O5e=["Astoria","Newport","Florence","Coos Bay","Lincoln City","Tillamook","Gold Beach"],R5e=async()=>{console.group("🌊 [Tide Data Verification] Starting Diagnostics...");const e=[];for(const t of O5e)try{const n=a_(t);console.log(`Testing ${t} (Path: ${n})...`);const a=await zS(n),i=a.source.includes("live")||a.source.includes("cached"),s=a.tides&&a.tides.length>0,o={town:t,path:n,source:a.source,isLive:i,success:i&&s,recordCount:a.tides?.length||0,error:a.error||null,timestamp:a.timestamp};e.push(o),o.success?console.log(`✅ ${t}: Success (${o.source})`):console.warn(`âš ï¸ ${t}: Failed/Fallback (${o.source}) - Error: ${o.error}`)}catch(n){console.error(`⌠${t}: Critical Error -`,n.message),e.push({town:t,success:!1,isLive:!1,error:n.message,source:"error"})}return console.table(e),console.groupEnd(),e},I5e=()=>{const{logout:e}=ch(),t=rh(),{toast:n}=r0(),[a,i]=v.useState(""),[s,o]=v.useState(0),[l,c]=v.useState(!1),[h,m]=v.useState([]),[p,x]=v.useState(!1);v.useEffect(()=>{_()},[]);const b=()=>{e(),t("/admin/login")},j=()=>{o(A=>A+1)},N=async()=>{c(!0),n({title:"Running update...",description:"Updating the Waldport town description."});const A=await E5e();A.success?n({title:"Success!",description:"Waldport description updated successfully."}):n({title:"Update Failed",description:A.error,variant:"destructive"}),c(!1)},_=async()=>{x(!0),n({title:"Verifying Tide Sources",description:"Testing connections to tides.net via Edge Function..."});const A=await R5e();m(A),n({title:"Verification Complete",description:"Tide source status updated."}),x(!1)},S=Object.entries(ke).sort(([,A],[,P])=>A.name.localeCompare(P.name));return r.jsxs("div",{className:"min-h-screen bg-gray-50 font-sans",children:[r.jsx(Ge,{}),r.jsxs("div",{className:"max-w-7xl mx-auto px-4 py-8",children:[r.jsxs("div",{className:"flex flex-col md:flex-row justify-between items-start md:items-center mb-8 gap-4",children:[r.jsxs("div",{children:[r.jsxs("h1",{className:"text-3xl font-bold text-gray-900 flex items-center gap-2",children:[r.jsx(Bq,{className:"w-8 h-8 text-[#2d5016]"})," Admin Dashboard"]}),r.jsx("p",{className:"text-gray-500 mt-1",children:"Manage content and check system status"})]}),r.jsxs(pn,{onClick:b,variant:"outline",className:"flex items-center gap-2 border-red-200 text-red-700 hover:bg-red-50 hover:text-red-800",children:[r.jsx(Sj,{className:"w-4 h-4"})," Sign Out"]})]}),r.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-8",children:[r.jsxs("div",{className:"lg:col-span-1 space-y-6",children:[r.jsxs("div",{className:"bg-white p-6 rounded-xl border border-gray-200 shadow-sm",children:[r.jsx("label",{className:"block text-sm font-medium text-gray-700 mb-2",children:"Select Town to Manage"}),r.jsxs("select",{value:a,onChange:A=>i(A.target.value),className:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-[#2d5016] outline-none bg-white text-gray-900",children:[r.jsx("option",{value:"",children:"-- Choose a Town --"}),S.map(([A,P])=>r.jsx("option",{value:P.name,children:P.name},A))]})]}),r.jsx(WOe,{townName:a,onUploadComplete:j}),r.jsxs("div",{className:"bg-white p-6 rounded-xl border border-gray-200 shadow-sm",children:[r.jsxs("h3",{className:"text-lg font-semibold text-gray-900 mb-4 flex items-center gap-2",children:[r.jsx(hG,{className:"w-5 h-5 text-gray-500"})," Quick Actions"]}),r.jsx("div",{className:"space-y-3",children:r.jsx(pn,{onClick:N,disabled:l,variant:"outline",className:"w-full justify-start",children:"Update Waldport Description"})})]})]}),r.jsxs("div",{className:"lg:col-span-2 space-y-6",children:[r.jsx(P5e,{}),r.jsxs("div",{className:"bg-white p-6 rounded-xl border border-gray-200 shadow-sm",children:[r.jsxs("div",{className:"flex justify-between items-center mb-6 border-b border-gray-100 pb-4",children:[r.jsxs("h2",{className:"text-xl font-bold text-gray-800 flex items-center gap-2",children:[r.jsx(ky,{className:"w-5 h-5 text-blue-500"})," Tide Data Status (tides.net)"]}),r.jsxs(pn,{onClick:_,disabled:p,variant:"outline",size:"sm",className:"gap-2",children:[r.jsx(Sm,{className:`w-4 h-4 ${p?"animate-spin":""}`})," Refresh Status"]})]}),r.jsx("div",{className:"overflow-x-auto",children:r.jsxs("table",{className:"w-full text-sm text-left",children:[r.jsx("thead",{className:"text-xs text-gray-500 uppercase bg-gray-50",children:r.jsxs("tr",{children:[r.jsx("th",{className:"px-4 py-3",children:"Town"}),r.jsx("th",{className:"px-4 py-3",children:"Source"}),r.jsx("th",{className:"px-4 py-3",children:"Status"}),r.jsx("th",{className:"px-4 py-3 text-right",children:"Last Updated"})]})}),r.jsx("tbody",{children:h.length>0?h.map((A,P)=>r.jsxs("tr",{className:"border-b last:border-0 hover:bg-gray-50",children:[r.jsx("td",{className:"px-4 py-3 font-medium text-gray-900",children:A.town}),r.jsx("td",{className:"px-4 py-3 text-gray-600",children:A.source}),r.jsx("td",{className:"px-4 py-3",children:A.success?r.jsxs("span",{className:"flex items-center gap-1 text-green-600",children:[r.jsx(um,{className:"w-4 h-4"})," Live"]}):r.jsxs("span",{className:"flex items-center gap-1 text-amber-600",children:[r.jsx(sG,{className:"w-4 h-4"})," Fallback"]})}),r.jsx("td",{className:"px-4 py-3 text-right text-gray-500",children:A.timestamp?new Date(A.timestamp).toLocaleTimeString():"N/A"})]},P)):r.jsx("tr",{children:r.jsx("td",{colSpan:"4",className:"px-4 py-8 text-center text-gray-500",children:"Run verification to see tide data status."})})})]})})]}),r.jsxs("div",{className:"bg-white p-6 rounded-xl border border-gray-200 shadow-sm",children:[r.jsxs("h2",{className:"text-xl font-bold text-gray-800 mb-6 pb-4 border-b border-gray-100 flex justify-between items-center",children:[r.jsx("span",{children:"Gallery Photos"}),a&&r.jsx("span",{className:"text-gray-500 font-normal text-base bg-gray-100 px-3 py-1 rounded-full",children:a})]}),r.jsx(T5e,{townName:a,refreshTrigger:s})]})]})]})]})]})},M5e=({children:e})=>{const{isAuthenticated:t,loading:n}=ch(),a=Yn();return n?r.jsxs("div",{className:"min-h-screen flex flex-col items-center justify-center bg-gray-50",children:[r.jsx(Fr,{className:"w-8 h-8 text-[#2d5016] animate-spin mb-4"}),r.jsx("p",{className:"text-gray-500 font-medium",children:"Verifying access..."})]}):t?e:r.jsx(TR,{to:"/admin/login",state:{from:a},replace:!0})},L5e=()=>(v.useEffect(()=>(AA(!0),()=>AA(!1)),[]),r.jsxs("div",{className:"min-h-screen bg-white flex flex-col font-sans",children:[r.jsx($e,{children:r.jsx("title",{children:"Page Not Found | Oregon Coast Travel Guide"})}),r.jsx(Ge,{}),r.jsxs("main",{className:"flex-grow flex flex-col items-center justify-center p-4 text-center py-20 bg-slate-50",children:[r.jsx("h1",{className:"text-5xl md:text-7xl font-bold text-slate-900 tracking-tight mb-4",children:"Page Not Found"}),r.jsx("div",{className:"h-1.5 w-24 bg-blue-500 rounded-full mb-8 shadow-sm"}),r.jsx("p",{className:"text-xl text-slate-600 mb-10 max-w-lg",children:"We're sorry, but the page you are looking for doesn't exist or has been moved."}),r.jsx(_t,{to:"/",className:"bg-blue-600 hover:bg-blue-700 text-white font-medium px-8 py-4 rounded-xl shadow-sm transition-all duration-300 hover:shadow-md",children:"Return to Homepage"})]}),r.jsx(Ye,{})]})),D5e=()=>(v.useEffect(()=>{window.location.replace("https://oregoncoastal.com/town/cannon-beach")},[]),null),B5e=()=>(v.useEffect(()=>{window.location.replace("https://oregoncoastal.com/town/pacific-city")},[]),null),F5e=()=>{const e=Yn();return v.useEffect(()=>{mY();const t=kl(e.pathname),n="https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/ef2a8c8e278e0a6afb62c1ed916892d4.jpg",a="Oregon Coast Hotels and Travel Guide",i="Plan your perfect trip with our Oregon Coast Hotels and Travel Guide. Discover the best accommodations, oceanfront lodging, attractions, dining, and travel tips across the beautiful Oregon Coast.";document.title=a,JI(t),XI(i),QI(t),eM(a),tM(i),nM(n),rM(a),aM(i),iM(n)},[e.pathname]),null};function z5e(){return r.jsx(nY,{children:r.jsx(rY,{children:r.jsx(uY,{children:r.jsxs(PV,{children:[r.jsx(F5e,{}),r.jsx(RL,{}),r.jsx(Uee,{}),r.jsxs(sV,{children:[r.jsx(He,{path:"/",element:r.jsx(Bte,{})}),r.jsx(He,{path:"/map",element:r.jsx(Fte,{})}),r.jsx(He,{path:"/maps",element:r.jsx(cE,{})}),r.jsx(He,{path:"/hotels-map",element:r.jsx(cE,{})}),r.jsx(He,{path:"/host",element:r.jsx(pse,{})}),r.jsx(He,{path:"/ruby",element:r.jsx(D5e,{})}),r.jsx(He,{path:"/kruseroot",element:r.jsx(B5e,{})}),r.jsx(He,{path:"/hotel/:id",element:r.jsx(Dse,{})}),r.jsx(He,{path:"/admin/login",element:r.jsx(HOe,{})}),r.jsx(He,{path:"/admin",element:r.jsx(M5e,{children:r.jsx(I5e,{})})}),r.jsx(He,{path:"/north-coast",element:r.jsx(bse,{})}),r.jsx(He,{path:"/central-coast",element:r.jsx(jse,{})}),r.jsx(He,{path:"/south-coast",element:r.jsx(kse,{})}),r.jsx(He,{path:"/seal-rock",element:r.jsx($Oe,{})}),r.jsx(He,{path:"/town/arch-cape",element:r.jsx(g2e,{})}),r.jsx(He,{path:"/town/astoria",element:r.jsx(B2e,{})}),r.jsx(He,{path:"/town/bandon",element:r.jsx(q2e,{})}),r.jsx(He,{path:"/town/bay-city",element:r.jsx(r_e,{})}),r.jsx(He,{path:"/town/brookings",element:r.jsx(g_e,{})}),r.jsx(He,{path:"/town/cannon-beach",element:r.jsx(R_e,{})}),r.jsx(He,{path:"/town/charleston",element:r.jsx(V_e,{})}),r.jsx(He,{path:"/town/coos-bay",element:r.jsx(aSe,{})}),r.jsx(He,{path:"/town/depoe-bay",element:r.jsx(pSe,{})}),r.jsx(He,{path:"/town/dune-city",element:r.jsx(TSe,{})}),r.jsx(He,{path:"/town/florence",element:r.jsx(BSe,{})}),r.jsx(He,{path:"/town/gardiner",element:r.jsx(YSe,{})}),r.jsx(He,{path:"/town/garibaldi",element:r.jsx(oCe,{})}),r.jsx(He,{path:"/town/gearhart",element:r.jsx(yCe,{})}),r.jsx(He,{path:"/town/gleneden-beach",element:r.jsx(ACe,{})}),r.jsx(He,{path:"/town/gold-beach",element:r.jsx(HCe,{})}),r.jsx(He,{path:"/town/harbor",element:r.jsx(eTe,{})}),r.jsx(He,{path:"/town/lakeside",element:r.jsx(hTe,{})}),r.jsx(He,{path:"/town/langlois",element:r.jsx(_Te,{})}),r.jsx(He,{path:"/town/lincoln-city",element:r.jsx(BTe,{})}),r.jsx(He,{path:"/town/manzanita",element:r.jsx(ZTe,{})}),r.jsx(He,{path:"/town/nehalem",element:r.jsx(oAe,{})}),r.jsx(He,{path:"/town/neskowin",element:r.jsx(vAe,{})}),r.jsx(He,{path:"/town/netarts",element:r.jsx(EAe,{})}),r.jsx(He,{path:"/town/newport",element:r.jsx(zAe,{})}),r.jsx(He,{path:"/town/north-bend",element:r.jsx(XAe,{})}),r.jsx(He,{path:"/town/oceanside",element:r.jsx(dPe,{})}),r.jsx(He,{path:"/town/otter-rock",element:r.jsx(NPe,{})}),r.jsx(He,{path:"/town/pacific-city",element:r.jsx(HPe,{})}),r.jsx(He,{path:"/town/port-orford",element:r.jsx(QPe,{})}),r.jsx(He,{path:"/town/reedsport",element:r.jsx(dEe,{})}),r.jsx(He,{path:"/town/rockaway-beach",element:r.jsx(wEe,{})}),r.jsx(He,{path:"/town/seaside",element:r.jsx(REe,{})}),r.jsx(He,{path:"/town/south-beach",element:r.jsx(VEe,{})}),r.jsx(He,{path:"/town/tillamook",element:r.jsx(n4e,{})}),r.jsx(He,{path:"/town/toledo",element:r.jsx(f4e,{})}),r.jsx(He,{path:"/town/tolovana-park",element:r.jsx(k4e,{})}),r.jsx(He,{path:"/town/waldport",element:r.jsx(D4e,{})}),r.jsx(He,{path:"/town/warrenton",element:r.jsx(Z4e,{})}),r.jsx(He,{path:"/town/wheeler",element:r.jsx(oOe,{})}),r.jsx(He,{path:"/town/winchester-bay",element:r.jsx(vOe,{})}),r.jsx(He,{path:"/town/yachats",element:r.jsx(OOe,{})}),r.jsx(He,{path:"*",element:r.jsx(L5e,{})})]}),r.jsx(vG,{})]})})})})}const $5e=async()=>(console.warn("Prerender.io token not found. Skipping client-side bot intercept."),!1),H5e=async()=>{await $5e()||lW.createRoot(document.getElementById("root")).render(r.jsx(z5e,{}))};H5e();