var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t,t.exports),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,o)=>(o=n==null?{}:e(i(n)),l(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e);(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var f=s((e=>{var t=Symbol.for(`react.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.provider`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.iterator;function p(e){return typeof e!=`object`||!e?null:(e=f&&e[f]||e[`@@iterator`],typeof e==`function`?e:null)}var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function _(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}_.prototype.isReactComponent={},_.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`setState(...): takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},_.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function v(){}v.prototype=_.prototype;function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}var b=y.prototype=new v;b.constructor=y,h(b,_.prototype),b.isPureReactComponent=!0;var x=Array.isArray,S=Object.prototype.hasOwnProperty,C={current:null},w={key:!0,ref:!0,__self:!0,__source:!0};function T(e,n,r){var i,a={},o=null,s=null;if(n!=null)for(i in n.ref!==void 0&&(s=n.ref),n.key!==void 0&&(o=``+n.key),n)S.call(n,i)&&!w.hasOwnProperty(i)&&(a[i]=n[i]);var c=arguments.length-2;if(c===1)a.children=r;else if(1<c){for(var l=Array(c),u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}if(e&&e.defaultProps)for(i in c=e.defaultProps,c)a[i]===void 0&&(a[i]=c[i]);return{$$typeof:t,type:e,key:o,ref:s,props:a,_owner:C.current}}function E(e,n){return{$$typeof:t,type:e.type,key:n,ref:e.ref,props:e.props,_owner:e._owner}}function D(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function O(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var ee=/\/+/g;function k(e,t){return typeof e==`object`&&e&&e.key!=null?O(``+e.key):t.toString(36)}function te(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0}}if(c)return c=e,o=o(c),e=a===``?`.`+k(c,0):a,x(o)?(i=``,e!=null&&(i=e.replace(ee,`$&/`)+`/`),te(o,r,i,``,function(e){return e})):o!=null&&(D(o)&&(o=E(o,i+(!o.key||c&&c.key===o.key?``:(``+o.key).replace(ee,`$&/`)+`/`)+e)),r.push(o)),1;if(c=0,a=a===``?`.`:a+`:`,x(e))for(var l=0;l<e.length;l++){s=e[l];var u=a+k(s,l);c+=te(s,r,i,u,o)}else if(u=p(e),typeof u==`function`)for(e=u.call(e),l=0;!(s=e.next()).done;)s=s.value,u=a+k(s,l++),c+=te(s,r,i,u,o);else if(s===`object`)throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`);return c}function A(e,t,n){if(e==null)return e;var r=[],i=0;return te(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function j(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var M={current:null},N={transition:null},ne={ReactCurrentDispatcher:M,ReactCurrentBatchConfig:N,ReactCurrentOwner:C};function re(){throw Error(`act(...) is not supported in production builds of React.`)}e.Children={map:A,forEach:function(e,t,n){A(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return A(e,function(){t++}),t},toArray:function(e){return A(e,function(e){return e})||[]},only:function(e){if(!D(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}},e.Component=_,e.Fragment=r,e.Profiler=a,e.PureComponent=y,e.StrictMode=i,e.Suspense=l,e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ne,e.act=re,e.cloneElement=function(e,n,r){if(e==null)throw Error(`React.cloneElement(...): The argument must be a React element, but you passed `+e+`.`);var i=h({},e.props),a=e.key,o=e.ref,s=e._owner;if(n!=null){if(n.ref!==void 0&&(o=n.ref,s=C.current),n.key!==void 0&&(a=``+n.key),e.type&&e.type.defaultProps)var c=e.type.defaultProps;for(l in n)S.call(n,l)&&!w.hasOwnProperty(l)&&(i[l]=n[l]===void 0&&c!==void 0?c[l]:n[l])}var l=arguments.length-2;if(l===1)i.children=r;else if(1<l){c=Array(l);for(var u=0;u<l;u++)c[u]=arguments[u+2];i.children=c}return{$$typeof:t,type:e.type,key:a,ref:o,props:i,_owner:s}},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:o,_context:e},e.Consumer=e},e.createElement=T,e.createFactory=function(e){var t=T.bind(null,e);return t.type=e,t},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=D,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:j}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=N.transition;N.transition={};try{e()}finally{N.transition=t}},e.unstable_act=re,e.useCallback=function(e,t){return M.current.useCallback(e,t)},e.useContext=function(e){return M.current.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e){return M.current.useDeferredValue(e)},e.useEffect=function(e,t){return M.current.useEffect(e,t)},e.useId=function(){return M.current.useId()},e.useImperativeHandle=function(e,t,n){return M.current.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return M.current.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return M.current.useLayoutEffect(e,t)},e.useMemo=function(e,t){return M.current.useMemo(e,t)},e.useReducer=function(e,t,n){return M.current.useReducer(e,t,n)},e.useRef=function(e){return M.current.useRef(e)},e.useState=function(e){return M.current.useState(e)},e.useSyncExternalStore=function(e,t,n){return M.current.useSyncExternalStore(e,t,n)},e.useTransition=function(){return M.current.useTransition()},e.version=`18.3.1`})),p=s(((e,t)=>{t.exports=f()})),m=s((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=typeof setTimeout==`function`?setTimeout:null,_=typeof clearTimeout==`function`?clearTimeout:null,v=typeof setImmediate<`u`?setImmediate:null;typeof navigator<`u`&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function b(e){if(h=!1,y(e),!m){if(n(c)!==null)m=!0,A(x);else{var t=n(l);t!==null&&j(b,t.startTime-e)}}}function x(t,i){m=!1,h&&(h=!1,_(w),w=-1),p=!0;var a=f;try{for(y(i),d=n(c);d!==null&&(!(d.expirationTime>i)||t&&!D());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=i);i=e.unstable_now(),typeof s==`function`?d.callback=s:d===n(c)&&r(c),y(i)}else r(c);d=n(c)}if(d!==null)var u=!0;else{var g=n(l);g!==null&&j(b,g.startTime-i),u=!1}return u}finally{d=null,f=a,p=!1}}var S=!1,C=null,w=-1,T=5,E=-1;function D(){return!(e.unstable_now()-E<T)}function O(){if(C!==null){var t=e.unstable_now();E=t;var n=!0;try{n=C(!0,t)}finally{n?ee():(S=!1,C=null)}}else S=!1}var ee;if(typeof v==`function`)ee=function(){v(O)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,te=k.port2;k.port1.onmessage=O,ee=function(){te.postMessage(null)}}else ee=function(){g(O,0)};function A(e){C=e,S||(S=!0,ee())}function j(t,n){w=g(function(){t(e.unstable_now())},n)}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(e){e.callback=null},e.unstable_continueExecution=function(){m||p||(m=!0,A(x))},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):T=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_getFirstCallbackNode=function(){return n(c)},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(_(w),w=-1):h=!0,j(b,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,A(x))),r},e.unstable_shouldYield=D,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),h=s(((e,t)=>{t.exports=m()})),g=s((e=>{var t=p(),n=h();function r(e){for(var t=`https://reactjs.org/docs/error-decoder.html?invariant=`+e,n=1;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n]);return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}var i=new Set,a={};function o(e,t){s(e,t),s(e+`Capture`,t)}function s(e,t){for(a[e]=t,e=0;e<t.length;e++)i.add(t[e])}var c=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,l=Object.prototype.hasOwnProperty,u=/^[: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]*$/,d={},f={};function m(e){return l.call(f,e)?!0:l.call(d,e)?!1:u.test(e)?f[e]=!0:(d[e]=!0,!1)}function g(e,t,n,r){if(n!==null&&n.type===0)return!1;switch(typeof t){case`function`:case`symbol`:return!0;case`boolean`:return r?!1:n===null?(e=e.toLowerCase().slice(0,5),e!==`data-`&&e!==`aria-`):!n.acceptsBooleans;default:return!1}}function _(e,t,n,r){if(t==null||g(e,t,n,r))return!0;if(r)return!1;if(n!==null)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}function v(e,t,n,r,i,a,o){this.acceptsBooleans=t===2||t===3||t===4,this.attributeName=r,this.attributeNamespace=i,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=o}var y={};`children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style`.split(` `).forEach(function(e){y[e]=new v(e,0,!1,e,null,!1,!1)}),[[`acceptCharset`,`accept-charset`],[`className`,`class`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`]].forEach(function(e){var t=e[0];y[t]=new v(t,1,!1,e[1],null,!1,!1)}),[`contentEditable`,`draggable`,`spellCheck`,`value`].forEach(function(e){y[e]=new v(e,2,!1,e.toLowerCase(),null,!1,!1)}),[`autoReverse`,`externalResourcesRequired`,`focusable`,`preserveAlpha`].forEach(function(e){y[e]=new v(e,2,!1,e,null,!1,!1)}),`allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope`.split(` `).forEach(function(e){y[e]=new v(e,3,!1,e.toLowerCase(),null,!1,!1)}),[`checked`,`multiple`,`muted`,`selected`].forEach(function(e){y[e]=new v(e,3,!0,e,null,!1,!1)}),[`capture`,`download`].forEach(function(e){y[e]=new v(e,4,!1,e,null,!1,!1)}),[`cols`,`rows`,`size`,`span`].forEach(function(e){y[e]=new v(e,6,!1,e,null,!1,!1)}),[`rowSpan`,`start`].forEach(function(e){y[e]=new v(e,5,!1,e.toLowerCase(),null,!1,!1)});var b=/[\-:]([a-z])/g;function x(e){return e[1].toUpperCase()}`accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height`.split(` `).forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,null,!1,!1)}),`xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type`.split(` `).forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,`http://www.w3.org/1999/xlink`,!1,!1)}),[`xml:base`,`xml:lang`,`xml:space`].forEach(function(e){var t=e.replace(b,x);y[t]=new v(t,1,!1,e,`http://www.w3.org/XML/1998/namespace`,!1,!1)}),[`tabIndex`,`crossOrigin`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!1,!1)}),y.xlinkHref=new v(`xlinkHref`,1,!1,`xlink:href`,`http://www.w3.org/1999/xlink`,!0,!1),[`src`,`href`,`action`,`formAction`].forEach(function(e){y[e]=new v(e,1,!1,e.toLowerCase(),null,!0,!0)});function S(e,t,n,r){var i=y.hasOwnProperty(t)?y[t]:null;(i===null?r||!(2<t.length)||t[0]!==`o`&&t[0]!==`O`||t[1]!==`n`&&t[1]!==`N`:i.type!==0)&&(_(t,n,i,r)&&(n=null),r||i===null?m(t)&&(n===null?e.removeAttribute(t):e.setAttribute(t,``+n)):i.mustUseProperty?e[i.propertyName]=n===null?i.type!==3&&``:n:(t=i.attributeName,r=i.attributeNamespace,n===null?e.removeAttribute(t):(i=i.type,n=i===3||i===4&&!0===n?``:``+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}var C=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,w=Symbol.for(`react.element`),T=Symbol.for(`react.portal`),E=Symbol.for(`react.fragment`),D=Symbol.for(`react.strict_mode`),O=Symbol.for(`react.profiler`),ee=Symbol.for(`react.provider`),k=Symbol.for(`react.context`),te=Symbol.for(`react.forward_ref`),A=Symbol.for(`react.suspense`),j=Symbol.for(`react.suspense_list`),M=Symbol.for(`react.memo`),N=Symbol.for(`react.lazy`),ne=Symbol.for(`react.offscreen`),re=Symbol.iterator;function ie(e){return typeof e!=`object`||!e?null:(e=re&&e[re]||e[`@@iterator`],typeof e==`function`?e:null)}var P=Object.assign,ae;function oe(e){if(ae===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ae=t&&t[1]||``}return`
`+ae+e}var se=!1;function ce(e,t){if(!e||se)return``;se=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t){if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&typeof t.stack==`string`){for(var i=t.stack.split(`
`),a=r.stack.split(`
`),o=i.length-1,s=a.length-1;1<=o&&0<=s&&i[o]!==a[s];)s--;for(;1<=o&&0<=s;o--,s--)if(i[o]!==a[s]){if(o!==1||s!==1)do if(o--,s--,0>s||i[o]!==a[s]){var c=`
`+i[o].replace(` at new `,` at `);return e.displayName&&c.includes(`<anonymous>`)&&(c=c.replace(`<anonymous>`,e.displayName)),c}while(1<=o&&0<=s);break}}}finally{se=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:``)?oe(e):``}function le(e){switch(e.tag){case 5:return oe(e.type);case 16:return oe(`Lazy`);case 13:return oe(`Suspense`);case 19:return oe(`SuspenseList`);case 0:case 2:case 15:return e=ce(e.type,!1),e;case 11:return e=ce(e.type.render,!1),e;case 1:return e=ce(e.type,!0),e;default:return``}}function ue(e){if(e==null)return null;if(typeof e==`function`)return e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case E:return`Fragment`;case T:return`Portal`;case O:return`Profiler`;case D:return`StrictMode`;case A:return`Suspense`;case j:return`SuspenseList`}if(typeof e==`object`)switch(e.$$typeof){case k:return(e.displayName||`Context`)+`.Consumer`;case ee:return(e._context.displayName||`Context`)+`.Provider`;case te:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case M:return t=e.displayName||null,t===null?ue(e.type)||`Memo`:t;case N:t=e._payload,e=e._init;try{return ue(e(t))}catch{}}return null}function de(e){var t=e.type;switch(e.tag){case 24:return`Cache`;case 9:return(t.displayName||`Context`)+`.Consumer`;case 10:return(t._context.displayName||`Context`)+`.Provider`;case 18:return`DehydratedFragment`;case 11:return e=t.render,e=e.displayName||e.name||``,t.displayName||(e===``?`ForwardRef`:`ForwardRef(`+e+`)`);case 7:return`Fragment`;case 5:return t;case 4:return`Portal`;case 3:return`Root`;case 6:return`Text`;case 16:return ue(t);case 8:return t===D?`StrictMode`:`Mode`;case 22:return`Offscreen`;case 12:return`Profiler`;case 21:return`Scope`;case 13:return`Suspense`;case 19:return`SuspenseList`;case 25:return`TracingMarker`;case 1:case 0:case 17:case 2:case 14:case 15:if(typeof t==`function`)return t.displayName||t.name||null;if(typeof t==`string`)return t}return null}function fe(e){switch(typeof e){case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function pe(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function me(e){var t=pe(e)?`checked`:`value`,n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=``+e[t];if(!e.hasOwnProperty(t)&&n!==void 0&&typeof n.get==`function`&&typeof n.set==`function`){var i=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){r=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function he(e){e._valueTracker||=me(e)}function ge(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=pe(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}function _e(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}function ve(e,t){var n=t.checked;return P({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??e._wrapperState.initialChecked})}function ye(e,t){var n=t.defaultValue==null?``:t.defaultValue,r=t.checked==null?t.defaultChecked:t.checked;n=fe(t.value==null?n:t.value),e._wrapperState={initialChecked:r,initialValue:n,controlled:t.type===`checkbox`||t.type===`radio`?t.checked!=null:t.value!=null}}function be(e,t){t=t.checked,t!=null&&S(e,`checked`,t,!1)}function xe(e,t){be(e,t);var n=fe(t.value),r=t.type;if(n!=null)r===`number`?(n===0&&e.value===``||e.value!=n)&&(e.value=``+n):e.value!==``+n&&(e.value=``+n);else if(r===`submit`||r===`reset`){e.removeAttribute(`value`);return}t.hasOwnProperty(`value`)?Ce(e,t.type,n):t.hasOwnProperty(`defaultValue`)&&Ce(e,t.type,fe(t.defaultValue)),t.checked==null&&t.defaultChecked!=null&&(e.defaultChecked=!!t.defaultChecked)}function Se(e,t,n){if(t.hasOwnProperty(`value`)||t.hasOwnProperty(`defaultValue`)){var r=t.type;if(!(r!==`submit`&&r!==`reset`||t.value!==void 0&&t.value!==null))return;t=``+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}n=e.name,n!==``&&(e.name=``),e.defaultChecked=!!e._wrapperState.initialChecked,n!==``&&(e.name=n)}function Ce(e,t,n){(t!==`number`||_e(e.ownerDocument)!==e)&&(n==null?e.defaultValue=``+e._wrapperState.initialValue:e.defaultValue!==``+n&&(e.defaultValue=``+n))}var we=Array.isArray;function Te(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+fe(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}function Ee(e,t){if(t.dangerouslySetInnerHTML!=null)throw Error(r(91));return P({},t,{value:void 0,defaultValue:void 0,children:``+e._wrapperState.initialValue})}function De(e,t){var n=t.value;if(n==null){if(n=t.children,t=t.defaultValue,n!=null){if(t!=null)throw Error(r(92));if(we(n)){if(1<n.length)throw Error(r(93));n=n[0]}t=n}t??=``,n=t}e._wrapperState={initialValue:fe(n)}}function Oe(e,t){var n=fe(t.value),r=fe(t.defaultValue);n!=null&&(n=``+n,n!==e.value&&(e.value=n),t.defaultValue==null&&e.defaultValue!==n&&(e.defaultValue=n)),r!=null&&(e.defaultValue=``+r)}function ke(e){var t=e.textContent;t===e._wrapperState.initialValue&&t!==``&&t!==null&&(e.value=t)}function Ae(e){switch(e){case`svg`:return`http://www.w3.org/2000/svg`;case`math`:return`http://www.w3.org/1998/Math/MathML`;default:return`http://www.w3.org/1999/xhtml`}}function je(e,t){return e==null||e===`http://www.w3.org/1999/xhtml`?Ae(t):e===`http://www.w3.org/2000/svg`&&t===`foreignObject`?`http://www.w3.org/1999/xhtml`:e}var Me,Ne=function(e){return typeof MSApp<`u`&&MSApp.execUnsafeLocalFunction?function(t,n,r,i){MSApp.execUnsafeLocalFunction(function(){return e(t,n,r,i)})}:e}(function(e,t){if(e.namespaceURI!==`http://www.w3.org/2000/svg`||`innerHTML`in e)e.innerHTML=t;else{for(Me||=document.createElement(`div`),Me.innerHTML=`<svg>`+t.valueOf().toString()+`</svg>`,t=Me.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}});function Pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var Fe={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},Ie=[`Webkit`,`ms`,`Moz`,`O`];Object.keys(Fe).forEach(function(e){Ie.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),Fe[t]=Fe[e]})});function Le(e,t,n){return t==null||typeof t==`boolean`||t===``?``:n||typeof t!=`number`||t===0||Fe.hasOwnProperty(e)&&Fe[e]?(``+t).trim():t+`px`}function Re(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=n.indexOf(`--`)===0,i=Le(n,t[n],r);n===`float`&&(n=`cssFloat`),r?e.setProperty(n,i):e[n]=i}}var ze=P({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 Be(e,t){if(t){if(ze[e]&&(t.children!=null||t.dangerouslySetInnerHTML!=null))throw Error(r(137,e));if(t.dangerouslySetInnerHTML!=null){if(t.children!=null)throw Error(r(60));if(typeof t.dangerouslySetInnerHTML!=`object`||!(`__html`in t.dangerouslySetInnerHTML))throw Error(r(61))}if(t.style!=null&&typeof t.style!=`object`)throw Error(r(62))}}function Ve(e,t){if(e.indexOf(`-`)===-1)return typeof t.is==`string`;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var He=null;function Ue(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var We=null,Ge=null,Ke=null;function qe(e){if(e=Wi(e)){if(typeof We!=`function`)throw Error(r(280));var t=e.stateNode;t&&(t=Ki(t),We(e.stateNode,e.type,t))}}function Je(e){Ge?Ke?Ke.push(e):Ke=[e]:Ge=e}function Ye(){if(Ge){var e=Ge,t=Ke;if(Ke=Ge=null,qe(e),t)for(e=0;e<t.length;e++)qe(t[e])}}function Xe(e,t){return e(t)}function Ze(){}var Qe=!1;function $e(e,t,n){if(Qe)return e(t,n);Qe=!0;try{return Xe(e,t,n)}finally{Qe=!1,(Ge!==null||Ke!==null)&&(Ze(),Ye())}}function F(e,t){var n=e.stateNode;if(n===null)return null;var i=Ki(n);if(i===null)return null;n=i[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(i=!i.disabled)||(e=e.type,i=e!==`button`&&e!==`input`&&e!==`select`&&e!==`textarea`),e=!i;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(r(231,t,typeof n));return n}var et=!1;if(c)try{var tt={};Object.defineProperty(tt,"passive",{get:function(){et=!0}}),window.addEventListener(`test`,tt,tt),window.removeEventListener(`test`,tt,tt)}catch{et=!1}function nt(e,t,n,r,i,a,o,s,c){var l=Array.prototype.slice.call(arguments,3);try{t.apply(n,l)}catch(e){this.onError(e)}}var rt=!1,it=null,at=!1,ot=null,st={onError:function(e){rt=!0,it=e}};function ct(e,t,n,r,i,a,o,s,c){rt=!1,it=null,nt.apply(st,arguments)}function lt(e,t,n,i,a,o,s,c,l){if(ct.apply(this,arguments),rt){if(rt){var u=it;rt=!1,it=null}else throw Error(r(198));at||(at=!0,ot=u)}}function ut(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do t=e,t.flags&4098&&(n=t.return),e=t.return;while(e)}return t.tag===3?n:null}function dt(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function ft(e){if(ut(e)!==e)throw Error(r(188))}function pt(e){var t=e.alternate;if(!t){if(t=ut(e),t===null)throw Error(r(188));return t===e?e:null}for(var n=e,i=t;;){var a=n.return;if(a===null)break;var o=a.alternate;if(o===null){if(i=a.return,i!==null){n=i;continue}break}if(a.child===o.child){for(o=a.child;o;){if(o===n)return ft(a),e;if(o===i)return ft(a),t;o=o.sibling}throw Error(r(188))}if(n.return!==i.return)n=a,i=o;else{for(var s=!1,c=a.child;c;){if(c===n){s=!0,n=a,i=o;break}if(c===i){s=!0,i=a,n=o;break}c=c.sibling}if(!s){for(c=o.child;c;){if(c===n){s=!0,n=o,i=a;break}if(c===i){s=!0,i=o,n=a;break}c=c.sibling}if(!s)throw Error(r(189))}}if(n.alternate!==i)throw Error(r(190))}if(n.tag!==3)throw Error(r(188));return n.stateNode.current===n?e:t}function mt(e){return e=pt(e),e===null?null:ht(e)}function ht(e){if(e.tag===5||e.tag===6)return e;for(e=e.child;e!==null;){var t=ht(e);if(t!==null)return t;e=e.sibling}return null}var gt=n.unstable_scheduleCallback,_t=n.unstable_cancelCallback,vt=n.unstable_shouldYield,yt=n.unstable_requestPaint,bt=n.unstable_now,xt=n.unstable_getCurrentPriorityLevel,St=n.unstable_ImmediatePriority,Ct=n.unstable_UserBlockingPriority,I=n.unstable_NormalPriority,wt=n.unstable_LowPriority,Tt=n.unstable_IdlePriority,Et=null,Dt=null;function Ot(e){if(Dt&&typeof Dt.onCommitFiberRoot==`function`)try{Dt.onCommitFiberRoot(Et,e,void 0,(e.current.flags&128)==128)}catch{}}var kt=Math.clz32?Math.clz32:Mt,At=Math.log,jt=Math.LN2;function Mt(e){return e>>>=0,e===0?32:31-(At(e)/jt|0)|0}var Nt=64,Pt=4194304;function Ft(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return e&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return e&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function It(e,t){var n=e.pendingLanes;if(n===0)return 0;var r=0,i=e.suspendedLanes,a=e.pingedLanes,o=n&268435455;if(o!==0){var s=o&~i;s===0?(a&=o,a!==0&&(r=Ft(a))):r=Ft(s)}else o=n&~i,o===0?a!==0&&(r=Ft(a)):r=Ft(o);if(r===0)return 0;if(t!==0&&t!==r&&(t&i)===0&&(i=r&-r,a=t&-t,i>=a||i===16&&a&4194240))return t;if(r&4&&(r|=n&16),t=e.entangledLanes,t!==0)for(e=e.entanglements,t&=r;0<t;)n=31-kt(t),i=1<<n,r|=e[n],t&=~i;return r}function Lt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Rt(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes;0<a;){var o=31-kt(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=Lt(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}}function zt(e){return e=e.pendingLanes&-1073741825,e===0?e&1073741824?1073741824:0:e}function Bt(){var e=Nt;return Nt<<=1,!(Nt&4194240)&&(Nt=64),e}function Vt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ht(e,t,n){e.pendingLanes|=t,t!==536870912&&(e.suspendedLanes=0,e.pingedLanes=0),e=e.eventTimes,t=31-kt(t),e[t]=n}function Ut(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var i=31-kt(n),a=1<<i;t[i]=0,r[i]=-1,e[i]=-1,n&=~a}}function Wt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-kt(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}var Gt=0;function Kt(e){return e&=-e,1<e?4<e?e&268435455?16:536870912:4:1}var qt,Jt,Yt,Xt,Zt,Qt=!1,$t=[],en=null,tn=null,nn=null,rn=new Map,an=new Map,on=[],sn=`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 cn(e,t){switch(e){case`focusin`:case`focusout`:en=null;break;case`dragenter`:case`dragleave`:tn=null;break;case`mouseover`:case`mouseout`:nn=null;break;case`pointerover`:case`pointerout`:rn.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:an.delete(t.pointerId)}}function ln(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=Wi(t),t!==null&&Jt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function un(e,t,n,r,i){switch(t){case`focusin`:return en=ln(en,e,t,n,r,i),!0;case`dragenter`:return tn=ln(tn,e,t,n,r,i),!0;case`mouseover`:return nn=ln(nn,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return rn.set(a,ln(rn.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,an.set(a,ln(an.get(a)||null,e,t,n,r,i)),!0}return!1}function dn(e){var t=Ui(e.target);if(t!==null){var n=ut(t);if(n!==null){if(t=n.tag,t===13){if(t=dt(n),t!==null){e.blockedOn=t,Zt(e.priority,function(){Yt(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function fn(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=Cn(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);He=r,n.target.dispatchEvent(r),He=null}else return t=Wi(n),t!==null&&Jt(t),e.blockedOn=n,!1;t.shift()}return!0}function pn(e,t,n){fn(e)&&n.delete(t)}function mn(){Qt=!1,en!==null&&fn(en)&&(en=null),tn!==null&&fn(tn)&&(tn=null),nn!==null&&fn(nn)&&(nn=null),rn.forEach(pn),an.forEach(pn)}function hn(e,t){e.blockedOn===t&&(e.blockedOn=null,Qt||(Qt=!0,n.unstable_scheduleCallback(n.unstable_NormalPriority,mn)))}function gn(e){function t(t){return hn(t,e)}if(0<$t.length){hn($t[0],e);for(var n=1;n<$t.length;n++){var r=$t[n];r.blockedOn===e&&(r.blockedOn=null)}}for(en!==null&&hn(en,e),tn!==null&&hn(tn,e),nn!==null&&hn(nn,e),rn.forEach(t),an.forEach(t),n=0;n<on.length;n++)r=on[n],r.blockedOn===e&&(r.blockedOn=null);for(;0<on.length&&(n=on[0],n.blockedOn===null);)dn(n),n.blockedOn===null&&on.shift()}var _n=C.ReactCurrentBatchConfig,vn=!0;function yn(e,t,n,r){var i=Gt,a=_n.transition;_n.transition=null;try{Gt=1,xn(e,t,n,r)}finally{Gt=i,_n.transition=a}}function bn(e,t,n,r){var i=Gt,a=_n.transition;_n.transition=null;try{Gt=4,xn(e,t,n,r)}finally{Gt=i,_n.transition=a}}function xn(e,t,n,r){if(vn){var i=Cn(e,t,n,r);if(i===null)hi(e,t,r,Sn,n),cn(e,r);else if(un(i,e,t,n,r))r.stopPropagation();else if(cn(e,r),t&4&&-1<sn.indexOf(e)){for(;i!==null;){var a=Wi(i);if(a!==null&&qt(a),a=Cn(e,t,n,r),a===null&&hi(e,t,r,Sn,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else hi(e,t,r,null,n)}}var Sn=null;function Cn(e,t,n,r){if(Sn=null,e=Ue(r),e=Ui(e),e!==null){if(t=ut(e),t===null)e=null;else if(n=t.tag,n===13){if(e=dt(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}return Sn=e,null}function wn(e){switch(e){case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`resize`:case`seeked`:case`submit`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 1;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`scroll`:case`toggle`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 4;case`message`:switch(xt()){case St:return 1;case Ct:return 4;case I:case wt:return 16;case Tt:return 536870912;default:return 16}default:return 16}}var Tn=null,En=null,Dn=null;function On(){if(Dn)return Dn;var e,t=En,n=t.length,r,i=`value`in Tn?Tn.value:Tn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return Dn=i.slice(e,1<r?1-r:void 0)}function kn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function An(){return!0}function jn(){return!1}function Mn(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?An:jn,this.isPropagationStopped=jn,this}return P(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=An)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=An)},persist:function(){},isPersistent:An}),t}var Nn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Pn=Mn(Nn),Fn=P({},Nn,{view:0,detail:0}),In=Mn(Fn),Ln,Rn,zn,Bn=P({},Fn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Zn,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==zn&&(zn&&e.type===`mousemove`?(Ln=e.screenX-zn.screenX,Rn=e.screenY-zn.screenY):Rn=Ln=0,zn=e),Ln)},movementY:function(e){return`movementY`in e?e.movementY:Rn}}),Vn=Mn(Bn),Hn=Mn(P({},Bn,{dataTransfer:0})),Un=Mn(P({},Fn,{relatedTarget:0})),Wn=Mn(P({},Nn,{animationName:0,elapsedTime:0,pseudoElement:0})),Gn=Mn(P({},Nn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),Kn=Mn(P({},Nn,{data:0})),qn={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},Jn={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`},Yn={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function Xn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=Yn[e])?!!t[e]:!1}function Zn(){return Xn}var Qn=Mn(P({},Fn,{key:function(e){if(e.key){var t=qn[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=kn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?Jn[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Zn,charCode:function(e){return e.type===`keypress`?kn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?kn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),$n=Mn(P({},Bn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),er=Mn(P({},Fn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Zn})),tr=Mn(P({},Nn,{propertyName:0,elapsedTime:0,pseudoElement:0})),nr=Mn(P({},Bn,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),rr=[9,13,27,32],ir=c&&`CompositionEvent`in window,ar=null;c&&`documentMode`in document&&(ar=document.documentMode);var or=c&&`TextEvent`in window&&!ar,sr=c&&(!ir||ar&&8<ar&&11>=ar),cr=` `,lr=!1;function ur(e,t){switch(e){case`keyup`:return rr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function dr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var fr=!1;function pr(e,t){switch(e){case`compositionend`:return dr(t);case`keypress`:return t.which===32?(lr=!0,cr):null;case`textInput`:return e=t.data,e===cr&&lr?null:e;default:return null}}function mr(e,t){if(fr)return e===`compositionend`||!ir&&ur(e,t)?(e=On(),Dn=En=Tn=null,fr=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return sr&&t.locale!==`ko`?null:t.data;default:return null}}var hr={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 gr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!hr[e.type]:t===`textarea`}function _r(e,t,n,r){Je(r),t=_i(t,`onChange`),0<t.length&&(n=new Pn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var vr=null,yr=null;function br(e){li(e,0)}function R(e){if(ge(Gi(e)))return e}function xr(e,t){if(e===`change`)return t}var Sr=!1;if(c){var Cr;if(c){var wr=`oninput`in document;if(!wr){var Tr=document.createElement(`div`);Tr.setAttribute(`oninput`,`return;`),wr=typeof Tr.oninput==`function`}Cr=wr}else Cr=!1;Sr=Cr&&(!document.documentMode||9<document.documentMode)}function Er(){vr&&(vr.detachEvent(`onpropertychange`,z),yr=vr=null)}function z(e){if(e.propertyName===`value`&&R(yr)){var t=[];_r(t,yr,e,Ue(e)),$e(br,t)}}function Dr(e,t,n){e===`focusin`?(Er(),vr=t,yr=n,vr.attachEvent(`onpropertychange`,z)):e===`focusout`&&Er()}function Or(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return R(yr)}function kr(e,t){if(e===`click`)return R(t)}function Ar(e,t){if(e===`input`||e===`change`)return R(t)}function jr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var Mr=typeof Object.is==`function`?Object.is:jr;function Nr(e,t){if(Mr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!l.call(t,i)||!Mr(e[i],t[i]))return!1}return!0}function Pr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function Fr(e,t){var n=Pr(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=Pr(n)}}function Ir(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?Ir(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Lr(){for(var e=window,t=_e();t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=_e(e.document)}return t}function Rr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}function zr(e){var t=Lr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&Ir(n.ownerDocument.documentElement,n)){if(r!==null&&Rr(n)){if(t=r.start,e=r.end,e===void 0&&(e=t),`selectionStart`in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if(e=(t=n.ownerDocument||document)&&t.defaultView||window,e.getSelection){e=e.getSelection();var i=n.textContent.length,a=Math.min(r.start,i);r=r.end===void 0?a:Math.min(r.end,i),!e.extend&&a>r&&(i=r,r=a,a=i),i=Fr(n,a);var o=Fr(n,r);i&&o&&(e.rangeCount!==1||e.anchorNode!==i.node||e.anchorOffset!==i.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&(t=t.createRange(),t.setStart(i.node,i.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(o.node,o.offset)):(t.setEnd(o.node,o.offset),e.addRange(t)))}}for(t=[],e=n;e=e.parentNode;)e.nodeType===1&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for(typeof n.focus==`function`&&n.focus(),n=0;n<t.length;n++)e=t[n],e.element.scrollLeft=e.left,e.element.scrollTop=e.top}}var Br=c&&`documentMode`in document&&11>=document.documentMode,Vr=null,Hr=null,Ur=null,Wr=!1;function Gr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Wr||Vr==null||Vr!==_e(r)||(r=Vr,`selectionStart`in r&&Rr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Ur&&Nr(Ur,r)||(Ur=r,r=_i(Hr,`onSelect`),0<r.length&&(t=new Pn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=Vr)))}function Kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var qr={animationend:Kr(`Animation`,`AnimationEnd`),animationiteration:Kr(`Animation`,`AnimationIteration`),animationstart:Kr(`Animation`,`AnimationStart`),transitionend:Kr(`Transition`,`TransitionEnd`)},Jr={},Yr={};c&&(Yr=document.createElement(`div`).style,`AnimationEvent`in window||(delete qr.animationend.animation,delete qr.animationiteration.animation,delete qr.animationstart.animation),`TransitionEvent`in window||delete qr.transitionend.transition);function Xr(e){if(Jr[e])return Jr[e];if(!qr[e])return e;var t=qr[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in Yr)return Jr[e]=t[n];return e}var Zr=Xr(`animationend`),Qr=Xr(`animationiteration`),$r=Xr(`animationstart`),ei=Xr(`transitionend`),ti=new Map,ni=`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 ri(e,t){ti.set(e,t),o(t,[e])}for(var ii=0;ii<ni.length;ii++){var ai=ni[ii];ri(ai.toLowerCase(),`on`+(ai[0].toUpperCase()+ai.slice(1)))}ri(Zr,`onAnimationEnd`),ri(Qr,`onAnimationIteration`),ri($r,`onAnimationStart`),ri(`dblclick`,`onDoubleClick`),ri(`focusin`,`onFocus`),ri(`focusout`,`onBlur`),ri(ei,`onTransitionEnd`),s(`onMouseEnter`,[`mouseout`,`mouseover`]),s(`onMouseLeave`,[`mouseout`,`mouseover`]),s(`onPointerEnter`,[`pointerout`,`pointerover`]),s(`onPointerLeave`,[`pointerout`,`pointerover`]),o(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),o(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),o(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),o(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),o(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),o(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var oi=`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(` `),si=new Set(`cancel close invalid load scroll toggle`.split(` `).concat(oi));function ci(e,t,n){var r=e.type||`unknown-event`;e.currentTarget=n,lt(r,t,void 0,e),e.currentTarget=null}function li(e,t){t=!!(t&4);for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;ci(i,s,l),a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;ci(i,s,l),a=c}}}if(at)throw e=ot,at=!1,ot=null,e}function ui(e,t){var n=t[Bi];n===void 0&&(n=t[Bi]=new Set);var r=e+`__bubble`;n.has(r)||(mi(t,e,2,!1),n.add(r))}function di(e,t,n){var r=0;t&&(r|=4),mi(n,e,r,t)}var fi=`_reactListening`+Math.random().toString(36).slice(2);function pi(e){if(!e[fi]){e[fi]=!0,i.forEach(function(t){t!==`selectionchange`&&(si.has(t)||di(t,!1,e),di(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[fi]||(t[fi]=!0,di(`selectionchange`,!1,t))}}function mi(e,t,n,r){switch(wn(t)){case 1:var i=yn;break;case 4:i=bn;break;default:i=xn}n=i.bind(null,t,n,e),i=void 0,!et||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function hi(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var o=r.tag;if(o===3||o===4){var s=r.stateNode.containerInfo;if(s===i||s.nodeType===8&&s.parentNode===i)break;if(o===4)for(o=r.return;o!==null;){var c=o.tag;if((c===3||c===4)&&(c=o.stateNode.containerInfo,c===i||c.nodeType===8&&c.parentNode===i))return;o=o.return}for(;s!==null;){if(o=Ui(s),o===null)return;if(c=o.tag,c===5||c===6){r=a=o;continue a}s=s.parentNode}}r=r.return}$e(function(){var r=a,i=Ue(n),o=[];a:{var s=ti.get(e);if(s!==void 0){var c=Pn,l=e;switch(e){case`keypress`:if(kn(n)===0)break a;case`keydown`:case`keyup`:c=Qn;break;case`focusin`:l=`focus`,c=Un;break;case`focusout`:l=`blur`,c=Un;break;case`beforeblur`:case`afterblur`:c=Un;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:c=Vn;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:c=Hn;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:c=er;break;case Zr:case Qr:case $r:c=Wn;break;case ei:c=tr;break;case`scroll`:c=In;break;case`wheel`:c=nr;break;case`copy`:case`cut`:case`paste`:c=Gn;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:c=$n}var u=!!(t&4),d=!u&&e===`scroll`,f=u?s===null?null:s+`Capture`:s;u=[];for(var p=r,m;p!==null;){m=p;var h=m.stateNode;if(m.tag===5&&h!==null&&(m=h,f!==null&&(h=F(p,f),h!=null&&u.push(gi(p,h,m)))),d)break;p=p.return}0<u.length&&(s=new c(s,l,null,n,i),o.push({event:s,listeners:u}))}}if(!(t&7)){a:{if(s=e===`mouseover`||e===`pointerover`,c=e===`mouseout`||e===`pointerout`,s&&n!==He&&(l=n.relatedTarget||n.fromElement)&&(Ui(l)||l[zi]))break a;if((c||s)&&(s=i.window===i?i:(s=i.ownerDocument)?s.defaultView||s.parentWindow:window,c?(l=n.relatedTarget||n.toElement,c=r,l=l?Ui(l):null,l!==null&&(d=ut(l),l!==d||l.tag!==5&&l.tag!==6)&&(l=null)):(c=null,l=r),c!==l)){if(u=Vn,h=`onMouseLeave`,f=`onMouseEnter`,p=`mouse`,(e===`pointerout`||e===`pointerover`)&&(u=$n,h=`onPointerLeave`,f=`onPointerEnter`,p=`pointer`),d=c==null?s:Gi(c),m=l==null?s:Gi(l),s=new u(h,p+`leave`,c,n,i),s.target=d,s.relatedTarget=m,h=null,Ui(i)===r&&(u=new u(f,p+`enter`,l,n,i),u.target=m,u.relatedTarget=d,h=u),d=h,c&&l)b:{for(u=c,f=l,p=0,m=u;m;m=vi(m))p++;for(m=0,h=f;h;h=vi(h))m++;for(;0<p-m;)u=vi(u),p--;for(;0<m-p;)f=vi(f),m--;for(;p--;){if(u===f||f!==null&&u===f.alternate)break b;u=vi(u),f=vi(f)}u=null}else u=null;c!==null&&yi(o,s,c,u,!1),l!==null&&d!==null&&yi(o,d,l,u,!0)}}a:{if(s=r?Gi(r):window,c=s.nodeName&&s.nodeName.toLowerCase(),c===`select`||c===`input`&&s.type===`file`)var g=xr;else if(gr(s)){if(Sr)g=Ar;else{g=Or;var _=Dr}}else(c=s.nodeName)&&c.toLowerCase()===`input`&&(s.type===`checkbox`||s.type===`radio`)&&(g=kr);if(g&&=g(e,r)){_r(o,g,n,i);break a}_&&_(e,s,r),e===`focusout`&&(_=s._wrapperState)&&_.controlled&&s.type===`number`&&Ce(s,`number`,s.value)}switch(_=r?Gi(r):window,e){case`focusin`:(gr(_)||_.contentEditable===`true`)&&(Vr=_,Hr=r,Ur=null);break;case`focusout`:Ur=Hr=Vr=null;break;case`mousedown`:Wr=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:Wr=!1,Gr(o,n,i);break;case`selectionchange`:if(Br)break;case`keydown`:case`keyup`:Gr(o,n,i)}var v;if(ir)b:{switch(e){case`compositionstart`:var y=`onCompositionStart`;break b;case`compositionend`:y=`onCompositionEnd`;break b;case`compositionupdate`:y=`onCompositionUpdate`;break b}y=void 0}else fr?ur(e,n)&&(y=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(y=`onCompositionStart`);y&&(sr&&n.locale!==`ko`&&(fr||y!==`onCompositionStart`?y===`onCompositionEnd`&&fr&&(v=On()):(Tn=i,En=`value`in Tn?Tn.value:Tn.textContent,fr=!0)),_=_i(r,y),0<_.length&&(y=new Kn(y,e,null,n,i),o.push({event:y,listeners:_}),v?y.data=v:(v=dr(n),v!==null&&(y.data=v)))),(v=or?pr(e,n):mr(e,n))&&(r=_i(r,`onBeforeInput`),0<r.length&&(i=new Kn(`onBeforeInput`,`beforeinput`,null,n,i),o.push({event:i,listeners:r}),i.data=v))}li(o,t)})}function gi(e,t,n){return{instance:e,listener:t,currentTarget:n}}function _i(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;i.tag===5&&a!==null&&(i=a,a=F(e,n),a!=null&&r.unshift(gi(e,a,i)),a=F(e,t),a!=null&&r.push(gi(e,a,i))),e=e.return}return r}function vi(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5);return e||null}function yi(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(c!==null&&c===r)break;s.tag===5&&l!==null&&(s=l,i?(c=F(n,a),c!=null&&o.unshift(gi(n,c,s))):i||(c=F(n,a),c!=null&&o.push(gi(n,c,s)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var bi=/\r\n?/g,xi=/\u0000|\uFFFD/g;function Si(e){return(typeof e==`string`?e:``+e).replace(bi,`
`).replace(xi,``)}function Ci(e,t,n){if(t=Si(t),Si(e)!==t&&n)throw Error(r(425))}function wi(){}var Ti=null,Ei=null;function Di(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var Oi=typeof setTimeout==`function`?setTimeout:void 0,ki=typeof clearTimeout==`function`?clearTimeout:void 0,Ai=typeof Promise==`function`?Promise:void 0,ji=typeof queueMicrotask==`function`?queueMicrotask:Ai===void 0?Oi:function(e){return Ai.resolve(null).then(e).catch(Mi)};function Mi(e){setTimeout(function(){throw e})}function Ni(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8){if(n=i.data,n===`/$`){if(r===0){e.removeChild(i),gn(t);return}r--}else n!==`$`&&n!==`$?`&&n!==`$!`||r++}n=i}while(n);gn(t)}function Pi(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`)break;if(t===`/$`)return null}}return e}function Fi(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`){if(t===0)return e;t--}else n===`/$`&&t++}e=e.previousSibling}return null}var Ii=Math.random().toString(36).slice(2),Li=`__reactFiber$`+Ii,Ri=`__reactProps$`+Ii,zi=`__reactContainer$`+Ii,Bi=`__reactEvents$`+Ii,Vi=`__reactListeners$`+Ii,Hi=`__reactHandles$`+Ii;function Ui(e){var t=e[Li];if(t)return t;for(var n=e.parentNode;n;){if(t=n[zi]||n[Li]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=Fi(e);e!==null;){if(n=e[Li])return n;e=Fi(e)}return t}e=n,n=e.parentNode}return null}function Wi(e){return e=e[Li]||e[zi],!e||e.tag!==5&&e.tag!==6&&e.tag!==13&&e.tag!==3?null:e}function Gi(e){if(e.tag===5||e.tag===6)return e.stateNode;throw Error(r(33))}function Ki(e){return e[Ri]||null}var qi=[],Ji=-1;function Yi(e){return{current:e}}function Xi(e){0>Ji||(e.current=qi[Ji],qi[Ji]=null,Ji--)}function Zi(e,t){Ji++,qi[Ji]=e.current,e.current=t}var Qi={},$i=Yi(Qi),ea=Yi(!1),ta=Qi;function na(e,t){var n=e.type.contextTypes;if(!n)return Qi;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i={},a;for(a in n)i[a]=t[a];return r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=i),i}function ra(e){return e=e.childContextTypes,e!=null}function ia(){Xi(ea),Xi($i)}function aa(e,t,n){if($i.current!==Qi)throw Error(r(168));Zi($i,t),Zi(ea,n)}function oa(e,t,n){var i=e.stateNode;if(t=t.childContextTypes,typeof i.getChildContext!=`function`)return n;for(var a in i=i.getChildContext(),i)if(!(a in t))throw Error(r(108,de(e)||`Unknown`,a));return P({},n,i)}function sa(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Qi,ta=$i.current,Zi($i,e),Zi(ea,ea.current),!0}function ca(e,t,n){var i=e.stateNode;if(!i)throw Error(r(169));n?(e=oa(e,t,ta),i.__reactInternalMemoizedMergedChildContext=e,Xi(ea),Xi($i),Zi($i,e)):Xi(ea),Zi(ea,n)}var la=null,ua=!1,da=!1;function fa(e){la===null?la=[e]:la.push(e)}function pa(e){ua=!0,fa(e)}function ma(){if(!da&&la!==null){da=!0;var e=0,t=Gt;try{var n=la;for(Gt=1;e<n.length;e++){var r=n[e];do r=r(!0);while(r!==null)}la=null,ua=!1}catch(t){throw la!==null&&(la=la.slice(e+1)),gt(St,ma),t}finally{Gt=t,da=!1}}return null}var ha=[],B=0,ga=null,_a=0,va=[],ya=0,ba=null,xa=1,Sa=``;function Ca(e,t){ha[B++]=_a,ha[B++]=ga,ga=e,_a=t}function wa(e,t,n){va[ya++]=xa,va[ya++]=Sa,va[ya++]=ba,ba=e;var r=xa;e=Sa;var i=32-kt(r)-1;r&=~(1<<i),n+=1;var a=32-kt(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,xa=1<<32-kt(t)+i|n<<i|r,Sa=a+e}else xa=1<<a|n<<i|r,Sa=e}function Ta(e){e.return!==null&&(Ca(e,1),wa(e,1,0))}function Ea(e){for(;e===ga;)ga=ha[--B],ha[B]=null,_a=ha[--B],ha[B]=null;for(;e===ba;)ba=va[--ya],va[ya]=null,Sa=va[--ya],va[ya]=null,xa=va[--ya],va[ya]=null}var Da=null,Oa=null,ka=!1,Aa=null;function ja(e,t){var n=tu(5,null,null,0);n.elementType=`DELETED`,n.stateNode=t,n.return=e,t=e.deletions,t===null?(e.deletions=[n],e.flags|=16):t.push(n)}function Ma(e,t){switch(e.tag){case 5:var n=e.type;return t=t.nodeType!==1||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t,t!==null&&(e.stateNode=t,Da=e,Oa=Pi(t.firstChild),!0);case 6:return t=e.pendingProps===``||t.nodeType!==3?null:t,t!==null&&(e.stateNode=t,Da=e,Oa=null,!0);case 13:return t=t.nodeType===8?t:null,t!==null&&(n=ba===null?null:{id:xa,overflow:Sa},e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},n=tu(18,null,null,0),n.stateNode=t,n.return=e,e.child=n,Da=e,Oa=null,!0);default:return!1}}function Na(e){return!!(e.mode&1)&&!(e.flags&128)}function Pa(e){if(ka){var t=Oa;if(t){var n=t;if(!Ma(e,t)){if(Na(e))throw Error(r(418));t=Pi(n.nextSibling);var i=Da;t&&Ma(e,t)?ja(i,n):(e.flags=e.flags&-4097|2,ka=!1,Da=e)}}else{if(Na(e))throw Error(r(418));e.flags=e.flags&-4097|2,ka=!1,Da=e}}}function Fa(e){for(e=e.return;e!==null&&e.tag!==5&&e.tag!==3&&e.tag!==13;)e=e.return;Da=e}function Ia(e){if(e!==Da)return!1;if(!ka)return Fa(e),ka=!0,!1;var t;if((t=e.tag!==3)&&!(t=e.tag!==5)&&(t=e.type,t=t!==`head`&&t!==`body`&&!Di(e.type,e.memoizedProps)),t&&=Oa){if(Na(e))throw La(),Error(r(418));for(;t;)ja(e,t),t=Pi(t.nextSibling)}if(Fa(e),e.tag===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(r(317));a:{for(e=e.nextSibling,t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`){if(t===0){Oa=Pi(e.nextSibling);break a}t--}else n!==`$`&&n!==`$!`&&n!==`$?`||t++}e=e.nextSibling}Oa=null}}else Oa=Da?Pi(e.stateNode.nextSibling):null;return!0}function La(){for(var e=Oa;e;)e=Pi(e.nextSibling)}function Ra(){Oa=Da=null,ka=!1}function za(e){Aa===null?Aa=[e]:Aa.push(e)}var Ba=C.ReactCurrentBatchConfig;function Va(e,t,n){if(e=n.ref,e!==null&&typeof e!=`function`&&typeof e!=`object`){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(r(309));var i=n.stateNode}if(!i)throw Error(r(147,e));var a=i,o=``+e;return t!==null&&t.ref!==null&&typeof t.ref==`function`&&t.ref._stringRef===o?t.ref:(t=function(e){var t=a.refs;e===null?delete t[o]:t[o]=e},t._stringRef=o,t)}if(typeof e!=`string`)throw Error(r(284));if(!n._owner)throw Error(r(290,e))}return e}function Ha(e,t){throw e=Object.prototype.toString.call(t),Error(r(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e))}function Ua(e){var t=e._init;return t(e._payload)}function Wa(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function i(e,t){for(e=new Map;t!==null;)t.key===null?e.set(t.index,t):e.set(t.key,t),t=t.sibling;return e}function a(e,t){return e=iu(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=2,n):(r=r.index,r<n?(t.flags|=2,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=2),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=cu(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===E?d(e,t,n.props.children,r,n.key):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===N&&Ua(i)===t.type)?(r=a(t,n.props),r.ref=Va(e,t,n),r.return=e,r):(r=au(n.type,n.key,n.props,null,e.mode,r),r.ref=Va(e,t,n),r.return=e,r)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=lu(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=ou(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`)return t=cu(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case w:return n=au(t.type,t.key,t.props,null,e.mode,n),n.ref=Va(e,null,t),n.return=e,n;case T:return t=lu(t,e.mode,n),t.return=e,t;case N:var r=t._init;return f(e,r(t._payload),n)}if(we(t)||ie(t))return t=ou(t,e.mode,n,null),t.return=e,t;Ha(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;if(typeof n==`string`&&n!==``||typeof n==`number`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case w:return n.key===i?l(e,t,n,r):null;case T:return n.key===i?u(e,t,n,r):null;case N:return i=n._init,p(e,t,i(n._payload),r)}if(we(n)||ie(n))return i===null?d(e,t,n,r,null):null;Ha(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case w:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case T:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case N:var a=r._init;return m(e,t,n,a(r._payload),i)}if(we(r)||ie(r))return e=e.get(n)||null,d(t,e,r,i,null);Ha(t,r)}return null}function h(r,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(r,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(r,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(r,d),ka&&Ca(r,h),l;if(d===null){for(;h<s.length;h++)d=f(r,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return ka&&Ca(r,h),l}for(d=i(r,d);h<s.length;h++)g=m(d,r,h,s[h],c),g!==null&&(e&&g.alternate!==null&&d.delete(g.key===null?h:g.key),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(r,e)}),ka&&Ca(r,h),l}function g(a,s,c,l){var u=ie(c);if(typeof u!=`function`)throw Error(r(150));if(c=u.call(c),c==null)throw Error(r(151));for(var d=u=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),ka&&Ca(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return ka&&Ca(a,g),u}for(h=i(a,h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),ka&&Ca(a,g),u}function _(e,r,i,o){if(typeof i==`object`&&i&&i.type===E&&i.key===null&&(i=i.props.children),typeof i==`object`&&i){switch(i.$$typeof){case w:a:{for(var c=i.key,l=r;l!==null;){if(l.key===c){if(c=i.type,c===E){if(l.tag===7){n(e,l.sibling),r=a(l,i.props.children),r.return=e,e=r;break a}}else if(l.elementType===c||typeof c==`object`&&c&&c.$$typeof===N&&Ua(c)===l.type){n(e,l.sibling),r=a(l,i.props),r.ref=Va(e,l,i),r.return=e,e=r;break a}n(e,l);break}t(e,l),l=l.sibling}i.type===E?(r=ou(i.props.children,e.mode,o,i.key),r.return=e,e=r):(o=au(i.type,i.key,i.props,null,e.mode,o),o.ref=Va(e,r,i),o.return=e,e=o)}return s(e);case T:a:{for(l=i.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===i.containerInfo&&r.stateNode.implementation===i.implementation){n(e,r.sibling),r=a(r,i.children||[]),r.return=e,e=r;break a}n(e,r);break}t(e,r),r=r.sibling}r=lu(i,e.mode,o),r.return=e,e=r}return s(e);case N:return l=i._init,_(e,r,l(i._payload),o)}if(we(i))return h(e,r,i,o);if(ie(i))return g(e,r,i,o);Ha(e,i)}return typeof i==`string`&&i!==``||typeof i==`number`?(i=``+i,r!==null&&r.tag===6?(n(e,r.sibling),r=a(r,i),r.return=e,e=r):(n(e,r),r=cu(i,e.mode,o),r.return=e,e=r),s(e)):n(e,r)}return _}var Ga=Wa(!0),Ka=Wa(!1),qa=Yi(null),Ja=null,Ya=null,Xa=null;function Za(){Xa=Ya=Ja=null}function Qa(e){var t=qa.current;Xi(qa),e._currentValue=t}function $a(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function eo(e,t){Ja=e,Xa=Ya=null,e=e.dependencies,e!==null&&e.firstContext!==null&&((e.lanes&t)!==0&&(Hs=!0),e.firstContext=null)}function to(e){var t=e._currentValue;if(Xa!==e){if(e={context:e,memoizedValue:t,next:null},Ya===null){if(Ja===null)throw Error(r(308));Ya=e,Ja.dependencies={lanes:0,firstContext:e}}else Ya=Ya.next=e}return t}var no=null;function ro(e){no===null?no=[e]:no.push(e)}function io(e,t,n,r){var i=t.interleaved;return i===null?(n.next=n,ro(t)):(n.next=i.next,i.next=n),t.interleaved=n,ao(e,r)}function ao(e,t){e.lanes|=t;var n=e.alternate;for(n!==null&&(n.lanes|=t),n=e,e=e.return;e!==null;)e.childLanes|=t,n=e.alternate,n!==null&&(n.childLanes|=t),n=e,e=e.return;return n.tag===3?n.stateNode:null}var oo=!1;function so(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function co(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function lo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function uo(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Xc&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,ao(e,n)}return i=r.interleaved,i===null?(t.next=t,ro(r)):(t.next=i.next,i.next=t),r.interleaved=t,ao(e,n)}function fo(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194240)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Wt(e,n)}}function po(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,effects:r.effects},e.updateQueue=n}else e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function mo(e,t,n,r){var i=e.updateQueue;oo=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane,p=s.eventTime;if((r&f)===f){u!==null&&(u=u.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});a:{var m=e,h=s;switch(f=t,p=n,h.tag){case 1:if(m=h.payload,typeof m==`function`){d=m.call(p,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=h.payload,f=typeof m==`function`?m.call(p,d,f):m,f==null)break a;d=P({},d,f);break a;case 2:oo=!0}}s.callback!==null&&s.lane!==0&&(e.flags|=64,f=i.effects,f===null?i.effects=[s]:f.push(s))}else p={eventTime:p,lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;f=s,s=f.next,f.next=null,i.lastBaseUpdate=f,i.shared.pending=null}}while(1);if(u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,t=i.shared.interleaved,t!==null){i=t;do o|=i.lane,i=i.next;while(i!==t)}else a===null&&(i.shared.lanes=0);il|=o,e.lanes=o,e.memoizedState=d}}function ho(e,t,n){if(e=t.effects,t.effects=null,e!==null)for(t=0;t<e.length;t++){var i=e[t],a=i.callback;if(a!==null){if(i.callback=null,i=n,typeof a!=`function`)throw Error(r(191,a));a.call(i)}}}var go={},_o=Yi(go),vo=Yi(go),yo=Yi(go);function bo(e){if(e===go)throw Error(r(174));return e}function xo(e,t){switch(Zi(yo,t),Zi(vo,e),Zi(_o,go),e=t.nodeType,e){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:je(null,``);break;default:e=e===8?t.parentNode:t,t=e.namespaceURI||null,e=e.tagName,t=je(t,e)}Xi(_o),Zi(_o,t)}function So(){Xi(_o),Xi(vo),Xi(yo)}function Co(e){bo(yo.current);var t=bo(_o.current),n=je(t,e.type);t!==n&&(Zi(vo,e),Zi(_o,n))}function wo(e){vo.current===e&&(Xi(_o),Xi(vo))}var To=Yi(0);function Eo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data===`$?`||n.data===`$!`))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==void 0){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Do=[];function V(){for(var e=0;e<Do.length;e++)Do[e]._workInProgressVersionPrimary=null;Do.length=0}var Oo=C.ReactCurrentDispatcher,ko=C.ReactCurrentBatchConfig,Ao=0,H=null,jo=null,Mo=null,No=!1,Po=!1,Fo=0,Io=0;function Lo(){throw Error(r(321))}function Ro(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Mr(e[n],t[n]))return!1;return!0}function zo(e,t,n,i,a,o){if(Ao=o,H=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,Oo.current=e===null||e.memoizedState===null?Ss:Cs,e=n(i,a),Po){o=0;do{if(Po=!1,Fo=0,25<=o)throw Error(r(301));o+=1,Mo=jo=null,t.updateQueue=null,Oo.current=ws,e=n(i,a)}while(Po)}if(Oo.current=xs,t=jo!==null&&jo.next!==null,Ao=0,Mo=jo=H=null,No=!1,t)throw Error(r(300));return e}function Bo(){var e=Fo!==0;return Fo=0,e}function Vo(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Mo===null?H.memoizedState=Mo=e:Mo=Mo.next=e,Mo}function Ho(){if(jo===null){var e=H.alternate;e=e===null?null:e.memoizedState}else e=jo.next;var t=Mo===null?H.memoizedState:Mo.next;if(t!==null)Mo=t,jo=e;else{if(e===null)throw Error(r(310));jo=e,e={memoizedState:jo.memoizedState,baseState:jo.baseState,baseQueue:jo.baseQueue,queue:jo.queue,next:null},Mo===null?H.memoizedState=Mo=e:Mo=Mo.next=e}return Mo}function Uo(e,t){return typeof t==`function`?t(e):t}function Wo(e){var t=Ho(),n=t.queue;if(n===null)throw Error(r(311));n.lastRenderedReducer=e;var i=jo,a=i.baseQueue,o=n.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}i.baseQueue=a=o,n.pending=null}if(a!==null){o=a.next,i=i.baseState;var c=s=null,l=null,u=o;do{var d=u.lane;if((Ao&d)===d)l!==null&&(l=l.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),i=u.hasEagerState?u.eagerState:e(i,u.action);else{var f={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};l===null?(c=l=f,s=i):l=l.next=f,H.lanes|=d,il|=d}u=u.next}while(u!==null&&u!==o);l===null?s=i:l.next=c,Mr(i,t.memoizedState)||(Hs=!0),t.memoizedState=i,t.baseState=s,t.baseQueue=l,n.lastRenderedState=i}if(e=n.interleaved,e!==null){a=e;do o=a.lane,H.lanes|=o,il|=o,a=a.next;while(a!==e)}else a===null&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Go(e){var t=Ho(),n=t.queue;if(n===null)throw Error(r(311));n.lastRenderedReducer=e;var i=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);Mr(o,t.memoizedState)||(Hs=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,i]}function Ko(){}function qo(e,t){var n=H,i=Ho(),a=t(),o=!Mr(i.memoizedState,a);if(o&&(i.memoizedState=a,Hs=!0),i=i.queue,as(Xo.bind(null,n,i,e),[e]),i.getSnapshot!==t||o||Mo!==null&&Mo.memoizedState.tag&1){if(n.flags|=2048,es(9,Yo.bind(null,n,i,a,t),void 0,null),Zc===null)throw Error(r(349));Ao&30||Jo(n,t,a)}return a}function Jo(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=H.updateQueue,t===null?(t={lastEffect:null,stores:null},H.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function Yo(e,t,n,r){t.value=n,t.getSnapshot=r,Zo(t)&&Qo(e)}function Xo(e,t,n){return n(function(){Zo(t)&&Qo(e)})}function Zo(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Mr(e,n)}catch{return!0}}function Qo(e){var t=ao(e,1);t!==null&&wl(t,e,1,-1)}function $o(e){var t=Vo();return typeof e==`function`&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Uo,lastRenderedState:e},t.queue=e,e=e.dispatch=_s.bind(null,H,e),[t.memoizedState,e]}function es(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},t=H.updateQueue,t===null?(t={lastEffect:null,stores:null},H.updateQueue=t,t.lastEffect=e.next=e):(n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e)),e}function ts(){return Ho().memoizedState}function ns(e,t,n,r){var i=Vo();H.flags|=e,i.memoizedState=es(1|t,n,void 0,r===void 0?null:r)}function rs(e,t,n,r){var i=Ho();r=r===void 0?null:r;var a=void 0;if(jo!==null){var o=jo.memoizedState;if(a=o.destroy,r!==null&&Ro(r,o.deps)){i.memoizedState=es(t,n,a,r);return}}H.flags|=e,i.memoizedState=es(1|t,n,a,r)}function is(e,t){return ns(8390656,8,e,t)}function as(e,t){return rs(2048,8,e,t)}function os(e,t){return rs(4,2,e,t)}function ss(e,t){return rs(4,4,e,t)}function cs(e,t){if(typeof t==`function`)return e=e(),t(e),function(){t(null)};if(t!=null)return e=e(),t.current=e,function(){t.current=null}}function ls(e,t,n){return n=n==null?null:n.concat([e]),rs(4,4,cs.bind(null,t,e),n)}function us(){}function ds(e,t){var n=Ho();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Ro(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function fs(e,t){var n=Ho();t=t===void 0?null:t;var r=n.memoizedState;return r!==null&&t!==null&&Ro(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function ps(e,t,n){return Ao&21?(Mr(n,t)||(n=Bt(),H.lanes|=n,il|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Hs=!0),e.memoizedState=n)}function ms(e,t){var n=Gt;Gt=n!==0&&4>n?n:4,e(!0);var r=ko.transition;ko.transition={};try{e(!1),t()}finally{Gt=n,ko.transition=r}}function hs(){return Ho().memoizedState}function gs(e,t,n){var r=Cl(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},vs(e))ys(t,n);else if(n=io(e,t,n,r),n!==null){var i=Sl();wl(n,e,r,i),bs(n,t,r)}}function _s(e,t,n){var r=Cl(e),i={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(vs(e))ys(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Mr(s,o)){var c=t.interleaved;c===null?(i.next=i,ro(t)):(i.next=c.next,c.next=i),t.interleaved=i;return}}catch{}n=io(e,t,i,r),n!==null&&(i=Sl(),wl(n,e,r,i),bs(n,t,r))}}function vs(e){var t=e.alternate;return e===H||t!==null&&t===H}function ys(e,t){Po=No=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function bs(e,t,n){if(n&4194240){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Wt(e,n)}}var xs={readContext:to,useCallback:Lo,useContext:Lo,useEffect:Lo,useImperativeHandle:Lo,useInsertionEffect:Lo,useLayoutEffect:Lo,useMemo:Lo,useReducer:Lo,useRef:Lo,useState:Lo,useDebugValue:Lo,useDeferredValue:Lo,useTransition:Lo,useMutableSource:Lo,useSyncExternalStore:Lo,useId:Lo,unstable_isNewReconciler:!1},Ss={readContext:to,useCallback:function(e,t){return Vo().memoizedState=[e,t===void 0?null:t],e},useContext:to,useEffect:is,useImperativeHandle:function(e,t,n){return n=n==null?null:n.concat([e]),ns(4194308,4,cs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return ns(4194308,4,e,t)},useInsertionEffect:function(e,t){return ns(4,2,e,t)},useMemo:function(e,t){var n=Vo();return t=t===void 0?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Vo();return t=n===void 0?t:n(t),r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=gs.bind(null,H,e),[r.memoizedState,e]},useRef:function(e){var t=Vo();return e={current:e},t.memoizedState=e},useState:$o,useDebugValue:us,useDeferredValue:function(e){return Vo().memoizedState=e},useTransition:function(){var e=$o(!1),t=e[0];return e=ms.bind(null,e[1]),Vo().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var i=H,a=Vo();if(ka){if(n===void 0)throw Error(r(407));n=n()}else{if(n=t(),Zc===null)throw Error(r(349));Ao&30||Jo(i,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,is(Xo.bind(null,i,o,e),[e]),i.flags|=2048,es(9,Yo.bind(null,i,o,n,t),void 0,null),n},useId:function(){var e=Vo(),t=Zc.identifierPrefix;if(ka){var n=Sa,r=xa;n=(r&~(1<<32-kt(r)-1)).toString(32)+n,t=`:`+t+`R`+n,n=Fo++,0<n&&(t+=`H`+n.toString(32)),t+=`:`}else n=Io++,t=`:`+t+`r`+n.toString(32)+`:`;return e.memoizedState=t},unstable_isNewReconciler:!1},Cs={readContext:to,useCallback:ds,useContext:to,useEffect:as,useImperativeHandle:ls,useInsertionEffect:os,useLayoutEffect:ss,useMemo:fs,useReducer:Wo,useRef:ts,useState:function(){return Wo(Uo)},useDebugValue:us,useDeferredValue:function(e){return ps(Ho(),jo.memoizedState,e)},useTransition:function(){return[Wo(Uo)[0],Ho().memoizedState]},useMutableSource:Ko,useSyncExternalStore:qo,useId:hs,unstable_isNewReconciler:!1},ws={readContext:to,useCallback:ds,useContext:to,useEffect:as,useImperativeHandle:ls,useInsertionEffect:os,useLayoutEffect:ss,useMemo:fs,useReducer:Go,useRef:ts,useState:function(){return Go(Uo)},useDebugValue:us,useDeferredValue:function(e){var t=Ho();return jo===null?t.memoizedState=e:ps(t,jo.memoizedState,e)},useTransition:function(){return[Go(Uo)[0],Ho().memoizedState]},useMutableSource:Ko,useSyncExternalStore:qo,useId:hs,unstable_isNewReconciler:!1};function Ts(e,t){if(e&&e.defaultProps){for(var n in t=P({},t),e=e.defaultProps,e)t[n]===void 0&&(t[n]=e[n]);return t}return t}function Es(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:P({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var Ds={isMounted:function(e){return(e=e._reactInternals)?ut(e)===e:!1},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=Sl(),i=Cl(e),a=lo(r,i);a.payload=t,n!=null&&(a.callback=n),t=uo(e,a,i),t!==null&&(wl(t,e,i,r),fo(t,e,i))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=Sl(),i=Cl(e),a=lo(r,i);a.tag=1,a.payload=t,n!=null&&(a.callback=n),t=uo(e,a,i),t!==null&&(wl(t,e,i,r),fo(t,e,i))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=Sl(),r=Cl(e),i=lo(n,r);i.tag=2,t!=null&&(i.callback=t),t=uo(e,i,r),t!==null&&(wl(t,e,r,n),fo(t,e,r))}};function Os(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!Nr(n,r)||!Nr(i,a):!0}function ks(e,t,n){var r=!1,i=Qi,a=t.contextType;return typeof a==`object`&&a?a=to(a):(i=ra(t)?ta:$i.current,r=t.contextTypes,a=(r=r!=null)?na(e,i):Qi),t=new t(n,a),e.memoizedState=t.state!==null&&t.state!==void 0?t.state:null,t.updater=Ds,e.stateNode=t,t._reactInternals=e,r&&(e=e.stateNode,e.__reactInternalMemoizedUnmaskedChildContext=i,e.__reactInternalMemoizedMaskedChildContext=a),t}function As(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Ds.enqueueReplaceState(t,t.state,null)}function js(e,t,n,r){var i=e.stateNode;i.props=n,i.state=e.memoizedState,i.refs={},so(e);var a=t.contextType;typeof a==`object`&&a?i.context=to(a):(a=ra(t)?ta:$i.current,i.context=na(e,a)),i.state=e.memoizedState,a=t.getDerivedStateFromProps,typeof a==`function`&&(Es(e,t,a,n),i.state=e.memoizedState),typeof t.getDerivedStateFromProps==`function`||typeof i.getSnapshotBeforeUpdate==`function`||typeof i.UNSAFE_componentWillMount!=`function`&&typeof i.componentWillMount!=`function`||(t=i.state,typeof i.componentWillMount==`function`&&i.componentWillMount(),typeof i.UNSAFE_componentWillMount==`function`&&i.UNSAFE_componentWillMount(),t!==i.state&&Ds.enqueueReplaceState(i,i.state,null),mo(e,n,i,r),i.state=e.memoizedState),typeof i.componentDidMount==`function`&&(e.flags|=4194308)}function Ms(e,t){try{var n=``,r=t;do n+=le(r),r=r.return;while(r);var i=n}catch(e){i=`
Error generating stack: `+e.message+`
`+e.stack}return{value:e,source:t,stack:i,digest:null}}function Ns(e,t,n){return{value:e,source:null,stack:n??null,digest:t??null}}function Ps(e,t){try{console.error(t.value)}catch(e){setTimeout(function(){throw e})}}var Fs=typeof WeakMap==`function`?WeakMap:Map;function Is(e,t,n){n=lo(-1,n),n.tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){fl||(fl=!0,pl=r),Ps(e,t)},n}function Ls(e,t,n){n=lo(-1,n),n.tag=3;var r=e.type.getDerivedStateFromError;if(typeof r==`function`){var i=t.value;n.payload=function(){return r(i)},n.callback=function(){Ps(e,t)}}var a=e.stateNode;return a!==null&&typeof a.componentDidCatch==`function`&&(n.callback=function(){Ps(e,t),typeof r!=`function`&&(ml===null?ml=new Set([this]):ml.add(this));var n=t.stack;this.componentDidCatch(t.value,{componentStack:n===null?``:n})}),n}function Rs(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Fs;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(i.add(n),e=Jl.bind(null,e,t,n),t.then(e,e))}function zs(e){do{var t;if((t=e.tag===13)&&(t=e.memoizedState,t=t===null||t.dehydrated!==null),t)return e;e=e.return}while(e!==null);return null}function Bs(e,t,n,r,i){return e.mode&1?(e.flags|=65536,e.lanes=i,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(t=lo(-1,1),t.tag=2,uo(n,t,1))),n.lanes|=1),e)}var Vs=C.ReactCurrentOwner,Hs=!1;function Us(e,t,n,r){t.child=e===null?Ka(t,null,n,r):Ga(t,e.child,n,r)}function Ws(e,t,n,r,i){n=n.render;var a=t.ref;return eo(t,i),r=zo(e,t,n,r,a,i),n=Bo(),e!==null&&!Hs?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,lc(e,t,i)):(ka&&n&&Ta(t),t.flags|=1,Us(e,t,r,i),t.child)}function Gs(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!nu(a)&&a.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(t.tag=15,t.type=a,Ks(e,t,a,r,i)):(e=au(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,(e.lanes&i)===0){var o=a.memoizedProps;if(n=n.compare,n=n===null?Nr:n,n(o,r)&&e.ref===t.ref)return lc(e,t,i)}return t.flags|=1,e=iu(a,r),e.ref=t.ref,e.return=t,t.child=e}function Ks(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(Nr(a,r)&&e.ref===t.ref){if(Hs=!1,t.pendingProps=r=a,(e.lanes&i)!==0)e.flags&131072&&(Hs=!0);else return t.lanes=e.lanes,lc(e,t,i)}}return Ys(e,t,n,r,i)}function qs(e,t,n){var r=t.pendingProps,i=r.children,a=e===null?null:e.memoizedState;if(r.mode===`hidden`){if(!(t.mode&1))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Zi(tl,el),el|=n;else{if(!(n&1073741824))return e=a===null?n:a.baseLanes|n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Zi(tl,el),el|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=a===null?n:a.baseLanes,Zi(tl,el),el|=r}}else a===null?r=n:(r=a.baseLanes|n,t.memoizedState=null),Zi(tl,el),el|=r;return Us(e,t,i,n),t.child}function Js(e,t){var n=t.ref;(e===null&&n!==null||e!==null&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Ys(e,t,n,r,i){var a=ra(n)?ta:$i.current;return a=na(t,a),eo(t,i),n=zo(e,t,n,r,a,i),r=Bo(),e!==null&&!Hs?(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~i,lc(e,t,i)):(ka&&r&&Ta(t),t.flags|=1,Us(e,t,n,i),t.child)}function Xs(e,t,n,r,i){if(ra(n)){var a=!0;sa(t)}else a=!1;if(eo(t,i),t.stateNode===null)cc(e,t),ks(t,n,r),js(t,n,r,i),r=!0;else if(e===null){var o=t.stateNode,s=t.memoizedProps;o.props=s;var c=o.context,l=n.contextType;typeof l==`object`&&l?l=to(l):(l=ra(n)?ta:$i.current,l=na(t,l));var u=n.getDerivedStateFromProps,d=typeof u==`function`||typeof o.getSnapshotBeforeUpdate==`function`;d||typeof o.UNSAFE_componentWillReceiveProps!=`function`&&typeof o.componentWillReceiveProps!=`function`||(s!==r||c!==l)&&As(t,o,r,l),oo=!1;var f=t.memoizedState;o.state=f,mo(t,r,o,i),c=t.memoizedState,s!==r||f!==c||ea.current||oo?(typeof u==`function`&&(Es(t,n,u,r),c=t.memoizedState),(s=oo||Os(t,n,s,r,f,c,l))?(d||typeof o.UNSAFE_componentWillMount!=`function`&&typeof o.componentWillMount!=`function`||(typeof o.componentWillMount==`function`&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount==`function`&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount==`function`&&(t.flags|=4194308)):(typeof o.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=c),o.props=r,o.state=c,o.context=l,r=s):(typeof o.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,co(e,t),s=t.memoizedProps,l=t.type===t.elementType?s:Ts(t.type,s),o.props=l,d=t.pendingProps,f=o.context,c=n.contextType,typeof c==`object`&&c?c=to(c):(c=ra(n)?ta:$i.current,c=na(t,c));var p=n.getDerivedStateFromProps;(u=typeof p==`function`||typeof o.getSnapshotBeforeUpdate==`function`)||typeof o.UNSAFE_componentWillReceiveProps!=`function`&&typeof o.componentWillReceiveProps!=`function`||(s!==d||f!==c)&&As(t,o,r,c),oo=!1,f=t.memoizedState,o.state=f,mo(t,r,o,i);var m=t.memoizedState;s!==d||f!==m||ea.current||oo?(typeof p==`function`&&(Es(t,n,p,r),m=t.memoizedState),(l=oo||Os(t,n,l,r,f,m,c)||!1)?(u||typeof o.UNSAFE_componentWillUpdate!=`function`&&typeof o.componentWillUpdate!=`function`||(typeof o.componentWillUpdate==`function`&&o.componentWillUpdate(r,m,c),typeof o.UNSAFE_componentWillUpdate==`function`&&o.UNSAFE_componentWillUpdate(r,m,c)),typeof o.componentDidUpdate==`function`&&(t.flags|=4),typeof o.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof o.componentDidUpdate!=`function`||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!=`function`||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),o.props=r,o.state=m,o.context=c,r=l):(typeof o.componentDidUpdate!=`function`||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof o.getSnapshotBeforeUpdate!=`function`||s===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return Zs(e,t,n,r,a,i)}function Zs(e,t,n,r,i,a){Js(e,t);var o=!!(t.flags&128);if(!r&&!o)return i&&ca(t,n,!1),lc(e,t,a);r=t.stateNode,Vs.current=t;var s=o&&typeof n.getDerivedStateFromError!=`function`?null:r.render();return t.flags|=1,e!==null&&o?(t.child=Ga(t,e.child,null,a),t.child=Ga(t,null,s,a)):Us(e,t,s,a),t.memoizedState=r.state,i&&ca(t,n,!0),t.child}function Qs(e){var t=e.stateNode;t.pendingContext?aa(e,t.pendingContext,t.pendingContext!==t.context):t.context&&aa(e,t.context,!1),xo(e,t.containerInfo)}function $s(e,t,n,r,i){return Ra(),za(i),t.flags|=256,Us(e,t,n,r),t.child}var ec={dehydrated:null,treeContext:null,retryLane:0};function tc(e){return{baseLanes:e,cachePool:null,transitions:null}}function nc(e,t,n){var r=t.pendingProps,i=To.current,a=!1,o=!!(t.flags&128),s;if((s=o)||(s=e!==null&&e.memoizedState===null?!1:!!(i&2)),s?(a=!0,t.flags&=-129):(e===null||e.memoizedState!==null)&&(i|=1),Zi(To,i&1),e===null)return Pa(t),e=t.memoizedState,e!==null&&(e=e.dehydrated,e!==null)?(t.lanes=t.mode&1?e.data===`$!`?8:1073741824:1,null):(o=r.children,e=r.fallback,a?(r=t.mode,a=t.child,o={mode:`hidden`,children:o},!(r&1)&&a!==null?(a.childLanes=0,a.pendingProps=o):a=su(o,r,0,null),e=ou(e,r,n,null),a.return=t,e.return=t,a.sibling=e,t.child=a,t.child.memoizedState=tc(n),t.memoizedState=ec,e):rc(t,o));if(i=e.memoizedState,i!==null&&(s=i.dehydrated,s!==null))return eee(e,t,o,r,s,i,n);if(a){a=r.fallback,o=t.mode,i=e.child,s=i.sibling;var c={mode:`hidden`,children:r.children};return!(o&1)&&t.child!==i?(r=t.child,r.childLanes=0,r.pendingProps=c,t.deletions=null):(r=iu(i,c),r.subtreeFlags=i.subtreeFlags&14680064),s===null?(a=ou(a,o,n,null),a.flags|=2):a=iu(s,a),a.return=t,r.return=t,r.sibling=a,t.child=r,r=a,a=t.child,o=e.child.memoizedState,o=o===null?tc(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},a.memoizedState=o,a.childLanes=e.childLanes&~n,t.memoizedState=ec,r}return a=e.child,e=a.sibling,r=iu(a,{mode:`visible`,children:r.children}),!(t.mode&1)&&(r.lanes=n),r.return=t,r.sibling=null,e!==null&&(n=t.deletions,n===null?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=r,t.memoizedState=null,r}function rc(e,t){return t=su({mode:`visible`,children:t},e.mode,0,null),t.return=e,e.child=t}function ic(e,t,n,r){return r!==null&&za(r),Ga(t,e.child,null,n),e=rc(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function eee(e,t,n,i,a,o,s){if(n)return t.flags&256?(t.flags&=-257,i=Ns(Error(r(422))),ic(e,t,s,i)):t.memoizedState===null?(o=i.fallback,a=t.mode,i=su({mode:`visible`,children:i.children},a,0,null),o=ou(o,a,s,null),o.flags|=2,i.return=t,o.return=t,i.sibling=o,t.child=i,t.mode&1&&Ga(t,e.child,null,s),t.child.memoizedState=tc(s),t.memoizedState=ec,o):(t.child=e.child,t.flags|=128,null);if(!(t.mode&1))return ic(e,t,s,null);if(a.data===`$!`){if(i=a.nextSibling&&a.nextSibling.dataset,i)var c=i.dgst;return i=c,o=Error(r(419)),i=Ns(o,i,void 0),ic(e,t,s,i)}if(c=(s&e.childLanes)!==0,Hs||c){if(i=Zc,i!==null){switch(s&-s){case 4:a=2;break;case 16:a=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:a=32;break;case 536870912:a=268435456;break;default:a=0}a=(a&(i.suspendedLanes|s))===0?a:0,a!==0&&a!==o.retryLane&&(o.retryLane=a,ao(e,a),wl(i,e,a,-1))}return W(),i=Ns(Error(r(421))),ic(e,t,s,i)}return a.data===`$?`?(t.flags|=128,t.child=e.child,t=Xl.bind(null,e),a._reactRetry=t,null):(e=o.treeContext,Oa=Pi(a.nextSibling),Da=t,ka=!0,Aa=null,e!==null&&(va[ya++]=xa,va[ya++]=Sa,va[ya++]=ba,xa=e.id,Sa=e.overflow,ba=t),t=rc(t,i.children),t.flags|=4096,t)}function ac(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),$a(e.return,t,n)}function oc(e,t,n,r,i){var a=e.memoizedState;a===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=i)}function sc(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;if(Us(e,t,r.children,n),r=To.current,r&2)r=r&1|2,t.flags|=128;else{if(e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&ac(e,n,t);else if(e.tag===19)ac(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Zi(To,r),!(t.mode&1))t.memoizedState=null;else switch(i){case`forwards`:for(n=t.child,i=null;n!==null;)e=n.alternate,e!==null&&Eo(e)===null&&(i=n),n=n.sibling;n=i,n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),oc(t,!1,i,n,a);break;case`backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&Eo(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}oc(t,!0,n,null,a);break;case`together`:oc(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function cc(e,t){!(t.mode&1)&&e!==null&&(e.alternate=null,t.alternate=null,t.flags|=2)}function lc(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),il|=t.lanes,(n&t.childLanes)===0)return null;if(e!==null&&t.child!==e.child)throw Error(r(153));if(t.child!==null){for(e=t.child,n=iu(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=iu(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}function uc(e,t,n){switch(t.tag){case 3:Qs(t),Ra();break;case 5:Co(t);break;case 1:ra(t.type)&&sa(t);break;case 4:xo(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,i=t.memoizedProps.value;Zi(qa,r._currentValue),r._currentValue=i;break;case 13:if(r=t.memoizedState,r!==null)return r.dehydrated===null?(n&t.child.childLanes)===0?(Zi(To,To.current&1),e=lc(e,t,n),e===null?null:e.sibling):nc(e,t,n):(Zi(To,To.current&1),t.flags|=128,null);Zi(To,To.current&1);break;case 19:if(r=(n&t.childLanes)!==0,e.flags&128){if(r)return sc(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),Zi(To,To.current),r)break;return null;case 22:case 23:return t.lanes=0,qs(e,t,n)}return lc(e,t,n)}var dc=function(e,t){for(var n=t.child;n!==null;){if(n.tag===5||n.tag===6)e.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===t)break;for(;n.sibling===null;){if(n.return===null||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},fc=function(e,t,n,r){var i=e.memoizedProps;if(i!==r){e=t.stateNode,bo(_o.current);var o=null;switch(n){case`input`:i=ve(e,i),r=ve(e,r),o=[];break;case`select`:i=P({},i,{value:void 0}),r=P({},r,{value:void 0}),o=[];break;case`textarea`:i=Ee(e,i),r=Ee(e,r),o=[];break;default:typeof i.onClick!=`function`&&typeof r.onClick==`function`&&(e.onclick=wi)}Be(n,r);var s;for(u in n=null,i)if(!r.hasOwnProperty(u)&&i.hasOwnProperty(u)&&i[u]!=null){if(u===`style`){var c=i[u];for(s in c)c.hasOwnProperty(s)&&(n||={},n[s]=``)}else u!==`dangerouslySetInnerHTML`&&u!==`children`&&u!==`suppressContentEditableWarning`&&u!==`suppressHydrationWarning`&&u!==`autoFocus`&&(a.hasOwnProperty(u)?o||=[]:(o||=[]).push(u,null))}for(u in r){var l=r[u];if(c=i?.[u],r.hasOwnProperty(u)&&l!==c&&(l!=null||c!=null)){if(u===`style`){if(c){for(s in c)!c.hasOwnProperty(s)||l&&l.hasOwnProperty(s)||(n||={},n[s]=``);for(s in l)l.hasOwnProperty(s)&&c[s]!==l[s]&&(n||={},n[s]=l[s])}else n||(o||=[],o.push(u,n)),n=l}else u===`dangerouslySetInnerHTML`?(l=l?l.__html:void 0,c=c?c.__html:void 0,l!=null&&c!==l&&(o||=[]).push(u,l)):u===`children`?typeof l!=`string`&&typeof l!=`number`||(o||=[]).push(u,``+l):u!==`suppressContentEditableWarning`&&u!==`suppressHydrationWarning`&&(a.hasOwnProperty(u)?(l!=null&&u===`onScroll`&&ui(`scroll`,e),o||c===l||(o=[])):(o||=[]).push(u,l))}}n&&(o||=[]).push(`style`,n);var u=o;(t.updateQueue=u)&&(t.flags|=4)}},pc=function(e,t,n,r){n!==r&&(t.flags|=4)};function mc(e,t){if(!ka)switch(e.tailMode){case`hidden`:t=e.tail;for(var n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null;break;case`collapsed`:n=e.tail;for(var r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null}}function hc(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&14680064,r|=i.flags&14680064,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function gc(e,t,n){var i=t.pendingProps;switch(Ea(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return hc(t),null;case 1:return ra(t.type)&&ia(),hc(t),null;case 3:return i=t.stateNode,So(),Xi(ea),Xi($i),V(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(e===null||e.child===null)&&(Ia(t)?t.flags|=4:e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,Aa!==null&&(Ol(Aa),Aa=null))),hc(t),null;case 5:wo(t);var o=bo(yo.current);if(n=t.type,e!==null&&t.stateNode!=null)fc(e,t,n,i,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!i){if(t.stateNode===null)throw Error(r(166));return hc(t),null}if(e=bo(_o.current),Ia(t)){i=t.stateNode,n=t.type;var s=t.memoizedProps;switch(i[Li]=t,i[Ri]=s,e=!!(t.mode&1),n){case`dialog`:ui(`cancel`,i),ui(`close`,i);break;case`iframe`:case`object`:case`embed`:ui(`load`,i);break;case`video`:case`audio`:for(o=0;o<oi.length;o++)ui(oi[o],i);break;case`source`:ui(`error`,i);break;case`img`:case`image`:case`link`:ui(`error`,i),ui(`load`,i);break;case`details`:ui(`toggle`,i);break;case`input`:ye(i,s),ui(`invalid`,i);break;case`select`:i._wrapperState={wasMultiple:!!s.multiple},ui(`invalid`,i);break;case`textarea`:De(i,s),ui(`invalid`,i)}for(var c in Be(n,s),o=null,s)if(s.hasOwnProperty(c)){var l=s[c];c===`children`?typeof l==`string`?i.textContent!==l&&(!0!==s.suppressHydrationWarning&&Ci(i.textContent,l,e),o=[`children`,l]):typeof l==`number`&&i.textContent!==``+l&&(!0!==s.suppressHydrationWarning&&Ci(i.textContent,l,e),o=[`children`,``+l]):a.hasOwnProperty(c)&&l!=null&&c===`onScroll`&&ui(`scroll`,i)}switch(n){case`input`:he(i),Se(i,s,!0);break;case`textarea`:he(i),ke(i);break;case`select`:case`option`:break;default:typeof s.onClick==`function`&&(i.onclick=wi)}i=o,t.updateQueue=i,i!==null&&(t.flags|=4)}else{c=o.nodeType===9?o:o.ownerDocument,e===`http://www.w3.org/1999/xhtml`&&(e=Ae(n)),e===`http://www.w3.org/1999/xhtml`?n===`script`?(e=c.createElement(`div`),e.innerHTML=`<script><\/script>`,e=e.removeChild(e.firstChild)):typeof i.is==`string`?e=c.createElement(n,{is:i.is}):(e=c.createElement(n),n===`select`&&(c=e,i.multiple?c.multiple=!0:i.size&&(c.size=i.size))):e=c.createElementNS(e,n),e[Li]=t,e[Ri]=i,dc(e,t,!1,!1),t.stateNode=e;a:{switch(c=Ve(n,i),n){case`dialog`:ui(`cancel`,e),ui(`close`,e),o=i;break;case`iframe`:case`object`:case`embed`:ui(`load`,e),o=i;break;case`video`:case`audio`:for(o=0;o<oi.length;o++)ui(oi[o],e);o=i;break;case`source`:ui(`error`,e),o=i;break;case`img`:case`image`:case`link`:ui(`error`,e),ui(`load`,e),o=i;break;case`details`:ui(`toggle`,e),o=i;break;case`input`:ye(e,i),o=ve(e,i),ui(`invalid`,e);break;case`option`:o=i;break;case`select`:e._wrapperState={wasMultiple:!!i.multiple},o=P({},i,{value:void 0}),ui(`invalid`,e);break;case`textarea`:De(e,i),o=Ee(e,i),ui(`invalid`,e);break;default:o=i}for(s in Be(n,o),l=o,l)if(l.hasOwnProperty(s)){var u=l[s];s===`style`?Re(e,u):s===`dangerouslySetInnerHTML`?(u=u?u.__html:void 0,u!=null&&Ne(e,u)):s===`children`?typeof u==`string`?(n!==`textarea`||u!==``)&&Pe(e,u):typeof u==`number`&&Pe(e,``+u):s!==`suppressContentEditableWarning`&&s!==`suppressHydrationWarning`&&s!==`autoFocus`&&(a.hasOwnProperty(s)?u!=null&&s===`onScroll`&&ui(`scroll`,e):u!=null&&S(e,s,u,c))}switch(n){case`input`:he(e),Se(e,i,!1);break;case`textarea`:he(e),ke(e);break;case`option`:i.value!=null&&e.setAttribute(`value`,``+fe(i.value));break;case`select`:e.multiple=!!i.multiple,s=i.value,s==null?i.defaultValue!=null&&Te(e,!!i.multiple,i.defaultValue,!0):Te(e,!!i.multiple,s,!1);break;default:typeof o.onClick==`function`&&(e.onclick=wi)}switch(n){case`button`:case`input`:case`select`:case`textarea`:i=!!i.autoFocus;break a;case`img`:i=!0;break a;default:i=!1}}i&&(t.flags|=4)}t.ref!==null&&(t.flags|=512,t.flags|=2097152)}return hc(t),null;case 6:if(e&&t.stateNode!=null)pc(e,t,e.memoizedProps,i);else{if(typeof i!=`string`&&t.stateNode===null)throw Error(r(166));if(n=bo(yo.current),bo(_o.current),Ia(t)){if(i=t.stateNode,n=t.memoizedProps,i[Li]=t,(s=i.nodeValue!==n)&&(e=Da,e!==null))switch(e.tag){case 3:Ci(i.nodeValue,n,!!(e.mode&1));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Ci(i.nodeValue,n,!!(e.mode&1))}s&&(t.flags|=4)}else i=(n.nodeType===9?n:n.ownerDocument).createTextNode(i),i[Li]=t,t.stateNode=i}return hc(t),null;case 13:if(Xi(To),i=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(ka&&Oa!==null&&t.mode&1&&!(t.flags&128))La(),Ra(),t.flags|=98560,s=!1;else if(s=Ia(t),i!==null&&i.dehydrated!==null){if(e===null){if(!s)throw Error(r(318));if(s=t.memoizedState,s=s===null?null:s.dehydrated,!s)throw Error(r(317));s[Li]=t}else Ra(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;hc(t),s=!1}else Aa!==null&&(Ol(Aa),Aa=null),s=!0;if(!s)return t.flags&65536?t:null}return t.flags&128?(t.lanes=n,t):(i=i!==null,i!==(e!==null&&e.memoizedState!==null)&&i&&(t.child.flags|=8192,t.mode&1&&(e===null||To.current&1?nl===0&&(nl=3):W())),t.updateQueue!==null&&(t.flags|=4),hc(t),null);case 4:return So(),e===null&&pi(t.stateNode.containerInfo),hc(t),null;case 10:return Qa(t.type._context),hc(t),null;case 17:return ra(t.type)&&ia(),hc(t),null;case 19:if(Xi(To),s=t.memoizedState,s===null)return hc(t),null;if(i=!!(t.flags&128),c=s.rendering,c===null){if(i)mc(s,!1);else{if(nl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(c=Eo(e),c!==null){for(t.flags|=128,mc(s,!1),i=c.updateQueue,i!==null&&(t.updateQueue=i,t.flags|=4),t.subtreeFlags=0,i=n,n=t.child;n!==null;)s=n,e=i,s.flags&=14680066,c=s.alternate,c===null?(s.childLanes=0,s.lanes=e,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=c.childLanes,s.lanes=c.lanes,s.child=c.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=c.memoizedProps,s.memoizedState=c.memoizedState,s.updateQueue=c.updateQueue,s.type=c.type,e=c.dependencies,s.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Zi(To,To.current&1|2),t.child}e=e.sibling}s.tail!==null&&bt()>ul&&(t.flags|=128,i=!0,mc(s,!1),t.lanes=4194304)}}else{if(!i){if(e=Eo(c),e!==null){if(t.flags|=128,i=!0,n=e.updateQueue,n!==null&&(t.updateQueue=n,t.flags|=4),mc(s,!0),s.tail===null&&s.tailMode===`hidden`&&!c.alternate&&!ka)return hc(t),null}else 2*bt()-s.renderingStartTime>ul&&n!==1073741824&&(t.flags|=128,i=!0,mc(s,!1),t.lanes=4194304)}s.isBackwards?(c.sibling=t.child,t.child=c):(n=s.last,n===null?t.child=c:n.sibling=c,s.last=c)}return s.tail===null?(hc(t),null):(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=bt(),t.sibling=null,n=To.current,Zi(To,i?n&1|2:n&1),t);case 22:case 23:return Pl(),i=t.memoizedState!==null,e!==null&&e.memoizedState!==null!==i&&(t.flags|=8192),i&&t.mode&1?el&1073741824&&(hc(t),t.subtreeFlags&6&&(t.flags|=8192)):hc(t),null;case 24:return null;case 25:return null}throw Error(r(156,t.tag))}function _c(e,t){switch(Ea(t),t.tag){case 1:return ra(t.type)&&ia(),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return So(),Xi(ea),Xi($i),V(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 5:return wo(t),null;case 13:if(Xi(To),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(r(340));Ra()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Xi(To),null;case 4:return So(),null;case 10:return Qa(t.type._context),null;case 22:case 23:return Pl(),null;case 24:return null;default:return null}}var vc=!1,yc=!1,bc=typeof WeakSet==`function`?WeakSet:Set,U=null;function xc(e,t){var n=e.ref;if(n!==null){if(typeof n==`function`)try{n(null)}catch(n){ql(e,t,n)}else n.current=null}}function Sc(e,t,n){try{n()}catch(n){ql(e,t,n)}}var Cc=!1;function wc(e,t){if(Ti=vn,e=Lr(),Rr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var i=n.getSelection&&n.getSelection();if(i&&i.rangeCount!==0){n=i.anchorNode;var a=i.anchorOffset,o=i.focusNode;i=i.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||a!==0&&f.nodeType!==3||(c=s+a),f!==o||i!==0&&f.nodeType!==3||(l=s+i),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===a&&(c=s),p===o&&++d===i&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Ei={focusedElem:e,selectionRange:n},vn=!1,U=t;U!==null;)if(t=U,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,U=e;else for(;U!==null;){t=U;try{var h=t.alternate;if(t.flags&1024)switch(t.tag){case 0:case 11:case 15:break;case 1:if(h!==null){var g=h.memoizedProps,_=h.memoizedState,v=t.stateNode;v.__reactInternalSnapshotBeforeUpdate=v.getSnapshotBeforeUpdate(t.elementType===t.type?g:Ts(t.type,g),_)}break;case 3:var y=t.stateNode.containerInfo;y.nodeType===1?y.textContent=``:y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(r(163))}}catch(e){ql(t,t.return,e)}if(e=t.sibling,e!==null){e.return=t.return,U=e;break}U=t.return}return h=Cc,Cc=!1,h}function Tc(e,t,n){var r=t.updateQueue;if(r=r===null?null:r.lastEffect,r!==null){var i=r=r.next;do{if((i.tag&e)===e){var a=i.destroy;i.destroy=void 0,a!==void 0&&Sc(t,n,a)}i=i.next}while(i!==r)}}function Ec(e,t){if(t=t.updateQueue,t=t===null?null:t.lastEffect,t!==null){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function Dc(e){var t=e.ref;if(t!==null){var n=e.stateNode;switch(e.tag){case 5:e=n;break;default:e=n}typeof t==`function`?t(e):t.current=e}}function Oc(e){var t=e.alternate;t!==null&&(e.alternate=null,Oc(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&(delete t[Li],delete t[Ri],delete t[Bi],delete t[Vi],delete t[Hi])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function kc(e){return e.tag===5||e.tag===3||e.tag===4}function Ac(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||kc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function jc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.nodeType===8?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(n.nodeType===8?(t=n.parentNode,t.insertBefore(e,n)):(t=n,t.appendChild(e)),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=wi));else if(r!==4&&(e=e.child,e!==null))for(jc(e,t,n),e=e.sibling;e!==null;)jc(e,t,n),e=e.sibling}function Mc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(e=e.child,e!==null))for(Mc(e,t,n),e=e.sibling;e!==null;)Mc(e,t,n),e=e.sibling}var Nc=null,Pc=!1;function Fc(e,t,n){for(n=n.child;n!==null;)Ic(e,t,n),n=n.sibling}function Ic(e,t,n){if(Dt&&typeof Dt.onCommitFiberUnmount==`function`)try{Dt.onCommitFiberUnmount(Et,n)}catch{}switch(n.tag){case 5:yc||xc(n,t);case 6:var r=Nc,i=Pc;Nc=null,Fc(e,t,n),Nc=r,Pc=i,Nc!==null&&(Pc?(e=Nc,n=n.stateNode,e.nodeType===8?e.parentNode.removeChild(n):e.removeChild(n)):Nc.removeChild(n.stateNode));break;case 18:Nc!==null&&(Pc?(e=Nc,n=n.stateNode,e.nodeType===8?Ni(e.parentNode,n):e.nodeType===1&&Ni(e,n),gn(e)):Ni(Nc,n.stateNode));break;case 4:r=Nc,i=Pc,Nc=n.stateNode.containerInfo,Pc=!0,Fc(e,t,n),Nc=r,Pc=i;break;case 0:case 11:case 14:case 15:if(!yc&&(r=n.updateQueue,r!==null&&(r=r.lastEffect,r!==null))){i=r=r.next;do{var a=i,o=a.destroy;a=a.tag,o!==void 0&&(a&2||a&4)&&Sc(n,t,o),i=i.next}while(i!==r)}Fc(e,t,n);break;case 1:if(!yc&&(xc(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(e){ql(n,t,e)}Fc(e,t,n);break;case 21:Fc(e,t,n);break;case 22:n.mode&1?(yc=(r=yc)||n.memoizedState!==null,Fc(e,t,n),yc=r):Fc(e,t,n);break;default:Fc(e,t,n)}}function Lc(e){var t=e.updateQueue;if(t!==null){e.updateQueue=null;var n=e.stateNode;n===null&&(n=e.stateNode=new bc),t.forEach(function(t){var r=Zl.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))})}}function Rc(e,t){var n=t.deletions;if(n!==null)for(var i=0;i<n.length;i++){var a=n[i];try{var o=e,s=t,c=s;a:for(;c!==null;){switch(c.tag){case 5:Nc=c.stateNode,Pc=!1;break a;case 3:Nc=c.stateNode.containerInfo,Pc=!0;break a;case 4:Nc=c.stateNode.containerInfo,Pc=!0;break a}c=c.return}if(Nc===null)throw Error(r(160));Ic(o,s,a),Nc=null,Pc=!1;var l=a.alternate;l!==null&&(l.return=null),a.return=null}catch(e){ql(a,t,e)}}if(t.subtreeFlags&12854)for(t=t.child;t!==null;)zc(t,e),t=t.sibling}function zc(e,t){var n=e.alternate,i=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(Rc(t,e),Bc(e),i&4){try{Tc(3,e,e.return),Ec(3,e)}catch(t){ql(e,e.return,t)}try{Tc(5,e,e.return)}catch(t){ql(e,e.return,t)}}break;case 1:Rc(t,e),Bc(e),i&512&&n!==null&&xc(n,n.return);break;case 5:if(Rc(t,e),Bc(e),i&512&&n!==null&&xc(n,n.return),e.flags&32){var a=e.stateNode;try{Pe(a,``)}catch(t){ql(e,e.return,t)}}if(i&4&&(a=e.stateNode,a!=null)){var o=e.memoizedProps,s=n===null?o:n.memoizedProps,c=e.type,l=e.updateQueue;if(e.updateQueue=null,l!==null)try{c===`input`&&o.type===`radio`&&o.name!=null&&be(a,o),Ve(c,s);var u=Ve(c,o);for(s=0;s<l.length;s+=2){var d=l[s],f=l[s+1];d===`style`?Re(a,f):d===`dangerouslySetInnerHTML`?Ne(a,f):d===`children`?Pe(a,f):S(a,d,f,u)}switch(c){case`input`:xe(a,o);break;case`textarea`:Oe(a,o);break;case`select`:var p=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!o.multiple;var m=o.value;m==null?p!==!!o.multiple&&(o.defaultValue==null?Te(a,!!o.multiple,o.multiple?[]:``,!1):Te(a,!!o.multiple,o.defaultValue,!0)):Te(a,!!o.multiple,m,!1)}a[Ri]=o}catch(t){ql(e,e.return,t)}}break;case 6:if(Rc(t,e),Bc(e),i&4){if(e.stateNode===null)throw Error(r(162));a=e.stateNode,o=e.memoizedProps;try{a.nodeValue=o}catch(t){ql(e,e.return,t)}}break;case 3:if(Rc(t,e),Bc(e),i&4&&n!==null&&n.memoizedState.isDehydrated)try{gn(t.containerInfo)}catch(t){ql(e,e.return,t)}break;case 4:Rc(t,e),Bc(e);break;case 13:Rc(t,e),Bc(e),a=e.child,a.flags&8192&&(o=a.memoizedState!==null,a.stateNode.isHidden=o,!o||a.alternate!==null&&a.alternate.memoizedState!==null||(ll=bt())),i&4&&Lc(e);break;case 22:if(d=n!==null&&n.memoizedState!==null,e.mode&1?(yc=(u=yc)||d,Rc(t,e),yc=u):Rc(t,e),Bc(e),i&8192){if(u=e.memoizedState!==null,(e.stateNode.isHidden=u)&&!d&&e.mode&1)for(U=e,d=e.child;d!==null;){for(f=U=d;U!==null;){switch(p=U,m=p.child,p.tag){case 0:case 11:case 14:case 15:Tc(4,p,p.return);break;case 1:xc(p,p.return);var h=p.stateNode;if(typeof h.componentWillUnmount==`function`){i=p,n=p.return;try{t=i,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(e){ql(i,n,e)}}break;case 5:xc(p,p.return);break;case 22:if(p.memoizedState!==null){Wc(f);continue}}m===null?Wc(f):(m.return=p,U=m)}d=d.sibling}a:for(d=null,f=e;;){if(f.tag===5){if(d===null){d=f;try{a=f.stateNode,u?(o=a.style,typeof o.setProperty==`function`?o.setProperty(`display`,`none`,`important`):o.display=`none`):(c=f.stateNode,l=f.memoizedProps.style,s=l!=null&&l.hasOwnProperty(`display`)?l.display:null,c.style.display=Le(`display`,s))}catch(t){ql(e,e.return,t)}}}else if(f.tag===6){if(d===null)try{f.stateNode.nodeValue=u?``:f.memoizedProps}catch(t){ql(e,e.return,t)}}else if((f.tag!==22&&f.tag!==23||f.memoizedState===null||f===e)&&f.child!==null){f.child.return=f,f=f.child;continue}if(f===e)break a;for(;f.sibling===null;){if(f.return===null||f.return===e)break a;d===f&&(d=null),f=f.return}d===f&&(d=null),f.sibling.return=f.return,f=f.sibling}}break;case 19:Rc(t,e),Bc(e),i&4&&Lc(e);break;case 21:break;default:Rc(t,e),Bc(e)}}function Bc(e){var t=e.flags;if(t&2){try{a:{for(var n=e.return;n!==null;){if(kc(n)){var i=n;break a}n=n.return}throw Error(r(160))}switch(i.tag){case 5:var a=i.stateNode;i.flags&32&&(Pe(a,``),i.flags&=-33),Mc(e,Ac(e),a);break;case 3:case 4:var o=i.stateNode.containerInfo;jc(e,Ac(e),o);break;default:throw Error(r(161))}}catch(t){ql(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Vc(e,t,n){U=e,Hc(e,t,n)}function Hc(e,t,n){for(var r=!!(e.mode&1);U!==null;){var i=U,a=i.child;if(i.tag===22&&r){var o=i.memoizedState!==null||vc;if(!o){var s=i.alternate,c=s!==null&&s.memoizedState!==null||yc;s=vc;var l=yc;if(vc=o,(yc=c)&&!l)for(U=i;U!==null;)o=U,c=o.child,o.tag===22&&o.memoizedState!==null||c===null?Gc(i):(c.return=o,U=c);for(;a!==null;)U=a,Hc(a,t,n),a=a.sibling;U=i,vc=s,yc=l}Uc(e,t,n)}else i.subtreeFlags&8772&&a!==null?(a.return=i,U=a):Uc(e,t,n)}}function Uc(e){for(;U!==null;){var t=U;if(t.flags&8772){var n=t.alternate;try{if(t.flags&8772)switch(t.tag){case 0:case 11:case 15:yc||Ec(5,t);break;case 1:var i=t.stateNode;if(t.flags&4&&!yc){if(n===null)i.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:Ts(t.type,n.memoizedProps);i.componentDidUpdate(a,n.memoizedState,i.__reactInternalSnapshotBeforeUpdate)}}var o=t.updateQueue;o!==null&&ho(t,o,i);break;case 3:var s=t.updateQueue;if(s!==null){if(n=null,t.child!==null)switch(t.child.tag){case 5:n=t.child.stateNode;break;case 1:n=t.child.stateNode}ho(t,s,n)}break;case 5:var c=t.stateNode;if(n===null&&t.flags&4){n=c;var l=t.memoizedProps;switch(t.type){case`button`:case`input`:case`select`:case`textarea`:l.autoFocus&&n.focus();break;case`img`:l.src&&(n.src=l.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(t.memoizedState===null){var u=t.alternate;if(u!==null){var d=u.memoizedState;if(d!==null){var f=d.dehydrated;f!==null&&gn(f)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(r(163))}yc||t.flags&512&&Dc(t)}catch(e){ql(t,t.return,e)}}if(t===e){U=null;break}if(n=t.sibling,n!==null){n.return=t.return,U=n;break}U=t.return}}function Wc(e){for(;U!==null;){var t=U;if(t===e){U=null;break}var n=t.sibling;if(n!==null){n.return=t.return,U=n;break}U=t.return}}function Gc(e){for(;U!==null;){var t=U;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{Ec(4,t)}catch(e){ql(t,n,e)}break;case 1:var r=t.stateNode;if(typeof r.componentDidMount==`function`){var i=t.return;try{r.componentDidMount()}catch(e){ql(t,i,e)}}var a=t.return;try{Dc(t)}catch(e){ql(t,a,e)}break;case 5:var o=t.return;try{Dc(t)}catch(e){ql(t,o,e)}}}catch(e){ql(t,t.return,e)}if(t===e){U=null;break}var s=t.sibling;if(s!==null){s.return=t.return,U=s;break}U=t.return}}var Kc=Math.ceil,qc=C.ReactCurrentDispatcher,Jc=C.ReactCurrentOwner,Yc=C.ReactCurrentBatchConfig,Xc=0,Zc=null,Qc=null,$c=0,el=0,tl=Yi(0),nl=0,rl=null,il=0,al=0,ol=0,sl=null,cl=null,ll=0,ul=1/0,dl=null,fl=!1,pl=null,ml=null,hl=!1,gl=null,_l=0,vl=0,yl=null,bl=-1,xl=0;function Sl(){return Xc&6?bt():bl===-1?bl=bt():bl}function Cl(e){return e.mode&1?Xc&2&&$c!==0?$c&-$c:Ba.transition===null?(e=Gt,e===0&&(e=window.event,e=e===void 0?16:wn(e.type)),e):(xl===0&&(xl=Bt()),xl):1}function wl(e,t,n,i){if(50<vl)throw vl=0,yl=null,Error(r(185));Ht(e,n,i),Xc&2&&e===Zc||(e===Zc&&(!(Xc&2)&&(al|=n),nl===4&&Al(e,$c)),Tl(e,i),n===1&&Xc===0&&!(t.mode&1)&&(ul=bt()+500,ua&&ma()))}function Tl(e,t){var n=e.callbackNode;Rt(e,t);var r=It(e,e===Zc?$c:0);if(r===0)n!==null&&_t(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(n!=null&&_t(n),t===1)e.tag===0?pa(jl.bind(null,e)):fa(jl.bind(null,e)),ji(function(){!(Xc&6)&&ma()}),n=null;else{switch(Kt(r)){case 1:n=St;break;case 4:n=Ct;break;case 16:n=I;break;case 536870912:n=Tt;break;default:n=I}n=$l(n,El.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function El(e,t){if(bl=-1,xl=0,Xc&6)throw Error(r(327));var n=e.callbackNode;if(Gl()&&e.callbackNode!==n)return null;var i=It(e,e===Zc?$c:0);if(i===0)return null;if(i&30||(i&e.expiredLanes)!==0||t)t=Rl(e,i);else{t=i;var a=Xc;Xc|=2;var o=Ll();(Zc!==e||$c!==t)&&(dl=null,ul=bt()+500,Fl(e,t));do try{Bl();break}catch(t){Il(e,t)}while(1);Za(),qc.current=o,Xc=a,Qc===null?(Zc=null,$c=0,t=nl):t=0}if(t!==0){if(t===2&&(a=zt(e),a!==0&&(i=a,t=Dl(e,a))),t===1)throw n=rl,Fl(e,0),Al(e,i),Tl(e,bt()),n;if(t===6)Al(e,i);else{if(a=e.current.alternate,!(i&30)&&!kl(a)&&(t=Rl(e,i),t===2&&(o=zt(e),o!==0&&(i=o,t=Dl(e,o))),t===1))throw n=rl,Fl(e,0),Al(e,i),Tl(e,bt()),n;switch(e.finishedWork=a,e.finishedLanes=i,t){case 0:case 1:throw Error(r(345));case 2:Ul(e,cl,dl);break;case 3:if(Al(e,i),(i&130023424)===i&&(t=ll+500-bt(),10<t)){if(It(e,0)!==0)break;if(a=e.suspendedLanes,(a&i)!==i){Sl(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=Oi(Ul.bind(null,e,cl,dl),t);break}Ul(e,cl,dl);break;case 4:if(Al(e,i),(i&4194240)===i)break;for(t=e.eventTimes,a=-1;0<i;){var s=31-kt(i);o=1<<s,s=t[s],s>a&&(a=s),i&=~o}if(i=a,i=bt()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Kc(i/1960))-i,10<i){e.timeoutHandle=Oi(Ul.bind(null,e,cl,dl),i);break}Ul(e,cl,dl);break;case 5:Ul(e,cl,dl);break;default:throw Error(r(329))}}}return Tl(e,bt()),e.callbackNode===n?El.bind(null,e):null}function Dl(e,t){var n=sl;return e.current.memoizedState.isDehydrated&&(Fl(e,t).flags|=256),e=Rl(e,t),e!==2&&(t=cl,cl=n,t!==null&&Ol(t)),e}function Ol(e){cl===null?cl=e:cl.push.apply(cl,e)}function kl(e){for(var t=e;;){if(t.flags&16384){var n=t.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!Mr(a(),i))return!1}catch{return!1}}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Al(e,t){for(t&=~ol,t&=~al,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-kt(t),r=1<<n;e[n]=-1,t&=~r}}function jl(e){if(Xc&6)throw Error(r(327));Gl();var t=It(e,0);if(!(t&1))return Tl(e,bt()),null;var n=Rl(e,t);if(e.tag!==0&&n===2){var i=zt(e);i!==0&&(t=i,n=Dl(e,i))}if(n===1)throw n=rl,Fl(e,0),Al(e,t),Tl(e,bt()),n;if(n===6)throw Error(r(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Ul(e,cl,dl),Tl(e,bt()),null}function Ml(e,t){var n=Xc;Xc|=1;try{return e(t)}finally{Xc=n,Xc===0&&(ul=bt()+500,ua&&ma())}}function Nl(e){gl!==null&&gl.tag===0&&!(Xc&6)&&Gl();var t=Xc;Xc|=1;var n=Yc.transition,r=Gt;try{if(Yc.transition=null,Gt=1,e)return e()}finally{Gt=r,Yc.transition=n,Xc=t,!(Xc&6)&&ma()}}function Pl(){el=tl.current,Xi(tl)}function Fl(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(n!==-1&&(e.timeoutHandle=-1,ki(n)),Qc!==null)for(n=Qc.return;n!==null;){var r=n;switch(Ea(r),r.tag){case 1:r=r.type.childContextTypes,r!=null&&ia();break;case 3:So(),Xi(ea),Xi($i),V();break;case 5:wo(r);break;case 4:So();break;case 13:Xi(To);break;case 19:Xi(To);break;case 10:Qa(r.type._context);break;case 22:case 23:Pl()}n=n.return}if(Zc=e,Qc=e=iu(e.current,null),$c=el=t,nl=0,rl=null,ol=al=il=0,cl=sl=null,no!==null){for(t=0;t<no.length;t++)if(n=no[t],r=n.interleaved,r!==null){n.interleaved=null;var i=r.next,a=n.pending;if(a!==null){var o=a.next;a.next=i,r.next=o}n.pending=r}no=null}return e}function Il(e,t){do{var n=Qc;try{if(Za(),Oo.current=xs,No){for(var i=H.memoizedState;i!==null;){var a=i.queue;a!==null&&(a.pending=null),i=i.next}No=!1}if(Ao=0,Mo=jo=H=null,Po=!1,Fo=0,Jc.current=null,n===null||n.return===null){nl=1,rl=t,Qc=null;break}a:{var o=e,s=n.return,c=n,l=t;if(t=$c,c.flags|=32768,typeof l==`object`&&l&&typeof l.then==`function`){var u=l,d=c,f=d.tag;if(!(d.mode&1)&&(f===0||f===11||f===15)){var p=d.alternate;p?(d.updateQueue=p.updateQueue,d.memoizedState=p.memoizedState,d.lanes=p.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=zs(s);if(m!==null){m.flags&=-257,Bs(m,s,c,o,t),m.mode&1&&Rs(o,u,t),t=m,l=u;var h=t.updateQueue;if(h===null){var g=new Set;g.add(l),t.updateQueue=g}else h.add(l);break a}if(!(t&1)){Rs(o,u,t),W();break a}l=Error(r(426))}else if(ka&&c.mode&1){var _=zs(s);if(_!==null){!(_.flags&65536)&&(_.flags|=256),Bs(_,s,c,o,t),za(Ms(l,c));break a}}o=l=Ms(l,c),nl!==4&&(nl=2),sl===null?sl=[o]:sl.push(o),o=s;do{switch(o.tag){case 3:o.flags|=65536,t&=-t,o.lanes|=t;var v=Is(o,l,t);po(o,v);break a;case 1:c=l;var y=o.type,b=o.stateNode;if(!(o.flags&128)&&(typeof y.getDerivedStateFromError==`function`||b!==null&&typeof b.componentDidCatch==`function`&&(ml===null||!ml.has(b)))){o.flags|=65536,t&=-t,o.lanes|=t;var x=Ls(o,c,t);po(o,x);break a}}o=o.return}while(o!==null)}Hl(n)}catch(e){t=e,Qc===n&&n!==null&&(Qc=n=n.return);continue}break}while(1)}function Ll(){var e=qc.current;return qc.current=xs,e===null?xs:e}function W(){(nl===0||nl===3||nl===2)&&(nl=4),Zc===null||!(il&268435455)&&!(al&268435455)||Al(Zc,$c)}function Rl(e,t){var n=Xc;Xc|=2;var i=Ll();(Zc!==e||$c!==t)&&(dl=null,Fl(e,t));do try{zl();break}catch(t){Il(e,t)}while(1);if(Za(),Xc=n,qc.current=i,Qc!==null)throw Error(r(261));return Zc=null,$c=0,nl}function zl(){for(;Qc!==null;)Vl(Qc)}function Bl(){for(;Qc!==null&&!vt();)Vl(Qc)}function Vl(e){var t=Ql(e.alternate,e,el);e.memoizedProps=e.pendingProps,t===null?Hl(e):Qc=t,Jc.current=null}function Hl(e){var t=e;do{var n=t.alternate;if(e=t.return,t.flags&32768){if(n=_c(n,t),n!==null){n.flags&=32767,Qc=n;return}if(e!==null)e.flags|=32768,e.subtreeFlags=0,e.deletions=null;else{nl=6,Qc=null;return}}else if(n=gc(n,t,el),n!==null){Qc=n;return}if(t=t.sibling,t!==null){Qc=t;return}Qc=t=e}while(t!==null);nl===0&&(nl=5)}function Ul(e,t,n){var r=Gt,i=Yc.transition;try{Yc.transition=null,Gt=1,Wl(e,t,n,r)}finally{Yc.transition=i,Gt=r}return null}function Wl(e,t,n,i){do Gl();while(gl!==null);if(Xc&6)throw Error(r(327));n=e.finishedWork;var a=e.finishedLanes;if(n===null)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(r(177));e.callbackNode=null,e.callbackPriority=0;var o=n.lanes|n.childLanes;if(Ut(e,o),e===Zc&&(Qc=Zc=null,$c=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||hl||(hl=!0,$l(I,function(){return Gl(),null})),o=!!(n.flags&15990),n.subtreeFlags&15990||o){o=Yc.transition,Yc.transition=null;var s=Gt;Gt=1;var c=Xc;Xc|=4,Jc.current=null,wc(e,n),zc(n,e),zr(Ei),vn=!!Ti,Ei=Ti=null,e.current=n,Vc(n,e,a),yt(),Xc=c,Gt=s,Yc.transition=o}else e.current=n;if(hl&&(hl=!1,gl=e,_l=a),o=e.pendingLanes,o===0&&(ml=null),Ot(n.stateNode,i),Tl(e,bt()),t!==null)for(i=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],i(a.value,{componentStack:a.stack,digest:a.digest});if(fl)throw fl=!1,e=pl,pl=null,e;return _l&1&&e.tag!==0&&Gl(),o=e.pendingLanes,o&1?e===yl?vl++:(vl=0,yl=e):vl=0,ma(),null}function Gl(){if(gl!==null){var e=Kt(_l),t=Yc.transition,n=Gt;try{if(Yc.transition=null,Gt=16>e?16:e,gl===null)var i=!1;else{if(e=gl,gl=null,_l=0,Xc&6)throw Error(r(331));var a=Xc;for(Xc|=4,U=e.current;U!==null;){var o=U,s=o.child;if(U.flags&16){var c=o.deletions;if(c!==null){for(var l=0;l<c.length;l++){var u=c[l];for(U=u;U!==null;){var d=U;switch(d.tag){case 0:case 11:case 15:Tc(8,d,o)}var f=d.child;if(f!==null)f.return=d,U=f;else for(;U!==null;){d=U;var p=d.sibling,m=d.return;if(Oc(d),d===u){U=null;break}if(p!==null){p.return=m,U=p;break}U=m}}}var h=o.alternate;if(h!==null){var g=h.child;if(g!==null){h.child=null;do{var _=g.sibling;g.sibling=null,g=_}while(g!==null)}}U=o}}if(o.subtreeFlags&2064&&s!==null)s.return=o,U=s;else b:for(;U!==null;){if(o=U,o.flags&2048)switch(o.tag){case 0:case 11:case 15:Tc(9,o,o.return)}var v=o.sibling;if(v!==null){v.return=o.return,U=v;break b}U=o.return}}var y=e.current;for(U=y;U!==null;){s=U;var b=s.child;if(s.subtreeFlags&2064&&b!==null)b.return=s,U=b;else b:for(s=y;U!==null;){if(c=U,c.flags&2048)try{switch(c.tag){case 0:case 11:case 15:Ec(9,c)}}catch(e){ql(c,c.return,e)}if(c===s){U=null;break b}var x=c.sibling;if(x!==null){x.return=c.return,U=x;break b}U=c.return}}if(Xc=a,ma(),Dt&&typeof Dt.onPostCommitFiberRoot==`function`)try{Dt.onPostCommitFiberRoot(Et,e)}catch{}i=!0}return i}finally{Gt=n,Yc.transition=t}}return!1}function Kl(e,t,n){t=Ms(n,t),t=Is(e,t,1),e=uo(e,t,1),t=Sl(),e!==null&&(Ht(e,1,t),Tl(e,t))}function ql(e,t,n){if(e.tag===3)Kl(e,e,n);else for(;t!==null;){if(t.tag===3){Kl(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(ml===null||!ml.has(r))){e=Ms(n,e),e=Ls(t,e,1),t=uo(t,e,1),e=Sl(),t!==null&&(Ht(t,1,e),Tl(t,e));break}}t=t.return}}function Jl(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),t=Sl(),e.pingedLanes|=e.suspendedLanes&n,Zc===e&&($c&n)===n&&(nl===4||nl===3&&($c&130023424)===$c&&500>bt()-ll?Fl(e,0):ol|=n),Tl(e,t)}function Yl(e,t){t===0&&(e.mode&1?(t=Pt,Pt<<=1,!(Pt&130023424)&&(Pt=4194304)):t=1);var n=Sl();e=ao(e,t),e!==null&&(Ht(e,t,n),Tl(e,n))}function Xl(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Yl(e,n)}function Zl(e,t){var n=0;switch(e.tag){case 13:var i=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:i=e.stateNode;break;default:throw Error(r(314))}i!==null&&i.delete(t),Yl(e,n)}var Ql=function(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps||ea.current)Hs=!0;else{if((e.lanes&n)===0&&!(t.flags&128))return Hs=!1,uc(e,t,n);Hs=!!(e.flags&131072)}}else Hs=!1,ka&&t.flags&1048576&&wa(t,_a,t.index);switch(t.lanes=0,t.tag){case 2:var i=t.type;cc(e,t),e=t.pendingProps;var a=na(t,$i.current);eo(t,n),a=zo(null,t,i,e,a,n);var o=Bo();return t.flags|=1,typeof a==`object`&&a&&typeof a.render==`function`&&a.$$typeof===void 0?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ra(i)?(o=!0,sa(t)):o=!1,t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,so(t),a.updater=Ds,t.stateNode=a,a._reactInternals=t,js(t,i,e,n),t=Zs(null,t,i,!0,o,n)):(t.tag=0,ka&&o&&Ta(t),Us(null,t,a,n),t=t.child),t;case 16:i=t.elementType;a:{switch(cc(e,t),e=t.pendingProps,a=i._init,i=a(i._payload),t.type=i,a=t.tag=ru(i),e=Ts(i,e),a){case 0:t=Ys(null,t,i,e,n);break a;case 1:t=Xs(null,t,i,e,n);break a;case 11:t=Ws(null,t,i,e,n);break a;case 14:t=Gs(null,t,i,Ts(i.type,e),n);break a}throw Error(r(306,i,``))}return t;case 0:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:Ts(i,a),Ys(e,t,i,a,n);case 1:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:Ts(i,a),Xs(e,t,i,a,n);case 3:a:{if(Qs(t),e===null)throw Error(r(387));i=t.pendingProps,o=t.memoizedState,a=o.element,co(e,t),mo(t,i,null,n);var s=t.memoizedState;if(i=s.element,o.isDehydrated){if(o={element:i,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){a=Ms(Error(r(423)),t),t=$s(e,t,i,n,a);break a}if(i!==a){a=Ms(Error(r(424)),t),t=$s(e,t,i,n,a);break a}for(Oa=Pi(t.stateNode.containerInfo.firstChild),Da=t,ka=!0,Aa=null,n=Ka(t,null,i,n),t.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling}else{if(Ra(),i===a){t=lc(e,t,n);break a}Us(e,t,i,n)}t=t.child}return t;case 5:return Co(t),e===null&&Pa(t),i=t.type,a=t.pendingProps,o=e===null?null:e.memoizedProps,s=a.children,Di(i,a)?s=null:o!==null&&Di(i,o)&&(t.flags|=32),Js(e,t),Us(e,t,s,n),t.child;case 6:return e===null&&Pa(t),null;case 13:return nc(e,t,n);case 4:return xo(t,t.stateNode.containerInfo),i=t.pendingProps,e===null?t.child=Ga(t,null,i,n):Us(e,t,i,n),t.child;case 11:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:Ts(i,a),Ws(e,t,i,a,n);case 7:return Us(e,t,t.pendingProps,n),t.child;case 8:return Us(e,t,t.pendingProps.children,n),t.child;case 12:return Us(e,t,t.pendingProps.children,n),t.child;case 10:a:{if(i=t.type._context,a=t.pendingProps,o=t.memoizedProps,s=a.value,Zi(qa,i._currentValue),i._currentValue=s,o!==null){if(Mr(o.value,s)){if(o.children===a.children&&!ea.current){t=lc(e,t,n);break a}}else for(o=t.child,o!==null&&(o.return=t);o!==null;){var c=o.dependencies;if(c!==null){s=o.child;for(var l=c.firstContext;l!==null;){if(l.context===i){if(o.tag===1){l=lo(-1,n&-n),l.tag=2;var u=o.updateQueue;if(u!==null){u=u.shared;var d=u.pending;d===null?l.next=l:(l.next=d.next,d.next=l),u.pending=l}}o.lanes|=n,l=o.alternate,l!==null&&(l.lanes|=n),$a(o.return,n,t),c.lanes|=n;break}l=l.next}}else if(o.tag===10)s=o.type===t.type?null:o.child;else if(o.tag===18){if(s=o.return,s===null)throw Error(r(341));s.lanes|=n,c=s.alternate,c!==null&&(c.lanes|=n),$a(s,n,t),s=o.sibling}else s=o.child;if(s!==null)s.return=o;else for(s=o;s!==null;){if(s===t){s=null;break}if(o=s.sibling,o!==null){o.return=s.return,s=o;break}s=s.return}o=s}}Us(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,i=t.pendingProps.children,eo(t,n),a=to(a),i=i(a),t.flags|=1,Us(e,t,i,n),t.child;case 14:return i=t.type,a=Ts(i,t.pendingProps),a=Ts(i.type,a),Gs(e,t,i,a,n);case 15:return Ks(e,t,t.type,t.pendingProps,n);case 17:return i=t.type,a=t.pendingProps,a=t.elementType===i?a:Ts(i,a),cc(e,t),t.tag=1,ra(i)?(e=!0,sa(t)):e=!1,eo(t,n),ks(t,i,a),js(t,i,a,n),Zs(null,t,i,!0,e,n);case 19:return sc(e,t,n);case 22:return qs(e,t,n)}throw Error(r(156,t.tag))};function $l(e,t){return gt(e,t)}function eu(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function tu(e,t,n,r){return new eu(e,t,n,r)}function nu(e){return e=e.prototype,!(!e||!e.isReactComponent)}function ru(e){if(typeof e==`function`)return+!!nu(e);if(e!=null){if(e=e.$$typeof,e===te)return 11;if(e===M)return 14}return 2}function iu(e,t){var n=e.alternate;return n===null?(n=tu(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=e.flags&14680064,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function au(e,t,n,i,a,o){var s=2;if(i=e,typeof e==`function`)nu(e)&&(s=1);else if(typeof e==`string`)s=5;else a:switch(e){case E:return ou(n.children,a,o,t);case D:s=8,a|=8;break;case O:return e=tu(12,n,t,a|2),e.elementType=O,e.lanes=o,e;case A:return e=tu(13,n,t,a),e.elementType=A,e.lanes=o,e;case j:return e=tu(19,n,t,a),e.elementType=j,e.lanes=o,e;case ne:return su(n,a,o,t);default:if(typeof e==`object`&&e)switch(e.$$typeof){case ee:s=10;break a;case k:s=9;break a;case te:s=11;break a;case M:s=14;break a;case N:s=16,i=null;break a}throw Error(r(130,e==null?e:typeof e,``))}return t=tu(s,n,t,a),t.elementType=e,t.type=i,t.lanes=o,t}function ou(e,t,n,r){return e=tu(7,e,r,t),e.lanes=n,e}function su(e,t,n,r){return e=tu(22,e,r,t),e.elementType=ne,e.lanes=n,e.stateNode={isHidden:!1},e}function cu(e,t,n){return e=tu(6,e,null,t),e.lanes=n,e}function lu(e,t,n){return t=tu(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function uu(e,t,n,r,i){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=Vt(0),this.expirationTimes=Vt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=Vt(0),this.identifierPrefix=r,this.onRecoverableError=i,this.mutableSourceEagerHydrationData=null}function du(e,t,n,r,i,a,o,s,c){return e=new uu(e,t,n,s,c),t===1?(t=1,!0===a&&(t|=8)):t=0,a=tu(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},so(a),e}function fu(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:T,key:r==null?null:``+r,children:e,containerInfo:t,implementation:n}}function pu(e){if(!e)return Qi;e=e._reactInternals;a:{if(ut(e)!==e||e.tag!==1)throw Error(r(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break a;case 1:if(ra(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break a}}t=t.return}while(t!==null);throw Error(r(171))}if(e.tag===1){var n=e.type;if(ra(n))return oa(e,n,t)}return t}function mu(e,t,n,r,i,a,o,s,c){return e=du(n,r,!0,e,i,a,o,s,c),e.context=pu(null),n=e.current,r=Sl(),i=Cl(n),a=lo(r,i),a.callback=t??null,uo(n,a,i),e.current.lanes=i,Ht(e,i,r),Tl(e,r),e}function hu(e,t,n,r){var i=t.current,a=Sl(),o=Cl(i);return n=pu(n),t.context===null?t.context=n:t.pendingContext=n,t=lo(a,o),t.payload={element:e},r=r===void 0?null:r,r!==null&&(t.callback=r),e=uo(i,t,o),e!==null&&(wl(e,i,o,a),fo(e,i,o)),o}function gu(e){if(e=e.current,!e.child)return null;switch(e.child.tag){case 5:return e.child.stateNode;default:return e.child.stateNode}}function _u(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function vu(e,t){_u(e,t),(e=e.alternate)&&_u(e,t)}function yu(){return null}var bu=typeof reportError==`function`?reportError:function(e){console.error(e)};function xu(e){this._internalRoot=e}Su.prototype.render=xu.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(r(409));hu(e,t,null,null)},Su.prototype.unmount=xu.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;Nl(function(){hu(null,e,null,null)}),t[zi]=null}};function Su(e){this._internalRoot=e}Su.prototype.unstable_scheduleHydration=function(e){if(e){var t=Xt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<on.length&&t!==0&&t<on[n].priority;n++);on.splice(n,0,e),n===0&&dn(e)}};function Cu(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function wu(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11&&(e.nodeType!==8||e.nodeValue!==` react-mount-point-unstable `))}function Tu(){}function Eu(e,t,n,r,i){if(i){if(typeof r==`function`){var a=r;r=function(){var e=gu(o);a.call(e)}}var o=mu(t,r,e,0,null,!1,!1,``,Tu);return e._reactRootContainer=o,e[zi]=o.current,pi(e.nodeType===8?e.parentNode:e),Nl(),o}for(;i=e.lastChild;)e.removeChild(i);if(typeof r==`function`){var s=r;r=function(){var e=gu(c);s.call(e)}}var c=du(e,0,!1,null,null,!1,!1,``,Tu);return e._reactRootContainer=c,e[zi]=c.current,pi(e.nodeType===8?e.parentNode:e),Nl(function(){hu(t,c,n,r)}),c}function Du(e,t,n,r,i){var a=n._reactRootContainer;if(a){var o=a;if(typeof i==`function`){var s=i;i=function(){var e=gu(o);s.call(e)}}hu(t,o,e,i)}else o=Eu(n,t,e,i,r);return gu(o)}qt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=Ft(t.pendingLanes);n!==0&&(Wt(t,n|1),Tl(t,bt()),!(Xc&6)&&(ul=bt()+500,ma()))}break;case 13:Nl(function(){var t=ao(e,1);t!==null&&wl(t,e,1,Sl())}),vu(e,1)}},Jt=function(e){if(e.tag===13){var t=ao(e,134217728);t!==null&&wl(t,e,134217728,Sl()),vu(e,134217728)}},Yt=function(e){if(e.tag===13){var t=Cl(e),n=ao(e,t);n!==null&&wl(n,e,t,Sl()),vu(e,t)}},Xt=function(){return Gt},Zt=function(e,t){var n=Gt;try{return Gt=e,t()}finally{Gt=n}},We=function(e,t,n){switch(t){case`input`:if(xe(e,n),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name=`+JSON.stringify(``+t)+`][type="radio"]`),t=0;t<n.length;t++){var i=n[t];if(i!==e&&i.form===e.form){var a=Ki(i);if(!a)throw Error(r(90));ge(i),xe(i,a)}}}break;case`textarea`:Oe(e,n);break;case`select`:t=n.value,t!=null&&Te(e,!!n.multiple,t,!1)}},Xe=Ml,Ze=Nl;var Ou={usingClientEntryPoint:!1,Events:[Wi,Gi,Ki,Je,Ye,Ml]},ku={findFiberByHostInstance:Ui,bundleType:0,version:`18.3.1`,rendererPackageName:`react-dom`},Au={bundleType:ku.bundleType,version:ku.version,rendererPackageName:ku.rendererPackageName,rendererConfig:ku.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:C.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return e=mt(e),e===null?null:e.stateNode},findFiberByHostInstance:ku.findFiberByHostInstance||yu,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 ju=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!ju.isDisabled&&ju.supportsFiber)try{Et=ju.inject(Au),Dt=ju}catch{}}e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Ou,e.createPortal=function(e,t){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Cu(t))throw Error(r(200));return fu(e,t,null,n)},e.createRoot=function(e,t){if(!Cu(e))throw Error(r(299));var n=!1,i=``,a=bu;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(i=t.identifierPrefix),t.onRecoverableError!==void 0&&(a=t.onRecoverableError)),t=du(e,1,!1,null,null,n,!1,i,a),e[zi]=t.current,pi(e.nodeType===8?e.parentNode:e),new xu(t)},e.findDOMNode=function(e){if(e==null)return null;if(e.nodeType===1)return e;var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(r(188)):(e=Object.keys(e).join(`,`),Error(r(268,e)));return e=mt(t),e=e===null?null:e.stateNode,e},e.flushSync=function(e){return Nl(e)},e.hydrate=function(e,t,n){if(!wu(t))throw Error(r(200));return Du(null,e,t,!0,n)},e.hydrateRoot=function(e,t,n){if(!Cu(e))throw Error(r(405));var i=n!=null&&n.hydratedSources||null,a=!1,o=``,s=bu;if(n!=null&&(!0===n.unstable_strictMode&&(a=!0),n.identifierPrefix!==void 0&&(o=n.identifierPrefix),n.onRecoverableError!==void 0&&(s=n.onRecoverableError)),t=mu(t,null,e,1,n??null,a,!1,o,s),e[zi]=t.current,pi(e),i)for(e=0;e<i.length;e++)n=i[e],a=n._getVersion,a=a(n._source),t.mutableSourceEagerHydrationData==null?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Su(t)},e.render=function(e,t,n){if(!wu(t))throw Error(r(200));return Du(null,e,t,!1,n)},e.unmountComponentAtNode=function(e){if(!wu(e))throw Error(r(40));return e._reactRootContainer?(Nl(function(){Du(null,null,e,!1,function(){e._reactRootContainer=null,e[zi]=null})}),!0):!1},e.unstable_batchedUpdates=Ml,e.unstable_renderSubtreeIntoContainer=function(e,t,n,i){if(!wu(n))throw Error(r(200));if(e==null||e._reactInternals===void 0)throw Error(r(38));return Du(e,t,n,!1,i)},e.version=`18.3.1-next-f1338f8080-20240426`})),_=s(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=g()})),v=s((e=>{var t=_();e.createRoot=t.createRoot,e.hydrateRoot=t.hydrateRoot})),y=u(p(),1),b=`popstate`;function x(e={}){function t(e,t){let{pathname:n,search:r,hash:i}=e.location;return E(``,{pathname:n,search:r,hash:i},t.state&&t.state.usr||null,t.state&&t.state.key||`default`)}function n(e,t){return typeof t==`string`?t:D(t)}return ee(t,n,null,e)}function S(e,t){if(e===!1||e==null)throw Error(t)}function C(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function w(){return Math.random().toString(36).substring(2,10)}function T(e,t){return{usr:e.state,key:e.key,idx:t}}function E(e,t,n=null,r){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?O(t):t,state:n,key:t&&t.key||r||w()}}function D({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 O(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function ee(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=E(h.location,e,t);n&&n(r,e),l=u()+1;let d=T(r,l),f=h.createHref(r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=E(h.location,e,t);n&&n(r,e),l=u();let i=T(r,l),d=h.createHref(r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return k(e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(b,d),c=e,()=>{i.removeEventListener(b,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function k(e,t=!1){let n=`http://localhost`;typeof window<`u`&&(n=window.location.origin===`null`?window.location.href:window.location.origin),S(n,`No window.location.(origin|href) available to create URL`);let r=typeof e==`string`?e:D(e);return r=r.replace(/ $/,`%20`),!t&&r.startsWith(`//`)&&(r=n+r),new URL(r,n)}function te(e,t,n=`/`){return A(e,t,n,!1)}function A(e,t,n,r){let i=me((typeof t==`string`?O(t):t).pathname||`/`,n);if(i==null)return null;let a=j(e);N(a);let o=null;for(let e=0;o==null&&e<a.length;++e){let t=pe(i);o=ue(a[e],t,r)}return o}function j(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;S(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=Ce([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(S(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),j(e.children,t,u,l,o)),(e.path!=null||e.index)&&t.push({path:l,score:ce(l,e.index),routesMeta:u})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of M(e.path))a(e,t,!0,n)}),t}function M(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=M(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function N(e){e.sort((e,t)=>e.score===t.score?le(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var ne=/^:[\w-]+$/,re=3,ie=2,P=1,ae=10,oe=-2,se=e=>e===`*`;function ce(e,t){let n=e.split(`/`),r=n.length;return n.some(se)&&(r+=oe),t&&(r+=ie),n.filter(e=>!se(e)).reduce((e,t)=>e+(ne.test(t)?re:t===``?P:ae),r)}function le(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function ue(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u=de({path:s.relativePath,caseSensitive:s.caseSensitive,end:c},l),d=s.route;if(!u&&c&&n&&!r[r.length-1].route.index&&(u=de({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!u)return null;Object.assign(i,u.params),o.push({params:i,pathname:Ce([a,u.pathname]),pathnameBase:we(Ce([a,u.pathnameBase])),route:d}),u.pathnameBase!==`/`&&(a=Ce([a,u.pathnameBase]))}return o}function de(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=fe(e.path,e.caseSensitive,e.end),i=t.match(n);if(!i)return null;let a=i[0],o=a.replace(/(.)\/+$/,`$1`),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=a.slice(0,a.length-e.length).replace(/(.)\/+$/,`$1`)}let i=s[r];return e[t]=n&&!i?void 0:(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function fe(e,t=!1,n=!0){C(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 r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n)=>(r.push({paramName:t,isOptional:n!=null}),n?`/?([^\\/]+)?`:`/([^\\/]+)`)).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function pe(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return C(!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 me(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}var he=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ge=e=>he.test(e);function _e(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?O(e):e,a;if(n){if(ge(n))a=n;else{if(n.includes(`//`)){let e=n;n=n.replace(/\/\/+/g,`/`),C(!1,`Pathnames cannot have embedded double slashes - normalizing ${e} -> ${n}`)}a=n.startsWith(`/`)?ve(n.substring(1),`/`):ve(n,t)}}else a=t;return{pathname:a,search:Te(r),hash:Ee(i)}}function ve(e,t){let n=t.replace(/\/+$/,``).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function ye(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. 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 be(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function xe(e){let t=be(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function Se(e,t,n,r=!1){let i;typeof e==`string`?i=O(e):(i={...e},S(!i.pathname||!i.pathname.includes(`?`),ye(`?`,`pathname`,`search`,i)),S(!i.pathname||!i.pathname.includes(`#`),ye(`#`,`pathname`,`hash`,i)),S(!i.search||!i.search.includes(`#`),ye(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=_e(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var Ce=e=>e.join(`/`).replace(/\/\/+/g,`/`),we=e=>e.replace(/\/+$/,``).replace(/^\/*/,`/`),Te=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,Ee=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,De=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function Oe(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function ke(e){return e.map(e=>e.route.path).filter(Boolean).join(`/`).replace(/\/\/*/g,`/`)||`/`}var Ae=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function je(e,t){let n=e;if(typeof n!=`string`||!he.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(Ae)try{let e=new URL(window.location.href),r=n.startsWith(`//`)?new URL(e.protocol+n):new URL(n),a=me(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{C(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var Me=[`POST`,`PUT`,`PATCH`,`DELETE`];new Set(Me);var Ne=[`GET`,...Me];new Set(Ne);var Pe=y.createContext(null);Pe.displayName=`DataRouter`;var Fe=y.createContext(null);Fe.displayName=`DataRouterState`;var Ie=y.createContext(!1),Le=y.createContext({isTransitioning:!1});Le.displayName=`ViewTransition`;var Re=y.createContext(new Map);Re.displayName=`Fetchers`;var ze=y.createContext(null);ze.displayName=`Await`;var Be=y.createContext(null);Be.displayName=`Navigation`;var Ve=y.createContext(null);Ve.displayName=`Location`;var He=y.createContext({outlet:null,matches:[],isDataRoute:!1});He.displayName=`Route`;var Ue=y.createContext(null);Ue.displayName=`RouteError`;var We=`REACT_ROUTER_ERROR`,Ge=`REDIRECT`,Ke=`ROUTE_ERROR_RESPONSE`;function qe(e){if(e.startsWith(`${We}:${Ge}:{`))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 Je(e){if(e.startsWith(`${We}:${Ke}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new De(t.status,t.statusText,t.data)}catch{}}function Ye(e,{relative:t}={}){S(Xe(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:r}=y.useContext(Be),{hash:i,pathname:a,search:o}=nt(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:Ce([n,a])),r.createHref({pathname:s,search:o,hash:i})}function Xe(){return y.useContext(Ve)!=null}function Ze(){return S(Xe(),`useLocation() may be used only in the context of a <Router> component.`),y.useContext(Ve).location}var Qe=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function $e(e){y.useContext(Be).static||y.useLayoutEffect(e)}function F(){let{isDataRoute:e}=y.useContext(He);return e?yt():et()}function et(){S(Xe(),`useNavigate() may be used only in the context of a <Router> component.`);let e=y.useContext(Pe),{basename:t,navigator:n}=y.useContext(Be),{matches:r}=y.useContext(He),{pathname:i}=Ze(),a=JSON.stringify(xe(r)),o=y.useRef(!1);return $e(()=>{o.current=!0}),y.useCallback((r,s={})=>{if(C(o.current,Qe),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=Se(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:Ce([t,c.pathname])),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}y.createContext(null);function tt(){let{matches:e}=y.useContext(He),t=e[e.length-1];return t?t.params:{}}function nt(e,{relative:t}={}){let{matches:n}=y.useContext(He),{pathname:r}=Ze(),i=JSON.stringify(xe(n));return y.useMemo(()=>Se(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function rt(e,t){return it(e,t)}function it(e,t,n,r,i){S(Xe(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:a}=y.useContext(Be),{matches:o}=y.useContext(He),s=o[o.length-1],c=s?s.params:{},l=s?s.pathname:`/`,u=s?s.pathnameBase:`/`,d=s&&s.route;{let e=d&&d.path||``;xt(l,!d||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${l}" (under <Route path="${e}">) 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="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let f=Ze(),p;if(t){let e=typeof t==`string`?O(t):t;S(u===`/`||e.pathname?.startsWith(u),`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 "${u}" but pathname "${e.pathname}" was given in the \`location\` prop.`),p=e}else p=f;let m=p.pathname||`/`,h=m;if(u!==`/`){let e=u.replace(/^\//,``).split(`/`);h=`/`+m.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let g=te(e,{pathname:h});C(d||g!=null,`No routes matched location "${p.pathname}${p.search}${p.hash}" `),C(g==null||g[g.length-1].route.element!==void 0||g[g.length-1].route.Component!==void 0||g[g.length-1].route.lazy!==void 0,`Matched leaf route at location "${p.pathname}${p.search}${p.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 _=dt(g&&g.map(e=>Object.assign({},e,{params:Object.assign({},c,e.params),pathname:Ce([u,a.encodeLocation?a.encodeLocation(e.pathname.replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?u:Ce([u,a.encodeLocation?a.encodeLocation(e.pathnameBase.replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),o,n,r,i);return t&&_?y.createElement(Ve.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,...p},navigationType:`POP`}},_):_}function at(){let e=vt(),t=Oe(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=y.createElement(y.Fragment,null,y.createElement(`p`,null,`💿 Hey developer 👋`),y.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,y.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,y.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),y.createElement(y.Fragment,null,y.createElement(`h2`,null,`Unexpected Application Error!`),y.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?y.createElement(`pre`,{style:i},n):null,o)}var ot=y.createElement(at,null),st=class extends y.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?t.error:e.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`){let t=Je(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:y.createElement(He.Provider,{value:this.props.routeContext},y.createElement(Ue.Provider,{value:e,children:this.props.component}));return this.context?y.createElement(lt,{error:e},t):t}};st.contextType=Ie;var ct=new WeakMap;function lt({children:e,error:t}){let{basename:n}=y.useContext(Be);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=qe(t.digest);if(e){let r=ct.get(t);if(r)throw r;let i=je(e.location,n);if(Ae&&!ct.get(t)){if(i.isExternal||e.reloadDocument)window.location.href=i.absoluteURL||i.to;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(i.to,{replace:e.replace}));throw ct.set(t,n),n}}return y.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${i.absoluteURL||i.to}`})}}return e}function ut({routeContext:e,match:t,children:n}){let r=y.useContext(Pe);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),y.createElement(He.Provider,{value:e},n)}function dt(e,t=[],n=null,r=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 a=e,o=n?.errors;if(o!=null){let e=a.findIndex(e=>e.route.id&&o?.[e.route.id]!==void 0);S(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(o).join(`,`)}`),a=a.slice(0,Math.min(a.length,e+1))}let s=!1,c=-1;if(n)for(let e=0;e<a.length;e++){let t=a[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(c=e),t.route.id){let{loaderData:e,errors:r}=n,i=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!r||r[t.route.id]===void 0);if(t.route.lazy||i){s=!0,a=c>=0?a.slice(0,c+1):[a[0]];break}}}let l=n&&r?(e,t)=>{r(e,{location:n.location,params:n.matches?.[0]?.params??{},unstable_pattern:ke(n.matches),errorInfo:t})}:void 0;return a.reduceRight((e,r,i)=>{let u,d=!1,f=null,p=null;n&&(u=o&&r.route.id?o[r.route.id]:void 0,f=r.route.errorElement||ot,s&&(c<0&&i===0?(xt(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):c===i&&(d=!0,p=r.route.hydrateFallbackElement||null)));let m=t.concat(a.slice(0,i+1)),h=()=>{let t;return t=u?f:d?p:r.route.Component?y.createElement(r.route.Component,null):r.route.element?r.route.element:e,y.createElement(ut,{match:r,routeContext:{outlet:e,matches:m,isDataRoute:n!=null},children:t})};return n&&(r.route.ErrorBoundary||r.route.errorElement||i===0)?y.createElement(st,{location:n.location,revalidation:n.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function ft(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function pt(e){let t=y.useContext(Pe);return S(t,ft(e)),t}function mt(e){let t=y.useContext(Fe);return S(t,ft(e)),t}function ht(e){let t=y.useContext(He);return S(t,ft(e)),t}function gt(e){let t=ht(e),n=t.matches[t.matches.length-1];return S(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function _t(){return gt(`useRouteId`)}function vt(){let e=y.useContext(Ue),t=mt(`useRouteError`),n=gt(`useRouteError`);return e===void 0?t.errors?.[n]:e}function yt(){let{router:e}=pt(`useNavigate`),t=gt(`useNavigate`),n=y.useRef(!1);return $e(()=>{n.current=!0}),y.useCallback(async(r,i={})=>{C(n.current,Qe),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var bt={};function xt(e,t,n){!t&&!bt[e]&&(bt[e]=!0,C(!1,n))}y.memo(St);function St({routes:e,future:t,state:n,onError:r}){return it(e,void 0,n,r,t)}function Ct({to:e,replace:t,state:n,relative:r}){S(Xe(),`<Navigate> may be used only in the context of a <Router> component.`);let{static:i}=y.useContext(Be);C(!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:a}=y.useContext(He),{pathname:o}=Ze(),s=F(),c=Se(e,xe(a),o,r===`path`),l=JSON.stringify(c);return y.useEffect(()=>{s(JSON.parse(l),{replace:t,state:n,relative:r})},[s,l,r,t,n]),null}function I(e){S(!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 wt({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,unstable_useTransitions:o}){S(!Xe(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=y.useMemo(()=>({basename:s,navigator:i,static:a,unstable_useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=O(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`}=n,m=y.useMemo(()=>{let e=me(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p},navigationType:r}},[s,l,u,d,f,p,r]);return C(m!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),m==null?null:y.createElement(Be.Provider,{value:c},y.createElement(Ve.Provider,{children:t,value:m}))}function Tt({children:e,location:t}){return rt(Et(e),t)}y.Component;function Et(e,t=[]){let n=[];return y.Children.forEach(e,(e,r)=>{if(!y.isValidElement(e))return;let i=[...t,r];if(e.type===y.Fragment){n.push.apply(n,Et(e.props.children,i));return}S(e.type===I,`[${typeof e.type==`string`?e.type:e.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),S(!e.props.index||!e.props.children,`An index route cannot have child routes.`);let a={id:e.props.id||i.join(`-`),caseSensitive:e.props.caseSensitive,element:e.props.element,Component:e.props.Component,index:e.props.index,path:e.props.path,middleware:e.props.middleware,loader:e.props.loader,action:e.props.action,hydrateFallbackElement:e.props.hydrateFallbackElement,HydrateFallback:e.props.HydrateFallback,errorElement:e.props.errorElement,ErrorBoundary:e.props.ErrorBoundary,hasErrorBoundary:e.props.hasErrorBoundary===!0||e.props.ErrorBoundary!=null||e.props.errorElement!=null,shouldRevalidate:e.props.shouldRevalidate,handle:e.props.handle,lazy:e.props.lazy};e.props.children&&(a.children=Et(e.props.children,i)),n.push(a)}),n}var Dt=`get`,Ot=`application/x-www-form-urlencoded`;function kt(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function At(e){return kt(e)&&e.tagName.toLowerCase()===`button`}function jt(e){return kt(e)&&e.tagName.toLowerCase()===`form`}function Mt(e){return kt(e)&&e.tagName.toLowerCase()===`input`}function Nt(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function Pt(e,t){return e.button===0&&(!t||t===`_self`)&&!Nt(e)}var Ft=null;function It(){if(Ft===null)try{new FormData(document.createElement(`form`),0),Ft=!1}catch{Ft=!0}return Ft}var Lt=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function Rt(e){return e!=null&&!Lt.has(e)?(C(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Ot}"`),null):e}function zt(e,t){let n,r,i,a,o;if(jt(e)){let o=e.getAttribute(`action`);r=o?me(o,t):null,n=e.getAttribute(`method`)||Dt,i=Rt(e.getAttribute(`enctype`))||Ot,a=new FormData(e)}else if(At(e)||Mt(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?me(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||Dt,i=Rt(e.getAttribute(`formenctype`))||Rt(o.getAttribute(`enctype`))||Ot,a=new FormData(o,e),!It()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(kt(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=Dt,r=null,i=Ot,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function Bt(e,t){if(e===!1||e==null)throw Error(t)}function Vt(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return i.pathname=n?i.pathname.endsWith(`/`)?`${i.pathname}_.${r}`:`${i.pathname}.${r}`:i.pathname===`/`?`_root.${r}`:t&&me(i.pathname,t)===`/`?`${t.replace(/\/$/,``)}/_root.${r}`:`${i.pathname.replace(/\/$/,``)}.${r}`,i}async function Ht(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(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function Ut(e){return e!=null&&typeof e.page==`string`}function Wt(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 Gt(e,t,n){return Xt((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await Ht(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(Wt).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function Kt(e,t,n,r,i,a){let o=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParams:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function qt(e,t,{includeHydrateFallback:n}={}){return Jt(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function Jt(e){return[...new Set(e)]}function Yt(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function Xt(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!Ut(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(Yt(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function Zt(){let e=y.useContext(Pe);return Bt(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function Qt(){let e=y.useContext(Fe);return Bt(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var $t=y.createContext(void 0);$t.displayName=`FrameworkContext`;function en(){let e=y.useContext($t);return Bt(e,`You must render this element inside a <HydratedRouter> element`),e}function tn(e,t){let n=y.useContext($t),[r,i]=y.useState(!1),[a,o]=y.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=y.useRef(null);y.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),y.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:nn(s,p),onBlur:nn(c,m),onMouseEnter:nn(l,p),onMouseLeave:nn(u,m),onTouchStart:nn(d,p)}]:[a,f,{}]:[!1,f,{}]}function nn(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function rn({page:e,...t}){let{router:n}=Zt(),r=y.useMemo(()=>te(n.routes,e,n.basename),[n.routes,e,n.basename]);return r?y.createElement(on,{page:e,matches:r,...t}):null}function an(e){let{manifest:t,routeModules:n}=en(),[r,i]=y.useState([]);return y.useEffect(()=>{let r=!1;return Gt(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function on({page:e,matches:t,...n}){let r=Ze(),{future:i,manifest:a,routeModules:o}=en(),{basename:s}=Zt(),{loaderData:c,matches:l}=Qt(),u=y.useMemo(()=>Kt(e,t,l,a,r,`data`),[e,t,l,a,r]),d=y.useMemo(()=>Kt(e,t,l,a,r,`assets`),[e,t,l,a,r]),f=y.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,l=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];t&&t.hasLoader&&(!u.some(t=>t.route.id===e.route.id)&&e.route.id in c&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?l=!0:n.add(e.route.id))}),n.size===0)return[];let d=Vt(e,s,i.unstable_trailingSlashAwareDataRequests,`data`);return l&&n.size>0&&d.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[d.pathname+d.search]},[s,i.unstable_trailingSlashAwareDataRequests,c,r,a,u,t,e,o]),p=y.useMemo(()=>qt(d,a),[d,a]),m=an(d);return y.createElement(y.Fragment,null,f.map(e=>y.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),p.map(e=>y.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),m.map(({key:e,link:t})=>y.createElement(`link`,{key:e,nonce:n.nonce,...t})))}function sn(...e){return t=>{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}y.Component;var cn=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{cn&&(window.__reactRouterVersion=`7.12.0`)}catch{}function ln({basename:e,children:t,unstable_useTransitions:n,window:r}){let i=y.useRef();i.current??=x({window:r,v5Compat:!0});let a=i.current,[o,s]=y.useState({action:a.action,location:a.location}),c=y.useCallback(e=>{n===!1?s(e):y.startTransition(()=>s(e))},[n]);return y.useLayoutEffect(()=>a.listen(c),[a,c]),y.createElement(wt,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a,unstable_useTransitions:n})}var un=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,dn=y.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,state:o,target:s,to:c,preventScrollReset:l,viewTransition:u,unstable_defaultShouldRevalidate:d,...f},p){let{basename:m,unstable_useTransitions:h}=y.useContext(Be),g=typeof c==`string`&&un.test(c),_=je(c,m);c=_.to;let v=Ye(c,{relative:r}),[b,x,S]=tn(n,f),C=gn(c,{replace:a,state:o,target:s,preventScrollReset:l,relative:r,viewTransition:u,unstable_defaultShouldRevalidate:d,unstable_useTransitions:h});function w(t){e&&e(t),t.defaultPrevented||C(t)}let T=y.createElement(`a`,{...f,...S,href:_.absoluteURL||v,onClick:_.isExternal||i?e:w,ref:sn(p,x),target:s,"data-discover":!g&&t===`render`?`true`:void 0});return b&&!g?y.createElement(y.Fragment,null,T,y.createElement(rn,{page:v})):T});dn.displayName=`Link`;var fn=y.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=nt(a,{relative:c.relative}),d=Ze(),f=y.useContext(Fe),{navigator:p,basename:m}=y.useContext(Be),h=f!=null&&xn(u)&&o===!0,g=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,_=d.pathname,v=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(_=_.toLowerCase(),v=v?v.toLowerCase():null,g=g.toLowerCase()),v&&m&&(v=me(v,m)||v);let b=g!==`/`&&g.endsWith(`/`)?g.length-1:g.length,x=_===g||!r&&_.startsWith(g)&&_.charAt(b)===`/`,S=v!=null&&(v===g||!r&&v.startsWith(g)&&v.charAt(g.length)===`/`),C={isActive:x,isPending:S,isTransitioning:h},w=x?e:void 0,T;T=typeof n==`function`?n(C):[n,x?`active`:null,S?`pending`:null,h?`transitioning`:null].filter(Boolean).join(` `);let E=typeof i==`function`?i(C):i;return y.createElement(dn,{...c,"aria-current":w,className:T,ref:l,style:E,to:a,viewTransition:o},typeof s==`function`?s(C):s)});fn.displayName=`NavLink`;var pn=y.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=Dt,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,unstable_defaultShouldRevalidate:f,...p},m)=>{let{unstable_useTransitions:h}=y.useContext(Be),g=yn(),_=bn(s,{relative:l}),v=o.toLowerCase()===`get`?`get`:`post`,b=typeof s==`string`&&un.test(s);return y.createElement(`form`,{ref:m,method:v,action:_,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>g(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,unstable_defaultShouldRevalidate:f});h&&n!==!1?y.startTransition(()=>p()):p()},...p,"data-discover":!b&&e===`render`?`true`:void 0})});pn.displayName=`Form`;function mn(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function hn(e){let t=y.useContext(Pe);return S(t,mn(e)),t}function gn(e,{target:t,replace:n,state:r,preventScrollReset:i,relative:a,viewTransition:o,unstable_defaultShouldRevalidate:s,unstable_useTransitions:c}={}){let l=F(),u=Ze(),d=nt(e,{relative:a});return y.useCallback(f=>{if(Pt(f,t)){f.preventDefault();let t=n===void 0?D(u)===D(d):n,p=()=>l(e,{replace:t,state:r,preventScrollReset:i,relative:a,viewTransition:o,unstable_defaultShouldRevalidate:s});c?y.startTransition(()=>p()):p()}},[u,l,d,n,r,t,e,i,a,o,s,c])}var _n=0,vn=()=>`__${String(++_n)}__`;function yn(){let{router:e}=hn(`useSubmit`),{basename:t}=y.useContext(Be),n=_t(),r=e.fetch,i=e.navigate;return y.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=zt(e,t);if(a.navigate===!1){let e=a.fetcherKey||vn();await r(e,n,a.action||o,{unstable_defaultShouldRevalidate:a.unstable_defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync})}else await i(a.action||o,{unstable_defaultShouldRevalidate:a.unstable_defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function bn(e,{relative:t}={}){let{basename:n}=y.useContext(Be),r=y.useContext(He);S(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...nt(e||`.`,{relative:t})},o=Ze();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:Ce([n,a.pathname])),D(a)}function xn(e,{relative:t}={}){let n=y.useContext(Le);S(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=hn(`useViewTransitionState`),i=nt(e,{relative:t});if(!n.isTransitioning)return!1;let a=me(n.currentLocation.pathname,r)||n.currentLocation.pathname,o=me(n.nextLocation.pathname,r)||n.nextLocation.pathname;return de(i.pathname,o)!=null||de(i.pathname,a)!=null}var Sn=u(v(),1);function Cn(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=Cn(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function wn(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=Cn(e))&&(r&&(r+=` `),r+=t);return r}var Tn=`-`,En=e=>{let t=An(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:e=>{let n=e.split(Tn);return n[0]===``&&n.length!==1&&n.shift(),Dn(n,t)||kn(e)},getConflictingClassGroupIds:(e,t)=>{let i=n[e]||[];return t&&r[e]?[...i,...r[e]]:i}}},Dn=(e,t)=>{if(e.length===0)return t.classGroupId;let n=e[0],r=t.nextPart.get(n),i=r?Dn(e.slice(1),r):void 0;if(i)return i;if(t.validators.length===0)return;let a=e.join(Tn);return t.validators.find(({validator:e})=>e(a))?.classGroupId},On=/^\[(.+)\]$/,kn=e=>{if(On.test(e)){let t=On.exec(e)[1],n=t?.substring(0,t.indexOf(`:`));if(n)return`arbitrary..`+n}},An=e=>{let{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return Pn(Object.entries(e.classGroups),n).forEach(([e,n])=>{jn(n,r,e,t)}),r},jn=(e,t,n,r)=>{e.forEach(e=>{if(typeof e==`string`){let r=e===``?t:Mn(t,e);r.classGroupId=n}else if(typeof e==`function`){if(Nn(e)){jn(e(r),t,n,r);return}t.validators.push({validator:e,classGroupId:n})}else Object.entries(e).forEach(([e,i])=>{jn(i,Mn(t,e),n,r)})})},Mn=(e,t)=>{let n=e;return t.split(Tn).forEach(e=>{n.nextPart.has(e)||n.nextPart.set(e,{nextPart:new Map,validators:[]}),n=n.nextPart.get(e)}),n},Nn=e=>e.isThemeGetter,Pn=(e,t)=>t?e.map(([e,n])=>[e,n.map(e=>typeof e==`string`?t+e:typeof e==`object`?Object.fromEntries(Object.entries(e).map(([e,n])=>[t+e,n])):e)]):e,Fn=e=>{if(e<1)return{get:()=>void 0,set:()=>{}};let t=0,n=new Map,r=new Map,i=(i,a)=>{n.set(i,a),t++,t>e&&(t=0,r=n,n=new Map)};return{get(e){let t=n.get(e);if(t!==void 0)return t;if((t=r.get(e))!==void 0)return i(e,t),t},set(e,t){n.has(e)?n.set(e,t):i(e,t)}}},In=`!`,Ln=e=>{let{separator:t,experimentalParseClassName:n}=e,r=t.length===1,i=t[0],a=t.length,o=e=>{let n=[],o=0,s=0,c;for(let l=0;l<e.length;l++){let u=e[l];if(o===0){if(u===i&&(r||e.slice(l,l+a)===t)){n.push(e.slice(s,l)),s=l+a;continue}if(u===`/`){c=l;continue}}u===`[`?o++:u===`]`&&o--}let l=n.length===0?e:e.substring(s),u=l.startsWith(In);return{modifiers:n,hasImportantModifier:u,baseClassName:u?l.substring(1):l,maybePostfixModifierPosition:c&&c>s?c-s:void 0}};return n?e=>n({className:e,parseClassName:o}):o},Rn=e=>{if(e.length<=1)return e;let t=[],n=[];return e.forEach(e=>{e[0]===`[`?(t.push(...n.sort(),e),n=[]):n.push(e)}),t.push(...n.sort()),t},zn=e=>({cache:Fn(e.cacheSize),parseClassName:Ln(e),...En(e)}),Bn=/\s+/,Vn=(e,t)=>{let{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:i}=t,a=[],o=e.trim().split(Bn),s=``;for(let e=o.length-1;e>=0;--e){let t=o[e],{modifiers:c,hasImportantModifier:l,baseClassName:u,maybePostfixModifierPosition:d}=n(t),f=!!d,p=r(f?u.substring(0,d):u);if(!p){if(!f||(p=r(u),!p)){s=t+(s.length>0?` `+s:s);continue}f=!1}let m=Rn(c).join(`:`),h=l?m+In:m,g=h+p;if(a.includes(g))continue;a.push(g);let _=i(p,f);for(let e=0;e<_.length;++e){let t=_[e];a.push(h+t)}s=t+(s.length>0?` `+s:s)}return s};function Hn(){let e=0,t,n,r=``;for(;e<arguments.length;)(t=arguments[e++])&&(n=Un(t))&&(r&&(r+=` `),r+=n);return r}var Un=e=>{if(typeof e==`string`)return e;let t,n=``;for(let r=0;r<e.length;r++)e[r]&&(t=Un(e[r]))&&(n&&(n+=` `),n+=t);return n};function Wn(e,...t){let n,r,i,a=o;function o(o){return n=zn(t.reduce((e,t)=>t(e),e())),r=n.cache.get,i=n.cache.set,a=s,s(o)}function s(e){let t=r(e);if(t)return t;let a=Vn(e,n);return i(e,a),a}return function(){return a(Hn.apply(null,arguments))}}var Gn=e=>{let t=t=>t[e]||[];return t.isThemeGetter=!0,t},Kn=/^\[(?:([a-z-]+):)?(.+)\]$/i,qn=/^\d+\/\d+$/,Jn=new Set([`px`,`full`,`screen`]),Yn=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Xn=/\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$/,Zn=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,Qn=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,$n=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,er=e=>nr(e)||Jn.has(e)||qn.test(e),tr=e=>hr(e,`length`,gr),nr=e=>!!e&&!Number.isNaN(Number(e)),rr=e=>hr(e,`number`,nr),ir=e=>!!e&&Number.isInteger(Number(e)),ar=e=>e.endsWith(`%`)&&nr(e.slice(0,-1)),or=e=>Kn.test(e),sr=e=>Yn.test(e),cr=new Set([`length`,`size`,`percentage`]),lr=e=>hr(e,cr,_r),ur=e=>hr(e,`position`,_r),dr=new Set([`image`,`url`]),fr=e=>hr(e,dr,yr),pr=e=>hr(e,``,vr),mr=()=>!0,hr=(e,t,n)=>{let r=Kn.exec(e);return r?r[1]?typeof t==`string`?r[1]===t:t.has(r[1]):n(r[2]):!1},gr=e=>Xn.test(e)&&!Zn.test(e),_r=()=>!1,vr=e=>Qn.test(e),yr=e=>$n.test(e),br=Wn(()=>{let e=Gn(`colors`),t=Gn(`spacing`),n=Gn(`blur`),r=Gn(`brightness`),i=Gn(`borderColor`),a=Gn(`borderRadius`),o=Gn(`borderSpacing`),s=Gn(`borderWidth`),c=Gn(`contrast`),l=Gn(`grayscale`),u=Gn(`hueRotate`),d=Gn(`invert`),f=Gn(`gap`),p=Gn(`gradientColorStops`),m=Gn(`gradientColorStopPositions`),h=Gn(`inset`),g=Gn(`margin`),_=Gn(`opacity`),v=Gn(`padding`),y=Gn(`saturate`),b=Gn(`scale`),x=Gn(`sepia`),S=Gn(`skew`),C=Gn(`space`),w=Gn(`translate`),T=()=>[`auto`,`contain`,`none`],E=()=>[`auto`,`hidden`,`clip`,`visible`,`scroll`],D=()=>[`auto`,or,t],O=()=>[or,t],ee=()=>[``,er,tr],k=()=>[`auto`,nr,or],te=()=>[`bottom`,`center`,`left`,`left-bottom`,`left-top`,`right`,`right-bottom`,`right-top`,`top`],A=()=>[`solid`,`dashed`,`dotted`,`double`,`none`],j=()=>[`normal`,`multiply`,`screen`,`overlay`,`darken`,`lighten`,`color-dodge`,`color-burn`,`hard-light`,`soft-light`,`difference`,`exclusion`,`hue`,`saturation`,`color`,`luminosity`],M=()=>[`start`,`end`,`center`,`between`,`around`,`evenly`,`stretch`],N=()=>[``,`0`,or],ne=()=>[`auto`,`avoid`,`all`,`avoid-page`,`page`,`left`,`right`,`column`],re=()=>[nr,or];return{cacheSize:500,separator:`:`,theme:{colors:[mr],spacing:[er,tr],blur:[`none`,``,sr,or],brightness:re(),borderColor:[e],borderRadius:[`none`,``,`full`,sr,or],borderSpacing:O(),borderWidth:ee(),contrast:re(),grayscale:N(),hueRotate:re(),invert:N(),gap:O(),gradientColorStops:[e],gradientColorStopPositions:[ar,tr],inset:D(),margin:D(),opacity:re(),padding:O(),saturate:re(),scale:re(),sepia:N(),skew:re(),space:O(),translate:O()},classGroups:{aspect:[{aspect:[`auto`,`square`,`video`,or]}],container:[`container`],columns:[{columns:[sr]}],"break-after":[{"break-after":ne()}],"break-before":[{"break-before":ne()}],"break-inside":[{"break-inside":[`auto`,`avoid`,`avoid-page`,`avoid-column`]}],"box-decoration":[{"box-decoration":[`slice`,`clone`]}],box:[{box:[`border`,`content`]}],display:[`block`,`inline-block`,`inline`,`flex`,`inline-flex`,`table`,`inline-table`,`table-caption`,`table-cell`,`table-column`,`table-column-group`,`table-footer-group`,`table-header-group`,`table-row-group`,`table-row`,`flow-root`,`grid`,`inline-grid`,`contents`,`list-item`,`hidden`],float:[{float:[`right`,`left`,`none`,`start`,`end`]}],clear:[{clear:[`left`,`right`,`both`,`none`,`start`,`end`]}],isolation:[`isolate`,`isolation-auto`],"object-fit":[{object:[`contain`,`cover`,`fill`,`none`,`scale-down`]}],"object-position":[{object:[...te(),or]}],overflow:[{overflow:E()}],"overflow-x":[{"overflow-x":E()}],"overflow-y":[{"overflow-y":E()}],overscroll:[{overscroll:T()}],"overscroll-x":[{"overscroll-x":T()}],"overscroll-y":[{"overscroll-y":T()}],position:[`static`,`fixed`,`absolute`,`relative`,`sticky`],inset:[{inset:[h]}],"inset-x":[{"inset-x":[h]}],"inset-y":[{"inset-y":[h]}],start:[{start:[h]}],end:[{end:[h]}],top:[{top:[h]}],right:[{right:[h]}],bottom:[{bottom:[h]}],left:[{left:[h]}],visibility:[`visible`,`invisible`,`collapse`],z:[{z:[`auto`,ir,or]}],basis:[{basis:D()}],"flex-direction":[{flex:[`row`,`row-reverse`,`col`,`col-reverse`]}],"flex-wrap":[{flex:[`wrap`,`wrap-reverse`,`nowrap`]}],flex:[{flex:[`1`,`auto`,`initial`,`none`,or]}],grow:[{grow:N()}],shrink:[{shrink:N()}],order:[{order:[`first`,`last`,`none`,ir,or]}],"grid-cols":[{"grid-cols":[mr]}],"col-start-end":[{col:[`auto`,{span:[`full`,ir,or]},or]}],"col-start":[{"col-start":k()}],"col-end":[{"col-end":k()}],"grid-rows":[{"grid-rows":[mr]}],"row-start-end":[{row:[`auto`,{span:[ir,or]},or]}],"row-start":[{"row-start":k()}],"row-end":[{"row-end":k()}],"grid-flow":[{"grid-flow":[`row`,`col`,`dense`,`row-dense`,`col-dense`]}],"auto-cols":[{"auto-cols":[`auto`,`min`,`max`,`fr`,or]}],"auto-rows":[{"auto-rows":[`auto`,`min`,`max`,`fr`,or]}],gap:[{gap:[f]}],"gap-x":[{"gap-x":[f]}],"gap-y":[{"gap-y":[f]}],"justify-content":[{justify:[`normal`,...M()]}],"justify-items":[{"justify-items":[`start`,`end`,`center`,`stretch`]}],"justify-self":[{"justify-self":[`auto`,`start`,`end`,`center`,`stretch`]}],"align-content":[{content:[`normal`,...M(),`baseline`]}],"align-items":[{items:[`start`,`end`,`center`,`baseline`,`stretch`]}],"align-self":[{self:[`auto`,`start`,`end`,`center`,`stretch`,`baseline`]}],"place-content":[{"place-content":[...M(),`baseline`]}],"place-items":[{"place-items":[`start`,`end`,`center`,`baseline`,`stretch`]}],"place-self":[{"place-self":[`auto`,`start`,`end`,`center`,`stretch`]}],p:[{p:[v]}],px:[{px:[v]}],py:[{py:[v]}],ps:[{ps:[v]}],pe:[{pe:[v]}],pt:[{pt:[v]}],pr:[{pr:[v]}],pb:[{pb:[v]}],pl:[{pl:[v]}],m:[{m:[g]}],mx:[{mx:[g]}],my:[{my:[g]}],ms:[{ms:[g]}],me:[{me:[g]}],mt:[{mt:[g]}],mr:[{mr:[g]}],mb:[{mb:[g]}],ml:[{ml:[g]}],"space-x":[{"space-x":[C]}],"space-x-reverse":[`space-x-reverse`],"space-y":[{"space-y":[C]}],"space-y-reverse":[`space-y-reverse`],w:[{w:[`auto`,`min`,`max`,`fit`,`svw`,`lvw`,`dvw`,or,t]}],"min-w":[{"min-w":[or,t,`min`,`max`,`fit`]}],"max-w":[{"max-w":[or,t,`none`,`full`,`min`,`max`,`fit`,`prose`,{screen:[sr]},sr]}],h:[{h:[or,t,`auto`,`min`,`max`,`fit`,`svh`,`lvh`,`dvh`]}],"min-h":[{"min-h":[or,t,`min`,`max`,`fit`,`svh`,`lvh`,`dvh`]}],"max-h":[{"max-h":[or,t,`min`,`max`,`fit`,`svh`,`lvh`,`dvh`]}],size:[{size:[or,t,`auto`,`min`,`max`,`fit`]}],"font-size":[{text:[`base`,sr,tr]}],"font-smoothing":[`antialiased`,`subpixel-antialiased`],"font-style":[`italic`,`not-italic`],"font-weight":[{font:[`thin`,`extralight`,`light`,`normal`,`medium`,`semibold`,`bold`,`extrabold`,`black`,rr]}],"font-family":[{font:[mr]}],"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`,or]}],"line-clamp":[{"line-clamp":[`none`,nr,rr]}],leading:[{leading:[`none`,`tight`,`snug`,`normal`,`relaxed`,`loose`,er,or]}],"list-image":[{"list-image":[`none`,or]}],"list-style-type":[{list:[`none`,`disc`,`decimal`,or]}],"list-style-position":[{list:[`inside`,`outside`]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[_]}],"text-alignment":[{text:[`left`,`center`,`right`,`justify`,`start`,`end`]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[_]}],"text-decoration":[`underline`,`overline`,`line-through`,`no-underline`],"text-decoration-style":[{decoration:[...A(),`wavy`]}],"text-decoration-thickness":[{decoration:[`auto`,`from-font`,er,tr]}],"underline-offset":[{"underline-offset":[`auto`,er,or]}],"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:O()}],"vertical-align":[{align:[`baseline`,`top`,`middle`,`bottom`,`text-top`,`text-bottom`,`sub`,`super`,or]}],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`,or]}],"bg-attachment":[{bg:[`fixed`,`local`,`scroll`]}],"bg-clip":[{"bg-clip":[`border`,`padding`,`content`,`text`]}],"bg-opacity":[{"bg-opacity":[_]}],"bg-origin":[{"bg-origin":[`border`,`padding`,`content`]}],"bg-position":[{bg:[...te(),ur]}],"bg-repeat":[{bg:[`no-repeat`,{repeat:[``,`x`,`y`,`round`,`space`]}]}],"bg-size":[{bg:[`auto`,`cover`,`contain`,lr]}],"bg-image":[{bg:[`none`,{"gradient-to":[`t`,`tr`,`r`,`br`,`b`,`bl`,`l`,`tl`]},fr]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[m]}],"gradient-via-pos":[{via:[m]}],"gradient-to-pos":[{to:[m]}],"gradient-from":[{from:[p]}],"gradient-via":[{via:[p]}],"gradient-to":[{to:[p]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[s]}],"border-w-x":[{"border-x":[s]}],"border-w-y":[{"border-y":[s]}],"border-w-s":[{"border-s":[s]}],"border-w-e":[{"border-e":[s]}],"border-w-t":[{"border-t":[s]}],"border-w-r":[{"border-r":[s]}],"border-w-b":[{"border-b":[s]}],"border-w-l":[{"border-l":[s]}],"border-opacity":[{"border-opacity":[_]}],"border-style":[{border:[...A(),`hidden`]}],"divide-x":[{"divide-x":[s]}],"divide-x-reverse":[`divide-x-reverse`],"divide-y":[{"divide-y":[s]}],"divide-y-reverse":[`divide-y-reverse`],"divide-opacity":[{"divide-opacity":[_]}],"divide-style":[{divide:A()}],"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:[``,...A()]}],"outline-offset":[{"outline-offset":[er,or]}],"outline-w":[{outline:[er,tr]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:ee()}],"ring-w-inset":[`ring-inset`],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[_]}],"ring-offset-w":[{"ring-offset":[er,tr]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:[``,`inner`,`none`,sr,pr]}],"shadow-color":[{shadow:[mr]}],opacity:[{opacity:[_]}],"mix-blend":[{"mix-blend":[...j(),`plus-lighter`,`plus-darker`]}],"bg-blend":[{"bg-blend":j()}],filter:[{filter:[``,`none`]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[c]}],"drop-shadow":[{"drop-shadow":[``,`none`,sr,or]}],grayscale:[{grayscale:[l]}],"hue-rotate":[{"hue-rotate":[u]}],invert:[{invert:[d]}],saturate:[{saturate:[y]}],sepia:[{sepia:[x]}],"backdrop-filter":[{"backdrop-filter":[``,`none`]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[c]}],"backdrop-grayscale":[{"backdrop-grayscale":[l]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[u]}],"backdrop-invert":[{"backdrop-invert":[d]}],"backdrop-opacity":[{"backdrop-opacity":[_]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[x]}],"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`,or]}],duration:[{duration:re()}],ease:[{ease:[`linear`,`in`,`out`,`in-out`,or]}],delay:[{delay:re()}],animate:[{animate:[`none`,`spin`,`ping`,`pulse`,`bounce`,or]}],transform:[{transform:[``,`gpu`,`none`]}],scale:[{scale:[b]}],"scale-x":[{"scale-x":[b]}],"scale-y":[{"scale-y":[b]}],rotate:[{rotate:[ir,or]}],"translate-x":[{"translate-x":[w]}],"translate-y":[{"translate-y":[w]}],"skew-x":[{"skew-x":[S]}],"skew-y":[{"skew-y":[S]}],"transform-origin":[{origin:[`center`,`top`,`top-right`,`right`,`bottom-right`,`bottom`,`bottom-left`,`left`,`top-left`,or]}],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`,or]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":[`none`,`auto`]}],resize:[{resize:[`none`,`y`,`x`,``]}],"scroll-behavior":[{scroll:[`auto`,`smooth`]}],"scroll-m":[{"scroll-m":O()}],"scroll-mx":[{"scroll-mx":O()}],"scroll-my":[{"scroll-my":O()}],"scroll-ms":[{"scroll-ms":O()}],"scroll-me":[{"scroll-me":O()}],"scroll-mt":[{"scroll-mt":O()}],"scroll-mr":[{"scroll-mr":O()}],"scroll-mb":[{"scroll-mb":O()}],"scroll-ml":[{"scroll-ml":O()}],"scroll-p":[{"scroll-p":O()}],"scroll-px":[{"scroll-px":O()}],"scroll-py":[{"scroll-py":O()}],"scroll-ps":[{"scroll-ps":O()}],"scroll-pe":[{"scroll-pe":O()}],"scroll-pt":[{"scroll-pt":O()}],"scroll-pr":[{"scroll-pr":O()}],"scroll-pb":[{"scroll-pb":O()}],"scroll-pl":[{"scroll-pl":O()}],"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`,or]}],fill:[{fill:[e,`none`]}],"stroke-w":[{stroke:[er,tr,rr]}],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`]}}});function R(...e){return br(wn(e))}var xr=u(_(),1);function Sr(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}function Cr(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function wr(...e){return t=>{let n=!1,r=e.map(e=>{let r=Cr(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():Cr(e[t],null)}}}}function Tr(...e){return y.useCallback(wr(...e),e)}var Er=s((e=>{var t=p(),n=Symbol.for(`react.element`),r=Symbol.for(`react.fragment`),i=Object.prototype.hasOwnProperty,a=t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,o={key:!0,ref:!0,__self:!0,__source:!0};function s(e,t,r){var s,c={},l=null,u=null;for(s in r!==void 0&&(l=``+r),t.key!==void 0&&(l=``+t.key),t.ref!==void 0&&(u=t.ref),t)i.call(t,s)&&!o.hasOwnProperty(s)&&(c[s]=t[s]);if(e&&e.defaultProps)for(s in t=e.defaultProps,t)c[s]===void 0&&(c[s]=t[s]);return{$$typeof:n,type:e,key:l,ref:u,props:c,_owner:a.current}}e.Fragment=r,e.jsx=s,e.jsxs=s})),z=s(((e,t)=>{t.exports=Er()}))();function Dr(e,t){let n=y.createContext(t),r=e=>{let{children:t,...r}=e,i=y.useMemo(()=>r,Object.values(r));return(0,z.jsx)(n.Provider,{value:i,children:t})};r.displayName=e+`Provider`;function i(r){let i=y.useContext(n);if(i)return i;if(t!==void 0)return t;throw Error(`\`${r}\` must be used within \`${e}\``)}return[r,i]}function Or(e,t=[]){let n=[];function r(t,r){let i=y.createContext(r),a=n.length;n=[...n,r];let o=t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=y.useMemo(()=>o,Object.values(o));return(0,z.jsx)(s.Provider,{value:c,children:r})};o.displayName=t+`Provider`;function s(n,o){let s=o?.[e]?.[a]||i,c=y.useContext(s);if(c)return c;if(r!==void 0)return r;throw Error(`\`${n}\` must be used within \`${t}\``)}return[o,s]}let i=()=>{let t=n.map(e=>y.createContext(e));return function(n){let r=n?.[e]||t;return y.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])}};return i.scopeName=e,[r,kr(i,...t)]}function kr(...e){let t=e[0];if(e.length===1)return t;let n=()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])}};return n.scopeName=t.scopeName,n}var Ar=y.forwardRef((e,t)=>{let{children:n,...r}=e,i=y.Children.toArray(n),a=i.find(Nr);if(a){let e=a.props.children,n=i.map(t=>t===a?y.Children.count(e)>1?y.Children.only(null):y.isValidElement(e)?e.props.children:null:t);return(0,z.jsx)(jr,{...r,ref:t,children:y.isValidElement(e)?y.cloneElement(e,void 0,n):null})}return(0,z.jsx)(jr,{...r,ref:t,children:n})});Ar.displayName=`Slot`;var jr=y.forwardRef((e,t)=>{let{children:n,...r}=e;if(y.isValidElement(n)){let e=Fr(n);return y.cloneElement(n,{...Pr(r,n.props),ref:t?wr(t,e):e})}return y.Children.count(n)>1?y.Children.only(null):null});jr.displayName=`SlotClone`;var Mr=({children:e})=>(0,z.jsx)(z.Fragment,{children:e});function Nr(e){return y.isValidElement(e)&&e.type===Mr}function Pr(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{a(...e),i(...e)}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}function Fr(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 Ir(e){let t=e+`CollectionProvider`,[n,r]=Or(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=e=>{let{scope:t,children:n}=e,r=y.useRef(null),a=y.useRef(new Map).current;return(0,z.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})};o.displayName=t;let s=e+`CollectionSlot`,c=y.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=Tr(t,a(s,n).collectionRef);return(0,z.jsx)(Ar,{ref:i,children:r})});c.displayName=s;let l=e+`CollectionItemSlot`,u=`data-radix-collection-item`,d=y.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=y.useRef(null),s=Tr(t,o),c=a(l,n);return y.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,z.jsx)(Ar,{[u]:``,ref:s,children:r})});d.displayName=l;function f(t){let n=a(e+`CollectionConsumer`,t);return y.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${u}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return[{Provider:o,Slot:c,ItemSlot:d},f,r]}var Lr=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=y.forwardRef((e,n)=>{let{asChild:r,...i}=e,a=r?Ar:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,z.jsx)(a,{...i,ref:n})});return n.displayName=`Primitive.${t}`,{...e,[t]:n}},{});function Rr(e,t){e&&xr.flushSync(()=>e.dispatchEvent(t))}function zr(e){let t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>(...e)=>t.current?.(...e),[])}function Br(e,t=globalThis?.document){let n=zr(e);y.useEffect(()=>{let e=e=>{e.key===`Escape`&&n(e)};return t.addEventListener(`keydown`,e,{capture:!0}),()=>t.removeEventListener(`keydown`,e,{capture:!0})},[n,t])}var Vr=`DismissableLayer`,Hr=`dismissableLayer.update`,Ur=`dismissableLayer.pointerDownOutside`,Wr=`dismissableLayer.focusOutside`,Gr,Kr=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),qr=y.forwardRef((e,t)=>{let{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:i,onFocusOutside:a,onInteractOutside:o,onDismiss:s,...c}=e,l=y.useContext(Kr),[u,d]=y.useState(null),f=u?.ownerDocument??globalThis?.document,[,p]=y.useState({}),m=Tr(t,e=>d(e)),h=Array.from(l.layers),[g]=[...l.layersWithOutsidePointerEventsDisabled].slice(-1),_=h.indexOf(g),v=u?h.indexOf(u):-1,b=l.layersWithOutsidePointerEventsDisabled.size>0,x=v>=_,S=Xr(e=>{let t=e.target,n=[...l.branches].some(e=>e.contains(t));x&&!n&&(i?.(e),o?.(e),e.defaultPrevented||s?.())},f),C=Zr(e=>{let t=e.target;[...l.branches].some(e=>e.contains(t))||(a?.(e),o?.(e),e.defaultPrevented||s?.())},f);return Br(e=>{v===l.layers.size-1&&(r?.(e),!e.defaultPrevented&&s&&(e.preventDefault(),s()))},f),y.useEffect(()=>{if(u)return n&&(l.layersWithOutsidePointerEventsDisabled.size===0&&(Gr=f.body.style.pointerEvents,f.body.style.pointerEvents=`none`),l.layersWithOutsidePointerEventsDisabled.add(u)),l.layers.add(u),Qr(),()=>{n&&l.layersWithOutsidePointerEventsDisabled.size===1&&(f.body.style.pointerEvents=Gr)}},[u,f,n,l]),y.useEffect(()=>()=>{u&&(l.layers.delete(u),l.layersWithOutsidePointerEventsDisabled.delete(u),Qr())},[u,l]),y.useEffect(()=>{let e=()=>p({});return document.addEventListener(Hr,e),()=>document.removeEventListener(Hr,e)},[]),(0,z.jsx)(Lr.div,{...c,ref:m,style:{pointerEvents:b?x?`auto`:`none`:void 0,...e.style},onFocusCapture:Sr(e.onFocusCapture,C.onFocusCapture),onBlurCapture:Sr(e.onBlurCapture,C.onBlurCapture),onPointerDownCapture:Sr(e.onPointerDownCapture,S.onPointerDownCapture)})});qr.displayName=Vr;var Jr=`DismissableLayerBranch`,Yr=y.forwardRef((e,t)=>{let n=y.useContext(Kr),r=y.useRef(null),i=Tr(t,r);return y.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,z.jsx)(Lr.div,{...e,ref:i})});Yr.displayName=Jr;function Xr(e,t=globalThis?.document){let n=zr(e),r=y.useRef(!1),i=y.useRef(()=>{});return y.useEffect(()=>{let e=e=>{if(e.target&&!r.current){let r=function(){$r(Ur,n,a,{discrete:!0})},a={originalEvent:e};e.pointerType===`touch`?(t.removeEventListener(`click`,i.current),i.current=r,t.addEventListener(`click`,i.current,{once:!0})):r()}else t.removeEventListener(`click`,i.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener(`pointerdown`,e)},0);return()=>{window.clearTimeout(a),t.removeEventListener(`pointerdown`,e),t.removeEventListener(`click`,i.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function Zr(e,t=globalThis?.document){let n=zr(e),r=y.useRef(!1);return y.useEffect(()=>{let e=e=>{e.target&&!r.current&&$r(Wr,n,{originalEvent:e},{discrete:!1})};return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Qr(){let e=new CustomEvent(Hr);document.dispatchEvent(e)}function $r(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?Rr(i,a):i.dispatchEvent(a)}var ei=qr,ti=Yr,ni=globalThis?.document?y.useLayoutEffect:()=>{},ri=`Portal`,ii=y.forwardRef((e,t)=>{let{container:n,...r}=e,[i,a]=y.useState(!1);ni(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?xr.createPortal((0,z.jsx)(Lr.div,{...r,ref:t}),o):null});ii.displayName=ri;function ai(e,t){return y.useReducer((e,n)=>t[e][n]??e,e)}var oi=e=>{let{present:t,children:n}=e,r=si(t),i=typeof n==`function`?n({present:r.isPresent}):y.Children.only(n),a=Tr(r.ref,li(i));return typeof n==`function`||r.isPresent?y.cloneElement(i,{ref:a}):null};oi.displayName=`Presence`;function si(e){let[t,n]=y.useState(),r=y.useRef({}),i=y.useRef(e),a=y.useRef(`none`),[o,s]=ai(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return y.useEffect(()=>{let e=ci(r.current);a.current=o===`mounted`?e:`none`},[o]),ni(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=ci(t);e?s(`MOUNT`):o===`none`||t?.display===`none`?s(`UNMOUNT`):s(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,s]),ni(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=ci(r.current).includes(a.animationName);if(a.target===t&&o&&(s(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},c=e=>{e.target===t&&(a.current=ci(r.current))};return t.addEventListener(`animationstart`,c),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,c),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}s(`ANIMATION_END`)},[t,s]),{isPresent:[`mounted`,`unmountSuspended`].includes(o),ref:y.useCallback(e=>{e&&(r.current=getComputedStyle(e)),n(e)},[])}}function ci(e){return e?.animationName||`none`}function li(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 ui({prop:e,defaultProp:t,onChange:n=()=>{}}){let[r,i]=di({defaultProp:t,onChange:n}),a=e!==void 0,o=a?e:r,s=zr(n);return[o,y.useCallback(t=>{if(a){let n=typeof t==`function`?t(e):t;n!==e&&s(n)}else i(t)},[a,e,i,s])]}function di({defaultProp:e,onChange:t}){let n=y.useState(e),[r]=n,i=y.useRef(r),a=zr(t);return y.useEffect(()=>{i.current!==r&&(a(r),i.current=r)},[r,i,a]),n}var fi=`VisuallyHidden`,pi=y.forwardRef((e,t)=>(0,z.jsx)(Lr.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}}));pi.displayName=fi;var mi=`ToastProvider`,[hi,gi,_i]=Ir(`Toast`),[vi,yi]=Or(`Toast`,[_i]),[bi,xi]=vi(mi),Si=e=>{let{__scopeToast:t,label:n=`Notification`,duration:r=5e3,swipeDirection:i=`right`,swipeThreshold:a=50,children:o}=e,[s,c]=y.useState(null),[l,u]=y.useState(0),d=y.useRef(!1),f=y.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${mi}\`. Expected non-empty \`string\`.`),(0,z.jsx)(hi.Provider,{scope:t,children:(0,z.jsx)(bi,{scope:t,label:n,duration:r,swipeDirection:i,swipeThreshold:a,toastCount:l,viewport:s,onViewportChange:c,onToastAdd:y.useCallback(()=>u(e=>e+1),[]),onToastRemove:y.useCallback(()=>u(e=>e-1),[]),isFocusedToastEscapeKeyDownRef:d,isClosePausedRef:f,children:o})})};Si.displayName=mi;var Ci=`ToastViewport`,wi=[`F8`],Ti=`toast.viewportPause`,Ei=`toast.viewportResume`,Di=y.forwardRef((e,t)=>{let{__scopeToast:n,hotkey:r=wi,label:i=`Notifications ({hotkey})`,...a}=e,o=xi(Ci,n),s=gi(n),c=y.useRef(null),l=y.useRef(null),u=y.useRef(null),d=y.useRef(null),f=Tr(t,d,o.onViewportChange),p=r.join(`+`).replace(/Key/g,``).replace(/Digit/g,``),m=o.toastCount>0;y.useEffect(()=>{let e=e=>{r.length!==0&&r.every(t=>e[t]||e.code===t)&&d.current?.focus()};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)},[r]),y.useEffect(()=>{let e=c.current,t=d.current;if(m&&e&&t){let n=()=>{if(!o.isClosePausedRef.current){let e=new CustomEvent(Ti);t.dispatchEvent(e),o.isClosePausedRef.current=!0}},r=()=>{if(o.isClosePausedRef.current){let e=new CustomEvent(Ei);t.dispatchEvent(e),o.isClosePausedRef.current=!1}},i=t=>{e.contains(t.relatedTarget)||r()},a=()=>{e.contains(document.activeElement)||r()};return e.addEventListener(`focusin`,n),e.addEventListener(`focusout`,i),e.addEventListener(`pointermove`,n),e.addEventListener(`pointerleave`,a),window.addEventListener(`blur`,n),window.addEventListener(`focus`,r),()=>{e.removeEventListener(`focusin`,n),e.removeEventListener(`focusout`,i),e.removeEventListener(`pointermove`,n),e.removeEventListener(`pointerleave`,a),window.removeEventListener(`blur`,n),window.removeEventListener(`focus`,r)}}},[m,o.isClosePausedRef]);let h=y.useCallback(({tabbingDirection:e})=>{let t=s().map(t=>{let n=t.ref.current,r=[n,...ea(n)];return e===`forwards`?r:r.reverse()});return(e===`forwards`?t.reverse():t).flat()},[s]);return y.useEffect(()=>{let e=d.current;if(e){let t=t=>{let n=t.altKey||t.ctrlKey||t.metaKey;if(t.key===`Tab`&&!n){let n=document.activeElement,r=t.shiftKey;if(t.target===e&&r){l.current?.focus();return}let i=h({tabbingDirection:r?`backwards`:`forwards`}),a=i.findIndex(e=>e===n);ta(i.slice(a+1))?t.preventDefault():r?l.current?.focus():u.current?.focus()}};return e.addEventListener(`keydown`,t),()=>e.removeEventListener(`keydown`,t)}},[s,h]),(0,z.jsxs)(ti,{ref:c,role:`region`,"aria-label":i.replace(`{hotkey}`,p),tabIndex:-1,style:{pointerEvents:m?void 0:`none`},children:[m&&(0,z.jsx)(ki,{ref:l,onFocusFromOutsideViewport:()=>{ta(h({tabbingDirection:`forwards`}))}}),(0,z.jsx)(hi.Slot,{scope:n,children:(0,z.jsx)(Lr.ol,{tabIndex:-1,...a,ref:f})}),m&&(0,z.jsx)(ki,{ref:u,onFocusFromOutsideViewport:()=>{ta(h({tabbingDirection:`backwards`}))}})]})});Di.displayName=Ci;var Oi=`ToastFocusProxy`,ki=y.forwardRef((e,t)=>{let{__scopeToast:n,onFocusFromOutsideViewport:r,...i}=e,a=xi(Oi,n);return(0,z.jsx)(pi,{"aria-hidden":!0,tabIndex:0,...i,ref:t,style:{position:`fixed`},onFocus:e=>{let t=e.relatedTarget;a.viewport?.contains(t)||r()}})});ki.displayName=Oi;var Ai=`Toast`,ji=`toast.swipeStart`,Mi=`toast.swipeMove`,Ni=`toast.swipeCancel`,Pi=`toast.swipeEnd`,Fi=y.forwardRef((e,t)=>{let{forceMount:n,open:r,defaultOpen:i,onOpenChange:a,...o}=e,[s=!0,c]=ui({prop:r,defaultProp:i,onChange:a});return(0,z.jsx)(oi,{present:n||s,children:(0,z.jsx)(Ri,{open:s,...o,ref:t,onClose:()=>c(!1),onPause:zr(e.onPause),onResume:zr(e.onResume),onSwipeStart:Sr(e.onSwipeStart,e=>{e.currentTarget.setAttribute(`data-swipe`,`start`)}),onSwipeMove:Sr(e.onSwipeMove,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`move`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-move-y`,`${n}px`)}),onSwipeCancel:Sr(e.onSwipeCancel,e=>{e.currentTarget.setAttribute(`data-swipe`,`cancel`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-end-y`)}),onSwipeEnd:Sr(e.onSwipeEnd,e=>{let{x:t,y:n}=e.detail.delta;e.currentTarget.setAttribute(`data-swipe`,`end`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-x`),e.currentTarget.style.removeProperty(`--radix-toast-swipe-move-y`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-x`,`${t}px`),e.currentTarget.style.setProperty(`--radix-toast-swipe-end-y`,`${n}px`),c(!1)})})})});Fi.displayName=Ai;var[Ii,Li]=vi(Ai,{onClose(){}}),Ri=y.forwardRef((e,t)=>{let{__scopeToast:n,type:r=`foreground`,duration:i,open:a,onClose:o,onEscapeKeyDown:s,onPause:c,onResume:l,onSwipeStart:u,onSwipeMove:d,onSwipeCancel:f,onSwipeEnd:p,...m}=e,h=xi(Ai,n),[g,_]=y.useState(null),v=Tr(t,e=>_(e)),b=y.useRef(null),x=y.useRef(null),S=i||h.duration,C=y.useRef(0),w=y.useRef(S),T=y.useRef(0),{onToastAdd:E,onToastRemove:D}=h,O=zr(()=>{g?.contains(document.activeElement)&&h.viewport?.focus(),o()}),ee=y.useCallback(e=>{e&&e!==1/0&&(window.clearTimeout(T.current),C.current=new Date().getTime(),T.current=window.setTimeout(O,e))},[O]);y.useEffect(()=>{let e=h.viewport;if(e){let t=()=>{ee(w.current),l?.()},n=()=>{let e=new Date().getTime()-C.current;w.current-=e,window.clearTimeout(T.current),c?.()};return e.addEventListener(Ti,n),e.addEventListener(Ei,t),()=>{e.removeEventListener(Ti,n),e.removeEventListener(Ei,t)}}},[h.viewport,S,c,l,ee]),y.useEffect(()=>{a&&!h.isClosePausedRef.current&&ee(S)},[a,S,h.isClosePausedRef,ee]),y.useEffect(()=>(E(),()=>D()),[E,D]);let k=y.useMemo(()=>g?Yi(g):null,[g]);return h.viewport?(0,z.jsxs)(z.Fragment,{children:[k&&(0,z.jsx)(zi,{__scopeToast:n,role:`status`,"aria-live":r===`foreground`?`assertive`:`polite`,"aria-atomic":!0,children:k}),(0,z.jsx)(Ii,{scope:n,onClose:O,children:xr.createPortal((0,z.jsx)(hi.ItemSlot,{scope:n,children:(0,z.jsx)(ei,{asChild:!0,onEscapeKeyDown:Sr(s,()=>{h.isFocusedToastEscapeKeyDownRef.current||O(),h.isFocusedToastEscapeKeyDownRef.current=!1}),children:(0,z.jsx)(Lr.li,{role:`status`,"aria-live":`off`,"aria-atomic":!0,tabIndex:0,"data-state":a?`open`:`closed`,"data-swipe-direction":h.swipeDirection,...m,ref:v,style:{userSelect:`none`,touchAction:`none`,...e.style},onKeyDown:Sr(e.onKeyDown,e=>{e.key===`Escape`&&(s?.(e.nativeEvent),e.nativeEvent.defaultPrevented||(h.isFocusedToastEscapeKeyDownRef.current=!0,O()))}),onPointerDown:Sr(e.onPointerDown,e=>{e.button===0&&(b.current={x:e.clientX,y:e.clientY})}),onPointerMove:Sr(e.onPointerMove,e=>{if(!b.current)return;let t=e.clientX-b.current.x,n=e.clientY-b.current.y,r=!!x.current,i=[`left`,`right`].includes(h.swipeDirection),a=[`left`,`up`].includes(h.swipeDirection)?Math.min:Math.max,o=i?a(0,t):0,s=i?0:a(0,n),c=e.pointerType===`touch`?10:2,l={x:o,y:s},f={originalEvent:e,delta:l};r?(x.current=l,Xi(Mi,d,f,{discrete:!1})):Zi(l,h.swipeDirection,c)?(x.current=l,Xi(ji,u,f,{discrete:!1}),e.target.setPointerCapture(e.pointerId)):(Math.abs(t)>c||Math.abs(n)>c)&&(b.current=null)}),onPointerUp:Sr(e.onPointerUp,e=>{let t=x.current,n=e.target;if(n.hasPointerCapture(e.pointerId)&&n.releasePointerCapture(e.pointerId),x.current=null,b.current=null,t){let n=e.currentTarget,r={originalEvent:e,delta:t};Zi(t,h.swipeDirection,h.swipeThreshold)?Xi(Pi,p,r,{discrete:!0}):Xi(Ni,f,r,{discrete:!0}),n.addEventListener(`click`,e=>e.preventDefault(),{once:!0})}})})})}),h.viewport)})]}):null}),zi=e=>{let{__scopeToast:t,children:n,...r}=e,i=xi(Ai,t),[a,o]=y.useState(!1),[s,c]=y.useState(!1);return Qi(()=>o(!0)),y.useEffect(()=>{let e=window.setTimeout(()=>c(!0),1e3);return()=>window.clearTimeout(e)},[]),s?null:(0,z.jsx)(ii,{asChild:!0,children:(0,z.jsx)(pi,{...r,children:a&&(0,z.jsxs)(z.Fragment,{children:[i.label,` `,n]})})})},Bi=`ToastTitle`,Vi=y.forwardRef((e,t)=>{let{__scopeToast:n,...r}=e;return(0,z.jsx)(Lr.div,{...r,ref:t})});Vi.displayName=Bi;var Hi=`ToastDescription`,Ui=y.forwardRef((e,t)=>{let{__scopeToast:n,...r}=e;return(0,z.jsx)(Lr.div,{...r,ref:t})});Ui.displayName=Hi;var Wi=`ToastAction`,Gi=y.forwardRef((e,t)=>{let{altText:n,...r}=e;return n.trim()?(0,z.jsx)(Ji,{altText:n,asChild:!0,children:(0,z.jsx)(qi,{...r,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${Wi}\`. Expected non-empty \`string\`.`),null)});Gi.displayName=Wi;var Ki=`ToastClose`,qi=y.forwardRef((e,t)=>{let{__scopeToast:n,...r}=e,i=Li(Ki,n);return(0,z.jsx)(Ji,{asChild:!0,children:(0,z.jsx)(Lr.button,{type:`button`,...r,ref:t,onClick:Sr(e.onClick,i.onClose)})})});qi.displayName=Ki;var Ji=y.forwardRef((e,t)=>{let{__scopeToast:n,altText:r,...i}=e;return(0,z.jsx)(Lr.div,{"data-radix-toast-announce-exclude":``,"data-radix-toast-announce-alt":r||void 0,...i,ref:t})});function Yi(e){let t=[];return Array.from(e.childNodes).forEach(e=>{if(e.nodeType===e.TEXT_NODE&&e.textContent&&t.push(e.textContent),$i(e)){let n=e.ariaHidden||e.hidden||e.style.display===`none`,r=e.dataset.radixToastAnnounceExclude===``;if(!n){if(r){let n=e.dataset.radixToastAnnounceAlt;n&&t.push(n)}else t.push(...Yi(e))}}}),t}function Xi(e,t,n,{discrete:r}){let i=n.originalEvent.currentTarget,a=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?Rr(i,a):i.dispatchEvent(a)}var Zi=(e,t,n=0)=>{let r=Math.abs(e.x),i=Math.abs(e.y),a=r>i;return t===`left`||t===`right`?a&&r>n:!a&&i>n};function Qi(e=()=>{}){let t=zr(e);ni(()=>{let e=0,n=0;return e=window.requestAnimationFrame(()=>n=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(e),window.cancelAnimationFrame(n)}},[t])}function $i(e){return e.nodeType===e.ELEMENT_NODE}function ea(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function ta(e){let t=document.activeElement;return e.some(e=>e===t||(e.focus(),document.activeElement!==t))}var na=Si,ra=Di,ia=Fi,aa=Vi,oa=Ui,sa=Gi,ca=qi,la=e=>typeof e==`boolean`?`${e}`:e===0?`0`:e,ua=wn,da=(e,t)=>n=>{if(t?.variants==null)return ua(e,n?.class,n?.className);let{variants:r,defaultVariants:i}=t,a=Object.keys(r).map(e=>{let t=n?.[e],a=i?.[e];if(t===null)return null;let o=la(t)||la(a);return r[e][o]}),o=n&&Object.entries(n).reduce((e,t)=>{let[n,r]=t;return r===void 0||(e[n]=r),e},{});return ua(e,a,t?.compoundVariants?.reduce((e,t)=>{let{class:n,className:r,...a}=t;return Object.entries(a).every(e=>{let[t,n]=e;return Array.isArray(n)?n.includes({...i,...o}[t]):{...i,...o}[t]===n})?[...e,n,r]:e},[]),n?.class,n?.className)},fa=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),pa=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),ma={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`},ha=(0,y.forwardRef)(({color:e=`currentColor`,size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>(0,y.createElement)(`svg`,{ref:c,...ma,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:pa(`lucide`,i),...s},[...o.map(([e,t])=>(0,y.createElement)(e,t)),...Array.isArray(a)?a:[a]])),B=(e,t)=>{let n=(0,y.forwardRef)(({className:n,...r},i)=>(0,y.createElement)(ha,{ref:i,iconNode:t,className:pa(`lucide-${fa(e)}`,n),...r}));return n.displayName=`${e}`,n},ga=B(`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`}]]),_a=B(`AlignCenter`,[[`path`,{d:`M17 12H7`,key:`16if0g`}],[`path`,{d:`M19 18H5`,key:`18s9l3`}],[`path`,{d:`M21 6H3`,key:`1jwq7v`}]]),va=B(`AlignLeft`,[[`path`,{d:`M15 12H3`,key:`6jk70r`}],[`path`,{d:`M17 18H3`,key:`1amg6g`}],[`path`,{d:`M21 6H3`,key:`1jwq7v`}]]),ya=B(`AlignRight`,[[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M21 18H7`,key:`1ygte8`}],[`path`,{d:`M21 6H3`,key:`1jwq7v`}]]),ba=B(`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`}]]),xa=B(`ArrowLeft`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),Sa=B(`ArrowRight`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`m12 5 7 7-7 7`,key:`xquz4c`}]]),Ca=B(`ArrowUpRight`,[[`path`,{d:`M7 7h10v10`,key:`1tivn9`}],[`path`,{d:`M7 17 17 7`,key:`1vkiza`}]]),wa=B(`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`}]]),Ta=B(`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`}]]),Ea=B(`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`}]]),Da=B(`Binoculars`,[[`path`,{d:`M10 10h4`,key:`tcdvrf`}],[`path`,{d:`M19 7V4a1 1 0 0 0-1-1h-2a1 1 0 0 0-1 1v3`,key:`3apit1`}],[`path`,{d:`M20 21a2 2 0 0 0 2-2v-3.851c0-1.39-2-2.962-2-4.829V8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v11a2 2 0 0 0 2 2z`,key:`rhpgnw`}],[`path`,{d:`M 22 16 L 2 16`,key:`14lkq7`}],[`path`,{d:`M4 21a2 2 0 0 1-2-2v-3.851c0-1.39 2-2.962 2-4.829V8a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v11a2 2 0 0 1-2 2z`,key:`104b3k`}],[`path`,{d:`M9 7V4a1 1 0 0 0-1-1H6a1 1 0 0 0-1 1v3`,key:`14fczp`}]]),Oa=B(`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`}]]),ka=B(`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`}]]),Aa=B(`BookmarkCheck`,[[`path`,{d:`m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2Z`,key:`169p4p`}],[`path`,{d:`m9 10 2 2 4-4`,key:`1gnqz4`}]]),ja=B(`Bookmark`,[[`path`,{d:`m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z`,key:`1fy3hk`}]]),Ma=B(`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`}]]),Na=B(`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`}]]),Pa=B(`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`}]]),Fa=B(`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`}]]),Ia=B(`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`}]]),La=B(`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`}]]),Ra=B(`Check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),za=B(`ChevronDown`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),Ba=B(`ChevronLeft`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),Va=B(`ChevronRight`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),Ha=B(`ChevronUp`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),Ua=B(`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`}]]),Wa=B(`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`}]]),Ga=B(`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`}]]),Ka=B(`CircleCheckBig`,[[`path`,{d:`M21.801 10A10 10 0 1 1 17 3.335`,key:`yps3ct`}],[`path`,{d:`m9 11 3 3L22 4`,key:`1pflzl`}]]),qa=B(`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`}]]),Ja=B(`Clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`polyline`,{points:`12 6 12 12 16 14`,key:`68esgv`}]]),Ya=B(`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`}]]),Xa=B(`Cloud`,[[`path`,{d:`M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z`,key:`p7xjir`}]]),Za=B(`Code`,[[`polyline`,{points:`16 18 22 12 16 6`,key:`z7tu5w`}],[`polyline`,{points:`8 6 2 12 8 18`,key:`1eg1df`}]]),Qa=B(`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`}]]),$a=B(`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`}]]),eo=B(`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`}]]),to=B(`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`}]]),no=B(`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`}]]),ro=B(`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`}]]),io=B(`Facebook`,[[`path`,{d:`M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z`,key:`1jg4f8`}]]),ao=B(`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`}]]),oo=B(`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`}]]),so=B(`Gauge`,[[`path`,{d:`m12 14 4-4`,key:`9kzdfg`}],[`path`,{d:`M3.34 19a10 10 0 1 1 17.32 0`,key:`19p75a`}]]),co=B(`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`}]]),lo=B(`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`}]]),uo=B(`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`}]]),fo=B(`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`}]]),po=B(`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`}]]),mo=B(`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`}]]),ho=B(`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`}]]),go=B(`Info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),_o=B(`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`}]]),vo=B(`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`}]]),yo=B(`Landmark`,[[`line`,{x1:`3`,x2:`21`,y1:`22`,y2:`22`,key:`j8o0r`}],[`line`,{x1:`6`,x2:`6`,y1:`18`,y2:`11`,key:`10tf0k`}],[`line`,{x1:`10`,x2:`10`,y1:`18`,y2:`11`,key:`54lgf6`}],[`line`,{x1:`14`,x2:`14`,y1:`18`,y2:`11`,key:`380y`}],[`line`,{x1:`18`,x2:`18`,y1:`18`,y2:`11`,key:`1kevvc`}],[`polygon`,{points:`12 2 20 7 4 7`,key:`jkujk7`}]]),bo=B(`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`}]]),xo=B(`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`}]]),So=B(`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`}]]),Co=B(`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`}]]),wo=B(`LoaderCircle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),To=B(`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`}]]),Eo=B(`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`}]]),Do=B(`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`}]]),V=B(`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`}]]),Oo=B(`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`}]]),ko=B(`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`}]]),Ao=B(`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`}]]),H=B(`Mountain`,[[`path`,{d:`m8 3 4 8 5-5 5 15H2L8 3z`,key:`otkl63`}]]),jo=B(`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`}]]),Mo=B(`Navigation`,[[`polygon`,{points:`3 11 22 2 13 21 11 13 3 11`,key:`1ltx0t`}]]),No=B(`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`}]]),Po=B(`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`}]]),Fo=B(`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`}]]),Io=B(`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`}]]),Lo=B(`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`}]]),Ro=B(`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`}]]),zo=B(`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`}]]),Bo=B(`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`}]]),Vo=B(`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`}]]),Ho=B(`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`}]]),Uo=B(`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`}]]),Wo=B(`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`}]]),Go=B(`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`}]]),Ko=B(`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`}]]),qo=B(`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`}]]),Jo=B(`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`}]]),Yo=B(`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`}]]),Xo=B(`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`}]]),Zo=B(`TrainFront`,[[`path`,{d:`M8 3.1V7a4 4 0 0 0 8 0V3.1`,key:`1v71zp`}],[`path`,{d:`m9 15-1-1`,key:`1yrq24`}],[`path`,{d:`m15 15 1-1`,key:`1t0d6s`}],[`path`,{d:`M9 19c-2.8 0-5-2.2-5-5v-4a8 8 0 0 1 16 0v4c0 2.8-2.2 5-5 5Z`,key:`1p0hjs`}],[`path`,{d:`m8 19-2 3`,key:`13i0xs`}],[`path`,{d:`m16 19 2 3`,key:`xo31yx`}]]),Qo=B(`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`}]]),$o=B(`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`}]]),es=B(`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`}]]),ts=B(`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`}]]),ns=B(`Underline`,[[`path`,{d:`M6 4v6a6 6 0 0 0 12 0V4`,key:`9kb039`}],[`line`,{x1:`4`,x2:`20`,y1:`20`,y2:`20`,key:`nun2al`}]]),rs=B(`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`}]]),is=B(`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`}]]),as=B(`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`}]]),os=B(`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`}]]),ss=B(`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`}]]),cs=B(`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`}]]),ls=B(`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`}]]),us=B(`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`}]]),ds=B(`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`}]]),fs=B(`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`}]]),ps=B(`X`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),ms=na,hs=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(ra,{ref:n,className:R(`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}));hs.displayName=ra.displayName;var gs=da(`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`}}),_s=y.forwardRef(({className:e,variant:t,...n},r)=>(0,z.jsx)(ia,{ref:r,className:R(gs({variant:t}),e),...n}));_s.displayName=ia.displayName;var vs=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(sa,{ref:n,className:R(`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}));vs.displayName=sa.displayName;var ys=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(ca,{ref:n,className:R(`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:(0,z.jsx)(ps,{className:`h-4 w-4`})}));ys.displayName=ca.displayName;var bs=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(aa,{ref:n,className:R(`text-sm font-semibold`,e),...t}));bs.displayName=aa.displayName;var xs=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(oa,{ref:n,className:R(`text-sm opacity-90`,e),...t}));xs.displayName=oa.displayName;var Ss=1,Cs=0;function ws(){return Cs=(Cs+1)%Number.MAX_VALUE,Cs.toString()}var Ts={state:{toasts:[]},listeners:[],getState:()=>Ts.state,setState:e=>{Ts.state=typeof e==`function`?e(Ts.state):{...Ts.state,...e},Ts.listeners.forEach(e=>e(Ts.state))},subscribe:e=>(Ts.listeners.push(e),()=>{Ts.listeners=Ts.listeners.filter(t=>t!==e)})},Es=({...e})=>{let t=ws(),n=e=>Ts.setState(n=>({...n,toasts:n.toasts.map(n=>n.id===t?{...n,...e}:n)})),r=()=>Ts.setState(e=>({...e,toasts:e.toasts.filter(e=>e.id!==t)}));return Ts.setState(n=>({...n,toasts:[{...e,id:t,dismiss:r},...n.toasts].slice(0,Ss)})),{id:t,dismiss:r,update:n}};function Ds(){let[e,t]=(0,y.useState)(Ts.getState());return(0,y.useEffect)(()=>Ts.subscribe(e=>{t(e)}),[]),(0,y.useEffect)(()=>{let t=[];return e.toasts.forEach(e=>{if(e.duration===1/0)return;let n=setTimeout(()=>{e.dismiss()},e.duration||5e3);t.push(n)}),()=>{t.forEach(e=>clearTimeout(e))}},[e.toasts]),{toast:Es,toasts:e.toasts}}function Os(){let{toasts:e}=Ds();return(0,z.jsxs)(ms,{children:[e.map(({id:e,title:t,description:n,action:r,...i})=>(0,z.jsxs)(_s,{...i,children:[(0,z.jsxs)(`div`,{className:`grid gap-1`,children:[t&&(0,z.jsx)(bs,{children:t}),n&&(0,z.jsx)(xs,{children:n})]}),r,(0,z.jsx)(ys,{})]},e)),(0,z.jsx)(hs,{})]})}var ks=function(){return ks=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},ks.apply(this,arguments)};function As(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function js(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}function Ms(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var Ns=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),Ps=class extends Error{constructor(e,t=`FunctionsError`,n){super(e),this.name=t,this.context=n}toJSON(){return{name:this.name,message:this.message,context:this.context}}},Fs=class extends Ps{constructor(e){super(`Failed to send a request to the Edge Function`,`FunctionsFetchError`,e)}},Is=class extends Ps{constructor(e){super(`Relay Error invoking the Edge Function`,`FunctionsRelayError`,e)}},Ls=class extends Ps{constructor(e){super(`Edge Function returned a non-2xx status code`,`FunctionsHttpError`,e)}},Rs;(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`})(Rs||={});var zs=class{constructor(e,{headers:t={},customFetch:n,region:r=Rs.Any}={}){this.url=e,this.headers=t,this.region=r,this.fetch=Ns(n)}setAuth(e){this.headers.Authorization=`Bearer ${e}`}invoke(e){return js(this,arguments,void 0,function*(e,t={}){var n;let r,i,a;try{let{headers:n,method:o,body:s,signal:c,timeout:l}=t,u={},{region:d}=t;d||=this.region;let f=new URL(`${this.url}/${e}`);d&&d!==`any`&&(u[`x-region`]=d,f.searchParams.set(`forceFunctionRegion`,d));let p,m=!!n&&Object.keys(n).some(e=>e.toLowerCase()===`content-type`);s&&!m?typeof Blob<`u`&&s instanceof Blob||s instanceof ArrayBuffer?(u[`Content-Type`]=`application/octet-stream`,p=s):typeof s==`string`?(u[`Content-Type`]=`text/plain`,p=s):typeof FormData<`u`&&s instanceof FormData?p=s:(u[`Content-Type`]=`application/json`,p=JSON.stringify(s)):p=s&&typeof s!=`string`&&!(typeof Blob<`u`&&s instanceof Blob)&&!(s instanceof ArrayBuffer)&&!(typeof FormData<`u`&&s instanceof FormData)?JSON.stringify(s):s;let h=c;l&&(i=new AbortController,r=setTimeout(()=>i.abort(),l),c?(h=i.signal,a=()=>i.abort(),c.addEventListener(`abort`,a)):h=i.signal);let g=yield this.fetch(f.toString(),{method:o||`POST`,headers:Object.assign(Object.assign(Object.assign({},u),this.headers),n),body:p,signal:h}).catch(e=>{throw new Fs(e)}),_=g.headers.get(`x-relay-error`);if(_&&_===`true`)throw new Is(g);if(!g.ok)throw new Ls(g);let v=(g.headers.get(`Content-Type`)??`text/plain`).split(`;`)[0].trim().toLowerCase(),y;return y=v===`application/json`?yield g.json():v===`application/octet-stream`||v===`application/pdf`?yield g.blob():v===`text/event-stream`?g:v===`multipart/form-data`?yield g.formData():yield g.text(),{data:y,error:null,response:g}}catch(e){return{data:null,error:e,response:e instanceof Ls||e instanceof Is?e.context:void 0}}finally{r&&clearTimeout(r),a&&((n=t.signal)==null||n.removeEventListener(`abort`,a))}})}},Bs=c({Headers:()=>Gs,Request:()=>Ks,Response:()=>qs,default:()=>Ws,fetch:()=>Us}),Vs,Hs,Us,Ws,Gs,Ks,qs,Js=o((()=>{Vs=function(){if(typeof self<`u`)return self;if(typeof window<`u`)return window;if(typeof global<`u`)return global;throw Error(`unable to locate global object`)},Hs=Vs(),Us=Hs.fetch,Ws=Hs.fetch.bind(Hs),Gs=Hs.Headers,Ks=Hs.Request,qs=Hs.Response})),Ys=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=class extends Error{constructor(e){super(e.message),this.name=`PostgrestError`,this.details=e.details,this.hint=e.hint,this.code=e.code}}})),Xs=s(((e,t,n)=>{var r=n&&n.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});var i=r((Js(),d(Bs))),a=r(Ys());e.default=class{constructor(e){this.shouldThrowOnError=!1,this.method=e.method,this.url=e.url,this.headers=new Headers(e.headers),this.schema=e.schema,this.body=e.body,this.shouldThrowOnError=e.shouldThrowOnError??!1,this.signal=e.signal,this.isMaybeSingle=e.isMaybeSingle??!1,this.fetch=e.fetch?e.fetch:typeof fetch>`u`?i.default:fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(e,t){return this.headers=new Headers(this.headers),this.headers.set(e,t),this}then(e,t){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`);let n=this.fetch,r=n(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async e=>{let t=null,n=null,r=null,i=e.status,o=e.statusText;if(e.ok){if(this.method!==`HEAD`){let t=await e.text();t===``||(n=this.headers.get(`Accept`)===`text/csv`||this.headers.get(`Accept`)&&this.headers.get(`Accept`)?.includes(`application/vnd.pgrst.plan+text`)?t:JSON.parse(t))}let a=this.headers.get(`Prefer`)?.match(/count=(exact|planned|estimated)/),s=e.headers.get(`content-range`)?.split(`/`);a&&s&&s.length>1&&(r=parseInt(s[1])),this.isMaybeSingle&&this.method===`GET`&&Array.isArray(n)&&(n.length>1?(t={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,r=null,i=406,o=`Not Acceptable`):n=n.length===1?n[0]:null)}else{let r=await e.text();try{t=JSON.parse(r),Array.isArray(t)&&e.status===404&&(n=[],t=null,i=200,o=`OK`)}catch{e.status===404&&r===``?(i=204,o=`No Content`):t={message:r}}if(t&&this.isMaybeSingle&&(t?.details)?.includes(`0 rows`)&&(t=null,i=200,o=`OK`),t&&this.shouldThrowOnError)throw new a.default(t)}return{error:t,data:n,count:r,status:i,statusText:o}});return this.shouldThrowOnError||(r=r.catch(e=>({error:{message:`${e?.name??`FetchError`}: ${e?.message}`,details:`${e?.stack??``}`,hint:``,code:`${e?.code??``}`},data:null,count:null,status:0,statusText:``}))),r.then(e,t)}returns(){return this}overrideTypes(){return this}}})),Zs=s(((e,t,n)=>{var r=n&&n.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});var i=r(Xs());e.default=class extends i.default{select(e){let t=!1,n=(e??`*`).split(``).map(e=>/\s/.test(e)&&!t?``:(e===`"`&&(t=!t),e)).join(``);return this.url.searchParams.set(`select`,n),this.headers.append(`Prefer`,`return=representation`),this}order(e,{ascending:t=!0,nullsFirst:n,foreignTable:r,referencedTable:i=r}={}){let a=i?`${i}.order`:`order`,o=this.url.searchParams.get(a);return this.url.searchParams.set(a,`${o?`${o},`:``}${e}.${t?`asc`:`desc`}${n===void 0?``:n?`.nullsfirst`:`.nullslast`}`),this}limit(e,{foreignTable:t,referencedTable:n=t}={}){let r=n===void 0?`limit`:`${n}.limit`;return this.url.searchParams.set(r,`${e}`),this}range(e,t,{foreignTable:n,referencedTable:r=n}={}){let i=r===void 0?`offset`:`${r}.offset`,a=r===void 0?`limit`:`${r}.limit`;return this.url.searchParams.set(i,`${e}`),this.url.searchParams.set(a,`${t-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.set(`Accept`,`application/vnd.pgrst.object+json`),this}maybeSingle(){return this.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:e=!1,verbose:t=!1,settings:n=!1,buffers:r=!1,wal:i=!1,format:a=`text`}={}){let o=[e?`analyze`:null,t?`verbose`:null,n?`settings`:null,r?`buffers`:null,i?`wal`:null].filter(Boolean).join(`|`),s=this.headers.get(`Accept`)??`application/json`;return this.headers.set(`Accept`,`application/vnd.pgrst.plan+${a}; for="${s}"; options=${o};`),this}rollback(){return this.headers.append(`Prefer`,`tx=rollback`),this}returns(){return this}maxAffected(e){return this.headers.append(`Prefer`,`handling=strict`),this.headers.append(`Prefer`,`max-affected=${e}`),this}}})),Qs=s(((e,t,n)=>{var r=n&&n.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});var i=r(Zs());e.default=class extends i.default{eq(e,t){return this.url.searchParams.append(e,`eq.${t}`),this}neq(e,t){return this.url.searchParams.append(e,`neq.${t}`),this}gt(e,t){return this.url.searchParams.append(e,`gt.${t}`),this}gte(e,t){return this.url.searchParams.append(e,`gte.${t}`),this}lt(e,t){return this.url.searchParams.append(e,`lt.${t}`),this}lte(e,t){return this.url.searchParams.append(e,`lte.${t}`),this}like(e,t){return this.url.searchParams.append(e,`like.${t}`),this}likeAllOf(e,t){return this.url.searchParams.append(e,`like(all).{${t.join(`,`)}}`),this}likeAnyOf(e,t){return this.url.searchParams.append(e,`like(any).{${t.join(`,`)}}`),this}ilike(e,t){return this.url.searchParams.append(e,`ilike.${t}`),this}ilikeAllOf(e,t){return this.url.searchParams.append(e,`ilike(all).{${t.join(`,`)}}`),this}ilikeAnyOf(e,t){return this.url.searchParams.append(e,`ilike(any).{${t.join(`,`)}}`),this}is(e,t){return this.url.searchParams.append(e,`is.${t}`),this}in(e,t){let n=Array.from(new Set(t)).map(e=>typeof e==`string`&&RegExp(`[,()]`).test(e)?`"${e}"`:`${e}`).join(`,`);return this.url.searchParams.append(e,`in.(${n})`),this}contains(e,t){return typeof t==`string`?this.url.searchParams.append(e,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cs.{${t.join(`,`)}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(t)}`),this}containedBy(e,t){return typeof t==`string`?this.url.searchParams.append(e,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cd.{${t.join(`,`)}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(t)}`),this}rangeGt(e,t){return this.url.searchParams.append(e,`sr.${t}`),this}rangeGte(e,t){return this.url.searchParams.append(e,`nxl.${t}`),this}rangeLt(e,t){return this.url.searchParams.append(e,`sl.${t}`),this}rangeLte(e,t){return this.url.searchParams.append(e,`nxr.${t}`),this}rangeAdjacent(e,t){return this.url.searchParams.append(e,`adj.${t}`),this}overlaps(e,t){return typeof t==`string`?this.url.searchParams.append(e,`ov.${t}`):this.url.searchParams.append(e,`ov.{${t.join(`,`)}}`),this}textSearch(e,t,{config:n,type:r}={}){let i=``;r===`plain`?i=`pl`:r===`phrase`?i=`ph`:r===`websearch`&&(i=`w`);let a=n===void 0?``:`(${n})`;return this.url.searchParams.append(e,`${i}fts${a}.${t}`),this}match(e){return Object.entries(e).forEach(([e,t])=>{this.url.searchParams.append(e,`eq.${t}`)}),this}not(e,t,n){return this.url.searchParams.append(e,`not.${t}.${n}`),this}or(e,{foreignTable:t,referencedTable:n=t}={}){let r=n?`${n}.or`:`or`;return this.url.searchParams.append(r,`(${e})`),this}filter(e,t,n){return this.url.searchParams.append(e,`${t}.${n}`),this}}})),$s=s(((e,t,n)=>{var r=n&&n.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});var i=r(Qs());e.default=class{constructor(e,{headers:t={},schema:n,fetch:r}){this.url=e,this.headers=new Headers(t),this.schema=n,this.fetch=r}select(e,{head:t=!1,count:n}={}){let r=t?`HEAD`:`GET`,a=!1,o=(e??`*`).split(``).map(e=>/\s/.test(e)&&!a?``:(e===`"`&&(a=!a),e)).join(``);return this.url.searchParams.set(`select`,o),n&&this.headers.append(`Prefer`,`count=${n}`),new i.default({method:r,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch})}insert(e,{count:t,defaultToNull:n=!0}={}){if(t&&this.headers.append(`Prefer`,`count=${t}`),n||this.headers.append(`Prefer`,`missing=default`),Array.isArray(e)){let t=e.reduce((e,t)=>e.concat(Object.keys(t)),[]);if(t.length>0){let e=[...new Set(t)].map(e=>`"${e}"`);this.url.searchParams.set(`columns`,e.join(`,`))}}return new i.default({method:`POST`,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch??fetch})}upsert(e,{onConflict:t,ignoreDuplicates:n=!1,count:r,defaultToNull:a=!0}={}){if(this.headers.append(`Prefer`,`resolution=${n?`ignore`:`merge`}-duplicates`),t!==void 0&&this.url.searchParams.set(`on_conflict`,t),r&&this.headers.append(`Prefer`,`count=${r}`),a||this.headers.append(`Prefer`,`missing=default`),Array.isArray(e)){let t=e.reduce((e,t)=>e.concat(Object.keys(t)),[]);if(t.length>0){let e=[...new Set(t)].map(e=>`"${e}"`);this.url.searchParams.set(`columns`,e.join(`,`))}}return new i.default({method:`POST`,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch??fetch})}update(e,{count:t}={}){return t&&this.headers.append(`Prefer`,`count=${t}`),new i.default({method:`PATCH`,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch??fetch})}delete({count:e}={}){return e&&this.headers.append(`Prefer`,`count=${e}`),new i.default({method:`DELETE`,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch??fetch})}}})),ec=s(((e,t,n)=>{var r=n&&n.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});var i=r($s()),a=r(Qs());e.default=class e{constructor(e,{headers:t={},schema:n,fetch:r}={}){this.url=e,this.headers=new Headers(t),this.schemaName=n,this.fetch=r}from(e){let t=new URL(`${this.url}/${e}`);return new i.default(t,{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch})}schema(t){return new e(this.url,{headers:this.headers,schema:t,fetch:this.fetch})}rpc(e,t={},{head:n=!1,get:r=!1,count:i}={}){let o,s=new URL(`${this.url}/rpc/${e}`),c;n||r?(o=n?`HEAD`:`GET`,Object.entries(t).filter(([e,t])=>t!==void 0).map(([e,t])=>[e,Array.isArray(t)?`{${t.join(`,`)}}`:`${t}`]).forEach(([e,t])=>{s.searchParams.append(e,t)})):(o=`POST`,c=t);let l=new Headers(this.headers);return i&&l.set(`Prefer`,`count=${i}`),new a.default({method:o,url:s,headers:l,schema:this.schemaName,body:c,fetch:this.fetch??fetch})}}})),{PostgrestClient:tc,PostgrestQueryBuilder:nc,PostgrestFilterBuilder:rc,PostgrestTransformBuilder:ic,PostgrestBuilder:eee,PostgrestError:ac}=u(s(((e,t,n)=>{var r=n&&n.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.PostgrestError=e.PostgrestBuilder=e.PostgrestTransformBuilder=e.PostgrestFilterBuilder=e.PostgrestQueryBuilder=e.PostgrestClient=void 0;var i=r(ec());e.PostgrestClient=i.default;var a=r($s());e.PostgrestQueryBuilder=a.default;var o=r(Qs());e.PostgrestFilterBuilder=o.default;var s=r(Zs());e.PostgrestTransformBuilder=s.default;var c=r(Xs());e.PostgrestBuilder=c.default;var l=r(Ys());e.PostgrestError=l.default,e.default={PostgrestClient:i.default,PostgrestQueryBuilder:a.default,PostgrestFilterBuilder:o.default,PostgrestTransformBuilder:s.default,PostgrestBuilder:c.default,PostgrestError:l.default}}))(),1).default,oc=class{constructor(){}static detectEnvironment(){if(typeof WebSocket<`u`)return{type:`native`,wsConstructor:WebSocket};let e=globalThis;if(typeof globalThis<`u`&&e.WebSocket!==void 0)return{type:`native`,wsConstructor:e.WebSocket};let t=typeof global<`u`?global:void 0;if(t&&t.WebSocket!==void 0)return{type:`native`,wsConstructor:t.WebSocket};if(typeof globalThis<`u`&&e.WebSocketPair!==void 0&&globalThis.WebSocket===void 0)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`&&e.EdgeRuntime||typeof navigator<`u`&&navigator.userAgent?.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.`};let n=globalThis.process;if(n){let e=n.versions;if(e&&e.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(){let e=this.detectEnvironment();if(e.wsConstructor)return e.wsConstructor;let t=e.error||`WebSocket not supported in this environment.`;throw e.workaround&&(t+=`\n\nSuggested solution: ${e.workaround}`),Error(t)}static isWebSocketSupported(){try{return this.detectEnvironment().type===`native`}catch{return!1}}},sc=`realtime-js/2.112.4`,cc=`1.0.0`,lc=`2.0.0`,uc=lc,dc=1e4,fc={closed:`closed`,errored:`errored`,joined:`joined`,joining:`joining`,leaving:`leaving`},pc={close:`phx_close`,error:`phx_error`,join:`phx_join`,reply:`phx_reply`,leave:`phx_leave`,access_token:`access_token`},mc={connecting:`connecting`,open:`open`,closing:`closing`,closed:`closed`},hc=class{constructor(e){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=e??[]}encode(e,t){if(e.event===this.BROADCAST_EVENT&&!(e.payload instanceof ArrayBuffer)&&typeof e.payload.event==`string`)return t(this._binaryEncodeUserBroadcastPush(e));let n=[e.join_ref,e.ref,e.topic,e.event,e.payload];return t(JSON.stringify(n))}_binaryEncodeUserBroadcastPush(e){return this._isArrayBuffer(e.payload?.payload)?this._encodeBinaryUserBroadcastPush(e):this._encodeJsonUserBroadcastPush(e)}_encodeBinaryUserBroadcastPush(e){let t=e.payload?.payload??new ArrayBuffer(0);return this._encodeUserBroadcastPush(e,this.BINARY_ENCODING,t)}_encodeJsonUserBroadcastPush(e){let t=e.payload?.payload??{},n=new TextEncoder().encode(JSON.stringify(t)).buffer;return this._encodeUserBroadcastPush(e,this.JSON_ENCODING,n)}_encodeUserBroadcastPush(e,t,n){let r=new TextEncoder,i=r.encode(e.topic),a=r.encode(e.ref??``),o=r.encode(e.join_ref??``),s=r.encode(e.payload.event),c=this.allowedMetadataKeys?this._pick(e.payload,this.allowedMetadataKeys):{},l=r.encode(Object.keys(c).length===0?``:JSON.stringify(c));if(o.length>255)throw Error(`joinRef length ${o.length} exceeds maximum of 255`);if(a.length>255)throw Error(`ref length ${a.length} exceeds maximum of 255`);if(i.length>255)throw Error(`topic length ${i.length} exceeds maximum of 255`);if(s.length>255)throw Error(`userEvent length ${s.length} exceeds maximum of 255`);if(l.length>255)throw Error(`metadata length ${l.length} exceeds maximum of 255`);let u=this.USER_BROADCAST_PUSH_META_LENGTH+o.length+a.length+i.length+s.length+l.length,d=new ArrayBuffer(this.HEADER_LENGTH+u),f=new DataView(d),p=new Uint8Array(d),m=0;f.setUint8(m++,this.KINDS.userBroadcastPush),f.setUint8(m++,o.length),f.setUint8(m++,a.length),f.setUint8(m++,i.length),f.setUint8(m++,s.length),f.setUint8(m++,l.length),f.setUint8(m++,t),p.set(o,m),m+=o.length,p.set(a,m),m+=a.length,p.set(i,m),m+=i.length,p.set(s,m),m+=s.length,p.set(l,m),m+=l.length;var h=new Uint8Array(d.byteLength+n.byteLength);return h.set(new Uint8Array(d),0),h.set(new Uint8Array(n),d.byteLength),h.buffer}decode(e,t){if(this._isArrayBuffer(e))return t(this._binaryDecode(e));if(typeof e==`string`){let[n,r,i,a,o]=JSON.parse(e);return t({join_ref:n,ref:r,topic:i,event:a,payload:o})}return t({})}_binaryDecode(e){let t=new DataView(e),n=t.getUint8(0),r=new TextDecoder;switch(n){case this.KINDS.userBroadcast:return this._decodeUserBroadcast(e,t,r)}}_decodeUserBroadcast(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=t.getUint8(3),o=t.getUint8(4),s=this.HEADER_LENGTH+4,c=n.decode(e.slice(s,s+r));s+=r;let l=n.decode(e.slice(s,s+i));s+=i;let u=n.decode(e.slice(s,s+a));s+=a;let d=e.slice(s,e.byteLength),f=o===this.JSON_ENCODING?JSON.parse(n.decode(d)):d,p={type:this.BROADCAST_EVENT,event:l,payload:f};return a>0&&(p.meta=JSON.parse(u)),{join_ref:null,ref:null,topic:c,event:this.BROADCAST_EVENT,payload:p}}_isArrayBuffer(e){return e instanceof ArrayBuffer||e?.constructor?.name===`ArrayBuffer`}_pick(e,t){return!e||typeof e!=`object`?{}:Object.fromEntries(Object.entries(e).filter(([e])=>t.includes(e)))}},gc;(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`})(gc||={});var _c=(e,t,n={})=>{let r=n.skipTypes??[];return t?Object.keys(t).reduce((n,i)=>(n[i]=vc(i,e,t,r),n),{}):{}},vc=(e,t,n,r)=>{let i=t.find(t=>t.name===e)?.type,a=n[e];return i&&!r.includes(i)?yc(i,a):bc(a)},yc=(e,t)=>{if(e.charAt(0)===`_`)return Cc(t,e.slice(1,e.length));switch(e){case gc.bool:return U(t);case gc.float4:case gc.float8:case gc.int2:case gc.int4:case gc.int8:case gc.numeric:case gc.oid:return xc(t);case gc.json:case gc.jsonb:return Sc(t);case gc.timestamp:return wc(t);case gc.abstime:case gc.date:case gc.daterange:case gc.int4range:case gc.int8range:case gc.money:case gc.reltime:case gc.text:case gc.time:case gc.timestamptz:case gc.timetz:case gc.tsrange:case gc.tstzrange:return bc(t);default:return bc(t)}},bc=e=>e,U=e=>{switch(e){case`t`:return!0;case`f`:return!1;default:return e}},xc=e=>{if(typeof e==`string`){let t=parseFloat(e);if(!Number.isNaN(t))return t}return e},Sc=e=>{if(typeof e==`string`)try{return JSON.parse(e)}catch{return e}return e},Cc=(e,t)=>{if(typeof e!=`string`)return e;let n=e.length-1,r=e[n];if(e[0]===`{`&&r===`}`){let r,i=e.slice(1,n);try{r=JSON.parse(`[`+i+`]`)}catch{r=i?i.split(`,`):[]}return r.map(e=>yc(t,e))}return e},wc=e=>typeof e==`string`?e.replace(` `,`T`):e,Tc=e=>{let 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+=`/api/broadcast`,t.href},Ec=e=>typeof e==`function`?e:function(){return e},Dc=typeof self<`u`?self:null,Oc=typeof window<`u`?window:null,kc=Dc||Oc||globalThis,Ac=`2.0.0`,jc=1e4,Mc=1e3,Nc=100,Pc={connecting:0,open:1,closing:2,closed:3},Fc={closed:`closed`,errored:`errored`,joined:`joined`,joining:`joining`,leaving:`leaving`},Ic={close:`phx_close`,error:`phx_error`,join:`phx_join`,reply:`phx_reply`,leave:`phx_leave`},Lc={longpoll:`longpoll`,websocket:`websocket`},Rc={complete:4},zc=`base64url.bearer.phx.`,Bc=class{constructor(e,t,n,r){this.channel=e,this.event=t,this.payload=n||function(){return{}},this.receivedResp=null,this.timeout=r,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(t=>t.status===e).forEach(e=>e.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})}},Vc=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+=1,this.callback()},this.timerCalc(this.tries+1))}},Hc=class{constructor(e,t,n){this.state=Fc.closed,this.topic=e,this.params=Ec(t||{}),this.socket=n,this.bindings=[],this.bindingRef=0,this.timeout=this.socket.timeout,this.joinedOnce=!1,this.joinPush=new Bc(this,Ic.join,this.params,this.timeout),this.pushBuffer=[],this.stateChangeRefs=[],this.rejoinTimer=new Vc(()=>{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=Fc.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(e=>e.send()),this.pushBuffer=[]}),this.joinPush.receive(`error`,e=>{this.state=Fc.errored,this.socket.hasLogger()&&this.socket.log(`channel`,`error ${this.topic}`,e),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.onClose(()=>{this.rejoinTimer.reset(),this.socket.hasLogger()&&this.socket.log(`channel`,`close ${this.topic}`),this.state=Fc.closed,this.socket.remove(this)}),this.onError(e=>{this.socket.hasLogger()&&this.socket.log(`channel`,`error ${this.topic}`,e),this.isJoining()&&this.joinPush.reset(),this.state=Fc.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 Bc(this,Ic.leave,Ec({}),this.timeout).send(),this.state=Fc.errored,this.joinPush.reset(),this.socket.isConnected()&&this.rejoinTimer.scheduleTimeout()}),this.on(Ic.reply,(e,t)=>{this.trigger(this.replyEventName(t),e)})}join(e=this.timeout){if(this.joinedOnce)throw 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=Fc.closed,this.bindings=[]}onClose(e){this.on(Ic.close,e)}onError(e){return this.on(Ic.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||t!==void 0&&t!==n.ref)}canPush(){return this.socket.isConnected()&&this.isJoined()}push(e,t,n=this.timeout){if(t||={},!this.joinedOnce)throw Error(`tried to push '${e}' to '${this.topic}' before joining. Use channel.join() before pushing events`);let r=new Bc(this,e,function(){return t},n);return this.canPush()?r.send():(r.startTimeout(),this.pushBuffer.push(r)),r}leave(e=this.timeout){this.rejoinTimer.reset(),this.joinPush.cancelTimeout(),this.state=Fc.leaving;let t=()=>{this.socket.hasLogger()&&this.socket.log(`channel`,`leave ${this.topic}`),this.trigger(Ic.close,`leave`)},n=new Bc(this,Ic.leave,Ec({}),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,r){return this.topic===e?r&&r!==this.joinRef()?(this.socket.hasLogger()&&this.socket.log(`channel`,`dropping outdated message`,{topic:e,event:t,payload:n,joinRef:r}),!1):!0:!1}joinRef(){return this.joinPush.ref}rejoin(e=this.timeout){this.isLeaving()||(this.socket.leaveOpenTopic(this.topic),this.state=Fc.joining,this.joinPush.resend(e))}trigger(e,t,n,r){let i=this.onMessage(e,t,n,r);if(t&&!i)throw Error(`channel onMessage callbacks must return the payload, modified or unmodified`);let a=this.bindings.filter(r=>r.event===e&&this.filterBindings(r,t,n));for(let e=0;e<a.length;e++)a[e].callback(i,n,r||this.joinRef())}replyEventName(e){return`chan_reply_${e}`}isClosed(){return this.state===Fc.closed}isErrored(){return this.state===Fc.errored}isJoined(){return this.state===Fc.joined}isJoining(){return this.state===Fc.joining}isLeaving(){return this.state===Fc.leaving}},Uc=class{static request(e,t,n,r,i,a,o){if(kc.XDomainRequest){let n=new kc.XDomainRequest;return this.xdomainRequest(n,e,t,r,i,a,o)}if(kc.XMLHttpRequest){let s=new kc.XMLHttpRequest;return this.xhrRequest(s,e,t,n,r,i,a,o)}if(kc.fetch&&kc.AbortController)return this.fetchRequest(e,t,n,r,i,a,o);throw Error(`No suitable XMLHttpRequest implementation found`)}static fetchRequest(e,t,n,r,i,a,o){let s={method:e,headers:n,body:r},c=null;return i&&(c=new AbortController,setTimeout(()=>c.abort(),i),s.signal=c.signal),kc.fetch(t,s).then(e=>e.text()).then(e=>this.parseJSON(e)).then(e=>o&&o(e)).catch(e=>{e.name===`AbortError`&&a?a():o&&o(null)}),c}static xdomainRequest(e,t,n,r,i,a,o){return e.timeout=i,e.open(t,n),e.onload=()=>{let t=this.parseJSON(e.responseText);o&&o(t)},a&&(e.ontimeout=a),e.onprogress=()=>{},e.send(r),e}static xhrRequest(e,t,n,r,i,a,o,s){e.open(t,n,!0),e.timeout=a;for(let[t,n]of Object.entries(r))e.setRequestHeader(t,n);return e.onerror=()=>s&&s(null),e.onreadystatechange=()=>{e.readyState===Rc.complete&&s&&s(this.parseJSON(e.responseText))},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 r in e){if(!Object.prototype.hasOwnProperty.call(e,r))continue;let i=t?`${t}[${r}]`:r,a=e[r];typeof a==`object`?n.push(this.serialize(a,i)):n.push(encodeURIComponent(i)+`=`+encodeURIComponent(a))}return n.join(`&`)}static appendParams(e,t){return Object.keys(t).length===0?e:`${e}${e.match(/\?/)?`&`:`?`}${this.serialize(t)}`}},Wc=e=>{let t=``,n=new Uint8Array(e),r=n.byteLength;for(let e=0;e<r;e++)t+=String.fromCharCode(n[e]);return btoa(t)},Gc=class{constructor(e,t){t&&t.length===2&&t[1].startsWith(zc)&&(this.authToken=atob(t[1].slice(zc.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=Pc.connecting,setTimeout(()=>this.poll(),0)}normalizeEndpoint(e){return e.replace(`ws://`,`http://`).replace(`wss://`,`https://`).replace(RegExp(`(.*)/`+Lc.websocket),`$1/`+Lc.longpoll)}endpointURL(){return Uc.appendParams(this.pollEndpoint,{token:this.token})}closeAndRetry(e,t,n){this.close(e,t,n),this.readyState=Pc.connecting}ontimeout(){this.onerror(`timeout`),this.closeAndRetry(1005,`timeout`,!1)}isActive(){return this.readyState===Pc.open||this.readyState===Pc.connecting}poll(){let e={Accept:`application/json`};this.authToken&&(e[`X-Phoenix-AuthToken`]=this.authToken),this.ajax(`GET`,e,null,()=>this.ontimeout(),e=>{if(e){var{status:t,token:n,messages:r}=e;if(t===410&&this.token!==null){this.onerror(410),this.closeAndRetry(3410,`session_gone`,!1);return}this.token=n}else t=0;switch(t){case 200:r.forEach(e=>{setTimeout(()=>this.onmessage({data:e}),0)}),this.poll();break;case 204:this.poll();break;case 410:this.readyState=Pc.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 Error(`unhandled poll status ${t}`)}})}send(e){typeof e!=`string`&&(e=Wc(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;let n=t+Nc,r=e.slice(t,n);this.ajax(`POST`,{"Content-Type":`application/x-ndjson`},r.join(`
`),()=>this.onerror(`timeout`),t=>{!t||t.status!==200?(this.awaitingBatchAck=!1,this.onerror(t&&t.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 e of this.reqs)e.abort();this.readyState=Pc.closed;let r=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`,r)):this.onclose(r)}ajax(e,t,n,r,i){let a;a=Uc.request(e,this.endpointURL(),t,n,this.timeout,()=>{this.reqs.delete(a),r()},e=>{this.reqs.delete(a),this.isActive()&&i(e)}),this.reqs.add(a)}},Kc=class e{constructor(t,n={}){let r=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(r.state,t=>{let{onJoin:n,onLeave:r,onSync:i}=this.caller;this.joinRef=this.channel.joinRef(),this.state=e.syncState(this.state,t,n,r),this.pendingDiffs.forEach(t=>{this.state=e.syncDiff(this.state,t,n,r)}),this.pendingDiffs=[],i()}),this.channel.on(r.diff,t=>{let{onJoin:n,onLeave:r,onSync:i}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(t):(this.state=e.syncDiff(this.state,t,n,r),i())})}onJoin(e){this.caller.onJoin=e}onLeave(e){this.caller.onLeave=e}onSync(e){this.caller.onSync=e}list(t){return e.list(this.state,t)}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel.joinRef()}static syncState(e,t,n,r){let i=this.toNullProtoObj(this.clone(e));t=this.toNullProtoObj(t);let a=Object.create(null),o=Object.create(null);return this.map(i,(e,n)=>{t[e]||(o[e]=n)}),this.map(t,(e,t)=>{let n=i[e];if(n){let r=t.metas.map(e=>e.phx_ref),i=n.metas.map(e=>e.phx_ref),s=t.metas.filter(e=>i.indexOf(e.phx_ref)<0),c=n.metas.filter(e=>r.indexOf(e.phx_ref)<0);s.length>0&&(a[e]=t,a[e].metas=s),c.length>0&&(o[e]=this.clone(n),o[e].metas=c)}else a[e]=t}),this.syncDiff(i,{joins:a,leaves:o},n,r)}static syncDiff(e,t,n,r){e=this.toNullProtoObj(e);let{joins:i,leaves:a}=this.clone(t);return n||=function(){},r||=function(){},this.map(i,(t,r)=>{let i=e[t];if(e[t]=this.clone(r),i){let n=e[t].metas.map(e=>e.phx_ref),r=i.metas.filter(e=>n.indexOf(e.phx_ref)<0);e[t].metas.unshift(...r)}n(t,i,r)}),this.map(a,(t,n)=>{let i=e[t];if(!i)return;let a=n.metas.map(e=>e.phx_ref);i.metas=i.metas.filter(e=>a.indexOf(e.phx_ref)<0),r(t,i,n),i.metas.length===0&&delete e[t]}),e}static list(e,t){return t||=function(e,t){return t},this.map(e,(e,n)=>t(e,n))}static map(e,t){return Object.getOwnPropertyNames(e).map(n=>t(n,e[n]))}static toNullProtoObj(e){if(Object.getPrototypeOf(e)===null)return e;let t=Object.create(null);return Object.getOwnPropertyNames(e).forEach(n=>{t[n]=e[n]}),t}static clone(e){return JSON.parse(JSON.stringify(e))}},qc={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,r,i,a,o]=JSON.parse(e);return t({join_ref:n,ref:r,topic:i,event:a,payload:o})}},binaryEncode(e){let{join_ref:t,ref:n,event:r,topic:i,payload:a}=e,o=new TextEncoder,s=o.encode(t),c=o.encode(n),l=o.encode(i),u=o.encode(r);this.assertFieldSize(s.byteLength,`join_ref`),this.assertFieldSize(c.byteLength,`ref`),this.assertFieldSize(l.byteLength,`topic`),this.assertFieldSize(u.byteLength,`event`);let d=this.META_LENGTH+s.byteLength+c.byteLength+l.byteLength+u.byteLength,f=new ArrayBuffer(this.HEADER_LENGTH+d),p=new Uint8Array(f),m=new DataView(f),h=0;m.setUint8(h++,this.KINDS.push),m.setUint8(h++,s.byteLength),m.setUint8(h++,c.byteLength),m.setUint8(h++,l.byteLength),m.setUint8(h++,u.byteLength),p.set(s,h),h+=s.byteLength,p.set(c,h),h+=c.byteLength,p.set(l,h),h+=l.byteLength,p.set(u,h),h+=u.byteLength;var g=new Uint8Array(f.byteLength+a.byteLength);return g.set(p,0),g.set(new Uint8Array(a),f.byteLength),g.buffer},assertFieldSize(e,t){if(e>255)throw 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),r=new TextDecoder;switch(n){case this.KINDS.push:return this.decodePush(e,t,r);case this.KINDS.reply:return this.decodeReply(e,t,r);case this.KINDS.broadcast:return this.decodeBroadcast(e,t,r)}},decodePush(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=t.getUint8(3),o=this.HEADER_LENGTH+this.META_LENGTH-1,s=n.decode(e.slice(o,o+r));o+=r;let c=n.decode(e.slice(o,o+i));o+=i;let l=n.decode(e.slice(o,o+a));return o+=a,{join_ref:s,ref:null,topic:c,event:l,payload:e.slice(o,e.byteLength)}},decodeReply(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=t.getUint8(3),o=t.getUint8(4),s=this.HEADER_LENGTH+this.META_LENGTH,c=n.decode(e.slice(s,s+r));s+=r;let l=n.decode(e.slice(s,s+i));s+=i;let u=n.decode(e.slice(s,s+a));s+=a;let d=n.decode(e.slice(s,s+o));s+=o;let f={status:d,response:e.slice(s,e.byteLength)};return{join_ref:c,ref:l,topic:u,event:Ic.reply,payload:f}},decodeBroadcast(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=this.HEADER_LENGTH+2,o=n.decode(e.slice(a,a+r));a+=r;let s=n.decode(e.slice(a,a+i));return a+=i,{join_ref:null,ref:null,topic:o,event:s,payload:e.slice(a,e.byteLength)}}},Jc=class{constructor(e,t={}){this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.channels=[],this.sendBuffer=[],this.ref=0,this.fallbackRef=null,this.timeout=t.timeout||jc,this.transport=t.transport||kc.WebSocket||Gc,this.conn=void 0,this.primaryPassedHealthCheck=!1,this.longPollFallbackMs=t.longPollFallbackMs,this.fallbackTimer=null;let n=null;try{n=kc&&kc.sessionStorage}catch{}this.sessionStore=t.sessionStorage||n,this.establishedConnections=0,this.defaultEncoder=qc.encode.bind(qc),this.defaultDecoder=qc.decode.bind(qc),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===Gc?(this.encode=this.defaultEncoder,this.decode=this.defaultDecoder):(this.encode=t.encode||this.defaultEncoder,this.decode=t.decode||this.defaultDecoder);let r=null;Oc&&Oc.addEventListener&&(Oc.addEventListener(`pagehide`,e=>{this.conn&&(this.disconnect(),r=this.connectClock)}),Oc.addEventListener(`pageshow`,e=>{r===this.connectClock&&(r=null,this.connect())}),Oc.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=e=>t.rejoinAfterMs?t.rejoinAfterMs(e):[1e3,2e3,5e3][e-1]||1e4,this.reconnectAfterMs=e=>t.reconnectAfterMs?t.reconnectAfterMs(e):[10,50,100,150,200,250,500,1e3,2e3][e-1]||5e3,this.logger=t.logger||null,!this.logger&&t.debug&&(this.logger=(e,t,n)=>{console.log(`${e}: ${t}`,n)}),this.longpollerTimeout=t.longpollerTimeout||2e4,this.params=Ec(t.params||{}),this.endPoint=`${e}/${Lc.websocket}`,this.vsn=t.vsn||Ac,this.heartbeatTimeoutTimer=null,this.heartbeatTimer=null,this.heartbeatSentAt=null,this.pendingHeartbeatRef=null,this.reconnectTimer=new Vc(()=>{this.pageHidden?(this.log(`Not reconnecting as page is hidden!`),this.teardown()):this.teardown(async()=>{t.beforeReconnect&&await t.beforeReconnect(),this.connect()})},this.reconnectAfterMs),this.authToken=t.authToken&&Ec(t.authToken)}getLongPollTransport(){return Gc}replaceTransport(e){this.connectClock++,this.closeWasClean=!0,clearTimeout(this.fallbackTimer),this.reconnectTimer.reset(),this.conn&&=(this.conn.close(),null),this.transport=e}protocol(){return location.protocol.match(/^https/)?`wss`:`ws`}endPointURL(){let e=Uc.appendParams(Uc.appendParams(this.endPoint,this.params()),{vsn:this.vsn});return e.charAt(0)===`/`?e.charAt(1)===`/`?`${this.protocol()}:${e}`:`${this.protocol()}://${location.host}${e}`: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=Ec(e)),(!this.conn||this.disconnecting)&&(this.longPollFallbackMs&&this.transport!==Gc?this.connectWithFallback(Gc,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 r=this.onMessage(i=>{i.ref===t&&(this.off([r]),e(Date.now()-n))});return!0}transportName(e){switch(e){case Gc:return`LongPoll`;default:return e.name}}transportConnect(){this.connectClock++,this.closeWasClean=!1;let e;this.authToken&&(e=[`phoenix`,`${zc}${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=e=>this.onConnError(e),this.conn.onmessage=e=>this.onConnMessage(e),this.conn.onclose=e=>this.onConnClose(e)}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,r=!0,i,a,o=this.transportName(e),s=t=>{this.log(`transport`,`falling back to ${o}...`,t),this.off([i,a]),r=!1,this.replaceTransport(e),this.transportConnect()};if(this.getSession(`phx:fallback:${o}`))return s(`memorized`);this.fallbackTimer=setTimeout(s,t),a=this.onError(e=>{this.log(`transport`,`error`,e),r&&!n&&(clearTimeout(this.fallbackTimer),s(e))}),this.fallbackRef&&this.off([this.fallbackRef]),this.fallbackRef=this.onOpen(()=>{if(n=!0,!r){let t=this.transportName(e);return this.primaryPassedHealthCheck||this.storeSession(`phx:fallback:${t}`,`true`),this.log(`transport`,`established ${t} fallback`)}clearTimeout(this.fallbackTimer),this.fallbackTimer=setTimeout(s,t),this.ping(e=>{this.log(`transport`,`connected to primary after`,e),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(Error(`heartbeat timeout`)),this.closeWasClean=!1,this.teardown(()=>this.reconnectTimer.scheduleTimeout(),Mc,`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();let r=this.conn;this.waitForBufferDone(r,()=>{t?r.close(t,n||``):r.close(),this.waitForSocketClosed(r,()=>{this.conn===r&&(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){n===5||!e.bufferedAmount?t():setTimeout(()=>{this.waitForBufferDone(e,t,n+1)},150*n)}waitForSocketClosed(e,t,n=1){n===5||e.readyState===Pc.closed?t():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(Ic.error,e)})}connectionState(){switch(this.conn&&this.conn.readyState){case Pc.connecting:return`connecting`;case Pc.open:return`open`;case Pc.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(([t])=>e.indexOf(t)===-1)}channel(e,t={}){let n=new Hc(e,t,this);return this.channels.push(n),n}push(e){if(this.hasLogger()){let{topic:t,event:n,payload:r,ref:i,join_ref:a}=e;this.log(`push`,`${t} ${n} (${a}, ${i})`,r)}this.isConnected()?this.encode(e,e=>this.conn.send(e)):this.sendBuffer.push(()=>this.encode(e,e=>this.conn.send(e)))}makeRef(){let e=this.ref+1;return this.ref=e===this.ref?0:e,this.ref.toString()}sendHeartbeat(){if(!this.isConnected())try{this.heartbeatCallback(`disconnected`)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}else if(this.pendingHeartbeatRef)this.heartbeatTimeout();else{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,e=>{let{topic:t,event:n,payload:r,ref:i,join_ref:a}=e;if(i&&i===this.pendingHeartbeatRef){let e=this.heartbeatSentAt?Date.now()-this.heartbeatSentAt:void 0;this.clearHeartbeats();try{this.heartbeatCallback(r.status===`ok`?`ok`:`error`,e)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}this.pendingHeartbeatRef=null,this.heartbeatSentAt=null,this.autoSendHeartbeat&&(this.heartbeatTimer=setTimeout(()=>this.sendHeartbeat(),this.heartbeatIntervalMs))}this.hasLogger()&&this.log(`receive`,`${r.status||``} ${t} ${n} ${i&&`(`+i+`)`||``}`.trim(),r);for(let e=0;e<this.channels.length;e++){let o=this.channels[e];o.isMember(t,n,r,a)&&o.trigger(n,r,i,a)}this.triggerStateCallbacks(`message`,e)})}triggerStateCallbacks(e,...t){try{this.stateChangeCallbacks[e].forEach(([n,r])=>{try{r(...t)}catch(t){this.log(`error`,`error in ${e} callback`,t)}})}catch(t){this.log(`error`,`error triggering ${e} callbacks`,t)}}leaveOpenTopic(e){let t=this.channels.find(t=>t.topic===e&&(t.isJoined()||t.isJoining()));t&&(this.hasLogger()&&this.log(`transport`,`leaving duplicate topic "${e}"`),t.leave())}},Yc=class e{constructor(t,n){let r=Qc(n);this.presence=new Kc(t.getChannel(),r),this.presence.onJoin((n,r,i)=>{let a=e.onJoinPayload(n,r,i);t.getChannel().trigger(`presence`,a)}),this.presence.onLeave((n,r,i)=>{let a=e.onLeavePayload(n,r,i);t.getChannel().trigger(`presence`,a)}),this.presence.onSync(()=>{t.getChannel().trigger(`presence`,{event:`sync`})})}get state(){return e.transformState(this.presence.state)}static transformState(e){return e=Zc(e),Object.getOwnPropertyNames(e).reduce((t,n)=>{let r=e[n];return t[n]=Xc(r),t},{})}static onJoinPayload(e,t,n){return{event:`join`,key:e,currentPresences:$c(t),newPresences:Xc(n)}}static onLeavePayload(e,t,n){return{event:`leave`,key:e,currentPresences:$c(t),leftPresences:Xc(n)}}};function Xc(e){return e.metas.map(e=>{let t=Object.getOwnPropertyDescriptors(e),n=Object.defineProperties({},t);return n.presence_ref=n.phx_ref,delete n.phx_ref,delete n.phx_ref_prev,n})}function Zc(e){return JSON.parse(JSON.stringify(e))}function Qc(e){return e?.events&&{events:e.events}}function $c(e){return e?.metas?Xc(e):[]}var el;(function(e){e.SYNC=`sync`,e.JOIN=`join`,e.LEAVE=`leave`})(el||={});var tl=class{get state(){return this.presenceAdapter.state}constructor(e,t){this.channel=e,this.presenceAdapter=new Yc(this.channel.channelAdapter,t)}};function nl(e){if(e instanceof Error)return e;if(typeof e==`string`)return Error(e);if(e&&typeof e==`object`){let t=e;if(typeof t.code==`number`){let n=typeof t.reason==`string`&&t.reason?` (${t.reason})`:``;return Error(`socket closed: ${t.code}${n}`,{cause:e})}return Error(`channel error: transport failure`,{cause:e})}return Error(`channel error: connection lost`)}var rl=class{constructor(e,t,n){let r=il(n);this.channel=e.getSocket().channel(t,r),this.socket=e}get state(){return this.channel.state}set state(e){this.channel.state=e}get joinedOnce(){return this.channel.joinedOnce}get joinPush(){return this.channel.joinPush}get rejoinTimer(){return this.channel.rejoinTimer}on(e,t){return this.channel.on(e,t)}off(e,t){this.channel.off(e,t)}subscribe(e){return this.channel.join(e)}unsubscribe(e){return this.channel.leave(e)}teardown(){this.channel.teardown()}onClose(e){this.channel.onClose(e)}onError(e){return this.channel.onError(e)}push(e,t,n){let r;try{r=this.channel.push(e,t,n)}catch{throw Error(`tried to push '${e}' to '${this.channel.topic}' before joining. Use channel.subscribe() before pushing events`)}if(this.channel.pushBuffer.length>100){let e=this.channel.pushBuffer.shift();e.cancelTimeout(),this.socket.log(`channel`,`discarded push due to buffer overflow: ${e.event}`,e.payload())}return r}updateJoinPayload(e){let t=this.channel.joinPush.payload();this.channel.joinPush.payload=()=>Object.assign(Object.assign({},t),e)}canPush(){return this.socket.isConnected()&&this.state===fc.joined}isJoined(){return this.state===fc.joined}isJoining(){return this.state===fc.joining}isClosed(){return this.state===fc.closed}isLeaving(){return this.state===fc.leaving}updateFilterBindings(e){this.channel.filterBindings=e}updatePayloadTransform(e){this.channel.onMessage=e}getChannel(){return this.channel}};function il(e){return{config:Object.assign({broadcast:{ack:!1,self:!1},presence:{key:``,enabled:!1},private:!1},e.config)}}var al=/[,()"\\]/,ol=e=>al.test(e)||e!==e.trim(),sl=e=>`"${e.replace(/\\/g,`\\\\`).replace(/"/g,`\\"`)}"`,cl=e=>{let t=e===null?`null`:String(e);return ol(t)?sl(t):t},ll=e=>e===null?`null`:String(e),ul=(e,t)=>{if(e===`in`){let e=Array.isArray(t)?t:[t];if(e.length===0)throw Error("Realtime `in` filter requires at least one value.");return`in.(${Array.from(new Set(e)).map(e=>cl(e)).join(`,`)})`}return e===`is`?`is.${ll(t)}`:`${e}.${cl(t)}`},dl=class{constructor(){this.filters=[]}add(e,t,n,r=!1){let i=r?`not.`:``;return this.filters.push(`${e}=${i}${ul(t,n)}`),this}eq(e,t){return this.add(e,`eq`,t)}neq(e,t){return this.add(e,`neq`,t)}gt(e,t){return this.add(e,`gt`,t)}gte(e,t){return this.add(e,`gte`,t)}lt(e,t){return this.add(e,`lt`,t)}lte(e,t){return this.add(e,`lte`,t)}in(e,t){return this.add(e,`in`,t)}like(e,t){return this.add(e,`like`,t)}ilike(e,t){return this.add(e,`ilike`,t)}match(e,t){return this.add(e,`match`,t)}imatch(e,t){return this.add(e,`imatch`,t)}is(e,t){return this.add(e,`is`,t)}isDistinct(e,t){return this.add(e,`isdistinct`,t)}not(e,t,n){return this.add(e,t,n,!0)}build(){return this.filters.join(`,`)}toString(){return this.build()}},fl;(function(e){e.ALL=`*`,e.INSERT=`INSERT`,e.UPDATE=`UPDATE`,e.DELETE=`DELETE`})(fl||={});var pl;(function(e){e.BROADCAST=`broadcast`,e.PRESENCE=`presence`,e.POSTGRES_CHANGES=`postgres_changes`,e.SYSTEM=`system`})(pl||={});var ml;(function(e){e.SUBSCRIBED=`SUBSCRIBED`,e.TIMED_OUT=`TIMED_OUT`,e.CLOSED=`CLOSED`,e.CHANNEL_ERROR=`CHANNEL_ERROR`})(ml||={});var hl=class e{get state(){return this.channelAdapter.state}set state(e){this.channelAdapter.state=e}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(e,t={config:{}},n){if(this.topic=e,this.params=t,this.socket=n,this.bindings={},this.subTopic=e.replace(/^realtime:/i,``),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:``,enabled:!1},private:!1},t.config),this.channelAdapter=new rl(this.socket.socketAdapter,e,this.params),this.presence=new tl(this),this._onClose(()=>{this.socket._remove(this)}),this._updateFilterTransform(),this.broadcastEndpointURL=Tc(this.socket.socketAdapter.endPointURL()),this.private=this.params.config.private||!1,!this.private&&this.params.config?.broadcast?.replay)throw Error(`tried to use replay on public channel '${this.topic}'. It must be a private channel.`)}subscribe(e,t=this.timeout){if(this.socket.isConnected()||this.socket.connect(),this.channelAdapter.isClosed()){let{config:{broadcast:n,presence:r,private:i}}=this.params,a=this.bindings.postgres_changes?.map(e=>e.filter)??[],o=!!this.bindings[pl.PRESENCE]&&this.bindings[pl.PRESENCE].length>0||this.params.config.presence?.enabled===!0,s={},c={broadcast:n,presence:Object.assign(Object.assign({},r),{enabled:o}),postgres_changes:a,private:i};this.socket.accessTokenValue&&(s.access_token=this.socket.accessTokenValue),this._onError(t=>{e?.(ml.CHANNEL_ERROR,nl(t))}),this._onClose(()=>e?.(ml.CLOSED)),this.updateJoinPayload(Object.assign({config:c},s)),this._updateFilterMessage(),this.channelAdapter.subscribe(t).receive(`ok`,async({postgres_changes:t})=>{this.socket._isManualToken()||this.socket.setAuth(),t===void 0?e?.(ml.SUBSCRIBED):this._updatePostgresBindings(t,e)}).receive(`error`,t=>{this.state=fc.errored;let n=Object.values(t).join(`, `)||`error`;e?.(ml.CHANNEL_ERROR,Error(n,{cause:t}))}).receive(`timeout`,()=>{e?.(ml.TIMED_OUT)})}return this}_updatePostgresBindings(t,n){let r=this.bindings.postgres_changes,i=r?.length??0,a=[];for(let o=0;o<i;o++){let i=r[o],{filter:{event:s,schema:c,table:l,filter:u}}=i,d=t&&t[o];if(d&&d.event===s&&e.isFilterValueEqual(d.schema,c)&&e.isFilterValueEqual(d.table,l)&&e.isFilterValueEqual(d.filter,u))a.push(Object.assign(Object.assign({},i),{id:d.id}));else{this.unsubscribe(),this.state=fc.errored,n?.(ml.CHANNEL_ERROR,Error(`mismatch between server and client bindings for postgres changes`));return}}this.bindings.postgres_changes=a,this.state!=fc.errored&&n&&n(ml.SUBSCRIBED)}presenceState(){return this.presence.state}async track(e,t={}){return await this.send({type:`presence`,event:`track`,payload:e},t)}async untrack(e={}){return await this.send({type:`presence`,event:`untrack`},e)}on(e,t,n){let r=this.channelAdapter.isJoined()||this.channelAdapter.isJoining(),i=e===pl.PRESENCE||e===pl.POSTGRES_CHANGES;if(r&&i)throw this.socket.log(`channel`,`cannot add \`${e}\` callbacks for ${this.topic} after \`subscribe()\`.`),Error(`cannot add \`${e}\` callbacks for ${this.topic} after \`subscribe()\`.`);return this._on(e,t,n)}async httpSend(e,t,n={}){if(t==null)return Promise.reject(Error(`Payload is required for httpSend()`));let r=t instanceof ArrayBuffer||ArrayBuffer.isView(t),i={apikey:this.socket.apiKey?this.socket.apiKey:``,"Content-Type":r?`application/octet-stream`:`application/json`};this.socket.accessTokenValue&&(i.Authorization=`Bearer ${this.socket.accessTokenValue}`);let a=new URL(this.broadcastEndpointURL);a.pathname+=`/${encodeURIComponent(this.subTopic)}/events/${encodeURIComponent(e)}`,this.private&&a.searchParams.set(`private`,`true`);let o={method:`POST`,headers:i,body:r?t:JSON.stringify(t)},s=await this._fetchWithTimeout(a.toString(),o,n.timeout??this.timeout);if(s.status===202)return{success:!0};if(s.status===404)return Promise.reject(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 c=s.statusText;try{let e=await s.json();c=e.error||e.message||c}catch{}return Promise.reject(Error(c))}async send(e,t={}){if(!this.channelAdapter.canPush()&&e.type===`broadcast`){let n=`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`,n):console.warn(n);let{event:r,payload:i}=e,a={apikey:this.socket.apiKey?this.socket.apiKey:``,"Content-Type":`application/json`};this.socket.accessTokenValue&&(a.Authorization=`Bearer ${this.socket.accessTokenValue}`);let o={method:`POST`,headers:a,body:JSON.stringify({messages:[{topic:this.subTopic,event:r,payload:i,private:this.private}]})};try{let e=await this._fetchWithTimeout(this.broadcastEndpointURL,o,t.timeout??this.timeout);return await e.body?.cancel(),e.ok?`ok`:`error`}catch(e){return e instanceof Error&&e.name===`AbortError`?`timed out`:`error`}}return new Promise(n=>{let r=this.channelAdapter.push(e.type,e,t.timeout||this.timeout);e.type===`broadcast`&&!this.params?.config?.broadcast?.ack&&n(`ok`),r.receive(`ok`,()=>n(`ok`)),r.receive(`error`,()=>n(`error`)),r.receive(`timeout`,()=>n(`timed out`))})}updateJoinPayload(e){this.channelAdapter.updateJoinPayload(e)}async unsubscribe(e=this.timeout){return new Promise(t=>{this.channelAdapter.unsubscribe(e).receive(`ok`,()=>t(`ok`)).receive(`timeout`,()=>t(`timed out`)).receive(`error`,()=>t(`error`))})}teardown(){this.channelAdapter.teardown()}async _fetchWithTimeout(e,t,n){let r=new AbortController,i=setTimeout(()=>r.abort(),n),a=await this.socket.fetch(e,Object.assign(Object.assign({},t),{signal:r.signal}));return clearTimeout(i),a}_on(t,n,r){let i=t.toLocaleLowerCase(),a=n?.filter;if((a instanceof dl||typeof a==`object`&&a&&typeof a.build==`function`)&&(n=Object.assign(Object.assign({},n),{filter:a.build()})),i===pl.POSTGRES_CHANGES&&this.bindings[i]?.find(t=>e.isSamePostgresFilter(t.filter,n)))return this.socket.log(`error`,`duplicate \`postgres_changes\` binding for ${this.topic} ignored`,n),this;let o=this.channelAdapter.on(t,r),s={type:i,filter:n,callback:r,ref:o};return this.bindings[i]?this.bindings[i].push(s):this.bindings[i]=[s],this._updateFilterMessage(),this}_onClose(e){this.channelAdapter.onClose(e)}_onError(e){this.channelAdapter.onError(e)}_updateFilterMessage(){this.channelAdapter.updateFilterBindings((e,t,n)=>{let r=e.event.toLocaleLowerCase();if(this._notThisChannelEvent(r,n))return!1;let i=this.bindings[r]?.find(t=>t.ref===e.ref);if(!i)return!0;if([`broadcast`,`presence`,`postgres_changes`].includes(r)){if(`id`in i){let e=i.id,n=i.filter?.event;return e&&t.ids?.includes(e)&&(n===`*`||n?.toLocaleLowerCase()===t.data?.type.toLocaleLowerCase())}{let e=(i?.filter?.event)?.toLocaleLowerCase();return e===`*`||e===(t?.event)?.toLocaleLowerCase()}}return i.type.toLocaleLowerCase()===r})}_notThisChannelEvent(e,t){let{close:n,error:r,leave:i,join:a}=pc;return t&&[n,r,i,a].includes(e)&&t!==this.joinPush.ref}_updateFilterTransform(){this.channelAdapter.updatePayloadTransform((e,t,n)=>{if(typeof t==`object`&&`ids`in t){let e=t.data,{schema:n,table:r,commit_timestamp:i,type:a,errors:o}=e;return Object.assign(Object.assign({},{schema:n,table:r,commit_timestamp:i,eventType:a,new:{},old:{},errors:o}),this._getPayloadRecords(e))}return t})}copyBindings(e){if(this.joinedOnce)throw Error(`cannot copy bindings into joined channel`);for(let t in e.bindings)for(let n of e.bindings[t])this._on(n.type,n.filter,n.callback)}static isFilterValueEqual(e,t){return(e??void 0)===(t??void 0)}static isSamePostgresFilter(t,n){let r=(t?.select)?.join()??void 0,i=(n?.select)?.join()??void 0;return t?.event===n?.event&&e.isFilterValueEqual(t?.schema,n?.schema)&&e.isFilterValueEqual(t?.table,n?.table)&&e.isFilterValueEqual(t?.filter,n?.filter)&&r===i}_getPayloadRecords(e){let t={new:{},old:{}};return(e.type===`INSERT`||e.type===`UPDATE`)&&(t.new=_c(e.columns,e.record)),(e.type===`UPDATE`||e.type===`DELETE`)&&(t.old=_c(e.columns,e.old_record)),t}},gl=class{constructor(e,t){this.socket=new Jc(e,t)}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(e){this.socket.heartbeatCallback=e}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(e,t,n,r=1e4){return new Promise(i=>{setTimeout(()=>i(`timeout`),r),this.socket.disconnect(()=>{e(),i(`ok`)},t,n)})}push(e){this.socket.push(e)}log(e,t,n){this.socket.log(e,t,n)}hasLogger(){return this.socket.hasLogger()}makeRef(){return this.socket.makeRef()}onOpen(e){this.socket.onOpen(e)}onClose(e){this.socket.onClose(e)}onError(e){this.socket.onError(e)}onMessage(e){this.socket.onMessage(e)}isConnected(){return this.socket.isConnected()}isConnecting(){return this.socket.connectionState()==mc.connecting}isDisconnecting(){return this.socket.connectionState()==mc.closing}connectionState(){return this.socket.connectionState()}endPointURL(){return this.socket.endPointURL()}sendHeartbeat(){this.socket.sendHeartbeat()}getSocket(){return this.socket}},_l={HEARTBEAT_INTERVAL:25e3,RECONNECT_DELAY:10,HEARTBEAT_TIMEOUT_FALLBACK:100},vl=[1e3,2e3,5e3,1e4],yl=1e4;function bl(){let e=new Map;return{get length(){return e.size},clear(){e.clear()},getItem(t){return e.has(t)?e.get(t):null},key(t){return Array.from(e.keys())[t]??null},removeItem(t){e.delete(t)},setItem(t,n){e.set(t,String(n))}}}function xl(){try{if(typeof globalThis<`u`&&globalThis.sessionStorage)return globalThis.sessionStorage}catch{}return bl()}var Sl=`
addEventListener("message", (e) => {
if (e.data.event === "start") {
setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval);
}
});`,Cl=class{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(e,t){if(this.channels=[],this.accessTokenValue=null,this.accessToken=null,this.apiKey=null,this.httpEndpoint=``,this.headers={},this.params={},this.ref=0,this.serializer=new hc,this._manuallySetToken=!1,this._authPromise=null,this._authGeneration=0,this._workerHeartbeatTimer=void 0,this._pendingWorkerHeartbeatRef=null,this._pendingDisconnectTimer=null,this._disconnectOnEmptyChannelsAfterMs=0,this._resolveFetch=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),!t?.params?.apikey)throw Error(`API key is required to connect to Realtime`);this.apiKey=t.params.apikey;let n=this._initializeOptions(t);this.socketAdapter=new gl(e,n),this.httpEndpoint=Tc(e),this.fetch=this._resolveFetch(t?.fetch)}connect(){if(!(this.isConnecting()||this.isDisconnecting()||this.isConnected())){this.accessToken&&!this._authPromise&&this._setAuthSafely(`connect`),this._setupConnectionHandlers();try{this.socketAdapter.connect()}catch(e){let t=e.message;throw Error(`WebSocket not available: ${t}`)}this._handleNodeJsRaceCondition()}}endpointURL(){return this.socketAdapter.endPointURL()}async disconnect(e,t){return this._cancelPendingDisconnect(),this.isDisconnecting()?`ok`:await this.socketAdapter.disconnect(()=>{clearInterval(this._workerHeartbeatTimer),this._terminateWorker()},e,t)}getChannels(){return this.channels}async removeChannel(e){let t=await e.unsubscribe();return t===`ok`&&e.teardown(),t}async removeAllChannels(){let e=this.channels.map(async e=>{let t=await e.unsubscribe();return e.teardown(),t}),t=await Promise.all(e);return await this.disconnect(),t}log(e,t,n){this.socketAdapter.log(e,t,n)}hasLogger(){return this.socketAdapter.hasLogger()}connectionState(){return this.socketAdapter.connectionState()||mc.closed}isConnected(){return this.socketAdapter.isConnected()}isConnecting(){return this.socketAdapter.isConnecting()}isDisconnecting(){return this.socketAdapter.isDisconnecting()}channel(e,t={config:{}}){let n=`realtime:${e}`,r=this.getChannels().find(e=>e.topic===n);if(r)return r;{let n=new hl(`realtime:${e}`,t,this);return this._cancelPendingDisconnect(),this.channels.push(n),n}}push(e){this.socketAdapter.push(e)}async setAuth(e=null){let t=++this._authGeneration,n=this._performAuth(e,t);t===this._authGeneration&&(this._authPromise=n);try{await n}finally{this._authPromise===n&&(this._authPromise=null)}}_isManualToken(){return this._manuallySetToken}async sendHeartbeat(){this.socketAdapter.sendHeartbeat()}onHeartbeat(e){this.socketAdapter.heartbeatCallback=this._wrapHeartbeatCallback(e)}_makeRef(){return this.socketAdapter.makeRef()}_remove(e){this.channels=this.channels.filter(t=>t.topic!==e.topic),this.channels.length===0&&(this.log(`transport`,`no channels remaining, scheduling disconnect`),this._schedulePendingDisconnect())}_schedulePendingDisconnect(){this._cancelPendingDisconnect(),this._disconnectOnEmptyChannelsAfterMs===0?(this.log(`transport`,`disconnecting immediately - no channels`),this.disconnect()):(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(e,t){let n,r=!1;if(e)n=e,r=!0;else if(this.accessToken)try{n=await this.accessToken()}catch(e){this.log(`error`,`Error fetching access token from callback`,e),n=this.accessTokenValue}else n=this.accessTokenValue;t===this._authGeneration&&(this.accessToken?this._manuallySetToken=!1:r&&(this._manuallySetToken=!0),this.accessTokenValue!=n&&(this.accessTokenValue=n,this.channels.forEach(e=>{let t={access_token:n,version:sc};e.updateJoinPayload(t),e.joinedOnce&&e.channelAdapter.isJoined()&&e.channelAdapter.push(pc.access_token,{access_token:n})})))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely(e=`general`){this._isManualToken()||this.setAuth().catch(t=>{this.log(`error`,`Error setting auth in ${e}`,t)})}_setupConnectionHandlers(){this.socketAdapter.onOpen(()=>{(this._authPromise||(this.accessToken&&!this.accessTokenValue?this.setAuth():Promise.resolve())).catch(e=>{this.log(`error`,`error waiting for auth on connect`,e)}),this.worker&&!this.workerRef&&this._startWorkerHeartbeat()}),this.socketAdapter.onClose(()=>{this.worker&&this.workerRef&&this._terminateWorker()}),this.socketAdapter.onMessage(e=>{e.ref&&e.ref===this._pendingWorkerHeartbeatRef&&(this._pendingWorkerHeartbeatRef=null)})}_handleNodeJsRaceCondition(){this.socketAdapter.isConnected()&&this.socketAdapter.getSocket().onConnOpen()}_wrapHeartbeatCallback(e){return(t,n)=>{t!==`disconnected`&&(t==`sent`&&this._setAuthSafely(),e&&e(t,n))}}_startWorkerHeartbeat(){this.workerUrl?this.log(`worker`,`starting worker for from ${this.workerUrl}`):this.log(`worker`,`starting default worker`);let e=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(e),this.workerRef.onerror=e=>{this.log(`worker`,`worker error`,e.message),this._terminateWorker(),this.disconnect()},this.workerRef.onmessage=e=>{e.data.event===`keepAlive`&&this.sendHeartbeat()},this.workerRef.postMessage({event:`start`,interval:this.heartbeatIntervalMs})}_terminateWorker(){this.workerRef&&=(this.log(`worker`,`terminating worker`),this.workerRef.terminate(),void 0)}_workerObjectUrl(e){let t;if(e)t=e;else{let e=new Blob([Sl],{type:`application/javascript`});t=URL.createObjectURL(e)}return t}_initializeOptions(e){this.worker=e?.worker??!1,this.accessToken=e?.accessToken??null;let t={};t.timeout=e?.timeout??dc,t.heartbeatIntervalMs=e?.heartbeatIntervalMs??_l.HEARTBEAT_INTERVAL,this._disconnectOnEmptyChannelsAfterMs=e?.disconnectOnEmptyChannelsAfterMs??2*(e?.heartbeatIntervalMs??_l.HEARTBEAT_INTERVAL),t.transport=e?.transport??oc.getWebSocketConstructor(),t.params=e?.params,t.logger=e?.logger,t.heartbeatCallback=this._wrapHeartbeatCallback(e?.heartbeatCallback),t.sessionStorage=e?.sessionStorage??xl(),t.reconnectAfterMs=e?.reconnectAfterMs??(e=>vl[e-1]||yl);let n,r,i=e?.vsn??uc;switch(i){case cc:n=(e,t)=>t(JSON.stringify(e)),r=(e,t)=>t(JSON.parse(e));break;case lc:n=this.serializer.encode.bind(this.serializer),r=this.serializer.decode.bind(this.serializer);break;default:throw Error(`Unsupported serializer version: ${t.vsn}`)}if(t.vsn=i,t.encode=e?.encode??n,t.decode=e?.decode??r,t.beforeReconnect=this._reconnectAuth.bind(this),(e?.logLevel||e?.log_level)&&(this.logLevel=e.logLevel||e.log_level,t.params=Object.assign(Object.assign({},t.params),{log_level:this.logLevel})),this.worker){if(typeof window<`u`&&!window.Worker)throw Error(`Web Worker is not supported`);this.workerUrl=e?.workerUrl,t.autoSendHeartbeat=!this.worker}return t}async _reconnectAuth(){await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()}},wl=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 Tl(e,t,n){let r=new URL(t,e);if(n)for(let[e,t]of Object.entries(n))t!==void 0&&r.searchParams.set(e,t);return r.toString()}async function El(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 Dl(e){let t=e.fetchImpl??globalThis.fetch;return{async request({method:n,path:r,query:i,body:a,headers:o}){let s=Tl(e.baseUrl,r,i),c=await El(e.auth),l=await t(s,{method:n,headers:{...a?{"Content-Type":`application/json`}:{},...c,...o},body:a?JSON.stringify(a):void 0}),u=await l.text(),d=(l.headers.get(`content-type`)||``).includes(`application/json`),f=d&&u?JSON.parse(u):u;if(!l.ok){let e=d?f:void 0,t=e?.error;throw new wl(t?.message??`Request failed with status ${l.status}`,{status:l.status,icebergType:t?.type,icebergCode:t?.code,details:e})}return{status:l.status,headers:l.headers,data:f}}}}function Ol(e){return e.join(``)}var kl=class{constructor(e,t=``){this.client=e,this.prefix=t}async listNamespaces(e){let t=e?{parent:Ol(e.namespace)}:void 0;return(await this.client.request({method:`GET`,path:`${this.prefix}/namespaces`,query:t})).data.namespaces.map(e=>({namespace:e}))}async createNamespace(e,t){let 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/${Ol(e.namespace)}`})}async loadNamespaceMetadata(e){return{properties:(await this.client.request({method:`GET`,path:`${this.prefix}/namespaces/${Ol(e.namespace)}`})).data.properties}}async namespaceExists(e){try{return await this.client.request({method:`HEAD`,path:`${this.prefix}/namespaces/${Ol(e.namespace)}`}),!0}catch(e){if(e instanceof wl&&e.status===404)return!1;throw e}}async createNamespaceIfNotExists(e,t){try{return await this.createNamespace(e,t)}catch(e){if(e instanceof wl&&e.status===409)return;throw e}}};function Al(e){return e.join(``)}var jl=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/${Al(e.namespace)}/tables`})).data.identifiers}async createTable(e,t){let n={};return this.accessDelegation&&(n[`X-Iceberg-Access-Delegation`]=this.accessDelegation),(await this.client.request({method:`POST`,path:`${this.prefix}/namespaces/${Al(e.namespace)}/tables`,body:t,headers:n})).data.metadata}async updateTable(e,t){let n=await this.client.request({method:`POST`,path:`${this.prefix}/namespaces/${Al(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/${Al(e.namespace)}/tables/${e.name}`,query:{purgeRequested:String(t?.purge??!1)}})}async loadTable(e){let t={};return this.accessDelegation&&(t[`X-Iceberg-Access-Delegation`]=this.accessDelegation),(await this.client.request({method:`GET`,path:`${this.prefix}/namespaces/${Al(e.namespace)}/tables/${e.name}`,headers:t})).data.metadata}async tableExists(e){let t={};this.accessDelegation&&(t[`X-Iceberg-Access-Delegation`]=this.accessDelegation);try{return await this.client.request({method:`HEAD`,path:`${this.prefix}/namespaces/${Al(e.namespace)}/tables/${e.name}`,headers:t}),!0}catch(e){if(e instanceof wl&&e.status===404)return!1;throw e}}async createTableIfNotExists(e,t){try{return await this.createTable(e,t)}catch(n){if(n instanceof wl&&n.status===409)return await this.loadTable({namespace:e.namespace,name:t.name});throw n}}},Ml=class{constructor(e){let t=`v1`;e.catalogName&&(t+=`/${e.catalogName}`);let n=e.baseUrl.endsWith(`/`)?e.baseUrl:`${e.baseUrl}/`;this.client=Dl({baseUrl:n,auth:e.auth,fetchImpl:e.fetch}),this.accessDelegation=e.accessDelegation?.join(`,`),this.namespaceOps=new kl(this.client,t),this.tableOps=new jl(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 Nl(e){"@babel/helpers - typeof";return Nl=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},Nl(e)}function Pl(e,t){if(Nl(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(Nl(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Fl(e){var t=Pl(e,`string`);return Nl(t)==`symbol`?t:t+``}function Il(e,t,n){return(t=Fl(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ll(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function W(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Ll(Object(n),!0).forEach(function(t){Il(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ll(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}var Rl=class extends Error{constructor(e,t=`storage`,n,r){super(e),this.__isStorageError=!0,this.namespace=t,this.name=t===`vectors`?`StorageVectorsError`:`StorageError`,this.status=n,this.statusCode=r}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}};function zl(e){return typeof e==`object`&&!!e&&`__isStorageError`in e}var Bl=class extends Rl{constructor(e,t,n,r=`storage`,i){super(e,r,t,n),this.name=r===`vectors`?`StorageVectorsApiError`:`StorageApiError`,this.status=t,this.statusCode=n,this.code=i}toJSON(){return W(W({},super.toJSON()),{},{code:this.code})}},Vl=class extends Rl{constructor(e,t,n=`storage`){super(e,n),this.name=n===`vectors`?`StorageVectorsUnknownError`:`StorageUnknownError`,this.originalError=t}};function Hl(e,t,n){let r=W({},e),i=t.toLowerCase();for(let e of Object.keys(r))e.toLowerCase()===i&&delete r[e];return r[i]=n,r}function Ul(e){let t={};for(let[n,r]of Object.entries(e))t[n.toLowerCase()]=r;return t}var Wl=e=>e?(...t)=>e(...t):(...e)=>fetch(...e),Gl=e=>{if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Kl=e=>{if(Array.isArray(e))return e.map(e=>Kl(e));if(typeof e==`function`||e!==Object(e))return e;let t={};return Object.entries(e).forEach(([e,n])=>{let r=e.replace(/([-_][a-z])/gi,e=>e.toUpperCase().replace(/[-_]/g,``));t[r]=Kl(n)}),t},ql=e=>!e||typeof e!=`string`||e.length===0||e.length>100||e.trim()!==e||e.includes(`/`)||e.includes(`\\`)?!1:/^[\w!.\*'() &$@=;:+,?-]+$/.test(e),Jl=e=>e.split(`/`).map(encodeURIComponent).join(`/`),Yl=e=>{if(typeof e==`object`&&e){let 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){let e=t.error;if(typeof e.message==`string`)return e.message}}return JSON.stringify(e)},Xl=async(e,t,n,r)=>{if(typeof e==`object`&&e&&`json`in e&&typeof e.json==`function`){let n=e,i=parseInt(String(n.status),10);Number.isFinite(i)||(i=500),n.json().then(e=>{let n=e?.statusCode||e?.code||i+``;t(new Bl(Yl(e),i,n,r,e?.code))}).catch(()=>{let e=i+``;t(new Bl(n.statusText||`HTTP ${i} error`,i,e,r))})}else t(new Vl(Yl(e),e,r))},Zl=(e,t,n,r)=>{let i={method:e,headers:t?.headers||{}};if(e===`GET`||e===`HEAD`||!r)return W(W({},i),n);if(Gl(r)){let e=t?.headers||{},n;for(let[t,r]of Object.entries(e))t.toLowerCase()===`content-type`&&(n=r);i.headers=Hl(e,`Content-Type`,n??`application/json`),i.body=JSON.stringify(r)}else i.body=r;return t?.duplex&&(i.duplex=t.duplex),W(W({},i),n)};async function Ql(e,t,n,r,i,a,o){return new Promise((s,c)=>{e(n,Zl(t,r,i,a)).then(e=>{if(!e.ok)throw e;if(r?.noResolveJson)return e;if(o===`vectors`){let t=e.headers.get(`content-type`);if(e.headers.get(`content-length`)===`0`||e.status===204||!t||!t.includes(`application/json`))return{}}return e.json()}).then(e=>s(e)).catch(e=>Xl(e,c,r,o))})}function $l(e=`storage`){return{get:async(t,n,r,i)=>Ql(t,`GET`,n,r,i,void 0,e),post:async(t,n,r,i,a)=>Ql(t,`POST`,n,i,a,r,e),put:async(t,n,r,i,a)=>Ql(t,`PUT`,n,i,a,r,e),head:async(t,n,r,i)=>Ql(t,`HEAD`,n,W(W({},r),{},{noResolveJson:!0}),i,void 0,e),remove:async(t,n,r,i,a)=>Ql(t,`DELETE`,n,i,a,r,e)}}var{get:eu,post:tu,put:nu,head:ru,remove:iu}=$l(`storage`),au=$l(`vectors`),ou=class{constructor(e,t={},n,r=`storage`){this.shouldThrowOnError=!1,this.url=e,this.headers=Ul(t),this.fetch=Wl(n),this.namespace=r}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(e,t){return this.headers=Hl(this.headers,e,t),this}async handleOperation(e){var t=this;try{return{data:await e(),error:null}}catch(e){if(t.shouldThrowOnError)throw e;if(zl(e))return{data:null,error:e};throw e}}},su=Symbol.toStringTag,cu=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[su]=`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.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(zl(t))return{data:null,error:t};throw t}}},lu=Symbol.toStringTag,uu=class{constructor(e,t){this.downloadFn=e,this.shouldThrowOnError=t,this[lu]=`BlobDownloadBuilder`,this.promise=null}asStream(){return new cu(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.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(zl(t))return{data:null,error:t};throw t}}},du={limit:100,offset:0,sortBy:{column:`name`,order:`asc`}},fu={cacheControl:`3600`,contentType:`text/plain;charset=UTF-8`,upsert:!1},pu=class extends ou{constructor(e,t={},n,r){super(e,t,r,`storage`),this.bucketId=n}async uploadOrUpdate(e,t,n,r){var i=this;return i.handleOperation(async()=>{let a,o=W(W({},fu),r),s=W(W({},i.headers),e===`POST`&&{"x-upsert":String(o.upsert)}),c=o.metadata;if(typeof Blob<`u`&&n instanceof Blob?(a=new FormData,a.append(`cacheControl`,o.cacheControl),c&&a.append(`metadata`,i.encodeMetadata(c)),a.append(``,n)):typeof FormData<`u`&&n instanceof FormData?(a=n,a.has(`cacheControl`)||a.append(`cacheControl`,o.cacheControl),c&&!a.has(`metadata`)&&a.append(`metadata`,i.encodeMetadata(c))):(a=n,s[`cache-control`]=`max-age=${o.cacheControl}`,s[`content-type`]=o.contentType,c&&(s[`x-metadata`]=i.toBase64(i.encodeMetadata(c))),(typeof ReadableStream<`u`&&a instanceof ReadableStream||a&&typeof a==`object`&&`pipe`in a&&typeof a.pipe==`function`)&&!o.duplex&&(o.duplex=`half`)),r?.headers)for(let[e,t]of Object.entries(r.headers))s=Hl(s,e,t);let l=i._removeEmptyFolders(t),u=i._getFinalPath(l),d=await(e==`PUT`?nu:tu)(i.fetch,`${i.url}/object/${u}`,a,W({headers:s},o?.duplex?{duplex:o.duplex}:{}));return{path:l,id:d.Id,fullPath:d.Key}})}async upload(e,t,n){return this.uploadOrUpdate(`POST`,e,t,n)}async uploadToSignedUrl(e,t,n,r){var i=this;let a=i._removeEmptyFolders(e),o=i._getFinalPath(a),s=new URL(i.url+`/object/upload/sign/${o}`);return s.searchParams.set(`token`,t),i.handleOperation(async()=>{let e,t=W(W({},fu),r),o=W(W({},i.headers),{"x-upsert":String(t.upsert)}),c=t.metadata;if(typeof Blob<`u`&&n instanceof Blob?(e=new FormData,e.append(`cacheControl`,t.cacheControl),c&&e.append(`metadata`,i.encodeMetadata(c)),e.append(``,n)):typeof FormData<`u`&&n instanceof FormData?(e=n,e.has(`cacheControl`)||e.append(`cacheControl`,t.cacheControl),c&&!e.has(`metadata`)&&e.append(`metadata`,i.encodeMetadata(c))):(e=n,o[`cache-control`]=`max-age=${t.cacheControl}`,o[`content-type`]=t.contentType,c&&(o[`x-metadata`]=i.toBase64(i.encodeMetadata(c))),(typeof ReadableStream<`u`&&e instanceof ReadableStream||e&&typeof e==`object`&&`pipe`in e&&typeof e.pipe==`function`)&&!t.duplex&&(t.duplex=`half`)),r?.headers)for(let[e,t]of Object.entries(r.headers))o=Hl(o,e,t);return{path:a,fullPath:(await nu(i.fetch,s.toString(),e,W({headers:o},t?.duplex?{duplex:t.duplex}:{}))).Key}})}async createSignedUploadUrl(e,t){var n=this;return n.handleOperation(async()=>{let r=n._getFinalPath(e),i=W({},n.headers);t?.upsert&&(i[`x-upsert`]=`true`);let a=await tu(n.fetch,`${n.url}/object/upload/sign/${r}`,{},{headers:i}),o=new URL(n.url+a.url),s=o.searchParams.get(`token`);if(!s)throw new Rl(`No token returned by API`);return{signedUrl:o.toString(),path:e,token:s}})}async update(e,t,n){return this.uploadOrUpdate(`PUT`,e,t,n)}async move(e,t,n){var r=this;return r.handleOperation(async()=>await tu(r.fetch,`${r.url}/object/move`,{bucketId:r.bucketId,sourceKey:e,destinationKey:t,destinationBucket:n?.destinationBucket},{headers:r.headers}))}async copy(e,t,n){var r=this;return r.handleOperation(async()=>({path:(await tu(r.fetch,`${r.url}/object/copy`,{bucketId:r.bucketId,sourceKey:e,destinationKey:t,destinationBucket:n?.destinationBucket},{headers:r.headers})).Key}))}async createSignedUrl(e,t,n){var r=this;return r.handleOperation(async()=>{let i=r._getFinalPath(e),a=typeof n?.transform==`object`&&n.transform!==null&&Object.keys(n.transform).length>0,o=await tu(r.fetch,`${r.url}/object/sign/${i}`,W({expiresIn:t},a?{transform:n.transform}:{}),{headers:r.headers}),s=new URLSearchParams;n?.download&&s.set(`download`,n.download===!0?``:n.download),n?.cacheNonce!=null&&s.set(`cacheNonce`,String(n.cacheNonce));let c=s.toString();return{signedUrl:encodeURI(`${r.url}${o.signedURL}${c?`&${c}`:``}`)}})}async createSignedUrls(e,t,n){var r=this;return r.handleOperation(async()=>{let i=await tu(r.fetch,`${r.url}/object/sign/${r.bucketId}`,{expiresIn:t,paths:e},{headers:r.headers}),a=new URLSearchParams;n?.download&&a.set(`download`,n.download===!0?``:n.download),n?.cacheNonce!=null&&a.set(`cacheNonce`,String(n.cacheNonce));let o=a.toString();return i.map(e=>W(W({},e),{},{signedUrl:e.signedURL?encodeURI(`${r.url}${e.signedURL}${o?`&${o}`:``}`):null}))})}download(e,t,n){let r=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));let a=i.toString(),o=this._getFinalPath(e);return new uu(()=>eu(this.fetch,`${this.url}/${r}/${o}${a?`?${a}`:``}`,{headers:this.headers,noResolveJson:!0},n),this.shouldThrowOnError)}async info(e){var t=this;let n=t._getFinalPath(e);return t.handleOperation(async()=>Kl(await eu(t.fetch,`${t.url}/object/info/${n}`,{headers:t.headers})))}async exists(e){var t=this;let n=t._getFinalPath(e);try{return await ru(t.fetch,`${t.url}/object/${n}`,{headers:t.headers}),{data:!0,error:null}}catch(e){if(t.shouldThrowOnError)throw e;if(zl(e)){let t=e instanceof Bl?e.status:e instanceof Vl?e.originalError?.status:void 0;if(t!==void 0&&[400,404].includes(t))return{data:!1,error:e}}throw e}}getPublicUrl(e,t){let n=this._getFinalPath(e),r=new URLSearchParams;t?.download&&r.set(`download`,t.download===!0?``:t.download),t?.transform&&this.applyTransformOptsToQuery(r,t.transform),t?.cacheNonce!=null&&r.set(`cacheNonce`,String(t.cacheNonce));let i=r.toString(),a=typeof t?.transform==`object`&&t.transform!==null&&Object.keys(t.transform).length>0?`render/image`:`object`;return{data:{publicUrl:encodeURI(`${this.url}/${a}/public/${n}`)+(i?`?${i}`:``)}}}async remove(e){var t=this;return t.handleOperation(async()=>await iu(t.fetch,`${t.url}/object/${t.bucketId}`,{prefixes:e},{headers:t.headers}))}async purgeCache(e,t,n){var r=this;return r.handleOperation(async()=>{let i=Jl(r._getFinalPath(e)),a=new URLSearchParams;t?.transformations&&a.set(`transformations`,`true`);let o=a.toString();return await iu(r.fetch,`${r.url}/cdn/${i}${o?`?${o}`:``}`,{},{headers:r.headers},n)})}async list(e,t,n){var r=this;return r.handleOperation(async()=>{let i=t?.sortBy?W(W({},du.sortBy),t.sortBy):du.sortBy,a=W(W(W({},du),t),{},{sortBy:i,prefix:e||``});return await tu(r.fetch,`${r.url}/object/list/${r.bucketId}`,a,{headers:r.headers},n)})}async listV2(e,t){var n=this;return n.handleOperation(async()=>{let r=W({},e);return await tu(n.fetch,`${n.url}/object/list-v2/${n.bucketId}`,r,{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}},mu={"X-Client-Info":`storage-js/2.112.4`},hu=class extends ou{constructor(e,t={},n,r){let i=new URL(e);r?.useNewHostname&&/supabase\.(co|in|red)$/.test(i.hostname)&&!i.hostname.includes(`storage.supabase.`)&&(i.hostname=i.hostname.replace(`supabase.`,`storage.supabase.`));let a=i.href.replace(/\/$/,``),o=W(W({},mu),t);super(a,o,n,`storage`)}async listBuckets(e){var t=this;return t.handleOperation(async()=>{let n=t.listBucketOptionsToQueryString(e);return await eu(t.fetch,`${t.url}/bucket${n}`,{headers:t.headers})})}async getBucket(e){var t=this;return t.handleOperation(async()=>await eu(t.fetch,`${t.url}/bucket/${e}`,{headers:t.headers}))}async createBucket(e,t={public:!1}){var n=this;return n.handleOperation(async()=>await tu(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 nu(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 tu(t.fetch,`${t.url}/bucket/${e}/empty`,{},{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await iu(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}async purgeBucketCache(e,t,n){var r=this;return r.handleOperation(async()=>{let i=new URLSearchParams;t?.transformations&&i.set(`transformations`,`true`);let a=i.toString();return await iu(r.fetch,`${r.url}/cdn/${Jl(e)}${a?`?${a}`:``}`,{},{headers:r.headers},n)})}listBucketOptionsToQueryString(e){let 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():``}},gu=class extends ou{constructor(e,t={},n){let r=e.replace(/\/$/,``),i=W(W({},mu),t);super(r,i,n,`storage`)}async createBucket(e){var t=this;return t.handleOperation(async()=>await tu(t.fetch,`${t.url}/bucket`,{name:e},{headers:t.headers}))}async listBuckets(e){var t=this;return t.handleOperation(async()=>{let 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);let r=n.toString(),i=r?`${t.url}/bucket?${r}`:`${t.url}/bucket`;return await eu(t.fetch,i,{headers:t.headers})})}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await iu(t.fetch,`${t.url}/bucket/${e}`,{},{headers:t.headers}))}from(e){var t=this;if(!ql(e))throw new Rl(`Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.`);let n=new Ml({baseUrl:this.url,catalogName:e,auth:{type:`custom`,getHeaders:async()=>t.headers},fetch:this.fetch}),r=this.shouldThrowOnError;return new Proxy(n,{get(e,t){let n=e[t];return typeof n==`function`?async(...t)=>{try{return{data:await n.apply(e,t),error:null}}catch(e){if(r)throw e;return{data:null,error:e}}}:n}})}},_u=class extends ou{constructor(e,t={},n){let r=e.replace(/\/$/,``),i=W(W({},mu),{},{"Content-Type":`application/json`},t);super(r,i,n,`vectors`)}async createIndex(e){var t=this;return t.handleOperation(async()=>await au.post(t.fetch,`${t.url}/CreateIndex`,e,{headers:t.headers})||{})}async getIndex(e,t){var n=this;return n.handleOperation(async()=>await au.post(n.fetch,`${n.url}/GetIndex`,{vectorBucketName:e,indexName:t},{headers:n.headers}))}async listIndexes(e){var t=this;return t.handleOperation(async()=>await au.post(t.fetch,`${t.url}/ListIndexes`,e,{headers:t.headers}))}async deleteIndex(e,t){var n=this;return n.handleOperation(async()=>await au.post(n.fetch,`${n.url}/DeleteIndex`,{vectorBucketName:e,indexName:t},{headers:n.headers})||{})}},vu=class extends ou{constructor(e,t={},n){let r=e.replace(/\/$/,``),i=W(W({},mu),{},{"Content-Type":`application/json`},t);super(r,i,n,`vectors`)}async putVectors(e){var t=this;if(e.vectors.length<1||e.vectors.length>500)throw Error(`Vector batch size must be between 1 and 500 items`);return t.handleOperation(async()=>await au.post(t.fetch,`${t.url}/PutVectors`,e,{headers:t.headers})||{})}async getVectors(e){var t=this;return t.handleOperation(async()=>await au.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 Error(`segmentCount must be between 1 and 16`);if(e.segmentIndex!==void 0&&(e.segmentIndex<0||e.segmentIndex>=e.segmentCount))throw Error(`segmentIndex must be between 0 and ${e.segmentCount-1}`)}return t.handleOperation(async()=>await au.post(t.fetch,`${t.url}/ListVectors`,e,{headers:t.headers}))}async queryVectors(e){var t=this;return t.handleOperation(async()=>await au.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 Error(`Keys batch size must be between 1 and 500 items`);return t.handleOperation(async()=>await au.post(t.fetch,`${t.url}/DeleteVectors`,e,{headers:t.headers})||{})}},yu=class extends ou{constructor(e,t={},n){let r=e.replace(/\/$/,``),i=W(W({},mu),{},{"Content-Type":`application/json`},t);super(r,i,n,`vectors`)}async createBucket(e){var t=this;return t.handleOperation(async()=>await au.post(t.fetch,`${t.url}/CreateVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}async getBucket(e){var t=this;return t.handleOperation(async()=>await au.post(t.fetch,`${t.url}/GetVectorBucket`,{vectorBucketName:e},{headers:t.headers}))}async listBuckets(e={}){var t=this;return t.handleOperation(async()=>await au.post(t.fetch,`${t.url}/ListVectorBuckets`,e,{headers:t.headers}))}async deleteBucket(e){var t=this;return t.handleOperation(async()=>await au.post(t.fetch,`${t.url}/DeleteVectorBucket`,{vectorBucketName:e},{headers:t.headers})||{})}},bu=class extends yu{constructor(e,t={}){super(e,t.headers||{},t.fetch)}from(e){return new xu(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)}},xu=class extends _u{constructor(e,t,n,r){super(e,t,r),this.vectorBucketName=n}async createIndex(e){var t=()=>super.createIndex,n=this;return t().call(n,W(W({},e),{},{vectorBucketName:n.vectorBucketName}))}async listIndexes(e={}){var t=()=>super.listIndexes,n=this;return t().call(n,W(W({},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 Su(this.url,this.headers,this.vectorBucketName,e,this.fetch)}},Su=class extends vu{constructor(e,t,n,r,i){super(e,t,i),this.vectorBucketName=n,this.indexName=r}async putVectors(e){var t=()=>super.putVectors,n=this;return t().call(n,W(W({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async getVectors(e){var t=()=>super.getVectors,n=this;return t().call(n,W(W({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async listVectors(e={}){var t=()=>super.listVectors,n=this;return t().call(n,W(W({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async queryVectors(e){var t=()=>super.queryVectors,n=this;return t().call(n,W(W({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async deleteVectors(e){var t=()=>super.deleteVectors,n=this;return t().call(n,W(W({},e),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}},Cu=class extends hu{constructor(e,t={},n,r){super(e,t,n,r)}from(e){return new pu(this.url,this.headers,e,this.fetch)}get vectors(){return new bu(this.url+`/vector`,{headers:this.headers,fetch:this.fetch})}get analytics(){return new gu(this.url+`/iceberg`,this.headers,this.fetch)}},wu={"X-Client-Info":`supabase-js/2.30.0`},Tu=s(((e,t)=>{var n=typeof globalThis<`u`&&globalThis||typeof self<`u`&&self||typeof global<`u`&&global,r=(function(){function e(){this.fetch=!1,this.DOMException=n.DOMException}return e.prototype=n,new e})();(function(e){(function(t){var n=e!==void 0&&e||typeof self<`u`&&self||typeof global<`u`&&global||{},r={searchParams:`URLSearchParams`in n,iterable:`Symbol`in n&&`iterator`in Symbol,blob:`FileReader`in n&&`Blob`in n&&(function(){try{return new Blob,!0}catch{return!1}})(),formData:`FormData`in n,arrayBuffer:`ArrayBuffer`in n};function i(e){return e&&DataView.prototype.isPrototypeOf(e)}if(r.arrayBuffer)var a=[`[object Int8Array]`,`[object Uint8Array]`,`[object Uint8ClampedArray]`,`[object Int16Array]`,`[object Uint16Array]`,`[object Int32Array]`,`[object Uint32Array]`,`[object Float32Array]`,`[object Float64Array]`],o=ArrayBuffer.isView||function(e){return e&&a.indexOf(Object.prototype.toString.call(e))>-1};function s(e){if(typeof e!=`string`&&(e=String(e)),/[^a-z0-9\-#$%&'*+.^_`|~!]/i.test(e)||e===``)throw TypeError(`Invalid character in header field name: "`+e+`"`);return e.toLowerCase()}function c(e){return typeof e!=`string`&&(e=String(e)),e}function l(e){var t={next:function(){var t=e.shift();return{done:t===void 0,value:t}}};return r.iterable&&(t[Symbol.iterator]=function(){return t}),t}function u(e){this.map={},e instanceof u?e.forEach(function(e,t){this.append(t,e)},this):Array.isArray(e)?e.forEach(function(e){if(e.length!=2)throw TypeError(`Headers constructor: expected name/value pair to be length 2, found`+e.length);this.append(e[0],e[1])},this):e&&Object.getOwnPropertyNames(e).forEach(function(t){this.append(t,e[t])},this)}u.prototype.append=function(e,t){e=s(e),t=c(t);var n=this.map[e];this.map[e]=n?n+`, `+t:t},u.prototype.delete=function(e){delete this.map[s(e)]},u.prototype.get=function(e){return e=s(e),this.has(e)?this.map[e]:null},u.prototype.has=function(e){return this.map.hasOwnProperty(s(e))},u.prototype.set=function(e,t){this.map[s(e)]=c(t)},u.prototype.forEach=function(e,t){for(var n in this.map)this.map.hasOwnProperty(n)&&e.call(t,this.map[n],n,this)},u.prototype.keys=function(){var e=[];return this.forEach(function(t,n){e.push(n)}),l(e)},u.prototype.values=function(){var e=[];return this.forEach(function(t){e.push(t)}),l(e)},u.prototype.entries=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),l(e)},r.iterable&&(u.prototype[Symbol.iterator]=u.prototype.entries);function d(e){if(!e._noBody){if(e.bodyUsed)return Promise.reject(TypeError(`Already read`));e.bodyUsed=!0}}function f(e){return new Promise(function(t,n){e.onload=function(){t(e.result)},e.onerror=function(){n(e.error)}})}function p(e){var t=new FileReader,n=f(t);return t.readAsArrayBuffer(e),n}function m(e){var t=new FileReader,n=f(t),r=/charset=([A-Za-z0-9_-]+)/.exec(e.type),i=r?r[1]:`utf-8`;return t.readAsText(e,i),n}function h(e){for(var t=new Uint8Array(e),n=Array(t.length),r=0;r<t.length;r++)n[r]=String.fromCharCode(t[r]);return n.join(``)}function g(e){if(e.slice)return e.slice(0);var t=new Uint8Array(e.byteLength);return t.set(new Uint8Array(e)),t.buffer}function _(){return this.bodyUsed=!1,this._initBody=function(e){this.bodyUsed=this.bodyUsed,this._bodyInit=e,e?typeof e==`string`?this._bodyText=e:r.blob&&Blob.prototype.isPrototypeOf(e)?this._bodyBlob=e:r.formData&&FormData.prototype.isPrototypeOf(e)?this._bodyFormData=e:r.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)?this._bodyText=e.toString():r.arrayBuffer&&r.blob&&i(e)?(this._bodyArrayBuffer=g(e.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):r.arrayBuffer&&(ArrayBuffer.prototype.isPrototypeOf(e)||o(e))?this._bodyArrayBuffer=g(e):this._bodyText=e=Object.prototype.toString.call(e):(this._noBody=!0,this._bodyText=``),this.headers.get(`content-type`)||(typeof e==`string`?this.headers.set(`content-type`,`text/plain;charset=UTF-8`):this._bodyBlob&&this._bodyBlob.type?this.headers.set(`content-type`,this._bodyBlob.type):r.searchParams&&URLSearchParams.prototype.isPrototypeOf(e)&&this.headers.set(`content-type`,`application/x-www-form-urlencoded;charset=UTF-8`))},r.blob&&(this.blob=function(){var e=d(this);if(e)return e;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw Error(`could not read FormData body as blob`);return Promise.resolve(new Blob([this._bodyText]))}),this.arrayBuffer=function(){if(this._bodyArrayBuffer)return d(this)||(ArrayBuffer.isView(this._bodyArrayBuffer)?Promise.resolve(this._bodyArrayBuffer.buffer.slice(this._bodyArrayBuffer.byteOffset,this._bodyArrayBuffer.byteOffset+this._bodyArrayBuffer.byteLength)):Promise.resolve(this._bodyArrayBuffer));if(r.blob)return this.blob().then(p);throw Error(`could not read as ArrayBuffer`)},this.text=function(){var e=d(this);if(e)return e;if(this._bodyBlob)return m(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(h(this._bodyArrayBuffer));if(this._bodyFormData)throw Error(`could not read FormData body as text`);return Promise.resolve(this._bodyText)},r.formData&&(this.formData=function(){return this.text().then(x)}),this.json=function(){return this.text().then(JSON.parse)},this}var v=[`CONNECT`,`DELETE`,`GET`,`HEAD`,`OPTIONS`,`PATCH`,`POST`,`PUT`,`TRACE`];function y(e){var t=e.toUpperCase();return v.indexOf(t)>-1?t:e}function b(e,t){if(!(this instanceof b))throw TypeError(`Please use the "new" operator, this DOM object constructor cannot be called as a function.`);t||={};var r=t.body;if(e instanceof b){if(e.bodyUsed)throw TypeError(`Already read`);this.url=e.url,this.credentials=e.credentials,t.headers||(this.headers=new u(e.headers)),this.method=e.method,this.mode=e.mode,this.signal=e.signal,!r&&e._bodyInit!=null&&(r=e._bodyInit,e.bodyUsed=!0)}else this.url=String(e);if(this.credentials=t.credentials||this.credentials||`same-origin`,(t.headers||!this.headers)&&(this.headers=new u(t.headers)),this.method=y(t.method||this.method||`GET`),this.mode=t.mode||this.mode||null,this.signal=t.signal||this.signal||function(){if(`AbortController`in n)return new AbortController().signal}(),this.referrer=null,(this.method===`GET`||this.method===`HEAD`)&&r)throw TypeError(`Body not allowed for GET or HEAD requests`);if(this._initBody(r),(this.method===`GET`||this.method===`HEAD`)&&(t.cache===`no-store`||t.cache===`no-cache`)){var i=/([?&])_=[^&]*/;if(i.test(this.url))this.url=this.url.replace(i,`$1_=`+new Date().getTime());else{var a=/\?/;this.url+=(a.test(this.url)?`&`:`?`)+`_=`+new Date().getTime()}}}b.prototype.clone=function(){return new b(this,{body:this._bodyInit})};function x(e){var t=new FormData;return e.trim().split(`&`).forEach(function(e){if(e){var n=e.split(`=`),r=n.shift().replace(/\+/g,` `),i=n.join(`=`).replace(/\+/g,` `);t.append(decodeURIComponent(r),decodeURIComponent(i))}}),t}function S(e){var t=new u;return e.replace(/\r?\n[\t ]+/g,` `).split(`\r`).map(function(e){return e.indexOf(`
`)===0?e.substr(1,e.length):e}).forEach(function(e){var n=e.split(`:`),r=n.shift().trim();if(r){var i=n.join(`:`).trim();try{t.append(r,i)}catch(e){console.warn(`Response `+e.message)}}}),t}_.call(b.prototype);function C(e,t){if(!(this instanceof C))throw TypeError(`Please use the "new" operator, this DOM object constructor cannot be called as a function.`);if(t||={},this.type=`default`,this.status=t.status===void 0?200:t.status,this.status<200||this.status>599)throw 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=t.statusText===void 0?``:``+t.statusText,this.headers=new u(t.headers),this.url=t.url||``,this._initBody(e)}_.call(C.prototype),C.prototype.clone=function(){return new C(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new u(this.headers),url:this.url})},C.error=function(){var e=new C(null,{status:200,statusText:``});return e.ok=!1,e.status=0,e.type=`error`,e};var w=[301,302,303,307,308];C.redirect=function(e,t){if(w.indexOf(t)===-1)throw RangeError(`Invalid status code`);return new C(null,{status:t,headers:{location:e}})},t.DOMException=n.DOMException;try{new t.DOMException}catch{t.DOMException=function(e,t){this.message=e,this.name=t;var n=Error(e);this.stack=n.stack},t.DOMException.prototype=Object.create(Error.prototype),t.DOMException.prototype.constructor=t.DOMException}function T(e,i){return new Promise(function(a,o){var l=new b(e,i);if(l.signal&&l.signal.aborted)return o(new t.DOMException(`Aborted`,`AbortError`));var d=new XMLHttpRequest;function f(){d.abort()}d.onload=function(){var e={statusText:d.statusText,headers:S(d.getAllResponseHeaders()||``)};e.status=l.url.indexOf(`file://`)===0&&(d.status<200||d.status>599)?200:d.status,e.url=`responseURL`in d?d.responseURL:e.headers.get(`X-Request-URL`);var t=`response`in d?d.response:d.responseText;setTimeout(function(){a(new C(t,e))},0)},d.onerror=function(){setTimeout(function(){o(TypeError(`Network request failed`))},0)},d.ontimeout=function(){setTimeout(function(){o(TypeError(`Network request timed out`))},0)},d.onabort=function(){setTimeout(function(){o(new t.DOMException(`Aborted`,`AbortError`))},0)};function p(e){try{return e===``&&n.location.href?n.location.href:e}catch{return e}}if(d.open(l.method,p(l.url),!0),l.credentials===`include`?d.withCredentials=!0:l.credentials===`omit`&&(d.withCredentials=!1),`responseType`in d&&(r.blob?d.responseType=`blob`:r.arrayBuffer&&(d.responseType=`arraybuffer`)),i&&typeof i.headers==`object`&&!(i.headers instanceof u||n.Headers&&i.headers instanceof n.Headers)){var m=[];Object.getOwnPropertyNames(i.headers).forEach(function(e){m.push(s(e)),d.setRequestHeader(e,c(i.headers[e]))}),l.headers.forEach(function(e,t){m.indexOf(t)===-1&&d.setRequestHeader(t,e)})}else l.headers.forEach(function(e,t){d.setRequestHeader(t,e)});l.signal&&(l.signal.addEventListener(`abort`,f),d.onreadystatechange=function(){d.readyState===4&&l.signal.removeEventListener(`abort`,f)}),d.send(l._bodyInit===void 0?null:l._bodyInit)})}return T.polyfill=!0,n.fetch||(n.fetch=T,n.Headers=u,n.Request=b,n.Response=C),t.Headers=u,t.Request=b,t.Response=C,t.fetch=T,Object.defineProperty(t,"__esModule",{value:!0}),t})({})})(r),r.fetch.ponyfill=!0,delete r.fetch.polyfill;var i=n.fetch?n:r;e=i.fetch,e.default=i.fetch,e.fetch=i.fetch,e.Headers=i.Headers,e.Request=i.Request,e.Response=i.Response,t.exports=e})),Eu=u(Tu()),Du=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Ou=e=>{let t;return t=e||(typeof fetch>`u`?Eu.default:fetch),(...e)=>t(...e)},ku=()=>typeof Headers>`u`?Eu.Headers:Headers,Au=(e,t,n)=>{let r=Ou(n),i=ku();return(n,a)=>Du(void 0,void 0,void 0,function*(){let o=(yield t())??e,s=new i(a?.headers);return s.has(`apikey`)||s.set(`apikey`,e),s.has(`Authorization`)||s.set(`Authorization`,`Bearer ${o}`),r(n,Object.assign(Object.assign({},a),{headers:s}))})};function ju(e){return e.replace(/\/$/,``)}function tee(e,t){let{db:n,auth:r,realtime:i,global:a}=e,{db:o,auth:s,realtime:c,global:l}=t;return{db:Object.assign(Object.assign({},o),n),auth:Object.assign(Object.assign({},s),r),realtime:Object.assign(Object.assign({},c),i),global:Object.assign(Object.assign({},l),a)}}var nee=`modulepreload`,Mu=function(e){return`/`+e},Nu={},Pu=function(e){return e.pathname.endsWith(`.css`)},Fu=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},Iu=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=Mu(t,n);let r=s(t),i=Pu(r);return Fu(Nu,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:nee,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})};function Lu(e){return Math.round(Date.now()/1e3)+e}function Ru(){return`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,function(e){let t=Math.random()*16|0;return(e==`x`?t:t&3|8).toString(16)})}var zu=()=>typeof document<`u`,Bu={tested:!1,writable:!1},Vu=()=>{if(!zu())return!1;try{if(typeof globalThis.localStorage!=`object`)return!1}catch{return!1}if(Bu.tested)return Bu.writable;let e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e),globalThis.localStorage.removeItem(e),Bu.tested=!0,Bu.writable=!0}catch{Bu.tested=!0,Bu.writable=!1}return Bu.writable};function Hu(e,t){t||=(window==null?void 0:window.location)?.href||``,e=e.replace(/[\[\]]/g,`\\$&`);let n=RegExp(`[?&#]`+e+`(=([^&#]*)|&|#|$)`).exec(t);return n?n[2]?decodeURIComponent(n[2].replace(/\+/g,` `)):``:null}var Uu=e=>{let t;return t=e||(typeof fetch>`u`?async(...e)=>await(await Iu(async()=>{let{fetch:e}=await Promise.resolve().then(()=>u(Tu()));return{fetch:e}},[])).fetch(...e):fetch),(...e)=>t(...e)},ree=e=>typeof e==`object`&&!!e&&`status`in e&&`ok`in e&&`json`in e&&typeof e.json==`function`,Wu=async(e,t,n)=>{await e.setItem(t,JSON.stringify(n))},Gu=async(e,t)=>{let n=await e.getItem(t);if(!n)return null;try{return JSON.parse(n)}catch{return n}},Ku=async(e,t)=>{await e.removeItem(t)};function iee(e){let t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,n=``,r,i,a,o,s,c,l,u=0;for(e=e.replace(`-`,`+`).replace(`_`,`/`);u<e.length;)o=t.indexOf(e.charAt(u++)),s=t.indexOf(e.charAt(u++)),c=t.indexOf(e.charAt(u++)),l=t.indexOf(e.charAt(u++)),r=o<<2|s>>4,i=(s&15)<<4|c>>2,a=(c&3)<<6|l,n+=String.fromCharCode(r),c!=64&&i!=0&&(n+=String.fromCharCode(i)),l!=64&&a!=0&&(n+=String.fromCharCode(a));return n}var qu=class e{constructor(){this.promise=new e.promiseConstructor((e,t)=>{this.resolve=e,this.reject=t})}};qu.promiseConstructor=Promise;function Ju(e){let t=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}=?$|[a-z0-9_-]{2}(==)?$)$/i,n=e.split(`.`);if(n.length!==3)throw Error(`JWT is not valid: not a JWT structure`);if(!t.test(n[1]))throw Error(`JWT is not valid: payload is not in base64url format`);let r=n[1];return JSON.parse(iee(r))}function Yu(e){return new Promise(t=>{setTimeout(()=>t(null),e)})}function Xu(e,t){return new Promise((n,r)=>{(async()=>{for(let i=0;i<1/0;i++)try{let r=await e(i);if(!t(i,null,r)){n(r);return}}catch(e){if(!t(i,e)){r(e);return}}})()})}function Zu(e){return(`0`+e.toString(16)).substr(-2)}function Qu(){let e=new Uint32Array(56);if(typeof crypto>`u`){let e=``;for(let t=0;t<56;t++)e+=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~`.charAt(Math.floor(Math.random()*66));return e}return crypto.getRandomValues(e),Array.from(e,Zu).join(``)}async function $u(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t),r=new Uint8Array(n);return Array.from(r).map(e=>String.fromCharCode(e)).join(``)}function ed(e){return btoa(e).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}async function td(e){return typeof crypto>`u`?(console.warn(`WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.`),e):ed(await $u(e))}var nd=`__stack_guard__`,rd=`__`,id=/__stack_guard__([a-zA-Z0-9_-]+)__/,ad=!1,od;function sd(e){od();let t;try{throw Error()}catch(e){t=e}let n=t.stack?.split(`
`)??[];for(let t=0;t<n.length;t+=1){let r=n[t].match(id);if(r&&r[1]===e)return!0}return!1}async function cd(e,t){await od();let n=`${nd}${e}${rd}`;return await{[n]:async()=>await t()}[n]()}od=async()=>{ad||(ad=!0,await cd(`ENV_CHECK`,async()=>{let e=sd(`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}))};var ld=class extends Error{constructor(e,t){super(e),this.__isAuthError=!0,this.name=`AuthError`,this.status=t}};function ud(e){return typeof e==`object`&&!!e&&`__isAuthError`in e}var dd=class extends ld{constructor(e,t){super(e,t),this.name=`AuthApiError`,this.status=t}toJSON(){return{name:this.name,message:this.message,status:this.status}}};function fd(e){return ud(e)&&e.name===`AuthApiError`}var pd=class extends ld{constructor(e,t){super(e),this.name=`AuthUnknownError`,this.originalError=t}},md=class extends ld{constructor(e,t,n){super(e),this.name=t,this.status=n}toJSON(){return{name:this.name,message:this.message,status:this.status}}},hd=class extends md{constructor(){super(`Auth session missing!`,`AuthSessionMissingError`,400)}},gd=class extends md{constructor(){super(`Auth session or user missing`,`AuthInvalidTokenResponseError`,500)}},_d=class extends md{constructor(e){super(e,`AuthInvalidCredentialsError`,400)}},vd=class extends md{constructor(e,t=null){super(e,`AuthImplicitGrantRedirectError`,500),this.details=null,this.details=t}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}},yd=class extends md{constructor(e,t=null){super(e,`AuthPKCEGrantCodeExchangeError`,500),this.details=null,this.details=t}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}},bd=class extends md{constructor(e,t){super(e,`AuthRetryableFetchError`,t)}};function xd(e){return ud(e)&&e.name===`AuthRetryableFetchError`}var aee=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Sd=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),oee=[502,503,504];async function Cd(e){if(!ree(e))throw new bd(Sd(e),0);if(oee.includes(e.status))throw new bd(Sd(e),e.status);let t;try{t=await e.json()}catch(e){throw new pd(Sd(e),e)}throw new dd(Sd(t),e.status||500)}var see=(e,t,n,r)=>{let 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(r),Object.assign(Object.assign({},i),n))};async function wd(e,t,n,r){let i=Object.assign({},r?.headers);r?.jwt&&(i.Authorization=`Bearer ${r.jwt}`);let a=r?.query??{};r?.redirectTo&&(a.redirect_to=r.redirectTo);let o=await cee(e,t,n+(Object.keys(a).length?`?`+new URLSearchParams(a).toString():``),{headers:i,noResolveJson:r?.noResolveJson},{},r?.body);return r?.xform?r?.xform(o):{data:Object.assign({},o),error:null}}async function cee(e,t,n,r,i,a){let o=see(t,r,i,a),s;try{s=await e(n,o)}catch(e){throw console.error(e),new bd(Sd(e),0)}if(s.ok||await Cd(s),r?.noResolveJson)return s;try{return await s.json()}catch(e){await Cd(e)}}function Td(e){let t=null;dee(e)&&(t=Object.assign({},e),t.expires_at=Lu(e.expires_in));let n=e.user??e;return{data:{session:t,user:n},error:null}}function Ed(e){return{data:{user:e.user??e},error:null}}function lee(e){return{data:e,error:null}}function Dd(e){let{action_link:t,email_otp:n,hashed_token:r,redirect_to:i,verification_type:a}=e,o=aee(e,[`action_link`,`email_otp`,`hashed_token`,`redirect_to`,`verification_type`]);return{data:{properties:{action_link:t,email_otp:n,hashed_token:r,redirect_to:i,verification_type:a},user:Object.assign({},o)},error:null}}function uee(e){return e}function dee(e){return e.access_token&&e.refresh_token&&e.expires_in}var fee=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Od=class{constructor({url:e=``,headers:t={},fetch:n}){this.url=e,this.headers=t,this.fetch=Uu(n),this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)}}async signOut(e,t=`global`){try{return await wd(this.fetch,`POST`,`${this.url}/logout?scope=${t}`,{headers:this.headers,jwt:e,noResolveJson:!0}),{data:null,error:null}}catch(e){if(ud(e))return{data:null,error:e};throw e}}async inviteUserByEmail(e,t={}){try{return await wd(this.fetch,`POST`,`${this.url}/invite`,{body:{email:e,data:t.data},headers:this.headers,redirectTo:t.redirectTo,xform:Ed})}catch(e){if(ud(e))return{data:{user:null},error:e};throw e}}async generateLink(e){try{let{options:t}=e,n=fee(e,[`options`]),r=Object.assign(Object.assign({},n),t);return`newEmail`in n&&(r.new_email=n?.newEmail,delete r.newEmail),await wd(this.fetch,`POST`,`${this.url}/admin/generate_link`,{body:r,headers:this.headers,xform:Dd,redirectTo:t?.redirectTo})}catch(e){if(ud(e))return{data:{properties:null,user:null},error:e};throw e}}async createUser(e){try{return await wd(this.fetch,`POST`,`${this.url}/admin/users`,{body:e,headers:this.headers,xform:Ed})}catch(e){if(ud(e))return{data:{user:null},error:e};throw e}}async listUsers(e){try{let t={nextPage:null,lastPage:0,total:0},n=await wd(this.fetch,`GET`,`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(e?.page)?.toString()??``,per_page:(e?.perPage)?.toString()??``},xform:uee});if(n.error)throw n.error;let r=await n.json(),i=n.headers.get(`x-total-count`)??0,a=n.headers.get(`link`)?.split(`,`)??[];return a.length>0&&(a.forEach(e=>{let n=parseInt(e.split(`;`)[0].split(`=`)[1].substring(0,1)),r=JSON.parse(e.split(`;`)[1].split(`=`)[1]);t[`${r}Page`]=n}),t.total=parseInt(i)),{data:Object.assign(Object.assign({},r),t),error:null}}catch(e){if(ud(e))return{data:{users:[]},error:e};throw e}}async getUserById(e){try{return await wd(this.fetch,`GET`,`${this.url}/admin/users/${e}`,{headers:this.headers,xform:Ed})}catch(e){if(ud(e))return{data:{user:null},error:e};throw e}}async updateUserById(e,t){try{return await wd(this.fetch,`PUT`,`${this.url}/admin/users/${e}`,{body:t,headers:this.headers,xform:Ed})}catch(e){if(ud(e))return{data:{user:null},error:e};throw e}}async deleteUser(e,t=!1){try{return await wd(this.fetch,`DELETE`,`${this.url}/admin/users/${e}`,{headers:this.headers,body:{should_soft_delete:t},xform:Ed})}catch(e){if(ud(e))return{data:{user:null},error:e};throw e}}async _listFactors(e){try{let{data:t,error:n}=await wd(this.fetch,`GET`,`${this.url}/admin/users/${e.userId}/factors`,{headers:this.headers,xform:e=>({data:{factors:e},error:null})});return{data:t,error:n}}catch(e){if(ud(e))return{data:null,error:e};throw e}}async _deleteFactor(e){try{return{data:await wd(this.fetch,`DELETE`,`${this.url}/admin/users/${e.userId}/factors/${e.id}`,{headers:this.headers}),error:null}}catch(e){if(ud(e))return{data:null,error:e};throw e}}},kd=`2.43.1`,Ad=`http://localhost:9999`,jd=`supabase.auth.token`,Md={"X-Client-Info":`gotrue-js/${kd}`},Nd={getItem:e=>Vu()?globalThis.localStorage.getItem(e):null,setItem:(e,t)=>{Vu()&&globalThis.localStorage.setItem(e,t)},removeItem:e=>{Vu()&&globalThis.localStorage.removeItem(e)}};function pee(){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)}}pee();var mee={url:Ad,storageKey:jd,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:Md,flowType:`implicit`,debug:!1},Pd=3e4,Fd=3,Id=class e{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=e.nextInstanceID,e.nextInstanceID+=1,this.instanceID>0&&zu()&&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.`);let r=Object.assign(Object.assign({},mee),t);if(this.logDebugMessages=r.debug,this.inMemorySession=null,this.storageKey=r.storageKey,this.autoRefreshToken=r.autoRefreshToken,this.persistSession=r.persistSession,this.storage=r.storage||Nd,this.admin=new Od({url:r.url,headers:r.headers,fetch:r.fetch}),this.url=r.url,this.headers=r.headers,this.fetch=Uu(r.fetch),this.detectSessionInUrl=r.detectSessionInUrl,this.flowType=r.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===Nd&&!Vu()&&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.`),zu()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(e){console.error(`Failed to create a new BroadcastChannel, multi-tab state changes will not be available`,e)}(n=this.broadcastChannel)==null||n.addEventListener(`message`,async e=>{this._debug(`received broadcast notification from other tab or client`,e),await this._notifyAllSubscribers(e.data.event,e.data.session,!1)})}this.initialize()}_debug(...e){return this.logDebugMessages&&console.log(`GoTrueClient@${this.instanceID} ${new Date().toISOString()}`,...e),this}initialize(){return this.initializePromise?this.initializePromise:this._initialize()}async _initialize(){if(this.initializePromise)throw Error(`Double call of #_initialize()`);return this.initializePromise=cd(`_initialize`,async()=>{try{let e=zu()?await this._isPKCEFlow():!1;if(this._debug(`#_initialize()`,`begin`,`is PKCE flow`,e),e||this.detectSessionInUrl&&this._isImplicitGrantFlow()){let{data:t,error:n}=await this._getSessionFromUrl(e);if(n)return this._debug(`#_initialize()`,`error detecting session from URL`,n),await this._removeSession(),{error:n};let{session:r,redirectType:i}=t;return this._debug(`#_initialize()`,`detected session in URL`,r,`redirect type`,i),await this._saveSession(r),setTimeout(async()=>{i===`recovery`?await this._notifyAllSubscribers(`PASSWORD_RECOVERY`,r):await this._notifyAllSubscribers(`SIGNED_IN`,r)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(e){return ud(e)?{error:e}:{error:new pd(`Unexpected error during initialization`,e)}}finally{await this._handleVisibilityChange(),this._debug(`#_initialize()`,`end`)}}),await this.initializePromise}async signUp(e){try{await this._removeSession();let t;if(`email`in e){let{email:n,password:r,options:i}=e,a=null,o=null;if(this.flowType===`pkce`){let e=Qu();await Wu(this.storage,`${this.storageKey}-code-verifier`,e),a=await td(e),o=e===a?`plain`:`s256`}t=await wd(this.fetch,`POST`,`${this.url}/signup`,{headers:this.headers,redirectTo:i?.emailRedirectTo,body:{email:n,password:r,data:i?.data??{},gotrue_meta_security:{captcha_token:i?.captchaToken},code_challenge:a,code_challenge_method:o},xform:Td})}else if(`phone`in e){let{phone:n,password:r,options:i}=e;t=await wd(this.fetch,`POST`,`${this.url}/signup`,{headers:this.headers,body:{phone:n,password:r,data:i?.data??{},channel:i?.channel??`sms`,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:Td})}else throw new _d(`You must provide either an email or phone number and a password`);let{data:n,error:r}=t;if(r||!n)return{data:{user:null,session:null},error:r};let i=n.session,a=n.user;return n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers(`SIGNED_IN`,i)),{data:{user:a,session:i},error:null}}catch(e){if(ud(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithPassword(e){try{await this._removeSession();let t;if(`email`in e){let{email:n,password:r,options:i}=e;t=await wd(this.fetch,`POST`,`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:n,password:r,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:Td})}else if(`phone`in e){let{phone:n,password:r,options:i}=e;t=await wd(this.fetch,`POST`,`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:n,password:r,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:Td})}else throw new _d(`You must provide either an email or phone number and a password`);let{data:n,error:r}=t;return r?{data:{user:null,session:null},error:r}:!n||!n.session||!n.user?{data:{user:null,session:null},error:new gd}:(n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers(`SIGNED_IN`,n.session)),{data:{user:n.user,session:n.session},error:r})}catch(e){if(ud(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithOAuth(e){return await this._removeSession(),await this._handleProviderSignIn(e.provider,{redirectTo:e.options?.redirectTo,scopes:e.options?.scopes,queryParams:e.options?.queryParams,skipBrowserRedirect:e.options?.skipBrowserRedirect})}async exchangeCodeForSession(e){let t=await Gu(this.storage,`${this.storageKey}-code-verifier`),{data:n,error:r}=await wd(this.fetch,`POST`,`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:e,code_verifier:t},xform:Td});return await Ku(this.storage,`${this.storageKey}-code-verifier`),r?{data:{user:null,session:null},error:r}:!n||!n.session||!n.user?{data:{user:null,session:null},error:new gd}:(n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers(`SIGNED_IN`,n.session)),{data:n,error:r})}async signInWithIdToken(e){await this._removeSession();try{let{options:t,provider:n,token:r,access_token:i,nonce:a}=e,{data:o,error:s}=await wd(this.fetch,`POST`,`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:n,id_token:r,access_token:i,nonce:a,gotrue_meta_security:{captcha_token:t?.captchaToken}},xform:Td});return s?{data:{user:null,session:null},error:s}:!o||!o.session||!o.user?{data:{user:null,session:null},error:new gd}:(o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers(`SIGNED_IN`,o.session)),{data:o,error:s})}catch(e){if(ud(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithOtp(e){try{if(await this._removeSession(),`email`in e){let{email:t,options:n}=e,r=null,i=null;if(this.flowType===`pkce`){let e=Qu();await Wu(this.storage,`${this.storageKey}-code-verifier`,e),r=await td(e),i=e===r?`plain`:`s256`}let{error:a}=await wd(this.fetch,`POST`,`${this.url}/otp`,{headers:this.headers,body:{email:t,data:n?.data??{},create_user:n?.shouldCreateUser??!0,gotrue_meta_security:{captcha_token:n?.captchaToken},code_challenge:r,code_challenge_method:i},redirectTo:n?.emailRedirectTo});return{data:{user:null,session:null},error:a}}if(`phone`in e){let{phone:t,options:n}=e,{data:r,error:i}=await wd(this.fetch,`POST`,`${this.url}/otp`,{headers:this.headers,body:{phone:t,data:n?.data??{},create_user:n?.shouldCreateUser??!0,gotrue_meta_security:{captcha_token:n?.captchaToken},channel:n?.channel??`sms`}});return{data:{user:null,session:null,messageId:r?.message_id},error:i}}throw new _d(`You must provide either an email or phone number.`)}catch(e){if(ud(e))return{data:{user:null,session:null},error:e};throw e}}async verifyOtp(e){try{e.type!==`email_change`&&e.type!==`phone_change`&&await this._removeSession();let{data:t,error:n}=await wd(this.fetch,`POST`,`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},e),{gotrue_meta_security:{captcha_token:e.options?.captchaToken}}),redirectTo:e.options?.redirectTo,xform:Td});if(n)throw n;if(!t)throw Error(`An error occurred on token verification.`);let r=t.session,i=t.user;return r?.access_token&&(await this._saveSession(r),await this._notifyAllSubscribers(`SIGNED_IN`,r)),{data:{user:i,session:r},error:null}}catch(e){if(ud(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithSSO(e){try{return await this._removeSession(),await wd(this.fetch,`POST`,`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},`providerId`in e?{provider_id:e.providerId}:null),`domain`in e?{domain:e.domain}:null),{redirect_to:e.options?.redirectTo??void 0}),e?.options?.captchaToken?{gotrue_meta_security:{captcha_token:e.options.captchaToken}}:null),{skip_http_redirect:!0}),headers:this.headers,xform:lee})}catch(e){if(ud(e))return{data:null,error:e};throw e}}async reauthenticate(){try{return await this._useSession(async e=>{let{data:{session:t},error:n}=e;if(n)throw n;if(!t)throw new hd;let{error:r}=await wd(this.fetch,`GET`,`${this.url}/reauthenticate`,{headers:this.headers,jwt:t.access_token});return{data:{user:null,session:null},error:r}})}catch(e){if(ud(e))return{data:{user:null,session:null},error:e};throw e}}async resend(e){try{e.type!=`email_change`&&e.type!=`phone_change`&&await this._removeSession();let t=`${this.url}/resend`;if(`email`in e){let{email:n,type:r,options:i}=e,{error:a}=await wd(this.fetch,`POST`,t,{headers:this.headers,body:{email:n,type:r,gotrue_meta_security:{captcha_token:i?.captchaToken}},redirectTo:i?.emailRedirectTo});return{data:{user:null,session:null},error:a}}if(`phone`in e){let{phone:n,type:r,options:i}=e,{data:a,error:o}=await wd(this.fetch,`POST`,t,{headers:this.headers,body:{phone:n,type:r,gotrue_meta_security:{captcha_token:i?.captchaToken}}});return{data:{user:null,session:null,messageId:a?.message_id},error:o}}throw new _d(`You must provide either an email or phone number and a type`)}catch(e){if(ud(e))return{data:{user:null,session:null},error:e};throw e}}async getSession(){return this._useSession(async e=>e)}async _useSession(e){return await cd(`_useSession`,async()=>await e(await this.__loadSession()))}async __loadSession(){if(this._debug(`#__loadSession()`,`begin`),this.logDebugMessages&&!sd(`_useSession`))throw Error(`Please use #_useSession()`);sd(`_initialize`)||await this.initializePromise;try{let e=null;if(this.persistSession){let t=await Gu(this.storage,this.storageKey);this._debug(`#getSession()`,`session from storage`,t),t!==null&&(this._isValidSession(t)?e=t:(this._debug(`#getSession()`,`session from storage is not valid`),await this._removeSession()))}else e=this.inMemorySession,this._debug(`#getSession()`,`session from memory`,e);if(!e)return{data:{session:null},error:null};let t=e.expires_at?e.expires_at<=Date.now()/1e3:!1;if(this._debug(`#__loadSession()`,`session has${t?``:` not`} expired`,`expires_at`,e.expires_at),!t)return{data:{session:e},error:null};let{session:n,error:r}=await this._callRefreshToken(e.refresh_token);return r?{data:{session:null},error:r}:{data:{session:n},error:null}}finally{this._debug(`#__loadSession()`,`end`)}}async getUser(e){try{return await this._useSession(async t=>{if(!e){let{data:n,error:r}=t;if(r)throw r;e=n.session?.access_token??void 0}return await wd(this.fetch,`GET`,`${this.url}/user`,{headers:this.headers,jwt:e,xform:Ed})})}catch(e){if(ud(e))return{data:{user:null},error:e};throw e}}async updateUser(e,t={}){try{return await this._useSession(async n=>{let{data:r,error:i}=n;if(i)throw i;if(!r.session)throw new hd;let a=r.session,{data:o,error:s}=await wd(this.fetch,`PUT`,`${this.url}/user`,{headers:this.headers,redirectTo:t?.emailRedirectTo,body:e,jwt:a.access_token,xform:Ed});if(s)throw s;return a.user=o.user,await this._saveSession(a),await this._notifyAllSubscribers(`USER_UPDATED`,a),{data:{user:a.user},error:null}})}catch(e){if(ud(e))return{data:{user:null},error:e};throw e}}_decodeJWT(e){return Ju(e)}async setSession(e){try{if(!e.access_token||!e.refresh_token)throw new hd;let t=Date.now()/1e3,n=t,r=!0,i=null,a=Ju(e.access_token);if(a.exp&&(n=a.exp,r=n<=t),r){let{session:t,error:n}=await this._callRefreshToken(e.refresh_token);if(n)return{data:{user:null,session:null},error:n};if(!t)return{data:{user:null,session:null},error:null};i=t}else{let{data:r,error:a}=await this.getUser(e.access_token);if(a)throw a;i={access_token:e.access_token,refresh_token:e.refresh_token,user:r.user,token_type:`bearer`,expires_in:n-t,expires_at:n},await this._saveSession(i),await this._notifyAllSubscribers(`SIGNED_IN`,i)}return{data:{user:i.user,session:i},error:null}}catch(e){if(ud(e))return{data:{session:null,user:null},error:e};throw e}}async refreshSession(e){try{return await this._useSession(async t=>{if(!e){let{data:n,error:r}=t;if(r)throw r;e=n.session??void 0}if(!e?.refresh_token)throw new hd;let{session:n,error:r}=await this._callRefreshToken(e.refresh_token);return r?{data:{user:null,session:null},error:r}:n?{data:{user:n.user,session:n},error:null}:{data:{user:null,session:null},error:null}})}catch(e){if(ud(e))return{data:{user:null,session:null},error:e};throw e}}async _getSessionFromUrl(e){try{if(!zu())throw new vd(`No browser detected.`);if(this.flowType===`implicit`&&!this._isImplicitGrantFlow())throw new vd(`Not a valid implicit grant flow url.`);if(this.flowType==`pkce`&&!e)throw new yd(`Not a valid PKCE flow url.`);if(e){let e=Hu(`code`);if(!e)throw new yd(`No code detected.`);let{data:t,error:n}=await this.exchangeCodeForSession(e);if(n)throw n;if(!t.session)throw new yd(`No session detected.`);let r=new URL(window.location.href);return r.searchParams.delete(`code`),window.history.replaceState(window.history.state,``,r.toString()),{data:{session:t.session,redirectType:null},error:null}}let t=Hu(`error_description`);if(t){let e=Hu(`error_code`);if(!e)throw new vd(`No error_code detected.`);let n=Hu(`error`);throw n?new vd(t,{error:n,code:e}):new vd(`No error detected.`)}let n=Hu(`provider_token`),r=Hu(`provider_refresh_token`),i=Hu(`access_token`);if(!i)throw new vd(`No access_token detected.`);let a=Hu(`expires_in`);if(!a)throw new vd(`No expires_in detected.`);let o=Hu(`refresh_token`);if(!o)throw new vd(`No refresh_token detected.`);let s=Hu(`token_type`);if(!s)throw new vd(`No token_type detected.`);let c=Math.round(Date.now()/1e3)+parseInt(a),{data:l,error:u}=await this.getUser(i);if(u)throw u;let d=l.user,f={provider_token:n,provider_refresh_token:r,access_token:i,expires_in:parseInt(a),expires_at:c,refresh_token:o,token_type:s,user:d},p=Hu(`type`);return window.location.hash=``,this._debug(`#_getSessionFromUrl()`,`clearing window.location.hash`),{data:{session:f,redirectType:p},error:null}}catch(e){if(ud(e))return{data:{session:null,redirectType:null},error:e};throw e}}_isImplicitGrantFlow(){return zu()&&(!!Hu(`access_token`)||!!Hu(`error_description`))}async _isPKCEFlow(){let e=await Gu(this.storage,`${this.storageKey}-code-verifier`);return!!Hu(`code`)&&!!e}async signOut({scope:e}={scope:`global`}){return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)return{error:r};let i=n.session?.access_token;if(i){let{error:t}=await this.admin.signOut(i,e);if(t&&(!fd(t)||t.status!==404&&t.status!==401))return{error:t}}return e!==`others`&&(await this._removeSession(),await Ku(this.storage,`${this.storageKey}-code-verifier`),await this._notifyAllSubscribers(`SIGNED_OUT`,null)),{error:null}})}onAuthStateChange(e){let t=Ru(),n={id:t,callback:e,unsubscribe:()=>{this._debug(`#unsubscribe()`,`state change callback with id removed`,t),this.stateChangeEmitters.delete(t)}};return this._debug(`#onAuthStateChange()`,`registered callback with id`,t),this.stateChangeEmitters.set(t,n),this._emitInitialSession(t),{data:{subscription:n}}}async _emitInitialSession(e){return await this._useSession(async t=>{try{let{data:{session:n},error:r}=t;if(r)throw r;await this.stateChangeEmitters.get(e)?.callback(`INITIAL_SESSION`,n),this._debug(`INITIAL_SESSION`,`callback id`,e,`session`,n)}catch(t){await this.stateChangeEmitters.get(e)?.callback(`INITIAL_SESSION`,null),this._debug(`INITIAL_SESSION`,`callback id`,e,`error`,t),console.error(t)}})}async resetPasswordForEmail(e,t={}){let n=null,r=null;if(this.flowType===`pkce`){let e=Qu();await Wu(this.storage,`${this.storageKey}-code-verifier`,e),n=await td(e),r=e===n?`plain`:`s256`}try{return await wd(this.fetch,`POST`,`${this.url}/recover`,{body:{email:e,code_challenge:n,code_challenge_method:r,gotrue_meta_security:{captcha_token:t.captchaToken}},headers:this.headers,redirectTo:t.redirectTo})}catch(e){if(ud(e))return{data:null,error:e};throw e}}async _refreshAccessToken(e){let t=`#_refreshAccessToken(${e.substring(0,5)}...)`;this._debug(t,`begin`);try{let n=Date.now();return await Xu(async n=>(await Yu(n*200),this._debug(t,`refreshing attempt`,n),await wd(this.fetch,`POST`,`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:e},headers:this.headers,xform:Td})),(e,t,r)=>r&&r.error&&xd(r.error)&&Date.now()+(e+1)*200-n<Pd)}catch(e){if(this._debug(t,`error`,e),ud(e))return{data:{session:null,user:null},error:e};throw e}finally{this._debug(t,`end`)}}_isValidSession(e){return typeof e==`object`&&!!e&&`access_token`in e&&`refresh_token`in e&&`expires_at`in e}async _handleProviderSignIn(e,t){let n=await this._getUrlForProvider(e,{redirectTo:t.redirectTo,scopes:t.scopes,queryParams:t.queryParams});return this._debug(`#_handleProviderSignIn()`,`provider`,e,`options`,t,`url`,n),zu()&&!t.skipBrowserRedirect&&window.location.assign(n),{data:{provider:e,url:n},error:null}}async _recoverAndRefresh(){let e=`#_recoverAndRefresh()`;this._debug(e,`begin`);try{let t=await Gu(this.storage,this.storageKey);if(this._debug(e,`session from storage`,t),!this._isValidSession(t)){this._debug(e,`session is not valid`),t!==null&&await this._removeSession();return}let n=Math.round(Date.now()/1e3),r=(t.expires_at??1/0)<n+10;if(this._debug(e,`session has${r?``:` not`} expired with margin of 10s`),r){if(this.autoRefreshToken&&t.refresh_token){let{error:n}=await this._callRefreshToken(t.refresh_token);n&&(console.error(n),xd(n)||(this._debug(e,`refresh failed with a non-retryable error, removing the session`,n),await this._removeSession()))}}else await this._notifyAllSubscribers(`SIGNED_IN`,t)}catch(t){this._debug(e,`error`,t),console.error(t);return}finally{this._debug(e,`end`)}}async _callRefreshToken(e){var t,n;if(!e)throw new hd;if(this.refreshingDeferred)return this.refreshingDeferred.promise;let r=`#_callRefreshToken(${e.substring(0,5)}...)`;this._debug(r,`begin`);try{this.refreshingDeferred=new qu;let{data:t,error:n}=await this._refreshAccessToken(e);if(n)throw n;if(!t.session)throw new hd;await this._saveSession(t.session),await this._notifyAllSubscribers(`TOKEN_REFRESHED`,t.session);let r={session:t.session,error:null};return this.refreshingDeferred.resolve(r),r}catch(e){if(this._debug(r,`error`,e),ud(e)){let n={session:null,error:e};return(t=this.refreshingDeferred)==null||t.resolve(n),n}throw(n=this.refreshingDeferred)==null||n.reject(e),e}finally{this.refreshingDeferred=null,this._debug(r,`end`)}}async _notifyAllSubscribers(e,t,n=!0){let r=`#_notifyAllSubscribers(${e})`;this._debug(r,`begin`,t,`broadcast = ${n}`);try{this.broadcastChannel&&n&&this.broadcastChannel.postMessage({event:e,session:t});let r=[],i=Array.from(this.stateChangeEmitters.values()).map(async n=>{try{await n.callback(e,t)}catch(e){r.push(e)}});if(await Promise.all(i),r.length>0){for(let e=0;e<r.length;e+=1)console.error(r[e]);throw r[0]}}finally{this._debug(r,`end`)}}async _saveSession(e){this._debug(`#_saveSession()`,e),this.persistSession||(this.inMemorySession=e),this.persistSession&&e.expires_at&&await this._persistSession(e)}_persistSession(e){return this._debug(`#_persistSession()`,e),Wu(this.storage,this.storageKey,e)}async _removeSession(){this._debug(`#_removeSession()`),this.persistSession?await Ku(this.storage,this.storageKey):this.inMemorySession=null}_removeVisibilityChangedCallback(){this._debug(`#_removeVisibilityChangedCallback()`);let e=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{e&&zu()&&window!=null&&window.removeEventListener&&window.removeEventListener(`visibilitychange`,e)}catch(e){console.error(`removing visibilitychange callback failed`,e)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug(`#_startAutoRefresh()`);let e=setInterval(()=>this._autoRefreshTokenTick(),Pd);this.autoRefreshTicker=e,e&&typeof e==`object`&&typeof e.unref==`function`?e.unref():typeof Deno<`u`&&typeof Deno.unrefTimer==`function`&&Deno.unrefTimer(e),await this._autoRefreshTokenTick()}async _stopAutoRefresh(){this._debug(`#_stopAutoRefresh()`);let e=this.autoRefreshTicker;this.autoRefreshTicker=null,e&&clearInterval(e)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug(`#_autoRefreshTokenTick()`,`begin`);try{let e=Date.now();try{return await this._useSession(async t=>{let{data:{session:n}}=t;if(!n||!n.refresh_token||!n.expires_at){this._debug(`#_autoRefreshTokenTick()`,`no session`);return}let r=Math.floor((n.expires_at*1e3-e)/Pd);this._debug(`#_autoRefreshTokenTick()`,`access token expires in ${r} ticks, a tick lasts ${Pd}ms, refresh threshold is ${Fd} ticks`),r<=Fd&&await this._callRefreshToken(n.refresh_token)})}catch(e){console.error(`Auto refresh tick failed with error. This is likely a transient error.`,e)}}finally{this._debug(`#_autoRefreshTokenTick()`,`end`)}}async _handleVisibilityChange(){if(this._debug(`#_handleVisibilityChange()`),!zu()||!(window!=null&&window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>await this._onVisibilityChanged(!1),window==null||window.addEventListener(`visibilitychange`,this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(e){console.error(`_handleVisibilityChange`,e)}}async _onVisibilityChanged(e){this._debug(`#_onVisibilityChanged(${e})`,`visibilityState`,document.visibilityState),document.visibilityState===`visible`?(e||(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(e,t){let n=[`provider=${encodeURIComponent(e)}`];if(t?.redirectTo&&n.push(`redirect_to=${encodeURIComponent(t.redirectTo)}`),t?.scopes&&n.push(`scopes=${encodeURIComponent(t.scopes)}`),this.flowType===`pkce`){let e=Qu();await Wu(this.storage,`${this.storageKey}-code-verifier`,e);let t=await td(e),r=e===t?`plain`:`s256`;this._debug(`PKCE`,`code verifier`,`${e.substring(0,5)}...`,`code challenge`,t,`method`,r);let i=new URLSearchParams({code_challenge:`${encodeURIComponent(t)}`,code_challenge_method:`${encodeURIComponent(r)}`});n.push(i.toString())}if(t?.queryParams){let e=new URLSearchParams(t.queryParams);n.push(e.toString())}return`${this.url}/authorize?${n.join(`&`)}`}async _unenroll(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;return r?{data:null,error:r}:await wd(this.fetch,`DELETE`,`${this.url}/factors/${e.factorId}`,{headers:this.headers,jwt:n?.session?.access_token})})}catch(e){if(ud(e))return{data:null,error:e};throw e}}async _enroll(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)return{data:null,error:r};let{data:i,error:a}=await wd(this.fetch,`POST`,`${this.url}/factors`,{body:{friendly_name:e.friendlyName,factor_type:e.factorType,issuer:e.issuer},headers:this.headers,jwt:n?.session?.access_token});return a?{data:null,error:a}:(i?.totp?.qr_code&&(i.totp.qr_code=`data:image/svg+xml;utf-8,${i.totp.qr_code}`),{data:i,error:null})})}catch(e){if(ud(e))return{data:null,error:e};throw e}}async _verify(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)return{data:null,error:r};let{data:i,error:a}=await wd(this.fetch,`POST`,`${this.url}/factors/${e.factorId}/verify`,{body:{code:e.code,challenge_id:e.challengeId},headers:this.headers,jwt:n?.session?.access_token});return a?{data:null,error:a}:(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+i.expires_in},i)),await this._notifyAllSubscribers(`MFA_CHALLENGE_VERIFIED`,i),{data:i,error:a})})}catch(e){if(ud(e))return{data:null,error:e};throw e}}async _challenge(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;return r?{data:null,error:r}:await wd(this.fetch,`POST`,`${this.url}/factors/${e.factorId}/challenge`,{headers:this.headers,jwt:n?.session?.access_token})})}catch(e){if(ud(e))return{data:null,error:e};throw e}}async _challengeAndVerify(e){let{data:t,error:n}=await this._challenge({factorId:e.factorId});return n?{data:null,error:n}:await this._verify({factorId:e.factorId,challengeId:t.id,code:e.code})}async _listFactors(){let{data:{user:e},error:t}=await this.getUser();if(t)return{data:null,error:t};let n=e?.factors||[];return{data:{all:n,totp:n.filter(e=>e.factor_type===`totp`&&e.status===`verified`)},error:null}}async _getAuthenticatorAssuranceLevel(){return await this._useSession(async e=>{let{data:{session:t},error:n}=e;if(n)return{data:null,error:n};if(!t)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};let r=this._decodeJWT(t.access_token),i=null;r.aal&&(i=r.aal);let a=i;(t.user.factors?.filter(e=>e.status===`verified`)??[]).length>0&&(a=`aal2`);let o=r.amr||[];return{data:{currentLevel:i,nextLevel:a,currentAuthenticationMethods:o},error:null}})}};Id.nextInstanceID=0;var Ld=class extends Id{constructor(e){super(e)}},Rd=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},zd={headers:wu},Bd={schema:`public`},Vd={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:`implicit`},Hd={},Ud=class{constructor(e,t,n){if(this.supabaseUrl=e,this.supabaseKey=t,!e)throw Error(`supabaseUrl is required.`);if(!t)throw Error(`supabaseKey is required.`);let r=ju(e);this.realtimeUrl=`${r}/realtime/v1`.replace(/^http/i,`ws`),this.authUrl=`${r}/auth/v1`,this.storageUrl=`${r}/storage/v1`,this.functionsUrl=`${r}/functions/v1`;let i=`sb-${new URL(this.authUrl).hostname.split(`.`)[0]}-auth-token`,a={db:Bd,realtime:Hd,auth:Object.assign(Object.assign({},Vd),{storageKey:i}),global:zd},o=tee(n??{},a);this.storageKey=o.auth?.storageKey??``,this.headers=o.global?.headers??{},this.auth=this._initSupabaseAuthClient(o.auth??{},this.headers,o.global?.fetch),this.fetch=Au(t,this._getAccessToken.bind(this),o.global?.fetch),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers},o.realtime)),this.rest=new tc(`${r}/rest/v1`,{headers:this.headers,schema:o.db?.schema,fetch:this.fetch}),this._listenForAuthEvents()}get functions(){return new zs(this.functionsUrl,{headers:this.headers,customFetch:this.fetch})}get storage(){return new Cu(this.storageUrl,this.headers,this.fetch)}from(e){return this.rest.from(e)}rpc(e,t={},n){return this.rest.rpc(e,t,n)}channel(e,t={config:{}}){return this.realtime.channel(e,t)}getChannels(){return this.realtime.getChannels()}removeChannel(e){return this.realtime.removeChannel(e)}removeAllChannels(){return this.realtime.removeAllChannels()}_getAccessToken(){return Rd(this,void 0,void 0,function*(){let{data:e}=yield this.auth.getSession();return e.session?.access_token??null})}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:t,detectSessionInUrl:n,storage:r,storageKey:i,flowType:a,debug:o},s,c){let l={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new Ld({url:this.authUrl,headers:Object.assign(Object.assign({},l),s),storageKey:i,autoRefreshToken:e,persistSession:t,detectSessionInUrl:n,storage:r,flowType:a,debug:o,fetch:c})}_initRealtimeClient(e){return new Cl(this.realtimeUrl,Object.assign(Object.assign({},e),{params:Object.assign({apikey:this.supabaseKey},e?.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((e,t)=>{this._handleTokenChanged(e,`CLIENT`,t?.access_token)})}_handleTokenChanged(e,t,n){(e===`TOKEN_REFRESHED`||e===`SIGNED_IN`)&&this.changedAccessToken!==n?(this.realtime.setAuth(n??null),this.changedAccessToken=n):e===`SIGNED_OUT`&&(this.realtime.setAuth(this.supabaseKey),t==`STORAGE`&&this.auth.signOut(),this.changedAccessToken=void 0)}},Wd=(e,t,n)=>new Ud(e,t,n),Gd=Wd(`https://data.cacoon.live`,`eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6ImNvYXN0YWxkYi1zdGFnaW5nIiwiaWF0IjoxNzkzNDA2ODU4LCJleHAiOjIxMDg3NjY4NTh9.JtgVjwT2E4Y7KPcoGJABEIKikkj2f8EPe35gqgEoRRg`),hee=(0,y.createContext)(void 0),gee=({children:e})=>{let{toast:t}=Ds(),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(!0),c=(0,y.useCallback)(async e=>{a(e),r(e?.user??null),s(!1)},[]);(0,y.useEffect)(()=>{(async()=>{try{let{data:{session:e}}=await Gd.auth.getSession();c(e)}catch(e){console.error(`Error getting session:`,e),s(!1)}})();let{data:{subscription:e}}=Gd.auth.onAuthStateChange(async(e,t)=>{c(t)});return()=>e?.unsubscribe()},[c]);let l=(0,y.useCallback)(async(e,n,r)=>{let{error:i}=await Gd.auth.signUp({email:e,password:n,options:r});return i&&t({variant:`destructive`,title:`Sign up Failed`,description:i.message||`Something went wrong`}),{error:i}},[t]),u=(0,y.useCallback)(async(e,n)=>{let{error:r}=await Gd.auth.signInWithPassword({email:e,password:n});return r&&t({variant:`destructive`,title:`Sign in Failed`,description:r.message||`Something went wrong`}),{error:r}},[t]),d=(0,y.useCallback)(async()=>{let{error:e}=await Gd.auth.signOut();return e&&t({variant:`destructive`,title:`Sign out Failed`,description:e.message||`Something went wrong`}),{error:e}},[t]),f=(0,y.useMemo)(()=>({user:n,session:i,loading:o,isAuthenticated:!!n,signUp:l,signIn:u,signOut:d,signup:l,login:u,logout:d}),[n,i,o,l,u,d]);return(0,z.jsx)(hee.Provider,{value:f,children:e})},Kd=`https://data.cacoon.live`,qd=`eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6ImNvYXN0YWxkYi1zdGFnaW5nIiwiaWF0IjoxNzkzNDA2ODU4LCJleHAiOjIxMDg3NjY4NTh9.JtgVjwT2E4Y7KPcoGJABEIKikkj2f8EPe35gqgEoRRg`,Jd=(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:`,Jd(Kd,8)),console.log(`Key Configured:`,Jd(qd,8));var Yd=null;try{Kd.startsWith(`https://`)||console.error(`CRITICAL: Invalid Supabase URL format. Must start with https://`,Kd),Yd=Wd(Kd,qd,{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();var Xd=Yd,Zd=(0,y.createContext)(),Qd=()=>(0,y.useContext)(Zd),$d=({children:e})=>{let[t,n]=(0,y.useState)(!1),[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(!0);return(0,y.useEffect)(()=>{console.log(`🔄 [AdminAuthContext] Initializing...`),(async()=>{try{if(!Xd){console.error(`❌ [AdminAuthContext] Supabase client is not initialized.`),o(!1);return}console.log(`🔍 [AdminAuthContext] Checking for existing session...`);let{data:{session:e},error:t}=await Xd.auth.getSession();t&&console.error(`❌ [AdminAuthContext] Error getting session:`,t),e?(console.log(`✅ [AdminAuthContext] Active session found for user:`,e.user.id),n(!0),i(e.user)):(console.log(`ℹ️ [AdminAuthContext] No active session found`),n(!1),i(null))}catch(e){console.error(`❌ [AdminAuthContext] Unexpected error checking session:`,e)}finally{o(!1)}})();let{data:{subscription:e}}=Xd.auth.onAuthStateChange(async(e,t)=>{console.log(`🔐 [AdminAuthContext] Auth State Change detected: ${e}`),t?(n(!0),i(t.user)):(n(!1),i(null)),o(!1)});return()=>{e?.unsubscribe()}},[]),(0,z.jsx)(Zd.Provider,{value:{isAuthenticated:t,user:r,loading:a,login:async(e,t)=>{if(console.group(`🚀 [AdminAuthContext] Login Process Started`),console.log(`Attempting login for email: ${e}`),!Xd)return console.error(`❌ [AdminAuthContext] Supabase client missing.`),console.groupEnd(),{success:!1,error:`System Error: Database client not initialized.`};if(!e||!t)return console.error(`❌ [AdminAuthContext] Login failed: Missing email or password`),console.groupEnd(),{success:!1,error:`Email and password are required.`};try{o(!0);let r=new Promise((e,t)=>{setTimeout(()=>t(Error(`Connection timed out. The server took too long to respond (10s).`)),1e4)}),a=Xd.auth.signInWithPassword({email:e,password:t}),{data:s,error:c}=await Promise.race([a,r]);return c?(console.error(`❌ [AdminAuthContext] Supabase Auth Error:`,c),console.log(`Error details:`,{message:c.message,status:c.status,name:c.name}),console.groupEnd(),o(!1),{success:!1,error:c.message,details:c}):s?.user?(console.log(`✅ [AdminAuthContext] Login successful. User ID:`,s.user.id),n(!0),i(s.user),console.groupEnd(),{success:!0,data:s}):(console.error(`❌ [AdminAuthContext] Login succeeded but no user returned.`),console.groupEnd(),o(!1),{success:!1,error:`Login failed: No user data returned.`})}catch(e){return console.error(`❌ [AdminAuthContext] Exception during login:`,e),console.groupEnd(),o(!1),{success:!1,error:e.message||`An unexpected network error occurred.`,details:e}}},logout:async()=>{console.log(`🚪 [AdminAuthContext] Logging out...`);try{if(!Xd)throw Error(`Supabase client missing`);let{error:e}=await Xd.auth.signOut();if(e)throw e;n(!1),i(null),console.log(`✅ [AdminAuthContext] Logout successful`)}catch(e){console.error(`❌ [AdminAuthContext] Error signing out:`,e)}}},children:e})},ef=[{id:`astoria`,label:`Astoria`},{id:`portland`,label:`Portland`},{id:`eugene`,label:`Eugene`},{id:`seattle`,label:`Seattle`},{id:`out-of-state`,label:`Out of State`}],tf=[{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`}],nf=[{id:`adventure`,label:`Adventure`},{id:`relaxing`,label:`Relaxing`},{id:`foodie`,label:`Foodie`},{id:`family`,label:`Family`},{id:`photography`,label:`Photography`}],rf={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`}},af=[{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}],of={"1-2":`one town or two neighboring towns`,"3-4":`a coastal region`,"5-7":`half the coast`,"7+":`full Oregon Coast`},sf=(e,t)=>{let n=af.find(n=>n.from===e&&n.to===t||n.from===t&&n.to===e);return n?n.time:null},cf=e=>{let t=0;for(let n=0;n<e.length-1;n++){let r=af.find(t=>t.from===e[n]&&t.to===e[n+1]||t.from===e[n+1]&&t.to===e[n]);r&&(t+=r.hours)}return t},lf=[`astoria`,`cannon-beach`,`tillamook`,`lincoln-city`,`depoe-bay`,`newport`,`waldport`,`yachats`,`florence`,`coos-bay`,`bandon`,`gold-beach`,`brookings`],uf=e=>{let t=lf.indexOf(e);if(t===-1)return lf.slice();let n=lf.slice(t);if(n.length<3){let e=lf.slice(0,t).slice().reverse();return[...n,...e]}return n},df=e=>{if(!e)return null;let t=e.trim().toLowerCase();if(t=t.replace(/[\s,]+(oregon|or)$/i,``).replace(/[,.\s]+$/,``).trim(),!t)return null;let n={portland:`portland`,eugene:`eugene`,seattle:`seattle`};if(n[t])return n[t];for(let[e,n]of Object.entries(rf))if(e===t||n.name.toLowerCase()===t)return`town:${e}`;return null},ff=(e,t,n)=>{let r=[];r=typeof e==`string`&&e.startsWith(`town:`)?uf(e.slice(5)):e===`astoria`||e===`seattle`||e===`portland`?[`astoria`,`cannon-beach`,`tillamook`,`lincoln-city`,`depoe-bay`,`newport`,`yachats`,`florence`,`coos-bay`,`bandon`,`gold-beach`,`brookings`]:e===`eugene`?[`florence`,`yachats`,`newport`,`coos-bay`,`bandon`,`gold-beach`,`brookings`]:[`cannon-beach`,`lincoln-city`,`newport`,`yachats`,`florence`,`bandon`,`brookings`];let i=Object.keys(rf).filter(e=>rf[e].type.includes(n)),a=r.filter(e=>i.includes(e));a.length<2&&(a=[...new Set([...a,...r])]);let o=2,s=2;t===`1-2`?(o=2,s=2):t===`3-4`?(o=4,s=4):t===`5-7`?(o=6,s=6):(o=10,s=8);let c=a.slice(0,o),l=cf(c),u=null;return s>=7&&l<3?(u=`It looks like you planned 7+ days but your route is fairly concentrated. For example, the drive from ${rf[c[0]]?.name} to ${rf[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,r.length)):s<=2&&l>4&&(u=`You've selected a very long route for just 1-2 days! Driving from ${rf[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:r.slice(0,o).map(e=>({id:e,...rf[e]})),numDays:s,validationMessage:u}},pf=(0,y.createContext)();function mf(){return(0,y.useContext)(pf)}var hf=[{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 gf({children:e}){let[t,n]=(0,y.useState)(()=>{let e=localStorage.getItem(`tripPlannerMessages`);return e?JSON.parse(e):hf}),[r,i]=(0,y.useState)(()=>{let e=localStorage.getItem(`tripPlannerAnswers`);return e?JSON.parse(e):{start:null,days:null,type:null}}),[a,o]=(0,y.useState)(()=>localStorage.getItem(`tripPlannerState`)||`ASK_START`),[s,c]=(0,y.useState)(!1);(0,y.useEffect)(()=>{localStorage.setItem(`tripPlannerMessages`,JSON.stringify(t))},[t]),(0,y.useEffect)(()=>{localStorage.setItem(`tripPlannerAnswers`,JSON.stringify(r))},[r]),(0,y.useEffect)(()=>{localStorage.setItem(`tripPlannerState`,a)},[a]);let l={messages:t,addMessage:e=>{n(t=>[...t,{...e,id:Date.now()+Math.random()}])},answers:r,updateAnswer:(e,t)=>{i(n=>({...n,[e]:t}))},chatState:a,setChatState:o,resetChat:()=>{n(hf),i({start:null,days:null,type:null}),o(`ASK_START`)},isOpen:s,setIsOpen:c,geographicData:{drivingDistances:af,dayRecommendations:of}};return(0,z.jsx)(pf.Provider,{value:l,children:e})}var _f=1,vf=1e6,yf=0;function bf(){return yf=(yf+1)%(2**53-1),yf.toString()}var xf=new Map,Sf=e=>{if(xf.has(e))return;let t=setTimeout(()=>{xf.delete(e),Ef({type:`REMOVE_TOAST`,toastId:e})},vf);xf.set(e,t)},Cf=(e,t)=>{switch(t.type){case`ADD_TOAST`:return{...e,toasts:[t.toast,...e.toasts].slice(0,_f)};case`UPDATE_TOAST`:return{...e,toasts:e.toasts.map(e=>e.id===t.toast.id?{...e,...t.toast}:e)};case`DISMISS_TOAST`:{let{toastId:n}=t;return n?Sf(n):e.toasts.forEach(e=>{Sf(e.id)}),{...e,toasts:e.toasts.map(e=>e.id===n||n===void 0?{...e,open:!1}:e)}}case`REMOVE_TOAST`:return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(e=>e.id!==t.toastId)}}},wf=[],Tf={toasts:[]};function Ef(e){Tf=Cf(Tf,e),wf.forEach(e=>{e(Tf)})}function Df({...e}){let t=bf(),n=e=>Ef({type:`UPDATE_TOAST`,toast:{...e,id:t}}),r=()=>Ef({type:`DISMISS_TOAST`,toastId:t});return Ef({type:`ADD_TOAST`,toast:{...e,id:t,open:!0,onOpenChange:e=>{e||r()}}}),{id:t,dismiss:r,update:n}}function Of(){let[e,t]=y.useState(Tf);return y.useEffect(()=>(wf.push(t),()=>{let e=wf.indexOf(t);e>-1&&wf.splice(e,1)}),[e]),{...e,toast:Df,dismiss:e=>Ef({type:`DISMISS_TOAST`,toastId:e})}}var kf=`https://registry.cacoon.live/v1`,G={obj_oregoncoastal_hotel_surfsand_resort_v1:{object_id:`obj_oregoncoastal_hotel_surfsand_resort_v1`,title:`Surfsand Resort`},obj_oregoncoastal_dining_public_coast_brewing_v1:{object_id:`obj_oregoncoastal_dining_public_coast_brewing_v1`,title:`Public Coast Brewing`},obj_oregoncoastal_town_astoria_v1:{object_id:`obj_oregoncoastal_town_astoria_v1`,title:`Astoria`},obj_oregoncoastal_town_cannon_beach_v1:{object_id:`obj_oregoncoastal_town_cannon_beach_v1`,title:`Cannon Beach`},obj_oregoncoastal_event_stormy_weather_arts_festival_2026_v1:{object_id:`obj_oregoncoastal_event_stormy_weather_arts_festival_2026_v1`,title:`Stormy Weather Arts Festival`},obj_oregoncoastal_event_cannon_beach_independence_day_parade_2027_v1:{object_id:`obj_oregoncoastal_event_cannon_beach_independence_day_parade_2027_v1`,title:`Cannon Beach Independence Day Parade`},obj_oregoncoastal_dining_cannon_beach_pelican_brewing_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_pelican_brewing_v1`,title:`Pelican Brewing`},obj_oregoncoastal_dining_cannon_beach_wayfarer_restaurant_lounge_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_wayfarer_restaurant_lounge_v1`,title:`The Wayfarer`},obj_oregoncoastal_dining_cannon_beach_driftwood_restaurant_lounge_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_driftwood_restaurant_lounge_v1`,title:`Driftwood Restaurant & Lounge`},obj_oregoncoastal_dining_cannon_beach_pizza_afetta_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_pizza_afetta_v1`,title:`Pizza a'fetta`},obj_oregoncoastal_dining_cannon_beach_castaways_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_castaways_v1`,title:`Castaways`},obj_oregoncoastal_dining_cannon_beach_ecola_seafoods_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_ecola_seafoods_v1`,title:`Ecola Seafoods`},obj_oregoncoastal_dining_cannon_beach_bills_tavern_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_bills_tavern_v1`,title:`Bill's Tavern & Brewhouse`},obj_oregoncoastal_dining_cannon_beach_warren_house_pub_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_warren_house_pub_v1`,title:`Warren House Pub`},obj_oregoncoastal_dining_tolovana_park_mos_seafood_chowder_v1:{object_id:`obj_oregoncoastal_dining_tolovana_park_mos_seafood_chowder_v1`,title:`Mo's Cannon Beach`},obj_oregoncoastal_dining_cannon_beach_lazy_susan_cafe_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_lazy_susan_cafe_v1`,title:`Lazy Susan Cafe`},obj_oregoncoastal_dining_cannon_beach_sleepy_monk_coffee_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_sleepy_monk_coffee_v1`,title:`Sleepy Monk Coffee Roasters`},obj_oregoncoastal_dining_cannon_beach_insomnia_coffee_company_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_insomnia_coffee_company_v1`,title:`Insomnia Coffee Co.`},obj_oregoncoastal_dining_cannon_beach_seasons_cafe_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_seasons_cafe_v1`,title:`Seasons Cafe`},obj_oregoncoastal_dining_cannon_beach_stephanie_inn_dining_room_v1:{object_id:`obj_oregoncoastal_dining_cannon_beach_stephanie_inn_dining_room_v1`,title:`Stephanie Inn Dining Room`},obj_oregoncoastal_dining_tolovana_park_sea_level_bakery_coffee_v1:{object_id:`obj_oregoncoastal_dining_tolovana_park_sea_level_bakery_coffee_v1`,title:`Sea Level Bakery + Coffee`},obj_oregoncoastal_dining_tolovana_park_fresh_foods_v1:{object_id:`obj_oregoncoastal_dining_tolovana_park_fresh_foods_v1`,title:`Fresh Foods Deli`},obj_oregoncoastal_trail_ecola_point_to_indian_beach_v1:{object_id:`obj_oregoncoastal_trail_ecola_point_to_indian_beach_v1`,title:`Ecola Point to Indian Beach`},obj_oregoncoastal_trail_ecola_point_to_crescent_beach_v1:{object_id:`obj_oregoncoastal_trail_ecola_point_to_crescent_beach_v1`,title:`Crescent Beach Trail`},obj_oregoncoastal_trail_tillamook_head_v1:{object_id:`obj_oregoncoastal_trail_tillamook_head_v1`,title:`Tillamook Head Traverse`},obj_oregoncoastal_hotel_astoria_hampton_inn_suites_astoria_v1:{object_id:`obj_oregoncoastal_hotel_astoria_hampton_inn_suites_astoria_v1`,title:`Hampton Inn & Suites Astoria`},obj_oregoncoastal_hotel_astoria_holiday_inn_express_hotel_suites_astoria_v1:{object_id:`obj_oregoncoastal_hotel_astoria_holiday_inn_express_hotel_suites_astoria_v1`,title:`Holiday Inn Express & Suites Astoria`},obj_oregoncoastal_hotel_astoria_motel_6_astoria_v1:{object_id:`obj_oregoncoastal_hotel_astoria_motel_6_astoria_v1`,title:`Motel 6 Astoria`},obj_oregoncoastal_hotel_astoria_lloyd_hotel_astoria_bayfront_v1:{object_id:`obj_oregoncoastal_hotel_astoria_lloyd_hotel_astoria_bayfront_v1`,title:`Lloyd Hotel Astoria Bayfront`},obj_oregoncoastal_hotel_astoria_best_western_columbia_river_waterfront_hotel_v1:{object_id:`obj_oregoncoastal_hotel_astoria_best_western_columbia_river_waterfront_hotel_v1`,title:`Best Western Columbia River Waterfront`},obj_oregoncoastal_hotel_astoria_astoria_rivershore_motel_v1:{object_id:`obj_oregoncoastal_hotel_astoria_astoria_rivershore_motel_v1`,title:`Astoria Rivershore Motel`},obj_oregoncoastal_hotel_astoria_astoria_riverwalk_inn_v1:{object_id:`obj_oregoncoastal_hotel_astoria_astoria_riverwalk_inn_v1`,title:`Astoria Riverwalk Inn`},obj_oregoncoastal_hotel_gearhart_gearhart_hotel_v1:{object_id:`obj_oregoncoastal_hotel_gearhart_gearhart_hotel_v1`,title:`McMenamins Gearhart Hotel`},obj_oregoncoastal_hotel_gearhart_the_drifthaven_at_gearhart_v1:{object_id:`obj_oregoncoastal_hotel_gearhart_the_drifthaven_at_gearhart_v1`,title:`The Drifthaven at Gearhart`},obj_oregoncoastal_hotel_seaside_motel_6_seaside_v1:{object_id:`obj_oregoncoastal_hotel_seaside_motel_6_seaside_v1`,title:`Motel 6 Seaside, OR`},obj_oregoncoastal_hotel_seaside_inn_at_the_shore_v1:{object_id:`obj_oregoncoastal_hotel_seaside_inn_at_the_shore_v1`,title:`Inn at the Shore`},obj_oregoncoastal_hotel_seaside_hi_tide_oceanfront_inn_v1:{object_id:`obj_oregoncoastal_hotel_seaside_hi_tide_oceanfront_inn_v1`,title:`Hi-Tide Oceanfront Inn`},obj_oregoncoastal_hotel_seaside_ebb_tide_oceanfront_inn_v1:{object_id:`obj_oregoncoastal_hotel_seaside_ebb_tide_oceanfront_inn_v1`,title:`Ebb Tide Oceanfront Inn`},obj_oregoncoastal_hotel_seaside_seashore_inn_on_the_beach_v1:{object_id:`obj_oregoncoastal_hotel_seaside_seashore_inn_on_the_beach_v1`,title:`Seashore Inn on the Beach`},obj_oregoncoastal_hotel_seaside_best_western_plus_ocean_view_resort_v1:{object_id:`obj_oregoncoastal_hotel_seaside_best_western_plus_ocean_view_resort_v1`,title:`Best Western Plus Ocean View Resort`},obj_oregoncoastal_hotel_seaside_ashore_hotel_v1:{object_id:`obj_oregoncoastal_hotel_seaside_ashore_hotel_v1`,title:`Ashore Hotel`},obj_oregoncoastal_hotel_seaside_promenade_inn_suites_oceanfront_v1:{object_id:`obj_oregoncoastal_hotel_seaside_promenade_inn_suites_oceanfront_v1`,title:`Promenade Inn & Suites Oceanfront`},obj_oregoncoastal_dining_astoria_bridgewater_bistro_v1:{object_id:`obj_oregoncoastal_dining_astoria_bridgewater_bistro_v1`,title:`Bridgewater Bistro`},obj_oregoncoastal_dining_astoria_silver_salmon_grille_v1:{object_id:`obj_oregoncoastal_dining_astoria_silver_salmon_grille_v1`,title:`Silver Salmon Grille`},obj_oregoncoastal_dining_astoria_carruthers_v1:{object_id:`obj_oregoncoastal_dining_astoria_carruthers_v1`,title:`Carruthers Restaurant`},obj_oregoncoastal_dining_astoria_fort_george_brewery_public_house_v1:{object_id:`obj_oregoncoastal_dining_astoria_fort_george_brewery_public_house_v1`,title:`Fort George Brewery + Public House`},obj_oregoncoastal_dining_astoria_buoy_beer_company_v1:{object_id:`obj_oregoncoastal_dining_astoria_buoy_beer_company_v1`,title:`Buoy Beer Company`},obj_oregoncoastal_dining_astoria_bowpicker_fish_chips_v1:{object_id:`obj_oregoncoastal_dining_astoria_bowpicker_fish_chips_v1`,title:`Bowpicker Fish & Chips`},obj_oregoncoastal_dining_astoria_frite_and_scoop_v1:{object_id:`obj_oregoncoastal_dining_astoria_frite_and_scoop_v1`,title:`Frite & Scoop`},obj_oregoncoastal_dining_astoria_coffee_girl_v1:{object_id:`obj_oregoncoastal_dining_astoria_coffee_girl_v1`,title:`Coffee Girl`},obj_oregoncoastal_dining_astoria_blue_scorcher_bakery_cafe_v1:{object_id:`obj_oregoncoastal_dining_astoria_blue_scorcher_bakery_cafe_v1`,title:`The Blue Scorcher Bakery & Cafe`},obj_oregoncoastal_dining_warrenton_el_catrin_mexican_restaurant_v1:{object_id:`obj_oregoncoastal_dining_warrenton_el_catrin_mexican_restaurant_v1`,title:`El Catrin Mexican Kitchen`},obj_oregoncoastal_dining_warrenton_nisas_thai_kitchen_v1:{object_id:`obj_oregoncoastal_dining_warrenton_nisas_thai_kitchen_v1`,title:`Nisa's Thai Kitchen`},obj_oregoncoastal_dining_warrenton_arnies_cafe_v1:{object_id:`obj_oregoncoastal_dining_warrenton_arnies_cafe_v1`,title:`Arnie's Cafe`},obj_oregoncoastal_dining_warrenton_fultanos_pizza_v1:{object_id:`obj_oregoncoastal_dining_warrenton_fultanos_pizza_v1`,title:`Fultano's Pizza`},obj_oregoncoastal_dining_gearhart_mcmenamins_sand_trap_pub_v1:{object_id:`obj_oregoncoastal_dining_gearhart_mcmenamins_sand_trap_pub_v1`,title:`McMenamins Sand Trap Bar & Grill`},obj_oregoncoastal_dining_gearhart_prep_kitchen_deli_catering_v1:{object_id:`obj_oregoncoastal_dining_gearhart_prep_kitchen_deli_catering_v1`,title:`Prep Kitchen Gearhart`},obj_oregoncoastal_dining_gearhart_fultanos_pizza_v1:{object_id:`obj_oregoncoastal_dining_gearhart_fultanos_pizza_v1`,title:`Fultano's Pizza`},obj_oregoncoastal_dining_seaside_mos_seafood_chowder_seaside_v1:{object_id:`obj_oregoncoastal_dining_seaside_mos_seafood_chowder_seaside_v1`,title:`Mo's Seafood & Chowder`},obj_oregoncoastal_dining_seaside_nonnis_italian_bistro_v1:{object_id:`obj_oregoncoastal_dining_seaside_nonnis_italian_bistro_v1`,title:`Nonni's Italian Bistro`},obj_oregoncoastal_dining_seaside_doogers_seafood_grill_v1:{object_id:`obj_oregoncoastal_dining_seaside_doogers_seafood_grill_v1`,title:`Dooger's Seafood & Grill`},obj_oregoncoastal_dining_seaside_normas_seafood_steak_v1:{object_id:`obj_oregoncoastal_dining_seaside_normas_seafood_steak_v1`,title:`Norma's Seafood & Steak`},obj_oregoncoastal_dining_seaside_dundees_bar_grill_v1:{object_id:`obj_oregoncoastal_dining_seaside_dundees_bar_grill_v1`,title:`Dundee's Bar & Grill`},obj_oregoncoastal_dining_seaside_osprey_cafe_v1:{object_id:`obj_oregoncoastal_dining_seaside_osprey_cafe_v1`,title:`Osprey Cafe`},obj_oregoncoastal_dining_seaside_tora_sushi_lounge_seaside_v1:{object_id:`obj_oregoncoastal_dining_seaside_tora_sushi_lounge_seaside_v1`,title:`Tora Sushi`},obj_oregoncoastal_dining_seaside_the_stand_seaside_v1:{object_id:`obj_oregoncoastal_dining_seaside_the_stand_seaside_v1`,title:`The Stand`},obj_oregoncoastal_dining_seaside_twisted_fish_steakhouse_v1:{object_id:`obj_oregoncoastal_dining_seaside_twisted_fish_steakhouse_v1`,title:`Twisted Fish Steakhouse`},obj_oregoncoastal_dining_seaside_pig_n_pancake_seaside_v1:{object_id:`obj_oregoncoastal_dining_seaside_pig_n_pancake_seaside_v1`,title:`Pig 'N Pancake`},obj_oregoncoastal_hotel_arch_cape_arch_cape_inn_retreat_v1:{object_id:`obj_oregoncoastal_hotel_arch_cape_arch_cape_inn_retreat_v1`,title:`Arch Cape Inn & Retreat`},obj_oregoncoastal_hotel_manzanita_coast_cabins_v1:{object_id:`obj_oregoncoastal_hotel_manzanita_coast_cabins_v1`,title:`Coast Cabins`},obj_oregoncoastal_hotel_manzanita_inn_at_manzanita_v1:{object_id:`obj_oregoncoastal_hotel_manzanita_inn_at_manzanita_v1`,title:`Inn at Manzanita`},obj_oregoncoastal_hotel_manzanita_san_dune_inn_v1:{object_id:`obj_oregoncoastal_hotel_manzanita_san_dune_inn_v1`,title:`San Dune Inn`},obj_oregoncoastal_dining_manzanita_big_wave_cafe_v1:{object_id:`obj_oregoncoastal_dining_manzanita_big_wave_cafe_v1`,title:`The Big Wave Cafe`},obj_oregoncoastal_dining_manzanita_yolk_brunch_poach503_v1:{object_id:`obj_oregoncoastal_dining_manzanita_yolk_brunch_poach503_v1`,title:`Yolk`},obj_oregoncoastal_dining_manzanita_marzanos_pizza_pie_v1:{object_id:`obj_oregoncoastal_dining_manzanita_marzanos_pizza_pie_v1`,title:`Marzano's Pizza Pie`},obj_oregoncoastal_dining_manzanita_wild_grocery_cafe_v1:{object_id:`obj_oregoncoastal_dining_manzanita_wild_grocery_cafe_v1`,title:`Wild Grocery & Cafe`},obj_oregoncoastal_dining_manzanita_left_coast_siesta_v1:{object_id:`obj_oregoncoastal_dining_manzanita_left_coast_siesta_v1`,title:`Left Coast Siesta`},obj_oregoncoastal_dining_manzanita_manzanita_coffee_company_v1:{object_id:`obj_oregoncoastal_dining_manzanita_manzanita_coffee_company_v1`,title:`Manzanita Coffee Co.`},obj_oregoncoastal_dining_manzanita_neah_kah_nie_bistro_v1:{object_id:`obj_oregoncoastal_dining_manzanita_neah_kah_nie_bistro_v1`,title:`Neah-Kah-Nie Bistro`},obj_oregoncoastal_dining_manzanita_the_winery_at_manzanita_v1:{object_id:`obj_oregoncoastal_dining_manzanita_the_winery_at_manzanita_v1`,title:`The Winery at Manzanita`},obj_oregoncoastal_dining_nehalem_buttercup_ice_creams_chowders_v1:{object_id:`obj_oregoncoastal_dining_nehalem_buttercup_ice_creams_chowders_v1`,title:`Buttercup Homemade Ice Creams & Chowders`},obj_oregoncoastal_dining_nehalem_wandas_cafe_bakery_v1:{object_id:`obj_oregoncoastal_dining_nehalem_wandas_cafe_bakery_v1`,title:`Wanda's Cafe & Bakery`},obj_oregoncoastal_dining_nehalem_the_pizza_garden_v1:{object_id:`obj_oregoncoastal_dining_nehalem_the_pizza_garden_v1`,title:`The Pizza Garden`},obj_oregoncoastal_hotel_wheeler_old_wheeler_hotel_v1:{object_id:`obj_oregoncoastal_hotel_wheeler_old_wheeler_hotel_v1`,title:`Old Wheeler Hotel`},obj_oregoncoastal_hotel_wheeler_wheeler_on_the_bay_lodge_v1:{object_id:`obj_oregoncoastal_hotel_wheeler_wheeler_on_the_bay_lodge_v1`,title:`Wheeler on the Bay Lodge`},obj_oregoncoastal_dining_wheeler_the_roost_v1:{object_id:`obj_oregoncoastal_dining_wheeler_the_roost_v1`,title:`The Roost`},obj_oregoncoastal_dining_wheeler_rising_star_cafe_v1:{object_id:`obj_oregoncoastal_dining_wheeler_rising_star_cafe_v1`,title:`Rising Star Cafe`},obj_oregoncoastal_attraction_wheeler_wheeler_marina_v1:{object_id:`obj_oregoncoastal_attraction_wheeler_wheeler_marina_v1`,title:`Wheeler Marina`},obj_oregoncoastal_hotel_rockaway_beach_rockaway_beach_resort_v1:{object_id:`obj_oregoncoastal_hotel_rockaway_beach_rockaway_beach_resort_v1`,title:`Rockaway Beach Resort`},obj_oregoncoastal_hotel_rockaway_beach_surfside_resort_v1:{object_id:`obj_oregoncoastal_hotel_rockaway_beach_surfside_resort_v1`,title:`Surfside Resort`},obj_oregoncoastal_hotel_rockaway_beach_silver_sands_motel_v1:{object_id:`obj_oregoncoastal_hotel_rockaway_beach_silver_sands_motel_v1`,title:`Silver Sands Motel`},obj_oregoncoastal_hotel_rockaway_beach_tradewinds_motel_v1:{object_id:`obj_oregoncoastal_hotel_rockaway_beach_tradewinds_motel_v1`,title:`Tradewinds Motel`},obj_oregoncoastal_hotel_rockaway_beach_twin_rocks_motel_v1:{object_id:`obj_oregoncoastal_hotel_rockaway_beach_twin_rocks_motel_v1`,title:`Twin Rocks Motel`},obj_oregoncoastal_dining_rockaway_beach_old_oregon_smokehouse_v1:{object_id:`obj_oregoncoastal_dining_rockaway_beach_old_oregon_smokehouse_v1`,title:`Old Oregon Smokehouse`},obj_oregoncoastal_dining_rockaway_beach_sand_dollar_restaurant_v1:{object_id:`obj_oregoncoastal_dining_rockaway_beach_sand_dollar_restaurant_v1`,title:`Sand Dollar Restaurant`},obj_oregoncoastal_dining_rockaway_beach_pronto_pup_v1:{object_id:`obj_oregoncoastal_dining_rockaway_beach_pronto_pup_v1`,title:`Pronto Pup`},obj_oregoncoastal_dining_rockaway_beach_the_beach_bite_v1:{object_id:`obj_oregoncoastal_dining_rockaway_beach_the_beach_bite_v1`,title:`The Beach Bite`},obj_oregoncoastal_attraction_rockaway_beach_twin_rocks_v1:{object_id:`obj_oregoncoastal_attraction_rockaway_beach_twin_rocks_v1`,title:`Twin Rocks`},obj_oregoncoastal_attraction_rockaway_beach_cedar_wetlands_preserve_v1:{object_id:`obj_oregoncoastal_attraction_rockaway_beach_cedar_wetlands_preserve_v1`,title:`Cedar Wetlands Preserve`},obj_oregoncoastal_attraction_rockaway_beach_international_police_museum_v1:{object_id:`obj_oregoncoastal_attraction_rockaway_beach_international_police_museum_v1`,title:`International Police Museum`},obj_oregoncoastal_attraction_rockaway_beach_wayside_v1:{object_id:`obj_oregoncoastal_attraction_rockaway_beach_wayside_v1`,title:`Rockaway Beach Wayside`},obj_oregoncoastal_attraction_kilchis_point_reserve_v1:{object_id:`obj_oregoncoastal_attraction_kilchis_point_reserve_v1`,title:`Kilchis Point Reserve`},obj_oregoncoastal_attraction_munson_creek_falls_v1:{object_id:`obj_oregoncoastal_attraction_munson_creek_falls_v1`,title:`Munson Creek Falls`},obj_oregoncoastal_trail_rockaway_beach_old_growth_cedar_trail_v1:{object_id:`obj_oregoncoastal_trail_rockaway_beach_old_growth_cedar_trail_v1`,title:`Cedar Wetlands Preserve Trail`},obj_oregoncoastal_hotel_garibaldi_hotel_garibaldi_v1:{object_id:`obj_oregoncoastal_hotel_garibaldi_hotel_garibaldi_v1`,title:`The Hotel Garibaldi`},obj_oregoncoastal_hotel_garibaldi_inn_at_the_bay_v1:{object_id:`obj_oregoncoastal_hotel_garibaldi_inn_at_the_bay_v1`,title:`Garibaldi Inn at the Bay`},obj_oregoncoastal_hotel_garibaldi_harborview_inn_rv_park_v1:{object_id:`obj_oregoncoastal_hotel_garibaldi_harborview_inn_rv_park_v1`,title:`Harborview Inn & RV Park`},obj_oregoncoastal_dining_garibaldi_portside_bistro_v1:{object_id:`obj_oregoncoastal_dining_garibaldi_portside_bistro_v1`,title:`Garibaldi Portside Bistro`},obj_oregoncoastal_dining_garibaldi_fishermans_korner_restaurant_v1:{object_id:`obj_oregoncoastal_dining_garibaldi_fishermans_korner_restaurant_v1`,title:`Fisherman's Korner Restaurant`},obj_oregoncoastal_dining_garibaldi_crab_rock_pizza_v1:{object_id:`obj_oregoncoastal_dining_garibaldi_crab_rock_pizza_v1`,title:`Crab Rock Pizza`},obj_oregoncoastal_attraction_garibaldi_port_of_garibaldi_marina_v1:{object_id:`obj_oregoncoastal_attraction_garibaldi_port_of_garibaldi_marina_v1`,title:`Port of Garibaldi Marina`},obj_oregoncoastal_attraction_garibaldi_piers_end_v1:{object_id:`obj_oregoncoastal_attraction_garibaldi_piers_end_v1`,title:`Pier's End`},obj_oregoncoastal_attraction_garibaldi_maritime_museum_v1:{object_id:`obj_oregoncoastal_attraction_garibaldi_maritime_museum_v1`,title:`Garibaldi Maritime Museum`},obj_oregoncoastal_attraction_oregon_coast_scenic_railroad_v1:{object_id:`obj_oregoncoastal_attraction_oregon_coast_scenic_railroad_v1`,title:`Oregon Coast Scenic Railroad`},obj_oregoncoastal_dining_bay_city_the_fish_peddler_v1:{object_id:`obj_oregoncoastal_dining_bay_city_the_fish_peddler_v1`,title:`The Fish Peddler`},obj_oregoncoastal_dining_bay_city_downies_cafe_v1:{object_id:`obj_oregoncoastal_dining_bay_city_downies_cafe_v1`,title:`Downie's Cafe`},obj_oregoncoastal_attraction_bay_city_tillamook_country_smoker_outlet_v1:{object_id:`obj_oregoncoastal_attraction_bay_city_tillamook_country_smoker_outlet_v1`,title:`Tillamook Country Smoker`},obj_oregoncoastal_trail_bay_city_kilchis_point_reserve_trailhead_loop_v1:{object_id:`obj_oregoncoastal_trail_bay_city_kilchis_point_reserve_trailhead_loop_v1`,title:`Kilchis Point Reserve Loop`},obj_oregoncoastal_trail_bay_city_flora_and_fauna_trail_v1:{object_id:`obj_oregoncoastal_trail_bay_city_flora_and_fauna_trail_v1`,title:`Flora & Fauna Trail`},obj_oregoncoastal_attraction_bay_city_pacific_oyster_company_v1:{object_id:`obj_oregoncoastal_attraction_bay_city_pacific_oyster_company_v1`,title:`Pacific Oyster`},obj_oregoncoastal_attraction_bay_city_arts_center_v1:{object_id:`obj_oregoncoastal_attraction_bay_city_arts_center_v1`,title:`Bay City Arts Center`},obj_oregoncoastal_attraction_bay_city_al_griffin_memorial_park_v1:{object_id:`obj_oregoncoastal_attraction_bay_city_al_griffin_memorial_park_v1`,title:`Al Griffin Memorial Park`},obj_oregoncoastal_hotel_tillamook_ashley_inn_of_tillamook_v1:{object_id:`obj_oregoncoastal_hotel_tillamook_ashley_inn_of_tillamook_v1`,title:`Ashley Inn of Tillamook`},obj_oregoncoastal_hotel_tillamook_tillamook_inn_v1:{object_id:`obj_oregoncoastal_hotel_tillamook_tillamook_inn_v1`,title:`Tillamook Inn`},obj_oregoncoastal_hotel_tillamook_western_royal_inn_v1:{object_id:`obj_oregoncoastal_hotel_tillamook_western_royal_inn_v1`,title:`Western Royal Inn`},obj_oregoncoastal_dining_tillamook_pacific_restaurant_v1:{object_id:`obj_oregoncoastal_dining_tillamook_pacific_restaurant_v1`,title:`Pacific Restaurant`},obj_oregoncoastal_dining_tillamook_alices_country_house_v1:{object_id:`obj_oregoncoastal_dining_tillamook_alices_country_house_v1`,title:`Alice's Country House`},obj_oregoncoastal_dining_tillamook_la_mexicana_restaurant_v1:{object_id:`obj_oregoncoastal_dining_tillamook_la_mexicana_restaurant_v1`,title:`La Mexicana Restaurant`},obj_oregoncoastal_dining_tillamook_five_rivers_coffee_roasters_v1:{object_id:`obj_oregoncoastal_dining_tillamook_five_rivers_coffee_roasters_v1`,title:`Five Rivers Coffee Roasters`},obj_oregoncoastal_dining_tillamook_werner_beef_brew_v1:{object_id:`obj_oregoncoastal_dining_tillamook_werner_beef_brew_v1`,title:`Werner Beef & Brew`},obj_oregoncoastal_dining_tillamook_jandy_oyster_co_v1:{object_id:`obj_oregoncoastal_dining_tillamook_jandy_oyster_co_v1`,title:`JAndy Oyster Co.`},obj_oregoncoastal_trail_cape_lookout_cape_trail_v1:{object_id:`obj_oregoncoastal_trail_cape_lookout_cape_trail_v1`,title:`Cape Lookout Trail`},obj_oregoncoastal_trail_cape_meares_lighthouse_trail_v1:{object_id:`obj_oregoncoastal_trail_cape_meares_lighthouse_trail_v1`,title:`Cape Meares Lighthouse Trail`},obj_oregoncoastal_trail_tillamook_kings_mountain_trail_v1:{object_id:`obj_oregoncoastal_trail_tillamook_kings_mountain_trail_v1`,title:`Kings Mountain Trail`},obj_oregoncoastal_trail_near_tillamook_munson_creek_falls_trail_v1:{object_id:`obj_oregoncoastal_trail_near_tillamook_munson_creek_falls_trail_v1`,title:`Munson Creek Falls Trail`},obj_oregoncoastal_attraction_tillamook_tillamook_creamery_v1:{object_id:`obj_oregoncoastal_attraction_tillamook_tillamook_creamery_v1`,title:`Tillamook Creamery`},obj_oregoncoastal_attraction_tillamook_blue_heron_french_cheese_company_v1:{object_id:`obj_oregoncoastal_attraction_tillamook_blue_heron_french_cheese_company_v1`,title:`Blue Heron French Cheese Company`},obj_oregoncoastal_attraction_tillamook_county_pioneer_museum_v1:{object_id:`obj_oregoncoastal_attraction_tillamook_county_pioneer_museum_v1`,title:`Tillamook County Pioneer Museum`},obj_oregoncoastal_attraction_tillamook_forest_center_v1:{object_id:`obj_oregoncoastal_attraction_tillamook_forest_center_v1`,title:`Tillamook Forest Center`},obj_oregoncoastal_attraction_tillamook_latimer_quilt_textile_center_v1:{object_id:`obj_oregoncoastal_attraction_tillamook_latimer_quilt_textile_center_v1`,title:`Latimer Quilt & Textile Center`},obj_oregoncoastal_attraction_tillamook_three_capes_scenic_loop_v1:{object_id:`obj_oregoncoastal_attraction_tillamook_three_capes_scenic_loop_v1`,title:`Three Capes Scenic Loop`},obj_oregoncoastal_dining_netarts_schooner_restaurant_lounge_v1:{object_id:`obj_oregoncoastal_dining_netarts_schooner_restaurant_lounge_v1`,title:`The Schooner Restaurant & Lounge`},obj_oregoncoastal_hotel_netarts_terimore_lodging_by_the_sea_v1:{object_id:`obj_oregoncoastal_hotel_netarts_terimore_lodging_by_the_sea_v1`,title:`Terimore Lodging by the Sea`},obj_oregoncoastal_hotel_netarts_the_surf_inn_v1:{object_id:`obj_oregoncoastal_hotel_netarts_the_surf_inn_v1`,title:`The Surf Inn`},obj_oregoncoastal_dining_netarts_bayside_market_deli_v1:{object_id:`obj_oregoncoastal_dining_netarts_bayside_market_deli_v1`,title:`Bayside Market & Deli`},obj_oregoncoastal_attraction_netarts_jacobsen_salt_company_v1:{object_id:`obj_oregoncoastal_attraction_netarts_jacobsen_salt_company_v1`,title:`Jacobsen Salt Company`},obj_oregoncoastal_attraction_oceanside_tunnel_beach_v1:{object_id:`obj_oregoncoastal_attraction_oceanside_tunnel_beach_v1`,title:`Tunnel Beach`},obj_oregoncoastal_attraction_oceanside_maxwell_point_tunnel_v1:{object_id:`obj_oregoncoastal_attraction_oceanside_maxwell_point_tunnel_v1`,title:`Maxwell Point Tunnel`},obj_oregoncoastal_hotel_oceanside_oceanside_inn_v1:{object_id:`obj_oregoncoastal_hotel_oceanside_oceanside_inn_v1`,title:`Oceanside Inn`},obj_oregoncoastal_dining_oceanside_roseannas_cafe_v1:{object_id:`obj_oregoncoastal_dining_oceanside_roseannas_cafe_v1`,title:`Roseanna's Cafe`},obj_oregoncoastal_dining_oceanside_blue_agate_cafe_v1:{object_id:`obj_oregoncoastal_dining_oceanside_blue_agate_cafe_v1`,title:`Blue Agate Cafe`},obj_oregoncoastal_dining_oceanside_current_cafe_v1:{object_id:`obj_oregoncoastal_dining_oceanside_current_cafe_v1`,title:`Current Cafe`},obj_oregoncoastal_attraction_cape_meares_viewpoint_v1:{object_id:`obj_oregoncoastal_attraction_cape_meares_viewpoint_v1`,title:`Cape Meares`},obj_oregoncoastal_trail_cape_meares_octopus_tree_trail_v1:{object_id:`obj_oregoncoastal_trail_cape_meares_octopus_tree_trail_v1`,title:`Octopus Tree Trail`},obj_oregoncoastal_attraction_oceanside_oceanside_beach_v1:{object_id:`obj_oregoncoastal_attraction_oceanside_oceanside_beach_v1`,title:`Oceanside Beach`},obj_oregoncoastal_hotel_pacific_city_headlands_coastal_lodge_and_spa_v1:{object_id:`obj_oregoncoastal_hotel_pacific-city_headlands-coastal-lodge-and-spa_v1`,title:`Headlands Coastal Lodge & Spa`},obj_oregoncoastal_hotel_pacific_city_inn_at_cape_kiwanda_v1:{object_id:`obj_oregoncoastal_hotel_pacific-city_inn-at-cape-kiwanda_v1`,title:`Inn at Cape Kiwanda`},obj_oregoncoastal_hotel_pacific_city_pacific_city_inn_v1:{object_id:`obj_oregoncoastal_hotel_pacific-city_pacific-city-inn_v1`,title:`Pacific City Inn`},obj_oregoncoastal_hotel_pacific_city_surf_and_sand_inn_v1:{object_id:`obj_oregoncoastal_hotel_pacific-city_surf-and-sand-inn_v1`,title:`Surf & Sand Inn`},obj_oregoncoastal_hotel_pacific_city_the_anchorage_motel_v1:{object_id:`obj_oregoncoastal_hotel_pacific-city_the-anchorage-motel_v1`,title:`The Anchorage Motel`},obj_oregoncoastal_dining_pacific_city_pelican_brewing_company_v1:{object_id:`obj_oregoncoastal_dining_pacific-city_pelican-brewing-company_v1`,title:`Pelican Brewing Company`},obj_oregoncoastal_dining_pacific_city_grateful_bread_restaurant_bakery_v1:{object_id:`obj_oregoncoastal_dining_pacific-city_grateful-bread-restaurant-bakery_v1`,title:`The Grateful Bread Bakery`},obj_oregoncoastal_dining_pacific_city_meridian_restaurant_and_bar_v1:{object_id:`obj_oregoncoastal_dining_pacific-city_meridian-restaurant-and-bar_v1`,title:`Meridian Restaurant & Bar`},obj_oregoncoastal_dining_pacific_city_the_riverhouse_nestucca_v1:{object_id:`obj_oregoncoastal_dining_pacific-city_the-riverhouse-nestucca_v1`,title:`The Riverhouse Nestucca`},obj_oregoncoastal_dining_pacific_city_stimulus_coffee_plus_bakery_v1:{object_id:`obj_oregoncoastal_dining_pacific-city_stimulus-coffee-plus-bakery_v1`,title:`Stimulus Coffee + Bakery`},obj_oregoncoastal_dining_pacific_city_ben_and_jeffs_burgers_tacos_v1:{object_id:`obj_oregoncoastal_dining_pacific-city_ben-and-jeffs-burgers-tacos_v1`,title:`Ben & Jeff's Burgers and Tacos`},obj_oregoncoastal_dining_pacific_city_beach_walk_v1:{object_id:`obj_oregoncoastal_dining_pacific-city_beach-walk-pacific-city-beach-walk_v1`,title:`Beach Walk`},obj_oregoncoastal_dining_pacific_city_doryland_pizza_v1:{object_id:`obj_oregoncoastal_dining_pacific-city_doryland-pizza_v1`,title:`Doryland Pizza`},obj_oregoncoastal_dining_pacific_city_sportsmans_pub_n_grub_v1:{object_id:`obj_oregoncoastal_dining_pacific-city_sportsmans-pub-n-grub_v1`,title:`Sportsman's Pub-n-Grub`},obj_oregoncoastal_attraction_pacific_city_cape_kiwanda_state_natural_area_v1:{object_id:`obj_oregoncoastal_attraction_pacific-city_cape-kiwanda-state-natural-area_v1`,title:`Cape Kiwanda State Natural Area`},obj_oregoncoastal_attraction_pacific_city_haystack_rock_v1:{object_id:`obj_oregoncoastal_attraction_pacific-city_haystack-rock-pacific-city_v1`,title:`Haystack Rock`},obj_oregoncoastal_attraction_pacific_city_dory_fleet_v1:{object_id:`obj_oregoncoastal_attraction_pacific-city_pacific-city-dory-fleet_v1`,title:`Dory Fishing Fleet`},obj_oregoncoastal_attraction_pacific_city_bob_straub_state_park_v1:{object_id:`obj_oregoncoastal_attraction_pacific-city_bob-straub-state-park_v1`,title:`Bob Straub State Park`},obj_oregoncoastal_dining_neskowin_hawk_creek_cafe_v1:{object_id:`obj_oregoncoastal_dining_neskowin_hawk-creek-cafe_v1`,title:`Hawk Creek Cafe`},obj_oregoncoastal_dining_neskowin_neskowin_provisions_v1:{object_id:`obj_oregoncoastal_dining_neskowin_neskowin-provisions_v1`,title:`Neskowin Trading Company`},obj_oregoncoastal_attraction_neskowin_ghost_forest_v1:{object_id:`obj_oregoncoastal_attraction_neskowin_ghost-forest_v1`,title:`Ghost Forest`},obj_oregoncoastal_attraction_neskowin_proposal_rock_v1:{object_id:`obj_oregoncoastal_attraction_neskowin_proposal-rock_v1`,title:`Proposal Rock`},obj_oregoncoastal_attraction_neskowin_neskowin_beach_v1:{object_id:`obj_oregoncoastal_attraction_neskowin_neskowin-beach_v1`,title:`Neskowin Beach`},obj_oregoncoastal_attraction_neskowin_cascade_head_v1:{object_id:`obj_oregoncoastal_attraction_neskowin_cascade-head_v1`,title:`Cascade Head`},obj_oregoncoastal_attraction_neskowin_neskowin_beach_golf_course_v1:{object_id:`obj_oregoncoastal_attraction_neskowin_neskowin-beach-golf-course_v1`,title:`Neskowin Beach Golf Course`},obj_oregoncoastal_hotel_lincoln_city_starfish_manor_oceanfront_hotel_v1:{object_id:`obj_oregoncoastal_hotel_lincoln-city_starfish-manor-oceanfront-hotel_v1`,title:`Starfish Manor Oceanfront Hotel`},obj_oregoncoastal_hotel_lincoln_city_the_coho_oceanfront_lodge_v1:{object_id:`obj_oregoncoastal_hotel_lincoln-city_the-coho-oceanfront-lodge_v1`,title:`The Coho Oceanfront Lodge`},obj_oregoncoastal_hotel_lincoln_city_sailor_jacks_oceanfront_inn_v1:{object_id:`obj_oregoncoastal_hotel_lincoln-city_sailor-jacks-oceanfront-inn_v1`,title:`Sailor Jack's Oceanfront Inn`},obj_oregoncoastal_hotel_lincoln_city_lincoln_sands_oceanfront_resort_v1:{object_id:`obj_oregoncoastal_hotel_lincoln-city_lincoln-sands-oceanfront-resort-ascend-hotel-collection_v1`,title:`Lincoln Sands Oceanfront Resort`},obj_oregoncoastal_hotel_lincoln_city_ashley_inn_and_suites_v1:{object_id:`obj_oregoncoastal_hotel_lincoln-city_ashley-inn-and-suites_v1`,title:`The Ashley Inn & Suites`},obj_oregoncoastal_hotel_lincoln_city_siletz_bay_beachfront_hotel_v1:{object_id:`obj_oregoncoastal_hotel_lincoln-city_siletz-bay-beachfront-hotel-by-oyo-lincoln-city_v1`,title:`Siletz Bay Beachfront Hotel`},obj_oregoncoastal_hotel_lincoln_city_holiday_inn_express_and_suites_v1:{object_id:`obj_oregoncoastal_hotel_lincoln-city_holiday-inn-express-and-suites-lincoln-city_v1`,title:`Holiday Inn Express & Suites`},obj_oregoncoastal_hotel_lincoln_city_comfort_inn_and_suites_v1:{object_id:`obj_oregoncoastal_hotel_lincoln-city_comfort-inn-and-suites_v1`,title:`Comfort Inn & Suites`},obj_oregoncoastal_hotel_lincoln_city_surfland_hotel_v1:{object_id:`obj_oregoncoastal_hotel_lincoln-city_surfland-hotel_v1`,title:`Surfland Hotel`},obj_oregoncoastal_hotel_lincoln_city_surftides_hotel_v1:{object_id:`obj_oregoncoastal_hotel_lincoln-city_surftides-hotel_v1`,title:`Surftides`},obj_oregoncoastal_attraction_lincoln_city_finders_keepers_v1:{object_id:`obj_oregoncoastal_attraction_lincoln-city_finders-keepers_v1`,title:`Finders Keepers Glass Float Hunt`},obj_oregoncoastal_attraction_lincoln_city_lincoln_city_glass_center_v1:{object_id:`obj_oregoncoastal_attraction_lincoln-city_lincoln-city-glass-center_v1`,title:`Lincoln City Glass Center`},obj_oregoncoastal_attraction_lincoln_city_devils_lake_state_recreation_area_v1:{object_id:`obj_oregoncoastal_attraction_lincoln-city_devils-lake-state-recreation-area_v1`,title:`Devil's Lake State Recreation Area`},obj_oregoncoastal_attraction_lincoln_city_chinook_winds_casino_resort_v1:{object_id:`obj_oregoncoastal_attraction_lincoln-city_chinook-winds-casino-resort_v1`,title:`Chinook Winds Casino Resort`},obj_oregoncoastal_attraction_lincoln_city_nelscott_reef_v1:{object_id:`obj_oregoncoastal_attraction_lincoln-city_nelscott-reef_v1`,title:`Nelscott Reef`},obj_oregoncoastal_attraction_lincoln_city_roads_end_state_recreation_site_v1:{object_id:`obj_oregoncoastal_attraction_lincoln-city_roads-end-state-recreation-site_v1`,title:`Road's End State Recreation Site`},obj_oregoncoastal_attraction_lincoln_city_lincoln_city_outlets_v1:{object_id:`obj_oregoncoastal_attraction_lincoln-city_lincoln-city-outlets_v1`,title:`Lincoln City Outlets`},obj_oregoncoastal_hotel_gleneden_beach_salishan_coastal_lodge_v1:{object_id:`obj_oregoncoastal_hotel_gleneden-beach_salishan-coastal-lodge_v1`,title:`Salishan Coastal Lodge`},obj_oregoncoastal_hotel_gleneden_beach_worldmark_gleneden_v1:{object_id:`obj_oregoncoastal_hotel_gleneden-beach_worldmark-gleneden_v1`,title:`WorldMark Gleneden`},obj_oregoncoastal_dining_gleneden_beach_the_attic_v1:{object_id:`obj_oregoncoastal_dining_gleneden-beach_the-attic_v1`,title:`The Attic Lounge`},obj_oregoncoastal_dining_gleneden_beach_the_side_door_cafe_v1:{object_id:`obj_oregoncoastal_dining_gleneden-beach_the-side-door-cafe_v1`,title:`Side Door Cafe`},obj_oregoncoastal_dining_gleneden_beach_beachcrest_brewing_co_v1:{object_id:`obj_oregoncoastal_dining_gleneden-beach_beachcrest-brewing-co_v1`,title:`Beachcrest Brewing`},obj_oregoncoastal_dining_gleneden_beach_salishack_tavern_v1:{object_id:`obj_oregoncoastal_dining_gleneden-beach_salishack-tavern_v1`,title:`Salishack Tavern`},obj_oregoncoastal_dining_gleneden_beach_hook_and_slice_v1:{object_id:`obj_oregoncoastal_dining_gleneden-beach_hook-and-slice_v1`,title:`Hook & Slice`},obj_oregoncoastal_dining_gleneden_beach_provisions_market_v1:{object_id:`obj_oregoncoastal_dining_gleneden-beach_provisions-market_v1`,title:`Provisions Market`},obj_oregoncoastal_dining_gleneden_beach_depoe_baykery_v1:{object_id:`obj_oregoncoastal_dining_gleneden-beach_depoe-baykery_v1`,title:`Depoe Baykery`},obj_oregoncoastal_attraction_gleneden_beach_salishan_golf_links_v1:{object_id:`obj_oregoncoastal_attraction_gleneden-beach_salishan-golf-links_v1`,title:`Salishan Golf Links`},obj_oregoncoastal_attraction_gleneden_beach_gleneden_beach_state_recreation_site_v1:{object_id:`obj_oregoncoastal_attraction_gleneden-beach_gleneden-beach-state-recreation-site_v1`,title:`Gleneden Beach State Recreation Site`},obj_oregoncoastal_attraction_gleneden_beach_the_marketplace_at_salishan_v1:{object_id:`obj_oregoncoastal_attraction_gleneden-beach_the-marketplace-at-salishan-coastal-lodge_v1`,title:`Salishan Marketplace`},obj_oregoncoastal_attraction_gleneden_beach_eden_hall_v1:{object_id:`obj_oregoncoastal_attraction_gleneden-beach_eden-hall_v1`,title:`Eden Hall`},obj_oregoncoastal_hotel_depoe_bay_whale_cove_inn_v1:{object_id:`obj_oregoncoastal_hotel_depoe-bay_whale-cove-inn_v1`,title:`Whale Cove Inn`},obj_oregoncoastal_hotel_depoe_bay_the_inn_at_arch_rock_v1:{object_id:`obj_oregoncoastal_hotel_depoe-bay_the-inn-at-arch-rock_v1`,title:`Inn at Arch Rock`},obj_oregoncoastal_hotel_depoe_bay_travelodge_by_wyndham_depoe_bay_v1:{object_id:`obj_oregoncoastal_hotel_depoe-bay_travelodge-by-wyndham-depoe-bay_v1`,title:`Travelodge by Wyndham Depoe Bay`},obj_oregoncoastal_hotel_depoe_bay_worldmark_depoe_bay_v1:{object_id:`obj_oregoncoastal_hotel_depoe-bay_worldmark-depoe-bay_v1`,title:`WorldMark Depoe Bay`},obj_oregoncoastal_dining_depoe_bay_tidal_raves_v1:{object_id:`obj_oregoncoastal_dining_depoe-bay_tidal-raves_v1`,title:`Tidal Raves`},obj_oregoncoastal_dining_depoe_bay_restaurant_beck_v1:{object_id:`obj_oregoncoastal_dining_depoe-bay_restaurant-beck_v1`,title:`Restaurant Beck`},obj_oregoncoastal_dining_depoe_bay_gracies_sea_hag_v1:{object_id:`obj_oregoncoastal_dining_depoe-bay_gracies-sea-hag_v1`,title:`Gracie's Sea Hag`},obj_oregoncoastal_dining_depoe_bay_the_horn_public_house_v1:{object_id:`obj_oregoncoastal_dining_depoe-bay_the-horn-public-house-and-depoe-bay-brewing-co_v1`,title:`The Horn Public House`},obj_oregoncoastal_dining_depoe_bay_arch_rock_caffe_v1:{object_id:`obj_oregoncoastal_dining_depoe-bay_arch-rock-caffe_v1`,title:`Arch Rock Cafe`},obj_oregoncoastal_dining_depoe_bay_mazatlan_mexican_restaurant_v1:{object_id:`obj_oregoncoastal_dining_depoe-bay_mazatlan-mexican-restaurant_v1`,title:`Mazatlan Mexican Restaurant`},obj_oregoncoastal_attraction_depoe_bay_spouting_horn_v1:{object_id:`obj_oregoncoastal_attraction_depoe-bay_depoe-bays-spouting-horn_v1`,title:`The Spouting Horns`},obj_oregoncoastal_attraction_depoe_bay_harbor_v1:{object_id:`obj_oregoncoastal_attraction_depoe-bay_depoe-bay-harbor_v1`,title:`World's Smallest Harbor`},obj_oregoncoastal_attraction_depoe_bay_boiler_bay_state_scenic_viewpoint_v1:{object_id:`obj_oregoncoastal_attraction_depoe-bay_boiler-bay-state-scenic-viewpoint_v1`,title:`Boiler Bay State Scenic Viewpoint`},obj_oregoncoastal_attraction_depoe_bay_rocky_creek_state_scenic_viewpoint_v1:{object_id:`obj_oregoncoastal_attraction_depoe-bay_rocky-creek-state-scenic-viewpoint_v1`,title:`Rocky Creek State Scenic Viewpoint`},obj_oregoncoastal_attraction_depoe_bay_depoe_bay_winery_v1:{object_id:`obj_oregoncoastal_attraction_depoe-bay_depoe-bay-winery_v1`,title:`Depoe Bay Winery`},obj_oregoncoastal_hotel_otter_rock_the_inn_at_otter_crest_v1:{object_id:`obj_oregoncoastal_hotel_otter-rock_the-inn-at-otter-crest_v1`,title:`The Inn at Otter Crest`},obj_oregoncoastal_dining_otter_rock_flying_dutchman_winery_v1:{object_id:`obj_oregoncoastal_dining_otter-rock_flying-dutchman-winery_v1`,title:`Flying Dutchman Winery`},obj_oregoncoastal_dining_otter_rock_cliffside_coffee_and_sweets_v1:{object_id:`obj_oregoncoastal_dining_otter-rock_cliffside-coffee-and-sweets_v1`,title:`Cliffside Coffee & Sweets`},obj_oregoncoastal_attraction_otter_rock_pura_vida_surf_shop_v1:{object_id:`obj_oregoncoastal_attraction_otter-rock_pura-vida-surf-shop_v1`,title:`Pura Vida Surf Shop`},obj_oregoncoastal_attraction_otter_rock_devils_punchbowl_state_natural_area_v1:{object_id:`obj_oregoncoastal_attraction_otter-rock_devils-punchbowl-state-natural-area_v1`,title:`Devil's Punchbowl State Natural Area`},obj_oregoncoastal_attraction_otter_rock_otter_rock_marine_reserve_v1:{object_id:`obj_oregoncoastal_attraction_otter-rock_otter-rock-marine-reserve_v1`,title:`Otter Rock Marine Reserve`},obj_oregoncoastal_hotel_newport_hotel_sylvia_v1:{object_id:`obj_oregoncoastal_hotel_newport_hotel-sylvia_v1`,title:`Sylvia Beach Hotel`},obj_oregoncoastal_hotel_newport_hallmark_resort_newport_v1:{object_id:`obj_oregoncoastal_hotel_newport_hallmark-resort-newport_v1`,title:`Hallmark Resort - Newport`},obj_oregoncoastal_hotel_newport_elizabeth_oceanfront_suites_v1:{object_id:`obj_oregoncoastal_hotel_newport_elizabeth-oceanfront-suites_v1`,title:`Elizabeth Oceanfront Suites`},obj_oregoncoastal_hotel_newport_best_western_plus_agate_beach_inn_v1:{object_id:`obj_oregoncoastal_hotel_newport_best-western-plus-agate-beach-inn_v1`,title:`Best Western Plus Agate Beach Inn`},obj_oregoncoastal_hotel_newport_little_creek_cove_v1:{object_id:`obj_oregoncoastal_hotel_newport_little-creek-cove_v1`,title:`Little Creek Cove Beachfront Resort`},obj_oregoncoastal_hotel_newport_holiday_inn_express_suites_newport_v1:{object_id:`obj_oregoncoastal_hotel_newport_holiday-inn-express-suites-newport_v1`,title:`Holiday Inn Express`},obj_oregoncoastal_hotel_newport_oyo_waves_hotel_newport_nye_beach_v1:{object_id:`obj_oregoncoastal_hotel_newport_oyo-waves-hotel-newport-nye-beach_v1`,title:`Waves Hotel Nye Beach`},obj_oregoncoastal_hotel_newport_comfort_inn_newport_v1:{object_id:`obj_oregoncoastal_hotel_newport_comfort-inn-newport_v1`,title:`Comfort Inn Newport`},obj_oregoncoastal_hotel_newport_newport_inn_by_oyo_hwy_101_v1:{object_id:`obj_oregoncoastal_hotel_newport_newport-inn-by-oyo-hwy-101_v1`,title:`Newport Inn by OYO`},obj_oregoncoastal_hotel_newport_motel_6_newport_v1:{object_id:`obj_oregoncoastal_hotel_newport_motel-6-newport_v1`,title:`Motel 6 Newport`},obj_oregoncoastal_hotel_waldport_waldport_inn_v1:{object_id:`obj_oregoncoastal_hotel_waldport_waldport-inn_v1`,title:`The Waldport Inn`},obj_oregoncoastal_hotel_yachats_overleaf_lodge_and_spa_v1:{object_id:`obj_oregoncoastal_hotel_yachats_overleaf-lodge-and-spa_v1`,title:`Overleaf Lodge & Spa`},obj_oregoncoastal_hotel_yachats_adobe_resort_v1:{object_id:`obj_oregoncoastal_hotel_yachats_adobe-resort_v1`,title:`Adobe Resort`},obj_oregoncoastal_hotel_yachats_fireside_motel_v1:{object_id:`obj_oregoncoastal_hotel_yachats_fireside-motel_v1`,title:`Fireside Motel`},obj_oregoncoastal_hotel_yachats_silver_surf_motel_v1:{object_id:`obj_oregoncoastal_hotel_yachats_silver-surf-motel_v1`,title:`Silver Surf Motel`},obj_oregoncoastal_hotel_yachats_tillicum_beach_motel_v1:{object_id:`obj_oregoncoastal_hotel_yachats_tillicum-beach-motel_v1`,title:`Tillicum Beach Motel`},obj_oregoncoastal_hotel_florence_driftwood_shores_resort_v1:{object_id:`obj_oregoncoastal_hotel_florence_driftwood-shores-resort_v1`,title:`Driftwood Shores Resort`},obj_oregoncoastal_hotel_florence_river_house_inn_v1:{object_id:`obj_oregoncoastal_hotel_florence_river-house-inn_v1`,title:`River House Inn`},obj_oregoncoastal_hotel_florence_best_western_pier_point_inn_v1:{object_id:`obj_oregoncoastal_hotel_florence_best-western-pier-point-inn_v1`,title:`Best Western Pier Point Inn`},obj_oregoncoastal_hotel_florence_three_rivers_casino_resort_v1:{object_id:`obj_oregoncoastal_hotel_florence_three-rivers-casino-resort_v1`,title:`Three Rivers Casino Resort`},obj_oregoncoastal_hotel_florence_economy_inn_florence_v1:{object_id:`obj_oregoncoastal_hotel_florence_economy-inn-florence_v1`,title:`Economy Inn Florence`},obj_oregoncoastal_hotel_florence_quality_inn_florence_v1:{object_id:`obj_oregoncoastal_hotel_florence_quality-inn-florence_v1`,title:`Quality Inn Florence`},obj_oregoncoastal_dining_newport_local_ocean_seafoods_v1:{object_id:`obj_oregoncoastal_dining_newport_local-ocean-seafoods_v1`,title:`Local Ocean Seafoods`},obj_oregoncoastal_dining_newport_clearwater_restaurant_v1:{object_id:`obj_oregoncoastal_dining_newport_clearwater-restaurant_v1`,title:`Clearwater Restaurant`},obj_oregoncoastal_dining_newport_georgies_beachside_grill_v1:{object_id:`obj_oregoncoastal_dining_newport_georgies-beachside-grill_v1`,title:`Georgie's Beachside Grill`},obj_oregoncoastal_dining_newport_nanas_irish_pub_v1:{object_id:`obj_oregoncoastal_dining_newport_nanas-irish-pub_v1`,title:`Nana's Irish Pub`},obj_oregoncoastal_dining_newport_sorella_italian_v1:{object_id:`obj_oregoncoastal_dining_newport_sorella-italian_v1`,title:`Sorella`},obj_oregoncoastal_dining_newport_newport_chowder_bowl_v1:{object_id:`obj_oregoncoastal_dining_newport_newport-chowder-bowl_v1`,title:`Newport Chowder Bowls`},obj_oregoncoastal_dining_newport_panini_bakery_v1:{object_id:`obj_oregoncoastal_dining_newport_panini-bakery_v1`,title:`Panini Bakery`},obj_oregoncoastal_dining_newport_zachs_bistro_v1:{object_id:`obj_oregoncoastal_dining_newport_zachs-bistro_v1`,title:`Zach's Bistro`},obj_oregoncoastal_dining_newport_the_coffee_house_v1:{object_id:`obj_oregoncoastal_dining_newport_the-coffee-house_v1`,title:`The Coffee House`},obj_oregoncoastal_dining_toledo_timbers_restaurant_lounge_v1:{object_id:`obj_oregoncoastal_dining_toledo_timbers-restaurant-lounge_v1`,title:`Timbers Restaurant & Lounge`},obj_oregoncoastal_dining_toledo_cobblestone_pizza_co_v1:{object_id:`obj_oregoncoastal_dining_toledo_cobblestone-pizza-co_v1`,title:`Cobblestone Pizza Co.`},obj_oregoncoastal_dining_waldport_hilltop_cafe_bistro_v1:{object_id:`obj_oregoncoastal_dining_waldport_hilltop-cafe-bistro_v1`,title:`Hilltop Café Bistro`},obj_oregoncoastal_dining_waldport_skosh_v1:{object_id:`obj_oregoncoastal_dining_waldport_skosh_v1`,title:`SkoSH`},obj_oregoncoastal_dining_waldport_grand_central_pizza_v1:{object_id:`obj_oregoncoastal_dining_waldport_grand-central-pizza_v1`,title:`Grand Central Pizza`},obj_oregoncoastal_dining_waldport_salty_dawg_bar_grill_v1:{object_id:`obj_oregoncoastal_dining_waldport_salty-dawg-bar-grill_v1`,title:`Salty Dawg`},obj_oregoncoastal_dining_waldport_fresh_mexican_food_v1:{object_id:`obj_oregoncoastal_dining_waldport_fresh-mexican-food_v1`,title:`Mexican Fresh`},obj_oregoncoastal_dining_yachats_ona_restaurant_lounge_v1:{object_id:`obj_oregoncoastal_dining_yachats_ona-restaurant-lounge_v1`,title:`Ona Restaurant & Lounge`},obj_oregoncoastal_dining_yachats_luna_sea_fish_house_v1:{object_id:`obj_oregoncoastal_dining_yachats_luna-sea-fish-house_v1`,title:`Luna Sea Fish House`},obj_oregoncoastal_dining_yachats_pelican_brewing_yachats_v1:{object_id:`obj_oregoncoastal_dining_yachats_pelican-brewing-yachats_v1`,title:`Pelican Brewing Yachats`},obj_oregoncoastal_dining_yachats_outta_gas_pizza_v1:{object_id:`obj_oregoncoastal_dining_yachats_outta-gas-pizza_v1`,title:`Outta Gas Pizza`},obj_oregoncoastal_dining_yachats_green_salmon_coffee_company_v1:{object_id:`obj_oregoncoastal_dining_yachats_green-salmon-coffee-company_v1`,title:`Green Salmon Coffee & Tea`},obj_oregoncoastal_dining_yachats_beach_street_kitchen_v1:{object_id:`obj_oregoncoastal_dining_yachats_beach-street-kitchen_v1`,title:`Beach Street Kitchen`},obj_oregoncoastal_dining_florence_waterfront_depot_v1:{object_id:`obj_oregoncoastal_dining_florence_waterfront-depot_v1`,title:`Waterfront Depot`},obj_oregoncoastal_dining_florence_mos_in_old_town_florence_v1:{object_id:`obj_oregoncoastal_dining_florence_mos-in-old-town-florence_v1`,title:`Mo's Restaurant`},obj_oregoncoastal_dining_florence_novellis_crab_seafood_v1:{object_id:`obj_oregoncoastal_dining_florence_novellis-crab-seafood_v1`,title:`Novelli's Crab & Seafood`},obj_oregoncoastal_dining_florence_homegrown_public_house_v1:{object_id:`obj_oregoncoastal_dining_florence_homegrown-public-house_v1`,title:`Homegrown Public House`},obj_oregoncoastal_dining_florence_1285_restobar_v1:{object_id:`obj_oregoncoastal_dining_florence_1285-restobar_v1`,title:`1285 Restobar`},obj_oregoncoastal_dining_florence_river_roasters_coffeehouse_v1:{object_id:`obj_oregoncoastal_dining_florence_river-roasters-coffeehouse_v1`,title:`River Roasters`},obj_oregoncoastal_dining_florence_bjs_ice_cream_parlor_v1:{object_id:`obj_oregoncoastal_dining_florence_bjs-ice-cream-parlor_v1`,title:`BJ's Ice Cream`},obj_oregoncoastal_dining_florence_lovejoys_restaurant_tearoom_v1:{object_id:`obj_oregoncoastal_dining_florence_lovejoys-restaurant-tearoom_v1`,title:`Lovejoy's Restaurant`},obj_oregoncoastal_dining_florence_nosh_eatery_v1:{object_id:`obj_oregoncoastal_dining_florence_nosh-eatery_v1`,title:`Nosh Eatery`},obj_oregoncoastal_attraction_newport_oregon_coast_aquarium_v1:{object_id:`obj_oregoncoastal_attraction_newport_oregon-coast-aquarium_v1`,title:`Oregon Coast Aquarium`},obj_oregoncoastal_attraction_newport_hatfield_marine_science_center_v1:{object_id:`obj_oregoncoastal_attraction_newport_hatfield-marine-science-center_v1`,title:`Hatfield Marine Science Center`},obj_oregoncoastal_attraction_newport_yaquina_head_outstanding_natural_area_v1:{object_id:`obj_oregoncoastal_attraction_newport_yaquina-head-outstanding-natural-area_v1`,title:`Yaquina Head Outstanding Natural Area`},obj_oregoncoastal_attraction_newport_yaquina_bay_lighthouse_v1:{object_id:`obj_oregoncoastal_attraction_newport_yaquina-bay-lighthouse_v1`,title:`Yaquina Bay Lighthouse`},obj_oregoncoastal_attraction_newport_marine_discovery_tours_v1:{object_id:`obj_oregoncoastal_attraction_newport_marine-discovery-tours_v1`,title:`Marine Discovery Tours`},obj_oregoncoastal_attraction_newport_south_beach_state_park_v1:{object_id:`obj_oregoncoastal_attraction_newport_south-beach-state-park_v1`,title:`South Beach State Park`},obj_oregoncoastal_attraction_newport_south_jetty_v1:{object_id:`obj_oregoncoastal_attraction_newport_south-jetty_v1`,title:`South Jetty`},obj_oregoncoastal_attraction_newport_mike_miller_educational_park_v1:{object_id:`obj_oregoncoastal_attraction_newport_mike-miller-educational-park_v1`,title:`Mike Miller Educational Park`},obj_oregoncoastal_attraction_brian_booth_state_park_v1:{object_id:`obj_oregoncoastal_attraction_brian-booth-state-park_v1`,title:`Brian Booth State Park`},obj_oregoncoastal_attraction_toledo_toledo_history_center_v1:{object_id:`obj_oregoncoastal_attraction_toledo_toledo-history-center_v1`,title:`Toledo History Center`},obj_oregoncoastal_attraction_toledo_yaquina_river_museum_of_art_v1:{object_id:`obj_oregoncoastal_attraction_toledo_yaquina-river-museum-of-art_v1`,title:`Yaquina River Museum of Art`},obj_oregoncoastal_attraction_toledo_waterfront_park_v1:{object_id:`obj_oregoncoastal_attraction_toledo_waterfront-park_v1`,title:`Port of Toledo Waterfront Park`},obj_oregoncoastal_attraction_toledo_michael_gibbons_signature_gallery_v1:{object_id:`obj_oregoncoastal_attraction_toledo_michael-gibbons-signature-gallery_v1`,title:`Michael Gibbons Signature Gallery`},obj_oregoncoastal_attraction_toledo_paddle_park_v1:{object_id:`obj_oregoncoastal_attraction_toledo_paddle-park_v1`,title:`Paddle Park`},obj_oregoncoastal_attraction_waldport_alsea_bay_bridge_visitor_center_heritage_museum_v1:{object_id:`obj_oregoncoastal_attraction_waldport_alsea-bay-bridge-visitor-center-heritage-museum_v1`,title:`Alsea Bay Bridge & Historic Interpretive Center`},obj_oregoncoastal_attraction_waldport_red_river_disc_golf_course_v1:{object_id:`obj_oregoncoastal_attraction_waldport_red-river-disc-golf-course_v1`,title:`Crestline Disc Golf Course`},obj_oregoncoastal_attraction_waldport_governor_patterson_memorial_state_recreation_site_v1:{object_id:`obj_oregoncoastal_attraction_waldport_governor-patterson-memorial-state-recreation-site_v1`,title:`Governor Patterson Memorial State Recreation Site`},obj_oregoncoastal_attraction_waldport_beachside_state_recreation_site_v1:{object_id:`obj_oregoncoastal_attraction_waldport_beachside-state-recreation-site_v1`,title:`Beachside State Recreation Site`},obj_oregoncoastal_attraction_yachats_cape_perpetua_scenic_area_v1:{object_id:`obj_oregoncoastal_attraction_yachats_cape-perpetua-scenic-area_v1`,title:`Cape Perpetua Scenic Area`},obj_oregoncoastal_attraction_yachats_thors_well_v1:{object_id:`obj_oregoncoastal_attraction_yachats_thors-well_v1`,title:`Thor's Well`},obj_oregoncoastal_attraction_yachats_devils_churn_v1:{object_id:`obj_oregoncoastal_attraction_yachats_devils-churn_v1`,title:`Devil's Churn`},obj_oregoncoastal_attraction_yachats_yachats_ocean_road_state_natural_site_v1:{object_id:`obj_oregoncoastal_attraction_yachats_yachats-ocean-road-state-natural-site_v1`,title:`Yachats Ocean Road State Natural Site`},obj_oregoncoastal_attraction_oregon_dunes_national_recreation_area_v1:{object_id:`obj_oregoncoastal_attraction_oregon-dunes-national-recreation-area_v1`,title:`Oregon Dunes National Recreation Area`},obj_oregoncoastal_attraction_florence_heceta_head_lighthouse_v1:{object_id:`obj_oregoncoastal_attraction_florence_heceta-head-lighthouse_v1`,title:`Heceta Head Lighthouse`},obj_oregoncoastal_attraction_florence_sea_lion_caves_v1:{object_id:`obj_oregoncoastal_attraction_florence_sea-lion-caves_v1`,title:`Sea Lion Caves`},obj_oregoncoastal_attraction_florence_siuslaw_river_bridge_v1:{object_id:`obj_oregoncoastal_attraction_florence_siuslaw-river-bridge_v1`,title:`Siuslaw River Bridge`},obj_oregoncoastal_attraction_florence_darlingtonia_state_natural_site_v1:{object_id:`obj_oregoncoastal_attraction_florence_darlingtonia-state-natural-site_v1`,title:`Darlingtonia State Natural Site`},obj_oregoncoastal_attraction_florence_jessie_m_honeyman_memorial_state_park_v1:{object_id:`obj_oregoncoastal_attraction_florence_jessie-m-honeyman-memorial-state-park_v1`,title:`Jessie M. Honeyman Memorial State Park`},obj_oregoncoastal_attraction_florence_sweet_creek_falls_v1:{object_id:`obj_oregoncoastal_attraction_florence_sweet-creek-falls_v1`,title:`Sweet Creek Falls`},obj_oregoncoastal_attraction_upper_lower_kentucky_falls_v1:{object_id:`obj_oregoncoastal_attraction_upper_lower_kentucky_falls_v1`,title:`Upper & Lower Kentucky Falls`},obj_oregoncoastal_trail_newport_ocean_to_bay_trail_v1:{object_id:`obj_oregoncoastal_trail_newport_ocean-to-bay-trail_v1`,title:`Ocean to Bay Trail`},obj_oregoncoastal_trail_south_beach_south_jetty_trail_v1:{object_id:`obj_oregoncoastal_trail_south-beach-south-jetty-trail_v1`,title:`South Jetty Trail`},obj_oregoncoastal_trail_newport_mike_miller_loop_v1:{object_id:`obj_oregoncoastal_trail_newport_mike-miller-loop_v1`,title:`Mike Miller Nature Loop`},obj_oregoncoastal_trail_south_beach_cooper_ridge_nature_trail_v1:{object_id:`obj_oregoncoastal_trail_south-beach_cooper-ridge-nature-trail_v1`,title:`Cooper Ridge Nature Trail`},obj_oregoncoastal_trail_south_beach_old_jetty_trail_v1:{object_id:`obj_oregoncoastal_trail_south-beach_old-jetty-trail_v1`,title:`Old Jetty Trail`},obj_oregoncoastal_trail_newport_yaquina_bay_estuary_trail_v1:{object_id:`obj_oregoncoastal_trail_newport_yaquina-bay-estuary-trail_v1`,title:`Yaquina Bay Estuary Trail`},obj_oregoncoastal_trail_waldport_oregon_coast_trail_section_v1:{object_id:`obj_oregoncoastal_trail_waldport_oregon-coast-trail-section_v1`,title:`Oregon Coast Trail (Waldport Section)`},obj_oregoncoastal_trail_waldport_woodland_trail_v1:{object_id:`obj_oregoncoastal_trail_waldport_woodland-trail_v1`,title:`Crestline Park Woodland Trail`},obj_oregoncoastal_trail_yachats_saint_perpetua_trail_1306_v1:{object_id:`obj_oregoncoastal_trail_yachats_saint-perpetua-trail-1306_v1`,title:`Saint Perpetua Trail`},obj_oregoncoastal_trail_yachats_amandas_trail_1386_v1:{object_id:`obj_oregoncoastal_trail_yachats_amandas-trail-1386_v1`,title:`Amanda's Trail`},obj_oregoncoastal_trail_yachats_cooks_ridge_trail_1372_v1:{object_id:`obj_oregoncoastal_trail_yachats_cooks-ridge-trail-1372_v1`,title:`Cook's Ridge Trail`},obj_oregoncoastal_trail_florence_heceta_lighthouse_trail_v1:{object_id:`obj_oregoncoastal_trail_florence_heceta-lighthouse-trail_v1`,title:`Heceta Head Lighthouse Trail`},obj_oregoncoastal_trail_siltcoos_lake_trail_1333_v1:{object_id:`obj_oregoncoastal_trail_siltcoos-lake-trail-1333_v1`,title:`Siltcoos Lake Trail`},obj_oregoncoastal_trail_waxmyrtle_trail_1337_v1:{object_id:`obj_oregoncoastal_trail_waxmyrtle-trail-1337_v1`,title:`Waxmyrtle Trail`},obj_oregoncoastal_trail_florence_sutton_trails_1321_v1:{object_id:`obj_oregoncoastal_trail_florence_sutton-trails-1321_v1`,title:`Sutton Trails (Loop)`},obj_oregoncoastal_event_yachats_mushroom_festival_2026_v1:{object_id:`obj_oregoncoastal_event_yachats_mushroom-festival_2026_v1`,title:`Yachats Mushroom Festival`},obj_oregoncoastal_event_florence_rhododendron_festival_2027_v1:{object_id:`obj_oregoncoastal_event_florence_rhododendron-festival_2027_v1`,title:`Rhododendron Festival`},obj_oregoncoastal_attraction_dune_city_carter_lake_v1:{object_id:`obj_oregoncoastal_attraction_dune-city_carter-lake_v1`,title:`Carter Lake`},obj_oregoncoastal_attraction_dune_city_siltcoos_lake_v1:{object_id:`obj_oregoncoastal_attraction_dune-city_siltcoos-lake_v1`,title:`Siltcoos Lake`},obj_oregoncoastal_attraction_dune_city_siltcoos_river_v1:{object_id:`obj_oregoncoastal_attraction_dune-city_siltcoos-river_v1`,title:`Siltcoos River`},obj_oregoncoastal_attraction_dune_city_woahink_lake_v1:{object_id:`obj_oregoncoastal_attraction_dune-city_woahink-lake_v1`,title:`Woahink Lake State Park`},obj_oregoncoastal_trail_carter_lake_area_carter_dunes_trail_1384_v1:{object_id:`obj_oregoncoastal_trail_carter-lake-area_carter-dunes-trail-1384_v1`,title:`Carter Dune Trail`},obj_oregoncoastal_trail_siltcoos_area_chief_tsiltcoos_trail_1359_v1:{object_id:`obj_oregoncoastal_trail_siltcoos-area_chief-tsiltcoos-trail-1359_v1`,title:`Chief Tsiltcoos Trail`},obj_oregoncoastal_trail_siltcoos_area_lagoon_loop_trail_1330_v1:{object_id:`obj_oregoncoastal_trail_siltcoos-area_lagoon-loop-trail-1330_v1`,title:`Lagoon Trail`},obj_oregoncoastal_trail_siltcoos_area_taylor_dunes_trail_1335_v1:{object_id:`obj_oregoncoastal_trail_siltcoos-area_taylor-dunes-trail-1335_v1`,title:`Taylor Dune Trail`},obj_oregoncoastal_trail_tahkenitch_area_tahkenitch_dunes_trail_1353_v1:{object_id:`obj_oregoncoastal_trail_tahkenitch-area_tahkenitch-dunes-national-recreation-trail-1353_v1`,title:`Tahkenitch Dunes Trail`},obj_oregoncoastal_attraction_reedsport_bolon_island_tideways_v1:{object_id:`obj_oregoncoastal_attraction_reedsport_bolon-island-tideways-state-scenic-corridor_v1`,title:`Bolon Island Tideways State Scenic Corridor`},obj_oregoncoastal_attraction_reedsport_dean_creek_elk_viewing_area_v1:{object_id:`obj_oregoncoastal_attraction_reedsport_dean-creek-elk-viewing-area_v1`,title:`Dean Creek Elk Viewing Area`},obj_oregoncoastal_attraction_reedsport_umpqua_discovery_center_v1:{object_id:`obj_oregoncoastal_attraction_reedsport_umpqua-discovery-center_v1`,title:`Umpqua Discovery Center`},obj_oregoncoastal_dining_reedsport_dons_main_street_family_restaurant_v1:{object_id:`obj_oregoncoastal_dining_reedsport_dons-main-street-family-restaurant_v1`,title:`Don's Main Street Family Restaurant`},obj_oregoncoastal_dining_reedsport_harborlight_restaurant_v1:{object_id:`obj_oregoncoastal_dining_reedsport_harborlight-restaurant_v1`,title:`Harbor Light Restaurant`},obj_oregoncoastal_hotel_reedsport_anchor_bay_inn_v1:{object_id:`obj_oregoncoastal_hotel_reedsport_anchor-bay-inn_v1`,title:`Anchor Bay Inn`},obj_oregoncoastal_hotel_reedsport_best_budget_inn_v1:{object_id:`obj_oregoncoastal_hotel_reedsport_best-budget-inn_v1`,title:`Best Budget Inn`},obj_oregoncoastal_hotel_reedsport_best_western_salbasgeon_v1:{object_id:`obj_oregoncoastal_hotel_reedsport_best-western-salbasgeon-inn-suites-of-reedsport_v1`,title:`Best Western Salbasgeon Inn`},obj_oregoncoastal_hotel_reedsport_economy_inn_v1:{object_id:`obj_oregoncoastal_hotel_reedsport_economy-inn_v1`,title:`Economy Inn Reedsport`},obj_oregoncoastal_trail_eel_creek_area_john_dellenback_dunes_trail_1339_v1:{object_id:`obj_oregoncoastal_trail_eel-creek-area_john-dellenback-dunes-trail-1339_v1`,title:`John Dellenback Dunes Trail`},obj_oregoncoastal_attraction_winchester_bay_lake_marie_v1:{object_id:`obj_oregoncoastal_attraction_winchester-bay_lake-marie_v1`,title:`Lake Marie`},obj_oregoncoastal_attraction_winchester_bay_salmon_harbor_marina_v1:{object_id:`obj_oregoncoastal_attraction_winchester-bay_salmon-harbor-marina_v1`,title:`Salmon Harbor Marina`},obj_oregoncoastal_attraction_winchester_bay_umpqua_river_lighthouse_v1:{object_id:`obj_oregoncoastal_attraction_winchester-bay_umpqua-river-lighthouse_v1`,title:`Umpqua River Lighthouse`},obj_oregoncoastal_hotel_winchester_bay_winchester_bay_inn_v1:{object_id:`obj_oregoncoastal_hotel_winchester-bay_winchester-bay-inn_v1`,title:`Winchester Bay Inn`},obj_oregoncoastal_trail_winchester_bay_lake_marie_walking_loop_v1:{object_id:`obj_oregoncoastal_trail_winchester-bay_lake-marie-walking-loop_v1`,title:`Lake Marie Trail`},obj_oregoncoastal_attraction_gardiner_gardiner_historic_district_v1:{object_id:`obj_oregoncoastal_attraction_gardiner_gardiner-historic-district_v1`,title:`Gardiner Historic District`},obj_oregoncoastal_attraction_oregon_dunes_overlook_v1:{object_id:`obj_oregoncoastal_attraction_oregon-dunes_oregon-dunes-overlook-and-day-use_v1`,title:`Oregon Dunes Overlook`},obj_oregoncoastal_trail_oregon_dunes_day_use_oregon_dunes_loop_trail_1334_v1:{object_id:`obj_oregoncoastal_trail_oregon-dunes-day-use_oregon-dunes-loop-trail-1334_v1`,title:`Oregon Dunes Loop`},obj_oregoncoastal_attraction_lakeside_eel_lake_v1:{object_id:`obj_oregoncoastal_attraction_lakeside_eel-lake_v1`,title:`Eel Lake`},obj_oregoncoastal_attraction_lakeside_tenmile_lakes_v1:{object_id:`obj_oregoncoastal_attraction_lakeside_tenmile-lakes_v1`,title:`Tenmile Lakes`},obj_oregoncoastal_attraction_lakeside_tenmile_lakes_park_v1:{object_id:`obj_oregoncoastal_attraction_lakeside_tenmile-lakes-park_v1`,title:`Tenmile Lakes County Park`},obj_oregoncoastal_attraction_lakeside_william_m_tugman_state_park_v1:{object_id:`obj_oregoncoastal_attraction_lakeside_william-m-tugman-state-park_v1`,title:`William M. Tugman State Park`},obj_oregoncoastal_dining_lakeside_lakeshore_lodge_restaurant_v1:{object_id:`obj_oregoncoastal_dining_lakeside_lakeshore-lodge-restaurant_v1`,title:`The Lakeshore Lodge Restaurant`},obj_oregoncoastal_dining_lakeside_up_the_creek_tavern_v1:{object_id:`obj_oregoncoastal_dining_lakeside_up-the-creek-tavern_v1`,title:`Up the Creek Tavern`},obj_oregoncoastal_hotel_lakeside_lakeshore_lodge_v1:{object_id:`obj_oregoncoastal_hotel_lakeside_lakeshore-lodge_v1`,title:`Lakeshore Lodge`},obj_oregoncoastal_trail_lakeside_area_hall_schuttpelz_lake_trail_1357_v1:{object_id:`obj_oregoncoastal_trail_lakeside-area_hall-schuttpelz-lake-trail-1357_v1`,title:`Hall Lake Trail`},obj_oregoncoastal_attraction_north_bend_david_dewett_veterans_memorial_v1:{object_id:`obj_oregoncoastal_attraction_north-bend_david-dewett-veterans-memorial-wayside_v1`,title:`David Dewett Veterans Memorial`},obj_oregoncoastal_hotel_north_bend_ko_kwel_casino_resort_v1:{object_id:`obj_oregoncoastal_hotel_north-bend_ko-kwel-casino-resort-coos-bay_v1`,title:`The Mill Casino • Hotel`},obj_oregoncoastal_dining_north_bend_captains_choice_v1:{object_id:`obj_oregoncoastal_dining_north-bend_captains-choice-family-fish-house_v1`,title:`Captain's Choice Fish House`},obj_oregoncoastal_dining_north_bend_kozy_kitchen_v1:{object_id:`obj_oregoncoastal_dining_north-bend_kozy-kitchen_v1`,title:`Kozy Kitchen`},obj_oregoncoastal_dining_north_bend_tais_dynasty_v1:{object_id:`obj_oregoncoastal_dining_north-bend_tais-dynasty_v1`,title:`Tai's Dynasty`},obj_oregoncoastal_dining_north_bend_pancake_mill_v1:{object_id:`obj_oregoncoastal_dining_north-bend_pancake-mill_v1`,title:`The Pancake Mill`},obj_oregoncoastal_dining_north_bend_plank_house_v1:{object_id:`obj_oregoncoastal_dining_north-bend_plank-house-at-ko-kwel-casino-resort_v1`,title:`The Plank House`},obj_oregoncoastal_dining_north_bend_the_tin_thistle_v1:{object_id:`obj_oregoncoastal_dining_north-bend_the-tin-thistle_v1`,title:`Tin Thistle`},obj_oregoncoastal_dining_north_bend_yeongs_place_v1:{object_id:`obj_oregoncoastal_dining_north-bend_yeongs-place_v1`,title:`Yeong's Place`},obj_oregoncoastal_hotel_north_bend_bay_bridge_motel_v1:{object_id:`obj_oregoncoastal_hotel_north-bend_bay-bridge-motel_v1`,title:`Bay Bridge Motel`},obj_oregoncoastal_hotel_north_bend_city_center_motel_v1:{object_id:`obj_oregoncoastal_hotel_north-bend_city-center-motel_v1`,title:`City Center Motel`},obj_oregoncoastal_hotel_north_bend_itty_bitty_inn_v1:{object_id:`obj_oregoncoastal_hotel_north-bend_itty-bitty-inn_v1`,title:`Itty Bitty Inn`},obj_oregoncoastal_hotel_north_bend_quality_inn_suites_v1:{object_id:`obj_oregoncoastal_hotel_north-bend_quality-inn-suites-at-coos-bay_v1`,title:`Quality Inn & Suites at Coos Bay`},obj_oregoncoastal_trail_north_bend_bluebill_trail_1331_v1:{object_id:`obj_oregoncoastal_trail_north-bend_bluebill-trail-1331_v1`,title:`Bluebill Lake Trail`},obj_oregoncoastal_attraction_coos_bay_coos_art_museum_v1:{object_id:`obj_oregoncoastal_attraction_coos-bay_coos-art-museum_v1`,title:`Coos Art Museum`},obj_oregoncoastal_attraction_coos_bay_coos_bay_boardwalk_v1:{object_id:`obj_oregoncoastal_attraction_coos-bay_coos-bay-boardwalk_v1`,title:`Coos Bay Boardwalk`},obj_oregoncoastal_attraction_coos_bay_golden_and_silver_falls_v1:{object_id:`obj_oregoncoastal_attraction_coos-bay_golden-and-silver-falls-state-natural-area_v1`,title:`Golden Falls & Silver Falls`},obj_oregoncoastal_attraction_coos_bay_mingus_park_v1:{object_id:`obj_oregoncoastal_attraction_coos-bay_mingus-park_v1`,title:`Mingus Park`},obj_oregoncoastal_attraction_coos_bay_oregon_coast_historical_railway_v1:{object_id:`obj_oregoncoastal_attraction_coos-bay_oregon-coast-historical-railway_v1`,title:`Oregon Coast Historical Railway`},obj_oregoncoastal_dining_coos_bay_7_devils_brewing_co_v1:{object_id:`obj_oregoncoastal_dining_coos-bay_7-devils-brewing-co_v1`,title:`7 Devils Brewing Co.`},obj_oregoncoastal_dining_coos_bay_cranberry_sweets_v1:{object_id:`obj_oregoncoastal_dining_coos-bay_cranberry-sweets_v1`,title:`Cranberry Sweets`},obj_oregoncoastal_dining_coos_bay_restaurant_o_v1:{object_id:`obj_oregoncoastal_dining_coos-bay_restaurant-o_v1`,title:`Restaurant O`},obj_oregoncoastal_dining_coos_bay_shark_bites_cafe_v1:{object_id:`obj_oregoncoastal_dining_coos-bay_shark-bites-seafood-cafe_v1`,title:`Shark Bites Cafe`},obj_oregoncoastal_dining_coos_bay_the_boat_v1:{object_id:`obj_oregoncoastal_dining_coos-bay_the-boat_v1`,title:`The Boat Fish & Chips`},obj_oregoncoastal_dining_coos_bay_tokyo_bistro_v1:{object_id:`obj_oregoncoastal_dining_coos-bay_tokyo-bistro_v1`,title:`Tokyo Bistro`},obj_oregoncoastal_event_coos_bay_wine_walk_2026_v1:{object_id:`obj_oregoncoastal_event_coos-bay_coos-bay-downtown-wine-walk-2026-11-06_v1`,title:`Coos Bay Wine Walk`},obj_oregoncoastal_hotel_bay_point_landing_v1:{object_id:`obj_oregoncoastal_hotel_bay-point-landing_v1`,title:`Bay Point Landing`},obj_oregoncoastal_hotel_coos_bay_best_western_holiday_hotel_v1:{object_id:`obj_oregoncoastal_hotel_coos-bay_best-western-holiday-hotel_v1`,title:`Best Western Holiday Hotel`},obj_oregoncoastal_hotel_coos_bay_edgewater_inn_v1:{object_id:`obj_oregoncoastal_hotel_coos-bay_edgewater-inn_v1`,title:`Edgewater Inn and Suites`},obj_oregoncoastal_hotel_coos_bay_global_inn_v1:{object_id:`obj_oregoncoastal_hotel_coos-bay_global-inn_v1`,title:`Global INN`},obj_oregoncoastal_hotel_coos_bay_motel_6_coos_bay_v1:{object_id:`obj_oregoncoastal_hotel_coos-bay_motel-6-coos-bay_v1`,title:`Motel 6 Coos Bay`},obj_oregoncoastal_hotel_coos_bay_red_lion_hotel_v1:{object_id:`obj_oregoncoastal_hotel_coos-bay_red-lion-hotel-coos-bay_v1`,title:`Red Lion Hotel Coos Bay`},obj_oregoncoastal_trail_coos_bay_mingus_park_paved_trail_v1:{object_id:`obj_oregoncoastal_trail_coos-bay_mingus-park-paved-trail_v1`,title:`Mingus Park Loop`},obj_oregoncoastal_hotel_charleston_capt_johns_motel_v1:{object_id:`obj_oregoncoastal_hotel_charleston_capt-johns-motel_v1`,title:`Captain John's Motel`},obj_oregoncoastal_hotel_charleston_plainview_motel_and_rv_park_v1:{object_id:`obj_oregoncoastal_hotel_charleston_plainview-motel-and-rv-park_v1`,title:`Plainview Motel`},obj_oregoncoastal_dining_charleston_portside_restaurant_v1:{object_id:`obj_oregoncoastal_dining_charleston_portside-restaurant_v1`,title:`The Portside`},obj_oregoncoastal_dining_charleston_millers_at_the_cove_v1:{object_id:`obj_oregoncoastal_dining_charleston_millers-at-the-cove_v1`,title:`Miller's at the Cove`},obj_oregoncoastal_dining_charleston_chucks_seafood_v1:{object_id:`obj_oregoncoastal_dining_charleston_chucks-seafood_v1`,title:`Chuck's Seafood`},obj_oregoncoastal_attraction_charleston_sunset_bay_state_park_v1:{object_id:`obj_oregoncoastal_attraction_charleston_sunset-bay-state-park_v1`,title:`Sunset Bay State Park`},obj_oregoncoastal_attraction_charleston_marine_life_center_v1:{object_id:`obj_oregoncoastal_attraction_charleston_marine-life-center_v1`,title:`Charleston Marine Life Center`},obj_oregoncoastal_attraction_charleston_south_slough_nerr_v1:{object_id:`obj_oregoncoastal_attraction_charleston_south-slough-national-estuarine-research-reserve_v1`,title:`South Slough National Estuarine Research Reserve`},obj_oregoncoastal_attraction_charleston_bastendorff_beach_v1:{object_id:`obj_oregoncoastal_attraction_charleston_bastendorff-beach_v1`,title:`Bastendorff Beach`},obj_oregoncoastal_hotel_bandon_bandon_inn_v1:{object_id:`obj_oregoncoastal_hotel_bandon_bandon-inn_v1`,title:`Bandon Inn`},obj_oregoncoastal_hotel_bandon_best_western_inn_at_face_rock_v1:{object_id:`obj_oregoncoastal_hotel_bandon_best-western-inn-at-face-rock_v1`,title:`Best Western Inn at Face Rock`},obj_oregoncoastal_hotel_bandon_inn_at_old_town_v1:{object_id:`obj_oregoncoastal_hotel_bandon_inn-at-old-town_v1`,title:`The Inn at Old Town`},obj_oregoncoastal_hotel_bandon_sunset_oceanfront_lodging_v1:{object_id:`obj_oregoncoastal_hotel_bandon_sunset-oceanfront-lodging_v1`,title:`Sunset Oceanfront Lodging`},obj_oregoncoastal_hotel_bandon_bandon_marina_inn_v1:{object_id:`obj_oregoncoastal_hotel_bandon_bandon-marina-inn_v1`,title:`Bandon Marina Inn`},obj_oregoncoastal_hotel_bandon_lakris_inn_v1:{object_id:`obj_oregoncoastal_hotel_bandon_lakris-inn_v1`,title:`La Kris Inn`},obj_oregoncoastal_dining_bandon_tonys_crab_shack_v1:{object_id:`obj_oregoncoastal_dining_bandon_tonys-crab-shack_v1`,title:`Tony's Crab Shack`},obj_oregoncoastal_dining_bandon_bandon_fish_market_v1:{object_id:`obj_oregoncoastal_dining_bandon_bandon-fish-market_v1`,title:`Bandon Fish Market`},obj_oregoncoastal_dining_bandon_alloro_wine_bar_and_restaurant_v1:{object_id:`obj_oregoncoastal_dining_bandon_alloro-wine-bar-and-restaurant_v1`,title:`Alloro Wine Bar & Restaurant`},obj_oregoncoastal_dining_bandon_wheelhouse_and_crowsnest_v1:{object_id:`obj_oregoncoastal_dining_bandon_wheelhouse-and-crowsnest_v1`,title:`The Wheelhouse`},obj_oregoncoastal_dining_bandon_foleys_irish_pub_v1:{object_id:`obj_oregoncoastal_dining_bandon_foleys-irish-pub_v1`,title:`Foley's Irish Pub`},obj_oregoncoastal_dining_bandon_coastal_mist_v1:{object_id:`obj_oregoncoastal_dining_bandon_coastal-mist_v1`,title:`Coastal Mist`},obj_oregoncoastal_dining_bandon_bandon_brewing_company_v1:{object_id:`obj_oregoncoastal_dining_bandon_bandon-brewing-company_v1`,title:`Bandon Brewing Company`},obj_oregoncoastal_dining_bandon_lord_bennetts_restaurant_v1:{object_id:`obj_oregoncoastal_dining_bandon_lord-bennetts-restaurant_v1`,title:`Lord Bennett's`},obj_oregoncoastal_dining_bandon_rolling_pin_bake_and_brew_v1:{object_id:`obj_oregoncoastal_dining_bandon_rolling-pin-bake-and-brew_v1`,title:`The Rolling Pin`},obj_oregoncoastal_attraction_bandon_face_rock_state_scenic_viewpoint_v1:{object_id:`obj_oregoncoastal_attraction_bandon_face-rock-state-scenic-viewpoint_v1`,title:`Face Rock State Scenic Viewpoint`},obj_oregoncoastal_attraction_bandon_coquille_river_lighthouse_v1:{object_id:`obj_oregoncoastal_attraction_bandon_coquille-river-lighthouse_v1`,title:`Coquille River Lighthouse`},obj_oregoncoastal_attraction_bandon_bandon_dunes_golf_resort_v1:{object_id:`obj_oregoncoastal_attraction_bandon_bandon-dunes-golf-resort_v1`,title:`Bandon Dunes Golf Resort`},obj_oregoncoastal_attraction_bandon_old_town_bandon_v1:{object_id:`obj_oregoncoastal_attraction_bandon_old-town-bandon_v1`,title:`Old Town Bandon`},obj_oregoncoastal_attraction_bandon_bullards_beach_state_park_v1:{object_id:`obj_oregoncoastal_attraction_bandon_bullards-beach-state-park_v1`,title:`Bullards Beach State Park`},obj_oregoncoastal_attraction_bandon_washed_ashore_gallery_v1:{object_id:`obj_oregoncoastal_attraction_bandon_washed-ashore-gallery_v1`,title:`Washed Ashore Gallery`},obj_oregoncoastal_attraction_bandon_bandon_historical_society_museum_v1:{object_id:`obj_oregoncoastal_attraction_bandon_bandon-historical-society-museum_v1`,title:`Bandon Historical Society Museum`},obj_oregoncoastal_trail_bandon_bullards_beach_beach_trail_v1:{object_id:`obj_oregoncoastal_trail_bandon_bullards-beach-beach-trail_v1`,title:`Bullards Beach Trail`},obj_oregoncoastal_attraction_new_river_storm_ranch_nature_center_v1:{object_id:`obj_oregoncoastal_attraction_new-river_storm-ranch-nature-center_v1`,title:`New River Nature Center`},obj_oregoncoastal_dining_langlois_langlois_market_v1:{object_id:`obj_oregoncoastal_dining_langlois_langlois-market_v1`,title:`Langlois Market`},obj_oregoncoastal_dining_langlois_the_spoon_v1:{object_id:`obj_oregoncoastal_dining_langlois_the-spoon_v1`,title:`The Spoon`},obj_oregoncoastal_attraction_langlois_floras_lake_state_natural_area_v1:{object_id:`obj_oregoncoastal_attraction_langlois_floras-lake-state-natural-area_v1`,title:`Floras Lake State Natural Area`},obj_oregoncoastal_attraction_langlois_blacklock_point_v1:{object_id:`obj_oregoncoastal_attraction_langlois_blacklock-point_v1`,title:`Blacklock Point`},obj_oregoncoastal_attraction_langlois_boice_cope_park_v1:{object_id:`obj_oregoncoastal_attraction_langlois_boice-cope-park_v1`,title:`Boice Cope County Park`},obj_oregoncoastal_attraction_langlois_dragonfly_farm_and_nursery_v1:{object_id:`obj_oregoncoastal_attraction_langlois_dragonfly-farm-and-nursery_v1`,title:`Dragonfly Farm & Nursery`},obj_oregoncoastal_attraction_langlois_cape_blanco_state_park_v1:{object_id:`obj_oregoncoastal_attraction_langlois_cape-blanco-state-park_v1`,title:`Cape Blanco State Park`},obj_oregoncoastal_hotel_port_orford_shoreline_inn_and_suites_v1:{object_id:`obj_oregoncoastal_hotel_port-orford_shoreline-inn-and-suites_v1`,title:`The Shoreline Inn & Suites`},obj_oregoncoastal_dining_port_orford_redfish_v1:{object_id:`obj_oregoncoastal_dining_port-orford_redfish_v1`,title:`Redfish`},obj_oregoncoastal_dining_port_orford_crazy_norwegians_fish_and_chips_v1:{object_id:`obj_oregoncoastal_dining_port-orford_crazy-norwegians-fish-and-chips_v1`,title:`The Crazy Norwegian's Fish & Chips`},obj_oregoncoastal_dining_port_orford_tasty_kates_v1:{object_id:`obj_oregoncoastal_dining_port-orford_tasty-kates_v1`,title:`Tasty Kate's`},obj_oregoncoastal_dining_port_orford_golden_harvest_v1:{object_id:`obj_oregoncoastal_dining_port-orford_golden-harvest-herban-farm-and-bakery_v1`,title:`Golden Harvest`},obj_oregoncoastal_dining_port_orford_mr_eds_underground_pub_v1:{object_id:`obj_oregoncoastal_dining_port-orford_mr-eds-espresso-juice-and-underground-pub_v1`,title:`Mr. Ed's Underground Pub`},obj_oregoncoastal_attraction_port_orford_battle_rock_wayside_park_v1:{object_id:`obj_oregoncoastal_attraction_port-orford_battle-rock-wayside-park_v1`,title:`Battle Rock Wayside`},obj_oregoncoastal_attraction_port_orford_cape_blanco_lighthouse_v1:{object_id:`obj_oregoncoastal_attraction_port-orford_cape-blanco-lighthouse_v1`,title:`Cape Blanco Lighthouse`},obj_oregoncoastal_attraction_port_orford_port_orford_heads_state_park_v1:{object_id:`obj_oregoncoastal_attraction_port-orford_port-orford-heads-state-park_v1`,title:`Port Orford Heads State Park`},obj_oregoncoastal_attraction_port_orford_port_of_port_orford_dolly_dock_v1:{object_id:`obj_oregoncoastal_attraction_port-orford_port-of-port-orford-dolly-dock_v1`,title:`The Dolly Dock`},obj_oregoncoastal_trail_port_orford_humbug_mountain_trail_v1:{object_id:`obj_oregoncoastal_trail_port-orford_humbug-mountain-trail_v1`,title:`Humbug Mountain Trail`},obj_oregoncoastal_hotel_gold_beach_gold_beach_inn_v1:{object_id:`obj_oregoncoastal_hotel_gold-beach_gold-beach-inn_v1`,title:`Gold Beach Inn`},obj_oregoncoastal_hotel_gold_beach_surestay_plus_hotel_v1:{object_id:`obj_oregoncoastal_hotel_gold-beach_surestay-plus-hotel-by-best-western-gold-beach_v1`,title:`SureStay Plus Hotel`},obj_oregoncoastal_hotel_gold_beach_pacific_reef_hotel_v1:{object_id:`obj_oregoncoastal_hotel_gold-beach_pacific-reef-hotel_v1`,title:`Pacific Reef Hotel & Light Show`},obj_oregoncoastal_hotel_gold_beach_wildflower_inn_v1:{object_id:`obj_oregoncoastal_hotel_gold-beach_wildflower-inn_v1`,title:`The Wildflower Inn`},obj_oregoncoastal_hotel_gold_beach_jots_resort_v1:{object_id:`obj_oregoncoastal_hotel_gold-beach_jots-resort_v1`,title:`Jot's Resort`},obj_oregoncoastal_attraction_gold_beach_cape_sebastian_state_scenic_corridor_v1:{object_id:`obj_oregoncoastal_attraction_gold-beach_cape-sebastian-state-scenic-corridor_v1`,title:`Cape Sebastian State Scenic Corridor`},obj_oregoncoastal_attraction_gold_beach_myers_creek_beach_access_v1:{object_id:`obj_oregoncoastal_attraction_gold-beach_myers-creek-beach-access_v1`,title:`Myers Creek Beach Walk`},obj_oregoncoastal_hotel_brookings_beachfront_inn_v1:{object_id:`obj_oregoncoastal_hotel_brookings_beachfront-inn_v1`,title:`Beachfront Inn`},obj_oregoncoastal_hotel_brookings_whaleshead_beach_resort_v1:{object_id:`obj_oregoncoastal_hotel_brookings_whaleshead-beach-resort_v1`,title:`Whaleshead Beach Resort`},obj_oregoncoastal_hotel_brookings_wild_rivers_motor_lodge_v1:{object_id:`obj_oregoncoastal_hotel_brookings_wild-rivers-motor-lodge_v1`,title:`Wild Rivers Motor Lodge`},obj_oregoncoastal_hotel_brookings_ocean_suites_motel_v1:{object_id:`obj_oregoncoastal_hotel_brookings_ocean-suites-motel_v1`,title:`Ocean Suites Motel`},obj_oregoncoastal_hotel_brookings_pacific_sunset_inn_v1:{object_id:`obj_oregoncoastal_hotel_brookings_pacific-sunset-inn_v1`,title:`Pacific Sunset Inn`},obj_oregoncoastal_hotel_brookings_blue_coast_inn_and_suites_v1:{object_id:`obj_oregoncoastal_hotel_brookings_blue-coast-inn-and-suites_v1`,title:`Blue Coast Inn and Suites`},obj_oregoncoastal_hotel_brookings_westward_inn_v1:{object_id:`obj_oregoncoastal_hotel_brookings_westward-inn_v1`,title:`Westward Inn`},obj_oregoncoastal_hotel_brookings_brookings_inn_resort_v1:{object_id:`obj_oregoncoastal_hotel_brookings_brookings-inn-resort_v1`,title:`Brookings Inn Resort`},obj_oregoncoastal_hotel_brookings_harbor_inn_motel_v1:{object_id:`obj_oregoncoastal_hotel_brookings_harbor-inn-motel_v1`,title:`Harbor Inn`},obj_oregoncoastal_hotel_brookings_americoast_inn_v1:{object_id:`obj_oregoncoastal_hotel_brookings_americoast-inn_v1`,title:`AmeriCoast Inn`},obj_oregoncoastal_dining_brookings_black_trumpet_bistro_v1:{object_id:`obj_oregoncoastal_dining_brookings_black-trumpet-bistro_v1`,title:`Black Trumpet Bistro`},obj_oregoncoastal_dining_brookings_oxenfre_public_house_v1:{object_id:`obj_oregoncoastal_dining_brookings_oxenfre-public-house_v1`,title:`Oxenfrë Public House`},obj_oregoncoastal_dining_brookings_hungry_clam_v1:{object_id:`obj_oregoncoastal_dining_brookings_hungry-clam_v1`,title:`The Hungry Clam`},obj_oregoncoastal_dining_brookings_superfly_v1:{object_id:`obj_oregoncoastal_dining_brookings_superfly-distilling-company-and-restaurant_v1`,title:`Superfly Martini Bar & Grill`},obj_oregoncoastal_dining_brookings_chetco_brewing_company_v1:{object_id:`obj_oregoncoastal_dining_brookings_chetco-brewing-company_v1`,title:`Chetco Brewing Company`},obj_oregoncoastal_dining_brookings_pacific_sushi_and_grill_v1:{object_id:`obj_oregoncoastal_dining_brookings_pacific-sushi-and-grill_v1`,title:`Pacific Sushi & Grill`},obj_oregoncoastal_dining_brookings_catalyst_seafood_v1:{object_id:`obj_oregoncoastal_dining_brookings_catalyst-seafood_v1`,title:`Catalyst Seafood`},obj_oregoncoastal_dining_brookings_zolas_on_the_water_v1:{object_id:`obj_oregoncoastal_dining_brookings_zolas-on-the-water_v1`,title:`Zola's Pizzeria`},obj_oregoncoastal_dining_brookings_fat_cat_pizza_v1:{object_id:`obj_oregoncoastal_dining_brookings_fat-cat-pizza_v1`,title:`Fat Cat Pizza`},obj_oregoncoastal_dining_brookings_railroad_street_market_and_deli_v1:{object_id:`obj_oregoncoastal_dining_brookings_railroad-street-market-and-deli_v1`,title:`Railroad Street Market & Deli`},obj_oregoncoastal_attraction_brookings_chetco_point_park_v1:{object_id:`obj_oregoncoastal_attraction_brookings_chetco-point-park_v1`,title:`Chetco Point Park`},obj_oregoncoastal_attraction_brookings_port_of_brookings_harbor_v1:{object_id:`obj_oregoncoastal_attraction_brookings_port-of-brookings-harbor_v1`,title:`Port of Brookings Harbor`},obj_oregoncoastal_attraction_brookings_manley_art_center_gallery_v1:{object_id:`obj_oregoncoastal_attraction_brookings_manley-art-center-gallery_v1`,title:`Manley Art Center & Gallery`},obj_oregoncoastal_attraction_brookings_sporthaven_beach_v1:{object_id:`obj_oregoncoastal_attraction_brookings_sporthaven-beach_v1`,title:`Sporthaven Beach`},obj_oregoncoastal_attraction_brookings_arch_rock_overlook_v1:{object_id:`obj_oregoncoastal_attraction_brookings_arch-rock-overlook_v1`,title:`Arch Rock Viewpoint`},obj_oregoncoastal_trail_brookings_cape_ferrelo_loop_v1:{object_id:`obj_oregoncoastal_trail_brookings_cape-ferrelo-loop_v1`,title:`Cape Ferrelo Loop`}},_ee={"Cannon Beach":{"Public Coast Brewing":G.obj_oregoncoastal_dining_public_coast_brewing_v1,"Pelican Brewing":G.obj_oregoncoastal_dining_cannon_beach_pelican_brewing_v1,"The Wayfarer":G.obj_oregoncoastal_dining_cannon_beach_wayfarer_restaurant_lounge_v1,"Driftwood Restaurant & Lounge":G.obj_oregoncoastal_dining_cannon_beach_driftwood_restaurant_lounge_v1,"Pizza a'fetta":G.obj_oregoncoastal_dining_cannon_beach_pizza_afetta_v1,Castaways:G.obj_oregoncoastal_dining_cannon_beach_castaways_v1,"Ecola Seafoods":G.obj_oregoncoastal_dining_cannon_beach_ecola_seafoods_v1,"Bill's Tavern & Brewhouse":G.obj_oregoncoastal_dining_cannon_beach_bills_tavern_v1,"Warren House Pub":G.obj_oregoncoastal_dining_cannon_beach_warren_house_pub_v1,"Mo's Cannon Beach":G.obj_oregoncoastal_dining_tolovana_park_mos_seafood_chowder_v1,"Lazy Susan Cafe":G.obj_oregoncoastal_dining_cannon_beach_lazy_susan_cafe_v1,"Sleepy Monk Coffee Roasters":G.obj_oregoncoastal_dining_cannon_beach_sleepy_monk_coffee_v1,"Insomnia Coffee Co.":G.obj_oregoncoastal_dining_cannon_beach_insomnia_coffee_company_v1,"Seasons Cafe":G.obj_oregoncoastal_dining_cannon_beach_seasons_cafe_v1},"Tolovana Park":{"Pelican Brewing":G.obj_oregoncoastal_dining_cannon_beach_pelican_brewing_v1,"Wayfarer Restaurant":G.obj_oregoncoastal_dining_cannon_beach_wayfarer_restaurant_lounge_v1,"Warren House Pub":G.obj_oregoncoastal_dining_cannon_beach_warren_house_pub_v1,"Mo's Cannon Beach":G.obj_oregoncoastal_dining_tolovana_park_mos_seafood_chowder_v1,"Sea Level Bakery + Coffee":G.obj_oregoncoastal_dining_tolovana_park_sea_level_bakery_coffee_v1,"Fresh Foods Deli":G.obj_oregoncoastal_dining_tolovana_park_fresh_foods_v1,"Stephanie Inn Dining Room":G.obj_oregoncoastal_dining_cannon_beach_stephanie_inn_dining_room_v1},Astoria:{"Bridgewater Bistro":G.obj_oregoncoastal_dining_astoria_bridgewater_bistro_v1,"Silver Salmon Grille":G.obj_oregoncoastal_dining_astoria_silver_salmon_grille_v1,"Carruthers Restaurant":G.obj_oregoncoastal_dining_astoria_carruthers_v1,"Fort George Brewery + Public House":G.obj_oregoncoastal_dining_astoria_fort_george_brewery_public_house_v1,"Buoy Beer Company":G.obj_oregoncoastal_dining_astoria_buoy_beer_company_v1,"Bowpicker Fish & Chips":G.obj_oregoncoastal_dining_astoria_bowpicker_fish_chips_v1,"Frite & Scoop":G.obj_oregoncoastal_dining_astoria_frite_and_scoop_v1,"Coffee Girl":G.obj_oregoncoastal_dining_astoria_coffee_girl_v1,"The Blue Scorcher Bakery & Cafe":G.obj_oregoncoastal_dining_astoria_blue_scorcher_bakery_cafe_v1},Warrenton:{"El Catrin Mexican Kitchen":G.obj_oregoncoastal_dining_warrenton_el_catrin_mexican_restaurant_v1,"Nisa's Thai Kitchen":G.obj_oregoncoastal_dining_warrenton_nisas_thai_kitchen_v1,"Arnie's Cafe":G.obj_oregoncoastal_dining_warrenton_arnies_cafe_v1,"Fultano's Pizza":G.obj_oregoncoastal_dining_warrenton_fultanos_pizza_v1},Gearhart:{"McMenamins Sand Trap Bar & Grill":G.obj_oregoncoastal_dining_gearhart_mcmenamins_sand_trap_pub_v1,"Prep Kitchen Gearhart":G.obj_oregoncoastal_dining_gearhart_prep_kitchen_deli_catering_v1,"Fultano's Pizza":G.obj_oregoncoastal_dining_gearhart_fultanos_pizza_v1},Seaside:{"Mo's Seafood & Chowder":G.obj_oregoncoastal_dining_seaside_mos_seafood_chowder_seaside_v1,"Nonni's Italian Bistro":G.obj_oregoncoastal_dining_seaside_nonnis_italian_bistro_v1,"Dooger's Seafood & Grill":G.obj_oregoncoastal_dining_seaside_doogers_seafood_grill_v1,"Norma's Seafood & Steak":G.obj_oregoncoastal_dining_seaside_normas_seafood_steak_v1,"Dundee's Bar & Grill":G.obj_oregoncoastal_dining_seaside_dundees_bar_grill_v1,"Osprey Cafe":G.obj_oregoncoastal_dining_seaside_osprey_cafe_v1,"Tora Sushi":G.obj_oregoncoastal_dining_seaside_tora_sushi_lounge_seaside_v1,"The Stand":G.obj_oregoncoastal_dining_seaside_the_stand_seaside_v1,"Twisted Fish Steakhouse":G.obj_oregoncoastal_dining_seaside_twisted_fish_steakhouse_v1,"Pig 'N Pancake":G.obj_oregoncoastal_dining_seaside_pig_n_pancake_seaside_v1},"Arch Cape":{"Driftwood Restaurant & Lounge":G.obj_oregoncoastal_dining_cannon_beach_driftwood_restaurant_lounge_v1,"The Wayfarer Restaurant":G.obj_oregoncoastal_dining_cannon_beach_wayfarer_restaurant_lounge_v1,"Pelican Brewing":G.obj_oregoncoastal_dining_cannon_beach_pelican_brewing_v1,"Public Coast Brewing":G.obj_oregoncoastal_dining_public_coast_brewing_v1,"Pizza a'fetta":G.obj_oregoncoastal_dining_cannon_beach_pizza_afetta_v1,"Insomnia Coffee Co":G.obj_oregoncoastal_dining_cannon_beach_insomnia_coffee_company_v1,"Lazy Susan Cafe":G.obj_oregoncoastal_dining_cannon_beach_lazy_susan_cafe_v1,"Ecola Seafoods Restaurant & Market":G.obj_oregoncoastal_dining_cannon_beach_ecola_seafoods_v1,Castaways:G.obj_oregoncoastal_dining_cannon_beach_castaways_v1},Manzanita:{"The Big Wave Cafe":G.obj_oregoncoastal_dining_manzanita_big_wave_cafe_v1,Yolk:G.obj_oregoncoastal_dining_manzanita_yolk_brunch_poach503_v1,"Marzano's Pizza Pie":G.obj_oregoncoastal_dining_manzanita_marzanos_pizza_pie_v1,"Wild Grocery & Cafe":G.obj_oregoncoastal_dining_manzanita_wild_grocery_cafe_v1,"Left Coast Siesta":G.obj_oregoncoastal_dining_manzanita_left_coast_siesta_v1,"Manzanita Coffee Co.":G.obj_oregoncoastal_dining_manzanita_manzanita_coffee_company_v1,"Neah-Kah-Nie Bistro":G.obj_oregoncoastal_dining_manzanita_neah_kah_nie_bistro_v1,"The Winery at Manzanita":G.obj_oregoncoastal_dining_manzanita_the_winery_at_manzanita_v1},Nehalem:{"Buttercup Homemade Ice Creams & Chowders":G.obj_oregoncoastal_dining_nehalem_buttercup_ice_creams_chowders_v1,"Wanda's Cafe & Bakery":G.obj_oregoncoastal_dining_nehalem_wandas_cafe_bakery_v1,"The Pizza Garden":G.obj_oregoncoastal_dining_nehalem_the_pizza_garden_v1},Wheeler:{"The Roost":G.obj_oregoncoastal_dining_wheeler_the_roost_v1,"Rising Star Cafe":G.obj_oregoncoastal_dining_wheeler_rising_star_cafe_v1},"Rockaway Beach":{"Old Oregon Smokehouse":G.obj_oregoncoastal_dining_rockaway_beach_old_oregon_smokehouse_v1,"Sand Dollar Restaurant":G.obj_oregoncoastal_dining_rockaway_beach_sand_dollar_restaurant_v1,"Pronto Pup":G.obj_oregoncoastal_dining_rockaway_beach_pronto_pup_v1,"The Beach Bite":G.obj_oregoncoastal_dining_rockaway_beach_the_beach_bite_v1},Garibaldi:{"Garibaldi Portside Bistro":G.obj_oregoncoastal_dining_garibaldi_portside_bistro_v1,"Fisherman's Korner Restaurant":G.obj_oregoncoastal_dining_garibaldi_fishermans_korner_restaurant_v1,"Crab Rock Pizza":G.obj_oregoncoastal_dining_garibaldi_crab_rock_pizza_v1},"Bay City":{"The Fish Peddler":G.obj_oregoncoastal_dining_bay_city_the_fish_peddler_v1,"Downie's Cafe":G.obj_oregoncoastal_dining_bay_city_downies_cafe_v1,"Tillamook Country Smoker Outlet":G.obj_oregoncoastal_attraction_bay_city_tillamook_country_smoker_outlet_v1,"Schooner Restaurant & Lounge (Nearby)":G.obj_oregoncoastal_dining_netarts_schooner_restaurant_lounge_v1},Tillamook:{"Pacific Restaurant":G.obj_oregoncoastal_dining_tillamook_pacific_restaurant_v1,"Alice's Country House":G.obj_oregoncoastal_dining_tillamook_alices_country_house_v1,"La Mexicana Restaurant":G.obj_oregoncoastal_dining_tillamook_la_mexicana_restaurant_v1,"Five Rivers Coffee Roasters":G.obj_oregoncoastal_dining_tillamook_five_rivers_coffee_roasters_v1,"Werner Beef & Brew":G.obj_oregoncoastal_dining_tillamook_werner_beef_brew_v1,"JAndy Oyster Co.":G.obj_oregoncoastal_dining_tillamook_jandy_oyster_co_v1},Netarts:{"The Schooner Restaurant & Lounge":G.obj_oregoncoastal_dining_netarts_schooner_restaurant_lounge_v1,"Bayside Market & Deli":G.obj_oregoncoastal_dining_netarts_bayside_market_deli_v1},Oceanside:{"Roseanna's Cafe":G.obj_oregoncoastal_dining_oceanside_roseannas_cafe_v1,"Blue Agate Cafe":G.obj_oregoncoastal_dining_oceanside_blue_agate_cafe_v1,"Current Cafe":G.obj_oregoncoastal_dining_oceanside_current_cafe_v1},"Pacific City":{"Pelican Brewing Company":G.obj_oregoncoastal_dining_pacific_city_pelican_brewing_company_v1,"The Grateful Bread Bakery":G.obj_oregoncoastal_dining_pacific_city_grateful_bread_restaurant_bakery_v1,"Meridian Restaurant & Bar":G.obj_oregoncoastal_dining_pacific_city_meridian_restaurant_and_bar_v1,"The Riverhouse Nestucca":G.obj_oregoncoastal_dining_pacific_city_the_riverhouse_nestucca_v1,"Stimulus Coffee + Bakery":G.obj_oregoncoastal_dining_pacific_city_stimulus_coffee_plus_bakery_v1,"Ben & Jeff's Burgers and Tacos":G.obj_oregoncoastal_dining_pacific_city_ben_and_jeffs_burgers_tacos_v1,"Beach Walk":G.obj_oregoncoastal_dining_pacific_city_beach_walk_v1,"Doryland Pizza":G.obj_oregoncoastal_dining_pacific_city_doryland_pizza_v1,"Sportsman's Pub-n-Grub":G.obj_oregoncoastal_dining_pacific_city_sportsmans_pub_n_grub_v1},Neskowin:{"Hawk Creek Cafe":G.obj_oregoncoastal_dining_neskowin_hawk_creek_cafe_v1,"Neskowin Trading Company":G.obj_oregoncoastal_dining_neskowin_neskowin_provisions_v1},"Gleneden Beach":{"The Attic Lounge":G.obj_oregoncoastal_dining_gleneden_beach_the_attic_v1,"Side Door Cafe":G.obj_oregoncoastal_dining_gleneden_beach_the_side_door_cafe_v1,"Beachcrest Brewing":G.obj_oregoncoastal_dining_gleneden_beach_beachcrest_brewing_co_v1,"Salishack Tavern":G.obj_oregoncoastal_dining_gleneden_beach_salishack_tavern_v1,"Hook & Slice":G.obj_oregoncoastal_dining_gleneden_beach_hook_and_slice_v1,"Provisions Market":G.obj_oregoncoastal_dining_gleneden_beach_provisions_market_v1,"Depoe Baykery":G.obj_oregoncoastal_dining_gleneden_beach_depoe_baykery_v1},"Depoe Bay":{"Tidal Raves":G.obj_oregoncoastal_dining_depoe_bay_tidal_raves_v1,"Restaurant Beck":G.obj_oregoncoastal_dining_depoe_bay_restaurant_beck_v1,"Gracie's Sea Hag":G.obj_oregoncoastal_dining_depoe_bay_gracies_sea_hag_v1,"The Horn Public House":G.obj_oregoncoastal_dining_depoe_bay_the_horn_public_house_v1,"Arch Rock Cafe":G.obj_oregoncoastal_dining_depoe_bay_arch_rock_caffe_v1,"Mazatlan Mexican Restaurant":G.obj_oregoncoastal_dining_depoe_bay_mazatlan_mexican_restaurant_v1},"Otter Rock":{"Flying Dutchman Winery":G.obj_oregoncoastal_dining_otter_rock_flying_dutchman_winery_v1,"Cliffside Coffee & Sweets":G.obj_oregoncoastal_dining_otter_rock_cliffside_coffee_and_sweets_v1,"Pura Vida Surf Shop":G.obj_oregoncoastal_attraction_otter_rock_pura_vida_surf_shop_v1},Newport:{"Local Ocean Seafoods":G.obj_oregoncoastal_dining_newport_local_ocean_seafoods_v1,"Clearwater Restaurant":G.obj_oregoncoastal_dining_newport_clearwater_restaurant_v1,"Georgie's Beachside Grill":G.obj_oregoncoastal_dining_newport_georgies_beachside_grill_v1,"Nana's Irish Pub":G.obj_oregoncoastal_dining_newport_nanas_irish_pub_v1,Sorella:G.obj_oregoncoastal_dining_newport_sorella_italian_v1,"Newport Chowder Bowls":G.obj_oregoncoastal_dining_newport_newport_chowder_bowl_v1,"Panini Bakery":G.obj_oregoncoastal_dining_newport_panini_bakery_v1,"Zach's Bistro":G.obj_oregoncoastal_dining_newport_zachs_bistro_v1,"The Coffee House":G.obj_oregoncoastal_dining_newport_the_coffee_house_v1,"Chowder Bowl at Nye Beach":G.obj_oregoncoastal_dining_newport_newport_chowder_bowl_v1},Toledo:{"Timbers Restaurant & Lounge":G.obj_oregoncoastal_dining_toledo_timbers_restaurant_lounge_v1,"Cobblestone Pizza Co.":G.obj_oregoncoastal_dining_toledo_cobblestone_pizza_co_v1},Waldport:{"Hilltop Café Bistro":G.obj_oregoncoastal_dining_waldport_hilltop_cafe_bistro_v1,SkoSH:G.obj_oregoncoastal_dining_waldport_skosh_v1,"Grand Central Pizza":G.obj_oregoncoastal_dining_waldport_grand_central_pizza_v1,"Salty Dawg":G.obj_oregoncoastal_dining_waldport_salty_dawg_bar_grill_v1,"Mexican Fresh":G.obj_oregoncoastal_dining_waldport_fresh_mexican_food_v1},Yachats:{"Ona Restaurant & Lounge":G.obj_oregoncoastal_dining_yachats_ona_restaurant_lounge_v1,"Luna Sea Fish House":G.obj_oregoncoastal_dining_yachats_luna_sea_fish_house_v1,"Pelican Brewing Yachats":G.obj_oregoncoastal_dining_yachats_pelican_brewing_yachats_v1,"Outta Gas Pizza":G.obj_oregoncoastal_dining_yachats_outta_gas_pizza_v1,"Green Salmon Coffee & Tea":G.obj_oregoncoastal_dining_yachats_green_salmon_coffee_company_v1,"Beach Street Kitchen":G.obj_oregoncoastal_dining_yachats_beach_street_kitchen_v1},Florence:{"Waterfront Depot":G.obj_oregoncoastal_dining_florence_waterfront_depot_v1,"Mo's Restaurant":G.obj_oregoncoastal_dining_florence_mos_in_old_town_florence_v1,"Novelli's Crab & Seafood":G.obj_oregoncoastal_dining_florence_novellis_crab_seafood_v1,"Homegrown Public House":G.obj_oregoncoastal_dining_florence_homegrown_public_house_v1,"1285 Restobar":G.obj_oregoncoastal_dining_florence_1285_restobar_v1,"River Roasters":G.obj_oregoncoastal_dining_florence_river_roasters_coffeehouse_v1,"BJ's Ice Cream":G.obj_oregoncoastal_dining_florence_bjs_ice_cream_parlor_v1,"Lovejoy's Restaurant":G.obj_oregoncoastal_dining_florence_lovejoys_restaurant_tearoom_v1,"Nosh Eatery":G.obj_oregoncoastal_dining_florence_nosh_eatery_v1},Reedsport:{"Don's Main Street Family Restaurant":G.obj_oregoncoastal_dining_reedsport_dons_main_street_family_restaurant_v1,"Harbor Light Restaurant":G.obj_oregoncoastal_dining_reedsport_harborlight_restaurant_v1},Lakeside:{"The Lakeshore Lodge Restaurant":G.obj_oregoncoastal_dining_lakeside_lakeshore_lodge_restaurant_v1,"Up the Creek Tavern":G.obj_oregoncoastal_dining_lakeside_up_the_creek_tavern_v1},"North Bend":{"Captain's Choice Fish House":G.obj_oregoncoastal_dining_north_bend_captains_choice_v1,"Kozy Kitchen":G.obj_oregoncoastal_dining_north_bend_kozy_kitchen_v1,"Tai's Dynasty":G.obj_oregoncoastal_dining_north_bend_tais_dynasty_v1,"The Pancake Mill":G.obj_oregoncoastal_dining_north_bend_pancake_mill_v1,"The Plank House":G.obj_oregoncoastal_dining_north_bend_plank_house_v1,"Tin Thistle":G.obj_oregoncoastal_dining_north_bend_the_tin_thistle_v1,"Yeong's Place":G.obj_oregoncoastal_dining_north_bend_yeongs_place_v1},"Coos Bay":{"7 Devils Brewing Co.":G.obj_oregoncoastal_dining_coos_bay_7_devils_brewing_co_v1,"Cranberry Sweets":G.obj_oregoncoastal_dining_coos_bay_cranberry_sweets_v1,"Restaurant O":G.obj_oregoncoastal_dining_coos_bay_restaurant_o_v1,"Shark Bites Cafe":G.obj_oregoncoastal_dining_coos_bay_shark_bites_cafe_v1,"The Boat Fish & Chips":G.obj_oregoncoastal_dining_coos_bay_the_boat_v1,"Tokyo Bistro":G.obj_oregoncoastal_dining_coos_bay_tokyo_bistro_v1},Charleston:{"The Portside":G.obj_oregoncoastal_dining_charleston_portside_restaurant_v1,"Miller's at the Cove":G.obj_oregoncoastal_dining_charleston_millers_at_the_cove_v1,"Chuck's Seafood":G.obj_oregoncoastal_dining_charleston_chucks_seafood_v1},Bandon:{"Tony's Crab Shack":G.obj_oregoncoastal_dining_bandon_tonys_crab_shack_v1,"Bandon Fish Market":G.obj_oregoncoastal_dining_bandon_bandon_fish_market_v1,"Alloro Wine Bar & Restaurant":G.obj_oregoncoastal_dining_bandon_alloro_wine_bar_and_restaurant_v1,"The Wheelhouse":G.obj_oregoncoastal_dining_bandon_wheelhouse_and_crowsnest_v1,"Foley's Irish Pub":G.obj_oregoncoastal_dining_bandon_foleys_irish_pub_v1,"Coastal Mist":G.obj_oregoncoastal_dining_bandon_coastal_mist_v1,"Bandon Brewing Company":G.obj_oregoncoastal_dining_bandon_bandon_brewing_company_v1,"Lord Bennett's":G.obj_oregoncoastal_dining_bandon_lord_bennetts_restaurant_v1,"The Rolling Pin":G.obj_oregoncoastal_dining_bandon_rolling_pin_bake_and_brew_v1},Langlois:{"Langlois Market":G.obj_oregoncoastal_dining_langlois_langlois_market_v1,"The Spoon":G.obj_oregoncoastal_dining_langlois_the_spoon_v1},"Port Orford":{Redfish:G.obj_oregoncoastal_dining_port_orford_redfish_v1,"The Crazy Norwegian's Fish & Chips":G.obj_oregoncoastal_dining_port_orford_crazy_norwegians_fish_and_chips_v1,"Tasty Kate's":G.obj_oregoncoastal_dining_port_orford_tasty_kates_v1,"Golden Harvest":G.obj_oregoncoastal_dining_port_orford_golden_harvest_v1,"Mr. Ed's Underground Pub":G.obj_oregoncoastal_dining_port_orford_mr_eds_underground_pub_v1},Brookings:{"Black Trumpet Bistro":G.obj_oregoncoastal_dining_brookings_black_trumpet_bistro_v1,"Oxenfrë Public House":G.obj_oregoncoastal_dining_brookings_oxenfre_public_house_v1,"The Hungry Clam":G.obj_oregoncoastal_dining_brookings_hungry_clam_v1,"Superfly Martini Bar & Grill":G.obj_oregoncoastal_dining_brookings_superfly_v1,"Chetco Brewing Company":G.obj_oregoncoastal_dining_brookings_chetco_brewing_company_v1,"Pacific Sushi & Grill":G.obj_oregoncoastal_dining_brookings_pacific_sushi_and_grill_v1,"Catalyst Seafood":G.obj_oregoncoastal_dining_brookings_catalyst_seafood_v1,"Zola's Pizzeria":G.obj_oregoncoastal_dining_brookings_zolas_on_the_water_v1,"Fat Cat Pizza":G.obj_oregoncoastal_dining_brookings_fat_cat_pizza_v1,"Railroad Street Market & Deli":G.obj_oregoncoastal_dining_brookings_railroad_street_market_and_deli_v1},Harbor:{"The Hungry Clam":G.obj_oregoncoastal_dining_brookings_hungry_clam_v1,"Zola's Pizzeria":G.obj_oregoncoastal_dining_brookings_zolas_on_the_water_v1,"Catalyst Seafood":G.obj_oregoncoastal_dining_brookings_catalyst_seafood_v1}},vee={"Cannon Beach":{"Surfsand Resort":G.obj_oregoncoastal_hotel_surfsand_resort_v1},Astoria:{"Hampton Inn & Suites Astoria":G.obj_oregoncoastal_hotel_astoria_hampton_inn_suites_astoria_v1,"Holiday Inn Express & Suites Astoria":G.obj_oregoncoastal_hotel_astoria_holiday_inn_express_hotel_suites_astoria_v1,"Motel 6 Astoria":G.obj_oregoncoastal_hotel_astoria_motel_6_astoria_v1,"Lloyd Hotel Astoria Bayfront":G.obj_oregoncoastal_hotel_astoria_lloyd_hotel_astoria_bayfront_v1,"Best Western Columbia River Waterfront":G.obj_oregoncoastal_hotel_astoria_best_western_columbia_river_waterfront_hotel_v1,"Astoria Rivershore Motel":G.obj_oregoncoastal_hotel_astoria_astoria_rivershore_motel_v1,"Astoria Riverwalk Inn":G.obj_oregoncoastal_hotel_astoria_astoria_riverwalk_inn_v1},Gearhart:{"McMenamins Gearhart Hotel":G.obj_oregoncoastal_hotel_gearhart_gearhart_hotel_v1,"The Drifthaven at Gearhart":G.obj_oregoncoastal_hotel_gearhart_the_drifthaven_at_gearhart_v1},Seaside:{"Motel 6 Seaside, OR":G.obj_oregoncoastal_hotel_seaside_motel_6_seaside_v1,"Inn at the Shore":G.obj_oregoncoastal_hotel_seaside_inn_at_the_shore_v1,"Hi-Tide Oceanfront Inn":G.obj_oregoncoastal_hotel_seaside_hi_tide_oceanfront_inn_v1,"Ebb Tide Oceanfront Inn":G.obj_oregoncoastal_hotel_seaside_ebb_tide_oceanfront_inn_v1,"Seashore Inn on the Beach":G.obj_oregoncoastal_hotel_seaside_seashore_inn_on_the_beach_v1,"Best Western Plus Ocean View Resort":G.obj_oregoncoastal_hotel_seaside_best_western_plus_ocean_view_resort_v1,"Ashore Hotel":G.obj_oregoncoastal_hotel_seaside_ashore_hotel_v1,"Promenade Inn & Suites Oceanfront":G.obj_oregoncoastal_hotel_seaside_promenade_inn_suites_oceanfront_v1},"Arch Cape":{"Arch Cape Inn & Retreat":G.obj_oregoncoastal_hotel_arch_cape_arch_cape_inn_retreat_v1},Manzanita:{"Coast Cabins":G.obj_oregoncoastal_hotel_manzanita_coast_cabins_v1,"Inn at Manzanita":G.obj_oregoncoastal_hotel_manzanita_inn_at_manzanita_v1,"San Dune Inn":G.obj_oregoncoastal_hotel_manzanita_san_dune_inn_v1},Wheeler:{"Old Wheeler Hotel":G.obj_oregoncoastal_hotel_wheeler_old_wheeler_hotel_v1,"Wheeler on the Bay Lodge":G.obj_oregoncoastal_hotel_wheeler_wheeler_on_the_bay_lodge_v1},"Rockaway Beach":{"Rockaway Beach Resort":G.obj_oregoncoastal_hotel_rockaway_beach_rockaway_beach_resort_v1,"Surfside Resort":G.obj_oregoncoastal_hotel_rockaway_beach_surfside_resort_v1,"Silver Sands Motel":G.obj_oregoncoastal_hotel_rockaway_beach_silver_sands_motel_v1,"Tradewinds Motel":G.obj_oregoncoastal_hotel_rockaway_beach_tradewinds_motel_v1,"Twin Rocks Motel":G.obj_oregoncoastal_hotel_rockaway_beach_twin_rocks_motel_v1},Garibaldi:{"The Hotel Garibaldi":G.obj_oregoncoastal_hotel_garibaldi_hotel_garibaldi_v1,"Garibaldi Inn at the Bay":G.obj_oregoncoastal_hotel_garibaldi_inn_at_the_bay_v1,"Harborview Inn & RV Park":G.obj_oregoncoastal_hotel_garibaldi_harborview_inn_rv_park_v1},Tillamook:{"Ashley Inn of Tillamook":G.obj_oregoncoastal_hotel_tillamook_ashley_inn_of_tillamook_v1,"Tillamook Inn":G.obj_oregoncoastal_hotel_tillamook_tillamook_inn_v1,"Western Royal Inn":G.obj_oregoncoastal_hotel_tillamook_western_royal_inn_v1},Netarts:{"Terimore Lodging by the Sea":G.obj_oregoncoastal_hotel_netarts_terimore_lodging_by_the_sea_v1,"The Surf Inn":G.obj_oregoncoastal_hotel_netarts_the_surf_inn_v1},Oceanside:{"Oceanside Inn":G.obj_oregoncoastal_hotel_oceanside_oceanside_inn_v1},"Pacific City":{"Headlands Coastal Lodge & Spa":G.obj_oregoncoastal_hotel_pacific_city_headlands_coastal_lodge_and_spa_v1,"Inn at Cape Kiwanda":G.obj_oregoncoastal_hotel_pacific_city_inn_at_cape_kiwanda_v1,"Pacific City Inn":G.obj_oregoncoastal_hotel_pacific_city_pacific_city_inn_v1,"Surf & Sand Inn":G.obj_oregoncoastal_hotel_pacific_city_surf_and_sand_inn_v1,"The Anchorage Motel":G.obj_oregoncoastal_hotel_pacific_city_the_anchorage_motel_v1},"Lincoln City":{"Starfish Manor Oceanfront Hotel":G.obj_oregoncoastal_hotel_lincoln_city_starfish_manor_oceanfront_hotel_v1,"The Coho Oceanfront Lodge":G.obj_oregoncoastal_hotel_lincoln_city_the_coho_oceanfront_lodge_v1,"Sailor Jack's Oceanfront Inn":G.obj_oregoncoastal_hotel_lincoln_city_sailor_jacks_oceanfront_inn_v1,"Lincoln Sands Oceanfront Resort":G.obj_oregoncoastal_hotel_lincoln_city_lincoln_sands_oceanfront_resort_v1,"The Ashley Inn & Suites":G.obj_oregoncoastal_hotel_lincoln_city_ashley_inn_and_suites_v1,"Siletz Bay Beachfront Hotel":G.obj_oregoncoastal_hotel_lincoln_city_siletz_bay_beachfront_hotel_v1,"Holiday Inn Express & Suites":G.obj_oregoncoastal_hotel_lincoln_city_holiday_inn_express_and_suites_v1,"Comfort Inn & Suites":G.obj_oregoncoastal_hotel_lincoln_city_comfort_inn_and_suites_v1,"Surfland Hotel":G.obj_oregoncoastal_hotel_lincoln_city_surfland_hotel_v1,Surftides:G.obj_oregoncoastal_hotel_lincoln_city_surftides_hotel_v1},"Gleneden Beach":{"Salishan Coastal Lodge":G.obj_oregoncoastal_hotel_gleneden_beach_salishan_coastal_lodge_v1,"WorldMark Gleneden":G.obj_oregoncoastal_hotel_gleneden_beach_worldmark_gleneden_v1},"Depoe Bay":{"Whale Cove Inn":G.obj_oregoncoastal_hotel_depoe_bay_whale_cove_inn_v1,"Inn at Arch Rock":G.obj_oregoncoastal_hotel_depoe_bay_the_inn_at_arch_rock_v1,"Travelodge by Wyndham Depoe Bay":G.obj_oregoncoastal_hotel_depoe_bay_travelodge_by_wyndham_depoe_bay_v1,"WorldMark Depoe Bay":G.obj_oregoncoastal_hotel_depoe_bay_worldmark_depoe_bay_v1},"Otter Rock":{"The Inn at Otter Crest":G.obj_oregoncoastal_hotel_otter_rock_the_inn_at_otter_crest_v1},Newport:{"Sylvia Beach Hotel":G.obj_oregoncoastal_hotel_newport_hotel_sylvia_v1,"Hallmark Resort - Newport":G.obj_oregoncoastal_hotel_newport_hallmark_resort_newport_v1,"Elizabeth Oceanfront Suites":G.obj_oregoncoastal_hotel_newport_elizabeth_oceanfront_suites_v1,"Best Western Plus Agate Beach Inn":G.obj_oregoncoastal_hotel_newport_best_western_plus_agate_beach_inn_v1,"Little Creek Cove Beachfront Resort":G.obj_oregoncoastal_hotel_newport_little_creek_cove_v1,"Holiday Inn Express":G.obj_oregoncoastal_hotel_newport_holiday_inn_express_suites_newport_v1,"Waves Hotel NYE Beach":G.obj_oregoncoastal_hotel_newport_oyo_waves_hotel_newport_nye_beach_v1,"Comfort Inn Newport":G.obj_oregoncoastal_hotel_newport_comfort_inn_newport_v1,"Newport Inn By OYO":G.obj_oregoncoastal_hotel_newport_newport_inn_by_oyo_hwy_101_v1,"Motel 6 Newport":G.obj_oregoncoastal_hotel_newport_motel_6_newport_v1},"South Beach":{"Holiday Inn Express Newport":G.obj_oregoncoastal_hotel_newport_holiday_inn_express_suites_newport_v1,"Motel 6 Newport":G.obj_oregoncoastal_hotel_newport_motel_6_newport_v1},Waldport:{"The Waldport Inn":G.obj_oregoncoastal_hotel_waldport_waldport_inn_v1},Yachats:{"Overleaf Lodge & Spa":G.obj_oregoncoastal_hotel_yachats_overleaf_lodge_and_spa_v1,"Adobe Resort":G.obj_oregoncoastal_hotel_yachats_adobe_resort_v1,"Fireside Motel":G.obj_oregoncoastal_hotel_yachats_fireside_motel_v1,"Silver Surf Motel":G.obj_oregoncoastal_hotel_yachats_silver_surf_motel_v1,"Tillicum Beach Motel":G.obj_oregoncoastal_hotel_yachats_tillicum_beach_motel_v1},Florence:{"Driftwood Shores Resort":G.obj_oregoncoastal_hotel_florence_driftwood_shores_resort_v1,"River House Inn":G.obj_oregoncoastal_hotel_florence_river_house_inn_v1,"Best Western Pier Point Inn":G.obj_oregoncoastal_hotel_florence_best_western_pier_point_inn_v1,"Three Rivers Casino Resort":G.obj_oregoncoastal_hotel_florence_three_rivers_casino_resort_v1,"Economy Inn Florence":G.obj_oregoncoastal_hotel_florence_economy_inn_florence_v1,"Quality Inn Florence":G.obj_oregoncoastal_hotel_florence_quality_inn_florence_v1},"Dune City":{"Lakeshore Lodge (Nearby)":G.obj_oregoncoastal_hotel_lakeside_lakeshore_lodge_v1},Reedsport:{"Anchor Bay Inn":G.obj_oregoncoastal_hotel_reedsport_anchor_bay_inn_v1,"Best Budget Inn":G.obj_oregoncoastal_hotel_reedsport_best_budget_inn_v1,"Best Western Salbasgeon Inn":G.obj_oregoncoastal_hotel_reedsport_best_western_salbasgeon_v1,"Economy Inn Reedsport":G.obj_oregoncoastal_hotel_reedsport_economy_inn_v1,"Salbasgeon Suites":G.obj_oregoncoastal_hotel_reedsport_best_western_salbasgeon_v1},"Winchester Bay":{"Winchester Bay Inn":G.obj_oregoncoastal_hotel_winchester_bay_winchester_bay_inn_v1},Lakeside:{"Lakeshore Lodge":G.obj_oregoncoastal_hotel_lakeside_lakeshore_lodge_v1},"North Bend":{"Bay Bridge Motel":G.obj_oregoncoastal_hotel_north_bend_bay_bridge_motel_v1,"City Center Motel":G.obj_oregoncoastal_hotel_north_bend_city_center_motel_v1,"Itty Bitty Inn":G.obj_oregoncoastal_hotel_north_bend_itty_bitty_inn_v1,"Quality Inn & Suites at Coos Bay":G.obj_oregoncoastal_hotel_north_bend_quality_inn_suites_v1,"The Mill Casino • Hotel":G.obj_oregoncoastal_hotel_north_bend_ko_kwel_casino_resort_v1},"Coos Bay":{"Bay Point Landing":G.obj_oregoncoastal_hotel_bay_point_landing_v1,"Best Western Holiday Hotel":G.obj_oregoncoastal_hotel_coos_bay_best_western_holiday_hotel_v1,"Edgewater Inn and Suites":G.obj_oregoncoastal_hotel_coos_bay_edgewater_inn_v1,"Global INN":G.obj_oregoncoastal_hotel_coos_bay_global_inn_v1,"Motel 6 Coos Bay":G.obj_oregoncoastal_hotel_coos_bay_motel_6_coos_bay_v1,"Red Lion Hotel Coos Bay":G.obj_oregoncoastal_hotel_coos_bay_red_lion_hotel_v1},Charleston:{"Captain John's Motel":G.obj_oregoncoastal_hotel_charleston_capt_johns_motel_v1,"Plainview Motel":G.obj_oregoncoastal_hotel_charleston_plainview_motel_and_rv_park_v1,"Bay Point Landing":G.obj_oregoncoastal_hotel_bay_point_landing_v1},Bandon:{"Bandon Inn":G.obj_oregoncoastal_hotel_bandon_bandon_inn_v1,"Best Western Inn at Face Rock":G.obj_oregoncoastal_hotel_bandon_best_western_inn_at_face_rock_v1,"The Inn at Old Town":G.obj_oregoncoastal_hotel_bandon_inn_at_old_town_v1,"Sunset Oceanfront Lodging":G.obj_oregoncoastal_hotel_bandon_sunset_oceanfront_lodging_v1,"Bandon Marina Inn":G.obj_oregoncoastal_hotel_bandon_bandon_marina_inn_v1,"La Kris Inn":G.obj_oregoncoastal_hotel_bandon_lakris_inn_v1},"Port Orford":{"The Shoreline Inn & Suites":G.obj_oregoncoastal_hotel_port_orford_shoreline_inn_and_suites_v1},"Gold Beach":{"Gold Beach Inn":G.obj_oregoncoastal_hotel_gold_beach_gold_beach_inn_v1,"SureStay Plus Hotel":G.obj_oregoncoastal_hotel_gold_beach_surestay_plus_hotel_v1,"Pacific Reef Hotel & Light Show":G.obj_oregoncoastal_hotel_gold_beach_pacific_reef_hotel_v1,"The Wildflower Inn":G.obj_oregoncoastal_hotel_gold_beach_wildflower_inn_v1,"Jot's Resort":G.obj_oregoncoastal_hotel_gold_beach_jots_resort_v1},Brookings:{"Beachfront Inn":G.obj_oregoncoastal_hotel_brookings_beachfront_inn_v1,"Whaleshead Beach Resort":G.obj_oregoncoastal_hotel_brookings_whaleshead_beach_resort_v1,"Wild Rivers Motor Lodge":G.obj_oregoncoastal_hotel_brookings_wild_rivers_motor_lodge_v1,"Ocean Suites Motel":G.obj_oregoncoastal_hotel_brookings_ocean_suites_motel_v1,"Pacific Sunset Inn":G.obj_oregoncoastal_hotel_brookings_pacific_sunset_inn_v1,"Blue Coast Inn and Suites":G.obj_oregoncoastal_hotel_brookings_blue_coast_inn_and_suites_v1,"Westward Inn":G.obj_oregoncoastal_hotel_brookings_westward_inn_v1,"Brookings Inn Resort":G.obj_oregoncoastal_hotel_brookings_brookings_inn_resort_v1,"Harbor Inn":G.obj_oregoncoastal_hotel_brookings_harbor_inn_motel_v1,"AmeriCoast Inn":G.obj_oregoncoastal_hotel_brookings_americoast_inn_v1}},Af={"Cannon Beach":{"Ecola Point to Indian Beach":G.obj_oregoncoastal_trail_ecola_point_to_indian_beach_v1,"Crescent Beach Trail":G.obj_oregoncoastal_trail_ecola_point_to_crescent_beach_v1,"Tillamook Head Traverse":G.obj_oregoncoastal_trail_tillamook_head_v1},"Rockaway Beach":{"Cedar Wetlands Preserve Trail":G.obj_oregoncoastal_trail_rockaway_beach_old_growth_cedar_trail_v1},"Bay City":{"Kilchis Point Reserve Loop":G.obj_oregoncoastal_trail_bay_city_kilchis_point_reserve_trailhead_loop_v1,"Flora & Fauna Trail":G.obj_oregoncoastal_trail_bay_city_flora_and_fauna_trail_v1},Tillamook:{"Cape Lookout Trail":G.obj_oregoncoastal_trail_cape_lookout_cape_trail_v1,"Cape Meares Lighthouse Trail":G.obj_oregoncoastal_trail_cape_meares_lighthouse_trail_v1,"Kings Mountain Trail":G.obj_oregoncoastal_trail_tillamook_kings_mountain_trail_v1,"Munson Creek Falls Trail":G.obj_oregoncoastal_trail_near_tillamook_munson_creek_falls_trail_v1},Netarts:{"Cape Lookout Trail":G.obj_oregoncoastal_trail_cape_lookout_cape_trail_v1,"Munson Creek Falls Trail":G.obj_oregoncoastal_trail_near_tillamook_munson_creek_falls_trail_v1},Oceanside:{"Cape Lookout Trail":G.obj_oregoncoastal_trail_cape_lookout_cape_trail_v1,"Octopus Tree Trail":G.obj_oregoncoastal_trail_cape_meares_octopus_tree_trail_v1},Newport:{"Ocean to Bay Trail":G.obj_oregoncoastal_trail_newport_ocean_to_bay_trail_v1,"South Beach State Park Jetty Trail":G.obj_oregoncoastal_trail_south_beach_south_jetty_trail_v1},"South Beach":{"South Jetty Trail":G.obj_oregoncoastal_trail_south_beach_south_jetty_trail_v1,"Mike Miller Nature Loop":G.obj_oregoncoastal_trail_newport_mike_miller_loop_v1,"Cooper Ridge Nature Trail":G.obj_oregoncoastal_trail_south_beach_cooper_ridge_nature_trail_v1,"Old Jetty Trail":G.obj_oregoncoastal_trail_south_beach_old_jetty_trail_v1,"Yaquina Bay Estuary Trail":G.obj_oregoncoastal_trail_newport_yaquina_bay_estuary_trail_v1},Waldport:{"Oregon Coast Trail (Waldport Section)":G.obj_oregoncoastal_trail_waldport_oregon_coast_trail_section_v1,"Crestline Park Woodland Trail":G.obj_oregoncoastal_trail_waldport_woodland_trail_v1,"Brian Booth State Park (Beaver Creek)":G.obj_oregoncoastal_attraction_brian_booth_state_park_v1},Yachats:{"Saint Perpetua Trail":G.obj_oregoncoastal_trail_yachats_saint_perpetua_trail_1306_v1,"Amanda's Trail":G.obj_oregoncoastal_trail_yachats_amandas_trail_1386_v1,"Cook's Ridge Trail":G.obj_oregoncoastal_trail_yachats_cooks_ridge_trail_1372_v1},Florence:{"Heceta Head Lighthouse Trail":G.obj_oregoncoastal_trail_florence_heceta_lighthouse_trail_v1,"Siltcoos Lake Trail":G.obj_oregoncoastal_trail_siltcoos_lake_trail_1333_v1,"Waxmyrtle Trail":G.obj_oregoncoastal_trail_waxmyrtle_trail_1337_v1,"Sutton Trails (Loop)":G.obj_oregoncoastal_trail_florence_sutton_trails_1321_v1},"Dune City":{"Carter Dune Trail":G.obj_oregoncoastal_trail_carter_lake_area_carter_dunes_trail_1384_v1,"Chief Tsiltcoos Trail":G.obj_oregoncoastal_trail_siltcoos_area_chief_tsiltcoos_trail_1359_v1,"Lagoon Trail":G.obj_oregoncoastal_trail_siltcoos_area_lagoon_loop_trail_1330_v1,"Siltcoos Lake Trail":G.obj_oregoncoastal_trail_siltcoos_lake_trail_1333_v1,"Taylor Dune Trail":G.obj_oregoncoastal_trail_siltcoos_area_taylor_dunes_trail_1335_v1,"Waxmyrtle Trail":G.obj_oregoncoastal_trail_waxmyrtle_trail_1337_v1},Reedsport:{"John Dellenback Dunes Trail":G.obj_oregoncoastal_trail_eel_creek_area_john_dellenback_dunes_trail_1339_v1,"Tahkenitch Dunes Trail":G.obj_oregoncoastal_trail_tahkenitch_area_tahkenitch_dunes_trail_1353_v1},"Winchester Bay":{"Lake Marie Trail":G.obj_oregoncoastal_trail_winchester_bay_lake_marie_walking_loop_v1},Gardiner:{"Oregon Dunes Loop":G.obj_oregoncoastal_trail_oregon_dunes_day_use_oregon_dunes_loop_trail_1334_v1,"Tahkenitch Dunes Trail":G.obj_oregoncoastal_trail_tahkenitch_area_tahkenitch_dunes_trail_1353_v1},Lakeside:{"Hall Lake Trail":G.obj_oregoncoastal_trail_lakeside_area_hall_schuttpelz_lake_trail_1357_v1},"North Bend":{"Bluebill Lake Trail":G.obj_oregoncoastal_trail_north_bend_bluebill_trail_1331_v1},"Coos Bay":{"Mingus Park Loop":G.obj_oregoncoastal_trail_coos_bay_mingus_park_paved_trail_v1},Bandon:{"Bullards Beach Trail":G.obj_oregoncoastal_trail_bandon_bullards_beach_beach_trail_v1,"New River Nature Center Trails":G.obj_oregoncoastal_attraction_new_river_storm_ranch_nature_center_v1},"Port Orford":{"Humbug Mountain Trail":G.obj_oregoncoastal_trail_port_orford_humbug_mountain_trail_v1},"Gold Beach":{"Myers Creek Beach Walk":G.obj_oregoncoastal_attraction_gold_beach_myers_creek_beach_access_v1},Brookings:{"Arch Rock Viewpoint":G.obj_oregoncoastal_attraction_brookings_arch_rock_overlook_v1,"Cape Ferrelo Loop":G.obj_oregoncoastal_trail_brookings_cape_ferrelo_loop_v1}},jf={"Tolovana Park":{"Sea Level Bakery + Coffee":G.obj_oregoncoastal_dining_tolovana_park_sea_level_bakery_coffee_v1,"Fresh Foods Market":G.obj_oregoncoastal_dining_tolovana_park_fresh_foods_v1},Wheeler:{"Oregon Coast Scenic Railroad":G.obj_oregoncoastal_attraction_oregon_coast_scenic_railroad_v1,"Wheeler Marina":G.obj_oregoncoastal_attraction_wheeler_wheeler_marina_v1},"Rockaway Beach":{"Twin Rocks":G.obj_oregoncoastal_attraction_rockaway_beach_twin_rocks_v1,"Oregon Coast Scenic Railroad":G.obj_oregoncoastal_attraction_oregon_coast_scenic_railroad_v1,"Cedar Wetlands Preserve":G.obj_oregoncoastal_attraction_rockaway_beach_cedar_wetlands_preserve_v1,"International Police Museum":G.obj_oregoncoastal_attraction_rockaway_beach_international_police_museum_v1,"Rockaway Beach Wayside":G.obj_oregoncoastal_attraction_rockaway_beach_wayside_v1,"Kilchis Point Reserve (Nearby)":G.obj_oregoncoastal_attraction_kilchis_point_reserve_v1,"Munson Creek Falls":G.obj_oregoncoastal_attraction_munson_creek_falls_v1},Garibaldi:{"Port of Garibaldi Marina":G.obj_oregoncoastal_attraction_garibaldi_port_of_garibaldi_marina_v1,"Pier's End":G.obj_oregoncoastal_attraction_garibaldi_piers_end_v1,"Oregon Coast Scenic Railroad":G.obj_oregoncoastal_attraction_oregon_coast_scenic_railroad_v1,"Garibaldi Maritime Museum":G.obj_oregoncoastal_attraction_garibaldi_maritime_museum_v1},"Bay City":{"Tillamook Country Smoker":G.obj_oregoncoastal_attraction_bay_city_tillamook_country_smoker_outlet_v1,"Pacific Oyster":G.obj_oregoncoastal_attraction_bay_city_pacific_oyster_company_v1,"Bay City Arts Center":G.obj_oregoncoastal_attraction_bay_city_arts_center_v1,"Al Griffin Memorial Park":G.obj_oregoncoastal_attraction_bay_city_al_griffin_memorial_park_v1,"Kilchis Point Reserve":G.obj_oregoncoastal_attraction_kilchis_point_reserve_v1,"Munson Creek Falls (Nearby)":G.obj_oregoncoastal_attraction_munson_creek_falls_v1},Tillamook:{"Tillamook Creamery":G.obj_oregoncoastal_attraction_tillamook_tillamook_creamery_v1,"Blue Heron French Cheese Company":G.obj_oregoncoastal_attraction_tillamook_blue_heron_french_cheese_company_v1,"Tillamook County Pioneer Museum":G.obj_oregoncoastal_attraction_tillamook_county_pioneer_museum_v1,"Tillamook Forest Center":G.obj_oregoncoastal_attraction_tillamook_forest_center_v1,"Latimer Quilt & Textile Center":G.obj_oregoncoastal_attraction_tillamook_latimer_quilt_textile_center_v1,"Three Capes Scenic Loop":G.obj_oregoncoastal_attraction_tillamook_three_capes_scenic_loop_v1,"Munson Creek Falls":G.obj_oregoncoastal_attraction_munson_creek_falls_v1},Netarts:{"Jacobsen Salt Company":G.obj_oregoncoastal_attraction_netarts_jacobsen_salt_company_v1,"Tunnel Beach":G.obj_oregoncoastal_attraction_oceanside_tunnel_beach_v1,"Tunnel Beach Trail":G.obj_oregoncoastal_attraction_oceanside_maxwell_point_tunnel_v1},Oceanside:{"Tunnel Beach":G.obj_oregoncoastal_attraction_oceanside_tunnel_beach_v1,"Cape Meares":G.obj_oregoncoastal_attraction_cape_meares_viewpoint_v1,"Oceanside Beach":G.obj_oregoncoastal_attraction_oceanside_oceanside_beach_v1,"Maxwell Point Tunnel":G.obj_oregoncoastal_attraction_oceanside_maxwell_point_tunnel_v1},"Pacific City":{"Cape Kiwanda State Natural Area":G.obj_oregoncoastal_attraction_pacific_city_cape_kiwanda_state_natural_area_v1,"Haystack Rock":G.obj_oregoncoastal_attraction_pacific_city_haystack_rock_v1,"Dory Fishing Fleet":G.obj_oregoncoastal_attraction_pacific_city_dory_fleet_v1,"Bob Straub State Park":G.obj_oregoncoastal_attraction_pacific_city_bob_straub_state_park_v1,"Pelican Brewing Company":G.obj_oregoncoastal_dining_pacific_city_pelican_brewing_company_v1},Neskowin:{"Ghost Forest":G.obj_oregoncoastal_attraction_neskowin_ghost_forest_v1,"Proposal Rock":G.obj_oregoncoastal_attraction_neskowin_proposal_rock_v1,"Neskowin Beach":G.obj_oregoncoastal_attraction_neskowin_neskowin_beach_v1,"Cascade Head":G.obj_oregoncoastal_attraction_neskowin_cascade_head_v1,"Neskowin Beach Golf Course":G.obj_oregoncoastal_attraction_neskowin_neskowin_beach_golf_course_v1,"Neskowin Trading Company":G.obj_oregoncoastal_dining_neskowin_neskowin_provisions_v1},"Lincoln City":{"Finders Keepers Glass Float Hunt":G.obj_oregoncoastal_attraction_lincoln_city_finders_keepers_v1,"Lincoln City Glass Center":G.obj_oregoncoastal_attraction_lincoln_city_lincoln_city_glass_center_v1,"Devil's Lake State Recreation Area":G.obj_oregoncoastal_attraction_lincoln_city_devils_lake_state_recreation_area_v1,"Chinook Winds Casino Resort":G.obj_oregoncoastal_attraction_lincoln_city_chinook_winds_casino_resort_v1,"Nelscott Reef":G.obj_oregoncoastal_attraction_lincoln_city_nelscott_reef_v1,"Road's End State Recreation Site":G.obj_oregoncoastal_attraction_lincoln_city_roads_end_state_recreation_site_v1,"Lincoln City Outlets":G.obj_oregoncoastal_attraction_lincoln_city_lincoln_city_outlets_v1},"Gleneden Beach":{"Salishan Golf Links":G.obj_oregoncoastal_attraction_gleneden_beach_salishan_golf_links_v1,"Gleneden Beach State Recreation Site":G.obj_oregoncoastal_attraction_gleneden_beach_gleneden_beach_state_recreation_site_v1,"Salishan Marketplace":G.obj_oregoncoastal_attraction_gleneden_beach_the_marketplace_at_salishan_v1,"Eden Hall":G.obj_oregoncoastal_attraction_gleneden_beach_eden_hall_v1},"Depoe Bay":{"The Spouting Horns":G.obj_oregoncoastal_attraction_depoe_bay_spouting_horn_v1,"World's Smallest Harbor":G.obj_oregoncoastal_attraction_depoe_bay_harbor_v1,"Boiler Bay State Scenic Viewpoint":G.obj_oregoncoastal_attraction_depoe_bay_boiler_bay_state_scenic_viewpoint_v1,"Rocky Creek State Scenic Viewpoint":G.obj_oregoncoastal_attraction_depoe_bay_rocky_creek_state_scenic_viewpoint_v1,"Depoe Bay Winery":G.obj_oregoncoastal_attraction_depoe_bay_depoe_bay_winery_v1},"Otter Rock":{"Flying Dutchman Winery":G.obj_oregoncoastal_dining_otter_rock_flying_dutchman_winery_v1,"Devil's Punchbowl State Natural Area":G.obj_oregoncoastal_attraction_otter_rock_devils_punchbowl_state_natural_area_v1,"Otter Rock Marine Reserve":G.obj_oregoncoastal_attraction_otter_rock_otter_rock_marine_reserve_v1},Newport:{"Oregon Coast Aquarium":G.obj_oregoncoastal_attraction_newport_oregon_coast_aquarium_v1,"Yaquina Head Outstanding Natural Area":G.obj_oregoncoastal_attraction_newport_yaquina_head_outstanding_natural_area_v1,"Yaquina Bay Lighthouse":G.obj_oregoncoastal_attraction_newport_yaquina_bay_lighthouse_v1,"Hatfield Marine Science Center":G.obj_oregoncoastal_attraction_newport_hatfield_marine_science_center_v1,"Marine Discovery Tours":G.obj_oregoncoastal_attraction_newport_marine_discovery_tours_v1},"South Beach":{"Oregon Coast Aquarium":G.obj_oregoncoastal_attraction_newport_oregon_coast_aquarium_v1,"Hatfield Marine Science Center":G.obj_oregoncoastal_attraction_newport_hatfield_marine_science_center_v1,"South Beach State Park":G.obj_oregoncoastal_attraction_newport_south_beach_state_park_v1,"South Jetty":G.obj_oregoncoastal_attraction_newport_south_jetty_v1,"Mike Miller Educational Park":G.obj_oregoncoastal_attraction_newport_mike_miller_educational_park_v1,"Brian Booth State Park (Ona Beach)":G.obj_oregoncoastal_attraction_brian_booth_state_park_v1},Toledo:{"Toledo History Center":G.obj_oregoncoastal_attraction_toledo_toledo_history_center_v1,"Yaquina River Museum of Art":G.obj_oregoncoastal_attraction_toledo_yaquina_river_museum_of_art_v1,"Port of Toledo Waterfront Park":G.obj_oregoncoastal_attraction_toledo_waterfront_park_v1,"Michael Gibbons Signature Gallery":G.obj_oregoncoastal_attraction_toledo_michael_gibbons_signature_gallery_v1,"Paddle Park":G.obj_oregoncoastal_attraction_toledo_paddle_park_v1},Waldport:{"Alsea Bay Bridge & Historic Interpretive Center":G.obj_oregoncoastal_attraction_waldport_alsea_bay_bridge_visitor_center_heritage_museum_v1,"Waldport Heritage Museum":G.obj_oregoncoastal_attraction_waldport_alsea_bay_bridge_visitor_center_heritage_museum_v1,"Crestline Disc Golf Course":G.obj_oregoncoastal_attraction_waldport_red_river_disc_golf_course_v1,"Governor Patterson Memorial State Recreation Site":G.obj_oregoncoastal_attraction_waldport_governor_patterson_memorial_state_recreation_site_v1,"Beachside State Recreation Site":G.obj_oregoncoastal_attraction_waldport_beachside_state_recreation_site_v1},Yachats:{"Cape Perpetua Scenic Area":G.obj_oregoncoastal_attraction_yachats_cape_perpetua_scenic_area_v1,"Thor's Well":G.obj_oregoncoastal_attraction_yachats_thors_well_v1,"Devil's Churn":G.obj_oregoncoastal_attraction_yachats_devils_churn_v1,"Yachats Ocean Road State Natural Site":G.obj_oregoncoastal_attraction_yachats_yachats_ocean_road_state_natural_site_v1},Florence:{"Oregon Dunes National Recreation Area":G.obj_oregoncoastal_attraction_oregon_dunes_national_recreation_area_v1,"Heceta Head Lighthouse":G.obj_oregoncoastal_attraction_florence_heceta_head_lighthouse_v1,"Sea Lion Caves":G.obj_oregoncoastal_attraction_florence_sea_lion_caves_v1,"Siuslaw River Bridge":G.obj_oregoncoastal_attraction_florence_siuslaw_river_bridge_v1,"Darlingtonia State Natural Site":G.obj_oregoncoastal_attraction_florence_darlingtonia_state_natural_site_v1,"Jessie M. Honeyman Memorial State Park":G.obj_oregoncoastal_attraction_florence_jessie_m_honeyman_memorial_state_park_v1,"Three Rivers Casino Resort":G.obj_oregoncoastal_hotel_florence_three_rivers_casino_resort_v1,"Sweet Creek Falls":G.obj_oregoncoastal_attraction_florence_sweet_creek_falls_v1,"Upper & Lower Kentucky Falls":G.obj_oregoncoastal_attraction_upper_lower_kentucky_falls_v1},"Dune City":{"Carter Lake":G.obj_oregoncoastal_attraction_dune_city_carter_lake_v1,"Oregon Dunes National Recreation Area":G.obj_oregoncoastal_attraction_oregon_dunes_national_recreation_area_v1,"Siltcoos Lake":G.obj_oregoncoastal_attraction_dune_city_siltcoos_lake_v1,"Siltcoos River":G.obj_oregoncoastal_attraction_dune_city_siltcoos_river_v1,"Woahink Lake State Park":G.obj_oregoncoastal_attraction_dune_city_woahink_lake_v1},Reedsport:{"Bolon Island Tideways State Scenic Corridor":G.obj_oregoncoastal_attraction_reedsport_bolon_island_tideways_v1,"Dean Creek Elk Viewing Area":G.obj_oregoncoastal_attraction_reedsport_dean_creek_elk_viewing_area_v1,"Oregon Dunes National Recreation Area":G.obj_oregoncoastal_attraction_oregon_dunes_national_recreation_area_v1,"Umpqua Discovery Center":G.obj_oregoncoastal_attraction_reedsport_umpqua_discovery_center_v1},"Winchester Bay":{"Lake Marie":G.obj_oregoncoastal_attraction_winchester_bay_lake_marie_v1,"Oregon Dunes National Recreation Area":G.obj_oregoncoastal_attraction_oregon_dunes_national_recreation_area_v1,"Salmon Harbor Marina":G.obj_oregoncoastal_attraction_winchester_bay_salmon_harbor_marina_v1,"Umpqua River Lighthouse":G.obj_oregoncoastal_attraction_winchester_bay_umpqua_river_lighthouse_v1},Gardiner:{"Gardiner Historic District":G.obj_oregoncoastal_attraction_gardiner_gardiner_historic_district_v1,"Oregon Dunes Overlook":G.obj_oregoncoastal_attraction_oregon_dunes_overlook_v1},Lakeside:{"Eel Lake":G.obj_oregoncoastal_attraction_lakeside_eel_lake_v1,"Tenmile Lakes":G.obj_oregoncoastal_attraction_lakeside_tenmile_lakes_v1,"Tenmile Lakes County Park":G.obj_oregoncoastal_attraction_lakeside_tenmile_lakes_park_v1,"William M. Tugman State Park":G.obj_oregoncoastal_attraction_lakeside_william_m_tugman_state_park_v1},"North Bend":{"David Dewett Veterans Memorial":G.obj_oregoncoastal_attraction_north_bend_david_dewett_veterans_memorial_v1,"Oregon Dunes National Recreation Area":G.obj_oregoncoastal_attraction_oregon_dunes_national_recreation_area_v1,"The Mill Casino • Hotel & RV Park":G.obj_oregoncoastal_hotel_north_bend_ko_kwel_casino_resort_v1},"Coos Bay":{"Coos Art Museum":G.obj_oregoncoastal_attraction_coos_bay_coos_art_museum_v1,"Coos Bay Boardwalk":G.obj_oregoncoastal_attraction_coos_bay_coos_bay_boardwalk_v1,"Golden Falls & Silver Falls":G.obj_oregoncoastal_attraction_coos_bay_golden_and_silver_falls_v1,"Mingus Park":G.obj_oregoncoastal_attraction_coos_bay_mingus_park_v1,"Oregon Coast Historical Railway":G.obj_oregoncoastal_attraction_coos_bay_oregon_coast_historical_railway_v1},Charleston:{"Sunset Bay State Park":G.obj_oregoncoastal_attraction_charleston_sunset_bay_state_park_v1,"Charleston Marine Life Center":G.obj_oregoncoastal_attraction_charleston_marine_life_center_v1,"South Slough National Estuarine Research Reserve":G.obj_oregoncoastal_attraction_charleston_south_slough_nerr_v1,"Bastendorff Beach":G.obj_oregoncoastal_attraction_charleston_bastendorff_beach_v1},Bandon:{"Face Rock State Scenic Viewpoint":G.obj_oregoncoastal_attraction_bandon_face_rock_state_scenic_viewpoint_v1,"Coquille River Lighthouse":G.obj_oregoncoastal_attraction_bandon_coquille_river_lighthouse_v1,"Bandon Dunes Golf Resort":G.obj_oregoncoastal_attraction_bandon_bandon_dunes_golf_resort_v1,"Old Town Bandon":G.obj_oregoncoastal_attraction_bandon_old_town_bandon_v1,"Bullards Beach State Park":G.obj_oregoncoastal_attraction_bandon_bullards_beach_state_park_v1,"Washed Ashore Gallery":G.obj_oregoncoastal_attraction_bandon_washed_ashore_gallery_v1,"Bandon Historical Society Museum":G.obj_oregoncoastal_attraction_bandon_bandon_historical_society_museum_v1},Langlois:{"Floras Lake State Natural Area":G.obj_oregoncoastal_attraction_langlois_floras_lake_state_natural_area_v1,"Langlois Market":G.obj_oregoncoastal_dining_langlois_langlois_market_v1,"Blacklock Point":G.obj_oregoncoastal_attraction_langlois_blacklock_point_v1,"Boice Cope County Park":G.obj_oregoncoastal_attraction_langlois_boice_cope_park_v1,"Dragonfly Farm & Nursery":G.obj_oregoncoastal_attraction_langlois_dragonfly_farm_and_nursery_v1,"New River Nature Center":G.obj_oregoncoastal_attraction_new_river_storm_ranch_nature_center_v1,"Cape Blanco State Park":G.obj_oregoncoastal_attraction_langlois_cape_blanco_state_park_v1},"Port Orford":{"Battle Rock Wayside":G.obj_oregoncoastal_attraction_port_orford_battle_rock_wayside_park_v1,"Cape Blanco Lighthouse":G.obj_oregoncoastal_attraction_port_orford_cape_blanco_lighthouse_v1,"Port Orford Heads State Park":G.obj_oregoncoastal_attraction_port_orford_port_orford_heads_state_park_v1,"The Dolly Dock":G.obj_oregoncoastal_attraction_port_orford_port_of_port_orford_dolly_dock_v1},"Gold Beach":{"Cape Sebastian State Scenic Corridor":G.obj_oregoncoastal_attraction_gold_beach_cape_sebastian_state_scenic_corridor_v1},Brookings:{"Chetco Point Park":G.obj_oregoncoastal_attraction_brookings_chetco_point_park_v1,"Port of Brookings Harbor":G.obj_oregoncoastal_attraction_brookings_port_of_brookings_harbor_v1,"Manley Art Center & Gallery":G.obj_oregoncoastal_attraction_brookings_manley_art_center_gallery_v1,"Sporthaven Beach":G.obj_oregoncoastal_attraction_brookings_sporthaven_beach_v1}};function yee(e,t){return vee[e]?.[t]||null}function K(e){return e?`/town/${e.toLowerCase().replace(/\s+/g,`-`)}`:null}function Mf(e,t){return _ee[e]?.[t]||null}function bee(e){return e===`astoria`?G.obj_oregoncoastal_town_astoria_v1:e===`cannon-beach`?G.obj_oregoncoastal_town_cannon_beach_v1:null}function xee(e,t){return e===`Cannon Beach`&&t===`Stormy Weather Arts Festival`?G.obj_oregoncoastal_event_stormy_weather_arts_festival_2026_v1:e===`Cannon Beach`&&t===`Cannon Beach Independence Day Parade`?G.obj_oregoncoastal_event_cannon_beach_independence_day_parade_2027_v1:e===`Yachats`&&t===`Yachats Mushroom Festival`?G.obj_oregoncoastal_event_yachats_mushroom_festival_2026_v1:e===`Florence`&&t===`Rhododendron Festival`?G.obj_oregoncoastal_event_florence_rhododendron_festival_2027_v1:e===`Coos Bay`&&t===`Coos Bay Wine Walk`?G.obj_oregoncoastal_event_coos_bay_wine_walk_2026_v1:null}function See(e,t){return Af[e]?.[t]||null}function Nf(e,t){return Af[e]?.[t]||jf[e]?.[t]||null}function Pf(e,t){return jf[e]?.[t]||null}var Ff=(0,y.createContext)(null),If=()=>(0,y.useContext)(Ff),Lf=`cacoon_tagalong_session_id`,Rf=`cacoon_saved_object_ids`,Cee=/^tag_[A-Za-z0-9_-]{8,120}$/;function zf(){return`tag_${typeof crypto<`u`&&crypto.randomUUID?crypto.randomUUID():Math.random().toString(36).slice(2)+Date.now().toString(36)}`}function Bf(){try{let e=localStorage.getItem(Lf);return e&&Cee.test(e)||(e=zf(),localStorage.setItem(Lf,e)),e}catch{return zf()}}function Vf(){try{let e=localStorage.getItem(Rf);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function Hf({children:e}){let[t,n]=(0,y.useState)(null),[r,i]=(0,y.useState)([]),[a,o]=(0,y.useState)(null),s=(0,y.useRef)(!1);(0,y.useEffect)(()=>{n(Bf()),i(Vf())},[]);let c=e=>{i(e);try{localStorage.setItem(Rf,JSON.stringify(e))}catch{}},l=(0,y.useCallback)(async(e,t=!1)=>{if(!e||!t&&s.current)return;let n=new AbortController,r=setTimeout(()=>n.abort(),3e3);try{let t=await fetch(`${kf}/tagalong/sessions`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({tagalong_session_id:e,first_source_site:`oregoncoastal.com`,first_source_page:typeof window<`u`?window.location.pathname:`/`,client_version:`oregoncoastal-1.0`,locale:typeof navigator<`u`&&navigator.language||`en-US`,metadata:{source:`oregoncoastal.com`}}),signal:n.signal});if(!t.ok)throw Error(`Tagalong session creation failed (HTTP ${t.status})`);let r=await t.json().catch(()=>null),i=r?.session?.tagalong_session_id||r?.tagalong_session_id;if(i&&i!==e)throw Error(`Tagalong session id mismatch (expected ${e}, got ${i})`);s.current=!0}finally{clearTimeout(r)}},[]),u=(0,y.useCallback)(e=>({object_id:e.object_id,source_site:`oregoncoastal.com`,source_page:e.source?.source_page||null,source_page_type:e.source?.page_type||null,source_module:e.source?.module||null,itinerary_status:`saved`,metadata:{title:e.title,affiliate_link:e.affiliate_link||null}}),[]),d=(0,y.useCallback)(async e=>{e&&r.length!==0&&await Promise.all(r.map(async t=>{let n=new AbortController,r=setTimeout(()=>n.abort(),4e3);try{let r=await fetch(`${kf}/tagalong/sessions/${e}/items`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(u(t)),signal:n.signal});if(!r.ok)throw Error(`Failed to sync saved item "${t.title}" to your trip (HTTP ${r.status})`)}catch(e){throw e?.name===`AbortError`?Error(`Timed out syncing saved item "${t.title}"`):e}finally{clearTimeout(r)}}))},[r,u]),f=(0,y.useCallback)(async(e,r)=>{let i=t||Bf();t||n(i),await l(i,!0),await d(i);let a=new AbortController,o=setTimeout(()=>a.abort(),6e3);try{let t=await fetch(`${kf}/tagalong/sessions/${i}/handoffs/mypnwtrip`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({location:e,days:Number(r)||1,return_url:`https://mypnwtrip.com/cacoon-import`}),signal:a.signal});if(!t.ok)throw Error(`Handoff request failed (${t.status})`);let n=await t.json(),o=n?.destination_url||n?.destinationUrl;if(!o)throw Error(`No destination URL returned`);return o}finally{clearTimeout(o)}},[t,l,d]),p=(0,y.useCallback)(e=>r.some(t=>t.object_id===e),[r]),m=(e,t)=>{Df({title:e?`Saved to your trip`:`Removed from your trip`,description:e?`${t} was added to your trip.`:`${t} was removed from your trip.`,action:(0,z.jsx)(vs,{altText:`View My Trip`,onClick:()=>window.dispatchEvent(new CustomEvent(`cacoon:view-my-trip`)),children:`View My Trip`})})},h={sessionId:t,savedItems:r,isSaved:p,toggleBookmark:async(e,i)=>{let a=r.some(t=>t.object_id===e),s=t||Bf();t||n(s),o(e),a?(c(r.filter(t=>t.object_id!==e)),m(!1,i.title)):(c([...r,{object_id:e,title:i.title,affiliate_link:i.affiliateLink||null,source:i.source}]),m(!0,i.title));let d=new AbortController,f=setTimeout(()=>d.abort(),2500);try{a?await fetch(`${kf}/tagalong/sessions/${s}/items/${encodeURIComponent(e)}`,{method:`DELETE`,signal:d.signal}):(await l(s),await fetch(`${kf}/tagalong/sessions/${s}/items`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(u({object_id:e,title:i.title,affiliate_link:i.affiliateLink||null,source:i.source})),signal:d.signal}))}catch{}finally{clearTimeout(f),o(null)}},pendingId:a,createMypnwtripHandoff:f};return(0,z.jsx)(Ff.Provider,{value:h,children:e})}var Uf=(e,t=`town`)=>t===`town`?`${e} Hotels and Travel Guide`:`${e} | Oregon Coast Hotels and Travel Guide`,Wf=e=>`Discover the best hotels, accommodations, and travel guide for ${e}, Oregon. Find lodging options, attractions, dining, and travel tips.`,Gf=(e=``)=>{let t=`https://oregoncoastal.com`;if(!e||typeof e!=`string`||e===`/`)return`${t}/`;let n=e.endsWith(`/`)&&e.length>1?e.slice(0,-1):e;return`${t}${n.startsWith(`/`)?n:`/${n}`}`},Kf=(e,t)=>t||`https://oregoncoastal.com/default-og-image.jpg`,qf=(e,t=null)=>{let n=`https://oregoncoastal.com`,r=e.split(`/`).filter(e=>e),i=[{"@type":`ListItem`,position:1,name:`Home`,item:n}];if(r.length>0){if(r[0]===`town`&&t){let r=`${n}/`;t.region===`North Coast`?r+=`north-coast`:t.region===`Central Coast`?r+=`central-coast`:r+=`south-coast`,i.push({"@type":`ListItem`,position:2,name:t.region||`Region`,item:r}),i.push({"@type":`ListItem`,position:3,name:t.name||`Town`,item:`${n}${e}`})}else i.push({"@type":`ListItem`,position:2,name:r[0].replace(/-/g,` `).replace(/\b\w/g,e=>e.toUpperCase()),item:`${n}/${r[0]}`})}return{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:i}},Jf=(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,Yf=(e,t,n,r)=>{if(!r)return;let i=document.querySelector(e);i?i.setAttribute(n,r):(i=t(),i.setAttribute(n,r),document.head.appendChild(i))},Xf=e=>{Yf(`link[rel="canonical"]`,()=>{let e=document.createElement(`link`);return e.setAttribute(`rel`,`canonical`),e},`href`,e)},Zf=e=>{Yf(`meta[name="description"]`,()=>{let e=document.createElement(`meta`);return e.setAttribute(`name`,`description`),e},`content`,e)},Qf=e=>{Yf(`meta[property="og:url"]`,()=>{let e=document.createElement(`meta`);return e.setAttribute(`property`,`og:url`),e},`content`,e)},$f=e=>{Yf(`meta[property="og:title"]`,()=>{let e=document.createElement(`meta`);return e.setAttribute(`property`,`og:title`),e},`content`,e)},ep=e=>{Yf(`meta[property="og:description"]`,()=>{let e=document.createElement(`meta`);return e.setAttribute(`property`,`og:description`),e},`content`,e)},tp=e=>{Yf(`meta[property="og:image"]`,()=>{let e=document.createElement(`meta`);return e.setAttribute(`property`,`og:image`),e},`content`,e)},np=e=>{Yf(`meta[name="twitter:title"]`,()=>{let e=document.createElement(`meta`);return e.setAttribute(`name`,`twitter:title`),e},`content`,e)},rp=e=>{Yf(`meta[name="twitter:description"]`,()=>{let e=document.createElement(`meta`);return e.setAttribute(`name`,`twitter:description`),e},`content`,e)},ip=e=>{Yf(`meta[name="twitter:image"]`,()=>{let e=document.createElement(`meta`);return e.setAttribute(`name`,`twitter:image`),e},`content`,e)},ap=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()},op=()=>{if(typeof window>`u`||window._seoObserverInitialized)return;window._seoObserverInitialized=!0;let e=(e,t)=>{let n=document.querySelectorAll(e);if(n.length>1){let e=n[n.length-1].getAttribute(t);n[0].setAttribute(t,e);for(let e=1;e<n.length;e++)n[e].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(e=>{let n=!1;for(let t of e)if(t.addedNodes.length>0){n=!0;break}n&&t()}).observe(document.head,{childList:!0}),t()};function sp(e){if(typeof Proxy>`u`)return e;let t=new Map;return new Proxy((...t)=>e(...t),{get:(n,r)=>r===`create`?e:(t.has(r)||t.set(r,e(r)),t.get(r))})}function cp(e){return typeof e==`object`&&!!e&&typeof e.start==`function`}var lp=e=>Array.isArray(e);function up(e,t){if(!Array.isArray(t))return!1;let n=t.length;if(n!==e.length)return!1;for(let r=0;r<n;r++)if(t[r]!==e[r])return!1;return!0}function dp(e){return typeof e==`string`||Array.isArray(e)}function fp(e){let t=[{},{}];return e?.values.forEach((e,n)=>{t[0][n]=e.get(),t[1][n]=e.getVelocity()}),t}function pp(e,t,n,r){if(typeof t==`function`){let[i,a]=fp(r);t=t(n===void 0?e.custom:n,i,a)}if(typeof t==`string`&&(t=e.variants&&e.variants[t]),typeof t==`function`){let[i,a]=fp(r);t=t(n===void 0?e.custom:n,i,a)}return t}function mp(e,t,n){let r=e.getProps();return pp(r,t,n===void 0?r.custom:n,e)}var hp=[`animate`,`whileInView`,`whileFocus`,`whileHover`,`whileTap`,`whileDrag`,`exit`],gp=[`initial`,...hp],_p=[`transformPerspective`,`x`,`y`,`z`,`translateX`,`translateY`,`translateZ`,`scale`,`scaleX`,`scaleY`,`rotate`,`rotateX`,`rotateY`,`rotateZ`,`skew`,`skewX`,`skewY`],vp=new Set(_p),yp=e=>e*1e3,bp=e=>e/1e3,xp={type:`spring`,stiffness:500,damping:25,restSpeed:10},Sp=e=>({type:`spring`,stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),Cp={type:`keyframes`,duration:.8},wp={type:`keyframes`,ease:[.25,.1,.35,1],duration:.3},Tp=(e,{keyframes:t})=>t.length>2?Cp:vp.has(e)?e.startsWith(`scale`)?Sp(t[1]):xp:wp;function Ep(e,t){return e?e[t]||e.default||e:void 0}var Dp={skipAnimations:!1,useManualTiming:!1},Op={current:!1},kp=e=>e!==null;function Ap(e,{repeat:t,repeatType:n=`loop`},r){let i=e.filter(kp),a=t&&n!==`loop`&&t%2==1?0:i.length-1;return!a||r===void 0?i[a]:r}var jp=e=>e,Mp=jp,Np=jp;function Pp(e){let t=new Set,n=new Set,r=!1,i=!1,a=new WeakSet,o={delta:0,timestamp:0,isProcessing:!1};function s(t){a.has(t)&&(c.schedule(t),e()),t(o)}let c={schedule:(e,i=!1,o=!1)=>{let s=o&&r?t:n;return i&&a.add(e),s.has(e)||s.add(e),e},cancel:e=>{n.delete(e),a.delete(e)},process:e=>{o=e,r?i=!0:(r=!0,[t,n]=[n,t],t.forEach(s),t.clear(),r=!1,i&&(i=!1,c.process(e)))}};return c}var Fp=[`read`,`resolveKeyframes`,`update`,`preRender`,`render`,`postRender`],wee=40;function Ip(e,t){let n=!1,r=!0,i={delta:0,timestamp:0,isProcessing:!1},a=()=>n=!0,o=Fp.reduce((e,t)=>(e[t]=Pp(a),e),{}),{read:s,resolveKeyframes:c,update:l,preRender:u,render:d,postRender:f}=o,p=()=>{let a=Dp.useManualTiming?i.timestamp:performance.now();n=!1,i.delta=r?1e3/60:Math.max(Math.min(a-i.timestamp,wee),1),i.timestamp=a,i.isProcessing=!0,s.process(i),c.process(i),l.process(i),u.process(i),d.process(i),f.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(p))},m=()=>{n=!0,r=!0,i.isProcessing||e(p)};return{schedule:Fp.reduce((e,t)=>{let r=o[t];return e[t]=(e,t=!1,i=!1)=>(n||m(),r.schedule(e,t,i)),e},{}),cancel:e=>{for(let t=0;t<Fp.length;t++)o[Fp[t]].cancel(e)},state:i,steps:o}}var{schedule:Lp,cancel:Rp,state:zp,steps:Bp}=Ip(typeof requestAnimationFrame<`u`?requestAnimationFrame:jp,!0),Vp=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,Tee=1e-7,Eee=12;function Dee(e,t,n,r,i){let a,o,s=0;do o=t+(n-t)/2,a=Vp(o,r,i)-e,a>0?n=o:t=o;while(Math.abs(a)>Tee&&++s<Eee);return o}function Hp(e,t,n,r){if(e===t&&n===r)return jp;let i=t=>Dee(t,0,1,e,n);return e=>e===0||e===1?e:Vp(i(e),t,r)}var Up=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,Wp=e=>t=>1-e(1-t),Gp=Hp(.33,1.53,.69,.99),Kp=Wp(Gp),qp=Up(Kp),Jp=e=>(e*=2)<1?.5*Kp(e):.5*(2-2**(-10*(e-1))),Yp=e=>1-Math.sin(Math.acos(e)),Xp=Wp(Yp),Zp=Up(Yp),Qp=e=>/^0[^.\s]+$/u.test(e);function Oee(e){return typeof e==`number`?e===0:e===null||e===`none`||e===`0`||Qp(e)}var $p=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e),em=e=>t=>typeof t==`string`&&t.startsWith(e),tm=em(`--`),kee=em(`var(--`),nm=e=>kee(e)?Aee.test(e.split(`/*`)[0].trim()):!1,Aee=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu,jee=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function Mee(e){let t=jee.exec(e);if(!t)return[,];let[,n,r,i]=t;return[`--${n??r}`,i]}var Nee=4;function rm(e,t,n=1){Np(n<=Nee,`Max CSS variable fallback depth detected in property "${e}". This may indicate a circular fallback dependency.`);let[r,i]=Mee(e);if(!r)return;let a=window.getComputedStyle(t).getPropertyValue(r);if(a){let e=a.trim();return $p(e)?parseFloat(e):e}return nm(i)?rm(i,t,n+1):i}var im=(e,t,n)=>n>t?t:n<e?e:n,am={test:e=>typeof e==`number`,parse:parseFloat,transform:e=>e},om={...am,transform:e=>im(0,1,e)},sm={...am,default:1},cm=e=>({test:t=>typeof t==`string`&&t.endsWith(e)&&t.split(` `).length===1,parse:parseFloat,transform:t=>`${t}${e}`}),lm=cm(`deg`),um=cm(`%`),dm=cm(`px`),Pee=cm(`vh`),fm=cm(`vw`),pm={...um,parse:e=>um.parse(e)/100,transform:e=>um.transform(e*100)},Fee=new Set([`width`,`height`,`top`,`left`,`right`,`bottom`,`x`,`y`,`translateX`,`translateY`]),mm=e=>e===am||e===dm,hm=(e,t)=>parseFloat(e.split(`, `)[t]),gm=(e,t)=>(n,{transform:r})=>{if(r===`none`||!r)return 0;let i=r.match(/^matrix3d\((.+)\)$/u);if(i)return hm(i[1],t);{let t=r.match(/^matrix\((.+)\)$/u);return t?hm(t[1],e):0}},Iee=new Set([`x`,`y`,`z`]),Lee=_p.filter(e=>!Iee.has(e));function _m(e){let t=[];return Lee.forEach(n=>{let r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(+!!n.startsWith(`scale`)))}),t}var vm={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:gm(4,13),y:gm(5,14)};vm.translateX=vm.x,vm.translateY=vm.y;var ym=e=>t=>t.test(e),bm=[am,dm,um,lm,fm,Pee,{test:e=>e===`auto`,parse:e=>e}],xm=e=>bm.find(ym(e)),Sm=new Set,Cm=!1,wm=!1;function Tm(){if(wm){let e=Array.from(Sm).filter(e=>e.needsMeasurement),t=new Set(e.map(e=>e.element)),n=new Map;t.forEach(e=>{let t=_m(e);t.length&&(n.set(e,t),e.render())}),e.forEach(e=>e.measureInitialState()),t.forEach(e=>{e.render();let t=n.get(e);t&&t.forEach(([t,n])=>{var r;(r=e.getValue(t))==null||r.set(n)})}),e.forEach(e=>e.measureEndState()),e.forEach(e=>{e.suspendedScrollY!==void 0&&window.scrollTo(0,e.suspendedScrollY)})}wm=!1,Cm=!1,Sm.forEach(e=>e.complete()),Sm.clear()}function Em(){Sm.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(wm=!0)})}function Ree(){Em(),Tm()}var Dm=class{constructor(e,t,n,r,i,a=!1){this.isComplete=!1,this.isAsync=!1,this.needsMeasurement=!1,this.isScheduled=!1,this.unresolvedKeyframes=[...e],this.onComplete=t,this.name=n,this.motionValue=r,this.element=i,this.isAsync=a}scheduleResolve(){this.isScheduled=!0,this.isAsync?(Sm.add(this),Cm||(Cm=!0,Lp.read(Em),Lp.resolveKeyframes(Tm))):(this.readKeyframes(),this.complete())}readKeyframes(){let{unresolvedKeyframes:e,name:t,element:n,motionValue:r}=this;for(let i=0;i<e.length;i++)if(e[i]===null){if(i===0){let i=r?.get(),a=e[e.length-1];if(i!==void 0)e[0]=i;else if(n&&t){let r=n.readValue(t,a);r!=null&&(e[0]=r)}e[0]===void 0&&(e[0]=a),r&&i===void 0&&r.set(e[0])}else e[i]=e[i-1]}}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(){this.isComplete=!0,this.onComplete(this.unresolvedKeyframes,this.finalKeyframe),Sm.delete(this)}cancel(){this.isComplete||(this.isScheduled=!1,Sm.delete(this))}resume(){this.isComplete||this.scheduleResolve()}},Om=e=>Math.round(e*1e5)/1e5,km=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function Am(e){return e==null}var jm=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,Mm=(e,t)=>n=>!!(typeof n==`string`&&jm.test(n)&&n.startsWith(e)||t&&!Am(n)&&Object.prototype.hasOwnProperty.call(n,t)),Nm=(e,t,n)=>r=>{if(typeof r!=`string`)return r;let[i,a,o,s]=r.match(km);return{[e]:parseFloat(i),[t]:parseFloat(a),[n]:parseFloat(o),alpha:s===void 0?1:parseFloat(s)}},Pm=e=>im(0,255,e),Fm={...am,transform:e=>Math.round(Pm(e))},Im={test:Mm(`rgb`,`red`),parse:Nm(`red`,`green`,`blue`),transform:({red:e,green:t,blue:n,alpha:r=1})=>`rgba(`+Fm.transform(e)+`, `+Fm.transform(t)+`, `+Fm.transform(n)+`, `+Om(om.transform(r))+`)`};function zee(e){let t=``,n=``,r=``,i=``;return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}var Lm={test:Mm(`#`),parse:zee,transform:Im.transform},Rm={test:Mm(`hsl`,`hue`),parse:Nm(`hue`,`saturation`,`lightness`),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>`hsla(`+Math.round(e)+`, `+um.transform(Om(t))+`, `+um.transform(Om(n))+`, `+Om(om.transform(r))+`)`},zm={test:e=>Im.test(e)||Lm.test(e)||Rm.test(e),parse:e=>Im.test(e)?Im.parse(e):Rm.test(e)?Rm.parse(e):Lm.parse(e),transform:e=>typeof e==`string`?e:e.hasOwnProperty(`red`)?Im.transform(e):Rm.transform(e)},Bee=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function Vee(e){return isNaN(e)&&typeof e==`string`&&(e.match(km)?.length||0)+(e.match(Bee)?.length||0)>0}var Bm=`number`,Vm=`color`,Hee=`var`,Uee=`var(`,Hm="${}",Wee=/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 Um(e){let t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[],a=0;return{values:n,split:t.replace(Wee,e=>(zm.test(e)?(r.color.push(a),i.push(Vm),n.push(zm.parse(e))):e.startsWith(Uee)?(r.var.push(a),i.push(Hee),n.push(e)):(r.number.push(a),i.push(Bm),n.push(parseFloat(e))),++a,Hm)).split(Hm),indexes:r,types:i}}function Wm(e){return Um(e).values}function Gm(e){let{split:t,types:n}=Um(e),r=t.length;return e=>{let i=``;for(let a=0;a<r;a++)if(i+=t[a],e[a]!==void 0){let t=n[a];i+=t===Bm?Om(e[a]):t===Vm?zm.transform(e[a]):e[a]}return i}}var Gee=e=>typeof e==`number`?0:e;function Kee(e){let t=Wm(e);return Gm(e)(t.map(Gee))}var Km={test:Vee,parse:Wm,createTransformer:Gm,getAnimatableNone:Kee},qee=new Set([`brightness`,`contrast`,`saturate`,`opacity`]);function Jee(e){let[t,n]=e.slice(0,-1).split(`(`);if(t===`drop-shadow`)return e;let[r]=n.match(km)||[];if(!r)return e;let i=n.replace(r,``),a=+!!qee.has(t);return r!==n&&(a*=100),t+`(`+a+i+`)`}var Yee=/\b([a-z-]*)\(.*?\)/gu,qm={...Km,getAnimatableNone:e=>{let t=e.match(Yee);return t?t.map(Jee).join(` `):e}},Jm={borderWidth:dm,borderTopWidth:dm,borderRightWidth:dm,borderBottomWidth:dm,borderLeftWidth:dm,borderRadius:dm,radius:dm,borderTopLeftRadius:dm,borderTopRightRadius:dm,borderBottomRightRadius:dm,borderBottomLeftRadius:dm,width:dm,maxWidth:dm,height:dm,maxHeight:dm,top:dm,right:dm,bottom:dm,left:dm,padding:dm,paddingTop:dm,paddingRight:dm,paddingBottom:dm,paddingLeft:dm,margin:dm,marginTop:dm,marginRight:dm,marginBottom:dm,marginLeft:dm,backgroundPositionX:dm,backgroundPositionY:dm},Ym={rotate:lm,rotateX:lm,rotateY:lm,rotateZ:lm,scale:sm,scaleX:sm,scaleY:sm,scaleZ:sm,skew:lm,skewX:lm,skewY:lm,distance:dm,translateX:dm,translateY:dm,translateZ:dm,x:dm,y:dm,z:dm,perspective:dm,transformPerspective:dm,opacity:om,originX:pm,originY:pm,originZ:dm},Xm={...am,transform:Math.round},Zm={...Jm,...Ym,zIndex:Xm,size:dm,fillOpacity:om,strokeOpacity:om,numOctaves:Xm},Qm={...Zm,color:zm,backgroundColor:zm,outlineColor:zm,fill:zm,stroke:zm,borderColor:zm,borderTopColor:zm,borderRightColor:zm,borderBottomColor:zm,borderLeftColor:zm,filter:qm,WebkitFilter:qm},$m=e=>Qm[e];function eh(e,t){let n=$m(e);return n!==qm&&(n=Km),n.getAnimatableNone?n.getAnimatableNone(t):void 0}var th=new Set([`auto`,`none`,`0`]);function nh(e,t,n){let r=0,i;for(;r<e.length&&!i;){let t=e[r];typeof t==`string`&&!th.has(t)&&Um(t).values.length&&(i=e[r]),r++}if(i&&n)for(let r of t)e[r]=eh(n,i)}var rh=class extends Dm{constructor(e,t,n,r,i){super(e,t,n,r,i,!0)}readKeyframes(){let{unresolvedKeyframes:e,element:t,name:n}=this;if(!t||!t.current)return;super.readKeyframes();for(let n=0;n<e.length;n++){let r=e[n];if(typeof r==`string`&&(r=r.trim(),nm(r))){let i=rm(r,t.current);i!==void 0&&(e[n]=i),n===e.length-1&&(this.finalKeyframe=r)}}if(this.resolveNoneKeyframes(),!Fee.has(n)||e.length!==2)return;let[r,i]=e,a=xm(r),o=xm(i);if(a!==o){if(mm(a)&&mm(o))for(let t=0;t<e.length;t++){let n=e[t];typeof n==`string`&&(e[t]=parseFloat(n))}else this.needsMeasurement=!0}}resolveNoneKeyframes(){let{unresolvedKeyframes:e,name:t}=this,n=[];for(let t=0;t<e.length;t++)Oee(e[t])&&n.push(t);n.length&&nh(e,n,t)}measureInitialState(){let{element:e,unresolvedKeyframes:t,name:n}=this;if(!e||!e.current)return;n===`height`&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=vm[n](e.measureViewportBox(),window.getComputedStyle(e.current)),t[0]=this.measuredOrigin;let r=t[t.length-1];r!==void 0&&e.getValue(n,r).jump(r,!1)}measureEndState(){let{element:e,name:t,unresolvedKeyframes:n}=this;if(!e||!e.current)return;let r=e.getValue(t);r&&r.jump(this.measuredOrigin,!1);let i=n.length-1,a=n[i];n[i]=vm[t](e.measureViewportBox(),window.getComputedStyle(e.current)),a!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=a),this.removedTransforms?.length&&this.removedTransforms.forEach(([t,n])=>{e.getValue(t).set(n)}),this.resolveNoneKeyframes()}};function ih(e){return typeof e==`function`}var ah;function oh(){ah=void 0}var sh={now:()=>(ah===void 0&&sh.set(zp.isProcessing||Dp.useManualTiming?zp.timestamp:performance.now()),ah),set:e=>{ah=e,queueMicrotask(oh)}},ch=(e,t)=>t!==`zIndex`&&!!(typeof e==`number`||Array.isArray(e)||typeof e==`string`&&(Km.test(e)||e===`0`)&&!e.startsWith(`url(`));function lh(e){let t=e[0];if(e.length===1)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t)return!0}function uh(e,t,n,r){let i=e[0];if(i===null)return!1;if(t===`display`||t===`visibility`)return!0;let a=e[e.length-1],o=ch(i,t),s=ch(a,t);return Mp(o===s,`You are trying to animate ${t} from "${i}" to "${a}". ${i} is not an animatable value - to enable this animation set ${i} to a value animatable to ${a} via the \`style\` property.`),!o||!s?!1:lh(e)||(n===`spring`||ih(n))&&r}var dh=40,fh=class{constructor({autoplay:e=!0,delay:t=0,type:n=`keyframes`,repeat:r=0,repeatDelay:i=0,repeatType:a=`loop`,...o}){this.isStopped=!1,this.hasAttemptedResolve=!1,this.createdAt=sh.now(),this.options={autoplay:e,delay:t,type:n,repeat:r,repeatDelay:i,repeatType:a,...o},this.updateFinishedPromise()}calcStartTime(){return this.resolvedAt&&this.resolvedAt-this.createdAt>dh?this.resolvedAt:this.createdAt}get resolved(){return!this._resolved&&!this.hasAttemptedResolve&&Ree(),this._resolved}onKeyframesResolved(e,t){this.resolvedAt=sh.now(),this.hasAttemptedResolve=!0;let{name:n,type:r,velocity:i,delay:a,onComplete:o,onUpdate:s,isGenerator:c}=this.options;if(!c&&!uh(e,n,r,i)){if(Op.current||!a){s?.(Ap(e,this.options,t)),o?.(),this.resolveFinishedPromise();return}this.options.duration=0}let l=this.initPlayback(e,t);l!==!1&&(this._resolved={keyframes:e,finalKeyframe:t,...l},this.onPostResolved())}onPostResolved(){}then(e,t){return this.currentFinishedPromise.then(e,t)}flatten(){this.options.type=`keyframes`,this.options.ease=`linear`}updateFinishedPromise(){this.currentFinishedPromise=new Promise(e=>{this.resolveFinishedPromise=e})}},ph=(e,t,n)=>{let r=t-e;return r===0?1:(n-e)/r},mh=(e,t,n=10)=>{let r=``,i=Math.max(Math.round(t/n),2);for(let t=0;t<i;t++)r+=e(ph(0,i-1,t))+`, `;return`linear(${r.substring(0,r.length-2)})`};function hh(e,t){return t?1e3/t*e:0}var gh=5;function _h(e,t,n){let r=Math.max(t-gh,0);return hh(n-e(r),t-r)}var vh={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},yh=.001;function bh({duration:e=vh.duration,bounce:t=vh.bounce,velocity:n=vh.velocity,mass:r=vh.mass}){let i,a;Mp(e<=yp(vh.maxDuration),`Spring duration must be 10 seconds or less`);let o=1-t;o=im(vh.minDamping,vh.maxDamping,o),e=im(vh.minDuration,vh.maxDuration,bp(e)),o<1?(i=t=>{let r=t*o,i=r*e,a=r-n,s=Ch(t,o),c=Math.exp(-i);return yh-a/s*c},a=t=>{let r=t*o*e,a=r*n+n,s=o**2*t**2*e,c=Math.exp(-r),l=Ch(t**2,o);return(-i(t)+yh>0?-1:1)*((a-s)*c)/l}):(i=t=>-.001+Math.exp(-t*e)*((t-n)*e+1),a=t=>Math.exp(-t*e)*((n-t)*(e*e)));let s=5/e,c=Sh(i,a,s);if(e=yp(e),isNaN(c))return{stiffness:vh.stiffness,damping:vh.damping,duration:e};{let t=c**2*r;return{stiffness:t,damping:o*2*Math.sqrt(r*t),duration:e}}}var xh=12;function Sh(e,t,n){let r=n;for(let n=1;n<xh;n++)r-=e(r)/t(r);return r}function Ch(e,t){return e*Math.sqrt(1-t*t)}var wh=2e4;function Th(e){let t=0,n=e.next(t);for(;!n.done&&t<2e4;)t+=50,n=e.next(t);return t>=2e4?1/0:t}var Eh=[`duration`,`bounce`],Dh=[`stiffness`,`damping`,`mass`];function Oh(e,t){return t.some(t=>e[t]!==void 0)}function kh(e){let t={velocity:vh.velocity,stiffness:vh.stiffness,damping:vh.damping,mass:vh.mass,isResolvedFromDuration:!1,...e};if(!Oh(e,Dh)&&Oh(e,Eh)){if(e.visualDuration){let n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,a=2*im(.05,1,1-e.bounce)*Math.sqrt(i);t={...t,mass:vh.mass,stiffness:i,damping:a}}else{let n=bh(e);t={...t,...n,mass:vh.mass},t.isResolvedFromDuration=!0}}return t}function Ah(e=vh.visualDuration,t=vh.bounce){let n=typeof e==`object`?e:{visualDuration:e,keyframes:[0,1],bounce:t},{restSpeed:r,restDelta:i}=n,a=n.keyframes[0],o=n.keyframes[n.keyframes.length-1],s={done:!1,value:a},{stiffness:c,damping:l,mass:u,duration:d,velocity:f,isResolvedFromDuration:p}=kh({...n,velocity:-bp(n.velocity||0)}),m=f||0,h=l/(2*Math.sqrt(c*u)),g=o-a,_=bp(Math.sqrt(c/u)),v=Math.abs(g)<5;r||=v?vh.restSpeed.granular:vh.restSpeed.default,i||=v?vh.restDelta.granular:vh.restDelta.default;let y;if(h<1){let e=Ch(_,h);y=t=>{let n=Math.exp(-h*_*t);return o-n*((m+h*_*g)/e*Math.sin(e*t)+g*Math.cos(e*t))}}else if(h===1)y=e=>o-Math.exp(-_*e)*(g+(m+_*g)*e);else{let e=_*Math.sqrt(h*h-1);y=t=>{let n=Math.exp(-h*_*t),r=Math.min(e*t,300);return o-n*((m+h*_*g)*Math.sinh(r)+e*g*Math.cosh(r))/e}}let b={calculatedDuration:p&&d||null,next:e=>{let t=y(e);if(p)s.done=e>=d;else{let n=0;h<1&&(n=e===0?yp(m):_h(y,e,t));let a=Math.abs(n)<=r,c=Math.abs(o-t)<=i;s.done=a&&c}return s.value=s.done?o:t,s},toString:()=>{let e=Math.min(Th(b),wh),t=mh(t=>b.next(e*t).value,e,30);return e+`ms `+t}};return b}function jh({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:a=500,modifyTarget:o,min:s,max:c,restDelta:l=.5,restSpeed:u}){let d=e[0],f={done:!1,value:d},p=e=>s!==void 0&&e<s||c!==void 0&&e>c,m=e=>s===void 0?c:c===void 0||Math.abs(s-e)<Math.abs(c-e)?s:c,h=n*t,g=d+h,_=o===void 0?g:o(g);_!==g&&(h=_-d);let v=e=>-h*Math.exp(-e/r),y=e=>_+v(e),b=e=>{let t=v(e),n=y(e);f.done=Math.abs(t)<=l,f.value=f.done?_:n},x,S,C=e=>{p(f.value)&&(x=e,S=Ah({keyframes:[f.value,m(f.value)],velocity:_h(y,e,f.value),damping:i,stiffness:a,restDelta:l,restSpeed:u}))};return C(0),{calculatedDuration:null,next:e=>{let t=!1;return!S&&x===void 0&&(t=!0,b(e),C(e)),x!==void 0&&e>=x?S.next(e-x):(!t&&b(e),f)}}}var Xee=Hp(.42,0,1,1),Zee=Hp(0,0,.58,1),Mh=Hp(.42,0,.58,1),Qee=e=>Array.isArray(e)&&typeof e[0]!=`number`,Nh=e=>Array.isArray(e)&&typeof e[0]==`number`,Ph={linear:jp,easeIn:Xee,easeInOut:Mh,easeOut:Zee,circIn:Yp,circInOut:Zp,circOut:Xp,backIn:Kp,backInOut:qp,backOut:Gp,anticipate:Jp},Fh=e=>{if(Nh(e)){Np(e.length===4,`Cubic bezier arrays must contain four numerical values.`);let[t,n,r,i]=e;return Hp(t,n,r,i)}return typeof e==`string`?(Np(Ph[e]!==void 0,`Invalid easing type '${e}'`),Ph[e]):e},$ee=(e,t)=>n=>t(e(n)),Ih=(...e)=>e.reduce($ee),Lh=(e,t,n)=>e+(t-e)*n;function Rh(e,t,n){return n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function ete({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,a=0,o=0;if(!t)i=a=o=n;else{let r=n<.5?n*(1+t):n+t-n*t,s=2*n-r;i=Rh(s,r,e+1/3),a=Rh(s,r,e),o=Rh(s,r,e-1/3)}return{red:Math.round(i*255),green:Math.round(a*255),blue:Math.round(o*255),alpha:r}}function zh(e,t){return n=>n>0?t:e}var Bh=(e,t,n)=>{let r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},tte=[Lm,Im,Rm],nte=e=>tte.find(t=>t.test(e));function Vh(e){let t=nte(e);if(Mp(!!t,`'${e}' is not an animatable color. Use the equivalent color code instead.`),!t)return!1;let n=t.parse(e);return t===Rm&&(n=ete(n)),n}var Hh=(e,t)=>{let n=Vh(e),r=Vh(t);if(!n||!r)return zh(e,t);let i={...n};return e=>(i.red=Bh(n.red,r.red,e),i.green=Bh(n.green,r.green,e),i.blue=Bh(n.blue,r.blue,e),i.alpha=Lh(n.alpha,r.alpha,e),Im.transform(i))},Uh=new Set([`none`,`hidden`]);function rte(e,t){return Uh.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function ite(e,t){return n=>Lh(e,t,n)}function Wh(e){return typeof e==`number`?ite:typeof e==`string`?nm(e)?zh:zm.test(e)?Hh:ste:Array.isArray(e)?Gh:typeof e==`object`?zm.test(e)?Hh:ate:zh}function Gh(e,t){let n=[...e],r=n.length,i=e.map((e,n)=>Wh(e)(e,t[n]));return e=>{for(let t=0;t<r;t++)n[t]=i[t](e);return n}}function ate(e,t){let n={...e,...t},r={};for(let i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=Wh(e[i])(e[i],t[i]));return e=>{for(let t in r)n[t]=r[t](e);return n}}function ote(e,t){let n=[],r={color:0,var:0,number:0};for(let i=0;i<t.values.length;i++){let a=t.types[i],o=e.indexes[a][r[a]],s=e.values[o]??0;n[i]=s,r[a]++}return n}var ste=(e,t)=>{let n=Km.createTransformer(t),r=Um(e),i=Um(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?Uh.has(e)&&!i.values.length||Uh.has(t)&&!r.values.length?rte(e,t):Ih(Gh(ote(r,i),i.values),n):(Mp(!0,`Complex values '${e}' and '${t}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`),zh(e,t))};function Kh(e,t,n){return typeof e==`number`&&typeof t==`number`&&typeof n==`number`?Lh(e,t,n):Wh(e)(e,t)}function cte(e,t,n){let r=[],i=n||Kh,a=e.length-1;for(let n=0;n<a;n++){let a=i(e[n],e[n+1]);t&&(a=Ih(Array.isArray(t)?t[n]||jp:t,a)),r.push(a)}return r}function lte(e,t,{clamp:n=!0,ease:r,mixer:i}={}){let a=e.length;if(Np(a===t.length,`Both input and output ranges must be the same length`),a===1)return()=>t[0];if(a===2&&e[0]===e[1])return()=>t[1];e[0]>e[a-1]&&(e=[...e].reverse(),t=[...t].reverse());let o=cte(t,r,i),s=o.length,c=t=>{let n=0;if(s>1)for(;n<e.length-2&&!(t<e[n+1]);n++);let r=ph(e[n],e[n+1],t);return o[n](r)};return n?t=>c(im(e[0],e[a-1],t)):c}function ute(e,t){let n=e[e.length-1];for(let r=1;r<=t;r++){let i=ph(0,t,r);e.push(Lh(n,1,i))}}function dte(e){let t=[0];return ute(t,e.length-1),t}function fte(e,t){return e.map(e=>e*t)}function qh(e,t){return e.map(()=>t||Mh).splice(0,e.length-1)}function Jh({duration:e=300,keyframes:t,times:n,ease:r=`easeInOut`}){let i=Qee(r)?r.map(Fh):Fh(r),a={done:!1,value:t[0]},o=lte(fte(n&&n.length===t.length?n:dte(t),e),t,{ease:Array.isArray(i)?i:qh(t,i)});return{calculatedDuration:e,next:t=>(a.value=o(t),a.done=t>=e,a)}}var Yh=e=>{let t=({timestamp:t})=>e(t);return{start:()=>Lp.update(t,!0),stop:()=>Rp(t),now:()=>zp.isProcessing?zp.timestamp:sh.now()}},Xh={decay:jh,inertia:jh,tween:Jh,keyframes:Jh,spring:Ah},Zh=e=>e/100,Qh=class extends fh{constructor(e){super(e),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();let{onStop:e}=this.options;e&&e()};let{name:t,motionValue:n,element:r,keyframes:i}=this.options,a=r?.KeyframeResolver||Dm,o=(e,t)=>this.onKeyframesResolved(e,t);this.resolver=new a(i,o,t,n,r),this.resolver.scheduleResolve()}flatten(){super.flatten(),this._resolved&&Object.assign(this._resolved,this.initPlayback(this._resolved.keyframes))}initPlayback(e){let{type:t=`keyframes`,repeat:n=0,repeatDelay:r=0,repeatType:i,velocity:a=0}=this.options,o=ih(t)?t:Xh[t]||Jh,s,c;o!==Jh&&typeof e[0]!=`number`&&(s=Ih(Zh,Kh(e[0],e[1])),e=[0,100]);let l=o({...this.options,keyframes:e});i===`mirror`&&(c=o({...this.options,keyframes:[...e].reverse(),velocity:-a})),l.calculatedDuration===null&&(l.calculatedDuration=Th(l));let{calculatedDuration:u}=l,d=u+r,f=d*(n+1)-r;return{generator:l,mirroredGenerator:c,mapPercentToKeyframes:s,calculatedDuration:u,resolvedDuration:d,totalDuration:f}}onPostResolved(){let{autoplay:e=!0}=this.options;this.play(),this.pendingPlayState===`paused`||!e?this.pause():this.state=this.pendingPlayState}tick(e,t=!1){let{resolved:n}=this;if(!n){let{keyframes:e}=this.options;return{done:!0,value:e[e.length-1]}}let{finalKeyframe:r,generator:i,mirroredGenerator:a,mapPercentToKeyframes:o,keyframes:s,calculatedDuration:c,totalDuration:l,resolvedDuration:u}=n;if(this.startTime===null)return i.next(0);let{delay:d,repeat:f,repeatType:p,repeatDelay:m,onUpdate:h}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,e):this.speed<0&&(this.startTime=Math.min(e-l/this.speed,this.startTime)),this.currentTime=t?e:this.holdTime===null?Math.round(e-this.startTime)*this.speed:this.holdTime;let g=this.currentTime-d*(this.speed>=0?1:-1),_=this.speed>=0?g<0:g>l;this.currentTime=Math.max(g,0),this.state===`finished`&&this.holdTime===null&&(this.currentTime=l);let v=this.currentTime,y=i;if(f){let e=Math.min(this.currentTime,l)/u,t=Math.floor(e),n=e%1;!n&&e>=1&&(n=1),n===1&&t--,t=Math.min(t,f+1),t%2&&(p===`reverse`?(n=1-n,m&&(n-=m/u)):p===`mirror`&&(y=a)),v=im(0,1,n)*u}let b=_?{done:!1,value:s[0]}:y.next(v);o&&(b.value=o(b.value));let{done:x}=b;!_&&c!==null&&(x=this.speed>=0?this.currentTime>=l:this.currentTime<=0);let S=this.holdTime===null&&(this.state===`finished`||this.state===`running`&&x);return S&&r!==void 0&&(b.value=Ap(s,this.options,r)),h&&h(b.value),S&&this.finish(),b}get duration(){let{resolved:e}=this;return e?bp(e.calculatedDuration):0}get time(){return bp(this.currentTime)}set time(e){e=yp(e),this.currentTime=e,this.holdTime!==null||this.speed===0?this.holdTime=e:this.driver&&(this.startTime=this.driver.now()-e/this.speed)}get speed(){return this.playbackSpeed}set speed(e){let t=this.playbackSpeed!==e;this.playbackSpeed=e,t&&(this.time=bp(this.currentTime))}play(){if(this.resolver.isScheduled||this.resolver.resume(),!this._resolved){this.pendingPlayState=`running`;return}if(this.isStopped)return;let{driver:e=Yh,onPlay:t,startTime:n}=this.options;this.driver||=e(e=>this.tick(e)),t&&t();let r=this.driver.now();this.holdTime===null?this.startTime?this.state===`finished`&&(this.startTime=r):this.startTime=n??this.calcStartTime():this.startTime=r-this.holdTime,this.state===`finished`&&this.updateFinishedPromise(),this.cancelTime=this.startTime,this.holdTime=null,this.state=`running`,this.driver.start()}pause(){this._resolved?(this.state=`paused`,this.holdTime=this.currentTime??0):this.pendingPlayState=`paused`}complete(){this.state!==`running`&&this.play(),this.pendingPlayState=this.state=`finished`,this.holdTime=null}finish(){this.teardown(),this.state=`finished`;let{onComplete:e}=this.options;e&&e()}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(),void 0)}sample(e){return this.startTime=0,this.tick(e,!0)}},$h=new Set([`opacity`,`clipPath`,`filter`,`transform`]);function eg(e){let t;return()=>(t===void 0&&(t=e()),t)}var tg={linearEasing:void 0};function ng(e,t){let n=eg(e);return()=>tg[t]??n()}var rg=ng(()=>{try{document.createElement(`div`).animate({opacity:0},{easing:`linear(0, 1)`})}catch{return!1}return!0},`linearEasing`);function ig(e){return!!(typeof e==`function`&&rg()||!e||typeof e==`string`&&(e in og||rg())||Nh(e)||Array.isArray(e)&&e.every(ig))}var ag=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,og={linear:`linear`,ease:`ease`,easeIn:`ease-in`,easeOut:`ease-out`,easeInOut:`ease-in-out`,circIn:ag([0,.65,.55,1]),circOut:ag([.55,0,1,.45]),backIn:ag([.31,.01,.66,-.59]),backOut:ag([.33,1.53,.69,.99])};function sg(e,t){if(e)return typeof e==`function`&&rg()?mh(e,t):Nh(e)?ag(e):Array.isArray(e)?e.map(e=>sg(e,t)||og.easeOut):og[e]}function cg(e,t,n,{delay:r=0,duration:i=300,repeat:a=0,repeatType:o=`loop`,ease:s=`easeInOut`,times:c}={}){let l={[t]:n};c&&(l.offset=c);let u=sg(s,i);return Array.isArray(u)&&(l.easing=u),e.animate(l,{delay:r,duration:i,easing:Array.isArray(u)?`linear`:u,fill:`both`,iterations:a+1,direction:o===`reverse`?`alternate`:`normal`})}function lg(e,t){e.timeline=t,e.onfinish=null}var ug=eg(()=>Object.hasOwnProperty.call(Element.prototype,`animate`)),dg=10,fg=2e4;function pg(e){return ih(e.type)||e.type===`spring`||!ig(e.ease)}function mg(e,t){let n=new Qh({...t,keyframes:e,repeat:0,delay:0,isGenerator:!0}),r={done:!1,value:e[0]},i=[],a=0;for(;!r.done&&a<fg;)r=n.sample(a),i.push(r.value),a+=dg;return{times:void 0,keyframes:i,duration:a-dg,ease:`linear`}}var hg={anticipate:Jp,backInOut:qp,circInOut:Zp};function gg(e){return e in hg}var _g=class extends fh{constructor(e){super(e);let{name:t,motionValue:n,element:r,keyframes:i}=this.options;this.resolver=new rh(i,(e,t)=>this.onKeyframesResolved(e,t),t,n,r),this.resolver.scheduleResolve()}initPlayback(e,t){let{duration:n=300,times:r,ease:i,type:a,motionValue:o,name:s,startTime:c}=this.options;if(!o.owner?.current)return!1;if(typeof i==`string`&&rg()&&gg(i)&&(i=hg[i]),pg(this.options)){let{onComplete:t,onUpdate:o,motionValue:s,element:c,...l}=this.options,u=mg(e,l);e=u.keyframes,e.length===1&&(e[1]=e[0]),n=u.duration,r=u.times,i=u.ease,a=`keyframes`}let l=cg(o.owner.current,s,e,{...this.options,duration:n,times:r,ease:i});return l.startTime=c??this.calcStartTime(),this.pendingTimeline?(lg(l,this.pendingTimeline),this.pendingTimeline=void 0):l.onfinish=()=>{let{onComplete:n}=this.options;o.set(Ap(e,this.options,t)),n&&n(),this.cancel(),this.resolveFinishedPromise()},{animation:l,duration:n,times:r,type:a,ease:i,keyframes:e}}get duration(){let{resolved:e}=this;if(!e)return 0;let{duration:t}=e;return bp(t)}get time(){let{resolved:e}=this;if(!e)return 0;let{animation:t}=e;return bp(t.currentTime||0)}set time(e){let{resolved:t}=this;if(!t)return;let{animation:n}=t;n.currentTime=yp(e)}get speed(){let{resolved:e}=this;if(!e)return 1;let{animation:t}=e;return t.playbackRate}set speed(e){let{resolved:t}=this;if(!t)return;let{animation:n}=t;n.playbackRate=e}get state(){let{resolved:e}=this;if(!e)return`idle`;let{animation:t}=e;return t.playState}get startTime(){let{resolved:e}=this;if(!e)return null;let{animation:t}=e;return t.startTime}attachTimeline(e){if(!this._resolved)this.pendingTimeline=e;else{let{resolved:t}=this;if(!t)return jp;let{animation:n}=t;lg(n,e)}return jp}play(){if(this.isStopped)return;let{resolved:e}=this;if(!e)return;let{animation:t}=e;t.playState===`finished`&&this.updateFinishedPromise(),t.play()}pause(){let{resolved:e}=this;if(!e)return;let{animation:t}=e;t.pause()}stop(){if(this.resolver.cancel(),this.isStopped=!0,this.state===`idle`)return;this.resolveFinishedPromise(),this.updateFinishedPromise();let{resolved:e}=this;if(!e)return;let{animation:t,keyframes:n,duration:r,type:i,ease:a,times:o}=e;if(t.playState===`idle`||t.playState===`finished`)return;if(this.time){let{motionValue:e,onUpdate:t,onComplete:s,element:c,...l}=this.options,u=new Qh({...l,keyframes:n,duration:r,type:i,ease:a,times:o,isGenerator:!0}),d=yp(this.time);e.setWithVelocity(u.sample(d-dg).value,u.sample(d).value,dg)}let{onStop:s}=this.options;s&&s(),this.cancel()}complete(){let{resolved:e}=this;e&&e.animation.finish()}cancel(){let{resolved:e}=this;e&&e.animation.cancel()}static supports(e){let{motionValue:t,name:n,repeatDelay:r,repeatType:i,damping:a,type:o}=e;return ug()&&n&&$h.has(n)&&t&&t.owner&&t.owner.current instanceof HTMLElement&&!t.owner.getProps().onUpdate&&!r&&i!==`mirror`&&a!==0&&o!==`inertia`}},vg=eg(()=>window.ScrollTimeline!==void 0),yg=class{constructor(e){this.stop=()=>this.runAll(`stop`),this.animations=e.filter(Boolean)}then(e,t){return Promise.all(this.animations).then(e).catch(t)}getAll(e){return this.animations[0][e]}setAll(e,t){for(let n=0;n<this.animations.length;n++)this.animations[n][e]=t}attachTimeline(e,t){let n=this.animations.map(n=>vg()&&n.attachTimeline?n.attachTimeline(e):t(n));return()=>{n.forEach((e,t)=>{e&&e(),this.animations[t].stop()})}}get time(){return this.getAll(`time`)}set time(e){this.setAll(`time`,e)}get speed(){return this.getAll(`speed`)}set speed(e){this.setAll(`speed`,e)}get startTime(){return this.getAll(`startTime`)}get duration(){let e=0;for(let t=0;t<this.animations.length;t++)e=Math.max(e,this.animations[t].duration);return e}runAll(e){this.animations.forEach(t=>t[e]())}flatten(){this.runAll(`flatten`)}play(){this.runAll(`play`)}pause(){this.runAll(`pause`)}cancel(){this.runAll(`cancel`)}complete(){this.runAll(`complete`)}};function bg({when:e,delay:t,delayChildren:n,staggerChildren:r,staggerDirection:i,repeat:a,repeatType:o,repeatDelay:s,from:c,elapsed:l,...u}){return!!Object.keys(u).length}var xg=(e,t,n,r={},i,a)=>o=>{let s=Ep(r,e)||{},c=s.delay||r.delay||0,{elapsed:l=0}=r;l-=yp(c);let u={keyframes:Array.isArray(n)?n:[null,n],ease:`easeOut`,velocity:t.getVelocity(),...s,delay:-l,onUpdate:e=>{t.set(e),s.onUpdate&&s.onUpdate(e)},onComplete:()=>{o(),s.onComplete&&s.onComplete()},name:e,motionValue:t,element:a?void 0:i};bg(s)||(u={...u,...Tp(e,u)}),u.duration&&(u.duration=yp(u.duration)),u.repeatDelay&&(u.repeatDelay=yp(u.repeatDelay)),u.from!==void 0&&(u.keyframes[0]=u.from);let d=!1;if((u.type===!1||u.duration===0&&!u.repeatDelay)&&(u.duration=0,u.delay===0&&(d=!0)),(Op.current||Dp.skipAnimations)&&(d=!0,u.duration=0,u.delay=0),d&&!a&&t.get()!==void 0){let e=Ap(u.keyframes,s);if(e!==void 0)return Lp.update(()=>{u.onUpdate(e),u.onComplete()}),new yg([])}return!a&&_g.supports(u)?new _g(u):new Qh(u)},Sg=e=>!!(e&&typeof e==`object`&&e.mix&&e.toValue),Cg=e=>lp(e)?e[e.length-1]||0:e;function wg(e,t){e.indexOf(t)===-1&&e.push(t)}function Tg(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}var Eg=class{constructor(){this.subscriptions=[]}add(e){return wg(this.subscriptions,e),()=>Tg(this.subscriptions,e)}notify(e,t,n){let r=this.subscriptions.length;if(r){if(r===1)this.subscriptions[0](e,t,n);else for(let i=0;i<r;i++){let r=this.subscriptions[i];r&&r(e,t,n)}}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}},Dg=30,Og=e=>!isNaN(parseFloat(e)),kg={current:void 0},Ag=class{constructor(e,t={}){this.version=`11.15.0`,this.canTrackVelocity=null,this.events={},this.updateAndNotify=(e,t=!0)=>{let n=sh.now();this.updatedAt!==n&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(e),this.current!==this.prev&&this.events.change&&this.events.change.notify(this.current),t&&this.events.renderRequest&&this.events.renderRequest.notify(this.current)},this.hasAnimated=!1,this.setCurrent(e),this.owner=t.owner}setCurrent(e){this.current=e,this.updatedAt=sh.now(),this.canTrackVelocity===null&&e!==void 0&&(this.canTrackVelocity=Og(this.current))}setPrevFrameValue(e=this.current){this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt}onChange(e){return this.on(`change`,e)}on(e,t){this.events[e]||(this.events[e]=new Eg);let n=this.events[e].add(t);return e===`change`?()=>{n(),Lp.read(()=>{this.events.change.getSize()||this.stop()})}:n}clearListeners(){for(let e in this.events)this.events[e].clear()}attach(e,t){this.passiveEffect=e,this.stopPassiveEffect=t}set(e,t=!0){!t||!this.passiveEffect?this.updateAndNotify(e,t):this.passiveEffect(e,this.updateAndNotify)}setWithVelocity(e,t,n){this.set(t),this.prev=void 0,this.prevFrameValue=e,this.prevUpdatedAt=this.updatedAt-n}jump(e,t=!0){this.updateAndNotify(e),this.prev=e,this.prevUpdatedAt=this.prevFrameValue=void 0,t&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}get(){return kg.current&&kg.current.push(this),this.current}getPrevious(){return this.prev}getVelocity(){let e=sh.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||e-this.updatedAt>Dg)return 0;let t=Math.min(this.updatedAt-this.prevUpdatedAt,Dg);return hh(parseFloat(this.current)-parseFloat(this.prevFrameValue),t)}start(e){return this.stop(),new Promise(t=>{this.hasAnimated=!0,this.animation=e(t),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 jg(e,t){return new Ag(e,t)}function Mg(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,jg(n))}function Ng(e,t){let{transitionEnd:n={},transition:r={},...i}=mp(e,t)||{};i={...i,...n};for(let t in i)Mg(e,t,Cg(i[t]))}var Pg=e=>e.replace(/([a-z])([A-Z])/gu,`$1-$2`).toLowerCase(),Fg=`data-`+Pg(`framerAppearId`);function Ig(e){return e.props[Fg]}var Lg=e=>!!(e&&e.getVelocity);function Rg(e){return!!(Lg(e)&&e.add)}function zg(e,t){let n=e.getValue(`willChange`);if(Rg(n))return n.add(t)}function Bg({protectedKeys:e,needsAnimating:t},n){let r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Vg(e,t,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:a=e.getDefaultTransition(),transitionEnd:o,...s}=t;r&&(a=r);let c=[],l=i&&e.animationState&&e.animationState.getState()[i];for(let t in s){let r=e.getValue(t,e.latestValues[t]??null),i=s[t];if(i===void 0||l&&Bg(l,t))continue;let o={delay:n,...Ep(a||{},t)},u=!1;if(window.MotionHandoffAnimation){let n=Ig(e);if(n){let e=window.MotionHandoffAnimation(n,t,Lp);e!==null&&(o.startTime=e,u=!0)}}zg(e,t),r.start(xg(t,r,i,e.shouldReduceMotion&&vp.has(t)?{type:!1}:o,e,u));let d=r.animation;d&&c.push(d)}return o&&Promise.all(c).then(()=>{Lp.update(()=>{o&&Ng(e,o)})}),c}function Hg(e,t,n={}){let r=mp(e,t,n.type===`exit`?e.presenceContext?.custom:void 0),{transition:i=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(i=n.transitionOverride);let a=r?()=>Promise.all(Vg(e,r,n)):()=>Promise.resolve(),o=e.variantChildren&&e.variantChildren.size?(r=0)=>{let{delayChildren:a=0,staggerChildren:o,staggerDirection:s}=i;return Ug(e,t,a+r,o,s,n)}:()=>Promise.resolve(),{when:s}=i;if(s){let[e,t]=s===`beforeChildren`?[a,o]:[o,a];return e().then(()=>t())}return Promise.all([a(),o(n.delay)])}function Ug(e,t,n=0,r=0,i=1,a){let o=[],s=(e.variantChildren.size-1)*r,c=i===1?(e=0)=>e*r:(e=0)=>s-e*r;return Array.from(e.variantChildren).sort(Wg).forEach((e,r)=>{e.notify(`AnimationStart`,t),o.push(Hg(e,t,{...a,delay:n+c(r)}).then(()=>e.notify(`AnimationComplete`,t)))}),Promise.all(o)}function Wg(e,t){return e.sortNodePosition(t)}function Gg(e,t,n={}){e.notify(`AnimationStart`,t);let r;if(Array.isArray(t)){let i=t.map(t=>Hg(e,t,n));r=Promise.all(i)}else if(typeof t==`string`)r=Hg(e,t,n);else{let i=typeof t==`function`?mp(e,t,n.custom):t;r=Promise.all(Vg(e,i,n))}return r.then(()=>{e.notify(`AnimationComplete`,t)})}var Kg=gp.length;function qg(e){if(!e)return;if(!e.isControllingVariants){let t=e.parent&&qg(e.parent)||{};return e.props.initial!==void 0&&(t.initial=e.props.initial),t}let t={};for(let n=0;n<Kg;n++){let r=gp[n],i=e.props[r];(dp(i)||i===!1)&&(t[r]=i)}return t}var Jg=[...hp].reverse(),Yg=hp.length;function Xg(e){return t=>Promise.all(t.map(({animation:t,options:n})=>Gg(e,t,n)))}function Zg(e){let t=Xg(e),n=e_(),r=!0,i=t=>(n,r)=>{let i=mp(e,r,t===`exit`?e.presenceContext?.custom:void 0);if(i){let{transition:e,transitionEnd:t,...r}=i;n={...n,...r,...t}}return n};function a(n){t=n(e)}function o(a){let{props:o}=e,s=qg(e.parent)||{},c=[],l=new Set,u={},d=1/0;for(let t=0;t<Yg;t++){let f=Jg[t],p=n[f],m=o[f]===void 0?s[f]:o[f],h=dp(m),g=f===a?p.isActive:null;g===!1&&(d=t);let _=m===s[f]&&m!==o[f]&&h;if(_&&r&&e.manuallyAnimateOnMount&&(_=!1),p.protectedKeys={...u},!p.isActive&&g===null||!m&&!p.prevProp||cp(m)||typeof m==`boolean`)continue;let v=Qg(p.prevProp,m),y=v||f===a&&p.isActive&&!_&&h||t>d&&h,b=!1,x=Array.isArray(m)?m:[m],S=x.reduce(i(f),{});g===!1&&(S={});let{prevResolvedValues:C={}}=p,w={...C,...S},T=t=>{y=!0,l.has(t)&&(b=!0,l.delete(t)),p.needsAnimating[t]=!0;let n=e.getValue(t);n&&(n.liveStyle=!1)};for(let e in w){let t=S[e],n=C[e];if(u.hasOwnProperty(e))continue;let r=!1;r=lp(t)&&lp(n)?!up(t,n):t!==n,r?t==null?l.add(e):T(e):t!==void 0&&l.has(e)?T(e):p.protectedKeys[e]=!0}p.prevProp=m,p.prevResolvedValues=S,p.isActive&&(u={...u,...S}),r&&e.blockInitialAnimation&&(y=!1),y&&(!(_&&v)||b)&&c.push(...x.map(e=>({animation:e,options:{type:f}})))}if(l.size){let t={};l.forEach(n=>{let r=e.getBaseTarget(n),i=e.getValue(n);i&&(i.liveStyle=!0),t[n]=r??null}),c.push({animation:t})}let f=!!c.length;return r&&(o.initial===!1||o.initial===o.animate)&&!e.manuallyAnimateOnMount&&(f=!1),r=!1,f?t(c):Promise.resolve()}function s(t,r){var i;if(n[t].isActive===r)return Promise.resolve();(i=e.variantChildren)==null||i.forEach(e=>e.animationState?.setActive(t,r)),n[t].isActive=r;let a=o(t);for(let e in n)n[e].protectedKeys={};return a}return{animateChanges:o,setActive:s,setAnimateFunction:a,getState:()=>n,reset:()=>{n=e_(),r=!0}}}function Qg(e,t){return typeof t==`string`?t!==e:Array.isArray(t)?!up(t,e):!1}function $g(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function e_(){return{animate:$g(!0),whileInView:$g(),whileHover:$g(),whileTap:$g(),whileDrag:$g(),whileFocus:$g(),exit:$g()}}var t_=class{constructor(e){this.isMounted=!1,this.node=e}update(){}},n_=class extends t_{constructor(e){super(e),e.animationState||=Zg(e)}updateAnimationControlsSubscription(){let{animate:e}=this.node.getProps();cp(e)&&(this.unmountControls=e.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){let{animate:e}=this.node.getProps(),{animate:t}=this.node.prevProps||{};e!==t&&this.updateAnimationControlsSubscription()}unmount(){var e;this.node.animationState.reset(),(e=this.unmountControls)==null||e.call(this)}},r_=0,i_={animation:{Feature:n_},exit:{Feature:class extends t_{constructor(){super(...arguments),this.id=r_++}update(){if(!this.node.presenceContext)return;let{isPresent:e,onExitComplete:t}=this.node.presenceContext,{isPresent:n}=this.node.prevPresenceContext||{};if(!this.node.animationState||e===n)return;let r=this.node.animationState.setActive(`exit`,!e);t&&!e&&r.then(()=>t(this.id))}mount(){let{register:e}=this.node.presenceContext||{};e&&(this.unmount=e(this.id))}unmount(){}}}},a_={x:!1,y:!1};function o_(){return a_.x||a_.y}function s_(e,t,n){if(e instanceof Element)return[e];if(typeof e==`string`){let r=document;t&&(r=t.current);let i=n?.[e]??r.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e)}function c_(e,t){let n=s_(e),r=new AbortController;return[n,{passive:!0,...t,signal:r.signal},()=>r.abort()]}function l_(e){return t=>{t.pointerType===`touch`||o_()||e(t)}}function u_(e,t,n={}){let[r,i,a]=c_(e,n),o=l_(e=>{let{target:n}=e,r=t(e);if(!r||!n)return;let a=l_(e=>{r(e),n.removeEventListener(`pointerleave`,a)});n.addEventListener(`pointerleave`,a,i)});return r.forEach(e=>{e.addEventListener(`pointerenter`,o,i)}),a}var d_=e=>e.pointerType===`mouse`?typeof e.button!=`number`||e.button<=0:e.isPrimary!==!1,f_=new WeakSet;function p_(e){return t=>{t.key===`Enter`&&e(t)}}function m_(e,t){e.dispatchEvent(new PointerEvent(`pointer`+t,{isPrimary:!0,bubbles:!0}))}var h_=(e,t)=>{let n=e.currentTarget;if(!n)return;let r=p_(()=>{if(f_.has(n))return;m_(n,`down`);let e=p_(()=>{m_(n,`up`)});n.addEventListener(`keyup`,e,t),n.addEventListener(`blur`,()=>m_(n,`cancel`),t)});n.addEventListener(`keydown`,r,t),n.addEventListener(`blur`,()=>n.removeEventListener(`keydown`,r),t)},g_=new Set([`BUTTON`,`INPUT`,`SELECT`,`TEXTAREA`,`A`]);function __(e){return g_.has(e.tagName)||e.tabIndex!==-1}var v_=(e,t)=>t?e===t||v_(e,t.parentElement):!1;function y_(e){return d_(e)&&!o_()}function b_(e,t,n={}){let[r,i,a]=c_(e,n),o=e=>{let r=e.currentTarget;if(!y_(e)||f_.has(r))return;f_.add(r);let a=t(e),o=(e,t)=>{window.removeEventListener(`pointerup`,s),window.removeEventListener(`pointercancel`,c),y_(e)&&f_.has(r)&&(f_.delete(r),a&&a(e,{success:t}))},s=e=>{o(e,n.useGlobalTarget||v_(r,e.target))},c=e=>{o(e,!1)};window.addEventListener(`pointerup`,s,i),window.addEventListener(`pointercancel`,c,i)};return r.forEach(e=>{__(e)||(e.tabIndex=0),(n.useGlobalTarget?window:e).addEventListener(`pointerdown`,o,i),e.addEventListener(`focus`,e=>h_(e,i),i)}),a}function x_(e){return e===`x`||e===`y`?a_[e]?null:(a_[e]=!0,()=>{a_[e]=!1}):a_.x||a_.y?null:(a_.x=a_.y=!0,()=>{a_.x=a_.y=!1})}function S_(e){return{point:{x:e.pageX,y:e.pageY}}}var C_=e=>t=>d_(t)&&e(t,S_(t));function w_(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}function T_(e,t,n,r){return w_(e,t,C_(n),r)}var E_=(e,t)=>Math.abs(e-t);function D_(e,t){let n=E_(e.x,t.x),r=E_(e.y,t.y);return Math.sqrt(n**2+r**2)}var O_=class{constructor(e,t,{transformPagePoint:n,contextWindow:r,dragSnapToOrigin:i=!1}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let e=j_(this.lastMoveEventInfo,this.history),t=this.startEvent!==null,n=D_(e.offset,{x:0,y:0})>=3;if(!t&&!n)return;let{point:r}=e,{timestamp:i}=zp;this.history.push({...r,timestamp:i});let{onStart:a,onMove:o}=this.handlers;t||(a&&a(this.lastMoveEvent,e),this.startEvent=this.lastMoveEvent),o&&o(this.lastMoveEvent,e)},this.handlePointerMove=(e,t)=>{this.lastMoveEvent=e,this.lastMoveEventInfo=k_(t,this.transformPagePoint),Lp.update(this.updatePoint,!0)},this.handlePointerUp=(e,t)=>{this.end();let{onEnd:n,onSessionEnd:r,resumeAnimation:i}=this.handlers;if(this.dragSnapToOrigin&&i&&i(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;let a=j_(e.type===`pointercancel`?this.lastMoveEventInfo:k_(t,this.transformPagePoint),this.history);this.startEvent&&n&&n(e,a),r&&r(e,a)},!d_(e))return;this.dragSnapToOrigin=i,this.handlers=t,this.transformPagePoint=n,this.contextWindow=r||window;let a=k_(S_(e),this.transformPagePoint),{point:o}=a,{timestamp:s}=zp;this.history=[{...o,timestamp:s}];let{onSessionStart:c}=t;c&&c(e,j_(a,this.history)),this.removeListeners=Ih(T_(this.contextWindow,`pointermove`,this.handlePointerMove),T_(this.contextWindow,`pointerup`,this.handlePointerUp),T_(this.contextWindow,`pointercancel`,this.handlePointerUp))}updateHandlers(e){this.handlers=e}end(){this.removeListeners&&this.removeListeners(),Rp(this.updatePoint)}};function k_(e,t){return t?{point:t(e.point)}:e}function A_(e,t){return{x:e.x-t.x,y:e.y-t.y}}function j_({point:e},t){return{point:e,delta:A_(e,M_(t)),offset:A_(e,pte(t)),velocity:mte(t,.1)}}function pte(e){return e[0]}function M_(e){return e[e.length-1]}function mte(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null,i=M_(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>yp(t)));)n--;if(!r)return{x:0,y:0};let a=bp(i.timestamp-r.timestamp);if(a===0)return{x:0,y:0};let o={x:(i.x-r.x)/a,y:(i.y-r.y)/a};return o.x===1/0&&(o.x=0),o.y===1/0&&(o.y=0),o}function N_(e){return e&&typeof e==`object`&&Object.prototype.hasOwnProperty.call(e,`current`)}var hte=.9999,gte=1.0001,_te=-.01,vte=.01;function P_(e){return e.max-e.min}function yte(e,t,n){return Math.abs(e-t)<=n}function F_(e,t,n,r=.5){e.origin=r,e.originPoint=Lh(t.min,t.max,e.origin),e.scale=P_(n)/P_(t),e.translate=Lh(n.min,n.max,e.origin)-e.originPoint,(e.scale>=hte&&e.scale<=gte||isNaN(e.scale))&&(e.scale=1),(e.translate>=_te&&e.translate<=vte||isNaN(e.translate))&&(e.translate=0)}function I_(e,t,n,r){F_(e.x,t.x,n.x,r?r.originX:void 0),F_(e.y,t.y,n.y,r?r.originY:void 0)}function L_(e,t,n){e.min=n.min+t.min,e.max=e.min+P_(t)}function bte(e,t,n){L_(e.x,t.x,n.x),L_(e.y,t.y,n.y)}function R_(e,t,n){e.min=t.min-n.min,e.max=e.min+P_(t)}function z_(e,t,n){R_(e.x,t.x,n.x),R_(e.y,t.y,n.y)}function xte(e,{min:t,max:n},r){return t!==void 0&&e<t?e=r?Lh(t,e,r.min):Math.max(e,t):n!==void 0&&e>n&&(e=r?Lh(n,e,r.max):Math.min(e,n)),e}function B_(e,t,n){return{min:t===void 0?void 0:e.min+t,max:n===void 0?void 0:e.max+n-(e.max-e.min)}}function Ste(e,{top:t,left:n,bottom:r,right:i}){return{x:B_(e.x,n,i),y:B_(e.y,t,r)}}function V_(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,r]=[r,n]),{min:n,max:r}}function Cte(e,t){return{x:V_(e.x,t.x),y:V_(e.y,t.y)}}function wte(e,t){let n=.5,r=P_(e),i=P_(t);return i>r?n=ph(t.min,t.max-r,e.min):r>i&&(n=ph(e.min,e.max-i,t.min)),im(0,1,n)}function Tte(e,t){let n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}var H_=.35;function Ete(e=H_){return e===!1?e=0:e===!0&&(e=H_),{x:U_(e,`left`,`right`),y:U_(e,`top`,`bottom`)}}function U_(e,t,n){return{min:W_(e,t),max:W_(e,n)}}function W_(e,t){return typeof e==`number`?e:e[t]||0}var G_=()=>({translate:0,scale:1,origin:0,originPoint:0}),K_=()=>({x:G_(),y:G_()}),q_=()=>({min:0,max:0}),J_=()=>({x:q_(),y:q_()});function Y_(e){return[e(`x`),e(`y`)]}function X_({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function Dte({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function Ote(e,t){if(!t)return e;let n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function Z_(e){return e===void 0||e===1}function Q_({scale:e,scaleX:t,scaleY:n}){return!Z_(e)||!Z_(t)||!Z_(n)}function $_(e){return Q_(e)||ev(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function ev(e){return tv(e.x)||tv(e.y)}function tv(e){return e&&e!==`0%`}function nv(e,t,n){return n+t*(e-n)}function rv(e,t,n,r,i){return i!==void 0&&(e=nv(e,i,r)),nv(e,n,r)+t}function iv(e,t=0,n=1,r,i){e.min=rv(e.min,t,n,r,i),e.max=rv(e.max,t,n,r,i)}function av(e,{x:t,y:n}){iv(e.x,t.translate,t.scale,t.originPoint),iv(e.y,n.translate,n.scale,n.originPoint)}var ov=.999999999999,sv=1.0000000000001;function kte(e,t,n,r=!1){let i=n.length;if(!i)return;t.x=t.y=1;let a,o;for(let s=0;s<i;s++){a=n[s],o=a.projectionDelta;let{visualElement:i}=a.options;i&&i.props.style&&i.props.style.display===`contents`||(r&&a.options.layoutScroll&&a.scroll&&a!==a.root&&uv(e,{x:-a.scroll.offset.x,y:-a.scroll.offset.y}),o&&(t.x*=o.x.scale,t.y*=o.y.scale,av(e,o)),r&&$_(a.latestValues)&&uv(e,a.latestValues))}t.x<sv&&t.x>ov&&(t.x=1),t.y<sv&&t.y>ov&&(t.y=1)}function cv(e,t){e.min+=t,e.max+=t}function lv(e,t,n,r,i=.5){iv(e,t,n,Lh(e.min,e.max,i),r)}function uv(e,t){lv(e.x,t.x,t.scaleX,t.scale,t.originX),lv(e.y,t.y,t.scaleY,t.scale,t.originY)}function dv(e,t){return X_(Ote(e.getBoundingClientRect(),t))}function Ate(e,t,n){let r=dv(e,n),{scroll:i}=t;return i&&(cv(r.x,i.offset.x),cv(r.y,i.offset.y)),r}var fv=({current:e})=>e?e.ownerDocument.defaultView:null,jte=new WeakMap,Mte=class{constructor(e){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=J_(),this.visualElement=e}start(e,{snapToCursor:t=!1}={}){let{presenceContext:n}=this.visualElement;if(n&&n.isPresent===!1)return;let r=e=>{let{dragSnapToOrigin:n}=this.getProps();n?this.pauseAnimation():this.stopAnimation(),t&&this.snapToCursor(S_(e).point)},i=(e,t)=>{let{drag:n,dragPropagation:r,onDragStart:i}=this.getProps();if(n&&!r&&(this.openDragLock&&this.openDragLock(),this.openDragLock=x_(n),!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),Y_(e=>{let t=this.getAxisMotionValue(e).get()||0;if(um.test(t)){let{projection:n}=this.visualElement;if(n&&n.layout){let r=n.layout.layoutBox[e];r&&(t=P_(r)*(parseFloat(t)/100))}}this.originPoint[e]=t}),i&&Lp.postRender(()=>i(e,t)),zg(this.visualElement,`transform`);let{animationState:a}=this.visualElement;a&&a.setActive(`whileDrag`,!0)},a=(e,t)=>{let{dragPropagation:n,dragDirectionLock:r,onDirectionLock:i,onDrag:a}=this.getProps();if(!n&&!this.openDragLock)return;let{offset:o}=t;r&&this.currentDirection===null?(this.currentDirection=Nte(o),this.currentDirection!==null&&i&&i(this.currentDirection)):(this.updateAxis(`x`,t.point,o),this.updateAxis(`y`,t.point,o),this.visualElement.render(),a&&a(e,t))},o=(e,t)=>this.stop(e,t),s=()=>Y_(e=>this.getAnimationState(e)===`paused`&&this.getAxisMotionValue(e).animation?.play()),{dragSnapToOrigin:c}=this.getProps();this.panSession=new O_(e,{onSessionStart:r,onStart:i,onMove:a,onSessionEnd:o,resumeAnimation:s},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:c,contextWindow:fv(this.visualElement)})}stop(e,t){let n=this.isDragging;if(this.cancel(),!n)return;let{velocity:r}=t;this.startAnimation(r);let{onDragEnd:i}=this.getProps();i&&Lp.postRender(()=>i(e,t))}cancel(){this.isDragging=!1;let{projection:e,animationState:t}=this.visualElement;e&&(e.isAnimationBlocked=!1),this.panSession&&this.panSession.end(),this.panSession=void 0;let{dragPropagation:n}=this.getProps();!n&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),t&&t.setActive(`whileDrag`,!1)}updateAxis(e,t,n){let{drag:r}=this.getProps();if(!n||!pv(e,r,this.currentDirection))return;let i=this.getAxisMotionValue(e),a=this.originPoint[e]+n[e];this.constraints&&this.constraints[e]&&(a=xte(a,this.constraints[e],this.elastic[e])),i.set(a)}resolveConstraints(){let{dragConstraints:e,dragElastic:t}=this.getProps(),n=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):this.visualElement.projection?.layout,r=this.constraints;e&&N_(e)?this.constraints||=this.resolveRefConstraints():this.constraints=e&&n?Ste(n.layoutBox,e):!1,this.elastic=Ete(t),r!==this.constraints&&n&&this.constraints&&!this.hasMutatedConstraints&&Y_(e=>{this.constraints!==!1&&this.getAxisMotionValue(e)&&(this.constraints[e]=Tte(n.layoutBox[e],this.constraints[e]))})}resolveRefConstraints(){let{dragConstraints:e,onMeasureDragConstraints:t}=this.getProps();if(!e||!N_(e))return!1;let n=e.current;Np(n!==null,"If `dragConstraints` is set as a React ref, that ref must be passed to another component's `ref` prop.");let{projection:r}=this.visualElement;if(!r||!r.layout)return!1;let i=Ate(n,r.root,this.visualElement.getTransformPagePoint()),a=Cte(r.layout.layoutBox,i);if(t){let e=t(Dte(a));this.hasMutatedConstraints=!!e,e&&(a=X_(e))}return a}startAnimation(e){let{drag:t,dragMomentum:n,dragElastic:r,dragTransition:i,dragSnapToOrigin:a,onDragTransitionEnd:o}=this.getProps(),s=this.constraints||{},c=Y_(o=>{if(!pv(o,t,this.currentDirection))return;let c=s&&s[o]||{};a&&(c={min:0,max:0});let l=r?200:1e6,u=r?40:1e7,d={type:`inertia`,velocity:n?e[o]:0,bounceStiffness:l,bounceDamping:u,timeConstant:750,restDelta:1,restSpeed:10,...i,...c};return this.startAxisValueAnimation(o,d)});return Promise.all(c).then(o)}startAxisValueAnimation(e,t){let n=this.getAxisMotionValue(e);return zg(this.visualElement,e),n.start(xg(e,n,0,t,this.visualElement,!1))}stopAnimation(){Y_(e=>this.getAxisMotionValue(e).stop())}pauseAnimation(){Y_(e=>this.getAxisMotionValue(e).animation?.pause())}getAnimationState(e){return this.getAxisMotionValue(e).animation?.state}getAxisMotionValue(e){let t=`_drag${e.toUpperCase()}`,n=this.visualElement.getProps();return n[t]||this.visualElement.getValue(e,(n.initial?n.initial[e]:void 0)||0)}snapToCursor(e){Y_(t=>{let{drag:n}=this.getProps();if(!pv(t,n,this.currentDirection))return;let{projection:r}=this.visualElement,i=this.getAxisMotionValue(t);if(r&&r.layout){let{min:n,max:a}=r.layout.layoutBox[t];i.set(e[t]-Lh(n,a,.5))}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;let{drag:e,dragConstraints:t}=this.getProps(),{projection:n}=this.visualElement;if(!N_(t)||!n||!this.constraints)return;this.stopAnimation();let r={x:0,y:0};Y_(e=>{let t=this.getAxisMotionValue(e);if(t&&this.constraints!==!1){let n=t.get();r[e]=wte({min:n,max:n},this.constraints[e])}});let{transformTemplate:i}=this.visualElement.getProps();this.visualElement.current.style.transform=i?i({},``):`none`,n.root&&n.root.updateScroll(),n.updateLayout(),this.resolveConstraints(),Y_(t=>{if(!pv(t,e,null))return;let n=this.getAxisMotionValue(t),{min:i,max:a}=this.constraints[t];n.set(Lh(i,a,r[t]))})}addListeners(){if(!this.visualElement.current)return;jte.set(this.visualElement,this);let e=this.visualElement.current,t=T_(e,`pointerdown`,e=>{let{drag:t,dragListener:n=!0}=this.getProps();t&&n&&this.start(e)}),n=()=>{let{dragConstraints:e}=this.getProps();N_(e)&&e.current&&(this.constraints=this.resolveRefConstraints())},{projection:r}=this.visualElement,i=r.addEventListener(`measure`,n);r&&!r.layout&&(r.root&&r.root.updateScroll(),r.updateLayout()),Lp.read(n);let a=w_(window,`resize`,()=>this.scalePositionWithinConstraints()),o=r.addEventListener(`didUpdate`,(({delta:e,hasLayoutChanged:t})=>{this.isDragging&&t&&(Y_(t=>{let n=this.getAxisMotionValue(t);n&&(this.originPoint[t]+=e[t].translate,n.set(n.get()+e[t].translate))}),this.visualElement.render())}));return()=>{a(),t(),i(),o&&o()}}getProps(){let e=this.visualElement.getProps(),{drag:t=!1,dragDirectionLock:n=!1,dragPropagation:r=!1,dragConstraints:i=!1,dragElastic:a=H_,dragMomentum:o=!0}=e;return{...e,drag:t,dragDirectionLock:n,dragPropagation:r,dragConstraints:i,dragElastic:a,dragMomentum:o}}};function pv(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function Nte(e,t=10){let n=null;return Math.abs(e.y)>t?n=`y`:Math.abs(e.x)>t&&(n=`x`),n}var Pte=class extends t_{constructor(e){super(e),this.removeGroupControls=jp,this.removeListeners=jp,this.controls=new Mte(e)}mount(){let{dragControls:e}=this.node.getProps();e&&(this.removeGroupControls=e.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||jp}unmount(){this.removeGroupControls(),this.removeListeners()}},mv=e=>(t,n)=>{e&&Lp.postRender(()=>e(t,n))},Fte=class extends t_{constructor(){super(...arguments),this.removePointerDownListener=jp}onPointerDown(e){this.session=new O_(e,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:fv(this.node)})}createPanHandlers(){let{onPanSessionStart:e,onPanStart:t,onPan:n,onPanEnd:r}=this.node.getProps();return{onSessionStart:mv(e),onStart:mv(t),onMove:n,onEnd:(e,t)=>{delete this.session,r&&Lp.postRender(()=>r(e,t))}}}mount(){this.removePointerDownListener=T_(this.node.current,`pointerdown`,e=>this.onPointerDown(e))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}},hv=(0,y.createContext)(null);function Ite(){let e=(0,y.useContext)(hv);if(e===null)return[!0,null];let{isPresent:t,onExitComplete:n,register:r}=e,i=(0,y.useId)();(0,y.useEffect)(()=>r(i),[]);let a=(0,y.useCallback)(()=>n&&n(i),[i,n]);return!t&&n?[!1,a]:[!0]}var gv=(0,y.createContext)({}),_v=(0,y.createContext)({}),vv={hasAnimatedSinceResize:!0,hasEverUpdated:!1};function yv(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}var bv={correct:(e,t)=>{if(!t.target)return e;if(typeof e==`string`){if(dm.test(e))e=parseFloat(e);else return e}return`${yv(e,t.target.x)}% ${yv(e,t.target.y)}%`}},Lte={correct:(e,{treeScale:t,projectionDelta:n})=>{let r=e,i=Km.parse(e);if(i.length>5)return r;let a=Km.createTransformer(e),o=typeof i[0]==`number`?0:1,s=n.x.scale*t.x,c=n.y.scale*t.y;i[0+o]/=s,i[1+o]/=c;let l=Lh(s,c,.5);return typeof i[2+o]==`number`&&(i[2+o]/=l),typeof i[3+o]==`number`&&(i[3+o]/=l),a(i)}},xv={};function Rte(e){Object.assign(xv,e)}var{schedule:Sv,cancel:zte}=Ip(queueMicrotask,!1),Bte=class extends y.Component{componentDidMount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:n,layoutId:r}=this.props,{projection:i}=e;Rte(Vte),i&&(t.group&&t.group.add(i),n&&n.register&&r&&n.register(i),i.root.didUpdate(),i.addEventListener(`animationComplete`,()=>{this.safeToRemove()}),i.setOptions({...i.options,onExitComplete:()=>this.safeToRemove()})),vv.hasEverUpdated=!0}getSnapshotBeforeUpdate(e){let{layoutDependency:t,visualElement:n,drag:r,isPresent:i}=this.props,a=n.projection;return a&&(a.isPresent=i,r||e.layoutDependency!==t||t===void 0?a.willUpdate():this.safeToRemove(),e.isPresent!==i&&(i?a.promote():a.relegate()||Lp.postRender(()=>{let e=a.getStack();e&&e.members.length||this.safeToRemove()}))),null}componentDidUpdate(){let{projection:e}=this.props.visualElement;e&&(e.root.didUpdate(),Sv.postRender(()=>{!e.currentAnimation&&e.isLead()&&this.safeToRemove()}))}componentWillUnmount(){let{visualElement:e,layoutGroup:t,switchLayoutGroup:n}=this.props,{projection:r}=e;r&&(r.scheduleCheckAfterUnmount(),t&&t.group&&t.group.remove(r),n&&n.deregister&&n.deregister(r))}safeToRemove(){let{safeToRemove:e}=this.props;e&&e()}render(){return null}};function Cv(e){let[t,n]=Ite(),r=(0,y.useContext)(gv);return(0,z.jsx)(Bte,{...e,layoutGroup:r,switchLayoutGroup:(0,y.useContext)(_v),isPresent:t,safeToRemove:n})}var Vte={borderRadius:{...bv,applyTo:[`borderTopLeftRadius`,`borderTopRightRadius`,`borderBottomLeftRadius`,`borderBottomRightRadius`]},borderTopLeftRadius:bv,borderTopRightRadius:bv,borderBottomLeftRadius:bv,borderBottomRightRadius:bv,boxShadow:Lte},wv=[`TopLeft`,`TopRight`,`BottomLeft`,`BottomRight`],Hte=wv.length,Tv=e=>typeof e==`string`?parseFloat(e):e,Ev=e=>typeof e==`number`||dm.test(e);function Ute(e,t,n,r,i,a){i?(e.opacity=Lh(0,n.opacity===void 0?1:n.opacity,Wte(r)),e.opacityExit=Lh(t.opacity===void 0?1:t.opacity,0,Gte(r))):a&&(e.opacity=Lh(t.opacity===void 0?1:t.opacity,n.opacity===void 0?1:n.opacity,r));for(let i=0;i<Hte;i++){let a=`border${wv[i]}Radius`,o=Dv(t,a),s=Dv(n,a);(o!==void 0||s!==void 0)&&(o||=0,s||=0,o===0||s===0||Ev(o)===Ev(s)?(e[a]=Math.max(Lh(Tv(o),Tv(s),r),0),(um.test(s)||um.test(o))&&(e[a]+=`%`)):e[a]=s)}(t.rotate||n.rotate)&&(e.rotate=Lh(t.rotate||0,n.rotate||0,r))}function Dv(e,t){return e[t]===void 0?e.borderRadius:e[t]}var Wte=Ov(0,.5,Xp),Gte=Ov(.5,.95,jp);function Ov(e,t,n){return r=>r<e?0:r>t?1:n(ph(e,t,r))}function kv(e,t){e.min=t.min,e.max=t.max}function Av(e,t){kv(e.x,t.x),kv(e.y,t.y)}function jv(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}function Mv(e,t,n,r,i){return e-=t,e=nv(e,1/n,r),i!==void 0&&(e=nv(e,1/i,r)),e}function Kte(e,t=0,n=1,r=.5,i,a=e,o=e){if(um.test(t)&&(t=parseFloat(t),t=Lh(o.min,o.max,t/100)-o.min),typeof t!=`number`)return;let s=Lh(a.min,a.max,r);e===a&&(s-=t),e.min=Mv(e.min,t,n,s,i),e.max=Mv(e.max,t,n,s,i)}function Nv(e,t,[n,r,i],a,o){Kte(e,t[n],t[r],t[i],t.scale,a,o)}var qte=[`x`,`scaleX`,`originX`],Jte=[`y`,`scaleY`,`originY`];function Pv(e,t,n,r){Nv(e.x,t,qte,n?n.x:void 0,r?r.x:void 0),Nv(e.y,t,Jte,n?n.y:void 0,r?r.y:void 0)}function Fv(e){return e.translate===0&&e.scale===1}function Iv(e){return Fv(e.x)&&Fv(e.y)}function Lv(e,t){return e.min===t.min&&e.max===t.max}function Yte(e,t){return Lv(e.x,t.x)&&Lv(e.y,t.y)}function Rv(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function zv(e,t){return Rv(e.x,t.x)&&Rv(e.y,t.y)}function Bv(e){return P_(e.x)/P_(e.y)}function Vv(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}var Xte=class{constructor(){this.members=[]}add(e){wg(this.members,e),e.scheduleRender()}remove(e){if(Tg(this.members,e),e===this.prevLead&&(this.prevLead=void 0),e===this.lead){let e=this.members[this.members.length-1];e&&this.promote(e)}}relegate(e){let t=this.members.findIndex(t=>e===t);if(t===0)return!1;let n;for(let e=t;e>=0;e--){let t=this.members[e];if(t.isPresent!==!1){n=t;break}}return n?(this.promote(n),!0):!1}promote(e,t){let n=this.lead;if(e!==n&&(this.prevLead=n,this.lead=e,e.show(),n)){n.instance&&n.scheduleRender(),e.scheduleRender(),e.resumeFrom=n,t&&(e.resumeFrom.preserveOpacity=!0),n.snapshot&&(e.snapshot=n.snapshot,e.snapshot.latestValues=n.animationValues||n.latestValues),e.root&&e.root.isUpdating&&(e.isLayoutDirty=!0);let{crossfade:r}=e.options;r===!1&&n.hide()}}exitAnimationComplete(){this.members.forEach(e=>{let{options:t,resumingFrom:n}=e;t.onExitComplete&&t.onExitComplete(),n&&n.options.onExitComplete&&n.options.onExitComplete()})}scheduleRender(){this.members.forEach(e=>{e.instance&&e.scheduleRender(!1)})}removeLeadSnapshot(){this.lead&&this.lead.snapshot&&(this.lead.snapshot=void 0)}};function Zte(e,t,n){let r=``,i=e.x.translate/t.x,a=e.y.translate/t.y,o=n?.z||0;if((i||a||o)&&(r=`translate3d(${i}px, ${a}px, ${o}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){let{transformPerspective:e,rotate:t,rotateX:i,rotateY:a,skewX:o,skewY:s}=n;e&&(r=`perspective(${e}px) ${r}`),t&&(r+=`rotate(${t}deg) `),i&&(r+=`rotateX(${i}deg) `),a&&(r+=`rotateY(${a}deg) `),o&&(r+=`skewX(${o}deg) `),s&&(r+=`skewY(${s}deg) `)}let s=e.x.scale*t.x,c=e.y.scale*t.y;return(s!==1||c!==1)&&(r+=`scale(${s}, ${c})`),r||`none`}var Qte=(e,t)=>e.depth-t.depth,$te=class{constructor(){this.children=[],this.isDirty=!1}add(e){wg(this.children,e),this.isDirty=!0}remove(e){Tg(this.children,e),this.isDirty=!0}forEach(e){this.isDirty&&this.children.sort(Qte),this.isDirty=!1,this.children.forEach(e)}};function Hv(e){let t=Lg(e)?e.get():e;return Sg(t)?t.toValue():t}function ene(e,t){let n=sh.now(),r=({timestamp:i})=>{let a=i-n;a>=t&&(Rp(r),e(a-t))};return Lp.read(r,!0),()=>Rp(r)}function tne(e){return e instanceof SVGElement&&e.tagName!==`svg`}function nne(e,t,n){let r=Lg(e)?e:jg(e);return r.start(xg(``,r,t,n)),r.animation}var Uv={type:`projectionFrame`,totalNodes:0,resolvedTargetDeltas:0,recalculatedProjection:0},Wv=typeof window<`u`&&window.MotionDebug!==void 0,Gv=[``,`X`,`Y`,`Z`],Kv={visibility:`hidden`},qv=1e3,Jv=0;function Yv(e,t,n,r){let{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function Xv(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;let{visualElement:t}=e.options;if(!t)return;let n=Ig(t);if(window.MotionHasOptimisedAnimation(n,`transform`)){let{layout:t,layoutId:r}=e.options;window.MotionCancelOptimisedAnimation(n,`transform`,Lp,!(t||r))}let{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&Xv(r)}function Zv({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(e={},n=t?.()){this.id=Jv++,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,Wv&&(Uv.totalNodes=Uv.resolvedTargetDeltas=Uv.recalculatedProjection=0),this.nodes.forEach(ey),this.nodes.forEach(sy),this.nodes.forEach(cy),this.nodes.forEach(ty),Wv&&window.MotionDebug.record(Uv)},this.resolvedRelativeTargetAt=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=e,this.root=n?n.root||n:this,this.path=n?[...n.path,n]:[],this.parent=n,this.depth=n?n.depth+1:0;for(let e=0;e<this.path.length;e++)this.path[e].shouldResetTransform=!0;this.root===this&&(this.nodes=new $te)}addEventListener(e,t){return this.eventHandlers.has(e)||this.eventHandlers.set(e,new Eg),this.eventHandlers.get(e).add(t)}notifyListeners(e,...t){let n=this.eventHandlers.get(e);n&&n.notify(...t)}hasListeners(e){return this.eventHandlers.has(e)}mount(t,n=this.root.hasTreeAnimated){if(this.instance)return;this.isSVG=tne(t),this.instance=t;let{layoutId:r,layout:i,visualElement:a}=this.options;if(a&&!a.current&&a.mount(t),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),n&&(i||r)&&(this.isLayoutDirty=!0),e){let n,r=()=>this.root.updateBlockedByResize=!1;e(t,()=>{this.root.updateBlockedByResize=!0,n&&n(),n=ene(r,250),vv.hasAnimatedSinceResize&&(vv.hasAnimatedSinceResize=!1,this.nodes.forEach(oy))})}r&&this.root.registerSharedNode(r,this),this.options.animate!==!1&&a&&(r||i)&&this.addEventListener(`didUpdate`,({delta:e,hasLayoutChanged:t,hasRelativeTargetChanged:n,layout:r})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}let i=this.options.transition||a.getDefaultTransition()||hy,{onLayoutAnimationStart:o,onLayoutAnimationComplete:s}=a.getProps(),c=!this.targetLayout||!zv(this.targetLayout,r)||n,l=!t&&n;if(this.options.layoutRoot||this.resumeFrom&&this.resumeFrom.instance||l||t&&(c||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0),this.setAnimationOrigin(e,l);let t={...Ep(i,`layout`),onPlay:o,onComplete:s};(a.shouldReduceMotion||this.options.layoutRoot)&&(t.delay=0,t.type=!1),this.startAnimation(t)}else t||oy(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=r})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);let e=this.getStack();e&&e.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,Rp(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(ly),this.animationId++)}getTransformTemplate(){let{visualElement:e}=this.options;return e&&e.getProps().transformTemplate}willUpdate(e=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&Xv(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let e=0;e<this.path.length;e++){let t=this.path[e];t.shouldResetTransform=!0,t.updateScroll(`snapshot`),t.options.layoutRoot&&t.willUpdate(!1)}let{layoutId:t,layout:n}=this.options;if(t===void 0&&!n)return;let r=this.getTransformTemplate();this.prevTransformTemplateValue=r?r(this.latestValues,``):void 0,this.updateSnapshot(),e&&this.notifyListeners(`willUpdate`)}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){this.unblockUpdate(),this.clearAllSnapshots(),this.nodes.forEach(ry);return}this.isUpdating||this.nodes.forEach(iy),this.isUpdating=!1,this.nodes.forEach(ay),this.nodes.forEach(Qv),this.nodes.forEach($v),this.clearAllSnapshots();let e=sh.now();zp.delta=im(0,1e3/60,e-zp.timestamp),zp.timestamp=e,zp.isProcessing=!0,Bp.update.process(zp),Bp.preRender.process(zp),Bp.render.process(zp),zp.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,Sv.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(ny),this.sharedNodes.forEach(uy)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,Lp.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){Lp.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 e=0;e<this.path.length;e++)this.path[e].updateScroll();let e=this.layout;this.layout=this.measure(!1),this.layoutCorrected=J_(),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners(`measure`,this.layout.layoutBox);let{visualElement:t}=this.options;t&&t.notify(`LayoutMeasure`,this.layout.layoutBox,e?e.layoutBox:void 0)}updateScroll(e=`measure`){let t=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===e&&(t=!1),t){let t=r(this.instance);this.scroll={animationId:this.root.animationId,phase:e,isRoot:t,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:t}}}resetTransform(){if(!i)return;let e=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,t=this.projectionDelta&&!Iv(this.projectionDelta),n=this.getTransformTemplate(),r=n?n(this.latestValues,``):void 0,a=r!==this.prevTransformTemplateValue;e&&(t||$_(this.latestValues)||a)&&(i(this.instance,r),this.shouldResetTransform=!1,this.scheduleRender())}measure(e=!0){let t=this.measurePageBox(),n=this.removeElementScroll(t);return e&&(n=this.removeTransform(n)),yy(n),{animationId:this.root.animationId,measuredBox:t,layoutBox:n,latestValues:{},source:this.id}}measurePageBox(){let{visualElement:e}=this.options;if(!e)return J_();let t=e.measureViewportBox();if(!(this.scroll?.wasRoot||this.path.some(xy))){let{scroll:e}=this.root;e&&(cv(t.x,e.offset.x),cv(t.y,e.offset.y))}return t}removeElementScroll(e){let t=J_();if(Av(t,e),this.scroll?.wasRoot)return t;for(let n=0;n<this.path.length;n++){let r=this.path[n],{scroll:i,options:a}=r;r!==this.root&&i&&a.layoutScroll&&(i.wasRoot&&Av(t,e),cv(t.x,i.offset.x),cv(t.y,i.offset.y))}return t}applyTransform(e,t=!1){let n=J_();Av(n,e);for(let e=0;e<this.path.length;e++){let r=this.path[e];!t&&r.options.layoutScroll&&r.scroll&&r!==r.root&&uv(n,{x:-r.scroll.offset.x,y:-r.scroll.offset.y}),$_(r.latestValues)&&uv(n,r.latestValues)}return $_(this.latestValues)&&uv(n,this.latestValues),n}removeTransform(e){let t=J_();Av(t,e);for(let e=0;e<this.path.length;e++){let n=this.path[e];if(!n.instance||!$_(n.latestValues))continue;Q_(n.latestValues)&&n.updateSnapshot();let r=J_();Av(r,n.measurePageBox()),Pv(t,n.latestValues,n.snapshot?n.snapshot.layoutBox:void 0,r)}return $_(this.latestValues)&&Pv(t,this.latestValues),t}setTargetDelta(e){this.targetDelta=e,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(e){this.options={...this.options,...e,crossfade:e.crossfade===void 0||e.crossfade}}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!==zp.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(e=!1){let t=this.getLead();this.isProjectionDirty||=t.isProjectionDirty,this.isTransformDirty||=t.isTransformDirty,this.isSharedProjectionDirty||=t.isSharedProjectionDirty;let n=!!this.resumingFrom||this!==t;if(!(e||n&&this.isSharedProjectionDirty||this.isProjectionDirty||this.parent?.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;let{layout:r,layoutId:i}=this.options;if(this.layout&&(r||i)){if(this.resolvedRelativeTargetAt=zp.timestamp,!this.targetDelta&&!this.relativeTarget){let e=this.getClosestProjectingParent();e&&e.layout&&this.animationProgress!==1?(this.relativeParent=e,this.forceRelativeParentToResolveTarget(),this.relativeTarget=J_(),this.relativeTargetOrigin=J_(),z_(this.relativeTargetOrigin,this.layout.layoutBox,e.layout.layoutBox),Av(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}if(this.relativeTarget||this.targetDelta){if(this.target||(this.target=J_(),this.targetWithTransforms=J_()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),bte(this.target,this.relativeTarget,this.relativeParent.target)):this.targetDelta?(this.resumingFrom?this.target=this.applyTransform(this.layout.layoutBox):Av(this.target,this.layout.layoutBox),av(this.target,this.targetDelta)):Av(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget){this.attemptToResolveRelativeTarget=!1;let e=this.getClosestProjectingParent();e&&!!e.resumingFrom==!!this.resumingFrom&&!e.options.layoutScroll&&e.target&&this.animationProgress!==1?(this.relativeParent=e,this.forceRelativeParentToResolveTarget(),this.relativeTarget=J_(),this.relativeTargetOrigin=J_(),z_(this.relativeTargetOrigin,this.target,e.target),Av(this.relativeTarget,this.relativeTargetOrigin)):this.relativeParent=this.relativeTarget=void 0}Wv&&Uv.resolvedTargetDeltas++}}}getClosestProjectingParent(){if(!(!this.parent||Q_(this.parent.latestValues)||ev(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}calcProjection(){let e=this.getLead(),t=!!this.resumingFrom||this!==e,n=!0;if((this.isProjectionDirty||this.parent?.isProjectionDirty)&&(n=!1),t&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(n=!1),this.resolvedRelativeTargetAt===zp.timestamp&&(n=!1),n)return;let{layout:r,layoutId:i}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(r||i))return;Av(this.layoutCorrected,this.layout.layoutBox);let a=this.treeScale.x,o=this.treeScale.y;kte(this.layoutCorrected,this.treeScale,this.path,t),e.layout&&!e.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(e.target=e.layout.layoutBox,e.targetWithTransforms=J_());let{target:s}=e;s?(!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(jv(this.prevProjectionDelta.x,this.projectionDelta.x),jv(this.prevProjectionDelta.y,this.projectionDelta.y)),I_(this.projectionDelta,this.layoutCorrected,s,this.latestValues),this.treeScale.x===a&&this.treeScale.y===o&&Vv(this.projectionDelta.x,this.prevProjectionDelta.x)&&Vv(this.projectionDelta.y,this.prevProjectionDelta.y)||(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners(`projectionUpdate`,s)),Wv&&Uv.recalculatedProjection++):this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender())}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(e=!0){var t;if((t=this.options.visualElement)==null||t.scheduleRender(),e){let e=this.getStack();e&&e.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=K_(),this.projectionDelta=K_(),this.projectionDeltaWithTransform=K_()}setAnimationOrigin(e,t=!1){let n=this.snapshot,r=n?n.latestValues:{},i={...this.latestValues},a=K_();this.relativeParent&&this.relativeParent.options.layoutRoot||(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!t;let o=J_(),s=(n?n.source:void 0)!==(this.layout?this.layout.source:void 0),c=this.getStack(),l=!c||c.members.length<=1,u=!(!s||l||this.options.crossfade!==!0||this.path.some(my));this.animationProgress=0;let d;this.mixTargetDelta=t=>{let n=t/1e3;dy(a.x,e.x,n),dy(a.y,e.y,n),this.setTargetDelta(a),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(z_(o,this.layout.layoutBox,this.relativeParent.layout.layoutBox),py(this.relativeTarget,this.relativeTargetOrigin,o,n),d&&Yte(this.relativeTarget,d)&&(this.isProjectionDirty=!1),d||=J_(),Av(d,this.relativeTarget)),s&&(this.animationValues=i,Ute(i,r,this.latestValues,n,u,l)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=n},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(e){this.notifyListeners(`animationStart`),this.currentAnimation&&this.currentAnimation.stop(),this.resumingFrom&&this.resumingFrom.currentAnimation&&this.resumingFrom.currentAnimation.stop(),this.pendingAnimation&&=(Rp(this.pendingAnimation),void 0),this.pendingAnimation=Lp.update(()=>{vv.hasAnimatedSinceResize=!0,this.currentAnimation=nne(0,qv,{...e,onUpdate:t=>{this.mixTargetDelta(t),e.onUpdate&&e.onUpdate(t)},onComplete:()=>{e.onComplete&&e.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);let e=this.getStack();e&&e.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners(`animationComplete`)}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(qv),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){let e=this.getLead(),{targetWithTransforms:t,target:n,layout:r,latestValues:i}=e;if(t&&n&&r){if(this!==e&&this.layout&&r&&by(this.options.animationType,this.layout.layoutBox,r.layoutBox)){n=this.target||J_();let t=P_(this.layout.layoutBox.x);n.x.min=e.target.x.min,n.x.max=n.x.min+t;let r=P_(this.layout.layoutBox.y);n.y.min=e.target.y.min,n.y.max=n.y.min+r}Av(t,n),uv(t,i),I_(this.projectionDeltaWithTransform,this.layoutCorrected,t,i)}}registerSharedNode(e,t){this.sharedNodes.has(e)||this.sharedNodes.set(e,new Xte),this.sharedNodes.get(e).add(t);let n=t.options.initialPromotionConfig;t.promote({transition:n?n.transition:void 0,preserveFollowOpacity:n&&n.shouldPreserveFollowOpacity?n.shouldPreserveFollowOpacity(t):void 0})}isLead(){let e=this.getStack();return!e||e.lead===this}getLead(){let{layoutId:e}=this.options;return e&&this.getStack()?.lead||this}getPrevLead(){let{layoutId:e}=this.options;return e?this.getStack()?.prevLead:void 0}getStack(){let{layoutId:e}=this.options;if(e)return this.root.sharedNodes.get(e)}promote({needsReset:e,transition:t,preserveFollowOpacity:n}={}){let r=this.getStack();r&&r.promote(this,n),e&&(this.projectionDelta=void 0,this.needsReset=!0),t&&this.setOptions({transition:t})}relegate(){let e=this.getStack();return e?e.relegate(this):!1}resetSkewAndRotation(){let{visualElement:e}=this.options;if(!e)return;let t=!1,{latestValues:n}=e;if((n.z||n.rotate||n.rotateX||n.rotateY||n.rotateZ||n.skewX||n.skewY)&&(t=!0),!t)return;let r={};n.z&&Yv(`z`,e,r,this.animationValues);for(let t=0;t<Gv.length;t++)Yv(`rotate${Gv[t]}`,e,r,this.animationValues),Yv(`skew${Gv[t]}`,e,r,this.animationValues);e.render();for(let t in r)e.setStaticValue(t,r[t]),this.animationValues&&(this.animationValues[t]=r[t]);e.scheduleRender()}getProjectionStyles(e){if(!this.instance||this.isSVG)return;if(!this.isVisible)return Kv;let t={visibility:``},n=this.getTransformTemplate();if(this.needsReset)return this.needsReset=!1,t.opacity=``,t.pointerEvents=Hv(e?.pointerEvents)||``,t.transform=n?n(this.latestValues,``):`none`,t;let r=this.getLead();if(!this.projectionDelta||!this.layout||!r.target){let t={};return this.options.layoutId&&(t.opacity=this.latestValues.opacity===void 0?1:this.latestValues.opacity,t.pointerEvents=Hv(e?.pointerEvents)||``),this.hasProjected&&!$_(this.latestValues)&&(t.transform=n?n({},``):`none`,this.hasProjected=!1),t}let i=r.animationValues||r.latestValues;this.applyTransformsToTarget(),t.transform=Zte(this.projectionDeltaWithTransform,this.treeScale,i),n&&(t.transform=n(i,t.transform));let{x:a,y:o}=this.projectionDelta;t.transformOrigin=`${a.origin*100}% ${o.origin*100}% 0`,t.opacity=r.animationValues?r===this?i.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:i.opacityExit:r===this?i.opacity===void 0?``:i.opacity:i.opacityExit===void 0?0:i.opacityExit;for(let e in xv){if(i[e]===void 0)continue;let{correct:n,applyTo:a}=xv[e],o=t.transform===`none`?i[e]:n(i[e],r);if(a){let e=a.length;for(let n=0;n<e;n++)t[a[n]]=o}else t[e]=o}return this.options.layoutId&&(t.pointerEvents=r===this?Hv(e?.pointerEvents)||``:`none`),t}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(e=>e.currentAnimation?.stop()),this.root.nodes.forEach(ry),this.root.sharedNodes.clear()}}}function Qv(e){e.updateLayout()}function $v(e){let t=e.resumeFrom?.snapshot||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners(`didUpdate`)){let{layoutBox:n,measuredBox:r}=e.layout,{animationType:i}=e.options,a=t.source!==e.layout.source;i===`size`?Y_(e=>{let r=a?t.measuredBox[e]:t.layoutBox[e],i=P_(r);r.min=n[e].min,r.max=r.min+i}):by(i,t.layoutBox,n)&&Y_(r=>{let i=a?t.measuredBox[r]:t.layoutBox[r],o=P_(n[r]);i.max=i.min+o,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[r].max=e.relativeTarget[r].min+o)});let o=K_();I_(o,n,t.layoutBox);let s=K_();a?I_(s,e.applyTransform(r,!0),t.measuredBox):I_(s,n,t.layoutBox);let c=!Iv(o),l=!1;if(!e.resumeFrom){let r=e.getClosestProjectingParent();if(r&&!r.resumeFrom){let{snapshot:i,layout:a}=r;if(i&&a){let o=J_();z_(o,t.layoutBox,i.layoutBox);let s=J_();z_(s,n,a.layoutBox),zv(o,s)||(l=!0),r.options.layoutRoot&&(e.relativeTarget=s,e.relativeTargetOrigin=o,e.relativeParent=r)}}}e.notifyListeners(`didUpdate`,{layout:n,snapshot:t,delta:s,layoutDelta:o,hasLayoutChanged:c,hasRelativeTargetChanged:l})}else if(e.isLead()){let{onExitComplete:t}=e.options;t&&t()}e.options.transition=void 0}function ey(e){Wv&&Uv.totalNodes++,e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty),e.isTransformDirty||=e.parent.isTransformDirty)}function ty(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function ny(e){e.clearSnapshot()}function ry(e){e.clearMeasurements()}function iy(e){e.isLayoutDirty=!1}function ay(e){let{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify(`BeforeLayoutMeasure`),e.resetTransform()}function oy(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function sy(e){e.resolveTargetDelta()}function cy(e){e.calcProjection()}function ly(e){e.resetSkewAndRotation()}function uy(e){e.removeLeadSnapshot()}function dy(e,t,n){e.translate=Lh(t.translate,0,n),e.scale=Lh(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function fy(e,t,n,r){e.min=Lh(t.min,n.min,r),e.max=Lh(t.max,n.max,r)}function py(e,t,n,r){fy(e.x,t.x,n.x,r),fy(e.y,t.y,n.y,r)}function my(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}var hy={duration:.45,ease:[.4,0,.1,1]},gy=e=>typeof navigator<`u`&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),_y=gy(`applewebkit/`)&&!gy(`chrome/`)?Math.round:jp;function vy(e){e.min=_y(e.min),e.max=_y(e.max)}function yy(e){vy(e.x),vy(e.y)}function by(e,t,n){return e===`position`||e===`preserve-aspect`&&!yte(Bv(t),Bv(n),.2)}function xy(e){return e!==e.root&&e.scroll?.wasRoot}var Sy=Zv({attachResizeListener:(e,t)=>w_(e,`resize`,t),measureScroll:()=>({x:document.documentElement.scrollLeft||document.body.scrollLeft,y:document.documentElement.scrollTop||document.body.scrollTop}),checkIsScrollRoot:()=>!0}),Cy={current:void 0},wy=Zv({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!Cy.current){let e=new Sy({});e.mount(window),e.setOptions({layoutScroll:!0}),Cy.current=e}return Cy.current},resetTransform:(e,t)=>{e.style.transform=t===void 0?`none`:t},checkIsScrollRoot:e=>window.getComputedStyle(e).position===`fixed`}),Ty={pan:{Feature:Fte},drag:{Feature:Pte,ProjectionNode:wy,MeasureLayout:Cv}};function Ey(e,t,n){let{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive(`whileHover`,n===`Start`);let i=r[`onHover`+n];i&&Lp.postRender(()=>i(t,S_(t)))}var Dy=class extends t_{mount(){let{current:e}=this.node;e&&(this.unmount=u_(e,e=>(Ey(this.node,e,`Start`),e=>Ey(this.node,e,`End`))))}unmount(){}},Oy=class extends t_{constructor(){super(...arguments),this.isActive=!1}onFocus(){let e=!1;try{e=this.node.current.matches(`:focus-visible`)}catch{e=!0}e&&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=Ih(w_(this.node.current,`focus`,()=>this.onFocus()),w_(this.node.current,`blur`,()=>this.onBlur()))}unmount(){}};function ky(e,t,n){let{props:r}=e;e.animationState&&r.whileTap&&e.animationState.setActive(`whileTap`,n===`Start`);let i=r[`onTap`+(n===`End`?``:n)];i&&Lp.postRender(()=>i(t,S_(t)))}var Ay=class extends t_{mount(){let{current:e}=this.node;e&&(this.unmount=b_(e,e=>(ky(this.node,e,`Start`),(e,{success:t})=>ky(this.node,e,t?`End`:`Cancel`)),{useGlobalTarget:this.node.props.globalTapTarget}))}unmount(){}},jy=new WeakMap,My=new WeakMap,Ny=e=>{let t=jy.get(e.target);t&&t(e)},Py=e=>{e.forEach(Ny)};function Fy({root:e,...t}){let n=e||document;My.has(n)||My.set(n,{});let r=My.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(Py,{root:e,...t})),r[i]}function Iy(e,t,n){let r=Fy(t);return jy.set(e,n),r.observe(e),()=>{jy.delete(e),r.unobserve(e)}}var Ly={some:0,all:1},Ry=class extends t_{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){this.unmount();let{viewport:e={}}=this.node.getProps(),{root:t,margin:n,amount:r=`some`,once:i}=e,a={root:t?t.current:void 0,rootMargin:n,threshold:typeof r==`number`?r:Ly[r]};return Iy(this.node.current,a,e=>{let{isIntersecting:t}=e;if(this.isInView===t||(this.isInView=t,i&&!t&&this.hasEnteredView))return;t&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive(`whileInView`,t);let{onViewportEnter:n,onViewportLeave:r}=this.node.getProps(),a=t?n:r;a&&a(e)})}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>`u`)return;let{props:e,prevProps:t}=this.node;[`amount`,`margin`,`root`].some(zy(e,t))&&this.startObserver()}unmount(){}};function zy({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}var By={inView:{Feature:Ry},tap:{Feature:Ay},focus:{Feature:Oy},hover:{Feature:Dy}},Vy={layout:{ProjectionNode:wy,MeasureLayout:Cv}},Hy=(0,y.createContext)({transformPagePoint:e=>e,isStatic:!1,reducedMotion:`never`}),Uy=(0,y.createContext)({}),Wy=typeof window<`u`,Gy=Wy?y.useLayoutEffect:y.useEffect,Ky=(0,y.createContext)({strict:!1});function qy(e,t,n,r,i){let{visualElement:a}=(0,y.useContext)(Uy),o=(0,y.useContext)(Ky),s=(0,y.useContext)(hv),c=(0,y.useContext)(Hy).reducedMotion,l=(0,y.useRef)(null);r||=o.renderer,!l.current&&r&&(l.current=r(e,{visualState:t,parent:a,props:n,presenceContext:s,blockInitialAnimation:s?s.initial===!1:!1,reducedMotionConfig:c}));let u=l.current,d=(0,y.useContext)(_v);u&&!u.projection&&i&&(u.type===`html`||u.type===`svg`)&&Jy(l.current,n,i,d);let f=(0,y.useRef)(!1);(0,y.useInsertionEffect)(()=>{u&&f.current&&u.update(n,s)});let p=n[Fg],m=(0,y.useRef)(!!p&&!window.MotionHandoffIsComplete?.call(window,p)&&window.MotionHasOptimisedAnimation?.call(window,p));return Gy(()=>{u&&(f.current=!0,window.MotionIsMounted=!0,u.updateFeatures(),Sv.render(u.render),m.current&&u.animationState&&u.animationState.animateChanges())}),(0,y.useEffect)(()=>{u&&(!m.current&&u.animationState&&u.animationState.animateChanges(),m.current&&=(queueMicrotask(()=>{var e;(e=window.MotionHandoffMarkAsComplete)==null||e.call(window,p)}),!1))}),u}function Jy(e,t,n,r){let{layoutId:i,layout:a,drag:o,dragConstraints:s,layoutScroll:c,layoutRoot:l}=t;e.projection=new n(e.latestValues,t[`data-framer-portal-id`]?void 0:Yy(e.parent)),e.projection.setOptions({layoutId:i,layout:a,alwaysMeasureLayout:!!o||s&&N_(s),visualElement:e,animationType:typeof a==`string`?a:`both`,initialPromotionConfig:r,layoutScroll:c,layoutRoot:l})}function Yy(e){if(e)return e.options.allowProjection===!1?Yy(e.parent):e.projection}function Xy(e,t,n){return(0,y.useCallback)(r=>{r&&e.mount&&e.mount(r),t&&(r?t.mount(r):t.unmount()),n&&(typeof n==`function`?n(r):N_(n)&&(n.current=r))},[t])}function Zy(e){return cp(e.animate)||gp.some(t=>dp(e[t]))}function Qy(e){return!!(Zy(e)||e.variants)}function $y(e,t){if(Zy(e)){let{initial:t,animate:n}=e;return{initial:t===!1||dp(t)?t:void 0,animate:dp(n)?n:void 0}}return e.inherit===!1?{}:t}function eb(e){let{initial:t,animate:n}=$y(e,(0,y.useContext)(Uy));return(0,y.useMemo)(()=>({initial:t,animate:n}),[tb(t),tb(n)])}function tb(e){return Array.isArray(e)?e.join(` `):e}var nb={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`]},rb={};for(let e in nb)rb[e]={isEnabled:t=>nb[e].some(e=>!!t[e])};function ib(e){for(let t in e)rb[t]={...rb[t],...e[t]}}var ab=Symbol.for(`motionComponentSymbol`);function ob({preloadedFeatures:e,createVisualElement:t,useRender:n,useVisualState:r,Component:i}){e&&ib(e);function a(a,o){let s,c={...(0,y.useContext)(Hy),...a,layoutId:sb(a)},{isStatic:l}=c,u=eb(a),d=r(a,l);if(!l&&Wy){cb(c,e);let n=lb(c);s=n.MeasureLayout,u.visualElement=qy(i,d,c,t,n.ProjectionNode)}return(0,z.jsxs)(Uy.Provider,{value:u,children:[s&&u.visualElement?(0,z.jsx)(s,{visualElement:u.visualElement,...c}):null,n(i,a,Xy(d,u.visualElement,o),d,l,u.visualElement)]})}let o=(0,y.forwardRef)(a);return o[ab]=i,o}function sb({layoutId:e}){let t=(0,y.useContext)(gv).id;return t&&e!==void 0?t+`-`+e:e}function cb(e,t){(0,y.useContext)(Ky).strict}function lb(e){let{drag:t,layout:n}=rb;if(!t&&!n)return{};let r={...t,...n};return{MeasureLayout:t?.isEnabled(e)||n?.isEnabled(e)?r.MeasureLayout:void 0,ProjectionNode:r.ProjectionNode}}var ub=[`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 db(e){return typeof e!=`string`||e.includes(`-`)?!1:!!(ub.indexOf(e)>-1||/[A-Z]/u.test(e))}function fb(e,{style:t,vars:n},r,i){Object.assign(e.style,t,i&&i.getProjectionStyles(r));for(let t in n)e.style.setProperty(t,n[t])}var pb=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 mb(e,t,n,r){fb(e,t,void 0,r);for(let n in t.attrs)e.setAttribute(pb.has(n)?n:Pg(n),t.attrs[n])}function hb(e,{layout:t,layoutId:n}){return vp.has(e)||e.startsWith(`origin`)||(t||n!==void 0)&&(!!xv[e]||e===`opacity`)}function gb(e,t,n){let{style:r}=e,i={};for(let a in r)(Lg(r[a])||t.style&&Lg(t.style[a])||hb(a,e)||n?.getValue(a)?.liveStyle!==void 0)&&(i[a]=r[a]);return i}function _b(e,t,n){let r=gb(e,t,n);for(let n in e)if(Lg(e[n])||Lg(t[n])){let t=_p.indexOf(n)===-1?n:`attr`+n.charAt(0).toUpperCase()+n.substring(1);r[t]=e[n]}return r}function vb(e){let t=(0,y.useRef)(null);return t.current===null&&(t.current=e()),t.current}function yb({scrapeMotionValuesFromProps:e,createRenderState:t,onMount:n},r,i,a){let o={latestValues:xb(r,i,a,e),renderState:t()};return n&&(o.mount=e=>n(r,e,o)),o}var bb=e=>(t,n)=>{let r=(0,y.useContext)(Uy),i=(0,y.useContext)(hv),a=()=>yb(e,t,r,i);return n?a():vb(a)};function xb(e,t,n,r){let i={},a=r(e,{});for(let e in a)i[e]=Hv(a[e]);let{initial:o,animate:s}=e,c=Zy(e),l=Qy(e);t&&l&&!c&&e.inherit!==!1&&(o===void 0&&(o=t.initial),s===void 0&&(s=t.animate));let u=n?n.initial===!1:!1;u||=o===!1;let d=u?s:o;if(d&&typeof d!=`boolean`&&!cp(d)){let t=Array.isArray(d)?d:[d];for(let n=0;n<t.length;n++){let r=pp(e,t[n]);if(r){let{transitionEnd:e,transition:t,...n}=r;for(let e in n){let t=n[e];if(Array.isArray(t)){let e=u?t.length-1:0;t=t[e]}t!==null&&(i[e]=t)}for(let t in e)i[t]=e[t]}}}return i}var Sb=()=>({style:{},transform:{},transformOrigin:{},vars:{}}),Cb=()=>({...Sb(),attrs:{}}),wb=(e,t)=>t&&typeof e==`number`?t.transform(e):e,Tb={x:`translateX`,y:`translateY`,z:`translateZ`,transformPerspective:`perspective`},Eb=_p.length;function Db(e,t,n){let r=``,i=!0;for(let a=0;a<Eb;a++){let o=_p[a],s=e[o];if(s===void 0)continue;let c=!0;if(c=typeof s==`number`?s===+!!o.startsWith(`scale`):parseFloat(s)===0,!c||n){let e=wb(s,Zm[o]);if(!c){i=!1;let t=Tb[o]||o;r+=`${t}(${e}) `}n&&(t[o]=e)}}return r=r.trim(),n?r=n(t,i?``:r):i&&(r=`none`),r}function Ob(e,t,n){let{style:r,vars:i,transformOrigin:a}=e,o=!1,s=!1;for(let e in t){let n=t[e];if(vp.has(e))o=!0;else if(tm(e))i[e]=n;else{let t=wb(n,Zm[e]);e.startsWith(`origin`)?(s=!0,a[e]=t):r[e]=t}}if(t.transform||(o||n?r.transform=Db(t,e.transform,n):r.transform&&=`none`),s){let{originX:e=`50%`,originY:t=`50%`,originZ:n=0}=a;r.transformOrigin=`${e} ${t} ${n}`}}function kb(e,t,n){return typeof e==`string`?e:dm.transform(t+n*e)}function Ab(e,t,n){return`${kb(t,e.x,e.width)} ${kb(n,e.y,e.height)}`}var jb={offset:`stroke-dashoffset`,array:`stroke-dasharray`},Mb={offset:`strokeDashoffset`,array:`strokeDasharray`};function Nb(e,t,n=1,r=0,i=!0){e.pathLength=1;let a=i?jb:Mb;e[a.offset]=dm.transform(-r);let o=dm.transform(t),s=dm.transform(n);e[a.array]=`${o} ${s}`}function Pb(e,{attrX:t,attrY:n,attrScale:r,originX:i,originY:a,pathLength:o,pathSpacing:s=1,pathOffset:c=0,...l},u,d){if(Ob(e,l,d),u){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};let{attrs:f,style:p,dimensions:m}=e;f.transform&&(m&&(p.transform=f.transform),delete f.transform),m&&(i!==void 0||a!==void 0||p.transform)&&(p.transformOrigin=Ab(m,i===void 0?.5:i,a===void 0?.5:a)),t!==void 0&&(f.x=t),n!==void 0&&(f.y=n),r!==void 0&&(f.scale=r),o!==void 0&&Nb(f,o,s,c,!1)}var Fb=e=>typeof e==`string`&&e.toLowerCase()===`svg`,Ib={useVisualState:bb({scrapeMotionValuesFromProps:_b,createRenderState:Cb,onMount:(e,t,{renderState:n,latestValues:r})=>{Lp.read(()=>{try{n.dimensions=typeof t.getBBox==`function`?t.getBBox():t.getBoundingClientRect()}catch{n.dimensions={x:0,y:0,width:0,height:0}}}),Lp.render(()=>{Pb(n,r,Fb(t.tagName),e.transformTemplate),mb(t,n)})}})},Lb={useVisualState:bb({scrapeMotionValuesFromProps:gb,createRenderState:Sb})};function Rb(e,t,n){for(let r in t)!Lg(t[r])&&!hb(r,n)&&(e[r]=t[r])}function zb({transformTemplate:e},t){return(0,y.useMemo)(()=>{let n=Sb();return Ob(n,t,e),Object.assign({},n.vars,n.style)},[t])}function Bb(e,t){let n=e.style||{},r={};return Rb(r,n,e),Object.assign(r,zb(e,t)),r}function Vb(e,t){let n={},r=Bb(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout=`none`,r.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=r,n}var Hb=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`.split(`.`));function Ub(e){return e.startsWith(`while`)||e.startsWith(`drag`)&&e!==`draggable`||e.startsWith(`layout`)||e.startsWith(`onTap`)||e.startsWith(`onPan`)||e.startsWith(`onLayout`)||Hb.has(e)}function Wb(e){var t=Object.create(null);return function(n){return t[n]===void 0&&(t[n]=e(n)),t[n]}}var Gb=o((()=>{})),Kb=c({default:()=>Jb}),qb,Jb,Yb=o((()=>{Gb(),qb=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|fetchpriority|fetchPriority|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|popover|popoverTarget|popoverTargetAction|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|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|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|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|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,Jb=Wb(function(e){return qb.test(e)||e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)<91})})),Xb=e=>!Ub(e);function Zb(e){e&&(Xb=t=>t.startsWith(`on`)?!Ub(t):e(t))}try{Zb((Yb(),d(Kb)).default)}catch{}function Qb(e,t,n){let r={};for(let i in e)(i!==`values`||typeof e.values!=`object`)&&(Xb(i)||n===!0&&Ub(i)||!t&&!Ub(i)||e.draggable&&i.startsWith(`onDrag`))&&(r[i]=e[i]);return r}function $b(e,t,n,r){let i=(0,y.useMemo)(()=>{let n=Cb();return Pb(n,t,Fb(r),e.transformTemplate),{...n.attrs,style:{...n.style}}},[t]);if(e.style){let t={};Rb(t,e.style,e),i.style={...t,...i.style}}return i}function ex(e=!1){return(t,n,r,{latestValues:i},a)=>{let o=(db(t)?$b:Vb)(n,i,a,t),s=Qb(n,typeof t==`string`,e),c=t===y.Fragment?{}:{...s,...o,ref:r},{children:l}=n,u=(0,y.useMemo)(()=>Lg(l)?l.get():l,[l]);return(0,y.createElement)(t,{...c,children:u})}}function tx(e,t){return function(n,{forwardMotionProps:r}={forwardMotionProps:!1}){return ob({...db(n)?Ib:Lb,preloadedFeatures:e,useRender:ex(r),createVisualElement:t,Component:n})}}var nx={current:null},rx={current:!1};function ix(){if(rx.current=!0,Wy){if(window.matchMedia){let e=window.matchMedia(`(prefers-reduced-motion)`),t=()=>nx.current=e.matches;e.addListener(t),t()}else nx.current=!1}}function ax(e,t,n){for(let r in t){let i=t[r],a=n[r];if(Lg(i))e.addValue(r,i);else if(Lg(a))e.addValue(r,jg(i,{owner:e}));else if(a!==i){if(e.hasValue(r)){let t=e.getValue(r);t.liveStyle===!0?t.jump(i):t.hasAnimated||t.set(i)}else{let t=e.getStaticValue(r);e.addValue(r,jg(t===void 0?i:t,{owner:e}))}}}for(let r in n)t[r]===void 0&&e.removeValue(r);return t}var ox=new WeakMap,sx=[...bm,zm,Km],cx=e=>sx.find(ym(e)),lx=[`AnimationStart`,`AnimationComplete`,`Update`,`BeforeLayoutMeasure`,`LayoutMeasure`,`LayoutAnimationStart`,`LayoutAnimationComplete`],ux=class{scrapeMotionValuesFromProps(e,t,n){return{}}constructor({parent:e,props:t,presenceContext:n,reducedMotionConfig:r,blockInitialAnimation:i,visualState:a},o={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.values=new Map,this.KeyframeResolver=Dm,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=()=>{let e=sh.now();this.renderScheduledAt<e&&(this.renderScheduledAt=e,Lp.render(this.render,!1,!0))};let{latestValues:s,renderState:c}=a;this.latestValues=s,this.baseTarget={...s},this.initialValues=t.initial?{...s}:{},this.renderState=c,this.parent=e,this.props=t,this.presenceContext=n,this.depth=e?e.depth+1:0,this.reducedMotionConfig=r,this.options=o,this.blockInitialAnimation=!!i,this.isControllingVariants=Zy(t),this.isVariantNode=Qy(t),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(e&&e.current);let{willChange:l,...u}=this.scrapeMotionValuesFromProps(t,{},this);for(let e in u){let t=u[e];s[e]!==void 0&&Lg(t)&&t.set(s[e],!1)}}mount(e){this.current=e,ox.set(e,this),this.projection&&!this.projection.instance&&this.projection.mount(e),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((e,t)=>this.bindToMotionValue(t,e)),rx.current||ix(),this.shouldReduceMotion=this.reducedMotionConfig===`never`?!1:this.reducedMotionConfig===`always`||nx.current,this.parent&&this.parent.children.add(this),this.update(this.props,this.presenceContext)}unmount(){ox.delete(this.current),this.projection&&this.projection.unmount(),Rp(this.notifyUpdate),Rp(this.render),this.valueSubscriptions.forEach(e=>e()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),this.parent&&this.parent.children.delete(this);for(let e in this.events)this.events[e].clear();for(let e in this.features){let t=this.features[e];t&&(t.unmount(),t.isMounted=!1)}this.current=null}bindToMotionValue(e,t){this.valueSubscriptions.has(e)&&this.valueSubscriptions.get(e)();let n=vp.has(e),r=t.on(`change`,t=>{this.latestValues[e]=t,this.props.onUpdate&&Lp.preRender(this.notifyUpdate),n&&this.projection&&(this.projection.isTransformDirty=!0)}),i=t.on(`renderRequest`,this.scheduleRender),a;window.MotionCheckAppearSync&&(a=window.MotionCheckAppearSync(this,e,t)),this.valueSubscriptions.set(e,()=>{r(),i(),a&&a(),t.owner&&t.stop()})}sortNodePosition(e){return!this.current||!this.sortInstanceNodePosition||this.type!==e.type?0:this.sortInstanceNodePosition(this.current,e.current)}updateFeatures(){let e=`animation`;for(e in rb){let t=rb[e];if(!t)continue;let{isEnabled:n,Feature:r}=t;if(!this.features[e]&&r&&n(this.props)&&(this.features[e]=new r(this)),this.features[e]){let t=this.features[e];t.isMounted?t.update():(t.mount(),t.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):J_()}getStaticValue(e){return this.latestValues[e]}setStaticValue(e,t){this.latestValues[e]=t}update(e,t){(e.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=e,this.prevPresenceContext=this.presenceContext,this.presenceContext=t;for(let t=0;t<lx.length;t++){let n=lx[t];this.propEventSubscriptions[n]&&(this.propEventSubscriptions[n](),delete this.propEventSubscriptions[n]);let r=e[`on`+n];r&&(this.propEventSubscriptions[n]=this.on(n,r))}this.prevMotionValues=ax(this,this.scrapeMotionValuesFromProps(e,this.prevProps,this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(e){return this.props.variants?this.props.variants[e]: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(e){let t=this.getClosestVariantNode();if(t)return t.variantChildren&&t.variantChildren.add(e),()=>t.variantChildren.delete(e)}addValue(e,t){let n=this.values.get(e);t!==n&&(n&&this.removeValue(e),this.bindToMotionValue(e,t),this.values.set(e,t),this.latestValues[e]=t.get())}removeValue(e){this.values.delete(e);let t=this.valueSubscriptions.get(e);t&&(t(),this.valueSubscriptions.delete(e)),delete this.latestValues[e],this.removeValueFromRenderState(e,this.renderState)}hasValue(e){return this.values.has(e)}getValue(e,t){if(this.props.values&&this.props.values[e])return this.props.values[e];let n=this.values.get(e);return n===void 0&&t!==void 0&&(n=jg(t===null?void 0:t,{owner:this}),this.addValue(e,n)),n}readValue(e,t){let n=this.latestValues[e]!==void 0||!this.current?this.latestValues[e]:this.getBaseTargetFromProps(this.props,e)??this.readValueFromInstance(this.current,e,this.options);return n!=null&&(typeof n==`string`&&($p(n)||Qp(n))?n=parseFloat(n):!cx(n)&&Km.test(t)&&(n=eh(e,t)),this.setBaseTarget(e,Lg(n)?n.get():n)),Lg(n)?n.get():n}setBaseTarget(e,t){this.baseTarget[e]=t}getBaseTarget(e){let{initial:t}=this.props,n;if(typeof t==`string`||typeof t==`object`){let r=pp(this.props,t,this.presenceContext?.custom);r&&(n=r[e])}if(t&&n!==void 0)return n;let r=this.getBaseTargetFromProps(this.props,e);return r!==void 0&&!Lg(r)?r:this.initialValues[e]!==void 0&&n===void 0?void 0:this.baseTarget[e]}on(e,t){return this.events[e]||(this.events[e]=new Eg),this.events[e].add(t)}notify(e,...t){this.events[e]&&this.events[e].notify(...t)}},dx=class extends ux{constructor(){super(...arguments),this.KeyframeResolver=rh}sortInstanceNodePosition(e,t){return e.compareDocumentPosition(t)&2?1:-1}getBaseTargetFromProps(e,t){return e.style?e.style[t]:void 0}removeValueFromRenderState(e,{vars:t,style:n}){delete t[e],delete n[e]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);let{children:e}=this.props;Lg(e)&&(this.childSubscription=e.on(`change`,e=>{this.current&&(this.current.textContent=`${e}`)}))}};function fx(e){return window.getComputedStyle(e)}var px=class extends dx{constructor(){super(...arguments),this.type=`html`,this.renderInstance=fb}readValueFromInstance(e,t){if(vp.has(t)){let e=$m(t);return e&&e.default||0}{let n=fx(e),r=(tm(t)?n.getPropertyValue(t):n[t])||0;return typeof r==`string`?r.trim():r}}measureInstanceViewportBox(e,{transformPagePoint:t}){return dv(e,t)}build(e,t,n){Ob(e,t,n.transformTemplate)}scrapeMotionValuesFromProps(e,t,n){return gb(e,t,n)}},mx=class extends dx{constructor(){super(...arguments),this.type=`svg`,this.isSVGTag=!1,this.measureInstanceViewportBox=J_}getBaseTargetFromProps(e,t){return e[t]}readValueFromInstance(e,t){if(vp.has(t)){let e=$m(t);return e&&e.default||0}return t=pb.has(t)?t:Pg(t),e.getAttribute(t)}scrapeMotionValuesFromProps(e,t,n){return _b(e,t,n)}build(e,t,n){Pb(e,t,this.isSVGTag,n.transformTemplate)}renderInstance(e,t,n,r){mb(e,t,n,r)}mount(e){this.isSVGTag=Fb(e.tagName),super.mount(e)}},hx=(e,t)=>db(e)?new mx(t):new px(t,{allowProjection:e!==y.Fragment}),q=sp(tx({...i_,...By,...Ty,...Vy},hx)),gx=class extends y.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(t&&e.isPresent&&!this.props.isPresent){let e=this.props.sizeRef.current;e.height=t.offsetHeight||0,e.width=t.offsetWidth||0,e.top=t.offsetTop,e.left=t.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}};function _x({children:e,isPresent:t}){let n=(0,y.useId)(),r=(0,y.useRef)(null),i=(0,y.useRef)({width:0,height:0,top:0,left:0}),{nonce:a}=(0,y.useContext)(Hy);return(0,y.useInsertionEffect)(()=>{let{width:e,height:o,top:s,left:c}=i.current;if(t||!r.current||!e||!o)return;r.current.dataset.motionPopId=n;let l=document.createElement(`style`);return a&&(l.nonce=a),document.head.appendChild(l),l.sheet&&l.sheet.insertRule(`
[data-motion-pop-id="${n}"] {
position: absolute !important;
width: ${e}px !important;
height: ${o}px !important;
top: ${s}px !important;
left: ${c}px !important;
}
`),()=>{document.head.removeChild(l)}},[t]),(0,z.jsx)(gx,{isPresent:t,childRef:r,sizeRef:i,children:y.cloneElement(e,{ref:r})})}var vx=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:a,mode:o})=>{let s=vb(yx),c=(0,y.useId)(),l=(0,y.useCallback)(e=>{s.set(e,!0);for(let e of s.values())if(!e)return;r&&r()},[s,r]),u=(0,y.useMemo)(()=>({id:c,initial:t,isPresent:n,custom:i,onExitComplete:l,register:e=>(s.set(e,!1),()=>s.delete(e))}),a?[Math.random(),l]:[n,l]);return(0,y.useMemo)(()=>{s.forEach((e,t)=>s.set(t,!1))},[n]),y.useEffect(()=>{!n&&!s.size&&r&&r()},[n]),o===`popLayout`&&(e=(0,z.jsx)(_x,{isPresent:n,children:e})),(0,z.jsx)(hv.Provider,{value:u,children:e})};function yx(){return new Map}var bx=e=>e.key||``;function xx(e){let t=[];return y.Children.forEach(e,e=>{(0,y.isValidElement)(e)&&t.push(e)}),t}var Sx=({children:e,exitBeforeEnter:t,custom:n,initial:r=!0,onExitComplete:i,presenceAffectsLayout:a=!0,mode:o=`sync`})=>{Np(!t,`Replace exitBeforeEnter with mode='wait'`);let s=(0,y.useMemo)(()=>xx(e),[e]),c=s.map(bx),l=(0,y.useRef)(!0),u=(0,y.useRef)(s),d=vb(()=>new Map),[f,p]=(0,y.useState)(s),[m,h]=(0,y.useState)(s);Gy(()=>{l.current=!1,u.current=s;for(let e=0;e<m.length;e++){let t=bx(m[e]);c.includes(t)?d.delete(t):d.get(t)!==!0&&d.set(t,!1)}},[m,c.length,c.join(`-`)]);let g=[];if(s!==f){let e=[...s];for(let t=0;t<m.length;t++){let n=m[t],r=bx(n);c.includes(r)||(e.splice(t,0,n),g.push(n))}o===`wait`&&g.length&&(e=g),h(xx(e)),p(s);return}let{forceRender:_}=(0,y.useContext)(gv);return(0,z.jsx)(z.Fragment,{children:m.map(e=>{let t=bx(e),f=s===m||c.includes(t);return(0,z.jsx)(vx,{isPresent:f,initial:!l.current||r?void 0:!1,custom:f?void 0:n,presenceAffectsLayout:a,mode:o,onExitComplete:f?void 0:()=>{if(d.has(t))d.set(t,!0);else return;let e=!0;d.forEach(t=>{t||(e=!1)}),e&&(_?.(),h(u.current),i&&i())},children:e},t)})})},Cx=[{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`},{id:`lighthouses`,name:`PNWLighthouses.com`,title:`PNW Lighthouses`,description:`Explore 66 historic lighthouses along the Oregon, Washington, and British Columbia coasts.`,url:`https://pnwlighthouses.com`},{id:`trains`,name:`PNWScenicTrains.com`,title:`PNW Scenic Trains`,description:`Scenic train rides, heritage railways, and rail journeys across the Pacific Northwest.`,url:`https://pnwscenictrains.com`},{id:`crabbing`,name:`PNWCrabbing.com`,title:`PNW Crabbing`,description:`Find crabbing spots, seasons, and tides at 79 locations across Oregon, Washington, and British Columbia.`,url:`https://pnwcrabbing.com`}],wx=[{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`}],Tx=()=>{let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(`explore`),[i,a]=(0,y.useState)(null),o=(0,y.useRef)(null);return(0,y.useEffect)(()=>{let n=e=>{o.current&&!o.current.contains(e.target)&&t(!1)},r=e=>{e.key===`Escape`&&t(!1)};return e&&(document.addEventListener(`mousedown`,n),document.addEventListener(`keydown`,r)),()=>{document.removeEventListener(`mousedown`,n),document.removeEventListener(`keydown`,r)}},[e]),(0,z.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:[(0,z.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:[(0,z.jsx)(lo,{className:`w-6 h-6 md:w-5 md:h-5`}),(0,z.jsx)(`span`,{className:`hidden md:inline font-medium`,children:`Explore PNW`})]}),(0,z.jsx)(Sx,{children:e&&(0,z.jsxs)(q.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:[(0,z.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:[(0,z.jsxs)(`h2`,{className:`text-lg md:text-xl font-serif font-bold text-blue-800 flex items-center gap-2 truncate`,children:[(0,z.jsx)(Oo,{className:`w-5 h-5 flex-shrink-0`}),` `,(0,z.jsx)(`span`,{className:`truncate`,children:`Pacific Northwest`})]}),(0,z.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:(0,z.jsx)(ps,{className:`w-6 h-6 md:w-5 md:h-5`})})]}),(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row overflow-y-auto overflow-x-hidden`,style:{scrollbarWidth:`thin`},children:[(0,z.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:(0,z.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:[(0,z.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`}),Cx.filter(e=>e.dotPos).map(e=>(0,z.jsxs)(`div`,{className:`absolute group`,style:{top:e.dotPos.top,left:e.dotPos.left},onMouseEnter:()=>n===`explore`&&a(e.id),onMouseLeave:()=>a(null),onClick:()=>{n!==`explore`&&r(`explore`),a(e.id)},children:[(0,z.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===e.id&&n===`explore`?`scale-110 z-10`:`scale-100 z-0`}`,children:[(0,z.jsx)(`div`,{className:`absolute w-6 h-6 md:w-8 md:h-8 rounded-full animate-ping opacity-30 ${e.id===`or`||e.id===`waterfalls`?`bg-blue-800`:`bg-blue-600`}`}),(0,z.jsx)(V,{className:`w-6 h-6 md:w-8 md:h-8 drop-shadow-lg relative z-10 ${i===e.id||e.id===`or`||e.id===`waterfalls`?`text-blue-800 fill-blue-800/20`:`text-slate-800 fill-white`}`})]}),(0,z.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===e.id&&n===`explore`?`opacity-100`:`opacity-0`}`,children:e.title})]},e.id))]})}),(0,z.jsxs)(`div`,{className:`w-full md:w-[40%] bg-white flex flex-col h-[550px]`,children:[(0,z.jsxs)(`div`,{className:`flex border-b border-gray-100 p-2 gap-2 bg-gray-50/30`,children:[(0,z.jsxs)(`button`,{onClick:()=>r(`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:[(0,z.jsx)($a,{className:`w-4 h-4`}),` Explore`]}),(0,z.jsxs)(`button`,{onClick:()=>r(`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:[(0,z.jsx)(Ko,{className:`w-4 h-4`}),` Shop`]})]}),(0,z.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4 md:p-5`,style:{scrollbarWidth:`thin`},children:(0,z.jsx)(Sx,{mode:`wait`,children:n===`explore`?(0,z.jsxs)(q.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:[(0,z.jsx)(`p`,{className:`text-sm text-gray-600 mb-2 md:mb-1`,children:`Select a region to explore our network of travel guides.`}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-3 md:gap-3 pb-4 md:pb-0`,children:Cx.map(e=>(0,z.jsxs)(`a`,{href:e.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===e.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:()=>a(e.id),onMouseLeave:()=>a(null),children:[(0,z.jsxs)(`div`,{className:`flex justify-between items-start mb-1.5`,children:[(0,z.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:e.title}),(0,z.jsx)(no,{className:`w-4 h-4 mt-0.5 transition-colors ${i===e.id?`text-blue-600`:`text-gray-400`}`})]}),(0,z.jsx)(`p`,{className:`text-[11px] md:text-xs font-bold text-blue-600/80 mb-2 uppercase tracking-wider`,children:e.name}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600 leading-relaxed group-hover:text-gray-900 transition-colors`,children:e.description})]},e.id))})]},`explore`):(0,z.jsxs)(q.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:[(0,z.jsx)(`p`,{className:`text-sm text-gray-600 mb-2 md:mb-1`,children:`Shop our collection of Pacific Northwest apparel, art, and gear.`}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-3 md:gap-3 pb-4 md:pb-0`,children:wx.map(e=>(0,z.jsxs)(`a`,{href:e.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-start mb-1.5`,children:[(0,z.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:e.title}),(0,z.jsx)(no,{className:`w-4 h-4 mt-0.5 text-gray-400 group-hover:text-blue-600 transition-colors`})]}),(0,z.jsx)(`p`,{className:`text-[11px] md:text-xs font-bold text-blue-600/80 mb-2 uppercase tracking-wider`,children:e.name}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600 leading-relaxed group-hover:text-gray-900 transition-colors`,children:e.description})]},e.id))})]},`shop`)})})]})]})]})})]})};function Ex(){let{messages:e,addMessage:t,answers:n,updateAnswer:r,chatState:i,setChatState:a,resetChat:o}=mf();return{handleUserResponse:(s,c=null,l=null)=>{window.dataLayer&&window.dataLayer.push({event:`chat_message_sent`,message_count:e.length+1}),t({sender:`user`,text:s}),setTimeout(()=>{let e=i;if(i===`ASK_START`){let n=c;if(!n){let e=df(s);if(e)n=e;else{t({sender:`ai`,text:`I couldn't recognize "${s.trim()}" as an Oregon Coast town or starting point. Try typing a coast town name like "Brookings", "Cannon Beach", or "Newport", or pick a starting point from the options above.`});return}}r(`start`,n),typeof window.gtag==`function`&&window.gtag(`event`,`chat_question_answered`,{question_step:1,question_name:`start_location`,answer_value:n}),t({sender:`ai`,text:`Got it! How many days do you have for this trip? (e.g., 1-2, 3-4, 5-7, 7+)`}),e=`ASK_DAYS`}else if(i===`ASK_DAYS`){let n=c||s;r(`days`,n),typeof window.gtag==`function`&&window.gtag(`event`,`chat_question_answered`,{question_step:2,question_name:`days`,answer_value:n}),t({sender:`ai`,text:`Perfect. And what kind of vibe are you looking for? (Adventure, Relaxing, Foodie, Family, Photography)`}),e=`ASK_TYPE`}else if(i===`ASK_TYPE`){let i=c||s;r(`type`,i),typeof window.gtag==`function`&&window.gtag(`event`,`chat_question_answered`,{question_step:3,question_name:`trip_type`,answer_value:i});let a={...n,type:i},{towns:o,numDays:l,validationMessage:u}=ff(a.start,a.days,a.type);typeof window.gtag==`function`&&window.gtag(`event`,`chat_itinerary_generated`,{start_location:a.start,trip_days:a.days,trip_type:a.type,stop_count:o.length,stops:o.map(e=>e.name).join(`, `)});let d=o.map(e=>encodeURIComponent(e.name)).join(`,`),f=o.map(e=>e.name).join(`, `),p=``;u&&(p+=`*Note: ${u}*\n\n`),p+=`Based on your choices, ${o[0]?.name||`the coast`} to ${o[o.length-1]?.name||`the south`} is a great ${l}-day drive! Here is a recommended breakdown with driving times:\n\n`,o.forEach((e,t)=>{if(p+=`Day 1: ${e.name} (emphasizing ${e.highlights}).\n`,t<o.length-1){let n=sf(e.id,o[t+1].id);n&&(p+=` 🚗 Drive time to next stop: ~${n}\n`)}}),p+=`
Want to save this as your personal Trip Scrapbook? I'll pre-load everything for you.`,t({sender:`ai`,text:p,action:{type:`build_scrapbook`,label:`Build My Scrapbook`,url:`https://mypnwtrip.com/setup?location=${d}&days=${l}&utm_source=oregoncoastal.com&utm_medium=trip_chat&utm_campaign=scrapbook_handoff`,handoff:{location:o[0]?.name||``,days:l},trackingData:{location:f,start_location:a.start,trip_days:a.days,trip_type:a.type,stop_count:o.length}}}),e=`DONE`}else if(i===`DONE`){if(s.toLowerCase().includes(`restart`)||s.toLowerCase().includes(`reset`)||s.toLowerCase().includes(`start over`)){o();return}t({sender:`ai`,text:`Enjoy your trip! Type 'start over' if you want to plan a different route.`})}a(e)},800)},getQuickSelectOptions:()=>{switch(i){case`ASK_START`:return ef;case`ASK_DAYS`:return tf;case`ASK_TYPE`:return nf;default:return[]}}}}var Dx=({message:e,onAction:t,actionPending:n=!1})=>{let r=e.sender===`ai`,i=e=>{e.type===`build_scrapbook`&&window.dataLayer&&window.dataLayer.push({event:`scrapbook_conversion`,destination:`mypnwtrip.com`,trip_location:e.trackingData?.location||`Unknown`}),t?t(e):e.type!==`build_scrapbook`&&window.open(e.url,`_blank`)};return(0,z.jsx)(q.div,{initial:{opacity:0,y:10,scale:.95},animate:{opacity:1,y:0,scale:1},className:R(`flex w-full mb-4`,r?`justify-start`:`justify-end`),children:(0,z.jsxs)(`div`,{className:R(`flex max-w-[85%] items-end gap-2`,r?`flex-row`:`flex-row-reverse`),children:[(0,z.jsx)(`div`,{className:R(`w-8 h-8 rounded-full flex items-center justify-center flex-shrink-0 shadow-sm`,r?`bg-[hsl(var(--chat-secondary))] text-[hsl(var(--chat-text))]`:`bg-[hsl(var(--chat-primary))] text-white`),children:r?(0,z.jsx)(Ma,{size:16}):(0,z.jsx)(is,{size:16})}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,z.jsx)(`div`,{className:R(`px-4 py-3 rounded-2xl text-sm leading-relaxed shadow-sm`,r?`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:(0,z.jsx)(`div`,{className:`whitespace-pre-wrap`,children:e.text})}),e.action&&(0,z.jsxs)(`button`,{onClick:t=>{t.stopPropagation(),i(e.action)},disabled:n,"aria-disabled":n,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 disabled:opacity-60 disabled:cursor-not-allowed disabled:active:scale-100`,children:[n?(0,z.jsx)(wo,{size:12,className:`animate-spin`}):(0,z.jsx)(no,{size:12}),e.action.label]})]})]})})},Ox=({options:e,onSelect:t})=>!e||e.length===0?null:(0,z.jsx)(q.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(e=>(0,z.jsx)(`button`,{onClick:()=>t(e),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:e.label},e.id))}),kx=()=>{let{isOpen:e,setIsOpen:t,messages:n,chatState:r,answers:i,addMessage:a}=mf(),{savedItems:o,toggleBookmark:s,pendingId:c,createMypnwtripHandoff:l}=If(),{handleUserResponse:u,getQuickSelectOptions:d}=Ex(),[f,p]=(0,y.useState)(``),[m,h]=(0,y.useState)(!1),g=(0,y.useRef)(null),_=(0,y.useRef)(o);_.current=o;let v=()=>{g.current?.scrollIntoView({behavior:`smooth`})};(0,y.useEffect)(()=>{e&&v()},[n,e]),(0,y.useEffect)(()=>{let e=()=>t(!0);return window.addEventListener(`cacoon:view-my-trip`,e),()=>window.removeEventListener(`cacoon:view-my-trip`,e)},[t]);let b=()=>{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(r!==`DONE`){let e=0;i.type?e=3:i.days?e=2:i.start&&(e=1),typeof window.gtag==`function`&&window.gtag(`event`,`chat_abandoned`,{last_step_completed:e})}t(!1)},S=e=>{let t=e.target.closest(`a, button`);if(t&&(t.tagName===`A`&&t.href&&t.href.includes(`mypnwtrip.com`)||t.textContent&&t.textContent.includes(`Build My Scrapbook`))&&typeof window.gtag==`function`){let e=n.find(e=>e.action&&e.action.type===`build_scrapbook`),r=e?.action?.trackingData||{};window.gtag(`event`,`chat_scrapbook_click`,{start_location:r.start_location||i.start||``,trip_days:r.trip_days||i.days||``,trip_type:r.trip_type||i.type||``,stop_count:r.stop_count||0,destination_url:t.href||e?.action?.url||``,source_site:`oregoncoastal.com`})}},C=e=>{e.preventDefault(),f.trim()&&(u(f),p(``))},w=e=>{u(e.label,e.id,e.label)},T=async e=>{if(e.type!==`build_scrapbook`){e.url&&window.open(e.url,`_blank`);return}let t=_.current;if(!t||t.length===0)try{let e=localStorage.getItem(`cacoon_saved_object_ids`);if(e){let n=JSON.parse(e);Array.isArray(n)&&(t=n)}}catch{}if(t||=[],typeof window.gtag==`function`){let n=e.trackingData||{};window.gtag(`event`,`chat_scrapbook_click`,{start_location:n.start_location||i.start||``,trip_days:n.trip_days||i.days||``,trip_type:n.trip_type||i.type||``,stop_count:n.stop_count||0,destination_url:e.url||``,source_site:`oregoncoastal.com`,has_saved_items:t.length>0})}if(t.length===0){window.open(e.url,`_blank`);return}let{location:n,days:r}=e.handoff||{};if(!n){a({sender:`ai`,text:`I couldn't determine your trip's starting town for the handoff. Please plan a route first, then try again.`});return}let o=null;try{o=window.open(`about:blank`,`_blank`)}catch{o=null}h(!0);try{let e=await l(n,r);o&&!o.closed?(o.location.href=e,o.focus()):window.location.href=e}catch(e){try{o&&!o.closed&&o.close()}catch{}a({sender:`ai`,text:`I couldn't start your MyPNWTrip scrapbook handoff right now: ${e?.message||`the request failed`}. Your saved places are still here on OregonCoastal — please try again in a moment.`})}finally{h(!1)}},E=d();return(0,z.jsxs)(`div`,{className:`fixed bottom-4 right-4 md:bottom-6 md:right-6 z-[9999] flex flex-col items-end font-sans`,children:[(0,z.jsx)(Sx,{children:!e&&(0,z.jsxs)(q.button,{initial:{scale:0,opacity:0},animate:{scale:1,opacity:1},exit:{scale:0,opacity:0},whileHover:{scale:1.05},whileTap:{scale:.95},onClick:b,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:[(0,z.jsx)(Oo,{size:24}),(0,z.jsx)(`span`,{className:`font-semibold text-sm md:text-base whitespace-nowrap`,children:`Plan My Trip`})]})}),(0,z.jsx)(Sx,{children:e&&(0,z.jsxs)(q.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:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between px-5 py-4 bg-[hsl(var(--chat-primary))] text-white flex-shrink-0`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,z.jsx)(Oo,{size:20}),(0,z.jsx)(`h3`,{className:`font-serif font-bold text-lg tracking-wide uppercase`,children:`Trip Planner AI`})]}),(0,z.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:(0,z.jsx)(ps,{size:20})})]}),o.length>0&&(0,z.jsxs)(`div`,{className:`flex-shrink-0 px-4 py-3 border-b border-[hsl(var(--chat-border))] bg-[hsl(var(--chat-accent))]/40`,children:[(0,z.jsxs)(`p`,{className:`text-[10px] font-bold uppercase tracking-widest text-[hsl(var(--chat-text))] opacity-70 mb-2`,children:[`Saved to your trip (`,o.length,`)`]}),(0,z.jsx)(`div`,{className:`space-y-1.5`,children:o.map(e=>(0,z.jsxs)(`div`,{className:`flex items-center justify-between gap-2 text-sm`,children:[e.affiliate_link?(0,z.jsx)(`a`,{href:e.affiliate_link,target:`_blank`,rel:`noopener noreferrer sponsored`,className:`text-[hsl(var(--chat-text))] hover:underline font-medium truncate`,children:e.title}):(0,z.jsx)(`span`,{className:`text-[hsl(var(--chat-text))] font-medium truncate`,children:e.title}),(0,z.jsx)(`button`,{type:`button`,onClick:()=>s(e.object_id,{title:e.title,source:e.source,affiliateLink:e.affiliate_link}),disabled:c===e.object_id,className:`text-[10px] uppercase tracking-wider text-[hsl(var(--chat-text))] opacity-60 hover:opacity-100 disabled:opacity-30 flex-shrink-0`,children:`Remove`})]},e.object_id))})]}),(0,z.jsxs)(`div`,{className:`flex-1 overflow-y-auto p-4 custom-scrollbar bg-[hsl(var(--chat-background))] space-y-4`,onClick:S,children:[n.map(e=>(0,z.jsx)(Dx,{message:e,onAction:T,actionPending:m&&e.action?.type===`build_scrapbook`},e.id)),(0,z.jsx)(`div`,{ref:g})]}),(0,z.jsxs)(`div`,{className:`flex-shrink-0 flex flex-col bg-white`,children:[E.length>0&&(0,z.jsx)(Ox,{options:E,onSelect:w}),(0,z.jsxs)(`form`,{onSubmit:C,className:`flex items-center gap-2 p-3 border-t border-[hsl(var(--chat-border))]`,children:[(0,z.jsx)(`input`,{type:`text`,value:f,onChange:e=>p(e.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`}),(0,z.jsx)(`button`,{type:`submit`,disabled:!f.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:(0,z.jsx)(Ho,{size:18,className:`ml-0.5`})})]})]})]})})]})},Ax=s(((e,t)=>{t.exports=`SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED`})),jx=s(((e,t)=>{var n=Ax();function r(){}function i(){}i.resetWarningCache=r,t.exports=function(){function e(e,t,r,i,a,o){if(o!==n){var s=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 s.name=`Invariant Violation`,s}}e.isRequired=e;function t(){return e}var a={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return a.PropTypes=a,a}})),Mx=s(((e,t)=>{t.exports=jx()()})),Nx=s(((e,t)=>{function n(e){return e&&typeof e==`object`&&`default`in e?e.default:e}var r=p(),i=n(r);function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var s=!!(typeof window<`u`&&window.document&&window.document.createElement);function c(e,t,n){if(typeof e!=`function`)throw Error(`Expected reducePropsToState to be a function.`);if(typeof t!=`function`)throw Error(`Expected handleStateChangeOnClient to be a function.`);if(n!==void 0&&typeof n!=`function`)throw Error(`Expected mapStateOnServer to either be undefined or a function.`);function c(e){return e.displayName||e.name||`Component`}return function(l){if(typeof l!=`function`)throw Error(`Expected WrappedComponent to be a React component.`);var u=[],d;function f(){d=e(u.map(function(e){return e.props})),p.canUseDOM?t(d):n&&(d=n(d))}var p=function(e){o(t,e);function t(){return e.apply(this,arguments)||this}t.peek=function(){return d},t.rewind=function(){if(t.canUseDOM)throw Error(`You may only call rewind() on the server. Call peek() to read the current state.`);var e=d;return d=void 0,u=[],e};var n=t.prototype;return n.UNSAFE_componentWillMount=function(){u.push(this),f()},n.componentDidUpdate=function(){f()},n.componentWillUnmount=function(){var e=u.indexOf(this);u.splice(e,1),f()},n.render=function(){return i.createElement(l,this.props)},t}(r.PureComponent);return a(p,`displayName`,`SideEffect(`+c(l)+`)`),a(p,`canUseDOM`,s),p}}t.exports=c})),Px=s(((e,t)=>{var n=typeof Element<`u`,r=typeof Map==`function`,i=typeof Set==`function`,a=typeof ArrayBuffer==`function`&&!!ArrayBuffer.isView;function o(e,t){if(e===t)return!0;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(e.constructor!==t.constructor)return!1;var s,c,l;if(Array.isArray(e)){if(s=e.length,s!=t.length)return!1;for(c=s;c--!==0;)if(!o(e[c],t[c]))return!1;return!0}var u;if(r&&e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!t.has(c.value[0]))return!1;for(u=e.entries();!(c=u.next()).done;)if(!o(c.value[1],t.get(c.value[0])))return!1;return!0}if(i&&e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(u=e.entries();!(c=u.next()).done;)if(!t.has(c.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(t)){if(s=e.length,s!=t.length)return!1;for(c=s;c--!==0;)if(e[c]!==t[c])return!1;return!0}if(e.constructor===RegExp)return e.source===t.source&&e.flags===t.flags;if(e.valueOf!==Object.prototype.valueOf&&typeof e.valueOf==`function`&&typeof t.valueOf==`function`)return e.valueOf()===t.valueOf();if(e.toString!==Object.prototype.toString&&typeof e.toString==`function`&&typeof t.toString==`function`)return e.toString()===t.toString();if(l=Object.keys(e),s=l.length,s!==Object.keys(t).length)return!1;for(c=s;c--!==0;)if(!Object.prototype.hasOwnProperty.call(t,l[c]))return!1;if(n&&e instanceof Element)return!1;for(c=s;c--!==0;)if((l[c]!==`_owner`&&l[c]!==`__v`&&l[c]!==`__o`||!e.$$typeof)&&!o(e[l[c]],t[l[c]]))return!1;return!0}return e!==e&&t!==t}t.exports=function(e,t){try{return o(e,t)}catch(e){if((e.message||``).match(/stack|recursion/i))return console.warn(`react-fast-compare cannot handle circular refs`),!1;throw e}}})),Fx=s(((e,t)=>{var n=Object.getOwnPropertySymbols,r=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(e==null)throw TypeError(`Object.assign cannot be called with null or undefined`);return Object(e)}function o(){try{if(!Object.assign)return!1;var e=new String(`abc`);if(e[5]=`de`,Object.getOwnPropertyNames(e)[0]===`5`)return!1;for(var t={},n=0;n<10;n++)t[`_`+String.fromCharCode(n)]=n;if(Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(``)!==`0123456789`)return!1;var r={};return`abcdefghijklmnopqrst`.split(``).forEach(function(e){r[e]=e}),Object.keys(Object.assign({},r)).join(``)===`abcdefghijklmnopqrst`}catch{return!1}}t.exports=o()?Object.assign:function(e,t){for(var o,s=a(e),c,l=1;l<arguments.length;l++){for(var u in o=Object(arguments[l]),o)r.call(o,u)&&(s[u]=o[u]);if(n){c=n(o);for(var d=0;d<c.length;d++)i.call(o,c[d])&&(s[c[d]]=o[c[d]])}}return s}})),Ix=u(Mx()),Lx=u(Nx()),Rx=u(Px()),zx=u(Fx()),Bx={BODY:`bodyAttributes`,HTML:`htmlAttributes`,TITLE:`titleAttributes`},Vx={BASE:`base`,BODY:`body`,HEAD:`head`,HTML:`html`,LINK:`link`,META:`meta`,NOSCRIPT:`noscript`,SCRIPT:`script`,STYLE:`style`,TITLE:`title`};Object.keys(Vx).map(function(e){return Vx[e]});var Hx={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`},Ux={accesskey:`accessKey`,charset:`charSet`,class:`className`,contenteditable:`contentEditable`,contextmenu:`contextMenu`,"http-equiv":`httpEquiv`,itemprop:`itemProp`,tabindex:`tabIndex`},Wx={DEFAULT_TITLE:`defaultTitle`,DEFER:`defer`,ENCODE_SPECIAL_CHARACTERS:`encodeSpecialCharacters`,ON_CHANGE_CLIENT_STATE:`onChangeClientState`,TITLE_TEMPLATE:`titleTemplate`},Gx=Object.keys(Ux).reduce(function(e,t){return e[Ux[t]]=t,e},{}),Kx=[Vx.NOSCRIPT,Vx.SCRIPT,Vx.STYLE],qx=`data-react-helmet`,Jx=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},Yx=function(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)},Xx=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),Zx=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Qx=function(e,t){if(typeof t!=`function`&&t!==null)throw 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)},$x=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},eS=function(e,t){if(!e)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return t&&(typeof t==`object`||typeof t==`function`)?t:e},tS=function(e){return(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0)===!1?String(e):String(e).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`).replace(/'/g,`'`)},nS=function(e){var t=sS(e,Vx.TITLE),n=sS(e,Wx.TITLE_TEMPLATE);if(n&&t)return n.replace(/%s/g,function(){return Array.isArray(t)?t.join(``):t});var r=sS(e,Wx.DEFAULT_TITLE);return t||r||void 0},rS=function(e){return sS(e,Wx.ON_CHANGE_CLIENT_STATE)||function(){}},iS=function(e,t){return t.filter(function(t){return t[e]!==void 0}).map(function(t){return t[e]}).reduce(function(e,t){return Zx({},e,t)},{})},aS=function(e,t){return t.filter(function(e){return e[Vx.BASE]!==void 0}).map(function(e){return e[Vx.BASE]}).reverse().reduce(function(t,n){if(!t.length)for(var r=Object.keys(n),i=0;i<r.length;i++){var a=r[i].toLowerCase();if(e.indexOf(a)!==-1&&n[a])return t.concat(n)}return t},[])},oS=function(e,t,n){var r={};return n.filter(function(t){return Array.isArray(t[e])?!0:(t[e]!==void 0&&pS(`Helmet: `+e+` should be of type "Array". Instead found type "`+Jx(t[e])+`"`),!1)}).map(function(t){return t[e]}).reverse().reduce(function(e,n){var i={};n.filter(function(e){for(var n=void 0,a=Object.keys(e),o=0;o<a.length;o++){var s=a[o],c=s.toLowerCase();t.indexOf(c)===-1||n===Hx.REL&&e[n].toLowerCase()===`canonical`||c===Hx.REL&&e[c].toLowerCase()===`stylesheet`||(n=c),t.indexOf(s)!==-1&&(s===Hx.INNER_HTML||s===Hx.CSS_TEXT||s===Hx.ITEM_PROP)&&(n=s)}if(!n||!e[n])return!1;var l=e[n].toLowerCase();return r[n]||(r[n]={}),i[n]||(i[n]={}),!r[n][l]&&(i[n][l]=!0,!0)}).reverse().forEach(function(t){return e.push(t)});for(var a=Object.keys(i),o=0;o<a.length;o++){var s=a[o];r[s]=(0,zx.default)({},r[s],i[s])}return e},[]).reverse()},sS=function(e,t){for(var n=e.length-1;n>=0;n--){var r=e[n];if(r.hasOwnProperty(t))return r[t]}return null},cS=function(e){return{baseTag:aS([Hx.HREF,Hx.TARGET],e),bodyAttributes:iS(Bx.BODY,e),defer:sS(e,Wx.DEFER),encode:sS(e,Wx.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:iS(Bx.HTML,e),linkTags:oS(Vx.LINK,[Hx.REL,Hx.HREF],e),metaTags:oS(Vx.META,[Hx.NAME,Hx.CHARSET,Hx.HTTPEQUIV,Hx.PROPERTY,Hx.ITEM_PROP],e),noscriptTags:oS(Vx.NOSCRIPT,[Hx.INNER_HTML],e),onChangeClientState:rS(e),scriptTags:oS(Vx.SCRIPT,[Hx.SRC,Hx.INNER_HTML],e),styleTags:oS(Vx.STYLE,[Hx.CSS_TEXT],e),title:nS(e),titleAttributes:iS(Bx.TITLE,e)}},lS=function(){var e=Date.now();return function(t){var n=Date.now();n-e>16?(e=n,t(n)):setTimeout(function(){lS(t)},0)}}(),uS=function(e){return clearTimeout(e)},dS=typeof window<`u`?window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||lS:global.requestAnimationFrame||lS,fS=typeof window<`u`?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||uS:global.cancelAnimationFrame||uS,pS=function(e){return console&&typeof console.warn==`function`&&console.warn(e)},mS=null,hS=function(e){mS&&fS(mS),e.defer?mS=dS(function(){gS(e,function(){mS=null})}):(gS(e),mS=null)},gS=function(e,t){var n=e.baseTag,r=e.bodyAttributes,i=e.htmlAttributes,a=e.linkTags,o=e.metaTags,s=e.noscriptTags,c=e.onChangeClientState,l=e.scriptTags,u=e.styleTags,d=e.title,f=e.titleAttributes;yS(Vx.BODY,r),yS(Vx.HTML,i),vS(d,f);var p={baseTag:bS(Vx.BASE,n),linkTags:bS(Vx.LINK,a),metaTags:bS(Vx.META,o),noscriptTags:bS(Vx.NOSCRIPT,s),scriptTags:bS(Vx.SCRIPT,l),styleTags:bS(Vx.STYLE,u)},m={},h={};Object.keys(p).forEach(function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(m[e]=n),r.length&&(h[e]=p[e].oldTags)}),t&&t(),c(e,m,h)},_S=function(e){return Array.isArray(e)?e.join(``):e},vS=function(e,t){e!==void 0&&document.title!==e&&(document.title=_S(e)),yS(Vx.TITLE,t)},yS=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute(qx),i=r?r.split(`,`):[],a=[].concat(i),o=Object.keys(t),s=0;s<o.length;s++){var c=o[s],l=t[c]||``;n.getAttribute(c)!==l&&n.setAttribute(c,l),i.indexOf(c)===-1&&i.push(c);var u=a.indexOf(c);u!==-1&&a.splice(u,1)}for(var d=a.length-1;d>=0;d--)n.removeAttribute(a[d]);i.length===a.length?n.removeAttribute(qx):n.getAttribute(qx)!==o.join(`,`)&&n.setAttribute(qx,o.join(`,`))}},bS=function(e,t){var n=document.head||document.querySelector(Vx.HEAD),r=n.querySelectorAll(e+`[`+qx+`]`),i=Array.prototype.slice.call(r),a=[],o=void 0;return t&&t.length&&t.forEach(function(t){var n=document.createElement(e);for(var r in t)if(t.hasOwnProperty(r)){if(r===Hx.INNER_HTML)n.innerHTML=t.innerHTML;else if(r===Hx.CSS_TEXT)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var s=t[r]===void 0?``:t[r];n.setAttribute(r,s)}}n.setAttribute(qx,`true`),i.some(function(e,t){return o=t,n.isEqualNode(e)})?i.splice(o,1):a.push(n)}),i.forEach(function(e){return e.parentNode.removeChild(e)}),a.forEach(function(e){return n.appendChild(e)}),{oldTags:i,newTags:a}},xS=function(e){return Object.keys(e).reduce(function(t,n){var r=e[n]===void 0?``+n:n+`="`+e[n]+`"`;return t?t+` `+r:r},``)},SS=function(e,t,n,r){var i=xS(n),a=_S(t);return i?`<`+e+` `+qx+`="true" `+i+`>`+tS(a,r)+`</`+e+`>`:`<`+e+` `+qx+`="true">`+tS(a,r)+`</`+e+`>`},CS=function(e,t,n){return t.reduce(function(t,r){var i=Object.keys(r).filter(function(e){return e!==Hx.INNER_HTML&&e!==Hx.CSS_TEXT}).reduce(function(e,t){var i=r[t]===void 0?t:t+`="`+tS(r[t],n)+`"`;return e?e+` `+i:i},``),a=r.innerHTML||r.cssText||``,o=Kx.indexOf(e)===-1;return t+`<`+e+` `+qx+`="true" `+i+(o?`/>`:`>`+a+`</`+e+`>`)},``)},wS=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[Ux[n]||n]=e[n],t},t)},TS=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[Gx[n]||n]=e[n],t},t)},ES=function(e,t,n){var r={key:t},i=wS(n,(r[qx]=!0,r));return[y.createElement(Vx.TITLE,i,t)]},DS=function(e,t){return t.map(function(t,n){var r={key:n},i=(r[qx]=!0,r);return Object.keys(t).forEach(function(e){var n=Ux[e]||e;n===Hx.INNER_HTML||n===Hx.CSS_TEXT?i.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:i[n]=t[e]}),y.createElement(e,i)})},OS=function(e,t,n){switch(e){case Vx.TITLE:return{toComponent:function(){return ES(e,t.title,t.titleAttributes,n)},toString:function(){return SS(e,t.title,t.titleAttributes,n)}};case Bx.BODY:case Bx.HTML:return{toComponent:function(){return wS(t)},toString:function(){return xS(t)}};default:return{toComponent:function(){return DS(e,t)},toString:function(){return CS(e,t,n)}}}},kS=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,i=e.htmlAttributes,a=e.linkTags,o=e.metaTags,s=e.noscriptTags,c=e.scriptTags,l=e.styleTags,u=e.title,d=u===void 0?``:u,f=e.titleAttributes;return{base:OS(Vx.BASE,t,r),bodyAttributes:OS(Bx.BODY,n,r),htmlAttributes:OS(Bx.HTML,i,r),link:OS(Vx.LINK,a,r),meta:OS(Vx.META,o,r),noscript:OS(Vx.NOSCRIPT,s,r),script:OS(Vx.SCRIPT,c,r),style:OS(Vx.STYLE,l,r),title:OS(Vx.TITLE,{title:d,titleAttributes:f},r)}},J=function(e){var t,n=t=function(t){Qx(n,t);function n(){return Yx(this,n),eS(this,t.apply(this,arguments))}return n.prototype.shouldComponentUpdate=function(e){return!(0,Rx.default)(this.props,e)},n.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case Vx.SCRIPT:case Vx.NOSCRIPT:return{innerHTML:t};case Vx.STYLE:return{cssText:t}}throw Error(`<`+e.type+` /> elements are self-closing and can not contain children. Refer to our API for more information.`)},n.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren,i=e.newChildProps,a=e.nestedChildren;return Zx({},r,(t={},t[n.type]=[].concat(r[n.type]||[],[Zx({},i,this.mapNestedChildrenToProps(n,a))]),t))},n.prototype.mapObjectTypeChildren=function(e){var t,n,r=e.child,i=e.newProps,a=e.newChildProps,o=e.nestedChildren;switch(r.type){case Vx.TITLE:return Zx({},i,(t={},t[r.type]=o,t.titleAttributes=Zx({},a),t));case Vx.BODY:return Zx({},i,{bodyAttributes:Zx({},a)});case Vx.HTML:return Zx({},i,{htmlAttributes:Zx({},a)})}return Zx({},i,(n={},n[r.type]=Zx({},a),n))},n.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=Zx({},t);return Object.keys(e).forEach(function(t){var r;n=Zx({},n,(r={},r[t]=e[t],r))}),n},n.prototype.warnOnInvalidChildren=function(e,t){return!0},n.prototype.mapChildrenToProps=function(e,t){var n=this,r={};return y.Children.forEach(e,function(e){if(e&&e.props){var i=e.props,a=i.children,o=TS($x(i,[`children`]));switch(n.warnOnInvalidChildren(e,a),e.type){case Vx.LINK:case Vx.META:case Vx.NOSCRIPT:case Vx.SCRIPT:case Vx.STYLE:r=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:r,newChildProps:o,nestedChildren:a});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:o,nestedChildren:a})}}}),t=this.mapArrayTypeChildrenToProps(r,t),t},n.prototype.render=function(){var t=this.props,n=t.children,r=Zx({},$x(t,[`children`]));return n&&(r=this.mapChildrenToProps(n,r)),y.createElement(e,r)},Xx(n,null,[{key:`canUseDOM`,set:function(t){e.canUseDOM=t}}]),n}(y.Component);return t.propTypes={base:Ix.default.object,bodyAttributes:Ix.default.object,children:Ix.default.oneOfType([Ix.default.arrayOf(Ix.default.node),Ix.default.node]),defaultTitle:Ix.default.string,defer:Ix.default.bool,encodeSpecialCharacters:Ix.default.bool,htmlAttributes:Ix.default.object,link:Ix.default.arrayOf(Ix.default.object),meta:Ix.default.arrayOf(Ix.default.object),noscript:Ix.default.arrayOf(Ix.default.object),onChangeClientState:Ix.default.func,script:Ix.default.arrayOf(Ix.default.object),style:Ix.default.arrayOf(Ix.default.object),title:Ix.default.string,titleAttributes:Ix.default.object,titleTemplate:Ix.default.string},t.defaultProps={defer:!0,encodeSpecialCharacters:!0},t.peek=e.peek,t.rewind=function(){var t=e.rewind();return t||=kS({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:``,titleAttributes:{}}),t},n}((0,Lx.default)(cS,hS,kS)(function(){return null}));J.renderStatic=J.rewind;var Y={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`}},AS={northCoast:[Y.astoria,Y.warrenton,Y.gearhart,Y.seaside,Y[`cannon-beach`],Y[`arch-cape`],Y.manzanita,Y.nehalem,Y.wheeler,Y[`rockaway-beach`],Y.garibaldi,Y[`bay-city`],Y.tillamook,Y.netarts,Y.oceanside],centralCoast:[Y[`pacific-city`],Y.neskowin,Y[`lincoln-city`],Y[`gleneden-beach`],Y[`depoe-bay`],Y[`otter-rock`],Y.newport,Y[`seal-rock`],Y[`south-beach`],Y.waldport,Y.yachats,Y.florence,Y[`dune-city`]],southCoast:[Y.reedsport,Y[`winchester-bay`],Y.gardiner,Y[`north-bend`],Y[`coos-bay`],Y.charleston,Y.bandon,Y.langlois,Y[`port-orford`],Y[`gold-beach`],Y.brookings,Y.harbor]},jS=()=>{let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(!1),o=Ze(),s=o.pathname===`/`;(0,y.useEffect)(()=>{let e=()=>a(window.scrollY>50);return window.addEventListener(`scroll`,e),()=>window.removeEventListener(`scroll`,e)},[]),(0,y.useEffect)(()=>{t(!1),r(null)},[o.pathname]);let c=s&&!i?`bg-transparent`:`bg-[var(--nav-bg)] shadow-md border-b border-[var(--nav-border)]`,l=s?`fixed top-0 left-0 right-0`:`sticky top-0`,u={"North Coast":`/north-coast`,"Central Coast":`/central-coast`,"South Coast":`/south-coast`},d={"North Coast":AS.northCoast,"Central Coast":AS.centralCoast,"South Coast":AS.southCoast},f=({title:e,regionKey:t,isMobile:i=!1})=>i?(0,z.jsx)(`div`,{className:`border-b border-[var(--nav-border)]`,children:(0,z.jsx)(dn,{to:u[t],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:e})}):(0,z.jsxs)(`div`,{className:`relative group flex items-center h-full`,onMouseEnter:()=>r(t),onMouseLeave:()=>r(null),children:[(0,z.jsxs)(dn,{to:u[t],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:[e,(0,z.jsx)(za,{className:`w-3 h-3 opacity-70`})]}),(0,z.jsx)(Sx,{children:n===t&&(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`px-4 py-3 border-b border-[var(--nav-border)] bg-[var(--nav-hover)] mb-2`,children:(0,z.jsx)(dn,{to:u[t],className:`text-xs font-bold text-[var(--nav-text)] uppercase tracking-widest hover:text-white/80`,children:`View All Towns`})}),d[t].map((e,t)=>(0,z.jsx)(dn,{to:e.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:e.name},t))]})})]});return(0,z.jsxs)(`nav`,{className:`${l} w-full z-50 transition-colors duration-300 ${c}`,children:[(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto px-6 hidden lg:block relative`,children:(0,z.jsxs)(`div`,{className:`flex items-center justify-between h-24 relative`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-4 h-full`,children:[(0,z.jsx)(dn,{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`}),(0,z.jsx)(`span`,{className:`text-white/40`,children:`·`}),(0,z.jsx)(f,{title:`NORTH COAST`,regionKey:`North Coast`}),(0,z.jsx)(`span`,{className:`text-white/40`,children:`·`}),(0,z.jsx)(f,{title:`CENTRAL COAST`,regionKey:`Central Coast`})]}),(0,z.jsx)(dn,{to:`/`,className:`absolute left-1/2 transform -translate-x-1/2 flex items-center mt-6 pb-[18px]`,children:(0,z.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`})}),(0,z.jsxs)(`div`,{className:`flex items-center gap-4 h-full relative right-[160px]`,children:[(0,z.jsx)(f,{title:`SOUTH COAST`,regionKey:`South Coast`}),(0,z.jsx)(`span`,{className:`text-white/40`,children:`·`}),(0,z.jsx)(dn,{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`})]})]})}),(0,z.jsxs)(`div`,{className:`lg:hidden px-4 py-4 flex items-center justify-between`,children:[(0,z.jsx)(dn,{to:`/`,className:`z-50 pb-[18px]`,children:(0,z.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`})}),(0,z.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?(0,z.jsx)(ps,{className:`w-7 h-7`}):(0,z.jsx)(ko,{className:`w-7 h-7`})})]}),(0,z.jsx)(Sx,{children:e&&(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`px-4 py-2 space-y-1`,children:[(0,z.jsx)(dn,{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`}),(0,z.jsx)(f,{title:`NORTH COAST`,regionKey:`North Coast`,isMobile:!0}),(0,z.jsx)(f,{title:`CENTRAL COAST`,regionKey:`Central Coast`,isMobile:!0}),(0,z.jsx)(f,{title:`SOUTH COAST`,regionKey:`South Coast`,isMobile:!0}),(0,z.jsx)(dn,{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`})]})})}),(0,z.jsx)(`div`,{className:`absolute top-0 right-0 w-0 h-0 pointer-events-none z-[100]`,children:(0,z.jsx)(`div`,{className:`pointer-events-auto`,children:(0,z.jsx)(Tx,{})})})]})},MS=()=>{let e=[{url:`/images/heroes/home/hero-home-1-1600.webp`,srcSet:`/images/heroes/home/hero-home-1-640.webp 640w, /images/heroes/home/hero-home-1-1024.webp 1024w, /images/heroes/home/hero-home-1-1600.webp 1600w`,alt:`Dramatic Oregon Coast cliffs with ocean waves`},{url:`/images/heroes/home/hero-home-2-1600.webp`,srcSet:`/images/heroes/home/hero-home-2-640.webp 640w, /images/heroes/home/hero-home-2-1024.webp 1024w, /images/heroes/home/hero-home-2-1600.webp 1600w`,alt:`Scenic Oregon Coast beach at sunset`},{url:`/images/heroes/home/hero-home-3-1600.webp`,srcSet:`/images/heroes/home/hero-home-3-640.webp 640w, /images/heroes/home/hero-home-3-1024.webp 1024w, /images/heroes/home/hero-home-3-1600.webp 1600w`,alt:`Rugged Oregon Coast shoreline landscape`}],[t,n]=(0,y.useState)(0);return(0,y.useEffect)(()=>{let t=setInterval(()=>{n(t=>(t+1)%e.length)},6e3);return()=>clearInterval(t)},[e.length]),(0,y.useEffect)(()=>{let t=()=>{e.slice(1).forEach(e=>{let t=new Image;t.srcset=e.srcSet,t.sizes=`100vw`,t.src=e.url})};if(`requestIdleCallback`in window){let e=window.requestIdleCallback(t);return()=>window.cancelIdleCallback(e)}let n=setTimeout(t,2e3);return()=>clearTimeout(n)},[]),(0,z.jsxs)(`section`,{className:`relative w-full h-screen overflow-hidden bg-[#0d1f26]`,children:[(0,z.jsx)(`div`,{className:`absolute inset-0`,children:(0,z.jsx)(Sx,{initial:!1,children:(0,z.jsx)(q.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:(0,z.jsx)(`img`,{src:e[t].url,srcSet:e[t].srcSet,sizes:`100vw`,width:1600,height:883,fetchpriority:`high`,alt:e[t].alt,className:`w-full h-full object-cover object-center`})},t)})}),(0,z.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`}),(0,z.jsx)(`div`,{className:`absolute inset-0 z-20 hero-grain-overlay pointer-events-none`,"aria-hidden":`true`}),(0,z.jsx)(`div`,{className:`absolute inset-0 z-30 flex items-center justify-center px-4`,children:(0,z.jsxs)(`div`,{className:`text-center max-w-4xl text-white`,children:[(0,z.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`}),(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-4 mb-6 opacity-95`,children:[(0,z.jsx)(`div`,{className:`h-px bg-white/70 w-12 sm:w-16 md:w-20`}),(0,z.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`}),(0,z.jsx)(`div`,{className:`h-px bg-white/70 w-12 sm:w-16 md:w-20`})]}),(0,z.jsxs)(`p`,{className:`text-white max-w-[700px] mx-auto px-4 drop-shadow-lg leading-relaxed flex flex-col gap-3`,children:[(0,z.jsx)(`span`,{className:`font-serif italic text-xl sm:text-2xl md:text-3xl text-white/100`,children:`Rugged cliffs. Sandy beaches. Charming towns.`}),(0,z.jsx)(`span`,{className:`font-sans font-light text-base sm:text-lg text-white/90`,children:`Your perfect Pacific Northwest getaway starts here.`})]})]})})]})},NS=()=>{let e={"North Coast":[],"Central Coast":[],"South Coast":[]};Object.entries(Y).forEach(([t,n])=>{let r=n.region;r===`Northern Coast`&&(r=`North Coast`),r===`Southern Coast`&&(r=`South Coast`),e[r]&&e[r].push({name:n.name,slug:t})});let t=[{name:`Facebook`,url:`https://www.facebook.com/OregonCoastal`,icon:(0,z.jsx)(io,{className:`w-5 h-5`})},{name:`Instagram`,url:`https://www.instagram.com/oregoncoastal/`,icon:(0,z.jsx)(_o,{className:`w-5 h-5`})},{name:`TikTok`,url:`https://www.tiktok.com/@oregoncoastal`,icon:(0,z.jsx)(jo,{className:`w-5 h-5`})}];return(0,z.jsxs)(`footer`,{className:`bg-parchment pt-20 pb-12 border-t border-border`,children:[(0,z.jsx)(J,{children:(0,z.jsx)(`script`,{type:`application/ld+json`,children:JSON.stringify({"@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`}})})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 sm:px-6 lg:px-8`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col items-center mb-16 space-y-8`,children:[(0,z.jsx)(dn,{to:`/`,children:(0,z.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`})}),(0,z.jsx)(`div`,{className:`flex items-center space-x-6`,children:t.map(e=>(0,z.jsx)(`a`,{href:e.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":e.name,children:e.icon},e.name))})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-12 mb-16`,children:[`North Coast`,`Central Coast`,`South Coast`].map(t=>(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(dn,{to:`/${t.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:t}),(0,z.jsx)(`div`,{className:`grid grid-cols-2 gap-x-6 gap-y-3`,children:e[t].map(e=>(0,z.jsx)(dn,{to:`/town/${e.slug}`,className:`block text-foreground hover:text-sage font-sans text-sm tracking-wide transition-colors truncate`,children:e.name},e.slug))})]},t))}),(0,z.jsxs)(`div`,{className:`border-t border-border pt-12 text-center`,children:[(0,z.jsx)(`p`,{className:`font-serif italic text-sage mb-4 text-lg`,children:`Exploring the Pacific Northwest`}),(0,z.jsxs)(`p`,{className:`text-foreground font-sans text-sm tracking-widest uppercase mb-8`,children:[`© `,new Date().getFullYear(),` Oregon Coastal Travel Guide`]}),(0,z.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:[(0,z.jsx)(`span`,{children:`Want to make a correction?`}),(0,z.jsx)(`a`,{href:`mailto:[email protected]`,className:`text-sage hover:text-primary font-medium transition-colors`,children:`[email protected]`})]})]})]})]})},PS=({image:e,title:t,author:n,description:r,price:i,buttonText:a,buttonVariant:o=`primary`,externalUrl:s})=>{let c=`
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(0,z.jsxs)(q.div,{whileHover:{y:-4},transition:{duration:.3},className:`editorial-card overflow-hidden flex flex-col h-full group`,children:[(0,z.jsx)(`div`,{className:`h-64 overflow-hidden relative bg-parchment p-8 flex items-center justify-center`,children:(0,z.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`})}),(0,z.jsxs)(`div`,{className:`p-6 md:p-8 flex flex-col flex-grow bg-white`,children:[(0,z.jsx)(`h3`,{className:`text-xl md:text-2xl font-serif font-bold uppercase tracking-widest text-primary mb-2 leading-tight`,children:t}),n&&(0,z.jsx)(`p`,{className:`subheading text-sm mb-5`,children:n}),(0,z.jsx)(`p`,{className:`text-foreground font-sans mb-8 leading-relaxed flex-grow whitespace-pre-line text-sm md:text-base`,children:r}),(0,z.jsxs)(`div`,{className:`pt-6 mt-auto flex flex-col sm:flex-row items-center justify-between gap-4`,children:[(0,z.jsx)(`span`,{className:`text-2xl font-serif font-bold text-primary tracking-widest`,children:i}),s?(0,z.jsx)(`a`,{href:s,target:`_blank`,rel:`noopener noreferrer`,className:c,children:a}):(0,z.jsx)(`button`,{className:c,onClick:()=>{let e=document.createElement(`div`);e.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`,e.innerHTML=`<span class="text-sm font-sans text-primary">Adding ${t} to cart functionality coming soon!</span>`,document.body.appendChild(e),setTimeout(()=>e.remove(),3e3)},children:a})]})]})]})},FS=()=>(0,z.jsx)(`section`,{className:`bg-gray-50 py-24 px-4 border-t border-gray-100`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:`text-center mb-16`,children:[(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4 tracking-tight`,children:`Apps and Books`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-[#2d5016] mx-auto rounded-full mb-6`}),(0,z.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.`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 lg:gap-12`,children:[{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`}].map((e,t)=>(0,z.jsx)(q.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6,delay:t*.2},children:(0,z.jsx)(PS,{...e})},e.id))})]})}),IS=e=>!e||!Array.isArray(e)||e.length===0?null:{"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:e.map(e=>({"@type":`Question`,name:e.question||``,acceptedAnswer:{"@type":`Answer`,text:e.answer||``}}))},LS=({question:e,answer:t})=>{let[n,r]=(0,y.useState)(!1);return(0,z.jsxs)(`div`,{className:`shadow-editorial bg-white mb-4 rounded-none`,children:[(0,z.jsxs)(`button`,{onClick:()=>r(!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:[(0,z.jsx)(`span`,{className:`font-serif font-bold text-lg md:text-xl text-primary group-hover:text-sage transition-colors pr-8`,children:e}),(0,z.jsx)(`span`,{className:`text-sage flex-shrink-0`,children:n?(0,z.jsx)(Ha,{className:`w-5 h-5`}):(0,z.jsx)(za,{className:`w-5 h-5`})})]}),(0,z.jsx)(Sx,{children:n&&(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`p-6 text-foreground font-sans leading-relaxed text-base md:text-lg bg-parchment/20`,children:t})})})]})},RS=({faqs:e,title:t=`Frequently Asked Questions`})=>{if(!e||e.length===0)return null;let n=IS(e);return(0,z.jsxs)(`section`,{className:`py-20 bg-parchment`,children:[n&&(0,z.jsx)(J,{children:(0,z.jsx)(`script`,{type:`application/ld+json`,children:JSON.stringify(n)})}),(0,z.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(`p`,{className:`subheading text-lg md:text-xl mb-4`,children:`Travel insights`}),(0,z.jsx)(`h2`,{className:`text-3xl md:text-5xl font-serif font-bold uppercase tracking-widest text-primary mb-6`,children:t}),(0,z.jsx)(`div`,{className:`w-24 h-px bg-sage mx-auto`})]}),(0,z.jsx)(`div`,{className:`space-y-4`,children:e.map((e,t)=>(0,z.jsx)(LS,{question:e.question,answer:e.answer},t))})]})]})},zS=[{id:`killer-whales`,name:`Killer Whales`,icon:oo,image:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/d22f5d4c42383b7d49e7612828a0cd56.png`,altText:`Killer Whales infographic`,available:!0},{id:`whales`,name:`Whales`,icon:oo,image:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/fc7ad6dce875108397af51f212950b44.jpg`,altText:`Whales infographic`,available:!0},{id:`seals`,name:`Seals`,icon:oo,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:oo,image:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/25965a0e909ad1eb24933087f802d4dc.jpg`,altText:`Sea Lions infographic`,available:!0},{id:`seaweed`,name:`Seaweed`,icon:ss,image:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/d275d0516579c3b5b16f77936d3281ea.jpg`,altText:`Seaweed infographic`,available:!0},{id:`clams`,name:`Clams`,icon:Uo,image:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/9d2f373d0a4ff5336ac8f6bf3056f817.jpg`,altText:`Clams infographic`,available:!0},{id:`crabs`,name:`Crabs`,icon:Uo,image:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/3e8d6798331caefe0adec7c520f4049c.jpg`,altText:`Crabs infographic`,available:!0},{id:`octopus`,name:`Octopus`,icon:ss,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:Oa,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:oo,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:ba,image:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/a513f3241ee7ce8b13bba9a17b90c751.jpg`,altText:`River Fish infographic`,available:!0}],BS=()=>{let[e,t]=(0,y.useState)(zS[0]);return(0,z.jsx)(`section`,{className:`py-20 px-4 bg-white border-y border-border`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:`text-center mb-16`,children:[(0,z.jsx)(`p`,{className:`subheading text-lg md:text-xl mb-4`,children:`Discover the natural inhabitants`}),(0,z.jsx)(`h2`,{className:`text-3xl md:text-5xl font-serif font-bold uppercase tracking-widest text-primary mb-6`,children:`Wildlife Guide`}),(0,z.jsx)(`div`,{className:`w-24 h-px bg-sage mx-auto mb-6`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`hidden md:grid md:grid-cols-[280px_1fr] gap-10`,children:[(0,z.jsx)(q.div,{initial:{opacity:0,x:-30},whileInView:{opacity:1,x:0},viewport:{once:!0},className:`space-y-3`,children:zS.map(n=>{let r=n.icon,i=e.id===n.id;return(0,z.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:[(0,z.jsx)(r,{className:`w-4 h-4 ${i?`text-white`:`text-sage`}`}),(0,z.jsx)(`span`,{className:`flex-1`,children:n.name})]},n.id)})}),(0,z.jsx)(q.div,{initial:{opacity:0,x:30},whileInView:{opacity:1,x:0},viewport:{once:!0},className:`editorial-card overflow-hidden border border-border`,children:(0,z.jsx)(Sx,{mode:`wait`,children:(0,z.jsxs)(q.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:[(0,z.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}),(0,z.jsx)(`div`,{className:`wildlife-image-container bg-parchment p-4 rounded-md`,children:(0,z.jsx)(`img`,{src:e.image,alt:e.altText,className:`w-full h-auto object-contain drop-shadow-sm`})})]},e.id)})})]}),(0,z.jsxs)(`div`,{className:`md:hidden`,children:[(0,z.jsx)(`div`,{className:`overflow-x-auto pb-4 mb-6 custom-scrollbar -mx-4 px-4`,children:(0,z.jsx)(`div`,{className:`flex gap-3 min-w-max`,children:zS.map(n=>{let r=n.icon,i=e.id===n.id;return(0,z.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:[(0,z.jsx)(r,{className:`w-4 h-4 ${i?`text-white`:`text-sage`}`}),(0,z.jsx)(`span`,{children:n.name})]},n.id)})})}),(0,z.jsx)(q.div,{initial:{opacity:0},whileInView:{opacity:1},viewport:{once:!0},className:`editorial-card overflow-hidden border border-border`,children:(0,z.jsx)(Sx,{mode:`wait`,children:(0,z.jsxs)(q.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:[(0,z.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}),(0,z.jsx)(`div`,{className:`bg-parchment p-2 rounded-md`,children:(0,z.jsx)(`img`,{src:e.image,alt:e.altText,className:`w-full h-auto object-contain`})})]},e.id)})})]})]})})},VS=({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:r=`https://oregoncoastal.com/`,type:i=`LocalBusiness`,breadcrumbs:a})=>{let o={"@context":`https://schema.org`,"@type":i,name:e,description:t,url:r,sameAs:[`https://www.facebook.com/OregonCoastal`,`https://www.etsy.com/shop/OregonCoastal`]};n&&(o.geo={"@type":`GeoCoordinates`,latitude:n.lat,longitude:n.lng});let s=a?{"@context":`https://schema.org`,"@type":`BreadcrumbList`,itemListElement:a.map((e,t)=>({"@type":`ListItem`,position:t+1,name:e.name,item:e.url.startsWith(`http`)?e.url:`https://oregoncoastal.com${e.url}`}))}:null;return(0,z.jsxs)(J,{children:[(0,z.jsx)(`script`,{type:`application/ld+json`,children:JSON.stringify(o)}),s&&(0,z.jsx)(`script`,{type:`application/ld+json`,children:JSON.stringify(s)})]})},rne=()=>{let e=Object.values(Y).map(e=>e.name),t=[...e,...e];return(0,z.jsx)(`div`,{className:`w-full bg-parchment border-y border-border py-4 overflow-hidden relative flex`,children:(0,z.jsx)(`div`,{className:`flex animate-marquee whitespace-nowrap`,children:t.map((e,t)=>(0,z.jsxs)(`div`,{className:`flex items-center mx-4`,children:[(0,z.jsx)(`span`,{className:`font-serif italic text-sage text-lg px-4`,children:e}),(0,z.jsx)(`span`,{className:`text-border mx-2`,children:`•`})]},t))})})},X=({objectId:e,title:t,sourcePage:n,pageType:r,module:i,affiliateLink:a,theme:o=`light`,className:s})=>{let c=If();if(!c||!e)return null;let{isSaved:l,toggleBookmark:u,pendingId:d}=c,f=l(e),p=d===e,m={source_page:n,page_type:r,module:i};return(0,z.jsx)(`button`,{type:`button`,"aria-pressed":f,"aria-label":f?`Remove ${t} from your trip`:`Save ${t} to your trip`,title:f?`Remove ${t} from your trip`:`Save ${t} to your trip`,disabled:p,onClick:n=>{n.preventDefault(),n.stopPropagation(),u(e,{title:t,source:m,affiliateLink:a})},className:R(`inline-flex items-center justify-center rounded-full transition-all duration-200 flex-shrink-0`,`w-9 h-9 active:scale-95`,`disabled:opacity-50 disabled:cursor-not-allowed`,o===`dark`?`bg-white/15 text-white hover:bg-white/25 backdrop-blur-sm`:`bg-black/5 text-foreground hover:bg-black/10`,f&&(o===`dark`?`text-amber-300`:`text-sage`),s),children:f?(0,z.jsx)(Aa,{className:`w-4 h-4`}):(0,z.jsx)(ja,{className:`w-4 h-4`})})},ine=({name:e,description:t,slug:n,image:r})=>{let i=bee(n);return(0,z.jsxs)(q.div,{whileHover:{y:-4},className:`editorial-card overflow-hidden flex flex-col h-full group`,children:[(0,z.jsxs)(dn,{to:`/town/${n}`,className:`block h-64 overflow-hidden relative`,children:[(0,z.jsx)(`img`,{src:r,alt:`Explore ${e}`,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-black/10 group-hover:bg-transparent transition-colors duration-300`})]}),(0,z.jsxs)(`div`,{className:`p-6 md:p-8 flex flex-col flex-grow bg-white`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between gap-2 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-2xl md:text-3xl font-serif font-bold uppercase tracking-widest text-primary`,children:e}),i&&(0,z.jsx)(X,{objectId:i.object_id,title:e,sourcePage:`/`,pageType:`homepage`,module:`destination-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`p`,{className:`font-serif italic text-sage mb-6 leading-relaxed line-clamp-3 flex-grow text-base md:text-lg`,children:t}),(0,z.jsxs)(dn,{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 `,(0,z.jsx)(Sa,{className:`ml-2 w-4 h-4`})]})]})]})},ane=()=>{let e=[Y.astoria,Y[`cannon-beach`],Y.newport,Y.yachats,Y.bandon,Y.brookings].filter(Boolean);return(0,z.jsx)(`section`,{className:`py-20 px-4 bg-white relative border-b border-border`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.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`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`w-24 h-px bg-sage mx-auto mt-8`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8 md:gap-10`,children:e.map((e,t)=>(0,z.jsx)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},children:(0,z.jsx)(ine,{name:e.name,description:e.description,slug:e.route.split(`/`).pop(),image:e.heroImage})},e.name))})]})})},one=()=>{let e=F(),t=Ze(),n=`Oregon Coast Hotels and Travel Guide`,r=`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=Gf(t.pathname),a=Kf(`Oregon Coast`,`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/ef2a8c8e278e0a6afb62c1ed916892d4.jpg`);return(0,y.useEffect)(()=>{let e=document.createElement(`script`);return e.src=`https://www.viator.com/orion/partner/widget.js`,e.async=!0,document.body.appendChild(e),document.title=n,Xf(i),Zf(r),Qf(i),$f(n),ep(r),tp(a),np(n),rp(r),ip(a),()=>{document.body.contains(e)&&document.body.removeChild(e)}},[t.pathname,i,n,r,a]),(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`noscript`,{children:(0,z.jsx)(`iframe`,{src:`https://www.googletagmanager.com/ns.html?id=GTM-MNX8L3BH`,height:`0`,width:`0`,style:{display:`none`,visibility:`hidden`}})}),(0,z.jsxs)(J,{children:[(0,z.jsx)(`script`,{type:`application/ld+json`,children:JSON.stringify({"@context":`https://schema.org`,"@type":`Organization`,name:`Oregon Coast Hotels and Travel Guide`,url:`https://oregoncoastal.com/`})}),(0,z.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');`})]}),(0,z.jsx)(VS,{}),(0,z.jsxs)(`div`,{className:`min-h-screen bg-background flex flex-col font-sans`,children:[(0,z.jsx)(jS,{}),(0,z.jsx)(`div`,{className:`relative`,children:(0,z.jsx)(MS,{})}),(0,z.jsx)(rne,{}),(0,z.jsx)(`section`,{className:`bg-parchment py-24 px-4 flex-grow border-b border-border`,children:(0,z.jsxs)(`div`,{className:`max-w-4xl mx-auto text-center`,children:[(0,z.jsx)(q.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`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`w-24 h-px bg-sage mx-auto mb-10`}),(0,z.jsx)(q.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.`})]})}),(0,z.jsx)(ane,{}),(0,z.jsx)(BS,{}),(0,z.jsx)(`section`,{className:`py-20 bg-parchment border-y border-border`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto px-4`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(`p`,{className:`subheading text-lg mb-4`,children:`Curated experiences`}),(0,z.jsx)(`h2`,{className:`text-3xl md:text-5xl font-serif font-bold uppercase tracking-widest text-primary mb-6`,children:`Recommended Tours`}),(0,z.jsx)(`div`,{className:`w-24 h-px bg-sage mx-auto`})]}),(0,z.jsx)(`div`,{className:`editorial-card p-4 md:p-8 bg-white`,children:(0,z.jsx)(`div`,{"data-vi-partner-id":`P00287872`,"data-vi-widget-ref":`W-ac581dda-8b2c-4289-b142-c09c1933db68`,className:`min-h-[250px]`})})]})}),(0,z.jsx)(RS,{faqs:[{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.`}],title:`Trip Planning FAQs`}),(0,z.jsx)(FS,{}),(0,z.jsx)(`section`,{className:`py-24 px-4 bg-white border-t border-border`,children:(0,z.jsx)(`div`,{className:`max-w-4xl mx-auto text-center`,children:(0,z.jsxs)(q.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:[(0,z.jsx)(`p`,{className:`subheading text-xl mb-4`,children:`Partner with us`}),(0,z.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?`}),(0,z.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 `,(0,z.jsx)(`span`,{className:`font-bold text-sage`,children:`9 open nights`}),` between May and October.`]}),(0,z.jsxs)(`button`,{onClick:()=>{e(`/host`),window.scrollTo(0,0)},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`,(0,z.jsx)(Sa,{className:`w-5 h-5`})]})]})})}),(0,z.jsx)(`section`,{className:`bg-parchment py-20 border-t border-border`,"aria-labelledby":`live-whale-sightings-heading`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto px-4`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-10`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`w-24 h-px bg-sage mx-auto mt-6`})]}),(0,z.jsx)(`div`,{style:{maxWidth:`900px`,margin:`0 auto`,padding:`20px 16px`},children:(0,z.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`})})]})}),(0,z.jsx)(NS,{})]})]})};function sne(){return(0,z.jsx)(Ct,{to:`/hotels-map`,replace:!0})}function HS(e,t){let n=(0,US.useRef)(t);(0,US.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])}var US,WS=o((()=>{US=u(p(),1)}));function cne(e,t,n){t.center!==n.center&&e.setLatLng(t.center),t.radius!=null&&t.radius!==n.radius&&e.setRadius(t.radius)}var lne=o((()=>{}));function GS(e){return Object.freeze({__version:1,map:e})}function KS(e,t){return Object.freeze({...e,...t})}function qS(){let e=(0,JS.useContext)(YS);if(e==null)throw Error(`No context provided: useLeafletContext() can only be used in a descendant of <MapContainer>`);return e}var JS,YS,XS,ZS=o((()=>{JS=u(p(),1),YS=(0,JS.createContext)(null),XS=YS.Provider}));function QS(e){function t(t,n){let{instance:r,context:i}=e(t).current;return(0,tC.useImperativeHandle)(n,()=>r),t.children==null?null:tC.createElement(XS,{value:i},t.children)}return(0,tC.forwardRef)(t)}function $S(e){function t(t,n){let[r,i]=(0,tC.useState)(!1),{instance:a}=e(t,i).current;(0,tC.useImperativeHandle)(n,()=>a),(0,tC.useEffect)(function(){r&&a.update()},[a,r,t.children]);let o=a._contentNode;return o?(0,nC.createPortal)(t.children,o):null}return(0,tC.forwardRef)(t)}function eC(e){function t(t,n){let{instance:r}=e(t).current;return(0,tC.useImperativeHandle)(n,()=>r),null}return(0,tC.forwardRef)(t)}var tC,nC,rC=o((()=>{tC=u(p(),1),nC=u(_(),1),ZS()}));function iC(e){return function(t){let n=qS(),r=e(t,n),{instance:i}=r.current,a=(0,aC.useRef)(t.position),{position:o}=t;return(0,aC.useEffect)(function(){return i.addTo(n.map),function(){i.remove()}},[n.map,i]),(0,aC.useEffect)(function(){o!=null&&o!==a.current&&(i.setPosition(o),a.current=o)},[i,o]),r}}var aC,oC=o((()=>{aC=u(p(),1),ZS()}));function sC(e,t){let n=(0,cC.useRef)();(0,cC.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])}var cC,lC=o((()=>{cC=u(p(),1)}));function uC(e,t){let n=e.pane??t.pane;return n?{...e,pane:n}:e}var dC=o((()=>{}));function fC(e,t){return function(n,r){let i=qS(),a=e(uC(n,i),i);return HS(i.map,n.attribution),sC(a.current,n.eventHandlers),t(a.current,i,n,r),a}}var pC=o((()=>{WS(),ZS(),lC(),dC()})),mC=s(((e,t,n)=>{(function(n,r){typeof e==`object`&&t!==void 0?r(e):typeof define==`function`&&define.amd?define([`exports`],r):(n=typeof globalThis<`u`?globalThis:n||self,r(n.leaflet={}))})(n,(function(e){var t=`1.9.4`;function n(e){for(var t,n=1,r=arguments.length,i;n<r;n++)for(t in i=arguments[n],i)e[t]=i[t];return e}var r=Object.create||(function(){function e(){}return function(t){return e.prototype=t,new e}})();function i(e,t){var n=Array.prototype.slice;if(e.bind)return e.bind.apply(e,n.call(arguments,1));var r=n.call(arguments,2);return function(){return e.apply(t,r.length?r.concat(n.call(arguments)):arguments)}}var a=0;function o(e){return`_leaflet_id`in e||(e._leaflet_id=++a),e._leaflet_id}function s(e,t,n){var r,i,a,o=function(){r=!1,i&&=(a.apply(n,i),!1)};return a=function(){r?i=arguments:(e.apply(n,arguments),setTimeout(o,t),r=!0)},a}function c(e,t,n){var r=t[1],i=t[0],a=r-i;return e===r&&n?e:((e-i)%a+a)%a+i}function l(){return!1}function u(e,t){if(t===!1)return e;var n=10**(t===void 0?6:t);return Math.round(e*n)/n}function d(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,``)}function f(e){return d(e).split(/\s+/)}function p(e,t){for(var n in Object.prototype.hasOwnProperty.call(e,`options`)||(e.options=e.options?r(e.options):{}),t)e.options[n]=t[n];return e.options}function m(e,t,n){var r=[];for(var i in e)r.push(encodeURIComponent(n?i.toUpperCase():i)+`=`+encodeURIComponent(e[i]));return(!t||t.indexOf(`?`)===-1?`?`:`&`)+r.join(`&`)}var h=/\{ *([\w_ -]+) *\}/g;function g(e,t){return e.replace(h,function(e,n){var r=t[n];if(r===void 0)throw Error(`No value provided for variable `+e);return typeof r==`function`&&(r=r(t)),r})}var _=Array.isArray||function(e){return Object.prototype.toString.call(e)===`[object Array]`};function v(e,t){for(var n=0;n<e.length;n++)if(e[n]===t)return n;return-1}var y=`data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=`;function b(e){return window[`webkit`+e]||window[`moz`+e]||window[`ms`+e]}var x=0;function S(e){var t=+new Date,n=Math.max(0,16-(t-x));return x=t+n,window.setTimeout(e,n)}var C=window.requestAnimationFrame||b(`RequestAnimationFrame`)||S,w=window.cancelAnimationFrame||b(`CancelAnimationFrame`)||b(`CancelRequestAnimationFrame`)||function(e){window.clearTimeout(e)};function T(e,t,n){if(n&&C===S)e.call(t);else return C.call(window,i(e,t))}function E(e){e&&w.call(window,e)}var D={__proto__:null,extend:n,create:r,bind:i,get lastId(){return a},stamp:o,throttle:s,wrapNum:c,falseFn:l,formatNum:u,trim:d,splitWords:f,setOptions:p,getParamString:m,template:g,isArray:_,indexOf:v,emptyImageUrl:y,requestFn:C,cancelFn:w,requestAnimFrame:T,cancelAnimFrame:E};function O(){}O.extend=function(e){var t=function(){p(this),this.initialize&&this.initialize.apply(this,arguments),this.callInitHooks()},i=t.__super__=this.prototype,a=r(i);for(var o in a.constructor=t,t.prototype=a,this)Object.prototype.hasOwnProperty.call(this,o)&&o!==`prototype`&&o!==`__super__`&&(t[o]=this[o]);return e.statics&&n(t,e.statics),e.includes&&(ee(e.includes),n.apply(null,[a].concat(e.includes))),n(a,e),delete a.statics,delete a.includes,a.options&&(a.options=i.options?r(i.options):{},n(a.options,e.options)),a._initHooks=[],a.callInitHooks=function(){if(!this._initHooksCalled){i.callInitHooks&&i.callInitHooks.call(this),this._initHooksCalled=!0;for(var e=0,t=a._initHooks.length;e<t;e++)a._initHooks[e].call(this)}},t},O.include=function(e){var t=this.prototype.options;return n(this.prototype,e),e.options&&(this.prototype.options=t,this.mergeOptions(e.options)),this},O.mergeOptions=function(e){return n(this.prototype.options,e),this},O.addInitHook=function(e){var t=Array.prototype.slice.call(arguments,1),n=typeof e==`function`?e:function(){this[e].apply(this,t)};return this.prototype._initHooks=this.prototype._initHooks||[],this.prototype._initHooks.push(n),this};function ee(e){if(typeof L<`u`&&L&&L.Mixin){e=_(e)?e:[e];for(var t=0;t<e.length;t++)e[t]===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.`,Error().stack)}}var k={on:function(e,t,n){if(typeof e==`object`)for(var r in e)this._on(r,e[r],t);else{e=f(e);for(var i=0,a=e.length;i<a;i++)this._on(e[i],t,n)}return this},off:function(e,t,n){if(!arguments.length)delete this._events;else if(typeof e==`object`)for(var r in e)this._off(r,e[r],t);else{e=f(e);for(var i=arguments.length===1,a=0,o=e.length;a<o;a++)i?this._off(e[a]):this._off(e[a],t,n)}return this},_on:function(e,t,n,r){if(typeof t!=`function`)console.warn(`wrong listener type: `+typeof t);else if(this._listens(e,t,n)===!1){n===this&&(n=void 0);var i={fn:t,ctx:n};r&&(i.once=!0),this._events=this._events||{},this._events[e]=this._events[e]||[],this._events[e].push(i)}},_off:function(e,t,n){var r,i,a;if(this._events&&(r=this._events[e],r)){if(arguments.length===1){if(this._firingCount)for(i=0,a=r.length;i<a;i++)r[i].fn=l;delete this._events[e]}else if(typeof t!=`function`)console.warn(`wrong listener type: `+typeof t);else{var o=this._listens(e,t,n);if(o!==!1){var s=r[o];this._firingCount&&(s.fn=l,this._events[e]=r=r.slice()),r.splice(o,1)}}}},fire:function(e,t,r){if(!this.listens(e,r))return this;var i=n({},t,{type:e,target:this,sourceTarget:t&&t.sourceTarget||this});if(this._events){var a=this._events[e];if(a){this._firingCount=this._firingCount+1||1;for(var o=0,s=a.length;o<s;o++){var c=a[o],l=c.fn;c.once&&this.off(e,l,c.ctx),l.call(c.ctx||this,i)}this._firingCount--}}return r&&this._propagateEvent(i),this},listens:function(e,t,n,r){typeof e!=`string`&&console.warn(`"string" type argument expected`);var i=t;typeof t!=`function`&&(r=!!t,i=void 0,n=void 0);var a=this._events&&this._events[e];if(a&&a.length&&this._listens(e,i,n)!==!1)return!0;if(r){for(var o in this._eventParents)if(this._eventParents[o].listens(e,t,n,r))return!0}return!1},_listens:function(e,t,n){if(!this._events)return!1;var r=this._events[e]||[];if(!t)return!!r.length;n===this&&(n=void 0);for(var i=0,a=r.length;i<a;i++)if(r[i].fn===t&&r[i].ctx===n)return i;return!1},once:function(e,t,n){if(typeof e==`object`)for(var r in e)this._on(r,e[r],t,!0);else{e=f(e);for(var i=0,a=e.length;i<a;i++)this._on(e[i],t,n,!0)}return this},addEventParent:function(e){return this._eventParents=this._eventParents||{},this._eventParents[o(e)]=e,this},removeEventParent:function(e){return this._eventParents&&delete this._eventParents[o(e)],this},_propagateEvent:function(e){for(var t in this._eventParents)this._eventParents[t].fire(e.type,n({layer:e.target,propagatedFrom:e.target},e),!0)}};k.addEventListener=k.on,k.removeEventListener=k.clearAllEventListeners=k.off,k.addOneTimeEventListener=k.once,k.fireEvent=k.fire,k.hasEventListeners=k.listens;var te=O.extend(k);function A(e,t,n){this.x=n?Math.round(e):e,this.y=n?Math.round(t):t}var j=Math.trunc||function(e){return e>0?Math.floor(e):Math.ceil(e)};A.prototype={clone:function(){return new A(this.x,this.y)},add:function(e){return this.clone()._add(M(e))},_add:function(e){return this.x+=e.x,this.y+=e.y,this},subtract:function(e){return this.clone()._subtract(M(e))},_subtract:function(e){return this.x-=e.x,this.y-=e.y,this},divideBy:function(e){return this.clone()._divideBy(e)},_divideBy:function(e){return this.x/=e,this.y/=e,this},multiplyBy:function(e){return this.clone()._multiplyBy(e)},_multiplyBy:function(e){return this.x*=e,this.y*=e,this},scaleBy:function(e){return new A(this.x*e.x,this.y*e.y)},unscaleBy:function(e){return new A(this.x/e.x,this.y/e.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=j(this.x),this.y=j(this.y),this},distanceTo:function(e){e=M(e);var t=e.x-this.x,n=e.y-this.y;return Math.sqrt(t*t+n*n)},equals:function(e){return e=M(e),e.x===this.x&&e.y===this.y},contains:function(e){return e=M(e),Math.abs(e.x)<=Math.abs(this.x)&&Math.abs(e.y)<=Math.abs(this.y)},toString:function(){return`Point(`+u(this.x)+`, `+u(this.y)+`)`}};function M(e,t,n){return e instanceof A?e:_(e)?new A(e[0],e[1]):e==null?e:typeof e==`object`&&`x`in e&&`y`in e?new A(e.x,e.y):new A(e,t,n)}function N(e,t){if(e)for(var n=t?[e,t]:e,r=0,i=n.length;r<i;r++)this.extend(n[r])}N.prototype={extend:function(e){var t,n;if(!e)return this;if(e instanceof A||typeof e[0]==`number`||`x`in e)t=n=M(e);else if(e=ne(e),t=e.min,n=e.max,!t||!n)return this;return!this.min&&!this.max?(this.min=t.clone(),this.max=n.clone()):(this.min.x=Math.min(t.x,this.min.x),this.max.x=Math.max(n.x,this.max.x),this.min.y=Math.min(t.y,this.min.y),this.max.y=Math.max(n.y,this.max.y)),this},getCenter:function(e){return M((this.min.x+this.max.x)/2,(this.min.y+this.max.y)/2,e)},getBottomLeft:function(){return M(this.min.x,this.max.y)},getTopRight:function(){return M(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(e){var t,n;return e=typeof e[0]==`number`||e instanceof A?M(e):ne(e),e instanceof N?(t=e.min,n=e.max):t=n=e,t.x>=this.min.x&&n.x<=this.max.x&&t.y>=this.min.y&&n.y<=this.max.y},intersects:function(e){e=ne(e);var t=this.min,n=this.max,r=e.min,i=e.max,a=i.x>=t.x&&r.x<=n.x,o=i.y>=t.y&&r.y<=n.y;return a&&o},overlaps:function(e){e=ne(e);var t=this.min,n=this.max,r=e.min,i=e.max,a=i.x>t.x&&r.x<n.x,o=i.y>t.y&&r.y<n.y;return a&&o},isValid:function(){return!!(this.min&&this.max)},pad:function(e){var t=this.min,n=this.max,r=Math.abs(t.x-n.x)*e,i=Math.abs(t.y-n.y)*e;return ne(M(t.x-r,t.y-i),M(n.x+r,n.y+i))},equals:function(e){return e?(e=ne(e),this.min.equals(e.getTopLeft())&&this.max.equals(e.getBottomRight())):!1}};function ne(e,t){return!e||e instanceof N?e:new N(e,t)}function re(e,t){if(e)for(var n=t?[e,t]:e,r=0,i=n.length;r<i;r++)this.extend(n[r])}re.prototype={extend:function(e){var t=this._southWest,n=this._northEast,r,i;if(e instanceof P)r=e,i=e;else if(e instanceof re){if(r=e._southWest,i=e._northEast,!r||!i)return this}else return e?this.extend(ae(e)||ie(e)):this;return!t&&!n?(this._southWest=new P(r.lat,r.lng),this._northEast=new P(i.lat,i.lng)):(t.lat=Math.min(r.lat,t.lat),t.lng=Math.min(r.lng,t.lng),n.lat=Math.max(i.lat,n.lat),n.lng=Math.max(i.lng,n.lng)),this},pad:function(e){var t=this._southWest,n=this._northEast,r=Math.abs(t.lat-n.lat)*e,i=Math.abs(t.lng-n.lng)*e;return new re(new P(t.lat-r,t.lng-i),new P(n.lat+r,n.lng+i))},getCenter:function(){return new P((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 P(this.getNorth(),this.getWest())},getSouthEast:function(){return new P(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(e){e=typeof e[0]==`number`||e instanceof P||`lat`in e?ae(e):ie(e);var t=this._southWest,n=this._northEast,r,i;return e instanceof re?(r=e.getSouthWest(),i=e.getNorthEast()):r=i=e,r.lat>=t.lat&&i.lat<=n.lat&&r.lng>=t.lng&&i.lng<=n.lng},intersects:function(e){e=ie(e);var t=this._southWest,n=this._northEast,r=e.getSouthWest(),i=e.getNorthEast(),a=i.lat>=t.lat&&r.lat<=n.lat,o=i.lng>=t.lng&&r.lng<=n.lng;return a&&o},overlaps:function(e){e=ie(e);var t=this._southWest,n=this._northEast,r=e.getSouthWest(),i=e.getNorthEast(),a=i.lat>t.lat&&r.lat<n.lat,o=i.lng>t.lng&&r.lng<n.lng;return a&&o},toBBoxString:function(){return[this.getWest(),this.getSouth(),this.getEast(),this.getNorth()].join(`,`)},equals:function(e,t){return e?(e=ie(e),this._southWest.equals(e.getSouthWest(),t)&&this._northEast.equals(e.getNorthEast(),t)):!1},isValid:function(){return!!(this._southWest&&this._northEast)}};function ie(e,t){return e instanceof re?e:new re(e,t)}function P(e,t,n){if(isNaN(e)||isNaN(t))throw Error(`Invalid LatLng object: (`+e+`, `+t+`)`);this.lat=+e,this.lng=+t,n!==void 0&&(this.alt=+n)}P.prototype={equals:function(e,t){return e?(e=ae(e),Math.max(Math.abs(this.lat-e.lat),Math.abs(this.lng-e.lng))<=(t===void 0?1e-9:t)):!1},toString:function(e){return`LatLng(`+u(this.lat,e)+`, `+u(this.lng,e)+`)`},distanceTo:function(e){return se.distance(this,ae(e))},wrap:function(){return se.wrapLatLng(this)},toBounds:function(e){var t=180*e/40075017,n=t/Math.cos(Math.PI/180*this.lat);return ie([this.lat-t,this.lng-n],[this.lat+t,this.lng+n])},clone:function(){return new P(this.lat,this.lng,this.alt)}};function ae(e,t,n){return e instanceof P?e:_(e)&&typeof e[0]!=`object`?e.length===3?new P(e[0],e[1],e[2]):e.length===2?new P(e[0],e[1]):null:e==null?e:typeof e==`object`&&`lat`in e?new P(e.lat,`lng`in e?e.lng:e.lon,e.alt):t===void 0?null:new P(e,t,n)}var oe={latLngToPoint:function(e,t){var n=this.projection.project(e),r=this.scale(t);return this.transformation._transform(n,r)},pointToLatLng:function(e,t){var n=this.scale(t),r=this.transformation.untransform(e,n);return this.projection.unproject(r)},project:function(e){return this.projection.project(e)},unproject:function(e){return this.projection.unproject(e)},scale:function(e){return 256*2**e},zoom:function(e){return Math.log(e/256)/Math.LN2},getProjectedBounds:function(e){if(this.infinite)return null;var t=this.projection.bounds,n=this.scale(e);return new N(this.transformation.transform(t.min,n),this.transformation.transform(t.max,n))},infinite:!1,wrapLatLng:function(e){var t=this.wrapLng?c(e.lng,this.wrapLng,!0):e.lng,n=this.wrapLat?c(e.lat,this.wrapLat,!0):e.lat,r=e.alt;return new P(n,t,r)},wrapLatLngBounds:function(e){var t=e.getCenter(),n=this.wrapLatLng(t),r=t.lat-n.lat,i=t.lng-n.lng;if(r===0&&i===0)return e;var a=e.getSouthWest(),o=e.getNorthEast();return new re(new P(a.lat-r,a.lng-i),new P(o.lat-r,o.lng-i))}},se=n({},oe,{wrapLng:[-180,180],R:6371e3,distance:function(e,t){var n=Math.PI/180,r=e.lat*n,i=t.lat*n,a=Math.sin((t.lat-e.lat)*n/2),o=Math.sin((t.lng-e.lng)*n/2),s=a*a+Math.cos(r)*Math.cos(i)*o*o,c=2*Math.atan2(Math.sqrt(s),Math.sqrt(1-s));return this.R*c}}),ce=6378137,le={R:ce,MAX_LATITUDE:85.0511287798,project:function(e){var t=Math.PI/180,n=this.MAX_LATITUDE,r=Math.max(Math.min(n,e.lat),-n),i=Math.sin(r*t);return new A(this.R*e.lng*t,this.R*Math.log((1+i)/(1-i))/2)},unproject:function(e){var t=180/Math.PI;return new P((2*Math.atan(Math.exp(e.y/this.R))-Math.PI/2)*t,e.x*t/this.R)},bounds:(function(){var e=ce*Math.PI;return new N([-e,-e],[e,e])})()};function ue(e,t,n,r){_(e)?(this._a=e[0],this._b=e[1],this._c=e[2],this._d=e[3]):(this._a=e,this._b=t,this._c=n,this._d=r)}ue.prototype={transform:function(e,t){return this._transform(e.clone(),t)},_transform:function(e,t){return t||=1,e.x=t*(this._a*e.x+this._b),e.y=t*(this._c*e.y+this._d),e},untransform:function(e,t){return t||=1,new A((e.x/t-this._b)/this._a,(e.y/t-this._d)/this._c)}};function de(e,t,n,r){return new ue(e,t,n,r)}var fe=n({},se,{code:`EPSG:3857`,projection:le,transformation:function(){var e=.5/(Math.PI*le.R);return de(e,.5,-e,.5)}()}),pe=n({},fe,{code:`EPSG:900913`});function me(e){return document.createElementNS(`http://www.w3.org/2000/svg`,e)}function he(e,t){for(var n=``,r=0,i,a=e.length,o,s,c;r<a;r++){for(s=e[r],i=0,o=s.length;i<o;i++)c=s[i],n+=(i?`L`:`M`)+c.x+` `+c.y;n+=t?F.svg?`z`:`x`:``}return n||`M0 0`}var ge=document.documentElement.style,_e=`ActiveXObject`in window,ve=_e&&!document.addEventListener,ye=`msLaunchUri`in navigator&&!(`documentMode`in document),be=$e(`webkit`),xe=$e(`android`),Se=$e(`android 2`)||$e(`android 3`),Ce=parseInt(/WebKit\/([0-9]+)|$/.exec(navigator.userAgent)[1],10),we=xe&&$e(`Google`)&&Ce<537&&!(`AudioNode`in window),Te=!!window.opera,Ee=!ye&&$e(`chrome`),De=$e(`gecko`)&&!be&&!Te&&!_e,Oe=!Ee&&$e(`safari`),ke=$e(`phantom`),Ae=`OTransition`in ge,je=navigator.platform.indexOf(`Win`)===0,Me=_e&&`transition`in ge,Ne=`WebKitCSSMatrix`in window&&`m11`in new window.WebKitCSSMatrix&&!Se,Pe=`MozPerspective`in ge,Fe=!window.L_DISABLE_3D&&(Me||Ne||Pe)&&!Ae&&!ke,Ie=typeof orientation<`u`||$e(`mobile`),Le=Ie&&be,Re=Ie&&Ne,ze=!window.PointerEvent&&window.MSPointerEvent,Be=!!(window.PointerEvent||ze),Ve=`ontouchstart`in window||!!window.TouchEvent,He=!window.L_NO_TOUCH&&(Ve||Be),Ue=Ie&&Te,We=Ie&&De,Ge=(window.devicePixelRatio||window.screen.deviceXDPI/window.screen.logicalXDPI)>1,Ke=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener(`testPassiveEventSupport`,l,t),window.removeEventListener(`testPassiveEventSupport`,l,t)}catch{}return e}(),qe=function(){return!!document.createElement(`canvas`).getContext}(),Je=!!(document.createElementNS&&me(`svg`).createSVGRect),Ye=!!Je&&(function(){var e=document.createElement(`div`);return e.innerHTML=`<svg/>`,(e.firstChild&&e.firstChild.namespaceURI)===`http://www.w3.org/2000/svg`})(),Xe=!Je&&function(){try{var e=document.createElement(`div`);e.innerHTML=`<v:shape adj="1"/>`;var t=e.firstChild;return t.style.behavior=`url(#default#VML)`,t&&typeof t.adj==`object`}catch{return!1}}(),Ze=navigator.platform.indexOf(`Mac`)===0,Qe=navigator.platform.indexOf(`Linux`)===0;function $e(e){return navigator.userAgent.toLowerCase().indexOf(e)>=0}var F={ie:_e,ielt9:ve,edge:ye,webkit:be,android:xe,android23:Se,androidStock:we,opera:Te,chrome:Ee,gecko:De,safari:Oe,phantom:ke,opera12:Ae,win:je,ie3d:Me,webkit3d:Ne,gecko3d:Pe,any3d:Fe,mobile:Ie,mobileWebkit:Le,mobileWebkit3d:Re,msPointer:ze,pointer:Be,touch:He,touchNative:Ve,mobileOpera:Ue,mobileGecko:We,retina:Ge,passiveEvents:Ke,canvas:qe,svg:Je,vml:Xe,inlineSvg:Ye,mac:Ze,linux:Qe},et=F.msPointer?`MSPointerDown`:`pointerdown`,tt=F.msPointer?`MSPointerMove`:`pointermove`,nt=F.msPointer?`MSPointerUp`:`pointerup`,rt=F.msPointer?`MSPointerCancel`:`pointercancel`,it={touchstart:et,touchmove:tt,touchend:nt,touchcancel:rt},at={touchstart:ht,touchmove:mt,touchend:mt,touchcancel:mt},ot={},st=!1;function ct(e,t,n){return t===`touchstart`&&pt(),at[t]?(n=at[t].bind(this,n),e.addEventListener(it[t],n,!1),n):(console.warn(`wrong event specified:`,t),l)}function lt(e,t,n){it[t]?e.removeEventListener(it[t],n,!1):console.warn(`wrong event specified:`,t)}function ut(e){ot[e.pointerId]=e}function dt(e){ot[e.pointerId]&&(ot[e.pointerId]=e)}function ft(e){delete ot[e.pointerId]}function pt(){st||=(document.addEventListener(et,ut,!0),document.addEventListener(tt,dt,!0),document.addEventListener(nt,ft,!0),document.addEventListener(rt,ft,!0),!0)}function mt(e,t){if(t.pointerType!==(t.MSPOINTER_TYPE_MOUSE||`mouse`)){for(var n in t.touches=[],ot)t.touches.push(ot[n]);t.changedTouches=[t],e(t)}}function ht(e,t){t.MSPOINTER_TYPE_TOUCH&&t.pointerType===t.MSPOINTER_TYPE_TOUCH&&un(t),mt(e,t)}function gt(e){var t={},n,r;for(r in e)n=e[r],t[r]=n&&n.bind?n.bind(e):n;return e=t,t.type=`dblclick`,t.detail=2,t.isTrusted=!1,t._simulated=!0,t}var _t=200;function vt(e,t){e.addEventListener(`dblclick`,t);var n=0,r;function i(e){if(e.detail!==1)r=e.detail;else if(!(e.pointerType===`mouse`||e.sourceCapabilities&&!e.sourceCapabilities.firesTouchEvents)){var i=fn(e);if(!i.some(function(e){return e instanceof HTMLLabelElement&&e.attributes.for})||i.some(function(e){return e instanceof HTMLInputElement||e instanceof HTMLSelectElement})){var a=Date.now();a-n<=_t?(r++,r===2&&t(gt(e))):r=1,n=a}}}return e.addEventListener(`click`,i),{dblclick:t,simDblclick:i}}function yt(e,t){e.removeEventListener(`dblclick`,t.dblclick),e.removeEventListener(`click`,t.simDblclick)}var bt=It([`transform`,`webkitTransform`,`OTransform`,`MozTransform`,`msTransform`]),xt=It([`webkitTransition`,`transition`,`OTransition`,`MozTransition`,`msTransition`]),St=xt===`webkitTransition`||xt===`OTransition`?xt+`End`:`transitionend`;function Ct(e){return typeof e==`string`?document.getElementById(e):e}function I(e,t){var n=e.style[t]||e.currentStyle&&e.currentStyle[t];if((!n||n===`auto`)&&document.defaultView){var r=document.defaultView.getComputedStyle(e,null);n=r?r[t]:null}return n===`auto`?null:n}function wt(e,t,n){var r=document.createElement(e);return r.className=t||``,n&&n.appendChild(r),r}function Tt(e){var t=e.parentNode;t&&t.removeChild(e)}function Et(e){for(;e.firstChild;)e.removeChild(e.firstChild)}function Dt(e){var t=e.parentNode;t&&t.lastChild!==e&&t.appendChild(e)}function Ot(e){var t=e.parentNode;t&&t.firstChild!==e&&t.insertBefore(e,t.firstChild)}function kt(e,t){if(e.classList!==void 0)return e.classList.contains(t);var n=Nt(e);return n.length>0&&RegExp(`(^|\\s)`+t+`(\\s|$)`).test(n)}function At(e,t){if(e.classList!==void 0)for(var n=f(t),r=0,i=n.length;r<i;r++)e.classList.add(n[r]);else if(!kt(e,t)){var a=Nt(e);Mt(e,(a?a+` `:``)+t)}}function jt(e,t){e.classList===void 0?Mt(e,d((` `+Nt(e)+` `).replace(` `+t+` `,` `))):e.classList.remove(t)}function Mt(e,t){e.className.baseVal===void 0?e.className=t:e.className.baseVal=t}function Nt(e){return e.correspondingElement&&(e=e.correspondingElement),e.className.baseVal===void 0?e.className:e.className.baseVal}function Pt(e,t){`opacity`in e.style?e.style.opacity=t:`filter`in e.style&&Ft(e,t)}function Ft(e,t){var n=!1,r=`DXImageTransform.Microsoft.Alpha`;try{n=e.filters.item(r)}catch{if(t===1)return}t=Math.round(t*100),n?(n.Enabled=t!==100,n.Opacity=t):e.style.filter+=` progid:`+r+`(opacity=`+t+`)`}function It(e){for(var t=document.documentElement.style,n=0;n<e.length;n++)if(e[n]in t)return e[n];return!1}function Lt(e,t,n){var r=t||new A(0,0);e.style[bt]=(F.ie3d?`translate(`+r.x+`px,`+r.y+`px)`:`translate3d(`+r.x+`px,`+r.y+`px,0)`)+(n?` scale(`+n+`)`:``)}function Rt(e,t){e._leaflet_pos=t,F.any3d?Lt(e,t):(e.style.left=t.x+`px`,e.style.top=t.y+`px`)}function zt(e){return e._leaflet_pos||new A(0,0)}var Bt,Vt,Ht;if(`onselectstart`in document)Bt=function(){$t(window,`selectstart`,un)},Vt=function(){tn(window,`selectstart`,un)};else{var Ut=It([`userSelect`,`WebkitUserSelect`,`OUserSelect`,`MozUserSelect`,`msUserSelect`]);Bt=function(){if(Ut){var e=document.documentElement.style;Ht=e[Ut],e[Ut]=`none`}},Vt=function(){Ut&&(document.documentElement.style[Ut]=Ht,Ht=void 0)}}function Wt(){$t(window,`dragstart`,un)}function Gt(){tn(window,`dragstart`,un)}var Kt,qt;function Jt(e){for(;e.tabIndex===-1;)e=e.parentNode;e.style&&(Yt(),Kt=e,qt=e.style.outlineStyle,e.style.outlineStyle=`none`,$t(window,`keydown`,Yt))}function Yt(){Kt&&(Kt.style.outlineStyle=qt,Kt=void 0,qt=void 0,tn(window,`keydown`,Yt))}function Xt(e){do e=e.parentNode;while((!e.offsetWidth||!e.offsetHeight)&&e!==document.body);return e}function Zt(e){var t=e.getBoundingClientRect();return{x:t.width/e.offsetWidth||1,y:t.height/e.offsetHeight||1,boundingClientRect:t}}var Qt={__proto__:null,TRANSFORM:bt,TRANSITION:xt,TRANSITION_END:St,get:Ct,getStyle:I,create:wt,remove:Tt,empty:Et,toFront:Dt,toBack:Ot,hasClass:kt,addClass:At,removeClass:jt,setClass:Mt,getClass:Nt,setOpacity:Pt,testProp:It,setTransform:Lt,setPosition:Rt,getPosition:zt,get disableTextSelection(){return Bt},get enableTextSelection(){return Vt},disableImageDrag:Wt,enableImageDrag:Gt,preventOutline:Jt,restoreOutline:Yt,getSizedParentNode:Xt,getScale:Zt};function $t(e,t,n,r){if(t&&typeof t==`object`)for(var i in t)an(e,i,t[i],n);else{t=f(t);for(var a=0,o=t.length;a<o;a++)an(e,t[a],n,r)}return this}var en=`_leaflet_events`;function tn(e,t,n,r){if(arguments.length===1)nn(e),delete e[en];else if(t&&typeof t==`object`)for(var i in t)on(e,i,t[i],n);else if(t=f(t),arguments.length===2)nn(e,function(e){return v(t,e)!==-1});else for(var a=0,o=t.length;a<o;a++)on(e,t[a],n,r);return this}function nn(e,t){for(var n in e[en]){var r=n.split(/\d/)[0];(!t||t(r))&&on(e,r,null,null,n)}}var rn={mouseenter:`mouseover`,mouseleave:`mouseout`,wheel:!(`onwheel`in window)&&`mousewheel`};function an(e,t,n,r){var i=t+o(n)+(r?`_`+o(r):``);if(e[en]&&e[en][i])return this;var a=function(t){return n.call(r||e,t||window.event)},s=a;!F.touchNative&&F.pointer&&t.indexOf(`touch`)===0?a=ct(e,t,a):F.touch&&t===`dblclick`?a=vt(e,a):`addEventListener`in e?t===`touchstart`||t===`touchmove`||t===`wheel`||t===`mousewheel`?e.addEventListener(rn[t]||t,a,F.passiveEvents?{passive:!1}:!1):t===`mouseenter`||t===`mouseleave`?(a=function(t){t||=window.event,gn(e,t)&&s(t)},e.addEventListener(rn[t],a,!1)):e.addEventListener(t,s,!1):e.attachEvent(`on`+t,a),e[en]=e[en]||{},e[en][i]=a}function on(e,t,n,r,i){i||=t+o(n)+(r?`_`+o(r):``);var a=e[en]&&e[en][i];if(!a)return this;!F.touchNative&&F.pointer&&t.indexOf(`touch`)===0?lt(e,t,a):F.touch&&t===`dblclick`?yt(e,a):`removeEventListener`in e?e.removeEventListener(rn[t]||t,a,!1):e.detachEvent(`on`+t,a),e[en][i]=null}function sn(e){return e.stopPropagation?e.stopPropagation():e.originalEvent?e.originalEvent._stopped=!0:e.cancelBubble=!0,this}function cn(e){return an(e,`wheel`,sn),this}function ln(e){return $t(e,`mousedown touchstart dblclick contextmenu`,sn),e._leaflet_disable_click=!0,this}function un(e){return e.preventDefault?e.preventDefault():e.returnValue=!1,this}function dn(e){return un(e),sn(e),this}function fn(e){if(e.composedPath)return e.composedPath();for(var t=[],n=e.target;n;)t.push(n),n=n.parentNode;return t}function pn(e,t){if(!t)return new A(e.clientX,e.clientY);var n=Zt(t),r=n.boundingClientRect;return new A((e.clientX-r.left)/n.x-t.clientLeft,(e.clientY-r.top)/n.y-t.clientTop)}var mn=F.linux&&F.chrome?window.devicePixelRatio:F.mac?window.devicePixelRatio*3:window.devicePixelRatio>0?2*window.devicePixelRatio:1;function hn(e){return F.edge?e.wheelDeltaY/2:e.deltaY&&e.deltaMode===0?-e.deltaY/mn:e.deltaY&&e.deltaMode===1?-e.deltaY*20:e.deltaY&&e.deltaMode===2?-e.deltaY*60:e.deltaX||e.deltaZ?0:e.wheelDelta?(e.wheelDeltaY||e.wheelDelta)/2:e.detail&&Math.abs(e.detail)<32765?-e.detail*20:e.detail?e.detail/-32765*60:0}function gn(e,t){var n=t.relatedTarget;if(!n)return!0;try{for(;n&&n!==e;)n=n.parentNode}catch{return!1}return n!==e}var _n={__proto__:null,on:$t,off:tn,stopPropagation:sn,disableScrollPropagation:cn,disableClickPropagation:ln,preventDefault:un,stop:dn,getPropagationPath:fn,getMousePosition:pn,getWheelDelta:hn,isExternalTarget:gn,addListener:$t,removeListener:tn},vn=te.extend({run:function(e,t,n,r){this.stop(),this._el=e,this._inProgress=!0,this._duration=n||.25,this._easeOutPower=1/Math.max(r||.5,.2),this._startPos=zt(e),this._offset=t.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=T(this._animate,this),this._step()},_step:function(e){var t=+new Date-this._startTime,n=this._duration*1e3;t<n?this._runFrame(this._easeOut(t/n),e):(this._runFrame(1),this._complete())},_runFrame:function(e,t){var n=this._startPos.add(this._offset.multiplyBy(e));t&&n._round(),Rt(this._el,n),this.fire(`step`)},_complete:function(){E(this._animId),this._inProgress=!1,this.fire(`end`)},_easeOut:function(e){return 1-(1-e)**this._easeOutPower}}),yn=te.extend({options:{crs:fe,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(e,t){t=p(this,t),this._handlers=[],this._layers={},this._zoomBoundLayers={},this._sizeChanged=!0,this._initContainer(e),this._initLayout(),this._onResize=i(this._onResize,this),this._initEvents(),t.maxBounds&&this.setMaxBounds(t.maxBounds),t.zoom!==void 0&&(this._zoom=this._limitZoom(t.zoom)),t.center&&t.zoom!==void 0&&this.setView(ae(t.center),t.zoom,{reset:!0}),this.callInitHooks(),this._zoomAnimated=xt&&F.any3d&&!F.mobileOpera&&this.options.zoomAnimation,this._zoomAnimated&&(this._createAnimProxy(),$t(this._proxy,St,this._catchTransitionEnd,this)),this._addLayers(this.options.layers)},setView:function(e,t,r){return t=t===void 0?this._zoom:this._limitZoom(t),e=this._limitCenter(ae(e),t,this.options.maxBounds),r||={},this._stop(),this._loaded&&!r.reset&&r!==!0&&(r.animate!==void 0&&(r.zoom=n({animate:r.animate},r.zoom),r.pan=n({animate:r.animate,duration:r.duration},r.pan)),this._zoom===t?this._tryAnimatedPan(e,r.pan):this._tryAnimatedZoom&&this._tryAnimatedZoom(e,t,r.zoom))?(clearTimeout(this._sizeTimer),this):(this._resetView(e,t,r.pan&&r.pan.noMoveStart),this)},setZoom:function(e,t){return this._loaded?this.setView(this.getCenter(),e,{zoom:t}):(this._zoom=e,this)},zoomIn:function(e,t){return e||=F.any3d?this.options.zoomDelta:1,this.setZoom(this._zoom+e,t)},zoomOut:function(e,t){return e||=F.any3d?this.options.zoomDelta:1,this.setZoom(this._zoom-e,t)},setZoomAround:function(e,t,n){var r=this.getZoomScale(t),i=this.getSize().divideBy(2),a=(e instanceof A?e:this.latLngToContainerPoint(e)).subtract(i).multiplyBy(1-1/r),o=this.containerPointToLatLng(i.add(a));return this.setView(o,t,{zoom:n})},_getBoundsCenterZoom:function(e,t){t||={},e=e.getBounds?e.getBounds():ie(e);var n=M(t.paddingTopLeft||t.padding||[0,0]),r=M(t.paddingBottomRight||t.padding||[0,0]),i=this.getBoundsZoom(e,!1,n.add(r));if(i=typeof t.maxZoom==`number`?Math.min(t.maxZoom,i):i,i===1/0)return{center:e.getCenter(),zoom:i};var a=r.subtract(n).divideBy(2),o=this.project(e.getSouthWest(),i),s=this.project(e.getNorthEast(),i);return{center:this.unproject(o.add(s).divideBy(2).add(a),i),zoom:i}},fitBounds:function(e,t){if(e=ie(e),!e.isValid())throw Error(`Bounds are not valid.`);var n=this._getBoundsCenterZoom(e,t);return this.setView(n.center,n.zoom,t)},fitWorld:function(e){return this.fitBounds([[-90,-180],[90,180]],e)},panTo:function(e,t){return this.setView(e,this._zoom,{pan:t})},panBy:function(e,t){if(e=M(e).round(),t||={},!e.x&&!e.y)return this.fire(`moveend`);if(t.animate!==!0&&!this.getSize().contains(e))return this._resetView(this.unproject(this.project(this.getCenter()).add(e)),this.getZoom()),this;if(this._panAnim||(this._panAnim=new vn,this._panAnim.on({step:this._onPanTransitionStep,end:this._onPanTransitionEnd},this)),t.noMoveStart||this.fire(`movestart`),t.animate!==!1){At(this._mapPane,`leaflet-pan-anim`);var n=this._getMapPanePos().subtract(e).round();this._panAnim.run(this._mapPane,n,t.duration||.25,t.easeLinearity)}else this._rawPanBy(e),this.fire(`move`).fire(`moveend`);return this},flyTo:function(e,t,n){if(n||={},n.animate===!1||!F.any3d)return this.setView(e,t,n);this._stop();var r=this.project(this.getCenter()),i=this.project(e),a=this.getSize(),o=this._zoom;e=ae(e),t=t===void 0?o:t;var s=Math.max(a.x,a.y),c=s*this.getZoomScale(o,t),l=i.distanceTo(r)||1,u=1.42,d=u*u;function f(e){var t=e?-1:1,n=e?c:s,r=(c*c-s*s+t*d*d*l*l)/(2*n*d*l),i=Math.sqrt(r*r+1)-r;return i<1e-9?-18:Math.log(i)}function p(e){return(Math.exp(e)-Math.exp(-e))/2}function m(e){return(Math.exp(e)+Math.exp(-e))/2}function h(e){return p(e)/m(e)}var g=f(0);function _(e){return s*(m(g)/m(g+u*e))}function v(e){return s*(m(g)*h(g+u*e)-p(g))/d}function y(e){return 1-(1-e)**1.5}var b=Date.now(),x=(f(1)-g)/u,S=n.duration?1e3*n.duration:1e3*x*.8;function C(){var n=(Date.now()-b)/S,a=y(n)*x;n<=1?(this._flyToFrame=T(C,this),this._move(this.unproject(r.add(i.subtract(r).multiplyBy(v(a)/l)),o),this.getScaleZoom(s/_(a),o),{flyTo:!0})):this._move(e,t)._moveEnd(!0)}return this._moveStart(!0,n.noMoveStart),C.call(this),this},flyToBounds:function(e,t){var n=this._getBoundsCenterZoom(e,t);return this.flyTo(n.center,n.zoom,t)},setMaxBounds:function(e){return e=ie(e),this.listens(`moveend`,this._panInsideMaxBounds)&&this.off(`moveend`,this._panInsideMaxBounds),e.isValid()?(this.options.maxBounds=e,this._loaded&&this._panInsideMaxBounds(),this.on(`moveend`,this._panInsideMaxBounds)):(this.options.maxBounds=null,this)},setMinZoom:function(e){var t=this.options.minZoom;return this.options.minZoom=e,this._loaded&&t!==e&&(this.fire(`zoomlevelschange`),this.getZoom()<this.options.minZoom)?this.setZoom(e):this},setMaxZoom:function(e){var t=this.options.maxZoom;return this.options.maxZoom=e,this._loaded&&t!==e&&(this.fire(`zoomlevelschange`),this.getZoom()>this.options.maxZoom)?this.setZoom(e):this},panInsideBounds:function(e,t){this._enforcingBounds=!0;var n=this.getCenter(),r=this._limitCenter(n,this._zoom,ie(e));return n.equals(r)||this.panTo(r,t),this._enforcingBounds=!1,this},panInside:function(e,t){t||={};var n=M(t.paddingTopLeft||t.padding||[0,0]),r=M(t.paddingBottomRight||t.padding||[0,0]),i=this.project(this.getCenter()),a=this.project(e),o=this.getPixelBounds(),s=ne([o.min.add(n),o.max.subtract(r)]),c=s.getSize();if(!s.contains(a)){this._enforcingBounds=!0;var l=a.subtract(s.getCenter()),u=s.extend(a).getSize().subtract(c);i.x+=l.x<0?-u.x:u.x,i.y+=l.y<0?-u.y:u.y,this.panTo(this.unproject(i),t),this._enforcingBounds=!1}return this},invalidateSize:function(e){if(!this._loaded)return this;e=n({animate:!1,pan:!0},e===!0?{animate:!0}:e);var t=this.getSize();this._sizeChanged=!0,this._lastCenter=null;var r=this.getSize(),a=t.divideBy(2).round(),o=r.divideBy(2).round(),s=a.subtract(o);return!s.x&&!s.y?this:(e.animate&&e.pan?this.panBy(s):(e.pan&&this._rawPanBy(s),this.fire(`move`),e.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(i(this.fire,this,`moveend`),200)):this.fire(`moveend`)),this.fire(`resize`,{oldSize:t,newSize:r}))},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire(`viewreset`),this._stop()},locate:function(e){if(e=this._locateOptions=n({timeout:1e4,watch:!1},e),!(`geolocation`in navigator))return this._handleGeolocationError({code:0,message:`Geolocation not supported.`}),this;var t=i(this._handleGeolocationResponse,this),r=i(this._handleGeolocationError,this);return e.watch?this._locationWatchId=navigator.geolocation.watchPosition(t,r,e):navigator.geolocation.getCurrentPosition(t,r,e),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(e){if(this._container._leaflet_id){var t=e.code,n=e.message||(t===1?`permission denied`:t===2?`position unavailable`:`timeout`);this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire(`locationerror`,{code:t,message:`Geolocation error: `+n+`.`})}},_handleGeolocationResponse:function(e){if(this._container._leaflet_id){var t=e.coords.latitude,n=e.coords.longitude,r=new P(t,n),i=r.toBounds(e.coords.accuracy*2),a=this._locateOptions;if(a.setView){var o=this.getBoundsZoom(i);this.setView(r,a.maxZoom?Math.min(o,a.maxZoom):o)}var s={latlng:r,bounds:i,timestamp:e.timestamp};for(var c in e.coords)typeof e.coords[c]==`number`&&(s[c]=e.coords[c]);this.fire(`locationfound`,s)}},addHandler:function(e,t){if(!t)return this;var n=this[e]=new t(this);return this._handlers.push(n),this.options[e]&&n.enable(),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off(`moveend`,this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw 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}for(var e in this._locationWatchId!==void 0&&this.stopLocate(),this._stop(),Tt(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&=(E(this._resizeRequest),null),this._clearHandlers(),this._loaded&&this.fire(`unload`),this._layers)this._layers[e].remove();for(e in this._panes)Tt(this._panes[e]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(e,t){var n=wt(`div`,`leaflet-pane`+(e?` leaflet-`+e.replace(`Pane`,``)+`-pane`:``),t||this._mapPane);return e&&(this._panes[e]=n),n},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var e=this.getPixelBounds();return new re(this.unproject(e.getBottomLeft()),this.unproject(e.getTopRight()))},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(e,t,n){e=ie(e),n=M(n||[0,0]);var r=this.getZoom()||0,i=this.getMinZoom(),a=this.getMaxZoom(),o=e.getNorthWest(),s=e.getSouthEast(),c=this.getSize().subtract(n),l=ne(this.project(s,r),this.project(o,r)).getSize(),u=F.any3d?this.options.zoomSnap:1,d=c.x/l.x,f=c.y/l.y,p=t?Math.max(d,f):Math.min(d,f);return r=this.getScaleZoom(p,r),u&&(r=Math.round(r/(u/100))*(u/100),r=t?Math.ceil(r/u)*u:Math.floor(r/u)*u),Math.max(i,Math.min(a,r))},getSize:function(){return(!this._size||this._sizeChanged)&&(this._size=new A(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(e,t){var n=this._getTopLeftPoint(e,t);return new N(n,n.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(e){return this.options.crs.getProjectedBounds(e===void 0?this.getZoom():e)},getPane:function(e){return typeof e==`string`?this._panes[e]:e},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(e,t){var n=this.options.crs;return t=t===void 0?this._zoom:t,n.scale(e)/n.scale(t)},getScaleZoom:function(e,t){var n=this.options.crs;t=t===void 0?this._zoom:t;var r=n.zoom(e*n.scale(t));return isNaN(r)?1/0:r},project:function(e,t){return t=t===void 0?this._zoom:t,this.options.crs.latLngToPoint(ae(e),t)},unproject:function(e,t){return t=t===void 0?this._zoom:t,this.options.crs.pointToLatLng(M(e),t)},layerPointToLatLng:function(e){var t=M(e).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(e){return this.project(ae(e))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(e){return this.options.crs.wrapLatLng(ae(e))},wrapLatLngBounds:function(e){return this.options.crs.wrapLatLngBounds(ie(e))},distance:function(e,t){return this.options.crs.distance(ae(e),ae(t))},containerPointToLayerPoint:function(e){return M(e).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(e){return M(e).add(this._getMapPanePos())},containerPointToLatLng:function(e){var t=this.containerPointToLayerPoint(M(e));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(e){return this.layerPointToContainerPoint(this.latLngToLayerPoint(ae(e)))},mouseEventToContainerPoint:function(e){return pn(e,this._container)},mouseEventToLayerPoint:function(e){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(e))},mouseEventToLatLng:function(e){return this.layerPointToLatLng(this.mouseEventToLayerPoint(e))},_initContainer:function(e){var t=this._container=Ct(e);if(!t)throw Error(`Map container not found.`);if(t._leaflet_id)throw Error(`Map container is already initialized.`);$t(t,`scroll`,this._onScroll,this),this._containerId=o(t)},_initLayout:function(){var e=this._container;this._fadeAnimated=this.options.fadeAnimation&&F.any3d,At(e,`leaflet-container`+(F.touch?` leaflet-touch`:``)+(F.retina?` leaflet-retina`:``)+(F.ielt9?` leaflet-oldie`:``)+(F.safari?` leaflet-safari`:``)+(this._fadeAnimated?` leaflet-fade-anim`:``));var t=I(e,`position`);t!==`absolute`&&t!==`relative`&&t!==`fixed`&&t!==`sticky`&&(e.style.position=`relative`),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var e=this._panes={};this._paneRenderers={},this._mapPane=this.createPane(`mapPane`,this._container),Rt(this._mapPane,new A(0,0)),this.createPane(`tilePane`),this.createPane(`overlayPane`),this.createPane(`shadowPane`),this.createPane(`markerPane`),this.createPane(`tooltipPane`),this.createPane(`popupPane`),this.options.markerZoomAnimation||(At(e.markerPane,`leaflet-zoom-hide`),At(e.shadowPane,`leaflet-zoom-hide`))},_resetView:function(e,t,n){Rt(this._mapPane,new A(0,0));var r=!this._loaded;this._loaded=!0,t=this._limitZoom(t),this.fire(`viewprereset`);var i=this._zoom!==t;this._moveStart(i,n)._move(e,t)._moveEnd(i),this.fire(`viewreset`),r&&this.fire(`load`)},_moveStart:function(e,t){return e&&this.fire(`zoomstart`),t||this.fire(`movestart`),this},_move:function(e,t,n,r){t===void 0&&(t=this._zoom);var i=this._zoom!==t;return this._zoom=t,this._lastCenter=e,this._pixelOrigin=this._getNewPixelOrigin(e),r?n&&n.pinch&&this.fire(`zoom`,n):((i||n&&n.pinch)&&this.fire(`zoom`,n),this.fire(`move`,n)),this},_moveEnd:function(e){return e&&this.fire(`zoomend`),this.fire(`moveend`)},_stop:function(){return E(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(e){Rt(this._mapPane,this._getMapPanePos().subtract(e))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw Error(`Set map center and zoom first.`)},_initEvents:function(e){this._targets={},this._targets[o(this._container)]=this;var t=e?tn:$t;t(this._container,`click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup`,this._handleDOMEvent,this),this.options.trackResize&&t(window,`resize`,this._onResize,this),F.any3d&&this.options.transform3DLimit&&(e?this.off:this.on).call(this,`moveend`,this._onMoveEnd)},_onResize:function(){E(this._resizeRequest),this._resizeRequest=T(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var e=this._getMapPanePos();Math.max(Math.abs(e.x),Math.abs(e.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(e,t){for(var n=[],r,i=t===`mouseout`||t===`mouseover`,a=e.target||e.srcElement,s=!1;a;){if(r=this._targets[o(a)],r&&(t===`click`||t===`preclick`)&&this._draggableMoved(r)){s=!0;break}if(r&&r.listens(t,!0)&&(i&&!gn(a,e)||(n.push(r),i))||a===this._container)break;a=a.parentNode}return!n.length&&!s&&!i&&this.listens(t,!0)&&(n=[this]),n},_isClickDisabled:function(e){for(;e&&e!==this._container;){if(e._leaflet_disable_click)return!0;e=e.parentNode}},_handleDOMEvent:function(e){var t=e.target||e.srcElement;if(!(!this._loaded||t._leaflet_disable_events||e.type===`click`&&this._isClickDisabled(t))){var n=e.type;n===`mousedown`&&Jt(t),this._fireDOMEvent(e,n)}},_mouseEvents:[`click`,`dblclick`,`mouseover`,`mouseout`,`contextmenu`],_fireDOMEvent:function(e,t,r){if(e.type===`click`){var i=n({},e);i.type=`preclick`,this._fireDOMEvent(i,i.type,r)}var a=this._findEventTargets(e,t);if(r){for(var o=[],s=0;s<r.length;s++)r[s].listens(t,!0)&&o.push(r[s]);a=o.concat(a)}if(a.length){t===`contextmenu`&&un(e);var c=a[0],l={originalEvent:e};if(e.type!==`keypress`&&e.type!==`keydown`&&e.type!==`keyup`){var u=c.getLatLng&&(!c._radius||c._radius<=10);l.containerPoint=u?this.latLngToContainerPoint(c.getLatLng()):this.mouseEventToContainerPoint(e),l.layerPoint=this.containerPointToLayerPoint(l.containerPoint),l.latlng=u?c.getLatLng():this.layerPointToLatLng(l.layerPoint)}for(s=0;s<a.length;s++)if(a[s].fire(t,l,!0),l.originalEvent._stopped||a[s].options.bubblingMouseEvents===!1&&v(this._mouseEvents,t)!==-1)return}},_draggableMoved:function(e){return e=e.dragging&&e.dragging.enabled()?e:this,e.dragging&&e.dragging.moved()||this.boxZoom&&this.boxZoom.moved()},_clearHandlers:function(){for(var e=0,t=this._handlers.length;e<t;e++)this._handlers[e].disable()},whenReady:function(e,t){return this._loaded?e.call(t||this,{target:this}):this.on(`load`,e,t),this},_getMapPanePos:function(){return zt(this._mapPane)||new A(0,0)},_moved:function(){var e=this._getMapPanePos();return e&&!e.equals([0,0])},_getTopLeftPoint:function(e,t){return(e&&t!==void 0?this._getNewPixelOrigin(e,t):this.getPixelOrigin()).subtract(this._getMapPanePos())},_getNewPixelOrigin:function(e,t){var n=this.getSize()._divideBy(2);return this.project(e,t)._subtract(n)._add(this._getMapPanePos())._round()},_latLngToNewLayerPoint:function(e,t,n){var r=this._getNewPixelOrigin(n,t);return this.project(e,t)._subtract(r)},_latLngBoundsToNewLayerBounds:function(e,t,n){var r=this._getNewPixelOrigin(n,t);return ne([this.project(e.getSouthWest(),t)._subtract(r),this.project(e.getNorthWest(),t)._subtract(r),this.project(e.getSouthEast(),t)._subtract(r),this.project(e.getNorthEast(),t)._subtract(r)])},_getCenterLayerPoint:function(){return this.containerPointToLayerPoint(this.getSize()._divideBy(2))},_getCenterOffset:function(e){return this.latLngToLayerPoint(e).subtract(this._getCenterLayerPoint())},_limitCenter:function(e,t,n){if(!n)return e;var r=this.project(e,t),i=this.getSize().divideBy(2),a=new N(r.subtract(i),r.add(i)),o=this._getBoundsOffset(a,n,t);return Math.abs(o.x)<=1&&Math.abs(o.y)<=1?e:this.unproject(r.add(o),t)},_limitOffset:function(e,t){if(!t)return e;var n=this.getPixelBounds(),r=new N(n.min.add(e),n.max.add(e));return e.add(this._getBoundsOffset(r,t))},_getBoundsOffset:function(e,t,n){var r=ne(this.project(t.getNorthEast(),n),this.project(t.getSouthWest(),n)),i=r.min.subtract(e.min),a=r.max.subtract(e.max);return new A(this._rebound(i.x,-a.x),this._rebound(i.y,-a.y))},_rebound:function(e,t){return e+t>0?Math.round(e-t)/2:Math.max(0,Math.ceil(e))-Math.max(0,Math.floor(t))},_limitZoom:function(e){var t=this.getMinZoom(),n=this.getMaxZoom(),r=F.any3d?this.options.zoomSnap:1;return r&&(e=Math.round(e/r)*r),Math.max(t,Math.min(n,e))},_onPanTransitionStep:function(){this.fire(`move`)},_onPanTransitionEnd:function(){jt(this._mapPane,`leaflet-pan-anim`),this.fire(`moveend`)},_tryAnimatedPan:function(e,t){var n=this._getCenterOffset(e)._trunc();return(t&&t.animate)!==!0&&!this.getSize().contains(n)?!1:(this.panBy(n,t),!0)},_createAnimProxy:function(){var e=this._proxy=wt(`div`,`leaflet-proxy leaflet-zoom-animated`);this._panes.mapPane.appendChild(e),this.on(`zoomanim`,function(e){var t=bt,n=this._proxy.style[t];Lt(this._proxy,this.project(e.center,e.zoom),this.getZoomScale(e.zoom,1)),n===this._proxy.style[t]&&this._animatingZoom&&this._onZoomTransitionEnd()},this),this.on(`load moveend`,this._animMoveEnd,this),this._on(`unload`,this._destroyAnimProxy,this)},_destroyAnimProxy:function(){Tt(this._proxy),this.off(`load moveend`,this._animMoveEnd,this),delete this._proxy},_animMoveEnd:function(){var e=this.getCenter(),t=this.getZoom();Lt(this._proxy,this.project(e,t),this.getZoomScale(t,1))},_catchTransitionEnd:function(e){this._animatingZoom&&e.propertyName.indexOf(`transform`)>=0&&this._onZoomTransitionEnd()},_nothingToAnimate:function(){return!this._container.getElementsByClassName(`leaflet-zoom-animated`).length},_tryAnimatedZoom:function(e,t,n){if(this._animatingZoom)return!0;if(n||={},!this._zoomAnimated||n.animate===!1||this._nothingToAnimate()||Math.abs(t-this._zoom)>this.options.zoomAnimationThreshold)return!1;var r=this.getZoomScale(t),i=this._getCenterOffset(e)._divideBy(1-1/r);return n.animate!==!0&&!this.getSize().contains(i)?!1:(T(function(){this._moveStart(!0,n.noMoveStart||!1)._animateZoom(e,t,!0)},this),!0)},_animateZoom:function(e,t,n,r){this._mapPane&&(n&&(this._animatingZoom=!0,this._animateToCenter=e,this._animateToZoom=t,At(this._mapPane,`leaflet-zoom-anim`)),this.fire(`zoomanim`,{center:e,zoom:t,noUpdate:r}),this._tempFireZoomEvent||=this._zoom!==this._animateToZoom,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(i(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&jt(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 bn(e,t){return new yn(e,t)}var xn=O.extend({options:{position:`topright`},initialize:function(e){p(this,e)},getPosition:function(){return this.options.position},setPosition:function(e){var t=this._map;return t&&t.removeControl(this),this.options.position=e,t&&t.addControl(this),this},getContainer:function(){return this._container},addTo:function(e){this.remove(),this._map=e;var t=this._container=this.onAdd(e),n=this.getPosition(),r=e._controlCorners[n];return At(t,`leaflet-control`),n.indexOf(`bottom`)===-1?r.appendChild(t):r.insertBefore(t,r.firstChild),this._map.on(`unload`,this.remove,this),this},remove:function(){return this._map&&=(Tt(this._container),this.onRemove&&this.onRemove(this._map),this._map.off(`unload`,this.remove,this),null),this},_refocusOnMap:function(e){this._map&&e&&e.screenX>0&&e.screenY>0&&this._map.getContainer().focus()}}),Sn=function(e){return new xn(e)};yn.include({addControl:function(e){return e.addTo(this),this},removeControl:function(e){return e.remove(),this},_initControlPos:function(){var e=this._controlCorners={},t=`leaflet-`,n=this._controlContainer=wt(`div`,t+`control-container`,this._container);function r(r,i){var a=t+r+` `+t+i;e[r+i]=wt(`div`,a,n)}r(`top`,`left`),r(`top`,`right`),r(`bottom`,`left`),r(`bottom`,`right`)},_clearControlPos:function(){for(var e in this._controlCorners)Tt(this._controlCorners[e]);Tt(this._controlContainer),delete this._controlCorners,delete this._controlContainer}});var Cn=xn.extend({options:{collapsed:!0,position:`topright`,autoZIndex:!0,hideSingleBase:!1,sortLayers:!1,sortFunction:function(e,t,n,r){return n<r?-1:+(r<n)}},initialize:function(e,t,n){for(var r in p(this,n),this._layerControlInputs=[],this._layers=[],this._lastZIndex=0,this._handlingClick=!1,this._preventClick=!1,e)this._addLayer(e[r],r);for(r in t)this._addLayer(t[r],r,!0)},onAdd:function(e){this._initLayout(),this._update(),this._map=e,e.on(`zoomend`,this._checkDisabledLayers,this);for(var t=0;t<this._layers.length;t++)this._layers[t].layer.on(`add remove`,this._onLayerChange,this);return this._container},addTo:function(e){return xn.prototype.addTo.call(this,e),this._expandIfNotCollapsed()},onRemove:function(){this._map.off(`zoomend`,this._checkDisabledLayers,this);for(var e=0;e<this._layers.length;e++)this._layers[e].layer.off(`add remove`,this._onLayerChange,this)},addBaseLayer:function(e,t){return this._addLayer(e,t),this._map?this._update():this},addOverlay:function(e,t){return this._addLayer(e,t,!0),this._map?this._update():this},removeLayer:function(e){e.off(`add remove`,this._onLayerChange,this);var t=this._getLayer(o(e));return t&&this._layers.splice(this._layers.indexOf(t),1),this._map?this._update():this},expand:function(){At(this._container,`leaflet-control-layers-expanded`),this._section.style.height=null;var e=this._map.getSize().y-(this._container.offsetTop+50);return e<this._section.clientHeight?(At(this._section,`leaflet-control-layers-scrollbar`),this._section.style.height=e+`px`):jt(this._section,`leaflet-control-layers-scrollbar`),this._checkDisabledLayers(),this},collapse:function(){return jt(this._container,`leaflet-control-layers-expanded`),this},_initLayout:function(){var e=`leaflet-control-layers`,t=this._container=wt(`div`,e),n=this.options.collapsed;t.setAttribute(`aria-haspopup`,!0),ln(t),cn(t);var r=this._section=wt(`section`,e+`-list`);n&&(this._map.on(`click`,this.collapse,this),$t(t,{mouseenter:this._expandSafely,mouseleave:this.collapse},this));var i=this._layersLink=wt(`a`,e+`-toggle`,t);i.href=`#`,i.title=`Layers`,i.setAttribute(`role`,`button`),$t(i,{keydown:function(e){e.keyCode===13&&this._expandSafely()},click:function(e){un(e),this._expandSafely()}},this),n||this.expand(),this._baseLayersList=wt(`div`,e+`-base`,r),this._separator=wt(`div`,e+`-separator`,r),this._overlaysList=wt(`div`,e+`-overlays`,r),t.appendChild(r)},_getLayer:function(e){for(var t=0;t<this._layers.length;t++)if(this._layers[t]&&o(this._layers[t].layer)===e)return this._layers[t]},_addLayer:function(e,t,n){this._map&&e.on(`add remove`,this._onLayerChange,this),this._layers.push({layer:e,name:t,overlay:n}),this.options.sortLayers&&this._layers.sort(i(function(e,t){return this.options.sortFunction(e.layer,t.layer,e.name,t.name)},this)),this.options.autoZIndex&&e.setZIndex&&(this._lastZIndex++,e.setZIndex(this._lastZIndex)),this._expandIfNotCollapsed()},_update:function(){if(!this._container)return this;Et(this._baseLayersList),Et(this._overlaysList),this._layerControlInputs=[];var e,t,n,r,i=0;for(n=0;n<this._layers.length;n++)r=this._layers[n],this._addItem(r),t||=r.overlay,e||=!r.overlay,i+=+!r.overlay;return this.options.hideSingleBase&&(e&&=i>1,this._baseLayersList.style.display=e?``:`none`),this._separator.style.display=t&&e?``:`none`,this},_onLayerChange:function(e){this._handlingClick||this._update();var t=this._getLayer(o(e.target)),n=t.overlay?e.type===`add`?`overlayadd`:`overlayremove`:e.type===`add`?`baselayerchange`:null;n&&this._map.fire(n,t)},_createRadioElement:function(e,t){var n=`<input type="radio" class="leaflet-control-layers-selector" name="`+e+`"`+(t?` checked="checked"`:``)+`/>`,r=document.createElement(`div`);return r.innerHTML=n,r.firstChild},_addItem:function(e){var t=document.createElement(`label`),n=this._map.hasLayer(e.layer),r;e.overlay?(r=document.createElement(`input`),r.type=`checkbox`,r.className=`leaflet-control-layers-selector`,r.defaultChecked=n):r=this._createRadioElement(`leaflet-base-layers_`+o(this),n),this._layerControlInputs.push(r),r.layerId=o(e.layer),$t(r,`click`,this._onInputClick,this);var i=document.createElement(`span`);i.innerHTML=` `+e.name;var a=document.createElement(`span`);return t.appendChild(a),a.appendChild(r),a.appendChild(i),(e.overlay?this._overlaysList:this._baseLayersList).appendChild(t),this._checkDisabledLayers(),t},_onInputClick:function(){if(!this._preventClick){var e=this._layerControlInputs,t,n,r=[],i=[];this._handlingClick=!0;for(var a=e.length-1;a>=0;a--)t=e[a],n=this._getLayer(t.layerId).layer,t.checked?r.push(n):t.checked||i.push(n);for(a=0;a<i.length;a++)this._map.hasLayer(i[a])&&this._map.removeLayer(i[a]);for(a=0;a<r.length;a++)this._map.hasLayer(r[a])||this._map.addLayer(r[a]);this._handlingClick=!1,this._refocusOnMap()}},_checkDisabledLayers:function(){for(var e=this._layerControlInputs,t,n,r=this._map.getZoom(),i=e.length-1;i>=0;i--)t=e[i],n=this._getLayer(t.layerId).layer,t.disabled=n.options.minZoom!==void 0&&r<n.options.minZoom||n.options.maxZoom!==void 0&&r>n.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var e=this._section;this._preventClick=!0,$t(e,`click`,un),this.expand();var t=this;setTimeout(function(){tn(e,`click`,un),t._preventClick=!1})}}),wn=function(e,t,n){return new Cn(e,t,n)},Tn=xn.extend({options:{position:`topleft`,zoomInText:`<span aria-hidden="true">+</span>`,zoomInTitle:`Zoom in`,zoomOutText:`<span aria-hidden="true">−</span>`,zoomOutTitle:`Zoom out`},onAdd:function(e){var t=`leaflet-control-zoom`,n=wt(`div`,t+` leaflet-bar`),r=this.options;return this._zoomInButton=this._createButton(r.zoomInText,r.zoomInTitle,t+`-in`,n,this._zoomIn),this._zoomOutButton=this._createButton(r.zoomOutText,r.zoomOutTitle,t+`-out`,n,this._zoomOut),this._updateDisabled(),e.on(`zoomend zoomlevelschange`,this._updateDisabled,this),n},onRemove:function(e){e.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(e){!this._disabled&&this._map._zoom<this._map.getMaxZoom()&&this._map.zoomIn(this._map.options.zoomDelta*(e.shiftKey?3:1))},_zoomOut:function(e){!this._disabled&&this._map._zoom>this._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(e.shiftKey?3:1))},_createButton:function(e,t,n,r,i){var a=wt(`a`,n,r);return a.innerHTML=e,a.href=`#`,a.title=t,a.setAttribute(`role`,`button`),a.setAttribute(`aria-label`,t),ln(a),$t(a,`click`,dn),$t(a,`click`,i,this),$t(a,`click`,this._refocusOnMap,this),a},_updateDisabled:function(){var e=this._map,t=`leaflet-disabled`;jt(this._zoomInButton,t),jt(this._zoomOutButton,t),this._zoomInButton.setAttribute(`aria-disabled`,`false`),this._zoomOutButton.setAttribute(`aria-disabled`,`false`),(this._disabled||e._zoom===e.getMinZoom())&&(At(this._zoomOutButton,t),this._zoomOutButton.setAttribute(`aria-disabled`,`true`)),(this._disabled||e._zoom===e.getMaxZoom())&&(At(this._zoomInButton,t),this._zoomInButton.setAttribute(`aria-disabled`,`true`))}});yn.mergeOptions({zoomControl:!0}),yn.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Tn,this.addControl(this.zoomControl))});var En=function(e){return new Tn(e)},Dn=xn.extend({options:{position:`bottomleft`,maxWidth:100,metric:!0,imperial:!0},onAdd:function(e){var t=`leaflet-control-scale`,n=wt(`div`,t),r=this.options;return this._addScales(r,t+`-line`,n),e.on(r.updateWhenIdle?`moveend`:`move`,this._update,this),e.whenReady(this._update,this),n},onRemove:function(e){e.off(this.options.updateWhenIdle?`moveend`:`move`,this._update,this)},_addScales:function(e,t,n){e.metric&&(this._mScale=wt(`div`,t,n)),e.imperial&&(this._iScale=wt(`div`,t,n))},_update:function(){var e=this._map,t=e.getSize().y/2,n=e.distance(e.containerPointToLatLng([0,t]),e.containerPointToLatLng([this.options.maxWidth,t]));this._updateScales(n)},_updateScales:function(e){this.options.metric&&e&&this._updateMetric(e),this.options.imperial&&e&&this._updateImperial(e)},_updateMetric:function(e){var t=this._getRoundNum(e),n=t<1e3?t+` m`:t/1e3+` km`;this._updateScale(this._mScale,n,t/e)},_updateImperial:function(e){var t=e*3.2808399,n,r,i;t>5280?(n=t/5280,r=this._getRoundNum(n),this._updateScale(this._iScale,r+` mi`,r/n)):(i=this._getRoundNum(t),this._updateScale(this._iScale,i+` ft`,i/t))},_updateScale:function(e,t,n){e.style.width=Math.round(this.options.maxWidth*n)+`px`,e.innerHTML=t},_getRoundNum:function(e){var t=10**((Math.floor(e)+``).length-1),n=e/t;return n=n>=10?10:n>=5?5:n>=3?3:n>=2?2:1,t*n}}),On=function(e){return new Dn(e)},kn=xn.extend({options:{position:`bottomright`,prefix:`<a href="https://leafletjs.com" title="A JavaScript library for interactive maps">`+(F.inlineSvg?`<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> `:``)+`Leaflet</a>`},initialize:function(e){p(this,e),this._attributions={}},onAdd:function(e){for(var t in e.attributionControl=this,this._container=wt(`div`,`leaflet-control-attribution`),ln(this._container),e._layers)e._layers[t].getAttribution&&this.addAttribution(e._layers[t].getAttribution());return this._update(),e.on(`layeradd`,this._addAttribution,this),this._container},onRemove:function(e){e.off(`layeradd`,this._addAttribution,this)},_addAttribution:function(e){e.layer.getAttribution&&(this.addAttribution(e.layer.getAttribution()),e.layer.once(`remove`,function(){this.removeAttribution(e.layer.getAttribution())},this))},setPrefix:function(e){return this.options.prefix=e,this._update(),this},addAttribution:function(e){return e&&(this._attributions[e]||(this._attributions[e]=0),this._attributions[e]++,this._update()),this},removeAttribution:function(e){return e&&this._attributions[e]&&(this._attributions[e]--,this._update()),this},_update:function(){if(this._map){var e=[];for(var t in this._attributions)this._attributions[t]&&e.push(t);var n=[];this.options.prefix&&n.push(this.options.prefix),e.length&&n.push(e.join(`, `)),this._container.innerHTML=n.join(` <span aria-hidden="true">|</span> `)}}});yn.mergeOptions({attributionControl:!0}),yn.addInitHook(function(){this.options.attributionControl&&new kn().addTo(this)}),xn.Layers=Cn,xn.Zoom=Tn,xn.Scale=Dn,xn.Attribution=kn,Sn.layers=wn,Sn.zoom=En,Sn.scale=On,Sn.attribution=function(e){return new kn(e)};var An=O.extend({initialize:function(e){this._map=e},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}});An.addTo=function(e,t){return e.addHandler(t,this),this};var jn={Events:k},Mn=F.touch?`touchstart mousedown`:`mousedown`,Nn=te.extend({options:{clickTolerance:3},initialize:function(e,t,n,r){p(this,r),this._element=e,this._dragStartTarget=t||e,this._preventOutline=n},enable:function(){this._enabled||=($t(this._dragStartTarget,Mn,this._onDown,this),!0)},disable:function(){this._enabled&&(Nn._dragging===this&&this.finishDrag(!0),tn(this._dragStartTarget,Mn,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(e){if(this._enabled&&(this._moved=!1,!kt(this._element,`leaflet-zoom-anim`))){if(e.touches&&e.touches.length!==1)Nn._dragging===this&&this.finishDrag();else if(!(Nn._dragging||e.shiftKey||e.which!==1&&e.button!==1&&!e.touches)&&(Nn._dragging=this,this._preventOutline&&Jt(this._element),Wt(),Bt(),!this._moving)){this.fire(`down`);var t=e.touches?e.touches[0]:e,n=Xt(this._element);this._startPoint=new A(t.clientX,t.clientY),this._startPos=zt(this._element),this._parentScale=Zt(n);var r=e.type===`mousedown`;$t(document,r?`mousemove`:`touchmove`,this._onMove,this),$t(document,r?`mouseup`:`touchend touchcancel`,this._onUp,this)}}},_onMove:function(e){if(this._enabled){if(e.touches&&e.touches.length>1)this._moved=!0;else{var t=e.touches&&e.touches.length===1?e.touches[0]:e,n=new A(t.clientX,t.clientY)._subtract(this._startPoint);(n.x||n.y)&&(Math.abs(n.x)+Math.abs(n.y)<this.options.clickTolerance||(n.x/=this._parentScale.x,n.y/=this._parentScale.y,un(e),this._moved||(this.fire(`dragstart`),this._moved=!0,At(document.body,`leaflet-dragging`),this._lastTarget=e.target||e.srcElement,window.SVGElementInstance&&this._lastTarget instanceof window.SVGElementInstance&&(this._lastTarget=this._lastTarget.correspondingUseElement),At(this._lastTarget,`leaflet-drag-target`)),this._newPos=this._startPos.add(n),this._moving=!0,this._lastEvent=e,this._updatePosition()))}}},_updatePosition:function(){var e={originalEvent:this._lastEvent};this.fire(`predrag`,e),Rt(this._element,this._newPos),this.fire(`drag`,e)},_onUp:function(){this._enabled&&this.finishDrag()},finishDrag:function(e){jt(document.body,`leaflet-dragging`),this._lastTarget&&=(jt(this._lastTarget,`leaflet-drag-target`),null),tn(document,`mousemove touchmove`,this._onMove,this),tn(document,`mouseup touchend touchcancel`,this._onUp,this),Gt(),Vt();var t=this._moved&&this._moving;this._moving=!1,Nn._dragging=!1,t&&this.fire(`dragend`,{noInertia:e,distance:this._newPos.distanceTo(this._startPos)})}});function Pn(e,t,n){for(var r,i=[1,4,2,8],a=0,o,s,c,l,u=e.length,d,f;a<u;a++)e[a]._code=qn(e[a],t);for(s=0;s<4;s++){for(d=i[s],r=[],a=0,u=e.length,o=u-1;a<u;o=a++)c=e[a],l=e[o],c._code&d?l._code&d||(f=Kn(l,c,d,t,n),f._code=qn(f,t),r.push(f)):(l._code&d&&(f=Kn(l,c,d,t,n),f._code=qn(f,t),r.push(f)),r.push(c));e=r}return e}function Fn(e,t){var n,r,i,a,o,s,c,l,u;if(!e||e.length===0)throw Error(`latlngs not passed`);Xn(e)||(console.warn(`latlngs are not flat! Only the first ring will be used`),e=e[0]);var d=ae([0,0]),f=ie(e);f.getNorthWest().distanceTo(f.getSouthWest())*f.getNorthEast().distanceTo(f.getNorthWest())<1700&&(d=In(e));var p=e.length,m=[];for(n=0;n<p;n++){var h=ae(e[n]);m.push(t.project(ae([h.lat-d.lat,h.lng-d.lng])))}for(s=c=l=0,n=0,r=p-1;n<p;r=n++)i=m[n],a=m[r],o=i.y*a.x-a.y*i.x,c+=(i.x+a.x)*o,l+=(i.y+a.y)*o,s+=o*3;u=s===0?m[0]:[c/s,l/s];var g=t.unproject(M(u));return ae([g.lat+d.lat,g.lng+d.lng])}function In(e){for(var t=0,n=0,r=0,i=0;i<e.length;i++){var a=ae(e[i]);t+=a.lat,n+=a.lng,r++}return ae([t/r,n/r])}var Ln={__proto__:null,clipPolygon:Pn,polygonCenter:Fn,centroid:In};function Rn(e,t){if(!t||!e.length)return e.slice();var n=t*t;return e=Un(e,n),e=Vn(e,n),e}function zn(e,t,n){return Math.sqrt(Yn(e,t,n,!0))}function Bn(e,t,n){return Yn(e,t,n)}function Vn(e,t){var n=e.length,r=new(typeof Uint8Array<`u`?Uint8Array:Array)(n);r[0]=r[n-1]=1,Hn(e,r,t,0,n-1);var i,a=[];for(i=0;i<n;i++)r[i]&&a.push(e[i]);return a}function Hn(e,t,n,r,i){for(var a=0,o,s=r+1,c;s<=i-1;s++)c=Yn(e[s],e[r],e[i],!0),c>a&&(o=s,a=c);a>n&&(t[o]=1,Hn(e,t,n,r,o),Hn(e,t,n,o,i))}function Un(e,t){for(var n=[e[0]],r=1,i=0,a=e.length;r<a;r++)Jn(e[r],e[i])>t&&(n.push(e[r]),i=r);return i<a-1&&n.push(e[a-1]),n}var Wn;function Gn(e,t,n,r,i){var a=r?Wn:qn(e,n),o=qn(t,n),s,c,l;for(Wn=o;;){if(!(a|o))return[e,t];if(a&o)return!1;s=a||o,c=Kn(e,t,s,n,i),l=qn(c,n),s===a?(e=c,a=l):(t=c,o=l)}}function Kn(e,t,n,r,i){var a=t.x-e.x,o=t.y-e.y,s=r.min,c=r.max,l,u;return n&8?(l=e.x+a*(c.y-e.y)/o,u=c.y):n&4?(l=e.x+a*(s.y-e.y)/o,u=s.y):n&2?(l=c.x,u=e.y+o*(c.x-e.x)/a):n&1&&(l=s.x,u=e.y+o*(s.x-e.x)/a),new A(l,u,i)}function qn(e,t){var n=0;return e.x<t.min.x?n|=1:e.x>t.max.x&&(n|=2),e.y<t.min.y?n|=4:e.y>t.max.y&&(n|=8),n}function Jn(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r}function Yn(e,t,n,r){var i=t.x,a=t.y,o=n.x-i,s=n.y-a,c=o*o+s*s,l;return c>0&&(l=((e.x-i)*o+(e.y-a)*s)/c,l>1?(i=n.x,a=n.y):l>0&&(i+=o*l,a+=s*l)),o=e.x-i,s=e.y-a,r?o*o+s*s:new A(i,a)}function Xn(e){return!_(e[0])||typeof e[0][0]!=`object`&&e[0][0]!==void 0}function Zn(e){return console.warn(`Deprecated use of _flat, please use L.LineUtil.isFlat instead.`),Xn(e)}function Qn(e,t){var n,r,i,a,o,s,c,l;if(!e||e.length===0)throw Error(`latlngs not passed`);Xn(e)||(console.warn(`latlngs are not flat! Only the first ring will be used`),e=e[0]);var u=ae([0,0]),d=ie(e);d.getNorthWest().distanceTo(d.getSouthWest())*d.getNorthEast().distanceTo(d.getNorthWest())<1700&&(u=In(e));var f=e.length,p=[];for(n=0;n<f;n++){var m=ae(e[n]);p.push(t.project(ae([m.lat-u.lat,m.lng-u.lng])))}for(n=0,r=0;n<f-1;n++)r+=p[n].distanceTo(p[n+1])/2;if(r===0)l=p[0];else for(n=0,a=0;n<f-1;n++)if(o=p[n],s=p[n+1],i=o.distanceTo(s),a+=i,a>r){c=(a-r)/i,l=[s.x-c*(s.x-o.x),s.y-c*(s.y-o.y)];break}var h=t.unproject(M(l));return ae([h.lat+u.lat,h.lng+u.lng])}var $n={__proto__:null,simplify:Rn,pointToSegmentDistance:zn,closestPointOnSegment:Bn,clipSegment:Gn,_getEdgeIntersection:Kn,_getBitCode:qn,_sqClosestPointOnSegment:Yn,isFlat:Xn,_flat:Zn,polylineCenter:Qn},er={project:function(e){return new A(e.lng,e.lat)},unproject:function(e){return new P(e.y,e.x)},bounds:new N([-180,-90],[180,90])},tr={R:6378137,R_MINOR:6356752.314245179,bounds:new N([-20037508.34279,-15496570.73972],[20037508.34279,18764656.23138]),project:function(e){var t=Math.PI/180,n=this.R,r=e.lat*t,i=this.R_MINOR/n,a=Math.sqrt(1-i*i),o=a*Math.sin(r),s=Math.tan(Math.PI/4-r/2)/((1-o)/(1+o))**(a/2);return r=-n*Math.log(Math.max(s,1e-10)),new A(e.lng*t*n,r)},unproject:function(e){for(var t=180/Math.PI,n=this.R,r=this.R_MINOR/n,i=Math.sqrt(1-r*r),a=Math.exp(-e.y/n),o=Math.PI/2-2*Math.atan(a),s=0,c=.1,l;s<15&&Math.abs(c)>1e-7;s++)l=i*Math.sin(o),l=((1-l)/(1+l))**(i/2),c=Math.PI/2-2*Math.atan(a*l)-o,o+=c;return new P(o*t,e.x*t/n)}},nr={__proto__:null,LonLat:er,Mercator:tr,SphericalMercator:le},rr=n({},se,{code:`EPSG:3395`,projection:tr,transformation:function(){var e=.5/(Math.PI*tr.R);return de(e,.5,-e,.5)}()}),ir=n({},se,{code:`EPSG:4326`,projection:er,transformation:de(1/180,1,-1/180,.5)}),ar=n({},oe,{projection:er,transformation:de(1,0,-1,0),scale:function(e){return 2**e},zoom:function(e){return Math.log(e)/Math.LN2},distance:function(e,t){var n=t.lng-e.lng,r=t.lat-e.lat;return Math.sqrt(n*n+r*r)},infinite:!0});oe.Earth=se,oe.EPSG3395=rr,oe.EPSG3857=fe,oe.EPSG900913=pe,oe.EPSG4326=ir,oe.Simple=ar;var or=te.extend({options:{pane:`overlayPane`,attribution:null,bubblingMouseEvents:!0},addTo:function(e){return e.addLayer(this),this},remove:function(){return this.removeFrom(this._map||this._mapToAdd)},removeFrom:function(e){return e&&e.removeLayer(this),this},getPane:function(e){return this._map.getPane(e?this.options[e]||e:this.options.pane)},addInteractiveTarget:function(e){return this._map._targets[o(e)]=this,this},removeInteractiveTarget:function(e){return delete this._map._targets[o(e)],this},getAttribution:function(){return this.options.attribution},_layerAdd:function(e){var t=e.target;if(t.hasLayer(this)){if(this._map=t,this._zoomAnimated=t._zoomAnimated,this.getEvents){var n=this.getEvents();t.on(n,this),this.once(`remove`,function(){t.off(n,this)},this)}this.onAdd(t),this.fire(`add`),t.fire(`layeradd`,{layer:this})}}});yn.include({addLayer:function(e){if(!e._layerAdd)throw Error(`The provided object is not a Layer.`);var t=o(e);return this._layers[t]||(this._layers[t]=e,e._mapToAdd=this,e.beforeAdd&&e.beforeAdd(this),this.whenReady(e._layerAdd,e)),this},removeLayer:function(e){var t=o(e);return this._layers[t]&&(this._loaded&&e.onRemove(this),delete this._layers[t],this._loaded&&(this.fire(`layerremove`,{layer:e}),e.fire(`remove`)),e._map=e._mapToAdd=null),this},hasLayer:function(e){return o(e)in this._layers},eachLayer:function(e,t){for(var n in this._layers)e.call(t,this._layers[n]);return this},_addLayers:function(e){e=e?_(e)?e:[e]:[];for(var t=0,n=e.length;t<n;t++)this.addLayer(e[t])},_addZoomLimit:function(e){isNaN(e.options.maxZoom)&&isNaN(e.options.minZoom)||(this._zoomBoundLayers[o(e)]=e,this._updateZoomLevels())},_removeZoomLimit:function(e){var t=o(e);this._zoomBoundLayers[t]&&(delete this._zoomBoundLayers[t],this._updateZoomLevels())},_updateZoomLevels:function(){var e=1/0,t=-1/0,n=this._getZoomSpan();for(var r in this._zoomBoundLayers){var i=this._zoomBoundLayers[r].options;e=i.minZoom===void 0?e:Math.min(e,i.minZoom),t=i.maxZoom===void 0?t:Math.max(t,i.maxZoom)}this._layersMaxZoom=t===-1/0?void 0:t,this._layersMinZoom=e===1/0?void 0:e,n!==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 sr=or.extend({initialize:function(e,t){p(this,t),this._layers={};var n,r;if(e)for(n=0,r=e.length;n<r;n++)this.addLayer(e[n])},addLayer:function(e){var t=this.getLayerId(e);return this._layers[t]=e,this._map&&this._map.addLayer(e),this},removeLayer:function(e){var t=e in this._layers?e:this.getLayerId(e);return this._map&&this._layers[t]&&this._map.removeLayer(this._layers[t]),delete this._layers[t],this},hasLayer:function(e){return(typeof e==`number`?e:this.getLayerId(e))in this._layers},clearLayers:function(){return this.eachLayer(this.removeLayer,this)},invoke:function(e){var t=Array.prototype.slice.call(arguments,1),n,r;for(n in this._layers)r=this._layers[n],r[e]&&r[e].apply(r,t);return this},onAdd:function(e){this.eachLayer(e.addLayer,e)},onRemove:function(e){this.eachLayer(e.removeLayer,e)},eachLayer:function(e,t){for(var n in this._layers)e.call(t,this._layers[n]);return this},getLayer:function(e){return this._layers[e]},getLayers:function(){var e=[];return this.eachLayer(e.push,e),e},setZIndex:function(e){return this.invoke(`setZIndex`,e)},getLayerId:function(e){return o(e)}}),cr=function(e,t){return new sr(e,t)},lr=sr.extend({addLayer:function(e){return this.hasLayer(e)?this:(e.addEventParent(this),sr.prototype.addLayer.call(this,e),this.fire(`layeradd`,{layer:e}))},removeLayer:function(e){return this.hasLayer(e)?(e in this._layers&&(e=this._layers[e]),e.removeEventParent(this),sr.prototype.removeLayer.call(this,e),this.fire(`layerremove`,{layer:e})):this},setStyle:function(e){return this.invoke(`setStyle`,e)},bringToFront:function(){return this.invoke(`bringToFront`)},bringToBack:function(){return this.invoke(`bringToBack`)},getBounds:function(){var e=new re;for(var t in this._layers){var n=this._layers[t];e.extend(n.getBounds?n.getBounds():n.getLatLng())}return e}}),ur=function(e,t){return new lr(e,t)},dr=O.extend({options:{popupAnchor:[0,0],tooltipAnchor:[0,0],crossOrigin:!1},initialize:function(e){p(this,e)},createIcon:function(e){return this._createIcon(`icon`,e)},createShadow:function(e){return this._createIcon(`shadow`,e)},_createIcon:function(e,t){var n=this._getIconUrl(e);if(!n){if(e===`icon`)throw Error(`iconUrl not set in Icon options (see the docs).`);return null}var r=this._createImg(n,t&&t.tagName===`IMG`?t:null);return this._setIconStyles(r,e),(this.options.crossOrigin||this.options.crossOrigin===``)&&(r.crossOrigin=this.options.crossOrigin===!0?``:this.options.crossOrigin),r},_setIconStyles:function(e,t){var n=this.options,r=n[t+`Size`];typeof r==`number`&&(r=[r,r]);var i=M(r),a=M(t===`shadow`&&n.shadowAnchor||n.iconAnchor||i&&i.divideBy(2,!0));e.className=`leaflet-marker-`+t+` `+(n.className||``),a&&(e.style.marginLeft=-a.x+`px`,e.style.marginTop=-a.y+`px`),i&&(e.style.width=i.x+`px`,e.style.height=i.y+`px`)},_createImg:function(e,t){return t||=document.createElement(`img`),t.src=e,t},_getIconUrl:function(e){return F.retina&&this.options[e+`RetinaUrl`]||this.options[e+`Url`]}});function fr(e){return new dr(e)}var pr=dr.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(e){return typeof pr.imagePath!=`string`&&(pr.imagePath=this._detectIconPath()),(this.options.imagePath||pr.imagePath)+dr.prototype._getIconUrl.call(this,e)},_stripUrl:function(e){var t=function(e,t,n){var r=t.exec(e);return r&&r[n]};return e=t(e,/^url\((['"])?(.+)\1\)$/,2),e&&t(e,/^(.*)marker-icon\.png$/,1)},_detectIconPath:function(){var e=wt(`div`,`leaflet-default-icon-path`,document.body),t=I(e,`background-image`)||I(e,`backgroundImage`);if(document.body.removeChild(e),t=this._stripUrl(t),t)return t;var n=document.querySelector(`link[href$="leaflet.css"]`);return n?n.href.substring(0,n.href.length-11-1):``}}),mr=An.extend({initialize:function(e){this._marker=e},addHooks:function(){var e=this._marker._icon;this._draggable||=new Nn(e,e,!0),this._draggable.on({dragstart:this._onDragStart,predrag:this._onPreDrag,drag:this._onDrag,dragend:this._onDragEnd},this).enable(),At(e,`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&&jt(this._marker._icon,`leaflet-marker-draggable`)},moved:function(){return this._draggable&&this._draggable._moved},_adjustPan:function(e){var t=this._marker,n=t._map,r=this._marker.options.autoPanSpeed,i=this._marker.options.autoPanPadding,a=zt(t._icon),o=n.getPixelBounds(),s=n.getPixelOrigin(),c=ne(o.min._subtract(s).add(i),o.max._subtract(s).subtract(i));if(!c.contains(a)){var l=M((Math.max(c.max.x,a.x)-c.max.x)/(o.max.x-c.max.x)-(Math.min(c.min.x,a.x)-c.min.x)/(o.min.x-c.min.x),(Math.max(c.max.y,a.y)-c.max.y)/(o.max.y-c.max.y)-(Math.min(c.min.y,a.y)-c.min.y)/(o.min.y-c.min.y)).multiplyBy(r);n.panBy(l,{animate:!1}),this._draggable._newPos._add(l),this._draggable._startPos._add(l),Rt(t._icon,this._draggable._newPos),this._onDrag(e),this._panRequest=T(this._adjustPan.bind(this,e))}},_onDragStart:function(){this._oldLatLng=this._marker.getLatLng(),this._marker.closePopup&&this._marker.closePopup(),this._marker.fire(`movestart`).fire(`dragstart`)},_onPreDrag:function(e){this._marker.options.autoPan&&(E(this._panRequest),this._panRequest=T(this._adjustPan.bind(this,e)))},_onDrag:function(e){var t=this._marker,n=t._shadow,r=zt(t._icon),i=t._map.layerPointToLatLng(r);n&&Rt(n,r),t._latlng=i,e.latlng=i,e.oldLatLng=this._oldLatLng,t.fire(`move`,e).fire(`drag`,e)},_onDragEnd:function(e){E(this._panRequest),delete this._oldLatLng,this._marker.fire(`moveend`).fire(`dragend`,e)}}),hr=or.extend({options:{icon:new pr,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(e,t){p(this,t),this._latlng=ae(e)},onAdd:function(e){this._zoomAnimated=this._zoomAnimated&&e.options.markerZoomAnimation,this._zoomAnimated&&e.on(`zoomanim`,this._animateZoom,this),this._initIcon(),this.update()},onRemove:function(e){this.dragging&&this.dragging.enabled()&&(this.options.draggable=!0,this.dragging.removeHooks()),delete this.dragging,this._zoomAnimated&&e.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(e){var t=this._latlng;return this._latlng=ae(e),this.update(),this.fire(`move`,{oldLatLng:t,latlng:this._latlng})},setZIndexOffset:function(e){return this.options.zIndexOffset=e,this.update()},getIcon:function(){return this.options.icon},setIcon:function(e){return this.options.icon=e,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 e=this._map.latLngToLayerPoint(this._latlng).round();this._setPos(e)}return this},_initIcon:function(){var e=this.options,t=`leaflet-zoom-`+(this._zoomAnimated?`animated`:`hide`),n=e.icon.createIcon(this._icon),r=!1;n!==this._icon&&(this._icon&&this._removeIcon(),r=!0,e.title&&(n.title=e.title),n.tagName===`IMG`&&(n.alt=e.alt||``)),At(n,t),e.keyboard&&(n.tabIndex=`0`,n.setAttribute(`role`,`button`)),this._icon=n,e.riseOnHover&&this.on({mouseover:this._bringToFront,mouseout:this._resetZIndex}),this.options.autoPanOnFocus&&$t(n,`focus`,this._panOnFocus,this);var i=e.icon.createShadow(this._shadow),a=!1;i!==this._shadow&&(this._removeShadow(),a=!0),i&&(At(i,t),i.alt=``),this._shadow=i,e.opacity<1&&this._updateOpacity(),r&&this.getPane().appendChild(this._icon),this._initInteraction(),i&&a&&this.getPane(e.shadowPane).appendChild(this._shadow)},_removeIcon:function(){this.options.riseOnHover&&this.off({mouseover:this._bringToFront,mouseout:this._resetZIndex}),this.options.autoPanOnFocus&&tn(this._icon,`focus`,this._panOnFocus,this),Tt(this._icon),this.removeInteractiveTarget(this._icon),this._icon=null},_removeShadow:function(){this._shadow&&Tt(this._shadow),this._shadow=null},_setPos:function(e){this._icon&&Rt(this._icon,e),this._shadow&&Rt(this._shadow,e),this._zIndex=e.y+this.options.zIndexOffset,this._resetZIndex()},_updateZIndex:function(e){this._icon&&(this._icon.style.zIndex=this._zIndex+e)},_animateZoom:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center).round();this._setPos(t)},_initInteraction:function(){if(this.options.interactive&&(At(this._icon,`leaflet-interactive`),this.addInteractiveTarget(this._icon),mr)){var e=this.options.draggable;this.dragging&&(e=this.dragging.enabled(),this.dragging.disable()),this.dragging=new mr(this),e&&this.dragging.enable()}},setOpacity:function(e){return this.options.opacity=e,this._map&&this._updateOpacity(),this},_updateOpacity:function(){var e=this.options.opacity;this._icon&&Pt(this._icon,e),this._shadow&&Pt(this._shadow,e)},_bringToFront:function(){this._updateZIndex(this.options.riseOffset)},_resetZIndex:function(){this._updateZIndex(0)},_panOnFocus:function(){var e=this._map;if(e){var t=this.options.icon.options,n=t.iconSize?M(t.iconSize):M(0,0),r=t.iconAnchor?M(t.iconAnchor):M(0,0);e.panInside(this._latlng,{paddingTopLeft:r,paddingBottomRight:n.subtract(r)})}},_getPopupAnchor:function(){return this.options.icon.options.popupAnchor},_getTooltipAnchor:function(){return this.options.icon.options.tooltipAnchor}});function gr(e,t){return new hr(e,t)}var _r=or.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(e){this._renderer=e.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(e){return p(this,e),this._renderer&&(this._renderer._updateStyle(this),this.options.stroke&&e&&Object.prototype.hasOwnProperty.call(e,`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)}}),vr=_r.extend({options:{fill:!0,radius:10},initialize:function(e,t){p(this,t),this._latlng=ae(e),this._radius=this.options.radius},setLatLng:function(e){var t=this._latlng;return this._latlng=ae(e),this.redraw(),this.fire(`move`,{oldLatLng:t,latlng:this._latlng})},getLatLng:function(){return this._latlng},setRadius:function(e){return this.options.radius=this._radius=e,this.redraw()},getRadius:function(){return this._radius},setStyle:function(e){var t=e&&e.radius||this._radius;return _r.prototype.setStyle.call(this,e),this.setRadius(t),this},_project:function(){this._point=this._map.latLngToLayerPoint(this._latlng),this._updateBounds()},_updateBounds:function(){var e=this._radius,t=this._radiusY||e,n=this._clickTolerance(),r=[e+n,t+n];this._pxBounds=new N(this._point.subtract(r),this._point.add(r))},_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(e){return e.distanceTo(this._point)<=this._radius+this._clickTolerance()}});function yr(e,t){return new vr(e,t)}var br=vr.extend({initialize:function(e,t,r){if(typeof t==`number`&&(t=n({},r,{radius:t})),p(this,t),this._latlng=ae(e),isNaN(this.options.radius))throw Error(`Circle radius cannot be NaN`);this._mRadius=this.options.radius},setRadius:function(e){return this._mRadius=e,this.redraw()},getRadius:function(){return this._mRadius},getBounds:function(){var e=[this._radius,this._radiusY||this._radius];return new re(this._map.layerPointToLatLng(this._point.subtract(e)),this._map.layerPointToLatLng(this._point.add(e)))},setStyle:_r.prototype.setStyle,_project:function(){var e=this._latlng.lng,t=this._latlng.lat,n=this._map,r=n.options.crs;if(r.distance===se.distance){var i=Math.PI/180,a=this._mRadius/se.R/i,o=n.project([t+a,e]),s=n.project([t-a,e]),c=o.add(s).divideBy(2),l=n.unproject(c).lat,u=Math.acos((Math.cos(a*i)-Math.sin(t*i)*Math.sin(l*i))/(Math.cos(t*i)*Math.cos(l*i)))/i;(isNaN(u)||u===0)&&(u=a/Math.cos(Math.PI/180*t)),this._point=c.subtract(n.getPixelOrigin()),this._radius=isNaN(u)?0:c.x-n.project([l,e-u]).x,this._radiusY=c.y-o.y}else{var d=r.unproject(r.project(this._latlng).subtract([this._mRadius,0]));this._point=n.latLngToLayerPoint(this._latlng),this._radius=this._point.x-n.latLngToLayerPoint(d).x}this._updateBounds()}});function R(e,t,n){return new br(e,t,n)}var xr=_r.extend({options:{smoothFactor:1,noClip:!1},initialize:function(e,t){p(this,t),this._setLatLngs(e)},getLatLngs:function(){return this._latlngs},setLatLngs:function(e){return this._setLatLngs(e),this.redraw()},isEmpty:function(){return!this._latlngs.length},closestLayerPoint:function(e){for(var t=1/0,n=null,r=Yn,i,a,o=0,s=this._parts.length;o<s;o++)for(var c=this._parts[o],l=1,u=c.length;l<u;l++){i=c[l-1],a=c[l];var d=r(e,i,a,!0);d<t&&(t=d,n=r(e,i,a))}return n&&(n.distance=Math.sqrt(t)),n},getCenter:function(){if(!this._map)throw Error(`Must add layer to map before using getCenter()`);return Qn(this._defaultShape(),this._map.options.crs)},getBounds:function(){return this._bounds},addLatLng:function(e,t){return t||=this._defaultShape(),e=ae(e),t.push(e),this._bounds.extend(e),this.redraw()},_setLatLngs:function(e){this._bounds=new re,this._latlngs=this._convertLatLngs(e)},_defaultShape:function(){return Xn(this._latlngs)?this._latlngs:this._latlngs[0]},_convertLatLngs:function(e){for(var t=[],n=Xn(e),r=0,i=e.length;r<i;r++)n?(t[r]=ae(e[r]),this._bounds.extend(t[r])):t[r]=this._convertLatLngs(e[r]);return t},_project:function(){var e=new N;this._rings=[],this._projectLatlngs(this._latlngs,this._rings,e),this._bounds.isValid()&&e.isValid()&&(this._rawPxBounds=e,this._updateBounds())},_updateBounds:function(){var e=this._clickTolerance(),t=new A(e,e);this._rawPxBounds&&(this._pxBounds=new N([this._rawPxBounds.min.subtract(t),this._rawPxBounds.max.add(t)]))},_projectLatlngs:function(e,t,n){var r=e[0]instanceof P,i=e.length,a,o;if(r){for(o=[],a=0;a<i;a++)o[a]=this._map.latLngToLayerPoint(e[a]),n.extend(o[a]);t.push(o)}else for(a=0;a<i;a++)this._projectLatlngs(e[a],t,n)},_clipPoints:function(){var e=this._renderer._bounds;if(this._parts=[],this._pxBounds&&this._pxBounds.intersects(e)){if(this.options.noClip)this._parts=this._rings;else for(var t=this._parts,n=0,r,i=0,a=this._rings.length,o,s,c;n<a;n++)for(c=this._rings[n],r=0,o=c.length;r<o-1;r++)s=Gn(c[r],c[r+1],e,r,!0),s&&(t[i]=t[i]||[],t[i].push(s[0]),(s[1]!==c[r+1]||r===o-2)&&(t[i].push(s[1]),i++))}},_simplifyPoints:function(){for(var e=this._parts,t=this.options.smoothFactor,n=0,r=e.length;n<r;n++)e[n]=Rn(e[n],t)},_update:function(){this._map&&(this._clipPoints(),this._simplifyPoints(),this._updatePath())},_updatePath:function(){this._renderer._updatePoly(this)},_containsPoint:function(e,t){var n,r,i,a,o,s,c=this._clickTolerance();if(!this._pxBounds||!this._pxBounds.contains(e))return!1;for(n=0,a=this._parts.length;n<a;n++)for(s=this._parts[n],r=0,o=s.length,i=o-1;r<o;i=r++)if((t||r!==0)&&zn(e,s[i],s[r])<=c)return!0;return!1}});function Sr(e,t){return new xr(e,t)}xr._flat=Zn;var Cr=xr.extend({options:{fill:!0},isEmpty:function(){return!this._latlngs.length||!this._latlngs[0].length},getCenter:function(){if(!this._map)throw Error(`Must add layer to map before using getCenter()`);return Fn(this._defaultShape(),this._map.options.crs)},_convertLatLngs:function(e){var t=xr.prototype._convertLatLngs.call(this,e),n=t.length;return n>=2&&t[0]instanceof P&&t[0].equals(t[n-1])&&t.pop(),t},_setLatLngs:function(e){xr.prototype._setLatLngs.call(this,e),Xn(this._latlngs)&&(this._latlngs=[this._latlngs])},_defaultShape:function(){return Xn(this._latlngs[0])?this._latlngs[0]:this._latlngs[0][0]},_clipPoints:function(){var e=this._renderer._bounds,t=this.options.weight,n=new A(t,t);if(e=new N(e.min.subtract(n),e.max.add(n)),this._parts=[],this._pxBounds&&this._pxBounds.intersects(e)){if(this.options.noClip)this._parts=this._rings;else for(var r=0,i=this._rings.length,a;r<i;r++)a=Pn(this._rings[r],e,!0),a.length&&this._parts.push(a)}},_updatePath:function(){this._renderer._updatePoly(this,!0)},_containsPoint:function(e){var t=!1,n,r,i,a,o,s,c,l;if(!this._pxBounds||!this._pxBounds.contains(e))return!1;for(a=0,c=this._parts.length;a<c;a++)for(n=this._parts[a],o=0,l=n.length,s=l-1;o<l;s=o++)r=n[o],i=n[s],r.y>e.y!=i.y>e.y&&e.x<(i.x-r.x)*(e.y-r.y)/(i.y-r.y)+r.x&&(t=!t);return t||xr.prototype._containsPoint.call(this,e,!0)}});function wr(e,t){return new Cr(e,t)}var Tr=lr.extend({initialize:function(e,t){p(this,t),this._layers={},e&&this.addData(e)},addData:function(e){var t=_(e)?e:e.features,n,r,i;if(t){for(n=0,r=t.length;n<r;n++)i=t[n],(i.geometries||i.geometry||i.features||i.coordinates)&&this.addData(i);return this}var a=this.options;if(a.filter&&!a.filter(e))return this;var o=Er(e,a);return o?(o.feature=Mr(e),o.defaultOptions=o.options,this.resetStyle(o),a.onEachFeature&&a.onEachFeature(e,o),this.addLayer(o)):this},resetStyle:function(e){return e===void 0?this.eachLayer(this.resetStyle,this):(e.options=n({},e.defaultOptions),this._setLayerStyle(e,this.options.style),this)},setStyle:function(e){return this.eachLayer(function(t){this._setLayerStyle(t,e)},this)},_setLayerStyle:function(e,t){e.setStyle&&(typeof t==`function`&&(t=t(e.feature)),e.setStyle(t))}});function Er(e,t){var n=e.type===`Feature`?e.geometry:e,r=n?n.coordinates:null,i=[],a=t&&t.pointToLayer,o=t&&t.coordsToLatLng||Dr,s,c,l,u;if(!r&&!n)return null;switch(n.type){case`Point`:return s=o(r),z(a,e,s,t);case`MultiPoint`:for(l=0,u=r.length;l<u;l++)s=o(r[l]),i.push(z(a,e,s,t));return new lr(i);case`LineString`:case`MultiLineString`:return c=Or(r,n.type===`LineString`?0:1,o),new xr(c,t);case`Polygon`:case`MultiPolygon`:return c=Or(r,n.type===`Polygon`?1:2,o),new Cr(c,t);case`GeometryCollection`:for(l=0,u=n.geometries.length;l<u;l++){var d=Er({geometry:n.geometries[l],type:`Feature`,properties:e.properties},t);d&&i.push(d)}return new lr(i);case`FeatureCollection`:for(l=0,u=n.features.length;l<u;l++){var f=Er(n.features[l],t);f&&i.push(f)}return new lr(i);default:throw Error(`Invalid GeoJSON object.`)}}function z(e,t,n,r){return e?e(t,n):new hr(n,r&&r.markersInheritOptions&&r)}function Dr(e){return new P(e[1],e[0],e[2])}function Or(e,t,n){for(var r=[],i=0,a=e.length,o;i<a;i++)o=t?Or(e[i],t-1,n):(n||Dr)(e[i]),r.push(o);return r}function kr(e,t){return e=ae(e),e.alt===void 0?[u(e.lng,t),u(e.lat,t)]:[u(e.lng,t),u(e.lat,t),u(e.alt,t)]}function Ar(e,t,n,r){for(var i=[],a=0,o=e.length;a<o;a++)i.push(t?Ar(e[a],Xn(e[a])?0:t-1,n,r):kr(e[a],r));return!t&&n&&i.length>0&&i.push(i[0].slice()),i}function jr(e,t){return e.feature?n({},e.feature,{geometry:t}):Mr(t)}function Mr(e){return e.type===`Feature`||e.type===`FeatureCollection`?e:{type:`Feature`,properties:{},geometry:e}}var Nr={toGeoJSON:function(e){return jr(this,{type:`Point`,coordinates:kr(this.getLatLng(),e)})}};hr.include(Nr),br.include(Nr),vr.include(Nr),xr.include({toGeoJSON:function(e){var t=!Xn(this._latlngs),n=Ar(this._latlngs,+!!t,!1,e);return jr(this,{type:(t?`Multi`:``)+`LineString`,coordinates:n})}}),Cr.include({toGeoJSON:function(e){var t=!Xn(this._latlngs),n=t&&!Xn(this._latlngs[0]),r=Ar(this._latlngs,n?2:+!!t,!0,e);return t||(r=[r]),jr(this,{type:(n?`Multi`:``)+`Polygon`,coordinates:r})}}),sr.include({toMultiPoint:function(e){var t=[];return this.eachLayer(function(n){t.push(n.toGeoJSON(e).geometry.coordinates)}),jr(this,{type:`MultiPoint`,coordinates:t})},toGeoJSON:function(e){var t=this.feature&&this.feature.geometry&&this.feature.geometry.type;if(t===`MultiPoint`)return this.toMultiPoint(e);var n=t===`GeometryCollection`,r=[];return this.eachLayer(function(t){if(t.toGeoJSON){var i=t.toGeoJSON(e);if(n)r.push(i.geometry);else{var a=Mr(i);a.type===`FeatureCollection`?r.push.apply(r,a.features):r.push(a)}}}),n?jr(this,{geometries:r,type:`GeometryCollection`}):{type:`FeatureCollection`,features:r}}});function Pr(e,t){return new Tr(e,t)}var Fr=Pr,Ir=or.extend({options:{opacity:1,alt:``,interactive:!1,crossOrigin:!1,errorOverlayUrl:``,zIndex:1,className:``},initialize:function(e,t,n){this._url=e,this._bounds=ie(t),p(this,n)},onAdd:function(){this._image||(this._initImage(),this.options.opacity<1&&this._updateOpacity()),this.options.interactive&&(At(this._image,`leaflet-interactive`),this.addInteractiveTarget(this._image)),this.getPane().appendChild(this._image),this._reset()},onRemove:function(){Tt(this._image),this.options.interactive&&this.removeInteractiveTarget(this._image)},setOpacity:function(e){return this.options.opacity=e,this._image&&this._updateOpacity(),this},setStyle:function(e){return e.opacity&&this.setOpacity(e.opacity),this},bringToFront:function(){return this._map&&Dt(this._image),this},bringToBack:function(){return this._map&&Ot(this._image),this},setUrl:function(e){return this._url=e,this._image&&(this._image.src=e),this},setBounds:function(e){return this._bounds=ie(e),this._map&&this._reset(),this},getEvents:function(){var e={zoom:this._reset,viewreset:this._reset};return this._zoomAnimated&&(e.zoomanim=this._animateZoom),e},setZIndex:function(e){return this.options.zIndex=e,this._updateZIndex(),this},getBounds:function(){return this._bounds},getElement:function(){return this._image},_initImage:function(){var e=this._url.tagName===`IMG`,t=this._image=e?this._url:wt(`img`);At(t,`leaflet-image-layer`),this._zoomAnimated&&At(t,`leaflet-zoom-animated`),this.options.className&&At(t,this.options.className),t.onselectstart=l,t.onmousemove=l,t.onload=i(this.fire,this,`load`),t.onerror=i(this._overlayOnError,this,`error`),(this.options.crossOrigin||this.options.crossOrigin===``)&&(t.crossOrigin=this.options.crossOrigin===!0?``:this.options.crossOrigin),this.options.zIndex&&this._updateZIndex(),e?this._url=t.src:(t.src=this._url,t.alt=this.options.alt)},_animateZoom:function(e){var t=this._map.getZoomScale(e.zoom),n=this._map._latLngBoundsToNewLayerBounds(this._bounds,e.zoom,e.center).min;Lt(this._image,n,t)},_reset:function(){var e=this._image,t=new N(this._map.latLngToLayerPoint(this._bounds.getNorthWest()),this._map.latLngToLayerPoint(this._bounds.getSouthEast())),n=t.getSize();Rt(e,t.min),e.style.width=n.x+`px`,e.style.height=n.y+`px`},_updateOpacity:function(){Pt(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 e=this.options.errorOverlayUrl;e&&this._url!==e&&(this._url=e,this._image.src=e)},getCenter:function(){return this._bounds.getCenter()}}),Lr=function(e,t,n){return new Ir(e,t,n)},Rr=Ir.extend({options:{autoplay:!0,loop:!0,keepAspectRatio:!0,muted:!1,playsInline:!0},_initImage:function(){var e=this._url.tagName===`VIDEO`,t=this._image=e?this._url:wt(`video`);if(At(t,`leaflet-image-layer`),this._zoomAnimated&&At(t,`leaflet-zoom-animated`),this.options.className&&At(t,this.options.className),t.onselectstart=l,t.onmousemove=l,t.onloadeddata=i(this.fire,this,`load`),e){for(var n=t.getElementsByTagName(`source`),r=[],a=0;a<n.length;a++)r.push(n[a].src);this._url=n.length>0?r:[t.src]}else{_(this._url)||(this._url=[this._url]),!this.options.keepAspectRatio&&Object.prototype.hasOwnProperty.call(t.style,`objectFit`)&&(t.style.objectFit=`fill`),t.autoplay=!!this.options.autoplay,t.loop=!!this.options.loop,t.muted=!!this.options.muted,t.playsInline=!!this.options.playsInline;for(var o=0;o<this._url.length;o++){var s=wt(`source`);s.src=this._url[o],t.appendChild(s)}}}});function zr(e,t,n){return new Rr(e,t,n)}var Br=Ir.extend({_initImage:function(){var e=this._image=this._url;At(e,`leaflet-image-layer`),this._zoomAnimated&&At(e,`leaflet-zoom-animated`),this.options.className&&At(e,this.options.className),e.onselectstart=l,e.onmousemove=l}});function Vr(e,t,n){return new Br(e,t,n)}var Hr=or.extend({options:{interactive:!1,offset:[0,0],className:``,pane:void 0,content:``},initialize:function(e,t){e&&(e instanceof P||_(e))?(this._latlng=ae(e),p(this,t)):(p(this,e),this._source=t),this.options.content&&(this._content=this.options.content)},openOn:function(e){return e=arguments.length?e:this._source._map,e.hasLayer(this)||e.addLayer(this),this},close:function(){return this._map&&this._map.removeLayer(this),this},toggle:function(e){return this._map?this.close():(arguments.length?this._source=e:e=this._source,this._prepareOpen(),this.openOn(e._map)),this},onAdd:function(e){this._zoomAnimated=e._zoomAnimated,this._container||this._initLayout(),e._fadeAnimated&&Pt(this._container,0),clearTimeout(this._removeTimeout),this.getPane().appendChild(this._container),this.update(),e._fadeAnimated&&Pt(this._container,1),this.bringToFront(),this.options.interactive&&(At(this._container,`leaflet-interactive`),this.addInteractiveTarget(this._container))},onRemove:function(e){e._fadeAnimated?(Pt(this._container,0),this._removeTimeout=setTimeout(i(Tt,void 0,this._container),200)):Tt(this._container),this.options.interactive&&(jt(this._container,`leaflet-interactive`),this.removeInteractiveTarget(this._container))},getLatLng:function(){return this._latlng},setLatLng:function(e){return this._latlng=ae(e),this._map&&(this._updatePosition(),this._adjustPan()),this},getContent:function(){return this._content},setContent:function(e){return this._content=e,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 e={zoom:this._updatePosition,viewreset:this._updatePosition};return this._zoomAnimated&&(e.zoomanim=this._animateZoom),e},isOpen:function(){return!!this._map&&this._map.hasLayer(this)},bringToFront:function(){return this._map&&Dt(this._container),this},bringToBack:function(){return this._map&&Ot(this._container),this},_prepareOpen:function(e){var t=this._source;if(!t._map)return!1;if(t instanceof lr){t=null;var n=this._source._layers;for(var r in n)if(n[r]._map){t=n[r];break}if(!t)return!1;this._source=t}if(!e){if(t.getCenter)e=t.getCenter();else if(t.getLatLng)e=t.getLatLng();else if(t.getBounds)e=t.getBounds().getCenter();else throw Error(`Unable to get source layer LatLng.`)}return this.setLatLng(e),this._map&&this.update(),!0},_updateContent:function(){if(this._content){var e=this._contentNode,t=typeof this._content==`function`?this._content(this._source||this):this._content;if(typeof t==`string`)e.innerHTML=t;else{for(;e.hasChildNodes();)e.removeChild(e.firstChild);e.appendChild(t)}this.fire(`contentupdate`)}},_updatePosition:function(){if(this._map){var e=this._map.latLngToLayerPoint(this._latlng),t=M(this.options.offset),n=this._getAnchor();this._zoomAnimated?Rt(this._container,e.add(n)):t=t.add(e).add(n);var r=this._containerBottom=-t.y,i=this._containerLeft=-Math.round(this._containerWidth/2)+t.x;this._container.style.bottom=r+`px`,this._container.style.left=i+`px`}},_getAnchor:function(){return[0,0]}});yn.include({_initOverlay:function(e,t,n,r){var i=t;return i instanceof e||(i=new e(r).setContent(t)),n&&i.setLatLng(n),i}}),or.include({_initOverlay:function(e,t,n,r){var i=n;return i instanceof e?(p(i,r),i._source=this):(i=t&&!r?t:new e(r,this),i.setContent(n)),i}});var Ur=Hr.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(e){return e=arguments.length?e:this._source._map,!e.hasLayer(this)&&e._popup&&e._popup.options.autoClose&&e.removeLayer(e._popup),e._popup=this,Hr.prototype.openOn.call(this,e)},onAdd:function(e){Hr.prototype.onAdd.call(this,e),e.fire(`popupopen`,{popup:this}),this._source&&(this._source.fire(`popupopen`,{popup:this},!0),this._source instanceof _r||this._source.on(`preclick`,sn))},onRemove:function(e){Hr.prototype.onRemove.call(this,e),e.fire(`popupclose`,{popup:this}),this._source&&(this._source.fire(`popupclose`,{popup:this},!0),this._source instanceof _r||this._source.off(`preclick`,sn))},getEvents:function(){var e=Hr.prototype.getEvents.call(this);return(this.options.closeOnClick===void 0?this._map.options.closePopupOnClick:this.options.closeOnClick)&&(e.preclick=this.close),this.options.keepInView&&(e.moveend=this._adjustPan),e},_initLayout:function(){var e=`leaflet-popup`,t=this._container=wt(`div`,e+` `+(this.options.className||``)+` leaflet-zoom-animated`),n=this._wrapper=wt(`div`,e+`-content-wrapper`,t);if(this._contentNode=wt(`div`,e+`-content`,n),ln(t),cn(this._contentNode),$t(t,`contextmenu`,sn),this._tipContainer=wt(`div`,e+`-tip-container`,t),this._tip=wt(`div`,e+`-tip`,this._tipContainer),this.options.closeButton){var r=this._closeButton=wt(`a`,e+`-close-button`,t);r.setAttribute(`role`,`button`),r.setAttribute(`aria-label`,`Close popup`),r.href=`#close`,r.innerHTML=`<span aria-hidden="true">×</span>`,$t(r,`click`,function(e){un(e),this.close()},this)}},_updateLayout:function(){var e=this._contentNode,t=e.style;t.width=``,t.whiteSpace=`nowrap`;var n=e.offsetWidth;n=Math.min(n,this.options.maxWidth),n=Math.max(n,this.options.minWidth),t.width=n+1+`px`,t.whiteSpace=``,t.height=``;var r=e.offsetHeight,i=this.options.maxHeight,a=`leaflet-popup-scrolled`;i&&r>i?(t.height=i+`px`,At(e,a)):jt(e,a),this._containerWidth=this._container.offsetWidth},_animateZoom:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center),n=this._getAnchor();Rt(this._container,t.add(n))},_adjustPan:function(){if(this.options.autoPan){if(this._map._panAnim&&this._map._panAnim.stop(),this._autopanning)this._autopanning=!1;else{var e=this._map,t=parseInt(I(this._container,`marginBottom`),10)||0,n=this._container.offsetHeight+t,r=this._containerWidth,i=new A(this._containerLeft,-n-this._containerBottom);i._add(zt(this._container));var a=e.layerPointToContainerPoint(i),o=M(this.options.autoPanPadding),s=M(this.options.autoPanPaddingTopLeft||o),c=M(this.options.autoPanPaddingBottomRight||o),l=e.getSize(),u=0,d=0;a.x+r+c.x>l.x&&(u=a.x+r-l.x+c.x),a.x-u-s.x<0&&(u=a.x-s.x),a.y+n+c.y>l.y&&(d=a.y+n-l.y+c.y),a.y-d-s.y<0&&(d=a.y-s.y),(u||d)&&(this.options.keepInView&&(this._autopanning=!0),e.fire(`autopanstart`).panBy([u,d]))}}},_getAnchor:function(){return M(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}}),Wr=function(e,t){return new Ur(e,t)};yn.mergeOptions({closePopupOnClick:!0}),yn.include({openPopup:function(e,t,n){return this._initOverlay(Ur,e,t,n).openOn(this),this},closePopup:function(e){return e=arguments.length?e:this._popup,e&&e.close(),this}}),or.include({bindPopup:function(e,t){return this._popup=this._initOverlay(Ur,this._popup,e,t),this._popupHandlersAdded||=(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),!0),this},unbindPopup:function(){return this._popup&&=(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,null),this},openPopup:function(e){return this._popup&&(this instanceof lr||(this._popup._source=this),this._popup._prepareOpen(e||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(e){return this._popup&&this._popup.setContent(e),this},getPopup:function(){return this._popup},_openPopup:function(e){if(this._popup&&this._map){dn(e);var t=e.layer||e.target;this._popup._source===t&&!(t instanceof _r)?this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(e.latlng):(this._popup._source=t,this.openPopup(e.latlng))}},_movePopup:function(e){this._popup.setLatLng(e.latlng)},_onKeyPress:function(e){e.originalEvent.keyCode===13&&this._openPopup(e)}});var Gr=Hr.extend({options:{pane:`tooltipPane`,offset:[0,0],direction:`auto`,permanent:!1,sticky:!1,opacity:.9},onAdd:function(e){Hr.prototype.onAdd.call(this,e),this.setOpacity(this.options.opacity),e.fire(`tooltipopen`,{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire(`tooltipopen`,{tooltip:this},!0))},onRemove:function(e){Hr.prototype.onRemove.call(this,e),e.fire(`tooltipclose`,{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire(`tooltipclose`,{tooltip:this},!0))},getEvents:function(){var e=Hr.prototype.getEvents.call(this);return this.options.permanent||(e.preclick=this.close),e},_initLayout:function(){var e=`leaflet-tooltip `+(this.options.className||``)+` leaflet-zoom-`+(this._zoomAnimated?`animated`:`hide`);this._contentNode=this._container=wt(`div`,e),this._container.setAttribute(`role`,`tooltip`),this._container.setAttribute(`id`,`leaflet-tooltip-`+o(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(e){var t,n,r=this._map,i=this._container,a=r.latLngToContainerPoint(r.getCenter()),o=r.layerPointToContainerPoint(e),s=this.options.direction,c=i.offsetWidth,l=i.offsetHeight,u=M(this.options.offset),d=this._getAnchor();s===`top`?(t=c/2,n=l):s===`bottom`?(t=c/2,n=0):s===`center`?(t=c/2,n=l/2):s===`right`?(t=0,n=l/2):s===`left`?(t=c,n=l/2):o.x<a.x?(s=`right`,t=0,n=l/2):(s=`left`,t=c+(u.x+d.x)*2,n=l/2),e=e.subtract(M(t,n,!0)).add(u).add(d),jt(i,`leaflet-tooltip-right`),jt(i,`leaflet-tooltip-left`),jt(i,`leaflet-tooltip-top`),jt(i,`leaflet-tooltip-bottom`),At(i,`leaflet-tooltip-`+s),Rt(i,e)},_updatePosition:function(){var e=this._map.latLngToLayerPoint(this._latlng);this._setPosition(e)},setOpacity:function(e){this.options.opacity=e,this._container&&Pt(this._container,e)},_animateZoom:function(e){var t=this._map._latLngToNewLayerPoint(this._latlng,e.zoom,e.center);this._setPosition(t)},_getAnchor:function(){return M(this._source&&this._source._getTooltipAnchor&&!this.options.sticky?this._source._getTooltipAnchor():[0,0])}}),Kr=function(e,t){return new Gr(e,t)};yn.include({openTooltip:function(e,t,n){return this._initOverlay(Gr,e,t,n).openOn(this),this},closeTooltip:function(e){return e.close(),this}}),or.include({bindTooltip:function(e,t){return this._tooltip&&this.isTooltipOpen()&&this.unbindTooltip(),this._tooltip=this._initOverlay(Gr,this._tooltip,e,t),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(),null),this},_initTooltipInteractions:function(e){if(e||!this._tooltipHandlersAdded){var t=e?`off`:`on`,n={remove:this.closeTooltip,move:this._moveTooltip};this._tooltip.options.permanent?n.add=this._openTooltip:(n.mouseover=this._openTooltip,n.mouseout=this.closeTooltip,n.click=this._openTooltip,this._map?this._addFocusListeners():n.add=this._addFocusListeners),this._tooltip.options.sticky&&(n.mousemove=this._moveTooltip),this[t](n),this._tooltipHandlersAdded=!e}},openTooltip:function(e){return this._tooltip&&(this instanceof lr||(this._tooltip._source=this),this._tooltip._prepareOpen(e)&&(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(e){return this._tooltip&&this._tooltip.setContent(e),this},getTooltip:function(){return this._tooltip},_addFocusListeners:function(){this.getElement?this._addFocusListenersOnLayer(this):this.eachLayer&&this.eachLayer(this._addFocusListenersOnLayer,this)},_addFocusListenersOnLayer:function(e){var t=typeof e.getElement==`function`&&e.getElement();t&&($t(t,`focus`,function(){this._tooltip._source=e,this.openTooltip()},this),$t(t,`blur`,this.closeTooltip,this))},_setAriaDescribedByOnLayer:function(e){var t=typeof e.getElement==`function`&&e.getElement();t&&t.setAttribute(`aria-describedby`,this._tooltip._container.id)},_openTooltip:function(e){if(this._tooltip&&this._map){if(this._map.dragging&&this._map.dragging.moving()&&!this._openOnceFlag){this._openOnceFlag=!0;var t=this;this._map.once(`moveend`,function(){t._openOnceFlag=!1,t._openTooltip(e)})}else this._tooltip._source=e.layer||e.target,this.openTooltip(this._tooltip.options.sticky?e.latlng:void 0)}},_moveTooltip:function(e){var t=e.latlng,n,r;this._tooltip.options.sticky&&e.originalEvent&&(n=this._map.mouseEventToContainerPoint(e.originalEvent),r=this._map.containerPointToLayerPoint(n),t=this._map.layerPointToLatLng(r)),this._tooltip.setLatLng(t)}});var qr=dr.extend({options:{iconSize:[12,12],html:!1,bgPos:null,className:`leaflet-div-icon`},createIcon:function(e){var t=e&&e.tagName===`DIV`?e:document.createElement(`div`),n=this.options;if(n.html instanceof Element?(Et(t),t.appendChild(n.html)):t.innerHTML=n.html===!1?``:n.html,n.bgPos){var r=M(n.bgPos);t.style.backgroundPosition=-r.x+`px `+-r.y+`px`}return this._setIconStyles(t,`icon`),t},createShadow:function(){return null}});function Jr(e){return new qr(e)}dr.Default=pr;var Yr=or.extend({options:{tileSize:256,opacity:1,updateWhenIdle:F.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(e){p(this,e)},onAdd:function(){this._initContainer(),this._levels={},this._tiles={},this._resetView()},beforeAdd:function(e){e._addZoomLimit(this)},onRemove:function(e){this._removeAllTiles(),Tt(this._container),e._removeZoomLimit(this),this._container=null,this._tileZoom=void 0},bringToFront:function(){return this._map&&(Dt(this._container),this._setAutoZIndex(Math.max)),this},bringToBack:function(){return this._map&&(Ot(this._container),this._setAutoZIndex(Math.min)),this},getContainer:function(){return this._container},setOpacity:function(e){return this.options.opacity=e,this._updateOpacity(),this},setZIndex:function(e){return this.options.zIndex=e,this._updateZIndex(),this},isLoading:function(){return this._loading},redraw:function(){if(this._map){this._removeAllTiles();var e=this._clampZoom(this._map.getZoom());e!==this._tileZoom&&(this._tileZoom=e,this._updateLevels()),this._update()}return this},getEvents:function(){var e={viewprereset:this._invalidateAll,viewreset:this._resetView,zoom:this._resetView,moveend:this._onMoveEnd};return this.options.updateWhenIdle||(this._onMove||=s(this._onMoveEnd,this.options.updateInterval,this),e.move=this._onMove),this._zoomAnimated&&(e.zoomanim=this._animateZoom),e},createTile:function(){return document.createElement(`div`)},getTileSize:function(){var e=this.options.tileSize;return e instanceof A?e:new A(e,e)},_updateZIndex:function(){this._container&&this.options.zIndex!==void 0&&this.options.zIndex!==null&&(this._container.style.zIndex=this.options.zIndex)},_setAutoZIndex:function(e){for(var t=this.getPane().children,n=-e(-1/0,1/0),r=0,i=t.length,a;r<i;r++)a=t[r].style.zIndex,t[r]!==this._container&&a&&(n=e(n,+a));isFinite(n)&&(this.options.zIndex=n+e(-1,1),this._updateZIndex())},_updateOpacity:function(){if(this._map&&!F.ielt9){Pt(this._container,this.options.opacity);var e=+new Date,t=!1,n=!1;for(var r in this._tiles){var i=this._tiles[r];if(i.current&&i.loaded){var a=Math.min(1,(e-i.loaded)/200);Pt(i.el,a),a<1?t=!0:(i.active?n=!0:this._onOpaqueTile(i),i.active=!0)}}n&&!this._noPrune&&this._pruneTiles(),t&&(E(this._fadeFrame),this._fadeFrame=T(this._updateOpacity,this))}},_onOpaqueTile:l,_initContainer:function(){this._container||(this._container=wt(`div`,`leaflet-layer `+(this.options.className||``)),this._updateZIndex(),this.options.opacity<1&&this._updateOpacity(),this.getPane().appendChild(this._container))},_updateLevels:function(){var e=this._tileZoom,t=this.options.maxZoom;if(e!==void 0){for(var n in this._levels)n=Number(n),this._levels[n].el.children.length||n===e?(this._levels[n].el.style.zIndex=t-Math.abs(e-n),this._onUpdateLevel(n)):(Tt(this._levels[n].el),this._removeTilesAtZoom(n),this._onRemoveLevel(n),delete this._levels[n]);var r=this._levels[e],i=this._map;return r||(r=this._levels[e]={},r.el=wt(`div`,`leaflet-tile-container leaflet-zoom-animated`,this._container),r.el.style.zIndex=t,r.origin=i.project(i.unproject(i.getPixelOrigin()),e).round(),r.zoom=e,this._setZoomTransform(r,i.getCenter(),i.getZoom()),r.el.offsetWidth,this._onCreateLevel(r)),this._level=r,r}},_onUpdateLevel:l,_onRemoveLevel:l,_onCreateLevel:l,_pruneTiles:function(){if(this._map){var e,t,n=this._map.getZoom();if(n>this.options.maxZoom||n<this.options.minZoom)this._removeAllTiles();else{for(e in this._tiles)t=this._tiles[e],t.retain=t.current;for(e in this._tiles)if(t=this._tiles[e],t.current&&!t.active){var r=t.coords;this._retainParent(r.x,r.y,r.z,r.z-5)||this._retainChildren(r.x,r.y,r.z,r.z+2)}for(e in this._tiles)this._tiles[e].retain||this._removeTile(e)}}},_removeTilesAtZoom:function(e){for(var t in this._tiles)this._tiles[t].coords.z===e&&this._removeTile(t)},_removeAllTiles:function(){for(var e in this._tiles)this._removeTile(e)},_invalidateAll:function(){for(var e in this._levels)Tt(this._levels[e].el),this._onRemoveLevel(Number(e)),delete this._levels[e];this._removeAllTiles(),this._tileZoom=void 0},_retainParent:function(e,t,n,r){var i=Math.floor(e/2),a=Math.floor(t/2),o=n-1,s=new A(+i,+a);s.z=+o;var c=this._tileCoordsToKey(s),l=this._tiles[c];return l&&l.active?(l.retain=!0,!0):(l&&l.loaded&&(l.retain=!0),o>r&&this._retainParent(i,a,o,r))},_retainChildren:function(e,t,n,r){for(var i=2*e;i<2*e+2;i++)for(var a=2*t;a<2*t+2;a++){var o=new A(i,a);o.z=n+1;var s=this._tileCoordsToKey(o),c=this._tiles[s];c&&c.active?c.retain=!0:(c&&c.loaded&&(c.retain=!0),n+1<r&&this._retainChildren(i,a,n+1,r))}},_resetView:function(e){var t=e&&(e.pinch||e.flyTo);this._setView(this._map.getCenter(),this._map.getZoom(),t,t)},_animateZoom:function(e){this._setView(e.center,e.zoom,!0,e.noUpdate)},_clampZoom:function(e){var t=this.options;return t.minNativeZoom!==void 0&&e<t.minNativeZoom?t.minNativeZoom:t.maxNativeZoom!==void 0&&t.maxNativeZoom<e?t.maxNativeZoom:e},_setView:function(e,t,n,r){var i=Math.round(t);i=this.options.maxZoom!==void 0&&i>this.options.maxZoom||this.options.minZoom!==void 0&&i<this.options.minZoom?void 0:this._clampZoom(i);var a=this.options.updateWhenZooming&&i!==this._tileZoom;(!r||a)&&(this._tileZoom=i,this._abortLoading&&this._abortLoading(),this._updateLevels(),this._resetGrid(),i!==void 0&&this._update(e),n||this._pruneTiles(),this._noPrune=!!n),this._setZoomTransforms(e,t)},_setZoomTransforms:function(e,t){for(var n in this._levels)this._setZoomTransform(this._levels[n],e,t)},_setZoomTransform:function(e,t,n){var r=this._map.getZoomScale(n,e.zoom),i=e.origin.multiplyBy(r).subtract(this._map._getNewPixelOrigin(t,n)).round();F.any3d?Lt(e.el,i,r):Rt(e.el,i)},_resetGrid:function(){var e=this._map,t=e.options.crs,n=this._tileSize=this.getTileSize(),r=this._tileZoom,i=this._map.getPixelWorldBounds(this._tileZoom);i&&(this._globalTileRange=this._pxBoundsToTileRange(i)),this._wrapX=t.wrapLng&&!this.options.noWrap&&[Math.floor(e.project([0,t.wrapLng[0]],r).x/n.x),Math.ceil(e.project([0,t.wrapLng[1]],r).x/n.y)],this._wrapY=t.wrapLat&&!this.options.noWrap&&[Math.floor(e.project([t.wrapLat[0],0],r).y/n.x),Math.ceil(e.project([t.wrapLat[1],0],r).y/n.y)]},_onMoveEnd:function(){this._map&&!this._map._animatingZoom&&this._update()},_getTiledPixelBounds:function(e){var t=this._map,n=t._animatingZoom?Math.max(t._animateToZoom,t.getZoom()):t.getZoom(),r=t.getZoomScale(n,this._tileZoom),i=t.project(e,this._tileZoom).floor(),a=t.getSize().divideBy(r*2);return new N(i.subtract(a),i.add(a))},_update:function(e){var t=this._map;if(t){var n=this._clampZoom(t.getZoom());if(e===void 0&&(e=t.getCenter()),this._tileZoom!==void 0){var r=this._getTiledPixelBounds(e),i=this._pxBoundsToTileRange(r),a=i.getCenter(),o=[],s=this.options.keepBuffer,c=new N(i.getBottomLeft().subtract([s,-s]),i.getTopRight().add([s,-s]));if(!(isFinite(i.min.x)&&isFinite(i.min.y)&&isFinite(i.max.x)&&isFinite(i.max.y)))throw Error(`Attempted to load an infinite number of tiles`);for(var l in this._tiles){var u=this._tiles[l].coords;u.z===this._tileZoom&&c.contains(new A(u.x,u.y))||(this._tiles[l].current=!1)}if(Math.abs(n-this._tileZoom)>1)this._setView(e,n);else{for(var d=i.min.y;d<=i.max.y;d++)for(var f=i.min.x;f<=i.max.x;f++){var p=new A(f,d);if(p.z=this._tileZoom,this._isValidTile(p)){var m=this._tiles[this._tileCoordsToKey(p)];m?m.current=!0:o.push(p)}}if(o.sort(function(e,t){return e.distanceTo(a)-t.distanceTo(a)}),o.length!==0){this._loading||(this._loading=!0,this.fire(`loading`));var h=document.createDocumentFragment();for(f=0;f<o.length;f++)this._addTile(o[f],h);this._level.el.appendChild(h)}}}}},_isValidTile:function(e){var t=this._map.options.crs;if(!t.infinite){var n=this._globalTileRange;if(!t.wrapLng&&(e.x<n.min.x||e.x>n.max.x)||!t.wrapLat&&(e.y<n.min.y||e.y>n.max.y))return!1}if(!this.options.bounds)return!0;var r=this._tileCoordsToBounds(e);return ie(this.options.bounds).overlaps(r)},_keyToBounds:function(e){return this._tileCoordsToBounds(this._keyToTileCoords(e))},_tileCoordsToNwSe:function(e){var t=this._map,n=this.getTileSize(),r=e.scaleBy(n),i=r.add(n);return[t.unproject(r,e.z),t.unproject(i,e.z)]},_tileCoordsToBounds:function(e){var t=this._tileCoordsToNwSe(e),n=new re(t[0],t[1]);return this.options.noWrap||(n=this._map.wrapLatLngBounds(n)),n},_tileCoordsToKey:function(e){return e.x+`:`+e.y+`:`+e.z},_keyToTileCoords:function(e){var t=e.split(`:`),n=new A(+t[0],+t[1]);return n.z=+t[2],n},_removeTile:function(e){var t=this._tiles[e];t&&(Tt(t.el),delete this._tiles[e],this.fire(`tileunload`,{tile:t.el,coords:this._keyToTileCoords(e)}))},_initTile:function(e){At(e,`leaflet-tile`);var t=this.getTileSize();e.style.width=t.x+`px`,e.style.height=t.y+`px`,e.onselectstart=l,e.onmousemove=l,F.ielt9&&this.options.opacity<1&&Pt(e,this.options.opacity)},_addTile:function(e,t){var n=this._getTilePos(e),r=this._tileCoordsToKey(e),a=this.createTile(this._wrapCoords(e),i(this._tileReady,this,e));this._initTile(a),this.createTile.length<2&&T(i(this._tileReady,this,e,null,a)),Rt(a,n),this._tiles[r]={el:a,coords:e,current:!0},t.appendChild(a),this.fire(`tileloadstart`,{tile:a,coords:e})},_tileReady:function(e,t,n){t&&this.fire(`tileerror`,{error:t,tile:n,coords:e});var r=this._tileCoordsToKey(e);n=this._tiles[r],n&&(n.loaded=+new Date,this._map._fadeAnimated?(Pt(n.el,0),E(this._fadeFrame),this._fadeFrame=T(this._updateOpacity,this)):(n.active=!0,this._pruneTiles()),t||(At(n.el,`leaflet-tile-loaded`),this.fire(`tileload`,{tile:n.el,coords:e})),this._noTilesToLoad()&&(this._loading=!1,this.fire(`load`),F.ielt9||!this._map._fadeAnimated?T(this._pruneTiles,this):setTimeout(i(this._pruneTiles,this),250)))},_getTilePos:function(e){return e.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(e){var t=new A(this._wrapX?c(e.x,this._wrapX):e.x,this._wrapY?c(e.y,this._wrapY):e.y);return t.z=e.z,t},_pxBoundsToTileRange:function(e){var t=this.getTileSize();return new N(e.min.unscaleBy(t).floor(),e.max.unscaleBy(t).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var e in this._tiles)if(!this._tiles[e].loaded)return!1;return!0}});function Xr(e){return new Yr(e)}var Zr=Yr.extend({options:{minZoom:0,maxZoom:18,subdomains:`abc`,errorTileUrl:``,zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(e,t){this._url=e,t=p(this,t),t.detectRetina&&F.retina&&t.maxZoom>0?(t.tileSize=Math.floor(t.tileSize/2),t.zoomReverse?(t.zoomOffset--,t.minZoom=Math.min(t.maxZoom,t.minZoom+1)):(t.zoomOffset++,t.maxZoom=Math.max(t.minZoom,t.maxZoom-1)),t.minZoom=Math.max(0,t.minZoom)):t.zoomReverse?t.minZoom=Math.min(t.maxZoom,t.minZoom):t.maxZoom=Math.max(t.minZoom,t.maxZoom),typeof t.subdomains==`string`&&(t.subdomains=t.subdomains.split(``)),this.on(`tileunload`,this._onTileRemove)},setUrl:function(e,t){return this._url===e&&t===void 0&&(t=!0),this._url=e,t||this.redraw(),this},createTile:function(e,t){var n=document.createElement(`img`);return $t(n,`load`,i(this._tileOnLoad,this,t,n)),$t(n,`error`,i(this._tileOnError,this,t,n)),(this.options.crossOrigin||this.options.crossOrigin===``)&&(n.crossOrigin=this.options.crossOrigin===!0?``:this.options.crossOrigin),typeof this.options.referrerPolicy==`string`&&(n.referrerPolicy=this.options.referrerPolicy),n.alt=``,n.src=this.getTileUrl(e),n},getTileUrl:function(e){var t={r:F.retina?`@2x`:``,s:this._getSubdomain(e),x:e.x,y:e.y,z:this._getZoomForUrl()};if(this._map&&!this._map.options.crs.infinite){var r=this._globalTileRange.max.y-e.y;this.options.tms&&(t.y=r),t[`-y`]=r}return g(this._url,n(t,this.options))},_tileOnLoad:function(e,t){F.ielt9?setTimeout(i(e,this,null,t),0):e(null,t)},_tileOnError:function(e,t,n){var r=this.options.errorTileUrl;r&&t.getAttribute(`src`)!==r&&(t.src=r),e(n,t)},_onTileRemove:function(e){e.tile.onload=null},_getZoomForUrl:function(){var e=this._tileZoom,t=this.options.maxZoom,n=this.options.zoomReverse,r=this.options.zoomOffset;return n&&(e=t-e),e+r},_getSubdomain:function(e){var t=Math.abs(e.x+e.y)%this.options.subdomains.length;return this.options.subdomains[t]},_abortLoading:function(){var e,t;for(e in this._tiles)if(this._tiles[e].coords.z!==this._tileZoom&&(t=this._tiles[e].el,t.onload=l,t.onerror=l,!t.complete)){t.src=y;var n=this._tiles[e].coords;Tt(t),delete this._tiles[e],this.fire(`tileabort`,{tile:t,coords:n})}},_removeTile:function(e){var t=this._tiles[e];if(t)return t.el.setAttribute(`src`,y),Yr.prototype._removeTile.call(this,e)},_tileReady:function(e,t,n){if(!(!this._map||n&&n.getAttribute(`src`)===y))return Yr.prototype._tileReady.call(this,e,t,n)}});function Qr(e,t){return new Zr(e,t)}var $r=Zr.extend({defaultWmsParams:{service:`WMS`,request:`GetMap`,layers:``,styles:``,format:`image/jpeg`,transparent:!1,version:`1.1.1`},options:{crs:null,uppercase:!1},initialize:function(e,t){this._url=e;var r=n({},this.defaultWmsParams);for(var i in t)i in this.options||(r[i]=t[i]);t=p(this,t);var a=t.detectRetina&&F.retina?2:1,o=this.getTileSize();r.width=o.x*a,r.height=o.y*a,this.wmsParams=r},onAdd:function(e){this._crs=this.options.crs||e.options.crs,this._wmsVersion=parseFloat(this.wmsParams.version);var t=this._wmsVersion>=1.3?`crs`:`srs`;this.wmsParams[t]=this._crs.code,Zr.prototype.onAdd.call(this,e)},getTileUrl:function(e){var t=this._tileCoordsToNwSe(e),n=this._crs,r=ne(n.project(t[0]),n.project(t[1])),i=r.min,a=r.max,o=(this._wmsVersion>=1.3&&this._crs===ir?[i.y,i.x,a.y,a.x]:[i.x,i.y,a.x,a.y]).join(`,`),s=Zr.prototype.getTileUrl.call(this,e);return s+m(this.wmsParams,s,this.options.uppercase)+(this.options.uppercase?`&BBOX=`:`&bbox=`)+o},setParams:function(e,t){return n(this.wmsParams,e),t||this.redraw(),this}});function ei(e,t){return new $r(e,t)}Zr.WMS=$r,Qr.wms=ei;var ti=or.extend({options:{padding:.1},initialize:function(e){p(this,e),o(this),this._layers=this._layers||{}},onAdd:function(){this._container||(this._initContainer(),At(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 e={viewreset:this._reset,zoom:this._onZoom,moveend:this._update,zoomend:this._onZoomEnd};return this._zoomAnimated&&(e.zoomanim=this._onAnimZoom),e},_onAnimZoom:function(e){this._updateTransform(e.center,e.zoom)},_onZoom:function(){this._updateTransform(this._map.getCenter(),this._map.getZoom())},_updateTransform:function(e,t){var n=this._map.getZoomScale(t,this._zoom),r=this._map.getSize().multiplyBy(.5+this.options.padding),i=this._map.project(this._center,t),a=r.multiplyBy(-n).add(i).subtract(this._map._getNewPixelOrigin(e,t));F.any3d?Lt(this._container,a,n):Rt(this._container,a)},_reset:function(){for(var e in this._update(),this._updateTransform(this._center,this._zoom),this._layers)this._layers[e]._reset()},_onZoomEnd:function(){for(var e in this._layers)this._layers[e]._project()},_updatePaths:function(){for(var e in this._layers)this._layers[e]._update()},_update:function(){var e=this.options.padding,t=this._map.getSize(),n=this._map.containerPointToLayerPoint(t.multiplyBy(-e)).round();this._bounds=new N(n,n.add(t.multiplyBy(1+e*2)).round()),this._center=this._map.getCenter(),this._zoom=this._map.getZoom()}}),ni=ti.extend({options:{tolerance:0},getEvents:function(){var e=ti.prototype.getEvents.call(this);return e.viewprereset=this._onViewPreReset,e},_onViewPreReset:function(){this._postponeUpdatePaths=!0},onAdd:function(){ti.prototype.onAdd.call(this),this._draw()},_initContainer:function(){var e=this._container=document.createElement(`canvas`);$t(e,`mousemove`,this._onMouseMove,this),$t(e,`click dblclick mousedown mouseup contextmenu`,this._onClick,this),$t(e,`mouseout`,this._handleMouseOut,this),e._leaflet_disable_events=!0,this._ctx=e.getContext(`2d`)},_destroyContainer:function(){E(this._redrawRequest),delete this._ctx,Tt(this._container),tn(this._container),delete this._container},_updatePaths:function(){if(!this._postponeUpdatePaths){var e;for(var t in this._redrawBounds=null,this._layers)e=this._layers[t],e._update();this._redraw()}},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){ti.prototype._update.call(this);var e=this._bounds,t=this._container,n=e.getSize(),r=F.retina?2:1;Rt(t,e.min),t.width=r*n.x,t.height=r*n.y,t.style.width=n.x+`px`,t.style.height=n.y+`px`,F.retina&&this._ctx.scale(2,2),this._ctx.translate(-e.min.x,-e.min.y),this.fire(`update`)}},_reset:function(){ti.prototype._reset.call(this),this._postponeUpdatePaths&&(this._postponeUpdatePaths=!1,this._updatePaths())},_initPath:function(e){this._updateDashArray(e),this._layers[o(e)]=e;var t=e._order={layer:e,prev:this._drawLast,next:null};this._drawLast&&(this._drawLast.next=t),this._drawLast=t,this._drawFirst=this._drawFirst||this._drawLast},_addPath:function(e){this._requestRedraw(e)},_removePath:function(e){var t=e._order,n=t.next,r=t.prev;n?n.prev=r:this._drawLast=r,r?r.next=n:this._drawFirst=n,delete e._order,delete this._layers[o(e)],this._requestRedraw(e)},_updatePath:function(e){this._extendRedrawBounds(e),e._project(),e._update(),this._requestRedraw(e)},_updateStyle:function(e){this._updateDashArray(e),this._requestRedraw(e)},_updateDashArray:function(e){if(typeof e.options.dashArray==`string`){for(var t=e.options.dashArray.split(/[, ]+/),n=[],r,i=0;i<t.length;i++){if(r=Number(t[i]),isNaN(r))return;n.push(r)}e.options._dashArray=n}else e.options._dashArray=e.options.dashArray},_requestRedraw:function(e){this._map&&(this._extendRedrawBounds(e),this._redrawRequest=this._redrawRequest||T(this._redraw,this))},_extendRedrawBounds:function(e){if(e._pxBounds){var t=(e.options.weight||0)+1;this._redrawBounds=this._redrawBounds||new N,this._redrawBounds.extend(e._pxBounds.min.subtract([t,t])),this._redrawBounds.extend(e._pxBounds.max.add([t,t]))}},_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 e=this._redrawBounds;if(e){var t=e.getSize();this._ctx.clearRect(e.min.x,e.min.y,t.x,t.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 e,t=this._redrawBounds;if(this._ctx.save(),t){var n=t.getSize();this._ctx.beginPath(),this._ctx.rect(t.min.x,t.min.y,n.x,n.y),this._ctx.clip()}this._drawing=!0;for(var r=this._drawFirst;r;r=r.next)e=r.layer,(!t||e._pxBounds&&e._pxBounds.intersects(t))&&e._updatePath();this._drawing=!1,this._ctx.restore()},_updatePoly:function(e,t){if(this._drawing){var n,r,i,a,o=e._parts,s=o.length,c=this._ctx;if(s){for(c.beginPath(),n=0;n<s;n++){for(r=0,i=o[n].length;r<i;r++)a=o[n][r],c[r?`lineTo`:`moveTo`](a.x,a.y);t&&c.closePath()}this._fillStroke(c,e)}}},_updateCircle:function(e){if(this._drawing&&!e._empty()){var t=e._point,n=this._ctx,r=Math.max(Math.round(e._radius),1),i=(Math.max(Math.round(e._radiusY),1)||r)/r;i!==1&&(n.save(),n.scale(1,i)),n.beginPath(),n.arc(t.x,t.y/i,r,0,Math.PI*2,!1),i!==1&&n.restore(),this._fillStroke(n,e)}},_fillStroke:function(e,t){var n=t.options;n.fill&&(e.globalAlpha=n.fillOpacity,e.fillStyle=n.fillColor||n.color,e.fill(n.fillRule||`evenodd`)),n.stroke&&n.weight!==0&&(e.setLineDash&&e.setLineDash(t.options&&t.options._dashArray||[]),e.globalAlpha=n.opacity,e.lineWidth=n.weight,e.strokeStyle=n.color,e.lineCap=n.lineCap,e.lineJoin=n.lineJoin,e.stroke())},_onClick:function(e){for(var t=this._map.mouseEventToLayerPoint(e),n,r,i=this._drawFirst;i;i=i.next)n=i.layer,n.options.interactive&&n._containsPoint(t)&&(e.type!==`click`&&e.type!==`preclick`||!this._map._draggableMoved(n))&&(r=n);this._fireEvent(r?[r]:!1,e)},_onMouseMove:function(e){if(!(!this._map||this._map.dragging.moving()||this._map._animatingZoom)){var t=this._map.mouseEventToLayerPoint(e);this._handleMouseHover(e,t)}},_handleMouseOut:function(e){var t=this._hoveredLayer;t&&(jt(this._container,`leaflet-interactive`),this._fireEvent([t],e,`mouseout`),this._hoveredLayer=null,this._mouseHoverThrottled=!1)},_handleMouseHover:function(e,t){if(!this._mouseHoverThrottled){for(var n,r,a=this._drawFirst;a;a=a.next)n=a.layer,n.options.interactive&&n._containsPoint(t)&&(r=n);r!==this._hoveredLayer&&(this._handleMouseOut(e),r&&(At(this._container,`leaflet-interactive`),this._fireEvent([r],e,`mouseover`),this._hoveredLayer=r)),this._fireEvent(this._hoveredLayer?[this._hoveredLayer]:!1,e),this._mouseHoverThrottled=!0,setTimeout(i(function(){this._mouseHoverThrottled=!1},this),32)}},_fireEvent:function(e,t,n){this._map._fireDOMEvent(t,n||t.type,e)},_bringToFront:function(e){var t=e._order;if(t){var n=t.next,r=t.prev;if(n)n.prev=r;else return;r?r.next=n:n&&(this._drawFirst=n),t.prev=this._drawLast,this._drawLast.next=t,t.next=null,this._drawLast=t,this._requestRedraw(e)}},_bringToBack:function(e){var t=e._order;if(t){var n=t.next,r=t.prev;if(r)r.next=n;else return;n?n.prev=r:r&&(this._drawLast=r),t.prev=null,t.next=this._drawFirst,this._drawFirst.prev=t,this._drawFirst=t,this._requestRedraw(e)}}});function ri(e){return F.canvas?new ni(e):null}var ii=(function(){try{return document.namespaces.add(`lvml`,`urn:schemas-microsoft-com:vml`),function(e){return document.createElement(`<lvml:`+e+` class="lvml">`)}}catch{}return function(e){return document.createElement(`<`+e+` xmlns="urn:schemas-microsoft.com:vml" class="lvml">`)}})(),ai={_initContainer:function(){this._container=wt(`div`,`leaflet-vml-container`)},_update:function(){this._map._animatingZoom||(ti.prototype._update.call(this),this.fire(`update`))},_initPath:function(e){var t=e._container=ii(`shape`);At(t,`leaflet-vml-shape `+(this.options.className||``)),t.coordsize=`1 1`,e._path=ii(`path`),t.appendChild(e._path),this._updateStyle(e),this._layers[o(e)]=e},_addPath:function(e){var t=e._container;this._container.appendChild(t),e.options.interactive&&e.addInteractiveTarget(t)},_removePath:function(e){var t=e._container;Tt(t),e.removeInteractiveTarget(t),delete this._layers[o(e)]},_updateStyle:function(e){var t=e._stroke,n=e._fill,r=e.options,i=e._container;i.stroked=!!r.stroke,i.filled=!!r.fill,r.stroke?(t||=e._stroke=ii(`stroke`),i.appendChild(t),t.weight=r.weight+`px`,t.color=r.color,t.opacity=r.opacity,r.dashArray?t.dashStyle=_(r.dashArray)?r.dashArray.join(` `):r.dashArray.replace(/( *, *)/g,` `):t.dashStyle=``,t.endcap=r.lineCap.replace(`butt`,`flat`),t.joinstyle=r.lineJoin):t&&(i.removeChild(t),e._stroke=null),r.fill?(n||=e._fill=ii(`fill`),i.appendChild(n),n.color=r.fillColor||r.color,n.opacity=r.fillOpacity):n&&(i.removeChild(n),e._fill=null)},_updateCircle:function(e){var t=e._point.round(),n=Math.round(e._radius),r=Math.round(e._radiusY||n);this._setPath(e,e._empty()?`M0 0`:`AL `+t.x+`,`+t.y+` `+n+`,`+r+` 0,23592600`)},_setPath:function(e,t){e._path.v=t},_bringToFront:function(e){Dt(e._container)},_bringToBack:function(e){Ot(e._container)}},oi=F.vml?ii:me,si=ti.extend({_initContainer:function(){this._container=oi(`svg`),this._container.setAttribute(`pointer-events`,`none`),this._rootGroup=oi(`g`),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){Tt(this._container),tn(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){if(!(this._map._animatingZoom&&this._bounds)){ti.prototype._update.call(this);var e=this._bounds,t=e.getSize(),n=this._container;this._svgSize&&this._svgSize.equals(t)||(this._svgSize=t,n.setAttribute(`width`,t.x),n.setAttribute(`height`,t.y)),Rt(n,e.min),n.setAttribute(`viewBox`,[e.min.x,e.min.y,t.x,t.y].join(` `)),this.fire(`update`)}},_initPath:function(e){var t=e._path=oi(`path`);e.options.className&&At(t,e.options.className),e.options.interactive&&At(t,`leaflet-interactive`),this._updateStyle(e),this._layers[o(e)]=e},_addPath:function(e){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(e._path),e.addInteractiveTarget(e._path)},_removePath:function(e){Tt(e._path),e.removeInteractiveTarget(e._path),delete this._layers[o(e)]},_updatePath:function(e){e._project(),e._update()},_updateStyle:function(e){var t=e._path,n=e.options;t&&(n.stroke?(t.setAttribute(`stroke`,n.color),t.setAttribute(`stroke-opacity`,n.opacity),t.setAttribute(`stroke-width`,n.weight),t.setAttribute(`stroke-linecap`,n.lineCap),t.setAttribute(`stroke-linejoin`,n.lineJoin),n.dashArray?t.setAttribute(`stroke-dasharray`,n.dashArray):t.removeAttribute(`stroke-dasharray`),n.dashOffset?t.setAttribute(`stroke-dashoffset`,n.dashOffset):t.removeAttribute(`stroke-dashoffset`)):t.setAttribute(`stroke`,`none`),n.fill?(t.setAttribute(`fill`,n.fillColor||n.color),t.setAttribute(`fill-opacity`,n.fillOpacity),t.setAttribute(`fill-rule`,n.fillRule||`evenodd`)):t.setAttribute(`fill`,`none`))},_updatePoly:function(e,t){this._setPath(e,he(e._parts,t))},_updateCircle:function(e){var t=e._point,n=Math.max(Math.round(e._radius),1),r=Math.max(Math.round(e._radiusY),1)||n,i=`a`+n+`,`+r+` 0 1,0 `,a=e._empty()?`M0 0`:`M`+(t.x-n)+`,`+t.y+i+n*2+`,0 `+i+-n*2+`,0 `;this._setPath(e,a)},_setPath:function(e,t){e._path.setAttribute(`d`,t)},_bringToFront:function(e){Dt(e._path)},_bringToBack:function(e){Ot(e._path)}});F.vml&&si.include(ai);function ci(e){return F.svg||F.vml?new si(e):null}yn.include({getRenderer:function(e){var t=e.options.renderer||this._getPaneRenderer(e.options.pane)||this.options.renderer||this._renderer;return t||=this._renderer=this._createRenderer(),this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(e){if(e===`overlayPane`||e===void 0)return!1;var t=this._paneRenderers[e];return t===void 0&&(t=this._createRenderer({pane:e}),this._paneRenderers[e]=t),t},_createRenderer:function(e){return this.options.preferCanvas&&ri(e)||ci(e)}});var li=Cr.extend({initialize:function(e,t){Cr.prototype.initialize.call(this,this._boundsToLatLngs(e),t)},setBounds:function(e){return this.setLatLngs(this._boundsToLatLngs(e))},_boundsToLatLngs:function(e){return e=ie(e),[e.getSouthWest(),e.getNorthWest(),e.getNorthEast(),e.getSouthEast()]}});function ui(e,t){return new li(e,t)}si.create=oi,si.pointsToPath=he,Tr.geometryToLayer=Er,Tr.coordsToLatLng=Dr,Tr.coordsToLatLngs=Or,Tr.latLngToCoords=kr,Tr.latLngsToCoords=Ar,Tr.getFeature=jr,Tr.asFeature=Mr,yn.mergeOptions({boxZoom:!0});var di=An.extend({initialize:function(e){this._map=e,this._container=e._container,this._pane=e._panes.overlayPane,this._resetStateTimeout=0,e.on(`unload`,this._destroy,this)},addHooks:function(){$t(this._container,`mousedown`,this._onMouseDown,this)},removeHooks:function(){tn(this._container,`mousedown`,this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){Tt(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(e){if(!e.shiftKey||e.which!==1&&e.button!==1)return!1;this._clearDeferredResetState(),this._resetState(),Bt(),Wt(),this._startPoint=this._map.mouseEventToContainerPoint(e),$t(document,{contextmenu:dn,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(e){this._moved||(this._moved=!0,this._box=wt(`div`,`leaflet-zoom-box`,this._container),At(this._container,`leaflet-crosshair`),this._map.fire(`boxzoomstart`)),this._point=this._map.mouseEventToContainerPoint(e);var t=new N(this._point,this._startPoint),n=t.getSize();Rt(this._box,t.min),this._box.style.width=n.x+`px`,this._box.style.height=n.y+`px`},_finish:function(){this._moved&&(Tt(this._box),jt(this._container,`leaflet-crosshair`)),Vt(),Gt(),tn(document,{contextmenu:dn,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(e){if((e.which===1||e.button===1)&&(this._finish(),this._moved)){this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(i(this._resetState,this),0);var t=new re(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point));this._map.fitBounds(t).fire(`boxzoomend`,{boxZoomBounds:t})}},_onKeyDown:function(e){e.keyCode===27&&(this._finish(),this._clearDeferredResetState(),this._resetState())}});yn.addInitHook(`addHandler`,`boxZoom`,di),yn.mergeOptions({doubleClickZoom:!0});var fi=An.extend({addHooks:function(){this._map.on(`dblclick`,this._onDoubleClick,this)},removeHooks:function(){this._map.off(`dblclick`,this._onDoubleClick,this)},_onDoubleClick:function(e){var t=this._map,n=t.getZoom(),r=t.options.zoomDelta,i=e.originalEvent.shiftKey?n-r:n+r;t.options.doubleClickZoom===`center`?t.setZoom(i):t.setZoomAround(e.containerPoint,i)}});yn.addInitHook(`addHandler`,`doubleClickZoom`,fi),yn.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0});var pi=An.extend({addHooks:function(){if(!this._draggable){var e=this._map;this._draggable=new Nn(e._mapPane,e._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on(`predrag`,this._onPreDragLimit,this),e.options.worldCopyJump&&(this._draggable.on(`predrag`,this._onPreDragWrap,this),e.on(`zoomend`,this._onZoomEnd,this),e.whenReady(this._onZoomEnd,this))}At(this._map._container,`leaflet-grab leaflet-touch-drag`),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){jt(this._map._container,`leaflet-grab`),jt(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 e=this._map;if(e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity){var t=ie(this._map.options.maxBounds);this._offsetLimit=ne(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))}else this._offsetLimit=null;e.fire(`movestart`).fire(`dragstart`),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(e){if(this._map.options.inertia){var t=this._lastTime=+new Date,n=this._lastPos=this._draggable._absPos||this._draggable._newPos;this._positions.push(n),this._times.push(t),this._prunePositions(t)}this._map.fire(`move`,e).fire(`drag`,e)},_prunePositions:function(e){for(;this._positions.length>1&&e-this._times[0]>50;)this._positions.shift(),this._times.shift()},_onZoomEnd:function(){var e=this._map.getSize().divideBy(2),t=this._map.latLngToLayerPoint([0,0]);this._initialWorldOffset=t.subtract(e).x,this._worldWidth=this._map.getPixelWorldBounds().getSize().x},_viscousLimit:function(e,t){return e-(e-t)*this._viscosity},_onPreDragLimit:function(){if(this._viscosity&&this._offsetLimit){var e=this._draggable._newPos.subtract(this._draggable._startPos),t=this._offsetLimit;e.x<t.min.x&&(e.x=this._viscousLimit(e.x,t.min.x)),e.y<t.min.y&&(e.y=this._viscousLimit(e.y,t.min.y)),e.x>t.max.x&&(e.x=this._viscousLimit(e.x,t.max.x)),e.y>t.max.y&&(e.y=this._viscousLimit(e.y,t.max.y)),this._draggable._newPos=this._draggable._startPos.add(e)}},_onPreDragWrap:function(){var e=this._worldWidth,t=Math.round(e/2),n=this._initialWorldOffset,r=this._draggable._newPos.x,i=(r-t+n)%e+t-n,a=(r+t+n)%e-t-n,o=Math.abs(i+n)<Math.abs(a+n)?i:a;this._draggable._absPos=this._draggable._newPos.clone(),this._draggable._newPos.x=o},_onDragEnd:function(e){var t=this._map,n=t.options,r=!n.inertia||e.noInertia||this._times.length<2;if(t.fire(`dragend`,e),r)t.fire(`moveend`);else{this._prunePositions(+new Date);var i=this._lastPos.subtract(this._positions[0]),a=(this._lastTime-this._times[0])/1e3,o=n.easeLinearity,s=i.multiplyBy(o/a),c=s.distanceTo([0,0]),l=Math.min(n.inertiaMaxSpeed,c),u=s.multiplyBy(l/c),d=l/(n.inertiaDeceleration*o),f=u.multiplyBy(-d/2).round();!f.x&&!f.y?t.fire(`moveend`):(f=t._limitOffset(f,t.options.maxBounds),T(function(){t.panBy(f,{duration:d,easeLinearity:o,noMoveStart:!0,animate:!0})}))}}});yn.addInitHook(`addHandler`,`dragging`,pi),yn.mergeOptions({keyboard:!0,keyboardPanDelta:80});var mi=An.extend({keyCodes:{left:[37],right:[39],down:[40],up:[38],zoomIn:[187,107,61,171],zoomOut:[189,109,54,173]},initialize:function(e){this._map=e,this._setPanDelta(e.options.keyboardPanDelta),this._setZoomDelta(e.options.zoomDelta)},addHooks:function(){var e=this._map._container;e.tabIndex<=0&&(e.tabIndex=`0`),$t(e,{focus:this._onFocus,blur:this._onBlur,mousedown:this._onMouseDown},this),this._map.on({focus:this._addHooks,blur:this._removeHooks},this)},removeHooks:function(){this._removeHooks(),tn(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 e=document.body,t=document.documentElement,n=e.scrollTop||t.scrollTop,r=e.scrollLeft||t.scrollLeft;this._map._container.focus(),window.scrollTo(r,n)}},_onFocus:function(){this._focused=!0,this._map.fire(`focus`)},_onBlur:function(){this._focused=!1,this._map.fire(`blur`)},_setPanDelta:function(e){for(var t=this._panKeys={},n=this.keyCodes,r=0,i=n.left.length;r<i;r++)t[n.left[r]]=[-1*e,0];for(r=0,i=n.right.length;r<i;r++)t[n.right[r]]=[e,0];for(r=0,i=n.down.length;r<i;r++)t[n.down[r]]=[0,e];for(r=0,i=n.up.length;r<i;r++)t[n.up[r]]=[0,-1*e]},_setZoomDelta:function(e){for(var t=this._zoomKeys={},n=this.keyCodes,r=0,i=n.zoomIn.length;r<i;r++)t[n.zoomIn[r]]=e;for(r=0,i=n.zoomOut.length;r<i;r++)t[n.zoomOut[r]]=-e},_addHooks:function(){$t(document,`keydown`,this._onKeyDown,this)},_removeHooks:function(){tn(document,`keydown`,this._onKeyDown,this)},_onKeyDown:function(e){if(!(e.altKey||e.ctrlKey||e.metaKey)){var t=e.keyCode,n=this._map,r;if(t in this._panKeys){if(!n._panAnim||!n._panAnim._inProgress){if(r=this._panKeys[t],e.shiftKey&&(r=M(r).multiplyBy(3)),n.options.maxBounds&&(r=n._limitOffset(M(r),n.options.maxBounds)),n.options.worldCopyJump){var i=n.wrapLatLng(n.unproject(n.project(n.getCenter()).add(r)));n.panTo(i)}else n.panBy(r)}}else if(t in this._zoomKeys)n.setZoom(n.getZoom()+(e.shiftKey?3:1)*this._zoomKeys[t]);else if(t===27&&n._popup&&n._popup.options.closeOnEscapeKey)n.closePopup();else return;dn(e)}}});yn.addInitHook(`addHandler`,`keyboard`,mi),yn.mergeOptions({scrollWheelZoom:!0,wheelDebounceTime:40,wheelPxPerZoomLevel:60});var hi=An.extend({addHooks:function(){$t(this._map._container,`wheel`,this._onWheelScroll,this),this._delta=0},removeHooks:function(){tn(this._map._container,`wheel`,this._onWheelScroll,this)},_onWheelScroll:function(e){var t=hn(e),n=this._map.options.wheelDebounceTime;this._delta+=t,this._lastMousePos=this._map.mouseEventToContainerPoint(e),this._startTime||=+new Date;var r=Math.max(n-(+new Date-this._startTime),0);clearTimeout(this._timer),this._timer=setTimeout(i(this._performZoom,this),r),dn(e)},_performZoom:function(){var e=this._map,t=e.getZoom(),n=this._map.options.zoomSnap||0;e._stop();var r=this._delta/(this._map.options.wheelPxPerZoomLevel*4),i=4*Math.log(2/(1+Math.exp(-Math.abs(r))))/Math.LN2,a=n?Math.ceil(i/n)*n:i,o=e._limitZoom(t+(this._delta>0?a:-a))-t;this._delta=0,this._startTime=null,o&&(e.options.scrollWheelZoom===`center`?e.setZoom(t+o):e.setZoomAround(this._lastMousePos,t+o))}});yn.addInitHook(`addHandler`,`scrollWheelZoom`,hi);var gi=600;yn.mergeOptions({tapHold:F.touchNative&&F.safari&&F.mobile,tapTolerance:15});var _i=An.extend({addHooks:function(){$t(this._map._container,`touchstart`,this._onDown,this)},removeHooks:function(){tn(this._map._container,`touchstart`,this._onDown,this)},_onDown:function(e){if(clearTimeout(this._holdTimeout),e.touches.length===1){var t=e.touches[0];this._startPos=this._newPos=new A(t.clientX,t.clientY),this._holdTimeout=setTimeout(i(function(){this._cancel(),this._isTapValid()&&($t(document,`touchend`,un),$t(document,`touchend touchcancel`,this._cancelClickPrevent),this._simulateEvent(`contextmenu`,t))},this),gi),$t(document,`touchend touchcancel contextmenu`,this._cancel,this),$t(document,`touchmove`,this._onMove,this)}},_cancelClickPrevent:function e(){tn(document,`touchend`,un),tn(document,`touchend touchcancel`,e)},_cancel:function(){clearTimeout(this._holdTimeout),tn(document,`touchend touchcancel contextmenu`,this._cancel,this),tn(document,`touchmove`,this._onMove,this)},_onMove:function(e){var t=e.touches[0];this._newPos=new A(t.clientX,t.clientY)},_isTapValid:function(){return this._newPos.distanceTo(this._startPos)<=this._map.options.tapTolerance},_simulateEvent:function(e,t){var n=new MouseEvent(e,{bubbles:!0,cancelable:!0,view:window,screenX:t.screenX,screenY:t.screenY,clientX:t.clientX,clientY:t.clientY});n._simulated=!0,t.target.dispatchEvent(n)}});yn.addInitHook(`addHandler`,`tapHold`,_i),yn.mergeOptions({touchZoom:F.touch,bounceAtZoomLimits:!0});var vi=An.extend({addHooks:function(){At(this._map._container,`leaflet-touch-zoom`),$t(this._map._container,`touchstart`,this._onTouchStart,this)},removeHooks:function(){jt(this._map._container,`leaflet-touch-zoom`),tn(this._map._container,`touchstart`,this._onTouchStart,this)},_onTouchStart:function(e){var t=this._map;if(!(!e.touches||e.touches.length!==2||t._animatingZoom||this._zooming)){var n=t.mouseEventToContainerPoint(e.touches[0]),r=t.mouseEventToContainerPoint(e.touches[1]);this._centerPoint=t.getSize()._divideBy(2),this._startLatLng=t.containerPointToLatLng(this._centerPoint),t.options.touchZoom!==`center`&&(this._pinchStartLatLng=t.containerPointToLatLng(n.add(r)._divideBy(2))),this._startDist=n.distanceTo(r),this._startZoom=t.getZoom(),this._moved=!1,this._zooming=!0,t._stop(),$t(document,`touchmove`,this._onTouchMove,this),$t(document,`touchend touchcancel`,this._onTouchEnd,this),un(e)}},_onTouchMove:function(e){if(e.touches&&e.touches.length===2&&this._zooming){var t=this._map,n=t.mouseEventToContainerPoint(e.touches[0]),r=t.mouseEventToContainerPoint(e.touches[1]),a=n.distanceTo(r)/this._startDist;if(this._zoom=t.getScaleZoom(a,this._startZoom),!t.options.bounceAtZoomLimits&&(this._zoom<t.getMinZoom()&&a<1||this._zoom>t.getMaxZoom()&&a>1)&&(this._zoom=t._limitZoom(this._zoom)),t.options.touchZoom===`center`){if(this._center=this._startLatLng,a===1)return}else{var o=n._add(r)._divideBy(2)._subtract(this._centerPoint);if(a===1&&o.x===0&&o.y===0)return;this._center=t.unproject(t.project(this._pinchStartLatLng,this._zoom).subtract(o),this._zoom)}this._moved||=(t._moveStart(!0,!1),!0),E(this._animRequest);var s=i(t._move,t,this._center,this._zoom,{pinch:!0,round:!1},void 0);this._animRequest=T(s,this,!0),un(e)}},_onTouchEnd:function(){!this._moved||!this._zooming?this._zooming=!1:(this._zooming=!1,E(this._animRequest),tn(document,`touchmove`,this._onTouchMove,this),tn(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)))}});yn.addInitHook(`addHandler`,`touchZoom`,vi),yn.BoxZoom=di,yn.DoubleClickZoom=fi,yn.Drag=pi,yn.Keyboard=mi,yn.ScrollWheelZoom=hi,yn.TapHold=_i,yn.TouchZoom=vi,e.Bounds=N,e.Browser=F,e.CRS=oe,e.Canvas=ni,e.Circle=br,e.CircleMarker=vr,e.Class=O,e.Control=xn,e.DivIcon=qr,e.DivOverlay=Hr,e.DomEvent=_n,e.DomUtil=Qt,e.Draggable=Nn,e.Evented=te,e.FeatureGroup=lr,e.GeoJSON=Tr,e.GridLayer=Yr,e.Handler=An,e.Icon=dr,e.ImageOverlay=Ir,e.LatLng=P,e.LatLngBounds=re,e.Layer=or,e.LayerGroup=sr,e.LineUtil=$n,e.Map=yn,e.Marker=hr,e.Mixin=jn,e.Path=_r,e.Point=A,e.PolyUtil=Ln,e.Polygon=Cr,e.Polyline=xr,e.Popup=Ur,e.PosAnimation=vn,e.Projection=nr,e.Rectangle=li,e.Renderer=ti,e.SVG=si,e.SVGOverlay=Br,e.TileLayer=Zr,e.Tooltip=Gr,e.Transformation=ue,e.Util=D,e.VideoOverlay=Rr,e.bind=i,e.bounds=ne,e.canvas=ri,e.circle=R,e.circleMarker=yr,e.control=Sn,e.divIcon=Jr,e.extend=n,e.featureGroup=ur,e.geoJSON=Pr,e.geoJson=Fr,e.gridLayer=Xr,e.icon=fr,e.imageOverlay=Lr,e.latLng=ae,e.latLngBounds=ie,e.layerGroup=cr,e.map=bn,e.marker=gr,e.point=M,e.polygon=wr,e.polyline=Sr,e.popup=Wr,e.rectangle=ui,e.setOptions=p,e.stamp=o,e.svg=ci,e.svgOverlay=Vr,e.tileLayer=Qr,e.tooltip=Kr,e.transformation=de,e.version=t,e.videoOverlay=zr;var yi=window.L;e.noConflict=function(){return window.L=yi,this},window.L=e}))}));function hC(e){return e.split(` `).filter(Boolean)}function gC(e,t){hC(t).forEach(t=>{vC.DomUtil.addClass(e,t)})}function _C(e,t){hC(t).forEach(t=>{vC.DomUtil.removeClass(e,t)})}function une(e,t,n){e!=null&&n!==t&&(t!=null&&t.length>0&&_C(e,t),n!=null&&n.length>0&&gC(e,n))}var vC,dne=o((()=>{vC=u(mC(),1)}));function yC(e,t,n){return Object.freeze({instance:e,context:t,container:n})}function bC(e,t){return t==null?function(t,n){let r=(0,xC.useRef)();return r.current||=e(t,n),r}:function(n,r){let i=(0,xC.useRef)();i.current||=e(n,r);let a=(0,xC.useRef)(n),{instance:o}=i.current;return(0,xC.useEffect)(function(){a.current!==n&&(t(o,n,a.current),a.current=n)},[o,n,r]),i}}var xC,SC=o((()=>{xC=u(p(),1)}));function CC(e,t){(0,TC.useEffect)(function(){return(t.layerContainer??t.map).addLayer(e.instance),function(){t.layerContainer?.removeLayer(e.instance),t.map.removeLayer(e.instance)}},[t,e])}function wC(e){return function(t){let n=qS(),r=e(uC(t,n),n);return HS(n.map,t.attribution),sC(r.current,t.eventHandlers),CC(r.current,n),r}}var TC,EC=o((()=>{TC=u(p(),1),WS(),ZS(),lC(),dC()}));function DC(e,t){let n=(0,kC.useRef)();(0,kC.useEffect)(function(){if(t.pathOptions!==n.current){let r=t.pathOptions??{};e.instance.setStyle(r),n.current=r}},[e,t])}function OC(e){return function(t){let n=qS(),r=e(uC(t,n),n);return sC(r.current,t.eventHandlers),CC(r.current,n),DC(r.current,t),r}}var kC,AC=o((()=>{kC=u(p(),1),ZS(),lC(),EC(),dC()}));function fne(e){function t(t,n){return yC(e(t),n)}return eC(iC(bC(t)))}function jC(e,t){return QS(wC(bC(e,t)))}function MC(e,t){return $S(fC(bC(e),t))}function pne(e,t){return QS(OC(bC(e,t)))}function NC(e,t){return eC(wC(bC(e,t)))}var mne=o((()=>{rC(),oC(),SC(),EC(),pC(),AC()}));function PC(e,t,n){let{opacity:r,zIndex:i}=t;r!=null&&r!==n.opacity&&e.setOpacity(r),i!=null&&i!==n.zIndex&&e.setZIndex(i)}var hne=o((()=>{}));function gne(e,t,n){t.bounds instanceof FC.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)}var FC,_ne=o((()=>{FC=u(mC(),1)})),vne=c({CONTEXT_VERSION:()=>1,LeafletContext:()=>YS,LeafletProvider:()=>XS,addClassName:()=>gC,createContainerComponent:()=>QS,createControlComponent:()=>fne,createControlHook:()=>iC,createDivOverlayComponent:()=>$S,createDivOverlayHook:()=>fC,createElementHook:()=>bC,createElementObject:()=>yC,createLayerComponent:()=>jC,createLayerHook:()=>wC,createLeafComponent:()=>eC,createLeafletContext:()=>GS,createOverlayComponent:()=>MC,createPathComponent:()=>pne,createPathHook:()=>OC,createTileLayerComponent:()=>NC,extendContext:()=>KS,removeClassName:()=>_C,updateCircle:()=>cne,updateClassName:()=>une,updateGridLayer:()=>PC,updateMediaOverlay:()=>gne,useAttribution:()=>HS,useEventHandlers:()=>sC,useLayerLifecycle:()=>CC,useLeafletContext:()=>qS,usePathOptions:()=>DC,withPane:()=>uC}),IC=o((()=>{WS(),lne(),rC(),ZS(),oC(),pC(),dne(),SC(),lC(),mne(),hne(),EC(),_ne(),dC(),AC()}));IC();function yne(){return qS().map}IC();var LC=u(mC(),1);function RC(){return RC=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},RC.apply(this,arguments)}function bne({bounds:e,boundsOptions:t,center:n,children:r,className:i,id:a,placeholder:o,style:s,whenReady:c,zoom:l,...u},d){let[f]=(0,y.useState)({className:i,id:a,style:s}),[p,m]=(0,y.useState)(null);(0,y.useImperativeHandle)(d,()=>p?.map??null,[p]);let h=(0,y.useCallback)(r=>{if(r!==null&&p===null){let i=new LC.Map(r,u);n!=null&&l!=null?i.setView(n,l):e!=null&&i.fitBounds(e,t),c!=null&&i.whenReady(c),m(GS(i))}},[]);(0,y.useEffect)(()=>()=>{p?.map.remove()},[p]);let g=p?y.createElement(XS,{value:p},r):o??null;return y.createElement(`div`,RC({},f,{ref:h}),g)}var zC=(0,y.forwardRef)(bne);IC();var BC=jC(function({position:e,...t},n){let r=new LC.Marker(e,t);return yC(r,KS(n,{overlayContainer:r}))},function(e,t,n){t.position!==n.position&&e.setLatLng(t.position),t.icon!=null&&t.icon!==n.icon&&e.setIcon(t.icon),t.zIndexOffset!=null&&t.zIndexOffset!==n.zIndexOffset&&e.setZIndexOffset(t.zIndexOffset),t.opacity!=null&&t.opacity!==n.opacity&&e.setOpacity(t.opacity),e.dragging!=null&&t.draggable!==n.draggable&&(t.draggable===!0?e.dragging.enable():e.dragging.disable())});IC();var VC=MC(function(e,t){return yC(new LC.Popup(e,t.overlayContainer),t)},function(e,t,{position:n},r){(0,y.useEffect)(function(){let{instance:i}=e;function a(e){e.popup===i&&(i.update(),r(!0))}function o(e){e.popup===i&&r(!1)}return t.map.on({popupopen:a,popupclose:o}),t.overlayContainer==null?(n!=null&&i.setLatLng(n),i.openOn(t.map)):t.overlayContainer.bindPopup(i),function(){t.map.off({popupopen:a,popupclose:o}),t.overlayContainer?.unbindPopup(),t.map.removeLayer(i)}},[e,t,r,n])});IC();var HC=NC(function({url:e,...t},n){return yC(new LC.TileLayer(e,uC(t,n)),n)},function(e,t,n){PC(e,t,n);let{url:r}=t;r!=null&&r!==n.url&&e.setUrl(r)}),xne=s(((e,t,n)=>{(function(n,r){typeof e==`object`&&t!==void 0?r(e):typeof define==`function`&&define.amd?define([`exports`],r):(n||=self,r((n.Leaflet=n.Leaflet||{},n.Leaflet.markercluster={})))})(n,function(e){var t=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(e){L.Util.setOptions(this,e),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 t=L.DomUtil.TRANSITION&&this.options.animate;L.extend(this,t?this._withAnimation:this._noAnimation),this._markerCluster=t?L.MarkerCluster:L.MarkerClusterNonAnimated},addLayer:function(e){if(e instanceof L.LayerGroup)return this.addLayers([e]);if(!e.getLatLng)return this._nonPointGroup.addLayer(e),this.fire(`layeradd`,{layer:e}),this;if(!this._map)return this._needsClustering.push(e),this.fire(`layeradd`,{layer:e}),this;if(this.hasLayer(e))return this;this._unspiderfy&&this._unspiderfy(),this._addLayer(e,this._maxZoom),this.fire(`layeradd`,{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons();var t=e,n=this._zoom;if(e.__parent)for(;t.__parent._zoom>=n;)t=t.__parent;return this._currentShownBounds.contains(t.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,t):this._animationAddLayerNonAnimated(e,t)),this},removeLayer:function(e){return e instanceof L.LayerGroup?this.removeLayers([e]):e.getLatLng?this._map?(e.__parent&&(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this.fire(`layerremove`,{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),e.off(this._childMarkerEventHandlers,this),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow())),this):(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push({layer:e,latlng:e._latlng}),this.fire(`layerremove`,{layer:e}),this):(this._nonPointGroup.removeLayer(e),this.fire(`layerremove`,{layer:e}),this)},addLayers:function(e,t){if(!L.Util.isArray(e))return this.addLayer(e);var n=this._featureGroup,r=this._nonPointGroup,i=this.options.chunkedLoading,a=this.options.chunkInterval,o=this.options.chunkProgress,s=e.length,c=0,l=!0,u;if(this._map){var d=new Date().getTime(),f=L.bind(function(){var p=new Date().getTime();for(this._map&&this._unspiderfy&&this._unspiderfy();c<s&&!(i&&c%200==0&&new Date().getTime()-p>a);c++)if(u=e[c],u instanceof L.LayerGroup)l&&=(e=e.slice(),!1),this._extractNonGroupLayers(u,e),s=e.length;else if(!u.getLatLng)r.addLayer(u),t||this.fire(`layeradd`,{layer:u});else if(!this.hasLayer(u)&&(this._addLayer(u,this._maxZoom),t||this.fire(`layeradd`,{layer:u}),u.__parent&&u.__parent.getChildCount()===2)){var m=u.__parent.getAllChildMarkers(),h=m[0]===u?m[1]:m[0];n.removeLayer(h)}o&&o(c,s,new Date().getTime()-d),c===s?(this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(f,this.options.chunkDelay)},this);f()}else for(var p=this._needsClustering;c<s;c++)u=e[c],u instanceof L.LayerGroup?(l&&=(e=e.slice(),!1),this._extractNonGroupLayers(u,e),s=e.length):u.getLatLng?this.hasLayer(u)||p.push(u):r.addLayer(u);return this},removeLayers:function(e){var t,n,r=e.length,i=this._featureGroup,a=this._nonPointGroup,o=!0;if(!this._map){for(t=0;t<r;t++)n=e[t],n instanceof L.LayerGroup?(o&&=(e=e.slice(),!1),this._extractNonGroupLayers(n,e),r=e.length):(this._arraySplice(this._needsClustering,n),a.removeLayer(n),this.hasLayer(n)&&this._needsRemoving.push({layer:n,latlng:n._latlng}),this.fire(`layerremove`,{layer:n}));return this}if(this._unspiderfy){this._unspiderfy();var s=e.slice(),c=r;for(t=0;t<c;t++)n=s[t],n instanceof L.LayerGroup?(this._extractNonGroupLayers(n,s),c=s.length):this._unspiderfyLayer(n)}for(t=0;t<r;t++)n=e[t],n instanceof L.LayerGroup?(o&&=(e=e.slice(),!1),this._extractNonGroupLayers(n,e),r=e.length):n.__parent?(this._removeLayer(n,!0,!0),this.fire(`layerremove`,{layer:n}),i.hasLayer(n)&&(i.removeLayer(n),n.clusterShow&&n.clusterShow())):(a.removeLayer(n),this.fire(`layerremove`,{layer:n}));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(e){e.off(this._childMarkerEventHandlers,this),delete e.__parent},this),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;t>=0;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var n=this._needsClustering.slice(),r=this._needsRemoving,i,a,o;for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(n),a=n.length-1;a>=0;a--){for(i=!0,o=r.length-1;o>=0;o--)if(r[o].layer===n[a]){i=!1;break}i&&e.call(t,n[a])}this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var e=[];return this.eachLayer(function(t){e.push(t)}),e},getLayer:function(e){var t=null;return e=parseInt(e,10),this.eachLayer(function(n){L.stamp(n)===e&&(t=n)}),t},hasLayer:function(e){if(!e)return!1;var t,n=this._needsClustering;for(t=n.length-1;t>=0;t--)if(n[t]===e)return!0;for(n=this._needsRemoving,t=n.length-1;t>=0;t--)if(n[t].layer===e)return!1;return!!(e.__parent&&e.__parent._group===this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){var n=this._map;typeof t!=`function`&&(t=function(){});var r=function(){(n.hasLayer(e)||n.hasLayer(e.__parent))&&!this._inZoomAnimation&&(this._map.off(`moveend`,r,this),this.off(`animationend`,r,this),n.hasLayer(e)?t():e.__parent._icon&&(this.once(`spiderfied`,t,this),e.__parent.spiderfy()))};e._icon&&this._map.getBounds().contains(e.getLatLng())?t():e.__parent._zoom<Math.round(this._map._zoom)?(this._map.on(`moveend`,r,this),this._map.panTo(e.getLatLng())):(this._map.on(`moveend`,r,this),this.on(`animationend`,r,this),e.__parent.zoomToBounds())},onAdd:function(e){this._map=e;var t,n,r;if(!isFinite(this._map.getMaxZoom()))throw`Map has no maxZoom specified`;for(this._featureGroup.addTo(e),this._nonPointGroup.addTo(e),this._gridClusters||this._generateInitialClusters(),this._maxLat=e.options.crs.projection.MAX_LATITUDE,t=0,n=this._needsRemoving.length;t<n;t++)r=this._needsRemoving[t],r.newlatlng=r.layer._latlng,r.layer._latlng=r.latlng;for(t=0,n=this._needsRemoving.length;t<n;t++)r=this._needsRemoving[t],this._removeLayer(r.layer,!0),r.layer._latlng=r.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(),n=this._needsClustering,this._needsClustering=[],this.addLayers(n,!0)},onRemove:function(e){e.off(`zoomend`,this._zoomEnd,this),e.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(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var n=e.length-1;n>=0;n--)if(e[n]===t)return e.splice(n,1),!0},_removeFromGridUnclustered:function(e,t){for(var n=this._map,r=this._gridUnclustered,i=Math.floor(this._map.getMinZoom());t>=i&&r[t].removeObject(e,n.project(e.getLatLng(),t));t--);},_childMarkerDragStart:function(e){e.target.__dragStart=e.target._latlng},_childMarkerMoved:function(e){if(!this._ignoreMove&&!e.target.__dragStart){var t=e.target._popup&&e.target._popup.isOpen();this._moveChild(e.target,e.oldLatLng,e.latlng),t&&e.target.openPopup()}},_moveChild:function(e,t,n){e._latlng=t,this.removeLayer(e),e._latlng=n,this.addLayer(e)},_childMarkerDragEnd:function(e){var t=e.target.__dragStart;delete e.target.__dragStart,t&&this._moveChild(e.target,t,e.target._latlng)},_removeLayer:function(e,t,n){var r=this._gridClusters,i=this._gridUnclustered,a=this._featureGroup,o=this._map,s=Math.floor(this._map.getMinZoom());t&&this._removeFromGridUnclustered(e,this._maxZoom);var c=e.__parent,l=c._markers,u;for(this._arraySplice(l,e);c&&(c._childCount--,c._boundsNeedUpdate=!0,!(c._zoom<s));)t&&c._childCount<=1?(u=c._markers[0]===e?c._markers[1]:c._markers[0],r[c._zoom].removeObject(c,o.project(c._cLatLng,c._zoom)),i[c._zoom].addObject(u,o.project(u.getLatLng(),c._zoom)),this._arraySplice(c.__parent._childClusters,c),c.__parent._markers.push(u),u.__parent=c.__parent,c._icon&&(a.removeLayer(c),n||a.addLayer(u))):c._iconNeedsUpdate=!0,c=c.__parent;delete e.__parent},_isOrIsParent:function(e,t){for(;t;){if(e===t)return!0;t=t.parentNode}return!1},fire:function(e,t,n){if(t&&t.layer instanceof L.MarkerCluster){if(t.originalEvent&&this._isOrIsParent(t.layer._icon,t.originalEvent.relatedTarget))return;e=`cluster`+e}L.FeatureGroup.prototype.fire.call(this,e,t,n)},listens:function(e,t){return L.FeatureGroup.prototype.listens.call(this,e,t)||L.FeatureGroup.prototype.listens.call(this,`cluster`+e,t)},_defaultIconCreateFunction:function(e){var t=e.getChildCount(),n=` marker-cluster-`;return n+=t<10?`small`:t<100?`medium`:`large`,new L.DivIcon({html:`<div><span>`+t+`</span></div>`,className:`marker-cluster`+n,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,n=this.options.showCoverageOnHover,r=this.options.zoomToBoundsOnClick,i=this.options.spiderfyOnEveryZoom;(t||r||i)&&this.on(`clusterclick clusterkeypress`,this._zoomOrSpiderfy,this),n&&(this.on(`clustermouseover`,this._showCoverage,this),this.on(`clustermouseout`,this._hideCoverage,this),e.on(`zoomend`,this._hideCoverage,this))},_zoomOrSpiderfy:function(e){var t=e.layer,n=t;if(!(e.type===`clusterkeypress`&&e.originalEvent&&e.originalEvent.keyCode!==13)){for(;n._childClusters.length===1;)n=n._childClusters[0];n._zoom===this._maxZoom&&n._childCount===t._childCount&&this.options.spiderfyOnMaxZoom?t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),this.options.spiderfyOnEveryZoom&&t.spiderfy(),e.originalEvent&&e.originalEvent.keyCode===13&&this._map._container.focus()}},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),e.layer.getChildCount()>2&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&=(this._map.removeLayer(this._shownPolygon),null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,n=this.options.zoomToBoundsOnClick,r=this.options.spiderfyOnEveryZoom,i=this._map;(e||n||r)&&this.off(`clusterclick clusterkeypress`,this._zoomOrSpiderfy,this),t&&(this.off(`clustermouseover`,this._showCoverage,this),this.off(`clustermouseout`,this._hideCoverage,this),i.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 e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,Math.round(this._map._zoom),e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=Math.ceil(this._map.getMaxZoom()),t=Math.floor(this._map.getMinZoom()),n=this.options.maxClusterRadius,r=n;typeof n!=`function`&&(r=function(){return n}),this.options.disableClusteringAtZoom!==null&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var i=e;i>=t;i--)this._gridClusters[i]=new L.DistanceGrid(r(i)),this._gridUnclustered[i]=new L.DistanceGrid(r(i));this._topClusterLevel=new this._markerCluster(this,t-1)},_addLayer:function(e,t){var n=this._gridClusters,r=this._gridUnclustered,i=Math.floor(this._map.getMinZoom()),a,o;for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e),e.on(this._childMarkerEventHandlers,this);t>=i;t--){a=this._map.project(e.getLatLng(),t);var s=n[t].getNearObject(a);if(s){s._addChild(e),e.__parent=s;return}if(s=r[t].getNearObject(a),s){var c=s.__parent;c&&this._removeLayer(s,!1);var l=new this._markerCluster(this,t,s,e);n[t].addObject(l,this._map.project(l._cLatLng,t)),s.__parent=l,e.__parent=l;var u=l;for(o=t-1;o>c._zoom;o--)u=new this._markerCluster(this,o,u),n[o].addObject(u,this._map.project(s.getLatLng(),o));c._addChild(u),this._removeFromGridUnclustered(s,t);return}r[t].addObject(e,a)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})},_enqueue:function(e){this._queue.push(e),this._queueTimeout||=setTimeout(L.bind(this._processQueue,this),300)},_processQueue:function(){for(var e=0;e<this._queue.length;e++)this._queue[e].call(this);this._queue.length=0,clearTimeout(this._queueTimeout),this._queueTimeout=null},_mergeSplitClusters:function(){var e=Math.round(this._map._zoom);this._processQueue(),this._zoom<e&&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,e)):this._zoom>e?(this._animationStart(),this._animationZoomOut(this._zoom,e)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return t!==void 0&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(t._childCount===2){t._addToMap();var n=t.getAllChildMarkers();this._featureGroup.removeLayer(n[0]),this._featureGroup.removeLayer(n[1])}else t._updateIcon()},_extractNonGroupLayers:function(e,t){var n=e.getLayers(),r=0,i;for(t||=[];r<n.length;r++)i=n[r],i instanceof L.LayerGroup?this._extractNonGroupLayers(i,t):t.push(i);return t},_overrideMarkerIcon:function(e){return e.options.icon=this.options.iconCreateFunction({getChildCount:function(){return 1},getAllChildMarkers:function(){return[e]}})}});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(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire(`animationend`)},_animationZoomOut:function(e,t){this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this.fire(`animationend`)},_animationAddLayer:function(e,t){this._animationAddLayerNonAnimated(e,t)}},_withAnimation:{_animationStart:function(){this._map._mapPane.className+=` leaflet-cluster-anim`,this._inZoomAnimation++},_animationZoomIn:function(e,t){var n=this._getExpandedVisibleBounds(),r=this._featureGroup,i=Math.floor(this._map.getMinZoom()),a;this._ignoreMove=!0,this._topClusterLevel._recursively(n,e,i,function(i){var o=i._latlng,s=i._markers,c;for(n.contains(o)||(o=null),i._isSingleParent()&&e+1===t?(r.removeLayer(i),i._recursivelyAddChildrenToMap(null,t,n)):(i.clusterHide(),i._recursivelyAddChildrenToMap(o,t,n)),a=s.length-1;a>=0;a--)c=s[a],n.contains(c._latlng)||r.removeLayer(c)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(n,t),r.eachLayer(function(e){!(e instanceof L.MarkerCluster)&&e._icon&&e.clusterShow()}),this._topClusterLevel._recursively(n,e,t,function(e){e._recursivelyRestoreChildPositions(t)}),this._ignoreMove=!1,this._enqueue(function(){this._topClusterLevel._recursively(n,e,i,function(e){r.removeLayer(e),e.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var n=this,r=this._featureGroup;r.addLayer(e),t!==e&&(t._childCount>2?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue(function(){r.removeLayer(e),e.clusterShow(),n._animationEnd()})):(this._forceLayout(),n._animationStart(),n._animationZoomOutSingle(t,this._map.getMaxZoom(),this._zoom)))}},_animationZoomOutSingle:function(e,t,n){var r=this._getExpandedVisibleBounds(),i=Math.floor(this._map.getMinZoom());e._recursivelyAnimateChildrenInAndAddSelfToMap(r,i,t+1,n);var a=this;this._forceLayout(),e._recursivelyBecomeVisible(r,n),this._enqueue(function(){if(e._childCount===1){var o=e._markers[0];this._ignoreMove=!0,o.setLatLng(o.getLatLng()),this._ignoreMove=!1,o.clusterShow&&o.clusterShow()}else e._recursively(r,n,i,function(e){e._recursivelyRemoveChildrenFromMap(r,i,t+1)});a._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(e){return new L.MarkerClusterGroup(e)};var n=L.MarkerCluster=L.Marker.extend({options:L.Icon.prototype.options,initialize:function(e,t,n,r){L.Marker.prototype.initialize.call(this,n?n._cLatLng||n.getLatLng():new L.LatLng(0,0),{icon:this,pane:e.options.clusterPane}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,n&&this._addChild(n),r&&this._addChild(r)},getAllChildMarkers:function(e,t){e||=[];for(var n=this._childClusters.length-1;n>=0;n--)this._childClusters[n].getAllChildMarkers(e,t);for(var r=this._markers.length-1;r>=0;r--)t&&this._markers[r].__dragStart||e.push(this._markers[r]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(e){for(var t=this._childClusters.slice(),n=this._group._map,r=n.getBoundsZoom(this._bounds),i=this._zoom+1,a=n.getZoom(),o;t.length>0&&r>i;){i++;var s=[];for(o=0;o<t.length;o++)s=s.concat(t[o]._childClusters);t=s}r>i?this._group._map.setView(this._latlng,i):r<=a?this._group._map.setView(this._latlng,a+1):this._group._map.fitBounds(this._bounds,e)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&=(this._iconObj=this._group.options.iconCreateFunction(this),!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||=e._cLatLng||e._latlng},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e=this._markers,t=this._childClusters,n=0,r=0,i=this._childCount,a,o,s,c;if(i!==0){for(this._resetBounds(),a=0;a<e.length;a++)s=e[a]._latlng,this._bounds.extend(s),n+=s.lat,r+=s.lng;for(a=0;a<t.length;a++)o=t[a],o._boundsNeedUpdate&&o._recalculateBounds(),this._bounds.extend(o._bounds),s=o._wLatLng,c=o._childCount,n+=s.lat*c,r+=s.lng*c;this._latlng=this._wLatLng=new L.LatLng(n/i,r/i),this._boundsNeedUpdate=!1}},_addToMap:function(e){e&&(this._backupLatlng=this._latlng,this.setLatLng(e)),this._group._featureGroup.addLayer(this)},_recursivelyAnimateChildrenIn:function(e,t,n){this._recursively(e,this._group._map.getMinZoom(),n-1,function(e){for(var n=e._markers,r=n.length-1,i;r>=0;r--)i=n[r],i._icon&&(i._setPos(t),i.clusterHide())},function(e){for(var n=e._childClusters,r=n.length-1,i;r>=0;r--)i=n[r],i._icon&&(i._setPos(t),i.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(e,t,n,r){this._recursively(e,r,t,function(i){i._recursivelyAnimateChildrenIn(e,i._group._map.latLngToLayerPoint(i.getLatLng()).round(),n),i._isSingleParent()&&n-1===r?(i.clusterShow(),i._recursivelyRemoveChildrenFromMap(e,t,n)):i.clusterHide(),i._addToMap()})},_recursivelyBecomeVisible:function(e,t){this._recursively(e,this._group._map.getMinZoom(),t,null,function(e){e.clusterShow()})},_recursivelyAddChildrenToMap:function(e,t,n){this._recursively(n,this._group._map.getMinZoom()-1,t,function(r){if(t!==r._zoom)for(var i=r._markers.length-1;i>=0;i--){var a=r._markers[i];n.contains(a._latlng)&&(e&&(a._backupLatlng=a.getLatLng(),a.setLatLng(e),a.clusterHide&&a.clusterHide()),r._group._featureGroup.addLayer(a))}},function(t){t._addToMap(e)})},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;t>=0;t--){var n=this._markers[t];n._backupLatlng&&(n.setLatLng(n._backupLatlng),delete n._backupLatlng)}if(e-1===this._zoom)for(var r=this._childClusters.length-1;r>=0;r--)this._childClusters[r]._restorePosition();else for(var i=this._childClusters.length-1;i>=0;i--)this._childClusters[i]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,n,r){var i,a;this._recursively(e,t-1,n-1,function(e){for(a=e._markers.length-1;a>=0;a--)i=e._markers[a],r&&r.contains(i._latlng)||(e._group._featureGroup.removeLayer(i),i.clusterShow&&i.clusterShow())},function(e){for(a=e._childClusters.length-1;a>=0;a--)i=e._childClusters[a],r&&r.contains(i._latlng)||(e._group._featureGroup.removeLayer(i),i.clusterShow&&i.clusterShow())})},_recursively:function(e,t,n,r,i){var a=this._childClusters,o=this._zoom,s,c;if(t<=o&&(r&&r(this),i&&o===n&&i(this)),o<t||o<n)for(s=a.length-1;s>=0;s--)c=a[s],c._boundsNeedUpdate&&c._recalculateBounds(),e.intersects(c._bounds)&&c._recursively(e,t,n,r,i)},_isSingleParent:function(){return this._childClusters.length>0&&this._childClusters[0]._childCount===this._childCount}});L.Marker.include({clusterHide:function(){var e=this.options.opacity;return this.setOpacity(0),this.options.opacity=e,this},clusterShow:function(){return this.setOpacity(this.options.opacity)}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var n=this._getCoord(t.x),r=this._getCoord(t.y),i=this._grid,a=i[r]=i[r]||{},o=a[n]=a[n]||[],s=L.Util.stamp(e);this._objectPoint[s]=t,o.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var n=this._getCoord(t.x),r=this._getCoord(t.y),i=this._grid,a=i[r]=i[r]||{},o=a[n]=a[n]||[],s,c;for(delete this._objectPoint[L.Util.stamp(e)],s=0,c=o.length;s<c;s++)if(o[s]===e)return o.splice(s,1),c===1&&delete a[n],!0},eachObject:function(e,t){var n,r,i,a,o,s,c,l=this._grid;for(n in l)for(r in o=l[n],o)for(s=o[r],i=0,a=s.length;i<a;i++)c=e.call(t,s[i]),c&&(i--,a--)},getNearObject:function(e){var t=this._getCoord(e.x),n=this._getCoord(e.y),r,i,a,o,s,c,l,u,d=this._objectPoint,f=this._sqCellSize,p=null;for(r=n-1;r<=n+1;r++)if(o=this._grid[r],o){for(i=t-1;i<=t+1;i++)if(s=o[i],s)for(a=0,c=s.length;a<c;a++)l=s[a],u=this._sqDist(d[L.Util.stamp(l)],e),(u<f||u<=f&&p===null)&&(f=u,p=l)}return p},_getCoord:function(e){var t=Math.floor(e/this._cellSize);return isFinite(t)?t:e},_sqDist:function(e,t){var n=t.x-e.x,r=t.y-e.y;return n*n+r*r}},(function(){L.QuickHull={getDistant:function(e,t){var n=t[1].lat-t[0].lat;return(t[0].lng-t[1].lng)*(e.lat-t[0].lat)+n*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){for(var n=0,r=null,i=[],a=t.length-1,o,s;a>=0;a--){if(o=t[a],s=this.getDistant(o,e),s>0)i.push(o);else continue;s>n&&(n=s,r=o)}return{maxPoint:r,newPoints:i}},buildConvexHull:function(e,t){var n=[],r=this.findMostDistantPointFromBaseLine(e,t);return r.maxPoint?(n=n.concat(this.buildConvexHull([e[0],r.maxPoint],r.newPoints)),n=n.concat(this.buildConvexHull([r.maxPoint,e[1]],r.newPoints)),n):[e[0]]},getConvexHull:function(e){for(var t=!1,n=!1,r=!1,i=!1,a=null,o=null,s=null,c=null,l=null,u=null,d=e.length-1;d>=0;d--){var f=e[d];(t===!1||f.lat>t)&&(a=f,t=f.lat),(n===!1||f.lat<n)&&(o=f,n=f.lat),(r===!1||f.lng>r)&&(s=f,r=f.lng),(i===!1||f.lng<i)&&(c=f,i=f.lng)}return n===t?(u=c,l=s):(u=o,l=a),[].concat(this.buildConvexHull([u,l],e),this.buildConvexHull([l,u],e))}}})(),L.MarkerCluster.include({getConvexHull:function(){for(var e=this.getAllChildMarkers(),t=[],n,r=e.length-1;r>=0;r--)n=e[r].getLatLng(),t.push(n);return L.QuickHull.getConvexHull(t)}}),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 e=this.getAllChildMarkers(null,!0),t=this._group._map.latLngToLayerPoint(this._latlng),n;this._group._unspiderfy(),this._group._spiderfied=this,this._group.options.spiderfyShapePositions?n=this._group.options.spiderfyShapePositions(e.length,t):e.length>=this._circleSpiralSwitchover?n=this._generatePointsSpiral(e.length,t):(t.y+=10,n=this._generatePointsCircle(e.length,t)),this._animationSpiderfy(e,n)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var n=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e)/this._2PI,r=this._2PI/e,i=[],a,o;for(n=Math.max(n,35),i.length=e,a=0;a<e;a++)o=this._circleStartAngle+a*r,i[a]=new L.Point(t.x+n*Math.cos(o),t.y+n*Math.sin(o))._round();return i},_generatePointsSpiral:function(e,t){var n=this._group.options.spiderfyDistanceMultiplier,r=n*this._spiralLengthStart,i=n*this._spiralFootSeparation,a=n*this._spiralLengthFactor*this._2PI,o=0,s=[],c;for(s.length=e,c=e;c>=0;c--)c<e&&(s[c]=new L.Point(t.x+r*Math.cos(o),t.y+r*Math.sin(o))._round()),o+=i/r+c*5e-4,r+=a/o;return s},_noanimationUnspiderfy:function(){var e=this._group,t=e._map,n=e._featureGroup,r=this.getAllChildMarkers(null,!0),i,a;for(e._ignoreMove=!0,this.setOpacity(1),a=r.length-1;a>=0;a--)i=r[a],n.removeLayer(i),i._preSpiderfyLatlng&&(i.setLatLng(i._preSpiderfyLatlng),delete i._preSpiderfyLatlng),i.setZIndexOffset&&i.setZIndexOffset(0),i._spiderLeg&&(t.removeLayer(i._spiderLeg),delete i._spiderLeg);e.fire(`unspiderfied`,{cluster:this,markers:r}),e._ignoreMove=!1,e._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var n=this._group,r=n._map,i=n._featureGroup,a=this._group.options.spiderLegPolylineOptions,o,s,c,l;for(n._ignoreMove=!0,o=0;o<e.length;o++)l=r.layerPointToLatLng(t[o]),s=e[o],c=new L.Polyline([this._latlng,l],a),r.addLayer(c),s._spiderLeg=c,s._preSpiderfyLatlng=s._latlng,s.setLatLng(l),s.setZIndexOffset&&s.setZIndexOffset(1e6),i.addLayer(s);this.setOpacity(.3),n._ignoreMove=!1,n.fire(`spiderfied`,{cluster:this,markers:e})},_animationUnspiderfy:function(){this._noanimationUnspiderfy()}}),L.MarkerCluster.include({_animationSpiderfy:function(e,t){var n=this,r=this._group,i=r._map,a=r._featureGroup,o=this._latlng,s=i.latLngToLayerPoint(o),c=L.Path.SVG,l=L.extend({},this._group.options.spiderLegPolylineOptions),u=l.opacity,d,f,p,m,h,g;for(u===void 0&&(u=L.MarkerClusterGroup.prototype.options.spiderLegPolylineOptions.opacity),c?(l.opacity=0,l.className=(l.className||``)+` leaflet-cluster-spider-leg`):l.opacity=u,r._ignoreMove=!0,d=0;d<e.length;d++)f=e[d],g=i.layerPointToLatLng(t[d]),p=new L.Polyline([o,g],l),i.addLayer(p),f._spiderLeg=p,c&&(m=p._path,h=m.getTotalLength()+.1,m.style.strokeDasharray=h,m.style.strokeDashoffset=h),f.setZIndexOffset&&f.setZIndexOffset(1e6),f.clusterHide&&f.clusterHide(),a.addLayer(f),f._setPos&&f._setPos(s);for(r._forceLayout(),r._animationStart(),d=e.length-1;d>=0;d--)g=i.layerPointToLatLng(t[d]),f=e[d],f._preSpiderfyLatlng=f._latlng,f.setLatLng(g),f.clusterShow&&f.clusterShow(),c&&(p=f._spiderLeg,m=p._path,m.style.strokeDashoffset=0,p.setStyle({opacity:u}));this.setOpacity(.3),r._ignoreMove=!1,setTimeout(function(){r._animationEnd(),r.fire(`spiderfied`,{cluster:n,markers:e})},200)},_animationUnspiderfy:function(e){var t=this,n=this._group,r=n._map,i=n._featureGroup,a=e?r._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):r.latLngToLayerPoint(this._latlng),o=this.getAllChildMarkers(null,!0),s=L.Path.SVG,c,l,u,d,f,p;for(n._ignoreMove=!0,n._animationStart(),this.setOpacity(1),l=o.length-1;l>=0;l--)c=o[l],c._preSpiderfyLatlng&&(c.closePopup(),c.setLatLng(c._preSpiderfyLatlng),delete c._preSpiderfyLatlng,p=!0,c._setPos&&(c._setPos(a),p=!1),c.clusterHide&&(c.clusterHide(),p=!1),p&&i.removeLayer(c),s&&(u=c._spiderLeg,d=u._path,f=d.getTotalLength()+.1,d.style.strokeDashoffset=f,u.setStyle({opacity:0})));n._ignoreMove=!1,setTimeout(function(){var e=0;for(l=o.length-1;l>=0;l--)c=o[l],c._spiderLeg&&e++;for(l=o.length-1;l>=0;l--)c=o[l],c._spiderLeg&&(c.clusterShow&&c.clusterShow(),c.setZIndexOffset&&c.setZIndexOffset(0),e>1&&i.removeLayer(c),r.removeLayer(c._spiderLeg),delete c._spiderLeg);n._animationEnd(),n.fire(`unspiderfied`,{cluster:t,markers:o})},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(e){L.DomUtil.hasClass(this._map._mapPane,`leaflet-touching`)||(this._map.off(`zoomanim`,this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,n;for(t in e)for(n=e[t].__parent;n;)n._iconNeedsUpdate=!0,n=n.__parent},_refreshSingleMarkerModeMarkers:function(e){var t,n;for(t in e)n=e[t],this.hasLayer(n)&&n.setIcon(this._overrideMarkerIcon(n))}}),L.Marker.include({refreshIconOptions:function(e,t){var n=this.options.icon;return L.setOptions(n,e),this.setIcon(n),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}}),e.MarkerClusterGroup=t,e.MarkerCluster=n,Object.defineProperty(e,"__esModule",{value:!0})})})),Sne=s((()=>{})),Cne=s((()=>{})),wne=c({default:()=>UC}),UC,Tne=o((()=>{UC=`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==`})),Ene=c({default:()=>WC}),WC,Dne=o((()=>{WC=`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=`})),One=c({default:()=>GC}),GC,kne=o((()=>{GC=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAQAAAACach9AAACMUlEQVR4Ae3ShY7jQBAE0Aoz/f9/HTMzhg1zrdKUrJbdx+Kd2nD8VNudfsL/Th///dyQN2TH6f3y/BGpC379rV+S+qqetBOxImNQXL8JCAr2V4iMQXHGNJxeCfZXhSRBcQMfvkOWUdtfzlLgAENmZDcmo2TVmt8OSM2eXxBp3DjHSMFutqS7SbmemzBiR+xpKCNUIRkdkkYxhAkyGoBvyQFEJEefwSmmvBfJuJ6aKqKWnAkvGZOaZXTUgFqYULWNSHUckZuR1HIIimUExutRxwzOLROIG4vKmCKQt364mIlhSyzAf1m9lHZHJZrlAOMMztRRiKimp/rpdJDc9Awry5xTZCte7FHtuS8wJgeYGrex28xNTd086Dik7vUMscQOa8y4DoGtCCSkAKlNwpgNtphjrC6MIHUkR6YWxxs6Sc5xqn222mmCRFzIt8lEdKx+ikCtg91qS2WpwVfBelJCiQJwvzixfI9cxZQWgiSJelKnwBElKYtDOb2MFbhmUigbReQBV0Cg4+qMXSxXSyGUn4UbF8l+7qdSGnTC0XLCmahIgUHLhLOhpVCtw4CzYXvLQWQbJNmxoCsOKAxSgBJno75avolkRw8iIAFcsdc02e9iyCd8tHwmeSSoKTowIgvscSGZUOA7PuCN5b2BX9mQM7S0wYhMNU74zgsPBj3HU7wguAfnxxjFQGBE6pwN+GjME9zHY7zGp8wVxMShYX9NXvEWD3HbwJf4giO4CFIQxXScH1/TM+04kkBiAAAAAElFTkSuQmCC`})),KC=u(s(((e,t,n)=>{var r=n&&n.__assign||function(){return r=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},r.apply(this,arguments)},i=n&&n.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},a=n&&n.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});var o=(IC(),d(vne)),s=a(mC());xne(),Sne(),Cne(),delete s.default.Icon.Default.prototype._getIconUrl,s.default.Icon.Default.mergeOptions({iconRetinaUrl:(Tne(),d(wne)).default,iconUrl:(Dne(),d(Ene)).default,shadowUrl:(kne(),d(One)).default});function c(e){var t={},n={};e.children;var a=i(e,[`children`]);return Object.entries(a).forEach(function(e){var i,a,o=e[0],s=e[1];o.startsWith(`on`)?n=r(r({},n),(i={},i[o]=s,i)):t=r(r({},t),(a={},a[o]=s,a))}),{clusterProps:t,clusterEvents:n}}function l(e,t){var n=c(e),r=n.clusterProps,i=n.clusterEvents,a=new s.default.MarkerClusterGroup(r);return Object.entries(i).forEach(function(e){var t=e[0],n=e[1],r=`cluster${t.substring(2).toLowerCase()}`;a.on(r,n)}),(0,o.createElementObject)(a,(0,o.extendContext)(t,{layerContainer:a}))}e.default=(0,o.createPathComponent)(l,function(e,t,n){})}))(),1);function Ane({hotel:e}){return(0,z.jsx)(VC,{className:`custom-popup rounded-xl overflow-hidden shadow-xl border-0`,children:(0,z.jsxs)(`div`,{className:`p-0 m-0 w-64 flex flex-col bg-white`,children:[(0,z.jsxs)(`div`,{className:`h-36 w-full bg-gray-200 relative overflow-hidden`,children:[(0,z.jsx)(`img`,{src:e.googleDrivePhotoPath,alt:e.hotelName,className:`w-full h-full object-cover transition-transform duration-500 hover:scale-105`,onError:e=>{e.target.src=`https://images.unsplash.com/photo-1582719508461-905c673771fd?auto=format&fit=crop&w=800&q=80`}}),(0,z.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`})]}),(0,z.jsxs)(`div`,{className:`p-4 flex flex-col gap-3`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`h3`,{className:`font-bold text-lg text-gray-900 mb-1 leading-tight line-clamp-2`,children:e.hotelName}),(0,z.jsxs)(`p`,{className:`text-sm text-gray-500 flex items-center font-medium`,children:[(0,z.jsx)(V,{className:`w-3.5 h-3.5 mr-1.5 text-purple-500 shrink-0`}),e.city,`, `,e.region]})]}),(0,z.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 `,(0,z.jsx)(no,{className:`w-4 h-4 ml-2 opacity-80`})]})]})]})})}var Z=(e,t,n,r,i)=>{let a=r,o=null;if(a&&a.includes(`drive.google.com/uc`)){let e=a.match(/id=([^&]+)/);e&&e[1]&&(o=e[1],a=`https://drive.google.com/thumbnail?id=${o}&sz=w1000`)}else a||=(o=`PENDING_${e.replace(/[^a-zA-Z0-9]/g,`_`)}`,`https://drive.google.com/thumbnail?id=${o}&sz=w1000`);return{name:e,link:t,region:n,photoUrl:a,linkRel:i}},qC={Astoria:[Z(`Best Western Columbia River Waterfront`,`https://expedia.com/affiliate/QfpjX44`,`North Coast`,`https://drive.google.com/uc?export=view&id=1x5znN3_Zya5wN5M61gaydPFfj6MnvViK`),Z(`Holiday Inn Express & Suites`,`https://expedia.com/affiliate/PjUhmvh`,`North Coast`,`/images/hotels/astoria/holiday-inn-express-and-suites-astoria.jpg`),Z(`Astoria Rivershore Motel`,`https://expedia.com/affiliate/YGWyiuj`,`North Coast`,`/images/hotels/astoria/astoria-rivershore-motel.jpg`),Z(`Astoria Crest Motel`,`https://expedia.com/affiliate/cYbL3d2`,`North Coast`,`https://drive.google.com/uc?export=view&id=1vGThJQdKJHsQnZBoO9BYmrmWEFYmY72m`),Z(`Astoria Riverwalk Inn`,`https://expedia.com/affiliate/kX6zZPo`,`North Coast`,`/images/hotels/astoria/astoria-riverwalk-inn.jpg`),Z(`Lloyd Hotel Astoria Bayfront`,`https://expedia.com/affiliate/asNemKD`,`North Coast`,`/images/hotels/astoria/lloyd-hotel-astoria-bayfront.jpg`),Z(`Motel 6 Astoria`,`https://expedia.com/affiliate/m1SSiBR`,`North Coast`,`/images/hotels/astoria/motel-6-astoria.jpg`)],Warrenton:[Z(`Shilo Inn Suites`,`https://expedia.com/affiliate/wanvQwI`,`North Coast`,`/images/hotels/warrenton/shilo-inn-suites-warrenton.jpg`),Z(`Super 8 by Wyndham`,`https://expedia.com/affiliate/TqhFo6K`,`North Coast`,`/images/hotels/warrenton/super-8-by-wyndham.jpg`)],Gearhart:[Z(`McMenamins Gearhart Hotel`,`https://expedia.com/affiliate/Ca3XkCC`,`North Coast`,`/images/hotels/gearhart/mcmenamins-gearhart-hotel.jpg`),Z(`The Drifthaven at Gearhart`,`https://expedia.com/affiliate/NRxbXcc`,`North Coast`,`https://drive.google.com/uc?export=view&id=14lu5Vldj8TszkqM63Vr-7O2pkNJfd-xV`)],Seaside:[Z(`Ebb Tide Oceanfront Inn`,`https://expedia.com/affiliate/gCihDTZ`,`North Coast`,`/images/hotels/seaside/ebb-tide-oceanfront-inn.jpg`),Z(`Hi-Tide Oceanfront Inn`,`https://expedia.com/affiliate/MrBgPbe`,`North Coast`,`/images/hotels/seaside/hi-tide-oceanfront-inn.jpg`),Z(`Best Western Plus Ocean View Resort`,`https://expedia.com/affiliate/uRVqF7M`,`North Coast`,`/images/hotels/seaside/best-western-plus-ocean-view-resort.jpg`,`noopener sponsored`),Z(`Ashore Hotel`,`https://expedia.com/affiliate/mIqAhWk`,`North Coast`,`/images/hotels/seaside/ashore-hotel.jpg`,`noopener sponsored`),Z(`Promenade Inn & Suites Oceanfront`,`https://expedia.com/affiliate/ZYX0G3Z`,`North Coast`,`/images/hotels/seaside/promenade-inn-and-suites-oceanfront.jpg`,`noopener sponsored`)],"Cannon Beach":[Z(`Cannon Beach Hotel`,`https://expedia.com/affiliate/YIL0Rf0`,`North Coast`,`https://drive.google.com/uc?export=view&id=1EPRXy_r-mGg5GTsHjOfC7hVacRfiQkwh`),Z(`Cannon Beach Hotel Collection`,`https://expedia.com/affiliate/mJQ3WmX`,`North Coast`,`/images/hotels/cannon-beach/cannon-beach-hotel-collection.jpg`,`noopener sponsored`),Z(`Inn at Cannon Beach`,`https://expedia.com/affiliate/7ESrxua`,`North Coast`,`/images/hotels/cannon-beach/inn-at-cannon-beach.jpg`),Z(`Surfsand Resort`,`https://expedia.com/affiliates/cannon-beach-hotels-surfsand-resort.zxyRiuV`,`North Coast`,`/images/hotels/cannon-beach/surfsand-resort.jpg`),Z(`The Ocean Lodge`,`https://expedia.com/affiliates/cannon-beach-hotels-the-ocean-lodge.a40yztM`,`North Coast`,`/images/hotels/cannon-beach/the-ocean-lodge.jpg`),Z(`Hallmark Resort - Cannon Beach`,`https://expedia.com/affiliates/cannon-beach-hotels-hallmark-resort-cannon-beach.nOWaFHg`,`North Coast`,`/images/hotels/cannon-beach/hallmark-resort-cannon-beach.jpg`),Z(`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`),Z(`The Wayside Inn`,`https://expedia.com/affiliates/cannon-beach-hotels-the-wayside-inn.VoCvR8H`,`North Coast`,`/images/hotels/cannon-beach/the-wayside-inn.jpg`),Z(`Lighthouse Inn`,`https://expedia.com/affiliates/cannon-beach-hotels-lighthouse-inn.Dg0n7fK`,`North Coast`,`https://drive.google.com/thumbnail?id=1JjDwc_5BBHqOuaE9cNma4DwpOQXuJfLD&sz=w1000`),Z(`Stephanie Inn`,`https://expedia.com/affiliates/cannon-beach-hotels-stephanie-inn.5UAV9Hb`,`North Coast`,`/images/hotels/cannon-beach/stephanie-inn.jpg`)],Manzanita:[Z(`The Inn at Manzanita`,`https://expedia.com/affiliate/dSzC6r5`,`North Coast`,`/images/hotels/manzanita/inn-at-manzanita.jpg`),Z(`San Dune Inn`,`https://expedia.com/affiliate/25fZSDA`,`North Coast`,`/images/hotels/manzanita/san-dune-inn.jpg`),Z(`Coast Cabins`,`https://expedia.com/affiliates/manzanita-hotels-coast-cabins.CNuZMkA`,`North Coast`,`/images/hotels/manzanita/coast-cabins.jpg`)],Wheeler:[Z(`Old Wheeler Hotel`,`https://expedia.com/affiliate/LRzfKKT`,`North Coast`,`/images/hotels/nehalem/old-wheeler-hotel.jpg`),Z(`Wheeler On The Bay Lodge & Marina`,`https://expedia.com/affiliate/fxYfbBm`,`North Coast`,`/images/hotels/nehalem/wheeler-on-the-bay-lodge-and-marina.jpg`)],"Rockaway Beach":[Z(`Rockaway Beach Resort`,`https://expedia.com/affiliate/jaA5Vv1`,`North Coast`,`/images/hotels/rockaway-beach/rockaway-beach-resort.jpg`),Z(`Tradewinds Motel`,`https://expedia.com/affiliate/pKKNCVS`,`North Coast`,`/images/hotels/rockaway-beach/tradewinds-motel.jpg`),Z(`Silver Sands Motel`,`https://expedia.com/affiliate/3W3Vw9w`,`North Coast`,`/images/hotels/rockaway-beach/silver-sands-motel.jpg`),Z(`Rockaway Shores`,`https://expedia.com/affiliate/vKSuvyF`,`North Coast`,`/images/hotels/rockaway-beach/rockaway-shores.jpg`)],Garibaldi:[Z(`The Hotel Garibaldi`,`https://expedia.com/affiliate/PaiaALs`,`North Coast`,`/images/hotels/garibaldi/the-hotel-garibaldi.jpg`),Z(`Garibaldi Inn at the Bay`,`https://expedia.com/affiliate/ZivFvmb`,`North Coast`,`/images/hotels/garibaldi/garibaldi-inn-at-the-bay.jpg`),Z(`Harborview Inn & RV Park`,`https://expedia.com/affiliate/3lp1ATL`,`North Coast`,`/images/hotels/garibaldi/harborview-inn-and-rv-park.jpg`)],Tillamook:[Z(`The Tillamook Inn`,`https://expedia.com/affiliate/f11NvoX`,`North Coast`,`/images/hotels/tillamook/tillamook-inn.jpg`),Z(`Ashley Inn of Tillamook`,`https://expedia.com/affiliate/BZAE3Qq`,`North Coast`,`/images/hotels/tillamook/ashley-inn-of-tillamook.jpg`),Z(`Western Royal Inn`,`https://expedia.com/affiliate/SL8Kou9`,`North Coast`,`/images/hotels/tillamook/western-royal-inn.jpg`),Z(`The Oceanside Inn`,`https://expedia.com/affiliate/1wnaCWE`,`North Coast`,`https://drive.google.com/uc?export=view&id=1d7AxU6a-Zlq03deiNU8hBUzMWfVMj7FI`),Z(`Terimore Bayfront Inn`,`https://expedia.com/affiliate/pIhnHz5`,`North Coast`,`/images/hotels/tillamook/terimore-bayfront-inn.jpg`)],Nehalem:[Z(`Wheeler on the Bay Lodge and Marina`,`#`,`North Coast`,`/images/hotels/nehalem/wheeler-on-the-bay-lodge-and-marina.jpg`),Z(`Old Wheeler Hotel`,`#`,`North Coast`,`/images/hotels/nehalem/old-wheeler-hotel.jpg`)],Tolovana:[Z(`The Ocean Lodge`,`https://expedia.com/affiliates/cannon-beach-hotels-the-ocean-lodge.a40yztM`,`North Coast`,`/images/hotels/cannon-beach/the-ocean-lodge.jpg`),Z(`Inn at Cannon Beach`,`#`,`North Coast`,`/images/hotels/cannon-beach/inn-at-cannon-beach.jpg`)],"Bay City":[],Netarts:[Z(`Terimore Lodging by the Sea`,`https://expedia.com/affiliates/tillamook-hotels-terimore-inn.dOjg76G`,`North Coast`,`/images/hotels/bay-city/terimore-lodging-by-the-sea.jpg`),Z(`The Surf Inn`,`https://expedia.com/affiliates/tillamook-hotels-the-netarts-surf-inn.oKM1yC1`,`North Coast`,`/images/hotels/bay-city/the-surf-inn.jpg`)],Neskowin:[],Oceanside:[Z(`Oceanside Inn`,`#`,`North Coast`,`https://drive.google.com/thumbnail?id=1d7AxU6a-Zlq03deiNU8hBUzMWfVMj7FI&sz=w1000`)],"Pacific City":[Z(`Pacific City Inn`,`https://expedia.com/affiliate/q3yGnAm`,`Central Coast`,`/images/hotels/pacific-city/pacific-city-inn.jpg`),Z(`Inn at Cape Kiwanda`,`https://expedia.com/affiliate/5nV2h4H`,`Central Coast`,`/images/hotels/pacific-city/inn-at-cape-kiwanda.jpg`),Z(`Headlands Coastal Lodge & Spa`,`https://expedia.com/affiliate/oYGoJbe`,`Central Coast`,`/images/hotels/pacific-city/headlands-coastal-lodge-and-spa.jpg`),Z(`Surf & Sand Inn`,`https://expedia.com/affiliate/VJOt3mg`,`Central Coast`,`/images/hotels/pacific-city/surf-and-sand-inn.jpg`),Z(`The Anchorage Motel`,`https://expedia.com/affiliate/lFJgsDF`,`Central Coast`,`/images/hotels/pacific-city/the-anchorage-motel.jpg`)],"Lincoln City":[Z(`Siletz Bay Beachfront Hotel`,`https://expedia.com/affiliate/nLYtYGA`,`Central Coast`,`/images/hotels/lincoln-city/siletz-bay-beachfront-hotel.jpg`),Z(`Holiday Inn Express & Suites`,`https://expedia.com/affiliate/9BioOyr`,`Central Coast`,`https://drive.google.com/uc?export=view&id=1Vr2VuAOSt-FRdU6lnGCZvqRJS9HIjsj3`),Z(`Lincoln Sands Oceanfront Resort`,`https://expedia.com/affiliate/nt6MsIL`,`Central Coast`,`/images/hotels/lincoln-city/lincoln-sands-oceanfront-resort.jpg`),Z(`Comfort Inn & Suites`,`https://expedia.com/affiliate/3i9WO6E`,`Central Coast`,`/images/hotels/lincoln-city/comfort-inn-and-suites.jpg`),Z(`Surfland Hotel`,`https://expedia.com/affiliate/yHp1qRA`,`Central Coast`,`/images/hotels/lincoln-city/surfland-hotel.jpg`),Z(`Surftides`,`https://expedia.com/affiliate/AE2n2l9`,`Central Coast`,`/images/hotels/lincoln-city/surftides.jpg`),Z(`Salishan Coastal Lodge & Resort`,`#`,`Central Coast`,`/images/hotels/gleneden-beach/salishan-coastal-lodge.jpg`),Z(`Starfish Manor Oceanfront Hotel`,`https://expedia.com/affiliates/lincoln-city-hotels-starfish-manor-oceanfront-hotel.TLbavwG`,`Central Coast`,`/images/hotels/lincoln-city/starfish-manor-oceanfront-hotel.jpg`),Z(`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`),Z(`The Ashley Inn & Suites`,`https://expedia.com/affiliates/lincoln-city-hotels-the-ashley-inn-suites.VVEBoQ5`,`Central Coast`,`/images/hotels/lincoln-city/the-ashley-inn-and-suites.jpg`)],"Gleneden Beach":[Z(`WorldMark Gleneden Beach`,`https://expedia.com/affiliate/3GoK6ZH`,`Central Coast`,`/images/hotels/gleneden-beach/worldmark-gleneden.jpg`),Z(`Salishan Coastal Lodge`,`https://expedia.com/affiliate/4HyaGdg`,`Central Coast`,`/images/hotels/gleneden-beach/salishan-coastal-lodge.jpg`)],"Depoe Bay":[Z(`WorldMark Depoe Bay`,`https://expedia.com/affiliate/eDY1POg`,`Central Coast`,`/images/hotels/depoe-bay/worldmark-depoe-bay.jpg`),Z(`Travelodge by Wyndham`,`https://expedia.com/affiliate/LbqzSDy`,`Central Coast`,`/images/hotels/depoe-bay/travelodge-by-wyndham-depoe-bay.jpg`),Z(`Clarion Inn Surfrider Resort`,`https://expedia.com/affiliate/yLjzrer`,`Central Coast`,`/images/hotels/depoe-bay/clarion-inn-surfrider-resort.jpg`),Z(`Inn at Arch Rock`,`https://expedia.com/affiliate/Z7JNpW9`,`Central Coast`,`/images/hotels/depoe-bay/inn-at-arch-rock.jpg`),Z(`Whale Cove Inn`,`https://expedia.com/affiliate/nnP5EZA`,`Central Coast`,`/images/hotels/depoe-bay/whale-cove-inn.jpg`)],"Otter Rock":[Z(`Inn At Otter Crest`,`https://expedia.com/affiliate/7vBCeVz`,`Central Coast`,`/images/hotels/otter-rock/the-inn-at-otter-crest.jpg`)],Newport:[Z(`Holiday Inn Express`,`https://expedia.com/affiliate/NJBvZWm`,`Central Coast`,`/images/hotels/newport/holiday-inn-express.jpg`),Z(`Waves Hotel NYE Beach`,`https://expedia.com/affiliate/WdzNkOX`,`Central Coast`,`/images/hotels/newport/waves-hotel-nye-beach.jpg`),Z(`Comfort Inn Newport`,`https://expedia.com/affiliate/YyNeNTg`,`Central Coast`,`/images/hotels/newport/comfort-inn-newport.jpg`),Z(`Newport Inn By OYO`,`https://expedia.com/affiliate/8155hYD`,`Central Coast`,`/images/hotels/newport/newport-inn-by-oyo.jpg`),Z(`Motel 6 Newport`,`https://expedia.com/affiliate/iNsZsZ3`,`Central Coast`,`/images/hotels/newport/motel-6-newport.jpg`),Z(`Hallmark Resort`,`https://expedia.com/affiliate/CoJq7jS`,`Central Coast`,`/images/hotels/newport/hallmark-resort-newport.jpg`),Z(`Sylvia Beach Hotel`,`https://expedia.com/affiliates/newport-hotels-hotel-sylvia.sdqDnG3`,`Central Coast`,`/images/hotels/newport/sylvia-beach-hotel.jpg`),Z(`Best Western Plus Agate Beach Inn`,`https://expedia.com/affiliates/newport-hotels-best-western-plus-agate-beach-inn.fd7bpuM`,`Central Coast`,`/images/hotels/newport/best-western-plus-agate-beach-inn.jpg`)],Waldport:[Z(`Alsi Resort`,`https://expedia.com/affiliate/pwGOgvK`,`Central Coast`,`https://drive.google.com/uc?export=view&id=1Sk087kLdtYxKanrofG8bQSivI9lMZ6cN`),Z(`The Waldport Inn`,`https://expedia.com/affiliate/zg8fXxb`,`Central Coast`,`/images/hotels/waldport/the-waldport-inn.jpg`)],Yachats:[Z(`Adobe Resort`,`https://expedia.com/affiliate/gxy00Gh`,`Central Coast`,`/images/hotels/yachats/adobe-resort.jpg`),Z(`Silver Surf Motel`,`https://expedia.com/affiliate/JC4ePNz`,`Central Coast`,`/images/hotels/yachats/silver-surf-motel.jpg`),Z(`Tillicum Beach Motel`,`https://expedia.com/affiliate/6hqaWhM`,`Central Coast`,`/images/hotels/yachats/tillicum-beach-motel.jpg`),Z(`Fireside Motel`,`https://expedia.com/affiliate/JVUAE00`,`Central Coast`,`/images/hotels/yachats/fireside-motel.jpg`),Z(`Overleaf Lodge`,`https://expedia.com/affiliate/z47trXR`,`Central Coast`,`/images/hotels/yachats/overleaf-lodge-and-spa.jpg`)],Florence:[Z(`Driftwood Shores Resort`,`https://expedia.com/affiliate/3k08QRP`,`Central Coast`,`/images/hotels/florence/driftwood-shores-resort.jpg`),Z(`Economy Inn Florence`,`https://expedia.com/affiliate/RJe4WrD`,`Central Coast`,`/images/hotels/florence/economy-inn-florence.jpg`),Z(`Old Town Inn`,`https://expedia.com/affiliate/dik1XT7`,`Central Coast`,`/images/hotels/florence/old-town-inn.jpg`),Z(`Quality Inn Florence`,`https://expedia.com/affiliate/BHxZCQC`,`Central Coast`,`/images/hotels/florence/quality-inn-florence.jpg`),Z(`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`),Z(`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`),Z(`Three Rivers Casino Resort`,`https://expedia.com/affiliates/florence-hotels-three-rivers-casino-resort.a3OJ6Oi`,`Central Coast`,`/images/hotels/florence/three-rivers-casino-resort.jpg`)],"South Beach":[Z(`La Quinta Inn & Suites`,`https://expedia.com/affiliates/newport-hotels-la-quinta-inn-suites-by-wyndham-newport.WYuEQQ4`,`Central Coast`,`/images/hotels/south-beach/la-quinta-inn-and-suites.jpg`),Z(`Holiday Inn Express Newport`,`https://expedia.com/affiliates/newport-hotels-holiday-inn-express-hotel-suites-newport.XquObDL`,`Central Coast`,`/images/hotels/south-beach/holiday-inn-express-newport.jpg`),Z(`Motel 6 Newport`,`#`,`Central Coast`,`/images/hotels/newport/motel-6-newport.jpg`)],Toledo:[],"Seal Rock":[],"Dune City":[Z(`Lakeshore Lodge (Nearby)`,`#`,`Central Coast`,`/images/hotels/toledo/lakeshore-lodge-nearby.jpg`)],Reedsport:[Z(`Best Western Salbasgeon Inn & Suites`,`https://expedia.com/affiliate/T06n3oJ`,`South Coast`,`/images/hotels/gardiner/best-western-salbasgeon-inn-and-suites-of-reedsport.jpg`),Z(`Economy Inn Reedsport`,`https://expedia.com/affiliate/86T7wG7`,`South Coast`,`/images/hotels/gardiner/economy-inn-reedsport.jpg`),Z(`Anchor Bay Inn`,`https://expedia.com/affiliate/mg9V7Qk`,`South Coast`,`/images/hotels/gardiner/anchor-bay-inn.jpg`),Z(`Best Budget Inn`,`https://expedia.com/affiliate/12zpSQt`,`South Coast`,`/images/hotels/gardiner/best-budget-inn.jpg`),Z(`Winchester Bay Inn`,`https://expedia.com/affiliate/5QIauAF`,`South Coast`,`/images/hotels/gardiner/winchester-bay-inn.jpg`),Z(`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":[Z(`Bay Bridge Motel`,`https://expedia.com/affiliate/53WLsiz`,`South Coast`,`/images/hotels/north-bend/bay-bridge-motel.jpg`),Z(`City Center Motel`,`https://expedia.com/affiliate/pFvViER`,`South Coast`,`/images/hotels/north-bend/city-center-motel.jpg`),Z(`Quality Inn & Suites at Coos Bay`,`https://expedia.com/affiliates/north-bend-hotels-quality-inn-suites-at-coos-bay.ErpH1H7`,`South Coast`,`/images/hotels/north-bend/quality-inn-and-suites-at-coos-bay.jpg`)],"Coos Bay":[Z(`Red Lion Hotel`,`https://expedia.com/affiliate/t4HhQus`,`South Coast`,`https://drive.google.com/uc?export=view&id=1pXNjHlzmssb_5PU_8ntIc73M3L5ayw_9`),Z(`Best Western Holiday Hotel`,`https://expedia.com/affiliate/QBNgGrC`,`South Coast`,`/images/hotels/coos-bay/best-western-holiday-hotel.jpg`),Z(`Edgewater Inn and Suites`,`https://expedia.com/affiliate/yIn1SFj`,`South Coast`,`/images/hotels/coos-bay/edgewater-inn-and-suites.jpg`),Z(`Motel 6 Coos Bay`,`https://expedia.com/affiliate/jwdeQZX`,`South Coast`,`/images/hotels/coos-bay/motel-6-coos-bay.jpg`),Z(`Global INN`,`https://expedia.com/affiliate/gCeHXdQ`,`South Coast`,`/images/hotels/coos-bay/global-inn.jpg`),Z(`Bay Point Landing`,`https://expedia.com/affiliates/oregon-coast-hotels-bay-point-landing.1bzDGYK`,`South Coast`,`/images/hotels/charleston/bay-point-landing.jpg`)],Bandon:[Z(`Bandon Inn`,`https://expedia.com/affiliate/fYWsXu6`,`South Coast`,`/images/hotels/bandon/bandon-inn.jpg`),Z(`The Inn at Old Town`,`https://expedia.com/affiliate/LWiynEX`,`South Coast`,`/images/hotels/bandon/the-inn-at-old-town.jpg`),Z(`Bandon Marina Inn`,`https://expedia.com/affiliate/dlhq2LJ`,`South Coast`,`/images/hotels/bandon/bandon-marina-inn.jpg`),Z(`Sunset Oceanfront Lodging`,`https://expedia.com/affiliate/xvYwklk`,`South Coast`,`/images/hotels/bandon/sunset-oceanfront-lodging.jpg`),Z(`La Kris Inn`,`https://expedia.com/affiliate/D3oIMw4`,`South Coast`,`/images/hotels/bandon/la-kris-inn.jpg`),Z(`Best Western Inn At Face Rock`,`https://expedia.com/affiliate/Dexz7KN`,`South Coast`,`/images/hotels/bandon/best-western-inn-at-face-rock.jpg`)],"Port Orford":[Z(`The Shoreline Inn & Suites`,`https://expedia.com/affiliate/Db6lt3X`,`South Coast`,`/images/hotels/port-orford/the-shoreline-inn-and-suites.jpg`),Z(`Wander Port Orford`,`https://expedia.com/affiliate/sjFTyJh`,`South Coast`,`/images/hotels/port-orford/wander-port-orford.jpg`),Z(`Shoreline Inn (Nearby)`,`#`,`South Coast`,`/images/hotels/port-orford/the-shoreline-inn-and-suites.jpg`)],"Gold Beach":[Z(`Gold Beach Inn`,`https://expedia.com/affiliate/QNb00RP`,`South Coast`,`/images/hotels/gold-beach/gold-beach-inn.jpg`),Z(`SureStay Plus Hotel`,`https://expedia.com/affiliate/0cPwRok`,`South Coast`,`/images/hotels/gold-beach/surestay-plus-hotel.jpg`),Z(`Pacific Reef Hotel & Light Show`,`https://expedia.com/affiliate/mXanyT0`,`South Coast`,`/images/hotels/gold-beach/pacific-reef-hotel-and-light-show.jpg`),Z(`The Wildflower Inn`,`https://expedia.com/affiliate/jvGnE8h`,`South Coast`,`/images/hotels/gold-beach/the-wildflower-inn.jpg`),Z(`Jot's Resort`,`https://expedia.com/affiliate/sGKGodR`,`South Coast`,`https://drive.google.com/uc?export=view&id=12Kc2ZwaIA_sNUtliwFMNO6Mj_LYXDpbG`),Z(`Tu Tu Tun Lodge`,`https://expedia.com/affiliate/4SPDbqz`,`South Coast`,`/images/hotels/gold-beach/tu-tu-tun-lodge.jpg`)],Brookings:[Z(`Brookings Inn Resort`,`https://expedia.com/affiliate/SBe5yvh`,`South Coast`,`/images/hotels/brookings/brookings-inn-resort.jpg`),Z(`Harbor Inn`,`https://expedia.com/affiliate/NoEyGVd`,`South Coast`,`/images/hotels/brookings/harbor-inn.jpg`),Z(`Wild Rivers Motor Lodge`,`https://expedia.com/affiliate/9mJn4nr`,`South Coast`,`/images/hotels/brookings/wild-rivers-motor-lodge.jpg`),Z(`Pacific Sunset Inn`,`https://expedia.com/affiliate/7CRwd5I`,`South Coast`,`/images/hotels/brookings/pacific-sunset-inn.jpg`),Z(`AmeriCoast Inn`,`https://expedia.com/affiliate/Hn0ugAb`,`South Coast`,`/images/hotels/brookings/americoast-inn.jpg`),Z(`Westward Inn`,`https://expedia.com/affiliate/gvhFkJN`,`South Coast`,`/images/hotels/brookings/westward-inn.jpg`),Z(`Ocean Suites Motel`,`https://expedia.com/affiliate/uGryfYs`,`South Coast`,`/images/hotels/brookings/ocean-suites-motel.jpg`),Z(`Blue Coast Inn and Suites`,`https://expedia.com/affiliate/sjA4btE`,`South Coast`,`/images/hotels/brookings/blue-coast-inn-and-suites.jpg`),Z(`Beachfront Inn`,`https://expedia.com/affiliate/uwE5zg8`,`South Coast`,`/images/hotels/brookings/beachfront-inn.jpg`)],Gardiner:[Z(`Economy Inn Reedsport`,`#`,`South Coast`,`/images/hotels/gardiner/economy-inn-reedsport.jpg`),Z(`Anchor Bay Inn`,`#`,`South Coast`,`/images/hotels/gardiner/anchor-bay-inn.jpg`),Z(`Best Budget Inn`,`#`,`South Coast`,`/images/hotels/gardiner/best-budget-inn.jpg`),Z(`Winchester Bay Inn`,`#`,`South Coast`,`/images/hotels/gardiner/winchester-bay-inn.jpg`),Z(`Best Western Salbasgeon Inn & Suites Of Reedsport`,`#`,`South Coast`,`https://drive.google.com/thumbnail?id=1rYJwavhQXaCn1W1o93xoJXOytOAw9JIr&sz=w1000`)],"Winchester Bay":[],Lakeside:[Z(`Lakeshore Lodge`,`https://expedia.com/affiliates/lakeside-hotels-lakeshore-lodge.2NMEmYl`,`South Coast`,`/images/hotels/toledo/lakeshore-lodge-nearby.jpg`)],Charleston:[Z(`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`),Z(`Plainview Motel`,`https://expedia.com/affiliates/coos-bay-hotels-plainview-motel-rv-park.HZmgIML`,`South Coast`,`/images/hotels/charleston/plainview-motel.jpg`),Z(`Bay Point Landing`,`https://expedia.com/affiliates/oregon-coast-hotels-bay-point-landing.1bzDGYK`,`South Coast`,`/images/hotels/charleston/bay-point-landing.jpg`)],Langlois:[],Harbor:[]},jne=(e,t)=>{let n=0;for(let t=0;t<e.length;t++)n=e.charCodeAt(t)+((n<<5)-n);return{latOffset:Math.abs(Math.sin(n+t))*.02-.01,lngOffset:Math.abs(Math.cos(n+t))*.02-.01}},JC=e=>e?.toString().toLowerCase().replace(/\s+/g,`-`).replace(/[^\w-]/g,``)||``,YC=Object.entries(qC).flatMap(([e,t])=>{let n=Y[JC(e)]?.geo||{lat:45,lng:-124};return t.filter(e=>e.name!==`Coming Soon`).map((t,r)=>{let i=jne(t.name,r);return{id:`hotel-${JC(e)}-${JC(t.name)}`,hotelName:t.name,city:e,region:t.region,expediaLink:t.link,googleDrivePhotoPath:t.photoUrl,lat:n.lat+i.latOffset,lng:n.lng+i.lngOffset}})}),XC=[{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}],Mne=y.useId||(()=>void 0),Nne=0;function ZC(e){let[t,n]=y.useState(Mne());return ni(()=>{e||n(e=>e??String(Nne++))},[e]),e||(t?`radix-${t}`:``)}var Pne=y.createContext(void 0);function QC(e){let t=y.useContext(Pne);return e||t||`ltr`}var $C=`rovingFocusGroup.onEntryFocus`,Fne={bubbles:!1,cancelable:!0},ew=`RovingFocusGroup`,[tw,nw,Ine]=Ir(ew),[Lne,rw]=Or(ew,[Ine]),[Rne,zne]=Lne(ew),iw=y.forwardRef((e,t)=>(0,z.jsx)(tw.Provider,{scope:e.__scopeRovingFocusGroup,children:(0,z.jsx)(tw.Slot,{scope:e.__scopeRovingFocusGroup,children:(0,z.jsx)(Bne,{...e,ref:t})})}));iw.displayName=ew;var Bne=y.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,orientation:r,loop:i=!1,dir:a,currentTabStopId:o,defaultCurrentTabStopId:s,onCurrentTabStopIdChange:c,onEntryFocus:l,preventScrollOnEntryFocus:u=!1,...d}=e,f=y.useRef(null),p=Tr(t,f),m=QC(a),[h=null,g]=ui({prop:o,defaultProp:s,onChange:c}),[_,v]=y.useState(!1),b=zr(l),x=nw(n),S=y.useRef(!1),[C,w]=y.useState(0);return y.useEffect(()=>{let e=f.current;if(e)return e.addEventListener($C,b),()=>e.removeEventListener($C,b)},[b]),(0,z.jsx)(Rne,{scope:n,orientation:r,dir:m,loop:i,currentTabStopId:h,onItemFocus:y.useCallback(e=>g(e),[g]),onItemShiftTab:y.useCallback(()=>v(!0),[]),onFocusableItemAdd:y.useCallback(()=>w(e=>e+1),[]),onFocusableItemRemove:y.useCallback(()=>w(e=>e-1),[]),children:(0,z.jsx)(Lr.div,{tabIndex:_||C===0?-1:0,"data-orientation":r,...d,ref:p,style:{outline:`none`,...e.style},onMouseDown:Sr(e.onMouseDown,()=>{S.current=!0}),onFocus:Sr(e.onFocus,e=>{let t=!S.current;if(e.target===e.currentTarget&&t&&!_){let t=new CustomEvent($C,Fne);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=x().filter(e=>e.focusable);sw([e.find(e=>e.active),e.find(e=>e.id===h),...e].filter(Boolean).map(e=>e.ref.current),u)}}S.current=!1}),onBlur:Sr(e.onBlur,()=>v(!1))})})}),aw=`RovingFocusGroupItem`,ow=y.forwardRef((e,t)=>{let{__scopeRovingFocusGroup:n,focusable:r=!0,active:i=!1,tabStopId:a,...o}=e,s=ZC(),c=a||s,l=zne(aw,n),u=l.currentTabStopId===c,d=nw(n),{onFocusableItemAdd:f,onFocusableItemRemove:p}=l;return y.useEffect(()=>{if(r)return f(),()=>p()},[r,f,p]),(0,z.jsx)(tw.ItemSlot,{scope:n,id:c,focusable:r,active:i,children:(0,z.jsx)(Lr.span,{tabIndex:u?0:-1,"data-orientation":l.orientation,...o,ref:t,onMouseDown:Sr(e.onMouseDown,e=>{r?l.onItemFocus(c):e.preventDefault()}),onFocus:Sr(e.onFocus,()=>l.onItemFocus(c)),onKeyDown:Sr(e.onKeyDown,e=>{if(e.key===`Tab`&&e.shiftKey){l.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=Une(e,l.orientation,l.dir);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;e.preventDefault();let n=d().filter(e=>e.focusable).map(e=>e.ref.current);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.indexOf(e.currentTarget);n=l.loop?Wne(n,r+1):n.slice(r+1)}setTimeout(()=>sw(n))}})})})});ow.displayName=aw;var Vne={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,PageUp:`first`,Home:`first`,PageDown:`last`,End:`last`};function Hne(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function Une(e,t,n){let r=Hne(e.key,n);if(!(t===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r))&&!(t===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r)))return Vne[r]}function sw(e,t=!1){let n=document.activeElement;for(let r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function Wne(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var Gne=iw,Kne=ow,cw=`Tabs`,[qne,Jne]=Or(cw,[rw]),lw=rw(),[Yne,uw]=qne(cw),dw=y.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,onValueChange:i,defaultValue:a,orientation:o=`horizontal`,dir:s,activationMode:c=`automatic`,...l}=e,u=QC(s),[d,f]=ui({prop:r,onChange:i,defaultProp:a});return(0,z.jsx)(Yne,{scope:n,baseId:ZC(),value:d,onValueChange:f,orientation:o,dir:u,activationMode:c,children:(0,z.jsx)(Lr.div,{dir:u,"data-orientation":o,...l,ref:t})})});dw.displayName=cw;var fw=`TabsList`,pw=y.forwardRef((e,t)=>{let{__scopeTabs:n,loop:r=!0,...i}=e,a=uw(fw,n),o=lw(n);return(0,z.jsx)(Gne,{asChild:!0,...o,orientation:a.orientation,dir:a.dir,loop:r,children:(0,z.jsx)(Lr.div,{role:`tablist`,"aria-orientation":a.orientation,...i,ref:t})})});pw.displayName=fw;var mw=`TabsTrigger`,hw=y.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,disabled:i=!1,...a}=e,o=uw(mw,n),s=lw(n),c=vw(o.baseId,r),l=yw(o.baseId,r),u=r===o.value;return(0,z.jsx)(Kne,{asChild:!0,...s,focusable:!i,active:u,children:(0,z.jsx)(Lr.button,{type:`button`,role:`tab`,"aria-selected":u,"aria-controls":l,"data-state":u?`active`:`inactive`,"data-disabled":i?``:void 0,disabled:i,id:c,...a,ref:t,onMouseDown:Sr(e.onMouseDown,e=>{!i&&e.button===0&&e.ctrlKey===!1?o.onValueChange(r):e.preventDefault()}),onKeyDown:Sr(e.onKeyDown,e=>{[` `,`Enter`].includes(e.key)&&o.onValueChange(r)}),onFocus:Sr(e.onFocus,()=>{let e=o.activationMode!==`manual`;!u&&!i&&e&&o.onValueChange(r)})})})});hw.displayName=mw;var gw=`TabsContent`,_w=y.forwardRef((e,t)=>{let{__scopeTabs:n,value:r,forceMount:i,children:a,...o}=e,s=uw(gw,n),c=vw(s.baseId,r),l=yw(s.baseId,r),u=r===s.value,d=y.useRef(u);return y.useEffect(()=>{let e=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(e)},[]),(0,z.jsx)(oi,{present:i||u,children:({present:n})=>(0,z.jsx)(Lr.div,{"data-state":u?`active`:`inactive`,"data-orientation":s.orientation,role:`tabpanel`,"aria-labelledby":c,hidden:!n,id:l,tabIndex:0,...o,ref:t,style:{...e.style,animationDuration:d.current?`0s`:void 0},children:n&&a})})});_w.displayName=gw;function vw(e,t){return`${e}-trigger-${t}`}function yw(e,t){return`${e}-content-${t}`}var Xne=dw,bw=pw,xw=hw,Sw=_w,Zne=Xne,Cw=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(bw,{ref:n,className:R(`inline-flex h-9 items-center justify-center rounded-lg bg-muted p-1 text-muted-foreground`,e),...t}));Cw.displayName=bw.displayName;var ww=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(xw,{ref:n,className:R(`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}));ww.displayName=xw.displayName;var Tw=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(Sw,{ref:n,className:R(`mt-2 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2`,e),...t}));Tw.displayName=Sw.displayName;var Ew=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(`div`,{ref:n,className:R(`rounded-xl border bg-card text-card-foreground shadow`,e),...t}));Ew.displayName=`Card`;var Dw=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(`div`,{ref:n,className:R(`flex flex-col space-y-1.5 p-6`,e),...t}));Dw.displayName=`CardHeader`;var Ow=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(`div`,{ref:n,className:R(`font-semibold leading-none tracking-tight`,e),...t}));Ow.displayName=`CardTitle`;var Qne=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(`div`,{ref:n,className:R(`text-sm text-muted-foreground`,e),...t}));Qne.displayName=`CardDescription`;var kw=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(`div`,{ref:n,className:R(`p-6 pt-0`,e),...t}));kw.displayName=`CardContent`;var Aw=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(`div`,{ref:n,className:R(`flex items-center p-6 pt-0`,e),...t}));Aw.displayName=`CardFooter`,delete LC.default.Icon.Default.prototype._getIconUrl,LC.default.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`});var jw=LC.default.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]}),Mw=LC.default.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]}),Nw=({markers:e})=>{let t=yne();return(0,y.useEffect)(()=>{if(e&&e.length>0){let n=LC.default.latLngBounds(e.map(e=>[e.lat,e.lng]));t.fitBounds(n,{padding:[50,50],maxZoom:14}),setTimeout(()=>t.invalidateSize(),100)}},[e,t]),null};function Pw(){let[e,t]=(0,y.useState)(!1);(0,y.useEffect)(()=>t(!0),[]);let n=(0,y.useMemo)(()=>{let e={};return XC.forEach(t=>{e[t.town]||(e[t.town]=[]),e[t.town].push(t)}),e},[]);return(0,z.jsxs)(`div`,{className:`min-h-screen bg-gray-50 flex flex-col`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:`Oregon Coast Maps | Hotels & Food Trucks`}),(0,z.jsx)(`meta`,{name:`description`,content:`Interactive maps of the Oregon Coast. Find hotels and food trucks, and explore accommodations and dining options.`})]}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`main`,{className:`flex-grow flex flex-col pb-12`,children:[(0,z.jsx)(`div`,{className:`bg-white px-4 py-8 sm:px-6 lg:px-8 border-b shadow-sm z-10 relative`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto text-center`,children:[(0,z.jsx)(`h1`,{className:`text-3xl sm:text-4xl font-extrabold text-gray-900 tracking-tight`,children:`Oregon Coast Interactive Maps`}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`flex-grow p-4 md:p-6 lg:p-8 max-w-[1400px] mx-auto w-full mt-4`,children:(0,z.jsxs)(Zne,{defaultValue:`hotels`,className:`w-full`,children:[(0,z.jsx)(`div`,{className:`flex justify-center mb-6`,children:(0,z.jsxs)(Cw,{className:`bg-white border shadow-sm h-12`,children:[(0,z.jsxs)(ww,{value:`hotels`,className:`data-[state=active]:bg-purple-100 data-[state=active]:text-purple-800 text-base px-6`,children:[(0,z.jsx)(wa,{className:`w-4 h-4 mr-2`}),` Hotels Map`]}),(0,z.jsxs)(ww,{value:`food-trucks`,className:`data-[state=active]:bg-orange-100 data-[state=active]:text-orange-800 text-base px-6`,children:[(0,z.jsx)(as,{className:`w-4 h-4 mr-2`}),` Food Trucks Map`]})]})}),(0,z.jsx)(Tw,{value:`hotels`,className:`m-0 border-none outline-none focus:ring-0`,children:(0,z.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?(0,z.jsxs)(zC,{center:[44.6,-124],zoom:7,className:`w-full h-full z-10`,scrollWheelZoom:!0,children:[(0,z.jsx)(HC,{attribution:`© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>`,url:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`}),(0,z.jsx)(Nw,{markers:YC}),(0,z.jsx)(KC.default,{chunkedLoading:!0,maxClusterRadius:40,children:YC.map(e=>(0,z.jsx)(BC,{position:[e.lat,e.lng],icon:jw,children:(0,z.jsx)(Ane,{hotel:e})},e.id))})]}):(0,z.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-gray-50 z-20`,children:(0,z.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,z.jsx)(`div`,{className:`w-10 h-10 border-4 border-purple-200 border-t-purple-600 rounded-full animate-spin mb-4`}),(0,z.jsx)(`p`,{className:`text-gray-500 font-medium`,children:`Loading map data...`})]})})})}),(0,z.jsx)(Tw,{value:`food-trucks`,className:`m-0 border-none outline-none focus:ring-0`,children:(0,z.jsxs)(`div`,{className:`flex flex-col lg:flex-row gap-6 h-auto lg:h-[65vh] min-h-[500px]`,children:[(0,z.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:[(0,z.jsx)(`div`,{className:`p-4 bg-orange-50 border-b border-orange-100`,children:(0,z.jsxs)(`h2`,{className:`text-xl font-bold text-orange-900 flex items-center`,children:[(0,z.jsx)(as,{className:`w-5 h-5 mr-2`}),` Food Trucks Directory`]})}),(0,z.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4 custom-scrollbar`,children:Object.keys(n).map(e=>(0,z.jsxs)(`div`,{className:`mb-6 last:mb-0`,children:[(0,z.jsx)(`h3`,{className:`text-lg font-bold text-gray-800 mb-3 pb-1 border-b-2 border-gray-100`,children:e}),(0,z.jsx)(`div`,{className:`space-y-3`,children:n[e].map(e=>(0,z.jsx)(Ew,{className:`border border-gray-100 hover:border-orange-200 hover:shadow-md transition-all`,children:(0,z.jsxs)(kw,{className:`p-3`,children:[(0,z.jsx)(`h4`,{className:`font-bold text-gray-900`,children:e.name}),(0,z.jsx)(`p`,{className:`text-sm font-medium text-orange-600 mb-1`,children:e.cuisine}),(0,z.jsxs)(`p`,{className:`text-xs text-gray-500 flex items-start`,children:[(0,z.jsx)(V,{className:`w-3.5 h-3.5 mr-1 flex-shrink-0 mt-0.5`}),e.address]})]})},e.id))})]},e))})]}),(0,z.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?(0,z.jsxs)(zC,{center:[44.6,-124],zoom:7,className:`w-full h-full z-10`,scrollWheelZoom:!0,children:[(0,z.jsx)(HC,{attribution:`© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>`,url:`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`}),(0,z.jsx)(Nw,{markers:XC}),(0,z.jsx)(KC.default,{chunkedLoading:!0,maxClusterRadius:40,children:XC.map(e=>(0,z.jsx)(BC,{position:[e.lat,e.lng],icon:Mw,children:(0,z.jsx)(VC,{className:`rounded-xl overflow-hidden shadow-lg border-0`,children:(0,z.jsxs)(`div`,{className:`p-1 min-w-[200px]`,children:[(0,z.jsx)(`h3`,{className:`font-bold text-lg text-gray-900 mb-1 leading-tight`,children:e.name}),(0,z.jsx)(`div`,{className:`inline-block px-2 py-0.5 bg-orange-100 text-orange-700 text-xs font-semibold rounded mb-2`,children:e.cuisine}),(0,z.jsxs)(`div`,{className:`text-sm text-gray-600 flex items-start mt-1`,children:[(0,z.jsx)(V,{className:`w-4 h-4 mr-1.5 flex-shrink-0 mt-0.5 text-gray-400`}),(0,z.jsx)(`span`,{children:e.address})]})]})})},e.id))})]}):(0,z.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-gray-50 z-20`,children:(0,z.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,z.jsx)(`div`,{className:`w-10 h-10 border-4 border-orange-200 border-t-orange-600 rounded-full animate-spin mb-4`}),(0,z.jsx)(`p`,{className:`text-gray-500 font-medium`,children:`Loading map data...`})]})})})]})})]})})]}),(0,z.jsx)(NS,{})]})}var Fw=y.forwardRef(({className:e,type:t,...n},r)=>(0,z.jsx)(`input`,{type:t,className:R(`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:r,...n}));Fw.displayName=`Input`;var $ne=`Label`,Iw=y.forwardRef((e,t)=>(0,z.jsx)(Lr.label,{...e,ref:t,onMouseDown:t=>{t.target.closest(`button, input, select, textarea`)||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));Iw.displayName=$ne;var Lw=Iw,ere=da(`text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70`),Rw=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(Lw,{ref:n,className:R(ere(),e),...t}));Rw.displayName=Lw.displayName;var zw=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(`textarea`,{className:R(`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}));zw.displayName=`Textarea`;var tre=da(`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`}}),Bw=y.forwardRef(({className:e,variant:t,size:n,asChild:r=!1,...i},a)=>(0,z.jsx)(r?Ar:`button`,{className:R(tre({variant:t,size:n,className:e})),ref:a,...i}));Bw.displayName=`Button`;var Vw=Object.defineProperty,Hw=(e,t)=>Vw(e,`name`,{value:t,configurable:!0});function Uw(e,[t,n]){return Math.min(n,Math.max(t,e))}Hw(Uw,`clamp`);var Ww=Object.defineProperty,Gw=(e,t)=>Ww(e,`name`,{value:t,configurable:!0}),Kw=!!(typeof window<`u`&&window.document&&window.document.createElement);function qw(e,t,{checkForDefaultPrevented:n=!0}={}){return Gw(function(r){if(e?.(r),n===!1||!r||!r.defaultPrevented)return t?.(r)},`handleEvent`)}Gw(qw,`composeEventHandlers`);function Jw(e){if(!Kw)throw Error(`Cannot access window outside of the DOM`);return e?.ownerDocument?.defaultView??window}Gw(Jw,`getOwnerWindow`);function Yw(e){if(!Kw)throw Error(`Cannot access document outside of the DOM`);return e?.ownerDocument??document}Gw(Yw,`getOwnerDocument`);function Xw(e,t=!1){let{activeElement:n}=Yw(e);if(!n?.nodeName)return null;if(Zw(n)&&n.contentDocument)return Xw(n.contentDocument.body,t);if(t){let e=n.getAttribute(`aria-activedescendant`);if(e){let t=Yw(n).getElementById(e);if(t)return t}}return n}Gw(Xw,`getActiveElement`);function Zw(e){return e.tagName===`IFRAME`}Gw(Zw,`isFrame`);var nre=Object.defineProperty,Qw=(e,t)=>nre(e,`name`,{value:t,configurable:!0});function rre(e,t){let n=y.createContext(t);n.displayName=e+`Context`;let r=Qw(e=>{let{children:t,...r}=e,i=y.useMemo(()=>r,Object.values(r));return(0,z.jsx)(n.Provider,{value:i,children:t})},`Provider`);r.displayName=e+`Provider`;function i(r,i={}){let{optional:a=!1}=i,o=y.useContext(n);if(o)return o;if(t!==void 0)return t;if(!a)throw Error(`\`${r}\` must be used within \`${e}\``)}return Qw(i,`useContext`),[r,i]}Qw(rre,`createContext`);function $w(e,t=[]){let n=[];function r(t,r){let i=y.createContext(r);i.displayName=t+`Context`;let a=n.length;n=[...n,r];let o=Qw(t=>{let{scope:n,children:r,...o}=t,s=n?.[e]?.[a]||i,c=y.useMemo(()=>o,Object.values(o));return(0,z.jsx)(s.Provider,{value:c,children:r})},`Provider`);o.displayName=t+`Provider`;function s(n,o,s={}){let{optional:c=!1}=s,l=o?.[e]?.[a]||i,u=y.useContext(l);if(u)return u;if(r!==void 0)return r;if(!c)throw Error(`\`${n}\` must be used within \`${t}\``)}return Qw(s,`useContext`),[o,s]}Qw(r,`createContext`);let i=Qw(()=>{let t=n.map(e=>y.createContext(e));return Qw(function(n){let r=n?.[e]||t;return y.useMemo(()=>({[`__scope${e}`]:{...n,[e]:r}}),[n,r])},`useScope`)},`createScope`);return i.scopeName=e,[r,eT(i,...t)]}Qw($w,`createContextScope`);function eT(...e){let t=e[0];if(e.length===1)return t;let n=Qw(()=>{let n=e.map(e=>({useScope:e(),scopeName:e.scopeName}));return Qw(function(e){let r=n.reduce((t,{useScope:n,scopeName:r})=>{let i=n(e)[`__scope${r}`];return{...t,...i}},{});return y.useMemo(()=>({[`__scope${t.scopeName}`]:r}),[r])},`useComposedScopes`)},`createScope`);return n.scopeName=t.scopeName,n}Qw(eT,`composeContextScopes`);var ire=Object.defineProperty,tT=(e,t)=>ire(e,`name`,{value:t,configurable:!0});function nT(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}tT(nT,`setRef`);function rT(...e){return t=>{let n=!1,r=e.map(e=>{let r=nT(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():nT(e[t],null)}}}}tT(rT,`composeRefs`);function iT(...e){return y.useCallback(rT(...e),e)}tT(iT,`useComposedRefs`);var are=Object.defineProperty,aT=(e,t)=>are(e,`name`,{value:t,configurable:!0});function oT(e){let t=y.forwardRef((t,n)=>{let{children:r,...i}=t,a=null,o=!1,s=[];dT(r)&&typeof hT==`function`&&(r=hT(r._payload)),y.Children.forEach(r,e=>{if(uT(e)){o=!0;let t=e,n=`child`in t.props?t.props.child:t.props.children;dT(n)&&typeof hT==`function`&&(n=hT(n._payload)),a=sre(t,n),s.push(a?.props?.children)}else s.push(e)}),a?a=y.cloneElement(a,void 0,s):!o&&y.Children.count(r)===1&&y.isValidElement(r)&&(a=r);let c=a?lT(a):void 0,l=iT(n,c);if(!a){if(r||r===0)throw Error(o?mT(e):pT(e));return r}let u=cT(i,a.props??{});return a.type!==y.Fragment&&(u.ref=n?l:c),y.cloneElement(a,u)});return t.displayName=`${e}.Slot`,t}aT(oT,`createSlot`);var sT=Symbol.for(`radix.slottable`);function ore(e){let t=aT(e=>`child`in e?e.children(e.child):e.children,`Slottable`);return t.displayName=`${e}.Slottable`,t.__radixId=sT,t}aT(ore,`createSlottable`);var sre=aT((e,t)=>{if(`child`in e.props){let t=e.props.child;return y.isValidElement(t)?y.cloneElement(t,void 0,e.props.children(t.props.children)):null}return y.isValidElement(t)?t:null},`getSlottableElementFromSlottable`);function cT(e,t){let n={...t};for(let r in t){let i=e[r],a=t[r];/^on[A-Z]/.test(r)?i&&a?n[r]=(...e)=>{let t=a(...e);return i(...e),t}:i&&(n[r]=i):r===`style`?n[r]={...i,...a}:r===`className`&&(n[r]=[i,a].filter(Boolean).join(` `))}return{...e,...n}}aT(cT,`mergeProps`);function lT(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)}aT(lT,`getElementRef`);function uT(e){return y.isValidElement(e)&&typeof e.type==`function`&&`__radixId`in e.type&&e.type.__radixId===sT}aT(uT,`isSlottable`);var cre=Symbol.for(`react.lazy`);function dT(e){return typeof e==`object`&&!!e&&`$$typeof`in e&&e.$$typeof===cre&&`_payload`in e&&fT(e._payload)}aT(dT,`isLazyComponent`);function fT(e){return typeof e==`object`&&!!e&&`then`in e}aT(fT,`isPromiseLike`);var pT=aT(e=>`${e} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,`createSlotError`),mT=aT(e=>`${e} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,`createSlottableError`),hT=y.use,gT=Object.defineProperty,_T=(e,t)=>gT(e,`name`,{value:t,configurable:!0});function vT(e){let t=e+`CollectionProvider`,[n,r]=$w(t),[i,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),o=_T(e=>{let{scope:t,children:n}=e,r=y.useRef(null),a=y.useRef(new Map).current;return(0,z.jsx)(i,{scope:t,itemMap:a,collectionRef:r,children:n})},`CollectionProvider`);o.displayName=t;let s=e+`CollectionSlot`,c=oT(s),l=y.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=iT(t,a(s,n).collectionRef);return(0,z.jsx)(c,{ref:i,children:r})});l.displayName=s;let u=e+`CollectionItemSlot`,d=`data-radix-collection-item`,f=oT(u),p=y.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=y.useRef(null),s=iT(t,o),c=a(u,n);return y.useEffect(()=>(c.itemMap.set(o,{ref:o,...i}),()=>void c.itemMap.delete(o))),(0,z.jsx)(f,{[d]:``,ref:s,children:r})});p.displayName=u;function m(t){let n=a(e+`CollectionConsumer`,t);return y.useCallback(()=>{let e=n.collectionRef.current;if(!e)return[];let t=Array.from(e.querySelectorAll(`[${d}]`));return Array.from(n.itemMap.values()).sort((e,n)=>t.indexOf(e.ref.current)-t.indexOf(n.ref.current))},[n.collectionRef,n.itemMap])}return _T(m,`useCollection`),[{Provider:o,Slot:l,ItemSlot:p},m,r]}_T(vT,`createCollection`);var yT=new WeakMap,bT=class e extends Map{static{_T(this,`OrderedDict`)}#e;constructor(e){super(e),this.#e=[...super.keys()],yT.set(this,!0)}set(e,t){return yT.get(this)&&(this.has(e)?this.#e[this.#e.indexOf(e)]=e:this.#e.push(e)),super.set(e,t),this}insert(e,t,n){let r=this.has(t),i=this.#e.length,a=CT(e),o=a>=0?a:i+a,s=o<0||o>=i?-1:o;if(s===this.size||r&&s===this.size-1||s===-1)return this.set(t,n),this;let c=this.size+ +!r;a<0&&o++;let l=[...this.#e],u,d=!1;for(let e=o;e<c;e++)if(o===e){let i=l[e];l[e]===t&&(i=l[e+1]),r&&this.delete(t),u=this.get(i),this.set(t,n)}else{!d&&l[e-1]===t&&(d=!0);let n=l[d?e:e-1],r=u;u=this.get(n),this.delete(n),this.set(n,r)}return this}with(t,n,r){let i=new e(this);return i.insert(t,n,r),i}before(e){let t=this.#e.indexOf(e)-1;if(!(t<0))return this.entryAt(t)}setBefore(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r,t,n)}after(e){let t=this.#e.indexOf(e);if(t=t===-1||t===this.size-1?-1:t+1,t!==-1)return this.entryAt(t)}setAfter(e,t,n){let r=this.#e.indexOf(e);return r===-1?this:this.insert(r+1,t,n)}first(){return this.entryAt(0)}last(){return this.entryAt(-1)}clear(){return this.#e=[],super.clear()}delete(e){let t=super.delete(e);return t&&this.#e.splice(this.#e.indexOf(e),1),t}deleteAt(e){let t=this.keyAt(e);return t!==void 0&&this.delete(t)}at(e){let t=xT(this.#e,e);if(t!==void 0)return this.get(t)}entryAt(e){let t=xT(this.#e,e);if(t!==void 0)return[t,this.get(t)]}indexOf(e){return this.#e.indexOf(e)}keyAt(e){return xT(this.#e,e)}from(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.at(r)}keyFrom(e,t){let n=this.indexOf(e);if(n===-1)return;let r=n+t;return r<0&&(r=0),r>=this.size&&(r=this.size-1),this.keyAt(r)}find(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return r;n++}}findIndex(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return n;n++}return-1}filter(t,n){let r=[],i=0;for(let e of this)Reflect.apply(t,n,[e,i,this])&&r.push(e),i++;return new e(r)}map(t,n){let r=[],i=0;for(let e of this)r.push([e[0],Reflect.apply(t,n,[e,i,this])]),i++;return new e(r)}reduce(...e){let[t,n]=e,r=0,i=n??this.at(0);for(let n of this)i=r===0&&e.length===1?n:Reflect.apply(t,this,[i,n,r,this]),r++;return i}reduceRight(...e){let[t,n]=e,r=n??this.at(-1);for(let n=this.size-1;n>=0;n--){let i=this.at(n);r=n===this.size-1&&e.length===1?i:Reflect.apply(t,this,[r,i,n,this])}return r}toSorted(t){let n=[...this.entries()].sort(t);return new e(n)}toReversed(){let t=new e;for(let e=this.size-1;e>=0;e--){let n=this.keyAt(e),r=this.get(n);t.set(n,r)}return t}toSpliced(...t){let n=[...this.entries()];return n.splice(...t),new e(n)}slice(t,n){let r=new e,i=this.size-1;if(t===void 0)return r;t<0&&(t+=this.size),n!==void 0&&n>0&&(i=n-1);for(let e=t;e<=i;e++){let t=this.keyAt(e),n=this.get(t);r.set(t,n)}return r}every(e,t){let n=0;for(let r of this){if(!Reflect.apply(e,t,[r,n,this]))return!1;n++}return!0}some(e,t){let n=0;for(let r of this){if(Reflect.apply(e,t,[r,n,this]))return!0;n++}return!1}};function xT(e,t){if(`at`in Array.prototype)return Array.prototype.at.call(e,t);let n=ST(e,t);return n===-1?void 0:e[n]}_T(xT,`at`);function ST(e,t){let n=e.length,r=CT(t),i=r>=0?r:n+r;return i<0||i>=n?-1:i}_T(ST,`toSafeIndex`);function CT(e){return e!==e||e===0?0:Math.trunc(e)}_T(CT,`toSafeInteger`);function wT(e){let t=e+`CollectionProvider`,[n,r]=$w(t),[i,a]=n(t,{collectionElement:null,collectionRef:{current:null},collectionRefObject:{current:null},itemMap:new bT,setItemMap:_T(()=>void 0,`setItemMap`)}),o=_T(({state:e,...t})=>e?(0,z.jsx)(c,{...t,state:e}):(0,z.jsx)(s,{...t}),`CollectionProvider`);o.displayName=t;let s=_T(e=>{let t=h();return(0,z.jsx)(c,{...e,state:t})},`CollectionInit`);s.displayName=t+`Init`;let c=_T(e=>{let{scope:t,children:n,state:r}=e,a=y.useRef(null),[o,s]=y.useState(null),c=iT(a,s),[l,u]=r;return y.useEffect(()=>{if(!o)return;let e=OT(()=>{});return e.observe(o,{childList:!0,subtree:!0}),()=>{e.disconnect()}},[o]),(0,z.jsx)(i,{scope:t,itemMap:l,setItemMap:u,collectionRef:c,collectionRefObject:a,collectionElement:o,children:n})},`CollectionProviderImpl`);c.displayName=t+`Impl`;let l=e+`CollectionSlot`,u=oT(l),d=y.forwardRef((e,t)=>{let{scope:n,children:r}=e,i=iT(t,a(l,n).collectionRef);return(0,z.jsx)(u,{ref:i,children:r})});d.displayName=l;let f=e+`CollectionItemSlot`,p=oT(f),m=y.forwardRef((e,t)=>{let{scope:n,children:r,...i}=e,o=y.useRef(null),[s,c]=y.useState(null),l=iT(t,o,c),{setItemMap:u}=a(f,n),d=y.useRef(i);TT(d.current,i)||(d.current=i);let m=d.current;return y.useEffect(()=>{let e=m;return u(t=>s?t.has(s)?t.set(s,{...e,element:s}).toSorted(DT):(t.set(s,{...e,element:s}),t.toSorted(DT)):t),()=>{u(e=>!s||!e.has(s)?e:(e.delete(s),new bT(e)))}},[s,m,u]),(0,z.jsx)(p,{"data-radix-collection-item":``,ref:l,children:r})});m.displayName=f;function h(){return y.useState(new bT)}_T(h,`useInitCollection`);function g(t){let{itemMap:n}=a(e+`CollectionConsumer`,t);return n}return _T(g,`useCollection`),[{Provider:o,Slot:d,ItemSlot:m},{createCollectionScope:r,useCollection:g,useInitCollection:h}]}_T(wT,`createCollection`);function TT(e,t){if(e===t)return!0;if(typeof e!=`object`||typeof t!=`object`||e==null||t==null)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||e[r]!==t[r])return!1;return!0}_T(TT,`shallowEqual`);function ET(e,t){return!!(t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_PRECEDING)}_T(ET,`isElementPreceding`);function DT(e,t){return!e[1].element||!t[1].element?0:ET(e[1].element,t[1].element)?-1:1}_T(DT,`sortByDocumentPosition`);function OT(e){return new MutationObserver(t=>{for(let n of t)if(n.type===`childList`){e();return}})}_T(OT,`getChildListObserver`);var kT=Object.defineProperty,AT=(e,t)=>kT(e,`name`,{value:t,configurable:!0}),jT=y.createContext(void 0);function MT(e){let t=y.useContext(jT);return e||t||`ltr`}AT(MT,`useDirection`);var NT=Object.defineProperty,PT=(e,t)=>NT(e,`name`,{value:t,configurable:!0}),FT=[`a`,`button`,`div`,`form`,`h2`,`h3`,`img`,`input`,`label`,`li`,`nav`,`ol`,`p`,`select`,`span`,`svg`,`ul`].reduce((e,t)=>{let n=oT(`Primitive.${t}`),r=y.forwardRef((e,r)=>{let{asChild:i,...a}=e,o=i?n:t;return typeof window<`u`&&(window[Symbol.for(`radix-ui`)]=!0),(0,z.jsx)(o,{...a,ref:r})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function IT(e,t){e&&xr.flushSync(()=>e.dispatchEvent(t))}PT(IT,`dispatchDiscreteCustomEvent`);var LT=Object.defineProperty,RT=(e,t)=>LT(e,`name`,{value:t,configurable:!0});function zT(e){let t=y.useRef(e);return y.useEffect(()=>{t.current=e}),y.useMemo(()=>((...e)=>t.current?.(...e)),[])}RT(zT,`useCallbackRef`);var BT=Object.defineProperty,VT=(e,t)=>BT(e,`name`,{value:t,configurable:!0}),HT=`dismissableLayer.update`,lre=`dismissableLayer.pointerDownOutside`,ure=`dismissableLayer.focusOutside`,UT,WT=y.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),dre=y.forwardRef(VT(function(e,t){let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:o,onInteractOutside:s,onDismiss:c,...l}=e,u=y.useContext(WT),[d,f]=y.useState(null),p=d?.ownerDocument??globalThis?.document,[,m]=y.useState({}),h=iT(t,f),g=Array.from(u.layers),[_]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),v=_?g.indexOf(_):-1,b=d?g.indexOf(d):-1,x=u.layersWithOutsidePointerEventsDisabled.size>0,S=b>=v,C=y.useRef(!1),w=GT(e=>{a?.(e),s?.(e),e.defaultPrevented||c?.()},{ownerDocument:p,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:C,dismissableSurfaces:u.dismissableSurfaces,shouldHandlePointerDownOutside:y.useCallback(e=>{if(!(e instanceof Node))return!1;let t=[...u.branches].some(t=>t.contains(e));return S&&!t},[u.branches,S])}),T=KT(e=>{if(r&&C.current)return;let t=e.target;[...u.branches].some(e=>e.contains(t))||(o?.(e),s?.(e),e.defaultPrevented||c?.())},p),E=d?b===g.length-1:!1,D=zT(e=>{e.key===`Escape`&&(i?.(e),!e.defaultPrevented&&c&&(e.preventDefault(),c()))});return y.useEffect(()=>{if(E)return p.addEventListener(`keydown`,D,{capture:!0}),()=>p.removeEventListener(`keydown`,D,{capture:!0})},[p,E,D]),y.useEffect(()=>{if(d)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(UT=p.body.style.pointerEvents,p.body.style.pointerEvents=`none`),u.layersWithOutsidePointerEventsDisabled.add(d)),u.layers.add(d),qT(),()=>{n&&(u.layersWithOutsidePointerEventsDisabled.delete(d),u.layersWithOutsidePointerEventsDisabled.size===0&&(p.body.style.pointerEvents=UT))}},[d,p,n,u]),y.useEffect(()=>()=>{d&&(u.layers.delete(d),u.layersWithOutsidePointerEventsDisabled.delete(d),qT())},[d,u]),y.useEffect(()=>{let e=VT(()=>m({}),`handleUpdate`);return document.addEventListener(HT,e),()=>document.removeEventListener(HT,e)},[]),(0,z.jsx)(FT.div,{...l,ref:h,style:{pointerEvents:x?S?`auto`:`none`:void 0,...e.style},onFocusCapture:qw(e.onFocusCapture,T.onFocusCapture),onBlurCapture:qw(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:qw(e.onPointerDownCapture,w.onPointerDownCapture)})},`DismissableLayer`));function fre(){let e=y.useContext(WT),[t,n]=y.useState(null);return y.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}VT(fre,`useDismissableLayerSurface`);var pre=VT(()=>!0,`IS_TRUE`);function GT(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a,shouldHandlePointerDownOutside:o=pre}=t,s=zT(e),c=y.useRef(!1),l=y.useRef(!1),u=y.useRef(new Map),d=y.useRef(()=>{});return y.useEffect(()=>{function e(){l.current=!1,i.current=!1,u.current.clear()}VT(e,`resetOutsideInteraction`);function t(){return Array.from(u.current.values()).some(Boolean)}VT(t,`isOutsideInteractionIntercepted`);function f(e){if(!l.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||u.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{l.current&&d.current()},0)}VT(f,`handleInteractionCapture`);function p(e){l.current&&u.current.set(e.type,!1)}VT(p,`handleInteractionBubble`);let m=VT(a=>{if(a.target&&!c.current){let f=function(){n.removeEventListener(`click`,d.current);let r=t();e(),r||JT(lre,s,p,{discrete:!0})};if(VT(f,`handleAndDispatchPointerDownOutsideEvent`),!o(a.target)){n.removeEventListener(`click`,d.current),e(),c.current=!1;return}let p={originalEvent:a};l.current=!0,i.current=r&&a.button===0,u.current.clear(),!r||a.button!==0?f():(n.removeEventListener(`click`,d.current),d.current=f,n.addEventListener(`click`,d.current,{once:!0}))}else n.removeEventListener(`click`,d.current),e();c.current=!1},`handlePointerDown`),h=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of h)n.addEventListener(e,f,!0),n.addEventListener(e,p);let g=window.setTimeout(()=>{n.addEventListener(`pointerdown`,m)},0);return()=>{window.clearTimeout(g),n.removeEventListener(`pointerdown`,m),n.removeEventListener(`click`,d.current);for(let e of h)n.removeEventListener(e,f,!0),n.removeEventListener(e,p)}},[n,s,r,i,a,o]),{onPointerDownCapture:VT(()=>c.current=!0,`onPointerDownCapture`)}}VT(GT,`usePointerDownOutside`);function KT(e,t=globalThis?.document){let n=zT(e),r=y.useRef(!1);return y.useEffect(()=>{let e=VT(e=>{e.target&&!r.current&&JT(ure,n,{originalEvent:e},{discrete:!1})},`handleFocus`);return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:VT(()=>r.current=!0,`onFocusCapture`),onBlurCapture:VT(()=>r.current=!1,`onBlurCapture`)}}VT(KT,`useFocusOutside`);function qT(){let e=new CustomEvent(HT);document.dispatchEvent(e)}VT(qT,`dispatchUpdate`);function JT(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?IT(i,a):i.dispatchEvent(a)}VT(JT,`handleAndDispatchCustomEvent`);var mre=Object.defineProperty,YT=(e,t)=>mre(e,`name`,{value:t,configurable:!0}),XT=0,ZT=null;function hre(e){return QT(),e.children}YT(hre,`FocusGuards`);function QT(){y.useEffect(()=>{ZT||={start:$T(),end:$T()};let{start:e,end:t}=ZT;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),XT++,()=>{XT===1&&(ZT?.start.remove(),ZT?.end.remove(),ZT=null),XT=Math.max(0,XT-1)}},[])}YT(QT,`useFocusGuards`);function $T(){let 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}YT($T,`createFocusGuard`);var gre=Object.defineProperty,eE=(e,t)=>gre(e,`name`,{value:t,configurable:!0}),tE=`focusScope.autoFocusOnMount`,nE=`focusScope.autoFocusOnUnmount`,rE={bubbles:!1,cancelable:!0},_re=y.forwardRef(eE(function(e,t){let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[s,c]=y.useState(null),l=zT(i),u=zT(a),d=y.useRef(null),f=iT(t,c),p=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let e=function(e){if(p.paused||!s)return;let t=e.target;s.contains(t)?d.current=t:uE(d.current,{select:!0})},t=function(e){if(p.paused||!s)return;let t=e.relatedTarget;t!==null&&(s.contains(t)||uE(d.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&uE(s)};eE(e,`handleFocusIn`),eE(t,`handleFocusOut`),eE(n,`handleMutations`),document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,s,p.paused]),y.useEffect(()=>{if(s){dE.add(p);let e=document.activeElement;if(!s.contains(e)){let t=new CustomEvent(tE,rE);s.addEventListener(tE,l),s.dispatchEvent(t),t.defaultPrevented||(iE(mE(oE(s)),{select:!0}),document.activeElement===e&&uE(s))}return()=>{s.removeEventListener(tE,l),setTimeout(()=>{let t=new CustomEvent(nE,rE);s.addEventListener(nE,u),s.dispatchEvent(t),t.defaultPrevented||uE(e??document.body,{select:!0}),s.removeEventListener(nE,u),dE.remove(p)},0)}}},[s,l,u,p]);let m=y.useCallback(e=>{if(!n&&!r||p.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=aE(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&uE(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&uE(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,p.paused]);return(0,z.jsx)(FT.div,{tabIndex:-1,...o,ref:f,onKeyDown:m})},`FocusScope`));function iE(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(uE(r,{select:t}),document.activeElement!==n)return}eE(iE,`focusFirst`);function aE(e){let t=oE(e);return[sE(t,e),sE(t.reverse(),e)]}eE(aE,`getTabbableEdges`);function oE(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:eE(e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP},`acceptNode`)});for(;n.nextNode();)t.push(n.currentNode);return t}eE(oE,`getTabbableCandidates`);function sE(e,t){let n=typeof t.checkVisibility==`function`&&t.checkVisibility({checkVisibilityCSS:!0});for(let r of e)if(!(n?!r.checkVisibility({checkVisibilityCSS:!0}):cE(r,{upTo:t})))return r}eE(sE,`findVisible`);function cE(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}eE(cE,`isHidden`);function lE(e){return e instanceof HTMLInputElement&&`select`in e}eE(lE,`isSelectableInput`);function uE(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&lE(e)&&t&&e.select()}}eE(uE,`focus`);var dE=fE();function fE(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=pE(e,t),e.unshift(t)},remove(t){e=pE(e,t),e[0]?.resume()}}}eE(fE,`createFocusScopesStack`);function pE(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}eE(pE,`arrayRemove`);function mE(e){return e.filter(e=>e.tagName!==`A`)}eE(mE,`removeLinks`);var hE=globalThis?.document?y.useLayoutEffect:()=>{},vre=Object.defineProperty,yre=(e,t)=>vre(e,`name`,{value:t,configurable:!0}),bre=y.useId||(()=>void 0),xre=0;function gE(e){let[t,n]=y.useState(bre());return hE(()=>{e||n(e=>e??String(xre++))},[e]),e||(t?`radix-${t}`:``)}yre(gE,`useId`);var Sre=[`top`,`right`,`bottom`,`left`],_E=Math.min,vE=Math.max,yE=Math.round,bE=Math.floor,xE=e=>({x:e,y:e}),SE={left:`right`,right:`left`,bottom:`top`,top:`bottom`},CE={start:`end`,end:`start`};function wE(e,t,n){return vE(e,_E(t,n))}function TE(e,t){return typeof e==`function`?e(t):e}function EE(e){return e.split(`-`)[0]}function DE(e){return e.split(`-`)[1]}function OE(e){return e===`x`?`y`:`x`}function kE(e){return e===`y`?`height`:`width`}function AE(e){return[`top`,`bottom`].includes(EE(e))?`y`:`x`}function jE(e){return OE(AE(e))}function ME(e,t,n){n===void 0&&(n=!1);let r=DE(e),i=jE(e),a=kE(i),o=i===`x`?r===(n?`end`:`start`)?`right`:`left`:r===`start`?`bottom`:`top`;return t.reference[a]>t.floating[a]&&(o=LE(o)),[o,LE(o)]}function NE(e){let t=LE(e);return[PE(e),t,PE(t)]}function PE(e){return e.replace(/start|end/g,e=>CE[e])}function FE(e,t,n){let r=[`left`,`right`],i=[`right`,`left`],a=[`top`,`bottom`],o=[`bottom`,`top`];switch(e){case`top`:case`bottom`:return n?t?i:r:t?r:i;case`left`:case`right`:return t?a:o;default:return[]}}function IE(e,t,n,r){let i=DE(e),a=FE(EE(e),n===`start`,r);return i&&(a=a.map(e=>e+`-`+i),t&&(a=a.concat(a.map(PE)))),a}function LE(e){return e.replace(/left|right|bottom|top/g,e=>SE[e])}function RE(e){return{top:0,right:0,bottom:0,left:0,...e}}function zE(e){return typeof e==`number`?{top:e,right:e,bottom:e,left:e}:RE(e)}function BE(e){let{x:t,y:n,width:r,height:i}=e;return{width:r,height:i,top:n,left:t,right:t+r,bottom:n+i,x:t,y:n}}function VE(e,t,n){let{reference:r,floating:i}=e,a=AE(t),o=jE(t),s=kE(o),c=EE(t),l=a===`y`,u=r.x+r.width/2-i.width/2,d=r.y+r.height/2-i.height/2,f=r[s]/2-i[s]/2,p;switch(c){case`top`:p={x:u,y:r.y-i.height};break;case`bottom`:p={x:u,y:r.y+r.height};break;case`right`:p={x:r.x+r.width,y:d};break;case`left`:p={x:r.x-i.width,y:d};break;default:p={x:r.x,y:r.y}}switch(DE(t)){case`start`:p[o]-=f*(n&&l?-1:1);break;case`end`:p[o]+=f*(n&&l?-1:1)}return p}var HE=async(e,t,n)=>{let{placement:r=`bottom`,strategy:i=`absolute`,middleware:a=[],platform:o}=n,s=a.filter(Boolean),c=await(o.isRTL==null?void 0:o.isRTL(t)),l=await o.getElementRects({reference:e,floating:t,strategy:i}),{x:u,y:d}=VE(l,r,c),f=r,p={},m=0;for(let n=0;n<s.length;n++){let{name:a,fn:h}=s[n],{x:g,y:_,data:v,reset:y}=await h({x:u,y:d,initialPlacement:r,placement:f,strategy:i,middlewareData:p,rects:l,platform:o,elements:{reference:e,floating:t}});u=g??u,d=_??d,p={...p,[a]:{...p[a],...v}},y&&m<=50&&(m++,typeof y==`object`&&(y.placement&&(f=y.placement),y.rects&&(l=y.rects===!0?await o.getElementRects({reference:e,floating:t,strategy:i}):y.rects),{x:u,y:d}=VE(l,f,c)),n=-1)}return{x:u,y:d,placement:f,strategy:i,middlewareData:p}};async function UE(e,t){t===void 0&&(t={});let{x:n,y:r,platform:i,rects:a,elements:o,strategy:s}=e,{boundary:c=`clippingAncestors`,rootBoundary:l=`viewport`,elementContext:u=`floating`,altBoundary:d=!1,padding:f=0}=TE(t,e),p=zE(f),m=o[d?u===`floating`?`reference`:`floating`:u],h=BE(await i.getClippingRect({element:await(i.isElement==null?void 0:i.isElement(m))??!0?m:m.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(o.floating)),boundary:c,rootBoundary:l,strategy:s})),g=u===`floating`?{x:n,y:r,width:a.floating.width,height:a.floating.height}:a.reference,_=await(i.getOffsetParent==null?void 0:i.getOffsetParent(o.floating)),v=await(i.isElement==null?void 0:i.isElement(_))&&await(i.getScale==null?void 0:i.getScale(_))||{x:1,y:1},y=BE(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:g,offsetParent:_,strategy:s}):g);return{top:(h.top-y.top+p.top)/v.y,bottom:(y.bottom-h.bottom+p.bottom)/v.y,left:(h.left-y.left+p.left)/v.x,right:(y.right-h.right+p.right)/v.x}}var WE=e=>({name:`arrow`,options:e,async fn(t){let{x:n,y:r,placement:i,rects:a,platform:o,elements:s,middlewareData:c}=t,{element:l,padding:u=0}=TE(e,t)||{};if(l==null)return{};let d=zE(u),f={x:n,y:r},p=jE(i),m=kE(p),h=await o.getDimensions(l),g=p===`y`,_=g?`top`:`left`,v=g?`bottom`:`right`,y=g?`clientHeight`:`clientWidth`,b=a.reference[m]+a.reference[p]-f[p]-a.floating[m],x=f[p]-a.reference[p],S=await(o.getOffsetParent==null?void 0:o.getOffsetParent(l)),C=S?S[y]:0;C&&await(o.isElement==null?void 0:o.isElement(S))||(C=s.floating[y]||a.floating[m]);let w=b/2-x/2,T=C/2-h[m]/2-1,E=_E(d[_],T),D=_E(d[v],T),O=E,ee=C-h[m]-D,k=C/2-h[m]/2+w,te=wE(O,k,ee),A=!c.arrow&&DE(i)!=null&&k!==te&&a.reference[m]/2-(k<O?E:D)-h[m]/2<0,j=A?k<O?k-O:k-ee:0;return{[p]:f[p]+j,data:{[p]:te,centerOffset:k-te-j,...A&&{alignmentOffset:j}},reset:A}}}),GE=function(e){return e===void 0&&(e={}),{name:`flip`,options:e,async fn(t){var n;let{placement:r,middlewareData:i,rects:a,initialPlacement:o,platform:s,elements:c}=t,{mainAxis:l=!0,crossAxis:u=!0,fallbackPlacements:d,fallbackStrategy:f=`bestFit`,fallbackAxisSideDirection:p=`none`,flipAlignment:m=!0,...h}=TE(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};let g=EE(r),_=AE(o),v=EE(o)===o,y=await(s.isRTL==null?void 0:s.isRTL(c.floating)),b=d||(v||!m?[LE(o)]:NE(o)),x=p!==`none`;!d&&x&&b.push(...IE(o,m,p,y));let S=[o,...b],C=await UE(t,h),w=[],T=i.flip?.overflows||[];if(l&&w.push(C[g]),u){let e=ME(r,a,y);w.push(C[e[0]],C[e[1]])}if(T=[...T,{placement:r,overflows:w}],!w.every(e=>e<=0)){let e=(i.flip?.index||0)+1,t=S[e];if(t)return{data:{index:e,overflows:T},reset:{placement:t}};let n=T.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0]?.placement;if(!n)switch(f){case`bestFit`:{let e=T.filter(e=>{if(x){let t=AE(e.placement);return t===_||t===`y`}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0]?.[0];e&&(n=e);break}case`initialPlacement`:n=o}if(r!==n)return{reset:{placement:n}}}return{}}}};function KE(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function qE(e){return Sre.some(t=>e[t]>=0)}var JE=function(e){return e===void 0&&(e={}),{name:`hide`,options:e,async fn(t){let{rects:n}=t,{strategy:r=`referenceHidden`,...i}=TE(e,t);switch(r){case`referenceHidden`:{let e=KE(await UE(t,{...i,elementContext:`reference`}),n.reference);return{data:{referenceHiddenOffsets:e,referenceHidden:qE(e)}}}case`escaped`:{let e=KE(await UE(t,{...i,altBoundary:!0}),n.floating);return{data:{escapedOffsets:e,escaped:qE(e)}}}default:return{}}}}};async function YE(e,t){let{placement:n,platform:r,elements:i}=e,a=await(r.isRTL==null?void 0:r.isRTL(i.floating)),o=EE(n),s=DE(n),c=AE(n)===`y`,l=[`left`,`top`].includes(o)?-1:1,u=a&&c?-1:1,d=TE(t,e),{mainAxis:f,crossAxis:p,alignmentAxis:m}=typeof d==`number`?{mainAxis:d,crossAxis:0,alignmentAxis:null}:{mainAxis:d.mainAxis||0,crossAxis:d.crossAxis||0,alignmentAxis:d.alignmentAxis};return s&&typeof m==`number`&&(p=s===`end`?m*-1:m),c?{x:p*u,y:f*l}:{x:f*l,y:p*u}}var XE=function(e){return e===void 0&&(e=0),{name:`offset`,options:e,async fn(t){var n;let{x:r,y:i,placement:a,middlewareData:o}=t,s=await YE(t,e);return a===o.offset?.placement&&(n=o.arrow)!=null&&n.alignmentOffset?{}:{x:r+s.x,y:i+s.y,data:{...s,placement:a}}}}},ZE=function(e){return e===void 0&&(e={}),{name:`shift`,options:e,async fn(t){let{x:n,y:r,placement:i}=t,{mainAxis:a=!0,crossAxis:o=!1,limiter:s={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...c}=TE(e,t),l={x:n,y:r},u=await UE(t,c),d=AE(EE(i)),f=OE(d),p=l[f],m=l[d];if(a){let e=f===`y`?`top`:`left`,t=f===`y`?`bottom`:`right`,n=p+u[e],r=p-u[t];p=wE(n,p,r)}if(o){let e=d===`y`?`top`:`left`,t=d===`y`?`bottom`:`right`,n=m+u[e],r=m-u[t];m=wE(n,m,r)}let h=s.fn({...t,[f]:p,[d]:m});return{...h,data:{x:h.x-n,y:h.y-r,enabled:{[f]:a,[d]:o}}}}}},QE=function(e){return e===void 0&&(e={}),{options:e,fn(t){let{x:n,y:r,placement:i,rects:a,middlewareData:o}=t,{offset:s=0,mainAxis:c=!0,crossAxis:l=!0}=TE(e,t),u={x:n,y:r},d=AE(i),f=OE(d),p=u[f],m=u[d],h=TE(s,t),g=typeof h==`number`?{mainAxis:h,crossAxis:0}:{mainAxis:0,crossAxis:0,...h};if(c){let e=f===`y`?`height`:`width`,t=a.reference[f]-a.floating[e]+g.mainAxis,n=a.reference[f]+a.reference[e]-g.mainAxis;p<t?p=t:p>n&&(p=n)}if(l){let e=f===`y`?`width`:`height`,t=[`top`,`left`].includes(EE(i)),n=a.reference[d]-a.floating[e]+(t&&o.offset?.[d]||0)+(t?0:g.crossAxis),r=a.reference[d]+a.reference[e]+(t?0:o.offset?.[d]||0)-(t?g.crossAxis:0);m<n?m=n:m>r&&(m=r)}return{[f]:p,[d]:m}}}},$E=function(e){return e===void 0&&(e={}),{name:`size`,options:e,async fn(t){var n,r;let{placement:i,rects:a,platform:o,elements:s}=t,{apply:c=()=>{},...l}=TE(e,t),u=await UE(t,l),d=EE(i),f=DE(i),p=AE(i)===`y`,{width:m,height:h}=a.floating,g,_;d===`top`||d===`bottom`?(g=d,_=f===(await(o.isRTL==null?void 0:o.isRTL(s.floating))?`start`:`end`)?`left`:`right`):(_=d,g=f===`end`?`top`:`bottom`);let v=h-u.top-u.bottom,y=m-u.left-u.right,b=_E(h-u[g],v),x=_E(m-u[_],y),S=!t.middlewareData.shift,C=b,w=x;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(w=y),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(C=v),S&&!f){let e=vE(u.left,0),t=vE(u.right,0),n=vE(u.top,0),r=vE(u.bottom,0);p?w=m-2*(e!==0||t!==0?e+t:vE(u.left,u.right)):C=h-2*(n!==0||r!==0?n+r:vE(u.top,u.bottom))}await c({...t,availableWidth:w,availableHeight:C});let T=await o.getDimensions(s.floating);return m!==T.width||h!==T.height?{reset:{rects:!0}}:{}}}};function eD(){return typeof window<`u`}function tD(e){return iD(e)?(e.nodeName||``).toLowerCase():`#document`}function nD(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function rD(e){return((iD(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function iD(e){return eD()?e instanceof Node||e instanceof nD(e).Node:!1}function aD(e){return eD()?e instanceof Element||e instanceof nD(e).Element:!1}function oD(e){return eD()?e instanceof HTMLElement||e instanceof nD(e).HTMLElement:!1}function sD(e){return!eD()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof nD(e).ShadowRoot}function cD(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=hD(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&![`inline`,`contents`].includes(i)}function lD(e){return[`table`,`td`,`th`].includes(tD(e))}function uD(e){return[`:popover-open`,`:modal`].some(t=>{try{return e.matches(t)}catch{return!1}})}function dD(e){let t=pD(),n=aD(e)?hD(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(e=>(n.willChange||``).includes(e))||[`paint`,`layout`,`strict`,`content`].some(e=>(n.contain||``).includes(e))}function fD(e){let t=_D(e);for(;oD(t)&&!mD(t);){if(dD(t))return t;if(uD(t))return null;t=_D(t)}return null}function pD(){return typeof CSS>`u`||!CSS.supports?!1:CSS.supports(`-webkit-backdrop-filter`,`none`)}function mD(e){return[`html`,`body`,`#document`].includes(tD(e))}function hD(e){return nD(e).getComputedStyle(e)}function gD(e){return aD(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function _D(e){if(tD(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||sD(e)&&e.host||rD(e);return sD(t)?t.host:t}function vD(e){let t=_D(e);return mD(t)?e.ownerDocument?e.ownerDocument.body:e.body:oD(t)&&cD(t)?t:vD(t)}function yD(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=vD(e),i=r===e.ownerDocument?.body,a=nD(r);if(i){let e=bD(a);return t.concat(a,a.visualViewport||[],cD(r)?r:[],e&&n?yD(e):[])}return t.concat(r,yD(r,[],n))}function bD(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function xD(e){let t=hD(e),n=parseFloat(t.width)||0,r=parseFloat(t.height)||0,i=oD(e),a=i?e.offsetWidth:n,o=i?e.offsetHeight:r,s=yE(n)!==a||yE(r)!==o;return s&&(n=a,r=o),{width:n,height:r,$:s}}function SD(e){return aD(e)?e:e.contextElement}function CD(e){let t=SD(e);if(!oD(t))return xE(1);let n=t.getBoundingClientRect(),{width:r,height:i,$:a}=xD(t),o=(a?yE(n.width):n.width)/r,s=(a?yE(n.height):n.height)/i;return o&&Number.isFinite(o)||(o=1),s&&Number.isFinite(s)||(s=1),{x:o,y:s}}var wD=xE(0);function TD(e){let t=nD(e);return!pD()||!t.visualViewport?wD:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function ED(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==nD(e)?!1:t}function DD(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);let i=e.getBoundingClientRect(),a=SD(e),o=xE(1);t&&(r?aD(r)&&(o=CD(r)):o=CD(e));let s=ED(a,n,r)?TD(a):xE(0),c=(i.left+s.x)/o.x,l=(i.top+s.y)/o.y,u=i.width/o.x,d=i.height/o.y;if(a){let e=nD(a),t=r&&aD(r)?nD(r):r,n=e,i=bD(n);for(;i&&r&&t!==n;){let e=CD(i),t=i.getBoundingClientRect(),r=hD(i),a=t.left+(i.clientLeft+parseFloat(r.paddingLeft))*e.x,o=t.top+(i.clientTop+parseFloat(r.paddingTop))*e.y;c*=e.x,l*=e.y,u*=e.x,d*=e.y,c+=a,l+=o,n=nD(i),i=bD(n)}}return BE({width:u,height:d,x:c,y:l})}function OD(e,t){let n=gD(e).scrollLeft;return t?t.left+n:DD(rD(e)).left+n}function kD(e,t,n){n===void 0&&(n=!1);let r=e.getBoundingClientRect();return{x:r.left+t.scrollLeft-(n?0:OD(e,r)),y:r.top+t.scrollTop}}function AD(e){let{elements:t,rect:n,offsetParent:r,strategy:i}=e,a=i===`fixed`,o=rD(r),s=t?uD(t.floating):!1;if(r===o||s&&a)return n;let c={scrollLeft:0,scrollTop:0},l=xE(1),u=xE(0),d=oD(r);if((d||!d&&!a)&&((tD(r)!==`body`||cD(o))&&(c=gD(r)),oD(r))){let e=DD(r);l=CD(r),u.x=e.x+r.clientLeft,u.y=e.y+r.clientTop}let f=o&&!d&&!a?kD(o,c,!0):xE(0);return{width:n.width*l.x,height:n.height*l.y,x:n.x*l.x-c.scrollLeft*l.x+u.x+f.x,y:n.y*l.y-c.scrollTop*l.y+u.y+f.y}}function jD(e){return Array.from(e.getClientRects())}function MD(e){let t=rD(e),n=gD(e),r=e.ownerDocument.body,i=vE(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),a=vE(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight),o=-n.scrollLeft+OD(e),s=-n.scrollTop;return hD(r).direction===`rtl`&&(o+=vE(t.clientWidth,r.clientWidth)-i),{width:i,height:a,x:o,y:s}}function ND(e,t){let n=nD(e),r=rD(e),i=n.visualViewport,a=r.clientWidth,o=r.clientHeight,s=0,c=0;if(i){a=i.width,o=i.height;let e=pD();(!e||e&&t===`fixed`)&&(s=i.offsetLeft,c=i.offsetTop)}return{width:a,height:o,x:s,y:c}}function PD(e,t){let n=DD(e,!0,t===`fixed`),r=n.top+e.clientTop,i=n.left+e.clientLeft,a=oD(e)?CD(e):xE(1);return{width:e.clientWidth*a.x,height:e.clientHeight*a.y,x:i*a.x,y:r*a.y}}function FD(e,t,n){let r;if(t===`viewport`)r=ND(e,n);else if(t===`document`)r=MD(rD(e));else if(aD(t))r=PD(t,n);else{let n=TD(e);r={x:t.x-n.x,y:t.y-n.y,width:t.width,height:t.height}}return BE(r)}function ID(e,t){let n=_D(e);return n===t||!aD(n)||mD(n)?!1:hD(n).position===`fixed`||ID(n,t)}function LD(e,t){let n=t.get(e);if(n)return n;let r=yD(e,[],!1).filter(e=>aD(e)&&tD(e)!==`body`),i=null,a=hD(e).position===`fixed`,o=a?_D(e):e;for(;aD(o)&&!mD(o);){let t=hD(o),n=dD(o);!n&&t.position===`fixed`&&(i=null),(a?!n&&!i:!n&&t.position===`static`&&i&&[`absolute`,`fixed`].includes(i.position)||cD(o)&&!n&&ID(e,o))?r=r.filter(e=>e!==o):i=t,o=_D(o)}return t.set(e,r),r}function RD(e){let{element:t,boundary:n,rootBoundary:r,strategy:i}=e,a=[...n===`clippingAncestors`?uD(t)?[]:LD(t,this._c):[].concat(n),r],o=a[0],s=a.reduce((e,n)=>{let r=FD(t,n,i);return e.top=vE(r.top,e.top),e.right=_E(r.right,e.right),e.bottom=_E(r.bottom,e.bottom),e.left=vE(r.left,e.left),e},FD(t,o,i));return{width:s.right-s.left,height:s.bottom-s.top,x:s.left,y:s.top}}function zD(e){let{width:t,height:n}=xD(e);return{width:t,height:n}}function BD(e,t,n){let r=oD(t),i=rD(t),a=n===`fixed`,o=DD(e,!0,a,t),s={scrollLeft:0,scrollTop:0},c=xE(0);if(r||!r&&!a){if((tD(t)!==`body`||cD(i))&&(s=gD(t)),r){let e=DD(t,!0,a,t);c.x=e.x+t.clientLeft,c.y=e.y+t.clientTop}else i&&(c.x=OD(i))}let l=i&&!r&&!a?kD(i,s):xE(0);return{x:o.left+s.scrollLeft-c.x-l.x,y:o.top+s.scrollTop-c.y-l.y,width:o.width,height:o.height}}function VD(e){return hD(e).position===`static`}function HD(e,t){if(!oD(e)||hD(e).position===`fixed`)return null;if(t)return t(e);let n=e.offsetParent;return rD(e)===n&&(n=n.ownerDocument.body),n}function UD(e,t){let n=nD(e);if(uD(e))return n;if(!oD(e)){let t=_D(e);for(;t&&!mD(t);){if(aD(t)&&!VD(t))return t;t=_D(t)}return n}let r=HD(e,t);for(;r&&lD(r)&&VD(r);)r=HD(r,t);return r&&mD(r)&&VD(r)&&!dD(r)?n:r||fD(e)||n}var WD=async function(e){let t=this.getOffsetParent||UD,n=this.getDimensions,r=await n(e.floating);return{reference:BD(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function GD(e){return hD(e).direction===`rtl`}var KD={convertOffsetParentRelativeRectToViewportRelativeRect:AD,getDocumentElement:rD,getClippingRect:RD,getOffsetParent:UD,getElementRects:WD,getClientRects:jD,getDimensions:zD,getScale:CD,isElement:aD,isRTL:GD};function qD(e,t){let n=null,r,i=rD(e);function a(){var e;clearTimeout(r),(e=n)==null||e.disconnect(),n=null}function o(s,c){s===void 0&&(s=!1),c===void 0&&(c=1),a();let{left:l,top:u,width:d,height:f}=e.getBoundingClientRect();if(s||t(),!d||!f)return;let p=bE(u),m=bE(i.clientWidth-(l+d)),h=bE(i.clientHeight-(u+f)),g=bE(l),_={rootMargin:-p+`px `+-m+`px `+-h+`px `+-g+`px`,threshold:vE(0,_E(1,c))||1},v=!0;function y(e){let t=e[0].intersectionRatio;if(t!==c){if(!v)return o();t?o(!1,t):r=setTimeout(()=>{o(!1,1e-7)},1e3)}v=!1}try{n=new IntersectionObserver(y,{..._,root:i.ownerDocument})}catch{n=new IntersectionObserver(y,_)}n.observe(e)}return o(!0),a}function JD(e,t,n,r){r===void 0&&(r={});let{ancestorScroll:i=!0,ancestorResize:a=!0,elementResize:o=typeof ResizeObserver==`function`,layoutShift:s=typeof IntersectionObserver==`function`,animationFrame:c=!1}=r,l=SD(e),u=i||a?[...l?yD(l):[],...yD(t)]:[];u.forEach(e=>{i&&e.addEventListener(`scroll`,n,{passive:!0}),a&&e.addEventListener(`resize`,n)});let d=l&&s?qD(l,n):null,f=-1,p=null;o&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===l&&p&&(p.unobserve(t),cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var e;(e=p)==null||e.observe(t)})),n()}),l&&!c&&p.observe(l),p.observe(t));let m,h=c?DD(e):null;c&&g();function g(){let t=DD(e);h&&(t.x!==h.x||t.y!==h.y||t.width!==h.width||t.height!==h.height)&&n(),h=t,m=requestAnimationFrame(g)}return n(),()=>{var e;u.forEach(e=>{i&&e.removeEventListener(`scroll`,n),a&&e.removeEventListener(`resize`,n)}),d?.(),(e=p)==null||e.disconnect(),p=null,c&&cancelAnimationFrame(m)}}var YD=XE,XD=ZE,ZD=GE,QD=$E,$D=JE,eO=WE,tO=QE,nO=(e,t,n)=>{let r=new Map,i={platform:KD,...n},a={...i.platform,_c:r};return HE(e,t,{...i,platform:a})},rO=typeof document<`u`?y.useLayoutEffect:y.useEffect;function iO(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,r,i;if(e&&t&&typeof e==`object`){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!iO(e[r],t[r]))return!1;return!0}if(i=Object.keys(e),n=i.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,i[r]))return!1;for(r=n;r--!==0;){let n=i[r];if(!(n===`_owner`&&e.$$typeof)&&!iO(e[n],t[n]))return!1}return!0}return e!==e&&t!==t}function aO(e){return typeof window>`u`?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function oO(e,t){let n=aO(e);return Math.round(t*n)/n}function sO(e){let t=y.useRef(e);return rO(()=>{t.current=e}),t}function cO(e){e===void 0&&(e={});let{placement:t=`bottom`,strategy:n=`absolute`,middleware:r=[],platform:i,elements:{reference:a,floating:o}={},transform:s=!0,whileElementsMounted:c,open:l}=e,[u,d]=y.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[f,p]=y.useState(r);iO(f,r)||p(r);let[m,h]=y.useState(null),[g,_]=y.useState(null),v=y.useCallback(e=>{e!==C.current&&(C.current=e,h(e))},[]),b=y.useCallback(e=>{e!==w.current&&(w.current=e,_(e))},[]),x=a||m,S=o||g,C=y.useRef(null),w=y.useRef(null),T=y.useRef(u),E=c!=null,D=sO(c),O=sO(i),ee=sO(l),k=y.useCallback(()=>{if(!C.current||!w.current)return;let e={placement:t,strategy:n,middleware:f};O.current&&(e.platform=O.current),nO(C.current,w.current,e).then(e=>{let t={...e,isPositioned:ee.current!==!1};te.current&&!iO(T.current,t)&&(T.current=t,xr.flushSync(()=>{d(t)}))})},[f,t,n,O,ee]);rO(()=>{l===!1&&T.current.isPositioned&&(T.current.isPositioned=!1,d(e=>({...e,isPositioned:!1})))},[l]);let te=y.useRef(!1);rO(()=>(te.current=!0,()=>{te.current=!1}),[]),rO(()=>{if(x&&(C.current=x),S&&(w.current=S),x&&S){if(D.current)return D.current(x,S,k);k()}},[x,S,k,D,E]);let A=y.useMemo(()=>({reference:C,floating:w,setReference:v,setFloating:b}),[v,b]),j=y.useMemo(()=>({reference:x,floating:S}),[x,S]),M=y.useMemo(()=>{let e={position:n,left:0,top:0};if(!j.floating)return e;let t=oO(j.floating,u.x),r=oO(j.floating,u.y);return s?{...e,transform:`translate(`+t+`px, `+r+`px)`,...aO(j.floating)>=1.5&&{willChange:`transform`}}:{position:n,left:t,top:r}},[n,s,j.floating,u.x,u.y]);return y.useMemo(()=>({...u,update:k,refs:A,elements:j,floatingStyles:M}),[u,k,A,j,M])}var lO=e=>{function t(e){return{}.hasOwnProperty.call(e,`current`)}return{name:`arrow`,options:e,fn(n){let{element:r,padding:i}=typeof e==`function`?e(n):e;return r&&t(r)?r.current==null?{}:eO({element:r.current,padding:i}).fn(n):r?eO({element:r,padding:i}).fn(n):{}}}},uO=(e,t)=>({...YD(e),options:[e,t]}),dO=(e,t)=>({...XD(e),options:[e,t]}),fO=(e,t)=>({...tO(e),options:[e,t]}),pO=(e,t)=>({...ZD(e),options:[e,t]}),mO=(e,t)=>({...QD(e),options:[e,t]}),hO=(e,t)=>({...$D(e),options:[e,t]}),gO=(e,t)=>({...lO(e),options:[e,t]}),_O=Object.defineProperty,Cre=(e,t)=>_O(e,`name`,{value:t,configurable:!0});function vO(e){let[t,n]=y.useState(void 0);return hE(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});let t=new ResizeObserver(t=>{if(!Array.isArray(t)||!t.length)return;let r=t[0],i,a;if(`borderBoxSize`in r){let e=r.borderBoxSize,t=Array.isArray(e)?e[0]:e;i=t.inlineSize,a=t.blockSize}else i=e.offsetWidth,a=e.offsetHeight;n({width:i,height:a})});return t.observe(e,{box:`border-box`}),()=>t.unobserve(e)}n(void 0)},[e]),t}Cre(vO,`useSize`);var wre=Object.defineProperty,yO=(e,t)=>wre(e,`name`,{value:t,configurable:!0}),bO=`Popper`,[xO,SO]=$w(bO),[Tre,CO]=xO(bO),Ere=yO(e=>{let{__scopePopper:t,children:n}=e,[r,i]=y.useState(null),[a,o]=y.useState(void 0);return(0,z.jsx)(Tre,{scope:t,anchor:r,onAnchorChange:i,placementState:a,setPlacementState:o,children:n})},`Popper`),Dre=`PopperAnchor`,Ore=y.forwardRef(yO(function(e,t){let{__scopePopper:n,virtualRef:r,...i}=e,a=CO(Dre,n),o=y.useRef(null),s=a.onAnchorChange,c=iT(t,y.useCallback(e=>{o.current=e,e&&s(e)},[s])),l=y.useRef(null);y.useEffect(()=>{if(!r)return;let e=l.current;l.current=r.current,e!==l.current&&s(l.current)});let u=a.placementState&&EO(a.placementState),d=u?.[0],f=u?.[1];return r?null:(0,z.jsx)(FT.div,{"data-radix-popper-side":d,"data-radix-popper-align":f,...i,ref:c})},`PopperAnchor`)),wO=`PopperContent`,[kre,Are]=xO(wO),jre=y.forwardRef(yO(function(e,t){let{__scopePopper:n,side:r=`bottom`,sideOffset:i=0,align:a=`center`,alignOffset:o=0,arrowPadding:s=0,avoidCollisions:c=!0,collisionBoundary:l=[],collisionPadding:u=0,sticky:d=`partial`,hideWhenDetached:f=!1,updatePositionStrategy:p=`optimized`,onPlaced:m,...h}=e,g=CO(wO,n),[_,v]=y.useState(null),b=iT(t,v),[x,S]=y.useState(null),C=vO(x),w=C?.width??0,T=C?.height??0,E=r+(a===`center`?``:`-`+a),D=typeof u==`number`?u:{top:0,right:0,bottom:0,left:0,...u},O=Array.isArray(l)?l:[l],ee=O.length>0,k={padding:D,boundary:O.filter(TO),altBoundary:ee},{refs:te,floatingStyles:A,placement:j,isPositioned:M,middlewareData:N}=cO({strategy:`fixed`,placement:E,whileElementsMounted:yO((...e)=>JD(...e,{animationFrame:p===`always`}),`whileElementsMounted`),elements:{reference:g.anchor},middleware:[uO({mainAxis:i+T,alignmentAxis:o}),c&&dO({mainAxis:!0,crossAxis:!1,limiter:d===`partial`?fO():void 0,...k}),c&&pO({...k}),mO({...k,apply:yO(({elements:e,rects:t,availableWidth:n,availableHeight:r})=>{let{width:i,height:a}=t.reference,o=e.floating.style;o.setProperty(`--radix-popper-available-width`,`${n}px`),o.setProperty(`--radix-popper-available-height`,`${r}px`),o.setProperty(`--radix-popper-anchor-width`,`${i}px`),o.setProperty(`--radix-popper-anchor-height`,`${a}px`)},`apply`)}),x&&gO({element:x,padding:s}),Mre({arrowWidth:w,arrowHeight:T}),f&&hO({strategy:`referenceHidden`,...k,boundary:ee?k.boundary:void 0})]}),ne=g.setPlacementState;hE(()=>(ne(j),()=>{ne(void 0)}),[j,ne]);let[re,ie]=EO(j),P=zT(m);hE(()=>{M&&P?.()},[M,P]);let ae=N.arrow?.x,oe=N.arrow?.y,se=N.arrow?.centerOffset!==0,[ce,le]=y.useState();return hE(()=>{_&&le(window.getComputedStyle(_).zIndex)},[_]),(0,z.jsx)(`div`,{ref:te.setFloating,"data-radix-popper-content-wrapper":``,style:{...A,transform:M?A.transform:`translate(0, -200%)`,minWidth:`max-content`,zIndex:ce,"--radix-popper-transform-origin":[N.transformOrigin?.x,N.transformOrigin?.y].join(` `),...N.hide?.referenceHidden&&{visibility:`hidden`,pointerEvents:`none`}},dir:e.dir,children:(0,z.jsx)(kre,{scope:n,placedSide:re,placedAlign:ie,onArrowChange:S,arrowX:ae,arrowY:oe,shouldHideArrow:se,children:(0,z.jsx)(FT.div,{"data-side":re,"data-align":ie,...h,ref:b,style:{...h.style,animation:M?h.style?.animation:`none`}})})})},`PopperContent`));function TO(e){return e!==null}yO(TO,`isNotNull`);var Mre=yO(e=>({name:`transformOrigin`,options:e,fn(t){let{placement:n,rects:r,middlewareData:i}=t,a=i.arrow?.centerOffset!==0,o=a?0:e.arrowWidth,s=a?0:e.arrowHeight,[c,l]=EO(n),u={start:`0%`,center:`50%`,end:`100%`}[l],d=(i.arrow?.x??0)+o/2,f=(i.arrow?.y??0)+s/2,p=``,m=``;return c===`bottom`?(p=a?u:`${d}px`,m=`${-s}px`):c===`top`?(p=a?u:`${d}px`,m=`${r.floating.height+s}px`):c===`right`?(p=`${-s}px`,m=a?u:`${f}px`):c===`left`&&(p=`${r.floating.width+s}px`,m=a?u:`${f}px`),{data:{x:p,y:m}}}}),`transformOrigin`);function EO(e){let[t,n=`center`]=e.split(`-`);return[t,n]}yO(EO,`getSideAndAlignFromPlacement`);var Nre=Ere,Pre=Ore,Fre=jre,Ire=Object.defineProperty,Lre=y.forwardRef(((e,t)=>Ire(e,`name`,{value:t,configurable:!0}))(function(e,t){let{container:n,...r}=e,[i,a]=y.useState(!1);hE(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?xr.createPortal((0,z.jsx)(FT.div,{...r,ref:t}),o):null},`Portal`)),Rre=Object.defineProperty,DO=(e,t)=>Rre(e,`name`,{value:t,configurable:!0});function OO(e,t){return y.useReducer((e,n)=>t[e][n]??e,e)}DO(OO,`useStateMachine`);var zre=DO(e=>{let{present:t,children:n}=e,r=kO(t),i=typeof n==`function`?n({present:r.isPresent}):y.Children.only(n),a=jO(r.ref,NO(i));return typeof n==`function`||r.isPresent?y.cloneElement(i,{ref:a}):null},`Presence`);function kO(e){let[t,n]=y.useState(),r=y.useRef(null),i=y.useRef(e),a=y.useRef(`none`),o=y.useRef(void 0),[s,c]=OO(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return y.useEffect(()=>{s===`mounted`?(a.current=o.current??MO(r.current),o.current=void 0):a.current=`none`},[s]),hE(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,s=MO(t);e?(o.current=s,c(`MOUNT`)):s===`none`||t?.display===`none`?c(`UNMOUNT`):c(n&&r!==s?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,c]),hE(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=DO(a=>{let o=MO(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(c(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},`handleAnimationEnd`),s=DO(e=>{e.target===t&&(a.current=MO(r.current))},`handleAnimationStart`);return t.addEventListener(`animationstart`,s),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,s),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}c(`ANIMATION_END`)},[t,c]),{isPresent:[`mounted`,`unmountSuspended`].includes(s),ref:y.useCallback(e=>{if(e){let t=getComputedStyle(e);r.current=t,o.current=MO(t)}else r.current=null;n(e)},[])}}DO(kO,`usePresence`);function AO(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}DO(AO,`setRef`);function jO(...e){let t=y.useRef(e);return t.current=e,y.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=AO(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():AO(n[e],null)}}},[])}DO(jO,`useStableComposedRefs`);function MO(e){return e?.animationName||`none`}DO(MO,`getAnimationName`);function NO(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)}DO(NO,`getElementRef`);var Bre=globalThis?.document?y.useLayoutEffect:()=>{},Vre=Object.defineProperty,Hre=(e,t)=>Vre(e,`name`,{value:t,configurable:!0}),PO=y.useEffectEvent,FO=y.useInsertionEffect;function IO(e){if(typeof PO==`function`)return PO(e);let t=y.useRef(()=>{throw Error(`Cannot call an event handler while rendering.`)});return typeof FO==`function`?FO(()=>{t.current=e}):Bre(()=>{t.current=e}),y.useMemo(()=>((...e)=>t.current?.(...e)),[])}Hre(IO,`useEffectEvent`);var Ure=Object.defineProperty,LO=(e,t)=>Ure(e,`name`,{value:t,configurable:!0}),Wre=y.useInsertionEffect||hE;function RO({prop:e,defaultProp:t,onChange:n=LO(()=>{},`onChange`),caller:r}){let[i,a,o]=zO({defaultProp:t,onChange:n}),s=e!==void 0;return[s?e:i,y.useCallback(t=>{if(s){let n=BO(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}LO(RO,`useControllableState`);function zO({defaultProp:e,onChange:t}){let[n,r]=y.useState(e),i=y.useRef(n),a=y.useRef(t);return Wre(()=>{a.current=t},[t]),y.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}LO(zO,`useUncontrolledState`);function BO(e){return typeof e==`function`}LO(BO,`isFunction`);var VO=Symbol(`RADIX:SYNC_STATE`);function Gre(e,t,n,r){let{prop:i,defaultProp:a,onChange:o,caller:s}=t,c=i!==void 0,l=IO(o),u=[{...n,state:a}];r&&u.push(r);let[d,f]=y.useReducer((t,n)=>{if(n.type===VO)return{...t,state:n.state};let r=e(t,n);return c&&!Object.is(r.state,t.state)&&l(r.state),r},...u),p=d.state,m=y.useRef(p);y.useEffect(()=>{m.current!==p&&(m.current=p,c||l(p))},[p,m,c]);let h=y.useMemo(()=>i===void 0?d:{...d,state:i},[d,i]);return y.useEffect(()=>{c&&!Object.is(i,d.state)&&f({type:VO,state:i})},[i,d.state,c]),[h,f]}LO(Gre,`useControllableStateReducer`);var Kre=Object.defineProperty,qre=(e,t)=>Kre(e,`name`,{value:t,configurable:!0});function HO(e){let t=y.useRef({value:e,previous:e});return y.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}qre(HO,`usePrevious`);var Jre=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`}),Yre=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},UO=new WeakMap,WO=new WeakMap,GO={},KO=0,qO=function(e){return e&&(e.host||qO(e.parentNode))},Xre=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=qO(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},Zre=function(e,t,n,r){var i=Xre(t,Array.isArray(e)?e:[e]);GO[n]||(GO[n]=new WeakMap);var a=GO[n],o=[],s=new Set,c=new Set(i),l=function(e){e&&!s.has(e)&&(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){e&&!c.has(e)&&Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(UO.get(e)||0)+1,l=(a.get(e)||0)+1;UO.set(e,c),a.set(e,l),o.push(e),c===1&&i&&WO.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),KO++,function(){o.forEach(function(e){var t=UO.get(e)-1,i=a.get(e)-1;UO.set(e,t),a.set(e,i),t||(WO.has(e)||e.removeAttribute(r),WO.delete(e)),i||e.removeAttribute(n)}),KO--,KO||(UO=new WeakMap,UO=new WeakMap,WO=new WeakMap,GO={})}},JO=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||Yre(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live]`))),Zre(r,i,n,`aria-hidden`)):function(){return null}},YO=`right-scroll-bar-position`,XO=`width-before-scroll-bar`,Qre=`with-scroll-bars-hidden`,$re=`--removed-body-scroll-bar-size`;function ZO(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function eie(e,t){var n=(0,y.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var tie=typeof window<`u`?y.useLayoutEffect:y.useEffect,QO=new WeakMap;function nie(e,t){var n=eie(t||null,function(t){return e.forEach(function(e){return ZO(e,t)})});return tie(function(){var t=QO.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||ZO(e,null)}),i.forEach(function(e){r.has(e)||ZO(e,a)})}QO.set(n,e)},[e]),n}function rie(e){return e}function iie(e,t){t===void 0&&(t=rie);var n=[],r=!1;return{read:function(){if(r)throw 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(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function aie(e){e===void 0&&(e={});var t=iie(null);return t.options=ks({async:!0,ssr:!1},e),t}var $O=function(e){var t=e.sideCar,n=As(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return y.createElement(r,ks({},n))};$O.isSideCarExport=!0;function oie(e,t){return e.useMedium(t),$O}var ek=aie(),tk=function(){},nk=y.forwardRef(function(e,t){var n=y.useRef(null),r=y.useState({onScrollCapture:tk,onWheelCapture:tk,onTouchMoveCapture:tk}),i=r[0],a=r[1],o=e.forwardProps,s=e.children,c=e.className,l=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,p=e.noRelative,m=e.noIsolation,h=e.inert,g=e.allowPinchZoom,_=e.as,v=_===void 0?`div`:_,b=e.gapMode,x=As(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),S=f,C=nie([n,t]),w=ks(ks({},x),i);return y.createElement(y.Fragment,null,u&&y.createElement(S,{sideCar:ek,removeScrollBar:l,shards:d,noRelative:p,noIsolation:m,inert:h,setCallbacks:a,allowPinchZoom:!!g,lockRef:n,gapMode:b}),o?y.cloneElement(y.Children.only(s),ks(ks({},w),{ref:C})):y.createElement(v,ks({},w,{className:c,ref:C}),s))});nk.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},nk.classNames={fullWidth:XO,zeroRight:YO};var sie=function(){if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function cie(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=sie();return t&&e.setAttribute(`nonce`,t),e}function lie(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function uie(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var die=function(){var e=0,t=null;return{add:function(n){e==0&&(t=cie())&&(lie(t,n),uie(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},fie=function(){var e=die();return function(t,n){y.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},rk=function(){var e=fie();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},pie={left:0,top:0,right:0,gap:0},ik=function(e){return parseInt(e||``,10)||0},mie=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[ik(n),ik(r),ik(i)]},hie=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return pie;var t=mie(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},gie=rk(),ak=`data-scroll-locked`,_ie=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
.${Qre} {
overflow: hidden ${r};
padding-right: ${s}px ${r};
}
body[${ak}] {
overflow: hidden ${r};
overscroll-behavior: contain;
${[t&&`position: relative ${r};`,n===`margin`&&`
padding-left: ${i}px;
padding-top: ${a}px;
padding-right: ${o}px;
margin-left:0;
margin-top:0;
margin-right: ${s}px ${r};
`,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)}
}
.${YO} {
right: ${s}px ${r};
}
.${XO} {
margin-right: ${s}px ${r};
}
.${YO} .${YO} {
right: 0 ${r};
}
.${XO} .${XO} {
margin-right: 0 ${r};
}
body[${ak}] {
${$re}: ${s}px;
}
`},ok=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},vie=function(){y.useEffect(function(){return document.body.setAttribute(ak,(ok()+1).toString()),function(){var e=ok()-1;e<=0?document.body.removeAttribute(ak):document.body.setAttribute(ak,e.toString())}},[])},yie=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;vie();var a=y.useMemo(function(){return hie(i)},[i]);return y.createElement(gie,{styles:_ie(a,!t,i,n?``:`!important`)})},sk=!1;if(typeof window<`u`)try{var ck=Object.defineProperty({},"passive",{get:function(){return sk=!0,!0}});window.addEventListener(`test`,ck,ck),window.removeEventListener(`test`,ck,ck)}catch{sk=!1}var lk=sk?{passive:!1}:!1,bie=function(e){return e.tagName===`TEXTAREA`},uk=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!bie(e)&&n[t]===`visible`)},xie=function(e){return uk(e,`overflowY`)},Sie=function(e){return uk(e,`overflowX`)},dk=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),fk(e,r)){var i=pk(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Cie=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},wie=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},fk=function(e,t){return e===`v`?xie(t):Sie(t)},pk=function(e,t){return e===`v`?Cie(t):wie(t)},Tie=function(e,t){return e===`h`&&t===`rtl`?-1:1},Eie=function(e,t,n,r,i){var a=Tie(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=pk(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&fk(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},mk=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},hk=function(e){return[e.deltaX,e.deltaY]},gk=function(e){return e&&`current`in e?e.current:e},Die=function(e,t){return e[0]===t[0]&&e[1]===t[1]},Oie=function(e){return`
.block-interactivity-${e} {pointer-events: none;}
.allow-interactivity-${e} {pointer-events: all;}
`},kie=0,_k=[];function Aie(e){var t=y.useRef([]),n=y.useRef([0,0]),r=y.useRef(),i=y.useState(kie++)[0],a=y.useState(rk)[0],o=y.useRef(e);y.useEffect(function(){o.current=e},[e]),y.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=Ms([e.lockRef.current],(e.shards||[]).map(gk),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=y.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=mk(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=dk(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=dk(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return Eie(h,t,e,h===`h`?s:c,!0)},[]),c=y.useCallback(function(e){var n=e;if(_k.length&&_k[_k.length-1]===a){var r=`deltaY`in n?hk(n):mk(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&Die(e.delta,r)})[0];if(i&&i.should)n.cancelable&&n.preventDefault();else if(!i){var c=(o.current.shards||[]).map(gk).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=y.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:jie(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=y.useCallback(function(e){n.current=mk(e),r.current=void 0},[]),d=y.useCallback(function(t){l(t.type,hk(t),t.target,s(t,e.lockRef.current))},[]),f=y.useCallback(function(t){l(t.type,mk(t),t.target,s(t,e.lockRef.current))},[]);y.useEffect(function(){return _k.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,lk),document.addEventListener(`touchmove`,c,lk),document.addEventListener(`touchstart`,u,lk),function(){_k=_k.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,lk),document.removeEventListener(`touchmove`,c,lk),document.removeEventListener(`touchstart`,u,lk)}},[]);var p=e.removeScrollBar,m=e.inert;return y.createElement(y.Fragment,null,m?y.createElement(a,{styles:Oie(i)}):null,p?y.createElement(yie,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function jie(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var Mie=oie(ek,Aie),vk=y.forwardRef(function(e,t){return y.createElement(nk,ks({},e,{ref:t,sideCar:Mie}))});vk.classNames=nk.classNames;var Nie=Object.defineProperty,yk=(e,t)=>Nie(e,`name`,{value:t,configurable:!0}),Pie=[` `,`Enter`,`ArrowUp`,`ArrowDown`],Fie=[` `,`Enter`],bk=`Select`,[xk,Sk,Iie]=vT(bk),[Ck,Lie]=$w(bk,[Iie,SO]),wk=SO(),[Rie,Tk]=Ck(bk),[zie,Bie]=Ck(bk);function Ek(e){let{__scopeSelect:t,children:n,open:r,defaultOpen:i,onOpenChange:a,value:o,defaultValue:s,onValueChange:c,dir:l,name:u,autoComplete:d,disabled:f,required:p,form:m,internal_do_not_use_render:h}=e,g=wk(t),[_,v]=y.useState(null),[b,x]=y.useState(null),[S,C]=y.useState(!1),w=MT(l),[T,E]=RO({prop:r,defaultProp:i??!1,onChange:a,caller:bk}),[D,O]=RO({prop:o,defaultProp:s,onChange:c,caller:bk}),ee=y.useRef(null),k=y.useRef(D);y.useEffect(()=>{let e=m?_?.ownerDocument.getElementById(m):_?.form;if(e instanceof HTMLFormElement){let t=yk(()=>O(k.current),`reset`);return e.addEventListener(`reset`,t),()=>e.removeEventListener(`reset`,t)}},[m,_,O]);let te=!_||!!m||!!_.closest(`form`),[A,j]=y.useState(new Set),M=gE(),N=Array.from(A).map(e=>e.props.value).join(`;`),ne=y.useCallback(e=>{j(t=>new Set(t).add(e))},[]),re=y.useCallback(e=>{j(t=>{let n=new Set(t);return n.delete(e),n})},[]),ie={required:p,trigger:_,onTriggerChange:v,valueNode:b,onValueNodeChange:x,valueNodeHasChildren:S,onValueNodeHasChildrenChange:C,contentId:M,value:D,onValueChange:O,open:T,onOpenChange:E,dir:w,triggerPointerDownPosRef:ee,disabled:f,name:u,autoComplete:d,form:m,nativeOptions:A,nativeSelectKey:N,isFormControl:te};return(0,z.jsx)(Nre,{...g,children:(0,z.jsx)(Rie,{scope:t,...ie,children:(0,z.jsx)(xk.Provider,{scope:t,children:(0,z.jsx)(zie,{scope:t,onNativeOptionAdd:ne,onNativeOptionRemove:re,children:oA(h)?h(ie):n})})})})}yk(Ek,`SelectProvider`);var Vie=yk(e=>{let{__scopeSelect:t,children:n,...r}=e;return(0,z.jsx)(Ek,{__scopeSelect:t,...r,internal_do_not_use_render:({isFormControl:e})=>(0,z.jsxs)(z.Fragment,{children:[n,e?(0,z.jsx)(aA,{__scopeSelect:t}):null]})})},`Select`),Hie=`SelectTrigger`,Dk=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,disabled:r=!1,...i}=e,a=wk(n),o=Tk(Hie,n),s=o.disabled||r,c=iT(t,o.onTriggerChange),l=Sk(n),u=y.useRef(`touch`),[d,f,p]=cA(e=>{let t=l().filter(e=>!e.disabled),n=lA(t,e,t.find(e=>e.value===o.value));n!==void 0&&o.onValueChange(n.value)}),m=yk(e=>{s||(o.onOpenChange(!0),p()),e&&(o.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})},`handleOpen`);return(0,z.jsx)(Pre,{asChild:!0,...a,children:(0,z.jsx)(FT.button,{type:`button`,role:`combobox`,"aria-controls":o.open?o.contentId:void 0,"aria-expanded":o.open,"aria-required":o.required,"aria-autocomplete":`none`,dir:o.dir,"data-state":o.open?`open`:`closed`,disabled:s,"data-disabled":s?``:void 0,"data-placeholder":sA(o.value)?``:void 0,...i,ref:c,onClick:qw(i.onClick,e=>{e.currentTarget.focus(),u.current!==`mouse`&&m(e)}),onPointerDown:qw(i.onPointerDown,e=>{u.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&e.pointerType===`mouse`&&(m(e),e.preventDefault())}),onKeyDown:qw(i.onKeyDown,e=>{let t=d.current!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&f(e.key),!(t&&e.key===` `)&&Pie.includes(e.key)&&(m(),e.preventDefault())})})})},`SelectTrigger`)),Uie=`SelectValue`,Wie=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,className:r,style:i,children:a,placeholder:o=``,...s}=e,c=Tk(Uie,n),{onValueNodeHasChildrenChange:l}=c,u=a!==void 0,d=iT(t,c.onValueNodeChange);hE(()=>{l(u)},[l,u]);let f=sA(c.value);return(0,z.jsx)(FT.span,{...s,asChild:!f&&s.asChild,ref:d,style:{pointerEvents:`none`},children:(0,z.jsx)(y.Fragment,{children:f?o:a},f?`placeholder`:`value`)})},`SelectValue`)),Gie=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,children:r,...i}=e;return(0,z.jsx)(FT.span,{"aria-hidden":!0,...i,ref:t,children:r||`▼`})},`SelectIcon`)),[Kie,qie]=Ck(`SelectPortal`,{forceMount:void 0}),Jie=yk(e=>{let{__scopeSelect:t,forceMount:n,...r}=e;return(0,z.jsx)(Kie,{scope:e.__scopeSelect,forceMount:n,children:(0,z.jsx)(Lre,{asChild:!0,...r})})},`SelectPortal`),Ok=`SelectContent`,kk=y.forwardRef(yk(function(e,t){let n=qie(Ok,e.__scopeSelect),{forceMount:r=n.forceMount,...i}=e,a=Tk(Ok,e.__scopeSelect),[o,s]=y.useState();return hE(()=>{s(new DocumentFragment)},[]),(0,z.jsx)(zre,{present:r||a.open,children:({present:e})=>e?(0,z.jsx)(Pk,{...i,ref:t}):(0,z.jsx)(Yie,{...i,fragment:o})})},`SelectContent`)),Yie=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,children:r,fragment:i}=e;return i?xr.createPortal((0,z.jsx)(jk,{scope:n,children:(0,z.jsx)(xk.Slot,{scope:n,children:(0,z.jsx)(`div`,{ref:t,children:r})})}),i):null},`SelectContentFragment`)),Ak=10,[jk,Mk]=Ck(Ok),Nk=oT(`SelectContent.RemoveScroll`),Pk=y.forwardRef(yk(function(e,t){let{__scopeSelect:n}=e,{position:r=`item-aligned`,onCloseAutoFocus:i,onEscapeKeyDown:a,onPointerDownOutside:o,side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g,..._}=e,v=Tk(Ok,n),[b,x]=y.useState(null),[S,C]=y.useState(null),w=iT(t,x),[T,E]=y.useState(null),[D,O]=y.useState(null),ee=Sk(n),[k,te]=y.useState(!1),A=y.useRef(!1);y.useEffect(()=>{if(b)return JO(b)},[b]),QT();let j=y.useCallback(e=>{let[t,...n]=ee().map(e=>e.ref.current),[r]=n.slice(-1),i=document.activeElement;for(let n of e)if(n===i||(n?.scrollIntoView({block:`nearest`}),n===t&&S&&(S.scrollTop=0),n===r&&S&&(S.scrollTop=S.scrollHeight),n?.focus(),document.activeElement!==i))return},[ee,S]),M=y.useCallback(()=>j([T,b]),[j,T,b]);y.useEffect(()=>{k&&M()},[k,M]);let{onOpenChange:N,triggerPointerDownPosRef:ne}=v;y.useEffect(()=>{if(b){let e={x:0,y:0},t=yk(t=>{e={x:Math.abs(Math.round(t.pageX)-(ne.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(ne.current?.y??0))}},`handlePointerMove`),n=yk(n=>{e.x<=10&&e.y<=10?n.preventDefault():n.composedPath().includes(b)||N(!1),document.removeEventListener(`pointermove`,t),ne.current=null},`handlePointerUp`);return ne.current!==null&&(document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n,{capture:!0,once:!0})),()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n,{capture:!0})}}},[b,N,ne]),y.useEffect(()=>{let e=yk(()=>N(!1),`close`);return window.addEventListener(`blur`,e),window.addEventListener(`resize`,e),()=>{window.removeEventListener(`blur`,e),window.removeEventListener(`resize`,e)}},[N]);let[re,ie]=cA(e=>{let t=ee().filter(e=>!e.disabled),n=lA(t,e,t.find(e=>e.ref.current===document.activeElement));n&&setTimeout(()=>n.ref.current?.focus())}),P=y.useCallback((e,t,n)=>{let r=!A.current&&!n;(v.value!==void 0&&v.value===t||r)&&(E(e),r&&(A.current=!0))},[v.value]),ae=y.useCallback(()=>b?.focus(),[b]),oe=y.useCallback((e,t,n)=>{let r=!A.current&&!n;(v.value!==void 0&&v.value===t||r)&&O(e)},[v.value]),se=r===`popper`?Ik:Fk,ce=se===Ik?{side:s,sideOffset:c,align:l,alignOffset:u,arrowPadding:d,collisionBoundary:f,collisionPadding:p,sticky:m,hideWhenDetached:h,avoidCollisions:g}:{};return(0,z.jsx)(jk,{scope:n,content:b,viewport:S,onViewportChange:C,itemRefCallback:P,selectedItem:T,onItemLeave:ae,itemTextRefCallback:oe,focusSelectedItem:M,selectedItemText:D,position:r,isPositioned:k,searchRef:re,children:(0,z.jsx)(vk,{as:Nk,allowPinchZoom:!0,children:(0,z.jsx)(_re,{asChild:!0,trapped:v.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:qw(i,e=>{v.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,z.jsx)(dre,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>v.onOpenChange(!1),children:(0,z.jsx)(se,{role:`listbox`,id:v.contentId,"data-state":v.open?`open`:`closed`,dir:v.dir,onContextMenu:e=>e.preventDefault(),..._,...ce,onPlaced:()=>te(!0),ref:w,style:{display:`flex`,flexDirection:`column`,outline:`none`,..._.style},onKeyDown:qw(_.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&ie(e.key),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=ee().filter(e=>!e.disabled).map(e=>e.ref.current);if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>j(t)),e.preventDefault()}})})})})})})},`SelectContentImpl`)),Fk=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,onPlaced:r,...i}=e,a=Tk(Ok,n),o=Mk(Ok,n),[s,c]=y.useState(null),[l,u]=y.useState(null),d=iT(t,u),f=Sk(n),p=y.useRef(!1),m=y.useRef(!0),{viewport:h,selectedItem:g,selectedItemText:_,focusSelectedItem:v}=o,b=y.useCallback(()=>{if(a.trigger&&a.valueNode&&s&&l&&h&&g&&_){let e=a.trigger.getBoundingClientRect(),t=l.getBoundingClientRect(),n=a.valueNode.getBoundingClientRect(),i=_.getBoundingClientRect();if(a.dir!==`rtl`){let r=i.left-t.left,a=n.left-r,o=e.left-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Ak,d=Uw(a,[Ak,Math.max(Ak,u-l)]);s.style.minWidth=c+`px`,s.style.left=d+`px`}else{let r=t.right-i.right,a=window.innerWidth-n.right-r,o=window.innerWidth-e.right-a,c=e.width+o,l=Math.max(c,t.width),u=window.innerWidth-Ak,d=Uw(a,[Ak,Math.max(Ak,u-l)]);s.style.minWidth=c+`px`,s.style.right=d+`px`}let o=f(),c=window.innerHeight-Ak*2,u=h.scrollHeight,d=window.getComputedStyle(l),m=parseInt(d.borderTopWidth,10),v=parseInt(d.paddingTop,10),y=parseInt(d.borderBottomWidth,10),b=parseInt(d.paddingBottom,10),x=m+v+u+b+y,S=Math.min(g.offsetHeight*5,x),C=window.getComputedStyle(h),w=parseInt(C.paddingTop,10),T=parseInt(C.paddingBottom,10),E=e.top+e.height/2-Ak,D=c-E,O=g.offsetHeight/2,ee=g.offsetTop+O,k=m+v+ee,te=x-k;if(k<=E){let e=o.length>0&&g===o[o.length-1].ref.current;s.style.bottom=`0px`;let t=l.clientHeight-h.offsetTop-h.offsetHeight,n=k+Math.max(D,O+(e?T:0)+t+y);s.style.height=n+`px`}else{let e=o.length>0&&g===o[0].ref.current;s.style.top=`0px`;let t=Math.max(E,m+h.offsetTop+(e?w:0)+O)+te;s.style.height=t+`px`,h.scrollTop=k-E+h.offsetTop}s.style.margin=`${Ak}px 0`,s.style.minHeight=S+`px`,s.style.maxHeight=c+`px`,r?.(),requestAnimationFrame(()=>p.current=!0)}},[f,a.trigger,a.valueNode,s,l,h,g,_,a.dir,r]);hE(()=>b(),[b]);let[x,S]=y.useState();hE(()=>{l&&S(window.getComputedStyle(l).zIndex)},[l]);let C=y.useCallback(e=>{e&&m.current===!0&&(b(),v?.(),m.current=!1)},[b,v]);return(0,z.jsx)(Lk,{scope:n,contentWrapper:s,shouldExpandOnScrollRef:p,onScrollButtonChange:C,children:(0,z.jsx)(`div`,{ref:c,style:{display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:x},children:(0,z.jsx)(FT.div,{...i,ref:d,style:{boxSizing:`border-box`,maxHeight:`100%`,...i.style}})})})},`SelectItemAlignedPosition`)),Ik=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,align:r=`start`,collisionPadding:i=Ak,...a}=e,o=wk(n);return(0,z.jsx)(Fre,{...o,...a,ref:t,align:r,collisionPadding:i,style:{boxSizing:`border-box`,...a.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`)),[Lk,Rk]=Ck(Ok,{}),zk=`SelectViewport`,Bk=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,nonce:r,...i}=e,a=Mk(zk,n),o=Rk(zk,n),s=iT(t,a.onViewportChange),c=y.useRef(0);return(0,z.jsxs)(z.Fragment,{children:[(0,z.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:r}),(0,z.jsx)(xk.Slot,{scope:n,children:(0,z.jsx)(FT.div,{"data-radix-select-viewport":``,role:`presentation`,...i,ref:s,style:{position:`relative`,flex:1,overflow:`hidden auto`,...i.style},onScroll:qw(i.onScroll,e=>{let t=e.currentTarget,{contentWrapper:n,shouldExpandOnScrollRef:r}=o;if(r?.current&&n){let e=Math.abs(c.current-t.scrollTop);if(e>0){let r=window.innerHeight-Ak*2,i=parseFloat(n.style.minHeight),a=parseFloat(n.style.height),o=Math.max(i,a);if(o<r){let i=o+e,a=Math.min(r,i),s=i-a;n.style.height=a+`px`,n.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,n.style.justifyContent=`flex-end`)}}}c.current=t.scrollTop})})})]})},`SelectViewport`)),[Xie,Vk]=Ck(`SelectGroup`),Hk=`SelectLabel`,Uk=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,...r}=e,i=Vk(Hk,n);return(0,z.jsx)(FT.div,{id:i.id,...r,ref:t})},`SelectLabel`)),Wk=`SelectItem`,[Gk,Kk]=Ck(Wk),qk=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,value:r,disabled:i=!1,textValue:a,...o}=e,s=Tk(Wk,n),c=Mk(Wk,n),l=s.value===r,[u,d]=y.useState(a??``),[f,p]=y.useState(!1),m=iT(t,zT(e=>c.itemRefCallback?.(e,r,i))),h=gE(),g=y.useRef(`touch`),_=yk(()=>{i||(s.onValueChange(r),s.onOpenChange(!1))},`handleSelect`);return(0,z.jsx)(Gk,{scope:n,value:r,disabled:i,textId:h,isSelected:l,onItemTextChange:y.useCallback(e=>{d(t=>t||(e?.textContent??``).trim())},[]),children:(0,z.jsx)(xk.ItemSlot,{scope:n,value:r,disabled:i,textValue:u,children:(0,z.jsx)(FT.div,{role:`option`,"aria-labelledby":h,"data-highlighted":f?``:void 0,"aria-selected":l&&f,"data-state":l?`checked`:`unchecked`,"aria-disabled":i||void 0,"data-disabled":i?``:void 0,tabIndex:i?void 0:-1,...o,ref:m,onFocus:qw(o.onFocus,()=>p(!0)),onBlur:qw(o.onBlur,()=>p(!1)),onClick:qw(o.onClick,()=>{g.current!==`mouse`&&_()}),onPointerUp:qw(o.onPointerUp,()=>{g.current===`mouse`&&_()}),onPointerDown:qw(o.onPointerDown,e=>{g.current=e.pointerType}),onPointerMove:qw(o.onPointerMove,e=>{g.current=e.pointerType,i?c.onItemLeave?.():g.current===`mouse`&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:qw(o.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:qw(o.onKeyDown,e=>{i||e.target!==e.currentTarget||(c.searchRef?.current===``||e.key!==` `)&&(Fie.includes(e.key)&&_(),e.key===` `&&e.preventDefault())})})})})},`SelectItem`)),Jk=`SelectItemText`,Yk=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,className:r,style:i,...a}=e,o=Tk(Jk,n),s=Mk(Jk,n),c=Kk(Jk,n),l=Bie(Jk,n),[u,d]=y.useState(null),f=zT(e=>s.itemTextRefCallback?.(e,c.value,c.disabled)),p=iT(t,d,c.onItemTextChange,f),m=u?.textContent,h=y.useMemo(()=>(0,z.jsx)(`option`,{value:c.value,disabled:c.disabled,children:m},c.value),[c.disabled,c.value,m]),{onNativeOptionAdd:g,onNativeOptionRemove:_}=l;return hE(()=>(g(h),()=>_(h)),[g,_,h]),(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(FT.span,{id:c.textId,...a,ref:p}),c.isSelected&&o.valueNode&&!o.valueNodeHasChildren&&!sA(o.value)?xr.createPortal(a.children,o.valueNode):null]})},`SelectItemText`)),Xk=`SelectItemIndicator`,Zk=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,...r}=e;return Kk(Xk,n).isSelected?(0,z.jsx)(FT.span,{"aria-hidden":!0,...r,ref:t}):null},`SelectItemIndicator`)),Qk=`SelectScrollUpButton`,$k=y.forwardRef(yk(function(e,t){let n=Mk(Qk,e.__scopeSelect),r=Rk(Qk,e.__scopeSelect),[i,a]=y.useState(!1),o=iT(t,r.onScrollButtonChange);return hE(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollTop>0;a(e)};yk(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,z.jsx)(nA,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop-=t.offsetHeight)}}):null},`SelectScrollUpButton`)),eA=`SelectScrollDownButton`,tA=y.forwardRef(yk(function(e,t){let n=Mk(eA,e.__scopeSelect),r=Rk(eA,e.__scopeSelect),[i,a]=y.useState(!1),o=iT(t,r.onScrollButtonChange);return hE(()=>{if(n.viewport&&n.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight,n=Math.ceil(t.scrollTop)<e;a(n)};yk(e,`handleScroll`);let t=n.viewport;return e(),t.addEventListener(`scroll`,e),()=>t.removeEventListener(`scroll`,e)}},[n.viewport,n.isPositioned]),i?(0,z.jsx)(nA,{...e,ref:o,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=n;e&&t&&(e.scrollTop+=t.offsetHeight)}}):null},`SelectScrollDownButton`)),nA=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,onAutoScroll:r,...i}=e,a=Mk(`SelectScrollButton`,n),o=y.useRef(null),s=Sk(n),c=y.useCallback(()=>{o.current!==null&&(window.clearInterval(o.current),o.current=null)},[]);return y.useEffect(()=>()=>c(),[c]),hE(()=>{s().find(e=>e.ref.current===document.activeElement)?.ref.current?.scrollIntoView({block:`nearest`})},[s]),(0,z.jsx)(FT.div,{"aria-hidden":!0,...i,ref:t,style:{flexShrink:0,...i.style},onPointerDown:qw(i.onPointerDown,()=>{o.current===null&&(o.current=window.setInterval(r,50))}),onPointerMove:qw(i.onPointerMove,()=>{a.onItemLeave?.(),o.current===null&&(o.current=window.setInterval(r,50))}),onPointerLeave:qw(i.onPointerLeave,()=>{c()})})},`SelectScrollButtonImpl`)),rA=y.forwardRef(yk(function(e,t){let{__scopeSelect:n,...r}=e;return(0,z.jsx)(FT.div,{"aria-hidden":!0,...r,ref:t})},`SelectSeparator`)),iA=`SelectBubbleInput`,aA=y.forwardRef(yk(function({__scopeSelect:e,...t},n){let r=Tk(iA,e),{value:i,onValueChange:a,required:o,disabled:s,name:c,autoComplete:l,form:u}=r,{nativeOptions:d,nativeSelectKey:f}=r,p=y.useRef(null),m=iT(n,p),h=i??``,g=HO(h),_=Array.from(d).some(e=>(e.props.value??``)===``);return y.useEffect(()=>{let e=p.current;if(!e)return;let t=window.HTMLSelectElement.prototype,n=Object.getOwnPropertyDescriptor(t,`value`).set;if(g!==h&&n){let t=new Event(`change`,{bubbles:!0});n.call(e,h),e.dispatchEvent(t)}},[g,h]),(0,z.jsxs)(FT.select,{"aria-hidden":!0,required:o,tabIndex:-1,name:c,autoComplete:l,disabled:s,form:u,onChange:e=>a(e.target.value),...t,style:{...Jre,...t.style},ref:m,defaultValue:h,children:[sA(i)&&!_?(0,z.jsx)(`option`,{value:``}):null,Array.from(d)]},f)},`SelectBubbleInput`));function oA(e){return typeof e==`function`}yk(oA,`isFunction`);function sA(e){return e===``||e===void 0}yk(sA,`shouldShowPlaceholder`);function cA(e){let t=zT(e),n=y.useRef(``),r=y.useRef(0),i=y.useCallback(e=>{let i=n.current+e;t(i),yk((function e(t){n.current=t,window.clearTimeout(r.current),t!==``&&(r.current=window.setTimeout(()=>e(``),1e3))}),`updateSearch`)(i)},[t]),a=y.useCallback(()=>{n.current=``,window.clearTimeout(r.current)},[]);return y.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,i,a]}yk(cA,`useTypeaheadSearch`);function lA(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=uA(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.textValue.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}yk(lA,`findNextItem`);function uA(e,t){return e.map((n,r)=>e[(t+r)%e.length])}yk(uA,`wrapArray`);var dA=Vie,fA=Wie,pA=y.forwardRef(({className:e,children:t,...n},r)=>(0,z.jsxs)(Dk,{ref:r,className:R(`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,(0,z.jsx)(Gie,{asChild:!0,children:(0,z.jsx)(za,{className:`h-4 w-4 opacity-50`})})]}));pA.displayName=Dk.displayName;var mA=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)($k,{ref:n,className:R(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,z.jsx)(Ha,{className:`h-4 w-4`})}));mA.displayName=$k.displayName;var hA=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(tA,{ref:n,className:R(`flex cursor-default items-center justify-center py-1`,e),...t,children:(0,z.jsx)(za,{className:`h-4 w-4`})}));hA.displayName=tA.displayName;var gA=y.forwardRef(({className:e,children:t,position:n=`popper`,...r},i)=>(0,z.jsx)(Jie,{children:(0,z.jsxs)(kk,{ref:i,className:R(`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,...r,children:[(0,z.jsx)(mA,{}),(0,z.jsx)(Bk,{className:R(`p-1`,n===`popper`&&`h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]`),children:t}),(0,z.jsx)(hA,{})]})}));gA.displayName=kk.displayName;var _A=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(Uk,{ref:n,className:R(`px-2 py-1.5 text-sm font-semibold`,e),...t}));_A.displayName=Uk.displayName;var vA=y.forwardRef(({className:e,children:t,...n},r)=>(0,z.jsxs)(qk,{ref:r,className:R(`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:[(0,z.jsx)(`span`,{className:`absolute right-2 flex h-3.5 w-3.5 items-center justify-center`,children:(0,z.jsx)(Zk,{children:(0,z.jsx)(Ra,{className:`h-4 w-4`})})}),(0,z.jsx)(Yk,{children:t})]}));vA.displayName=qk.displayName;var yA=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(rA,{ref:n,className:R(`-mx-1 my-1 h-px bg-muted`,e),...t}));yA.displayName=rA.displayName;var bA=()=>{let{toast:e}=Of(),[t,n]=(0,y.useState)(!1),[r,i]=(0,y.useState)({name:``,email:``,phone:``,property_location:``,current_platform:``,description:``}),[a,o]=(0,y.useState)({}),s=()=>{let e={};return r.name.trim()||(e.name=`Name is required`),r.email.trim()?/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(r.email)||(e.email=`Please enter a valid email address`):e.email=`Email is required`,r.property_location.trim()||(e.property_location=`Property location is required`),r.current_platform||(e.current_platform=`Please select a platform`),o(e),Object.keys(e).length===0},c=e=>{let{name:t,value:n}=e.target;i(e=>({...e,[t]:n})),a[t]&&o(e=>({...e,[t]:``}))};return(0,z.jsxs)(`form`,{onSubmit:async t=>{if(t.preventDefault(),!s())e({title:`Please fix the errors`,description:`Check the form for validation errors and try again.`,variant:`destructive`});else{n(!0);try{let t={name:r.name,email:r.email,phone:r.phone,property_location:r.property_location,current_platform:r.current_platform,description:r.description},{data:n,error:a}=await Xd.functions.invoke(`send-host-inquiry-email`,{body:t});if(a)throw Error(a.message||`Failed to send inquiry`);if(!n?.success)throw Error(n?.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(t){console.error(`Error submitting inquiry:`,t),e({title:`Submission Failed`,description:t.message||`There was an error sending your inquiry. Please try again or contact us directly at [email protected].`,variant:`destructive`})}finally{n(!1)}}},className:`space-y-6`,children:[(0,z.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:[(0,z.jsxs)(`div`,{className:`space-y-2`,children:[(0,z.jsxs)(Rw,{htmlFor:`name`,className:`text-gray-700 font-medium`,children:[`Your Name `,(0,z.jsx)(`span`,{className:`text-red-500`,children:`*`})]}),(0,z.jsx)(Fw,{id:`name`,name:`name`,type:`text`,value:r.name,onChange:c,placeholder:`John Smith`,className:`bg-white border-gray-300 text-gray-900 ${a.name?`border-red-500`:``}`,disabled:t}),a.name&&(0,z.jsx)(`p`,{className:`text-red-500 text-sm`,children:a.name})]}),(0,z.jsxs)(`div`,{className:`space-y-2`,children:[(0,z.jsxs)(Rw,{htmlFor:`email`,className:`text-gray-700 font-medium`,children:[`Email `,(0,z.jsx)(`span`,{className:`text-red-500`,children:`*`})]}),(0,z.jsx)(Fw,{id:`email`,name:`email`,type:`email`,value:r.email,onChange:c,placeholder:`[email protected]`,className:`bg-white border-gray-300 text-gray-900 ${a.email?`border-red-500`:``}`,disabled:t}),a.email&&(0,z.jsx)(`p`,{className:`text-red-500 text-sm`,children:a.email})]})]}),(0,z.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:[(0,z.jsxs)(`div`,{className:`space-y-2`,children:[(0,z.jsx)(Rw,{htmlFor:`phone`,className:`text-gray-700 font-medium`,children:`Phone`}),(0,z.jsx)(Fw,{id:`phone`,name:`phone`,type:`tel`,value:r.phone,onChange:c,placeholder:`(555) 123-4567`,className:`bg-white border-gray-300 text-gray-900`,disabled:t})]}),(0,z.jsxs)(`div`,{className:`space-y-2`,children:[(0,z.jsxs)(Rw,{htmlFor:`property_location`,className:`text-gray-700 font-medium`,children:[`Property Location `,(0,z.jsx)(`span`,{className:`text-red-500`,children:`*`})]}),(0,z.jsx)(Fw,{id:`property_location`,name:`property_location`,type:`text`,value:r.property_location,onChange:c,placeholder:`e.g., Yachats, Newport, Cannon Beach`,className:`bg-white border-gray-300 text-gray-900 ${a.property_location?`border-red-500`:``}`,disabled:t}),a.property_location&&(0,z.jsx)(`p`,{className:`text-red-500 text-sm`,children:a.property_location})]})]}),(0,z.jsxs)(`div`,{className:`space-y-2`,children:[(0,z.jsxs)(Rw,{htmlFor:`current_platform`,className:`text-gray-700 font-medium`,children:[`Current Platform `,(0,z.jsx)(`span`,{className:`text-red-500`,children:`*`})]}),(0,z.jsxs)(dA,{value:r.current_platform,onValueChange:e=>{i(t=>({...t,current_platform:e})),a.current_platform&&o(e=>({...e,current_platform:``}))},disabled:t,children:[(0,z.jsx)(pA,{className:`bg-white border-gray-300 text-gray-900 ${a.current_platform?`border-red-500`:``}`,children:(0,z.jsx)(fA,{placeholder:`Select a platform`})}),(0,z.jsxs)(gA,{children:[(0,z.jsx)(vA,{value:`airbnb`,children:`Airbnb`}),(0,z.jsx)(vA,{value:`vrbo`,children:`VRBO`}),(0,z.jsx)(vA,{value:`both`,children:`Both Airbnb & VRBO`}),(0,z.jsx)(vA,{value:`not-listed`,children:`Not Listed Yet`})]})]}),a.current_platform&&(0,z.jsx)(`p`,{className:`text-red-500 text-sm`,children:a.current_platform})]}),(0,z.jsxs)(`div`,{className:`space-y-2`,children:[(0,z.jsx)(Rw,{htmlFor:`description`,className:`text-gray-700 font-medium`,children:`Brief Description`}),(0,z.jsx)(zw,{id:`description`,name:`description`,value:r.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})]}),(0,z.jsx)(Bw,{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?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(wo,{className:`mr-2 h-5 w-5 animate-spin`}),`Sending...`]}):`Send Me a Free Consultation`})]})},xA=()=>{let 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=Gf(`/host`),r=Kf(`Oregon Coast Airbnb Management`,`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/cd2e1db7d328f6688d9b2cec2fc13ae5.jpg`),i=[{icon:Fa,title:`Professional Photography`,description:`Original, high-quality photos that showcase your property's unique character and coastal setting.`},{icon:ao,title:`Listing Optimization`,description:`SEO-optimized titles, descriptions, and pricing strategies that drive bookings and maximize revenue.`},{icon:Ao,title:`Guest Communication`,description:`24/7 responsive support from inquiry to checkout. We handle everything so you don't have to.`},{icon:co,title:`Guest Experience Tools`,description:`Custom guides, local recommendations, and resources that turn first-time guests into repeat visitors.`},{icon:V,title:`Local Knowledge`,description:`Years of on-the-ground expertise from Astoria to Brookings. We know what guests want and need.`},{icon:La,title:`Performance Reporting`,description:`Transparent monthly reports with booking data, revenue insights, and actionable recommendations.`}];return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:e}),(0,z.jsx)(`meta`,{name:`description`,content:t}),(0,z.jsx)(`meta`,{name:`robots`,content:`index, follow`}),(0,z.jsx)(`link`,{rel:`canonical`,href:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:e}),(0,z.jsx)(`meta`,{property:`og:description`,content:t}),(0,z.jsx)(`meta`,{property:`og:image`,content:r}),(0,z.jsx)(`meta`,{property:`og:url`,content:n}),(0,z.jsx)(`meta`,{property:`og:type`,content:`website`}),(0,z.jsx)(`meta`,{name:`twitter:card`,content:`summary_large_image`}),(0,z.jsx)(`meta`,{name:`twitter:title`,content:e}),(0,z.jsx)(`meta`,{name:`twitter:description`,content:t}),(0,z.jsx)(`meta`,{name:`twitter:image`,content:r})]}),(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsx)(jS,{}),(0,z.jsxs)(`section`,{className:`relative h-screen flex items-center justify-center overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/50 via-black/40 to-black/60`})]}),(0,z.jsxs)(q.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:[(0,z.jsxs)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white mb-6 drop-shadow-2xl`,children:[`Your Oregon Coast Property,`,(0,z.jsx)(`br`,{}),`Fully Managed.`]}),(0,z.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.`}),(0,z.jsx)(q.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`})]})]}),(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50`,children:(0,z.jsx)(`div`,{className:`max-w-6xl mx-auto`,children:(0,z.jsxs)(q.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:[(0,z.jsxs)(`div`,{children:[(0,z.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`}),(0,z.jsxs)(`p`,{className:`text-lg text-gray-700 mb-4 leading-relaxed`,children:[`Take the `,(0,z.jsx)(`strong`,{children:`Carriage House at Dragons Cove`}),` in Yachats. During its peak season (May through October), this property averaged just `,(0,z.jsx)(`strong`,{children:`9 available nights`}),`.`]}),(0,z.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.`}),(0,z.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 `,(0,z.jsx)(Sa,{className:`ml-2 w-5 h-5 group-hover:translate-x-1 transition-transform`})]})]}),(0,z.jsx)(`div`,{className:`rounded-2xl overflow-hidden shadow-2xl`,children:(0,z.jsx)(`img`,{src:`https://images.unsplash.com/photo-1692525084492-1b66e54a65f3`,alt:`Carriage House at Dragons Cove`,className:`w-full h-auto object-cover`})})]})})}),(0,z.jsx)(`section`,{className:`py-20 px-4 bg-white`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsx)(q.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:`text-center mb-16`,children:(0,z.jsxs)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:[`Everything Your Property Needs,`,(0,z.jsx)(`br`,{}),`Nothing You Have To Do`]})}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 gap-10`,children:i.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:t*.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:[(0,z.jsx)(`div`,{className:`flex-shrink-0`,children:(0,z.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:(0,z.jsx)(e.icon,{className:`w-7 h-7 text-white`})})}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 mb-2`,children:e.title}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed`,children:e.description})]})]},t))})]})}),(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-br from-teal-50 to-green-50`,children:(0,z.jsx)(`div`,{className:`max-w-4xl mx-auto`,children:(0,z.jsxs)(q.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:`text-center`,children:[(0,z.jsxs)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-8`,children:[`We're Not a National Management Company.`,(0,z.jsx)(`br`,{}),`We're Local.`]}),(0,z.jsxs)(`div`,{className:`space-y-6 text-lg text-gray-700 leading-relaxed`,children:[(0,z.jsxs)(`p`,{children:[`Every property we manage gets `,(0,z.jsx)(`strong`,{children:`original photography`}),`—not stock images. Every listing includes `,(0,z.jsx)(`strong`,{children:`custom local guides`}),`—not generic templates.`]}),(0,z.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.`}),(0,z.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.`})]})]})})}),(0,z.jsx)(`section`,{className:`py-20 px-4 bg-white`,children:(0,z.jsx)(`div`,{className:`max-w-4xl mx-auto`,children:(0,z.jsxs)(q.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:`relative`,children:[(0,z.jsx)(Io,{className:`absolute -top-6 -left-4 w-16 h-16 text-teal-200 opacity-50`}),(0,z.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."`}),(0,z.jsxs)(`div`,{className:`pl-12`,children:[(0,z.jsx)(`p`,{className:`text-lg font-semibold text-gray-900`,children:`Property Owner`}),(0,z.jsx)(`p`,{className:`text-gray-600`,children:`Yachats, OR`})]})]})})}),(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50`,children:(0,z.jsx)(`div`,{className:`max-w-4xl mx-auto`,children:(0,z.jsxs)(q.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:`text-center mb-12`,children:[(0,z.jsxs)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-6`,children:[`We Work Best With Properties`,(0,z.jsx)(`br`,{}),`That Have Potential`]}),(0,z.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.`}),(0,z.jsx)(`p`,{className:`text-xl font-semibold text-gray-900 mb-6`,children:`We currently manage properties in:`}),(0,z.jsx)(`ul`,{className:`space-y-3 text-left max-w-md mx-auto`,children:[`Yachats & Cape Perpetua`,`Newport & Nye Beach`,`Lincoln City & Depoe Bay`,`Cannon Beach & Seaside`,`Entire Oregon Coast`].map((e,t)=>(0,z.jsxs)(q.li,{initial:{opacity:0,x:-20},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.4,delay:t*.1},className:`flex items-center text-lg text-gray-700`,children:[(0,z.jsx)(V,{className:`w-5 h-5 text-teal-600 mr-3 flex-shrink-0`}),e]},t))})]})})}),(0,z.jsx)(`section`,{id:`contact`,className:`py-20 px-4 bg-white`,children:(0,z.jsx)(`div`,{className:`max-w-3xl mx-auto`,children:(0,z.jsxs)(q.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},children:[(0,z.jsxs)(`div`,{className:`text-center mb-12`,children:[(0,z.jsxs)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:[`Ready to Stop Managing`,(0,z.jsx)(`br`,{}),`and Start Earning?`]}),(0,z.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.`})]}),(0,z.jsx)(`div`,{className:`bg-gradient-to-br from-gray-50 to-white p-8 rounded-2xl shadow-xl border border-gray-200`,children:(0,z.jsx)(bA,{})})]})})}),(0,z.jsx)(`section`,{className:`py-12 px-4 bg-gray-100 border-t border-gray-200`,children:(0,z.jsx)(`div`,{className:`max-w-4xl mx-auto text-center`,children:(0,z.jsxs)(`p`,{className:`text-sm text-gray-600 leading-relaxed`,children:[(0,z.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.`]})})}),(0,z.jsx)(NS,{})]})]})},SA=({name:e,description:t,slug:n,image:r,backgroundImage:i})=>{let[a,o]=(0,y.useState)(r),[s,c]=(0,y.useState)(!1),l=`https://images.unsplash.com/photo-1506905925346-21bda4d32df4?auto=format&fit=crop&w=800&q=80`,u=()=>{s||(c(!0),o(l))},d=i||a||l;return(0,z.jsxs)(q.div,{whileHover:{y:-4},transition:{duration:.3},className:`editorial-card overflow-hidden flex flex-col h-full group`,children:[(0,z.jsx)(dn,{to:`/town/${n}`,className:`block h-56 overflow-hidden relative bg-parchment`,children:i?(0,z.jsx)(`div`,{className:`w-full h-full bg-cover bg-center transition-transform duration-700 group-hover:scale-105`,style:{backgroundImage:`url(${d})`},role:`img`,"aria-label":`Scenic view of ${e}`}):(0,z.jsx)(`img`,{src:d,alt:`Scenic view of ${e}`,onError:u,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`})}),(0,z.jsxs)(`div`,{className:`p-6 md:p-8 flex flex-col flex-grow bg-white`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-serif font-bold uppercase tracking-widest text-primary mb-4`,children:e}),(0,z.jsx)(`p`,{className:`text-foreground font-sans text-sm md:text-base mb-6 leading-relaxed line-clamp-3 flex-grow`,children:t}),(0,z.jsxs)(dn,{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 `,(0,z.jsx)(Sa,{className:`ml-2 w-4 h-4`})]})]})]})},CA=({title:e,subtitle:t,description:n,ctaButtonText:r,secondaryText:i,backgroundImage:a})=>{let o=()=>{document.getElementById(`town-grid`)?.scrollIntoView({behavior:`smooth`})},s=!!a;return(0,z.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 ${s?``:`bg-white`}`,children:[s&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`div`,{className:`absolute inset-0 z-0 bg-cover bg-center`,style:{backgroundImage:`url(${a})`}}),(0,z.jsx)(`div`,{className:`absolute inset-0 z-0 bg-black/60`})]}),(0,z.jsxs)(`div`,{className:`relative z-10 max-w-4xl mx-auto text-center flex flex-col items-center`,children:[t&&(0,z.jsx)(q.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 ${s?`text-white/80`:`text-primary`}`,children:t}),e&&(0,z.jsx)(q.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 ${s?`text-white`:`text-gray-900`}`,children:e}),n&&(0,z.jsx)(q.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 ${s?`text-white/90`:`text-gray-600`}`,children:n}),r&&(0,z.jsx)(q.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},transition:{duration:.5,delay:.3,ease:`easeOut`},children:(0,z.jsx)(Bw,{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 ${s?`bg-white text-gray-900 hover:bg-gray-100 hover:text-gray-900`:``}`,children:r})}),i&&(0,z.jsx)(q.p,{initial:{opacity:0},animate:{opacity:1},transition:{duration:.7,delay:.5},className:`mt-6 text-sm font-medium ${s?`text-white/70`:`text-gray-500`}`,children:i})]})]})},wA=[{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`}]}],TA={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.1}}},EA={hidden:{y:20,opacity:0},visible:{y:0,opacity:1,transition:{type:`spring`,stiffness:100}}},DA=({events:e=wA})=>(0,z.jsx)(`section`,{className:`py-20 px-4 bg-transparent border-t border-stone-200`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(`p`,{className:`text-sm md:text-base font-semibold text-stone-500 uppercase tracking-wider mb-2`,children:`Plan Your Visit`}),(0,z.jsx)(`h2`,{className:`text-3xl md:text-5xl font-serif font-bold text-stone-900 tracking-tight mb-4`,children:`Regional Events`}),(0,z.jsx)(`div`,{className:`w-24 h-[1px] bg-stone-300 mx-auto`}),(0,z.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.`})]}),(0,z.jsx)(q.div,{variants:TA,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(e=>(0,z.jsx)(q.div,{variants:EA,className:`h-full`,children:(0,z.jsxs)(Ew,{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:[(0,z.jsx)(Dw,{className:`bg-transparent pb-4 border-b border-stone-100`,children:(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,z.jsx)(V,{className:`w-5 h-5 text-stone-400`}),(0,z.jsx)(Ow,{className:`text-xl font-serif font-bold text-stone-900 uppercase tracking-wide`,children:e.town})]})}),(0,z.jsx)(kw,{className:`pt-6 flex-grow`,children:(0,z.jsx)(`ul`,{className:`space-y-4`,children:e.events.map((e,t)=>(0,z.jsxs)(`li`,{className:`flex flex-col gap-1 border-b border-stone-100 last:border-0 pb-4 last:pb-0`,children:[(0,z.jsx)(`span`,{className:`font-semibold text-stone-800 leading-tight`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center text-sm text-stone-500 gap-1.5 mt-1 font-medium`,children:[(0,z.jsx)(Pa,{className:`w-3.5 h-3.5 flex-shrink-0`}),(0,z.jsxs)(`span`,{children:[e.month,` • `,e.dates]})]})]},t))})})]})},e.town))})]})}),OA={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`},kA=da(`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`}}),AA=y.forwardRef(({className:e,variant:t,...n},r)=>(0,z.jsx)(`div`,{ref:r,role:`alert`,className:R(kA({variant:t}),e),...n}));AA.displayName=`Alert`;var jA=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(`h5`,{ref:n,className:R(`mb-1 font-medium leading-none tracking-tight`,e),...t}));jA.displayName=`AlertTitle`;var MA=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(`div`,{ref:n,className:R(`text-sm [&_p]:leading-relaxed`,e),...t}));MA.displayName=`AlertDescription`;var NA=()=>{let[e,t]=(0,y.useState)([]),[n,r]=(0,y.useState)(!0),[i,a]=(0,y.useState)(null),o=Gf(Ze().pathname);(0,y.useEffect)(()=>{(()=>{try{if(r(!0),!AS||!AS.northCoast)throw Error(`Region data not found`);let e=AS.northCoast.filter(Boolean).map(e=>{let t=e.route.split(`/`).pop();return{...e,slug:t,heroImage:OA[t]||e.heroImage}});t(e)}catch{a(`Failed to load regional towns. Please try refreshing the page.`)}finally{r(!1)}})()},[]);let s=[{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(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:`Oregon Coast Travel Guide - North Coast`}),(0,z.jsx)(`meta`,{name:`description`,content:`Explore the rugged North Coast of Oregon with charming towns, scenic beaches, lighthouses, and coastal attractions.`}),(0,z.jsx)(`link`,{rel:`canonical`,href:o}),(0,z.jsx)(`meta`,{name:`geo.region`,content:`US-OR`}),(0,z.jsx)(`meta`,{name:`geo.placename`,content:`North Coast, Oregon`})]}),(0,z.jsx)(VS,{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`}]}),(0,z.jsxs)(`div`,{className:`min-h-screen bg-[#FFF8F0] flex flex-col font-sans`,children:[(0,z.jsx)(jS,{}),(0,z.jsx)(CA,{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:OA[`cannon-beach`]||OA.astoria}),(0,z.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?(0,z.jsxs)(AA,{variant:`destructive`,className:`max-w-2xl mx-auto`,children:[(0,z.jsx)(Ua,{className:`h-4 w-4`}),(0,z.jsx)(jA,{children:`Error`}),(0,z.jsx)(MA,{children:i})]}):(0,z.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((e,t)=>(0,z.jsxs)(`div`,{className:`animate-pulse flex flex-col h-full bg-white rounded-none shadow-md border border-stone-200 overflow-hidden`,children:[(0,z.jsx)(`div`,{className:`h-56 bg-stone-100 w-full`}),(0,z.jsxs)(`div`,{className:`p-6 flex flex-col flex-grow`,children:[(0,z.jsx)(`div`,{className:`h-6 bg-stone-100 rounded w-3/4 mb-4`}),(0,z.jsx)(`div`,{className:`h-4 bg-stone-100 rounded w-full mb-2`}),(0,z.jsx)(`div`,{className:`h-4 bg-stone-100 rounded w-2/3 mb-6`}),(0,z.jsx)(`div`,{className:`mt-auto h-4 bg-stone-100 rounded w-1/3`})]})]},t)):e.map((e,t)=>(0,z.jsx)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`group h-full`,children:(0,z.jsx)(SA,{name:e.name,description:e.description,slug:e.slug,image:e.heroImage})},e.slug))})}),(0,z.jsx)(DA,{}),(0,z.jsx)(RS,{faqs:s,title:`North Coast Visitor FAQs`}),(0,z.jsx)(NS,{})]})]})},PA=[{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`}]}],FA=()=>{let[e,t]=(0,y.useState)([]),[n,r]=(0,y.useState)(!0),[i,a]=(0,y.useState)(null),o=Gf(Ze().pathname);(0,y.useEffect)(()=>{(()=>{try{if(r(!0),!AS||!AS.centralCoast)throw Error(`Region data not found`);let e=AS.centralCoast.filter(Boolean).map(e=>{let t=e.route.split(`/`).pop();return{...e,slug:t,heroImage:OA[t]||e.heroImage}});t(e)}catch{a(`Failed to load regional towns. Please try refreshing the page.`)}finally{r(!1)}})()},[]);let s=[{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(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:`Oregon Coast Travel Guide - Central Coast`}),(0,z.jsx)(`meta`,{name:`description`,content:`Discover the Central Coast of Oregon featuring beautiful beaches, sea lions, tide pools, and family-friendly attractions.`}),(0,z.jsx)(`link`,{rel:`canonical`,href:o}),(0,z.jsx)(`meta`,{name:`geo.region`,content:`US-OR`}),(0,z.jsx)(`meta`,{name:`geo.placename`,content:`Central Coast, Oregon`})]}),(0,z.jsx)(VS,{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`}]}),(0,z.jsxs)(`div`,{className:`min-h-screen bg-[hsl(var(--cream-bg))] flex flex-col font-sans`,children:[(0,z.jsx)(jS,{}),(0,z.jsx)(CA,{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:OA.newport||OA[`pacific-city`]}),(0,z.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?(0,z.jsxs)(AA,{variant:`destructive`,className:`max-w-2xl mx-auto`,children:[(0,z.jsx)(Ua,{className:`h-4 w-4`}),(0,z.jsx)(jA,{children:`Error`}),(0,z.jsx)(MA,{children:i})]}):(0,z.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((e,t)=>(0,z.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:[(0,z.jsx)(`div`,{className:`h-56 bg-stone-100 w-full`}),(0,z.jsxs)(`div`,{className:`p-6 flex flex-col flex-grow`,children:[(0,z.jsx)(`div`,{className:`h-6 bg-stone-100 rounded w-3/4 mb-4`}),(0,z.jsx)(`div`,{className:`h-4 bg-stone-100 rounded w-full mb-2`}),(0,z.jsx)(`div`,{className:`h-4 bg-stone-100 rounded w-2/3 mb-6`}),(0,z.jsx)(`div`,{className:`mt-auto h-4 bg-stone-100 rounded w-1/3`})]})]},t)):e.map((e,t)=>(0,z.jsx)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`group h-full`,children:(0,z.jsx)(SA,{name:e.name,description:e.description,slug:e.slug,image:e.heroImage})},e.slug))})}),(0,z.jsx)(DA,{events:PA}),(0,z.jsx)(RS,{faqs:s,title:`Central Coast Visitor FAQs`}),(0,z.jsx)(NS,{})]})]})},IA=[{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`}]}],LA={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`},RA=()=>{let[e,t]=(0,y.useState)([]),[n,r]=(0,y.useState)(!0),[i,a]=(0,y.useState)(null),o=Gf(Ze().pathname);(0,y.useEffect)(()=>{(()=>{try{if(r(!0),!AS||!AS.southCoast)throw Error(`Region data not found`);let e=AS.southCoast.filter(Boolean).map(e=>{let t=e.route.split(`/`).pop(),n=LA[t]||OA[t]||e.heroImage;return{...e,slug:t,heroImage:n}});t(e)}catch{a(`Failed to load regional towns. Please try refreshing the page.`)}finally{r(!1)}})()},[]);let s=[{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(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:`Oregon Coast Travel Guide - South Coast`}),(0,z.jsx)(`meta`,{name:`description`,content:`Experience the South Coast of Oregon with dramatic cliffs, hidden coves, outdoor adventures, and coastal charm.`}),(0,z.jsx)(`link`,{rel:`canonical`,href:o}),(0,z.jsx)(`meta`,{name:`geo.region`,content:`US-OR`}),(0,z.jsx)(`meta`,{name:`geo.placename`,content:`South Coast, Oregon`})]}),(0,z.jsx)(VS,{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`}]}),(0,z.jsxs)(`div`,{className:`min-h-screen bg-[hsl(var(--cream-bg))] flex flex-col font-sans`,children:[(0,z.jsx)(jS,{}),(0,z.jsx)(CA,{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:LA.brookings}),(0,z.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?(0,z.jsxs)(AA,{variant:`destructive`,className:`max-w-2xl mx-auto`,children:[(0,z.jsx)(Ua,{className:`h-4 w-4`}),(0,z.jsx)(jA,{children:`Error`}),(0,z.jsx)(MA,{children:i})]}):(0,z.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((e,t)=>(0,z.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:[(0,z.jsx)(`div`,{className:`h-56 bg-stone-100 w-full`}),(0,z.jsxs)(`div`,{className:`p-6 flex flex-col flex-grow`,children:[(0,z.jsx)(`div`,{className:`h-6 bg-stone-100 rounded w-3/4 mb-4`}),(0,z.jsx)(`div`,{className:`h-4 bg-stone-100 rounded w-full mb-2`}),(0,z.jsx)(`div`,{className:`h-4 bg-stone-100 rounded w-2/3 mb-6`}),(0,z.jsx)(`div`,{className:`mt-auto h-4 bg-stone-100 rounded w-1/3`})]})]},t)):e.map((e,t)=>(0,z.jsx)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`group h-full`,children:(0,z.jsx)(SA,{name:e.name,description:e.description,slug:e.slug,image:e.heroImage})},e.slug))})}),(0,z.jsx)(DA,{events:IA}),(0,z.jsx)(RS,{faqs:s,title:`South Coast Visitor FAQs`}),(0,z.jsx)(NS,{})]})]})},zA=`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.`,BA=[{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.`}],VA=[{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.'`}],HA=[{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.`}],UA=`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.`,WA=[{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`}],GA=[{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`}],KA=[{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:`/images/hotels/cannon-beach/tolovana-inn.jpg`},{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`}],qA=[{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:`$$`}],JA=`
<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>
`,YA=[{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.`}],XA=[{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.`}],ZA=[{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`}],QA=[{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.`}],$A=`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.`,ej=[{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.`}],tj=[{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.`}],nj=[{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`}],rj=[{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.`}],ij=`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.`,aj=[{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.`}],oj=[{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.`}],sj=[{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`}],cj=[{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.`}],lj=(e,t)=>{let n=0;for(let t=0;t<e.length;t++)n=e.charCodeAt(t)+((n<<5)-n);return{latOffset:Math.abs(Math.sin(n+t))*.02-.01,lngOffset:Math.abs(Math.cos(n+t))*.02-.01}},uj=e=>e?.toString().toLowerCase().replace(/\s+/g,`-`).replace(/[^\w-]/g,``)||``,dj=(()=>{let e=[];return Object.values(Y).forEach(t=>{e.push({id:`town-${uj(t.name)}`,name:t.name,town:t.name,category:`Town`,lat:t.geo?.lat||45,lng:t.geo?.lng||-124,description:t.description,imageUrl:t.heroImage,link:t.route})}),Object.entries({Astoria:{attractions:BA,trails:VA,restaurants:HA},"Cannon Beach":{attractions:WA,trails:GA,restaurants:qA},Newport:{attractions:YA,trails:XA,restaurants:QA},Florence:{attractions:ej,trails:tj,restaurants:rj},Bandon:{attractions:aj,trails:oj,restaurants:cj}}).forEach(([t,n])=>{let r=Y[uj(t)]?.geo||{lat:45,lng:-124};n.attractions?.forEach((n,i)=>{let a=lj(n.name,i);e.push({id:`attraction-${uj(t)}-${uj(n.name)}`,name:n.name,town:t,category:`Attractions`,lat:r.lat+a.latOffset,lng:r.lng+a.lngOffset,description:n.description,imageUrl:n.image||`https://images.unsplash.com/photo-1507525428034-b723cf961d3e?auto=format&fit=crop&w=800&q=80`,link:`/town/${uj(t)}#${uj(n.name)}`})}),n.trails?.forEach((n,i)=>{let a=lj(n.name,i+100);e.push({id:`trail-${uj(t)}-${uj(n.name)}`,name:n.name,town:t,category:`Trails`,lat:r.lat+a.latOffset,lng:r.lng+a.lngOffset,description:n.description,imageUrl:n.image||`https://images.unsplash.com/photo-1511497584788-876760111969?auto=format&fit=crop&w=800&q=80`,link:`/town/${uj(t)}#${uj(n.name)}`})}),n.restaurants?.forEach((n,i)=>{let a=lj(n.name,i+200);e.push({id:`restaurant-${uj(t)}-${uj(n.name)}`,name:n.name,town:t,category:`Restaurants`,lat:r.lat+a.latOffset,lng:r.lng+a.lngOffset,description:n.description,imageUrl:n.image||`https://images.unsplash.com/photo-1414235077428-338989a2e8c0?auto=format&fit=crop&w=800&q=80`,link:`/town/${uj(t)}#${uj(n.name)}`})})}),Object.entries(qC).forEach(([t,n])=>{let r=Y[uj(t)]?.geo;r&&n.forEach((n,i)=>{if(n.name===`Coming Soon`)return;let a=lj(n.name,i+300);e.push({id:`hotel-${uj(t)}-${uj(n.name)}`,name:n.name,town:t,category:`Hotels`,lat:r.lat+a.latOffset,lng:r.lng+a.lngOffset,description:`Experience a wonderful stay at ${n.name} in ${t}. Book now for the best rates and ocean views.`,imageUrl:n.photoUrl,link:`/hotel/${uj(t)}-${uj(n.name)}`,affiliateLink:n.link})})}),e})(),fj=e=>dj.find(t=>t.id===e);function pj(){let{id:e}=tt(),t=fj(e);return t?(0,z.jsxs)(`div`,{className:`min-h-screen bg-gray-50 flex flex-col`,children:[(0,z.jsxs)(J,{children:[(0,z.jsxs)(`title`,{children:[t.name,` | Book on Expedia | Oregon Coast`]}),(0,z.jsx)(`meta`,{name:`description`,content:`Stay at ${t.name} in ${t.town}. Book your Oregon Coast getaway today on Expedia for the best rates.`})]}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`main`,{className:`flex-grow max-w-4xl mx-auto w-full px-4 sm:px-6 lg:px-8 py-8`,children:[(0,z.jsxs)(dn,{to:`/map`,className:`inline-flex items-center text-sm font-medium text-gray-500 hover:text-[#2d5016] mb-6`,children:[(0,z.jsx)(xa,{className:`w-4 h-4 mr-1`}),` Back to Interactive Map`]}),(0,z.jsxs)(`article`,{className:`bg-white rounded-2xl shadow-lg border border-gray-200 overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`h-64 sm:h-96 w-full relative`,children:[(0,z.jsx)(`img`,{src:t.imageUrl,alt:t.name,className:`w-full h-full object-cover`,onError:e=>{e.target.src=`https://images.unsplash.com/photo-1582719508461-905c673771fd?auto=format&fit=crop&w=800&q=80`}}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent flex items-end`,children:(0,z.jsxs)(`div`,{className:`p-6 sm:p-8 w-full flex flex-col sm:flex-row justify-between items-end gap-4`,children:[(0,z.jsxs)(`div`,{children:[(0,z.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:[(0,z.jsx)(Ta,{className:`w-3 h-3 mr-1`}),` Featured Lodging`]}),(0,z.jsx)(`h1`,{className:`text-3xl sm:text-4xl font-bold text-white mb-2 drop-shadow-md`,children:t.name}),(0,z.jsxs)(`p`,{className:`text-gray-200 flex items-center text-sm sm:text-base font-medium`,children:[(0,z.jsx)(V,{className:`w-4 h-4 mr-1`}),` `,t.town,`, Oregon Coast`]})]}),t.affiliateLink&&(0,z.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 `,(0,z.jsx)(no,{className:`w-5 h-5 ml-2`})]})]})})]}),(0,z.jsxs)(`div`,{className:`p-6 sm:p-8`,children:[(0,z.jsxs)(`div`,{className:`grid md:grid-cols-3 gap-8`,children:[(0,z.jsxs)(`div`,{className:`md:col-span-2`,children:[(0,z.jsx)(`h2`,{className:`text-2xl font-bold text-gray-900 mb-4`,children:`About this Property`}),(0,z.jsx)(`div`,{className:`prose max-w-none text-gray-700 mb-8`,children:(0,z.jsx)(`p`,{className:`leading-relaxed text-lg`,children:t.description})}),(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 mb-4`,children:`Why Book Here?`}),(0,z.jsxs)(`ul`,{className:`space-y-3 mb-8`,children:[(0,z.jsxs)(`li`,{className:`flex items-center text-gray-700`,children:[(0,z.jsx)(Ka,{className:`w-5 h-5 text-green-500 mr-3 shrink-0`}),` Secure your reservation instantly on Expedia.`]}),(0,z.jsxs)(`li`,{className:`flex items-center text-gray-700`,children:[(0,z.jsx)(Ka,{className:`w-5 h-5 text-green-500 mr-3 shrink-0`}),` Find the best rates and exclusive deals.`]}),(0,z.jsxs)(`li`,{className:`flex items-center text-gray-700`,children:[(0,z.jsx)(Ka,{className:`w-5 h-5 text-green-500 mr-3 shrink-0`}),` Read verified guest reviews before booking.`]})]})]}),(0,z.jsxs)(`div`,{className:`bg-gray-50 p-6 rounded-xl border border-gray-100 h-fit`,children:[(0,z.jsxs)(`h3`,{className:`font-bold text-gray-900 mb-4 flex items-center border-b pb-2`,children:[(0,z.jsx)(Jo,{className:`w-5 h-5 text-yellow-500 mr-2`}),` Location Info`]}),(0,z.jsxs)(`div`,{className:`space-y-4 text-sm`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`span`,{className:`block text-gray-500 font-medium mb-1`,children:`Town`}),(0,z.jsx)(`span`,{className:`text-gray-900 font-semibold`,children:t.town})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`span`,{className:`block text-gray-500 font-medium mb-1`,children:`Coordinates`}),(0,z.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)]})]}),(0,z.jsx)(`div`,{className:`pt-4 mt-4 border-t`,children:(0,z.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:[(0,z.jsx)(V,{className:`w-4 h-4 mr-2`}),` View on Google Maps`]})})]})]})]}),t.affiliateLink&&(0,z.jsxs)(`div`,{className:`mt-8 pt-8 border-t border-gray-200 text-center`,children:[(0,z.jsxs)(`h3`,{className:`text-xl font-bold text-gray-900 mb-4`,children:[`Ready to experience `,t.town,`?`]}),(0,z.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 `,(0,z.jsx)(no,{className:`w-6 h-6 ml-2`})]}),(0,z.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.`})]})]})]})]}),(0,z.jsx)(NS,{})]}):(0,z.jsxs)(`div`,{className:`min-h-screen flex flex-col bg-gray-50`,children:[(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`flex-grow flex items-center justify-center flex-col`,children:[(0,z.jsx)(`h2`,{className:`text-2xl font-bold text-gray-800 mb-4`,children:`Hotel Not Found`}),(0,z.jsxs)(dn,{to:`/map`,className:`text-[#2d5016] hover:underline flex items-center`,children:[(0,z.jsx)(xa,{className:`w-4 h-4 mr-2`}),` Back to Map`]})]}),(0,z.jsx)(NS,{})]})}var mj=({hideOnHomepage:e=!1})=>{let[t,n]=(0,y.useState)(!1),[r,i]=(0,y.useState)(null),a=Ze(),o=F(),{isAuthenticated:s=!1,logout:c=()=>{}}=Qd()||{},l=a.pathname===`/`;if(e&&l)return null;let u={"North Coast":`/north-coast`,"Central Coast":`/central-coast`,"South Coast":`/south-coast`},d={"North Coast":AS.northCoast,"Central Coast":AS.centralCoast,"South Coast":AS.southCoast},f=qf(a.pathname),p={"@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`]},m=()=>{c&&c(),o(`/`),n(!1)},h=({title:e,regionKey:t})=>(0,z.jsxs)(`div`,{className:`relative group h-full flex items-center`,onMouseEnter:()=>i(t),onMouseLeave:()=>i(null),children:[(0,z.jsxs)(dn,{to:u[t],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:[e,(0,z.jsx)(za,{className:`ml-1 w-3 h-3 text-[var(--nav-text)] opacity-70`})]}),(0,z.jsx)(Sx,{children:r===t&&(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`px-6 py-4 border-b border-[var(--nav-border)] bg-[var(--nav-hover)]`,children:(0,z.jsx)(dn,{to:u[t],className:`text-xs font-serif font-bold text-[var(--nav-text)] uppercase tracking-widest hover:text-white/80 transition-colors`,children:`View All Towns`})}),d[t].map((e,t)=>(0,z.jsx)(dn,{to:e.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:e.name},t))]})})]});return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(J,{children:[f&&(0,z.jsx)(`script`,{type:`application/ld+json`,children:JSON.stringify(f)}),(0,z.jsx)(`script`,{type:`application/ld+json`,children:JSON.stringify(p)}),(0,z.jsx)(`link`,{rel:`canonical`,href:`https://oregoncoastal.com${a.pathname}`})]}),(0,z.jsxs)(`nav`,{className:`sticky top-0 z-50 bg-[var(--nav-bg)] border-b border-[var(--nav-border)] shadow-md flex flex-col`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 w-full`,children:[(0,z.jsxs)(`div`,{className:`md:hidden flex justify-between items-center h-20`,children:[(0,z.jsx)(dn,{to:`/`,className:`flex-shrink-0`,children:(0,z.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`})}),(0,z.jsxs)(`div`,{className:`flex items-center gap-4`,children:[s&&(0,z.jsx)(`button`,{onClick:m,className:`text-[var(--nav-text)] hover:text-red-400 transition-colors`,children:(0,z.jsx)(Eo,{className:`w-5 h-5`})}),(0,z.jsx)(`button`,{onClick:()=>n(!t),className:`text-[var(--nav-text)] hover:text-white/80 transition-colors`,children:t?(0,z.jsx)(ps,{className:`w-6 h-6`}):(0,z.jsx)(ko,{className:`w-6 h-6`})})]})]}),(0,z.jsxs)(`div`,{className:`hidden md:flex items-center justify-center h-24 relative`,children:[(0,z.jsxs)(`div`,{className:`flex items-center space-x-2 mr-6 h-full`,children:[(0,z.jsx)(dn,{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`}),(0,z.jsx)(h,{title:`North Coast`,regionKey:`North Coast`}),(0,z.jsx)(h,{title:`Central Coast`,regionKey:`Central Coast`})]}),(0,z.jsx)(dn,{to:`/`,className:`flex-shrink-0 px-8`,children:(0,z.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`})}),(0,z.jsxs)(`div`,{className:`flex items-center space-x-2 ml-6 h-full relative right-[160px]`,children:[(0,z.jsx)(h,{title:`South Coast`,regionKey:`South Coast`}),(0,z.jsxs)(dn,{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:[(0,z.jsx)(Oo,{className:`w-3 h-3 mr-2 opacity-70`}),` Maps`]}),s&&(0,z.jsxs)(Bw,{onClick:m,variant:`ghost`,className:`text-[var(--nav-text)] hover:bg-red-900/50 hover:text-white ml-4`,size:`sm`,children:[(0,z.jsx)(Eo,{className:`w-4 h-4 mr-2`}),` Logout`]})]})]})]}),(0,z.jsx)(Sx,{children:t&&(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`px-6 py-6 space-y-4`,children:[(0,z.jsx)(dn,{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`}),(0,z.jsxs)(dn,{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:[(0,z.jsx)(Oo,{className:`w-4 h-4 mr-2 opacity-70`}),` Maps`]}),(0,z.jsx)(dn,{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`}),(0,z.jsx)(dn,{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`}),(0,z.jsx)(dn,{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`})]})})}),f.itemListElement.length>1&&(0,z.jsx)(`div`,{className:`bg-[var(--nav-bg)] border-t border-[var(--nav-border)] py-3 hidden md:block shadow-inner`,children:(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto px-4 sm:px-6 lg:px-8`,children:(0,z.jsx)(`ol`,{className:`flex items-center space-x-3 text-xs font-sans text-white/60`,children:f.itemListElement.map((e,t)=>(0,z.jsxs)(`li`,{className:`flex items-center`,children:[t>0&&(0,z.jsx)(Va,{className:`w-3 h-3 mx-2 text-[var(--nav-border)]`}),t===0?(0,z.jsx)(dn,{to:e.item.replace(`https://oregoncoastal.com`,``)||`/`,className:`hover:text-white transition-colors`,children:(0,z.jsx)(po,{className:`w-3 h-3`})}):t===f.itemListElement.length-1?(0,z.jsx)(`span`,{className:`font-medium text-[var(--nav-text)] tracking-widest uppercase`,children:e.name}):(0,z.jsx)(dn,{to:e.item.replace(`https://oregoncoastal.com`,``),className:`hover:text-[var(--nav-text)] transition-colors tracking-widest uppercase`,children:e.name})]},t))})})})]})]})},hj=({attractions:e,townName:t,geo:n,url:r})=>{if(!e||!Array.isArray(e)||e.length===0)return null;let i={"@context":`https://schema.org`,"@graph":e.map(e=>{let i={"@type":`TouristAttraction`,name:e?.name||e?.title||`Untitled Attraction`,description:e?.description||``};return e?.image&&(i.image=e.image),r&&(i.url=r),t&&(i.address={"@type":`PostalAddress`,addressLocality:t,addressRegion:`OR`,addressCountry:`US`}),n&&typeof n.lat==`number`&&typeof n.lng==`number`&&(i.geo={"@type":`GeoCoordinates`,latitude:n.lat,longitude:n.lng}),i})};return(0,z.jsx)(J,{children:(0,z.jsx)(`script`,{type:`application/ld+json`,children:JSON.stringify(i)})})},gj=()=>{let{pathname:e}=Ze();return(0,y.useLayoutEffect)(()=>{window.scrollTo({top:0,left:0,behavior:`instant`})},[e]),null},_j=({src:e,alt:t,className:n,onClick:r,isActive:i,onImageLoad:a,onImageError:o})=>{let[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)(!1);return(0,z.jsxs)(`div`,{className:`relative ${n} bg-gray-100 overflow-hidden cursor-pointer group`,onClick:r,children:[!l&&!s&&(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gray-200 animate-pulse flex items-center justify-center`,children:(0,z.jsx)(wo,{className:`w-4 h-4 text-gray-400 animate-spin`})}),s?(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gray-100 flex items-center justify-center flex-col p-2 text-center border border-[#1C1C1A]`,children:(0,z.jsx)(mo,{className:`w-6 h-6 text-gray-300 mb-1`})}):(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-opacity duration-500 ${l?`opacity-100`:`opacity-0`}`,loading:`lazy`,onLoad:t=>{u(!0),a&&a(e)},onError:t=>{c(!0),u(!0),o&&o(e,t)}}),i&&(0,z.jsx)(`div`,{className:`absolute inset-0 ring-4 ring-lime-500 ring-inset z-10 pointer-events-none rounded-none`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors duration-300`})]})},vj=({featuredImage:e,images:t,title:n=`Photo Gallery`,townName:r})=>{let[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)([]),[c,l]=(0,y.useState)(!0),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!1),m=(0,y.useCallback)(async()=>{if(!r)l(!1);else{l(!0);try{let{data:t,error:n}=await Xd.from(`town_photos`).select(`id, image_url, thumbnail_url, caption, created_at`).eq(`town_name`,r).order(`created_at`,{ascending:!1});if(!n&&t&&t.length>0){let e=t.map(e=>({id:e.id,full:e.image_url,thumb:e.thumbnail_url||e.image_url,caption:e.caption||`Scenic view of ${r} landscape, Oregon Coast`,datePublished:e.created_at}));s(e),a(e[0].full)}else a(e)}catch{a(e)}finally{l(!1)}}},[r,e]);(0,y.useEffect)(()=>{s([]),d(!1),p(!1),a(null),m()},[r,m]),(0,y.useEffect)(()=>{p(!1),d(!1)},[i]);let h=(t||[]).map((e,t)=>({id:`static-${t}`,full:e,thumb:e,caption:`Scenic landscape view of ${r} on the Oregon Coast`})),g=o.length>0?o:h,_=i||(g.length>0?g[0].full:e),v=g.find(e=>e.full===_)?.caption||`Beautiful coastal scenery at ${r}, Oregon`,b=g.map(e=>({"@context":`https://schema.org`,"@type":`ImageObject`,url:e.full,name:e.caption||`${r} Photo`,description:e.caption||`A beautiful image representing ${r} on the Oregon Coast.`,contentUrl:e.full,thumbnailUrl:e.thumb,author:{"@type":`Organization`,name:`Oregon Coast Travel Guide`},datePublished:e.datePublished||new Date().toISOString()})),x=()=>{let e=g.findIndex(e=>e.full===_);if(e===-1)return;let t=(e+1)%g.length;a(g[t].full)},S=()=>{let e=g.findIndex(e=>e.full===_);if(e===-1)return;let t=(e-1+g.length)%g.length;a(g[t].full)};if(c&&g.length===0)return(0,z.jsx)(`section`,{className:`py-12 px-4 bg-gray-50 border-t border-[#1C1C1A]`,children:(0,z.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:(0,z.jsx)(wo,{className:`w-10 h-10 text-gray-400 animate-spin mb-4`})})});let C=g.filter(e=>e.full&&e.full.trim().length>0);return C.length===0&&!e?null:(0,z.jsxs)(`section`,{className:`py-12 px-4 bg-gradient-to-b from-white to-gray-50 border-t border-[#1C1C1A]`,children:[(0,z.jsx)(J,{children:b.map((e,t)=>(0,z.jsx)(`script`,{type:`application/ld+json`,children:JSON.stringify(e)},t))}),(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:`text-center mb-10`,children:[(0,z.jsx)(`h2`,{className:`text-3xl font-bold text-[#2d5016] mb-3`,children:n}),(0,z.jsx)(`div`,{className:`h-1 w-20 bg-lime-500 mx-auto rounded-none border border-[#1C1C1A] shadow-editorial`})]}),(0,z.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:[!f&&!u&&(0,z.jsx)(`div`,{className:`absolute inset-0 flex items-center justify-center bg-gray-100 z-10`,children:(0,z.jsx)(wo,{className:`w-10 h-10 text-gray-400 animate-spin`})}),u?(0,z.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:(0,z.jsx)(mo,{className:`w-16 h-16 mb-4 opacity-50`})}):(0,z.jsx)(`img`,{src:_,alt:v,className:`absolute inset-0 w-full h-full object-contain bg-black/80 transition-opacity duration-500 ${f?`opacity-100`:`opacity-0`}`,onLoad:()=>p(!0),onError:()=>{d(!0),p(!0)}},_),C.length>1&&(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(`button`,{onClick:e=>{e.stopPropagation(),S()},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:(0,z.jsx)(Ba,{className:`w-8 h-8`})}),(0,z.jsx)(`button`,{onClick:e=>{e.stopPropagation(),x()},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:(0,z.jsx)(Va,{className:`w-8 h-8`})})]}),v&&f&&!u&&(0,z.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:(0,z.jsx)(`p`,{className:`text-center font-medium font-sans uppercase tracking-widest text-sm`,children:v})})]}),C.length>0&&(0,z.jsx)(`div`,{className:`grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4`,children:C.map((e,t)=>(0,z.jsx)(_j,{src:e.thumb,alt:e.caption||`Thumbnail view of ${r}, Oregon`,isActive:_===e.full,onClick:()=>a(e.full),className:`w-full aspect-[4/3] object-cover rounded-none border border-[#1C1C1A] shadow-editorial transition-all duration-300 hover:-translate-y-1`},`${e.id||t}`))})]})]})},yj=({townName:e,region:t})=>{let n=t;if(!n&&e){let t=Object.values(Y).find(t=>t.name.toLowerCase()===e.toLowerCase());t&&(n=t.region)}if(!n)return null;let r={"North Coast":`#1f5233`,"Central Coast":`#1e3a8a`,"South Coast":`#92400e`}[n]||`#1f5233`;return(0,z.jsx)(q.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:r},children:n})};function bj(e){let 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 xj(e,t){return e instanceof Date?new e.constructor(t):new Date(t)}function Sj(e,t){let n=bj(e);return isNaN(t)?xj(e,NaN):(t&&n.setDate(n.getDate()+t),n)}var Cj=6048e5,wj=864e5,Tj={};function Ej(){return Tj}function Dj(e,t){let n=Ej(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=bj(e),a=i.getDay(),o=(a<r?7:0)+a-r;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function Oj(e){return Dj(e,{weekStartsOn:1})}function kj(e){let t=bj(e),n=t.getFullYear(),r=xj(e,0);r.setFullYear(n+1,0,4),r.setHours(0,0,0,0);let i=Oj(r),a=xj(e,0);a.setFullYear(n,0,4),a.setHours(0,0,0,0);let o=Oj(a);return t.getTime()>=i.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}function Aj(e){let t=bj(e);return t.setHours(0,0,0,0),t}function jj(e){let t=bj(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 Mj(e,t){let n=Aj(e),r=Aj(t),i=+n-jj(n),a=+r-jj(r);return Math.round((i-a)/wj)}function Nj(e){let t=kj(e),n=xj(e,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),Oj(n)}function Pj(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function Fj(e){if(!Pj(e)&&typeof e!=`number`)return!1;let t=bj(e);return!isNaN(Number(t))}function Ij(e){let t=bj(e),n=xj(e,0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}var Lj={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`}},Rj=(e,t,n)=>{let r,i=Lj[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r};function zj(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Bj={date:zj({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:zj({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:zj({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},Vj={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},Hj=(e,t,n,r)=>Vj[e];function Uj(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}var Wj={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:Uj({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:Uj({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:Uj({values:{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`]},defaultWidth:`wide`}),day:Uj({values:{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`]},defaultWidth:`wide`}),dayPeriod:Uj({values:{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`}},defaultWidth:`wide`,formattingValues:{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`}},defaultFormattingWidth:`wide`})};function Gj(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?qj(s,e=>e.test(o)):Kj(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function Kj(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function qj(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function Jj(e){return(t,n={})=>{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var Yj={code:`en-US`,formatDistance:Rj,formatLong:Bj,formatRelative:Hj,localize:Wj,match:{ordinalNumber:Jj({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:Gj({matchPatterns:{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},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:Gj({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:Gj({matchPatterns:{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},defaultMatchWidth:`wide`,parsePatterns:{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]},defaultParseWidth:`any`}),day:Gj({matchPatterns:{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},defaultMatchWidth:`wide`,parsePatterns:{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]},defaultParseWidth:`any`}),dayPeriod:Gj({matchPatterns:{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},defaultMatchWidth:`any`,parsePatterns:{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}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function Xj(e){let t=bj(e);return Mj(t,Ij(t))+1}function Zj(e){let t=bj(e),n=+Oj(t)-Nj(t);return Math.round(n/Cj)+1}function Qj(e,t){let n=bj(e),r=n.getFullYear(),i=Ej(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=xj(e,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);let s=Dj(o,t),c=xj(e,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);let l=Dj(c,t);return n.getTime()>=s.getTime()?r+1:n.getTime()>=l.getTime()?r:r-1}function $j(e,t){let n=Ej(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=Qj(e,t),a=xj(e,0);return a.setFullYear(i,0,r),a.setHours(0,0,0,0),Dj(a,t)}function eM(e,t){let n=bj(e),r=+Dj(n,t)-$j(n,t);return Math.round(r/Cj)+1}function tM(e,t){return(e<0?`-`:``)+Math.abs(e).toString().padStart(t,`0`)}var nM={y(e,t){let n=e.getFullYear(),r=n>0?n:1-n;return tM(t===`yy`?r%100:r,t.length)},M(e,t){let n=e.getMonth();return t===`M`?String(n+1):tM(n+1,2)},d(e,t){return tM(e.getDate(),t.length)},a(e,t){let 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 tM(e.getHours()%12||12,t.length)},H(e,t){return tM(e.getHours(),t.length)},m(e,t){return tM(e.getMinutes(),t.length)},s(e,t){return tM(e.getSeconds(),t.length)},S(e,t){let n=t.length,r=e.getMilliseconds();return tM(Math.trunc(r*10**(n-3)),t.length)}},rM={am:`am`,pm:`pm`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},iM={G:function(e,t,n){let r=+(e.getFullYear()>0);switch(t){case`G`:case`GG`:case`GGG`:return n.era(r,{width:`abbreviated`});case`GGGGG`:return n.era(r,{width:`narrow`});default:return n.era(r,{width:`wide`})}},y:function(e,t,n){if(t===`yo`){let t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:`year`})}return nM.y(e,t)},Y:function(e,t,n,r){let i=Qj(e,r),a=i>0?i:1-i;return t===`YY`?tM(a%100,2):t===`Yo`?n.ordinalNumber(a,{unit:`year`}):tM(a,t.length)},R:function(e,t){return tM(kj(e),t.length)},u:function(e,t){return tM(e.getFullYear(),t.length)},Q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`Q`:return String(r);case`QQ`:return tM(r,2);case`Qo`:return n.ordinalNumber(r,{unit:`quarter`});case`QQQ`:return n.quarter(r,{width:`abbreviated`,context:`formatting`});case`QQQQQ`:return n.quarter(r,{width:`narrow`,context:`formatting`});default:return n.quarter(r,{width:`wide`,context:`formatting`})}},q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`q`:return String(r);case`qq`:return tM(r,2);case`qo`:return n.ordinalNumber(r,{unit:`quarter`});case`qqq`:return n.quarter(r,{width:`abbreviated`,context:`standalone`});case`qqqqq`:return n.quarter(r,{width:`narrow`,context:`standalone`});default:return n.quarter(r,{width:`wide`,context:`standalone`})}},M:function(e,t,n){let r=e.getMonth();switch(t){case`M`:case`MM`:return nM.M(e,t);case`Mo`:return n.ordinalNumber(r+1,{unit:`month`});case`MMM`:return n.month(r,{width:`abbreviated`,context:`formatting`});case`MMMMM`:return n.month(r,{width:`narrow`,context:`formatting`});default:return n.month(r,{width:`wide`,context:`formatting`})}},L:function(e,t,n){let r=e.getMonth();switch(t){case`L`:return String(r+1);case`LL`:return tM(r+1,2);case`Lo`:return n.ordinalNumber(r+1,{unit:`month`});case`LLL`:return n.month(r,{width:`abbreviated`,context:`standalone`});case`LLLLL`:return n.month(r,{width:`narrow`,context:`standalone`});default:return n.month(r,{width:`wide`,context:`standalone`})}},w:function(e,t,n,r){let i=eM(e,r);return t===`wo`?n.ordinalNumber(i,{unit:`week`}):tM(i,t.length)},I:function(e,t,n){let r=Zj(e);return t===`Io`?n.ordinalNumber(r,{unit:`week`}):tM(r,t.length)},d:function(e,t,n){return t===`do`?n.ordinalNumber(e.getDate(),{unit:`date`}):nM.d(e,t)},D:function(e,t,n){let r=Xj(e);return t===`Do`?n.ordinalNumber(r,{unit:`dayOfYear`}):tM(r,t.length)},E:function(e,t,n){let r=e.getDay();switch(t){case`E`:case`EE`:case`EEE`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`EEEEE`:return n.day(r,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},e:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`e`:return String(a);case`ee`:return tM(a,2);case`eo`:return n.ordinalNumber(a,{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,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`c`:return String(a);case`cc`:return tM(a,t.length);case`co`:return n.ordinalNumber(a,{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){let r=e.getDay(),i=r===0?7:r;switch(t){case`i`:return String(i);case`ii`:return tM(i,t.length);case`io`:return n.ordinalNumber(i,{unit:`day`});case`iii`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`iiiii`:return n.day(r,{width:`narrow`,context:`formatting`});case`iiiiii`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},a:function(e,t,n){let r=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`});case`aaa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`aaaaa`:return n.dayPeriod(r,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(r,{width:`wide`,context:`formatting`})}},b:function(e,t,n){let r=e.getHours(),i;switch(i=r===12?rM.noon:r===0?rM.midnight:r/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){let r=e.getHours(),i;switch(i=r>=17?rM.evening:r>=12?rM.afternoon:r>=4?rM.morning:rM.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 t=e.getHours()%12;return t===0&&(t=12),n.ordinalNumber(t,{unit:`hour`})}return nM.h(e,t)},H:function(e,t,n){return t===`Ho`?n.ordinalNumber(e.getHours(),{unit:`hour`}):nM.H(e,t)},K:function(e,t,n){let r=e.getHours()%12;return t===`Ko`?n.ordinalNumber(r,{unit:`hour`}):tM(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t===`ko`?n.ordinalNumber(r,{unit:`hour`}):tM(r,t.length)},m:function(e,t,n){return t===`mo`?n.ordinalNumber(e.getMinutes(),{unit:`minute`}):nM.m(e,t)},s:function(e,t,n){return t===`so`?n.ordinalNumber(e.getSeconds(),{unit:`second`}):nM.s(e,t)},S:function(e,t){return nM.S(e,t)},X:function(e,t,n){let r=e.getTimezoneOffset();if(r===0)return`Z`;switch(t){case`X`:return oM(r);case`XXXX`:case`XX`:return sM(r);default:return sM(r,`:`)}},x:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`x`:return oM(r);case`xxxx`:case`xx`:return sM(r);default:return sM(r,`:`)}},O:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`O`:case`OO`:case`OOO`:return`GMT`+aM(r,`:`);default:return`GMT`+sM(r,`:`)}},z:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`z`:case`zz`:case`zzz`:return`GMT`+aM(r,`:`);default:return`GMT`+sM(r,`:`)}},t:function(e,t,n){return tM(Math.trunc(e.getTime()/1e3),t.length)},T:function(e,t,n){return tM(e.getTime(),t.length)}};function aM(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Math.trunc(r/60),a=r%60;return a===0?n+String(i):n+String(i)+t+tM(a,2)}function oM(e,t){return e%60==0?(e>0?`-`:`+`)+tM(Math.abs(e)/60,2):sM(e,t)}function sM(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=tM(Math.trunc(r/60),2),a=tM(r%60,2);return n+i+t+a}var cM=(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`})}},lM=(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`})}},uM={p:lM,P:(e,t)=>{let n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return cM(e,t);let a;switch(r){case`P`:a=t.dateTime({width:`short`});break;case`PP`:a=t.dateTime({width:`medium`});break;case`PPP`:a=t.dateTime({width:`long`});break;default:a=t.dateTime({width:`full`})}return a.replace(`{{date}}`,cM(r,t)).replace(`{{time}}`,lM(i,t))}},dM=/^D+$/,fM=/^Y+$/,pM=[`D`,`DD`,`YY`,`YYYY`];function mM(e){return dM.test(e)}function hM(e){return fM.test(e)}function gM(e,t,n){let r=_M(e,t,n);if(console.warn(r),pM.includes(e))throw RangeError(r)}function _M(e,t,n){let r=e[0]===`Y`?`years`:`days of the month`;return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var vM=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,yM=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,bM=/^'([^]*?)'?$/,xM=/''/g,SM=/[a-zA-Z]/;function CM(e,t,n){let r=Ej(),i=n?.locale??r.locale??Yj,a=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=bj(e);if(!Fj(s))throw RangeError(`Invalid time value`);let c=t.match(yM).map(e=>{let t=e[0];if(t===`p`||t===`P`){let n=uM[t];return n(e,i.formatLong)}return e}).join(``).match(vM).map(e=>{if(e===`''`)return{isToken:!1,value:`'`};let t=e[0];if(t===`'`)return{isToken:!1,value:wM(e)};if(iM[t])return{isToken:!0,value:e};if(t.match(SM))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));let l={firstWeekContainsDate:a,weekStartsOn:o,locale:i};return c.map(r=>{if(!r.isToken)return r.value;let a=r.value;(!n?.useAdditionalWeekYearTokens&&hM(a)||!n?.useAdditionalDayOfYearTokens&&mM(a))&&gM(a,t,String(e));let o=iM[a[0]];return o(s,a,i.localize,l)}).join(``)}function wM(e){let t=e.match(bM);return t?t[1].replace(xM,`'`):e}function TM({className:e,...t}){return(0,z.jsx)(`div`,{className:R(`animate-pulse rounded-md bg-primary/10`,e),...t})}var EM=[{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)),DM=(e,t,n)=>{if(e){let t=e.toLowerCase();if(t.includes(`seaside`)||t.includes(`cannon beach`)||t.includes(`nehalem`))return{...EM.find(e=>e.id===`9437908`),distance:0};if(t.includes(`lincoln city`))return{...EM.find(e=>e.id===`9436101`),distance:0};if(t.includes(`tillamook`)&&!t.includes(`garibaldi`))return{...EM.find(e=>e.id===`9437331`),distance:0};let n=EM.find(e=>e.name.toLowerCase().includes(t));if(n)return{...n,distance:0}}if(!t||!n)return null;let r=null,i=1/0;for(let e of EM){let a=Math.sqrt((e.lat-t)**2+(e.lon-n)**2);a<i&&(i=a,r=e)}return r?{...r,distance:i}:null},OM=e=>{if(!e)return`oregon/2905/`;let 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/`:EM.find(t=>t.name.toLowerCase().includes(e.toLowerCase()))?.tidesNetPath||`oregon/2905/`},kM=216e5,AM=e=>{let[t,n]=e.split(` `),[r,i,a]=t.split(`-`),[o,s]=n.split(`:`),c=new Date(r,i-1,a),l=parseInt(o,10),u=l>=12?`PM`:`AM`;return{dateObj:c,timeStr:`${l%12||12}:${s} ${u}`,datePart:t}},jM=({defaultStationId:e=`9435380`})=>{let t=(0,y.useMemo)(()=>EM,[]),[n,r]=(0,y.useState)(e),i=t.find(e=>e.id===n),a=i?i.name:`Unknown Station`,[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(!0),[u,d]=(0,y.useState)(null),f=(0,y.useCallback)(async(e=!1)=>{if(l(!0),d(null),!i){d(`Tide Data Unavailable: Station ID ${n} not found.`),l(!1);return}let t=`noaa_tides_v2_${n}`;if(!e){let e=localStorage.getItem(t);if(e)try{let t=JSON.parse(e);if(Date.now()-t.timestamp<kM){s(t.data),l(!1);return}}catch(e){console.error(`Cache parsing error:`,e)}}try{let e=new Date,r=`https://api.tidesandcurrents.noaa.gov/api/prod/datagetter?product=predictions&application=oregoncoastal.com&begin_date=${CM(e,`yyyyMMdd`)}&end_date=${CM(Sj(e,5),`yyyyMMdd`)}&datum=MLLW&station=${n}&time_zone=lst_ldt&units=english&interval=hilo&format=json`,i=await fetch(r);if(!i.ok)throw Error(`NOAA API Error: ${i.status} ${i.statusText}`);let a=await i.json();if(a.error)throw Error(a.error.message||`Failed to fetch tide data`);if(!a.predictions||!Array.isArray(a.predictions))throw Error(`Invalid data format received from NOAA`);let o=a.predictions.reduce((e,t)=>{let{dateObj:n,timeStr:r,datePart:i}=AM(t.t);return e[i]||(e[i]={dateObj:n,dateStr:CM(n,`EEEE, MMMM d`),predictions:[]}),e[i].predictions.push({...t,timeStr:r,val:parseFloat(t.v).toFixed(2)}),e},{}),c=Object.values(o).sort((e,t)=>e.dateObj-t.dateObj);localStorage.setItem(t,JSON.stringify({timestamp:Date.now(),data:c})),s(c)}catch(e){console.error(e),d(e.message||`Failed to load tide predictions.`)}finally{l(!1)}},[n,i]);return(0,y.useEffect)(()=>{f()},[f]),u&&!o?(0,z.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:[(0,z.jsxs)(AA,{variant:`destructive`,className:`border-none bg-red-50 text-red-800 mb-4`,children:[(0,z.jsx)(Ua,{className:`h-5 w-5`}),(0,z.jsx)(jA,{children:`Tide Data Unavailable`}),(0,z.jsx)(MA,{children:u})]}),(0,z.jsxs)(Bw,{onClick:()=>f(!0),variant:`outline`,size:`sm`,className:`mt-2 text-red-700 border-red-200 hover:bg-red-50`,children:[(0,z.jsx)(zo,{className:`w-4 h-4 mr-2`}),` Try Again`]})]}):(0,z.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&&(0,z.jsx)(`div`,{className:`absolute top-0 left-0 right-0 h-1 bg-blue-100 overflow-hidden rounded-t-3xl`,children:(0,z.jsx)(`div`,{className:`h-full bg-blue-500 animate-pulse w-1/3 rounded`})}),(0,z.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:[(0,z.jsxs)(`h3`,{className:`text-xl font-bold flex items-center gap-2 text-slate-900`,children:[(0,z.jsx)(ss,{className:`text-blue-500 w-6 h-6`}),`Tide Predictions`]}),(0,z.jsx)(`select`,{value:n,onChange:e=>{r(e.target.value)},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(e=>(0,z.jsx)(`option`,{value:e.id,children:e.name},e.id))})]}),(0,z.jsx)(`div`,{className:`flex-grow overflow-y-auto max-h-[500px] pr-2 custom-scrollbar space-y-6`,children:c&&!o?(0,z.jsxs)(`div`,{className:`space-y-4`,children:[(0,z.jsx)(TM,{className:`h-8 w-48 mb-2`}),(0,z.jsx)(TM,{className:`h-16 w-full rounded-xl`}),(0,z.jsx)(TM,{className:`h-16 w-full rounded-xl`}),(0,z.jsx)(TM,{className:`h-8 w-48 mt-6 mb-2`}),(0,z.jsx)(TM,{className:`h-16 w-full rounded-xl`})]}):o?.map((e,t)=>(0,z.jsxs)(`div`,{className:`space-y-3`,children:[(0,z.jsx)(`h4`,{className:`font-semibold text-slate-800 sticky top-0 bg-white/95 backdrop-blur py-1 z-10`,children:e.dateStr}),(0,z.jsx)(`div`,{className:`space-y-2`,children:e.predictions.map((e,t)=>{let n=e.type===`H`;return(0,z.jsxs)(`div`,{className:`flex justify-between items-center p-3 sm:p-4 rounded-xl transition-colors ${n?`bg-blue-50/70 border border-blue-100`:`bg-emerald-50/50 border border-emerald-100`}`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-3 w-1/3`,children:[(0,z.jsx)(`div`,{className:`p-1.5 sm:p-2 rounded-full hidden sm:flex ${n?`bg-blue-100 text-blue-600`:`bg-emerald-100 text-emerald-600`}`,children:n?(0,z.jsx)(Ga,{className:`w-4 h-4 sm:w-5 sm:h-5`}):(0,z.jsx)(Wa,{className:`w-4 h-4 sm:w-5 sm:h-5`})}),(0,z.jsx)(`span`,{className:`font-bold text-slate-800 text-sm sm:text-base`,children:e.timeStr})]}),(0,z.jsx)(`div`,{className:`flex-1 text-center`,children:(0,z.jsx)(`span`,{className:`inline-flex items-center text-xs sm:text-sm font-bold uppercase tracking-wider ${n?`text-blue-700`:`text-emerald-700`}`,children:n?`High Tide`:`Low Tide`})}),(0,z.jsx)(`div`,{className:`w-1/3 flex flex-col items-end justify-center text-right`,children:(0,z.jsxs)(`span`,{className:`font-mono font-bold text-sm sm:text-base ${n?`text-blue-800`:`text-emerald-800`}`,children:[e.val,` ft`]})})]},t)})})]},t))}),(0,z.jsxs)(`div`,{className:`flex flex-col gap-3 text-xs text-slate-400 mt-4 pt-4 border-t border-slate-100`,children:[(0,z.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,z.jsx)(`span`,{children:`Data: NOAA Tides & Currents — Datum: MLLW`}),(0,z.jsxs)(Bw,{variant:`ghost`,size:`sm`,onClick:()=>f(!0),disabled:c,className:`h-8 text-slate-500 hover:text-blue-600 hover:bg-blue-50 px-2`,children:[(0,z.jsx)(zo,{className:`w-3.5 h-3.5 mr-1.5 ${c?`animate-spin`:``}`}),`Refresh`]})]}),i&&(0,z.jsxs)(`div`,{className:`text-center font-medium text-slate-600 bg-slate-50 rounded-lg py-2 border border-slate-200`,children:[`Predictions for `,a]})]})]})},MM=()=>{let e=new Date,t=new Intl.DateTimeFormat(`en-US`,{timeZone:`America/Los_Angeles`,year:`numeric`,month:`2-digit`,day:`2-digit`}).formatToParts(e),n,r,i;for(let e of t)e.type===`year`&&(n=e.value),e.type===`month`&&(r=e.value),e.type===`day`&&(i=e.value);return`${n}-${r}-${i}`},NM=async(e,t)=>{let 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`,r=await fetch(n);if(!r.ok)throw Error(`Failed to fetch wave data`);let i=await r.json();if(!i.hourly||!i.hourly.time)throw Error(`Invalid wave data structure`);let a=new Date,o=[];for(let e=0;e<i.hourly.time.length;e++){let t=new Date(i.hourly.time[e]);t>=new Date(a.getTime()-36e5)&&o.length<24&&o.push({time:t.toISOString(),height:i.hourly.wave_height[e],period:i.hourly.wave_period[e],direction:i.hourly.wave_direction[e]})}return{waveData:o,isMock:!1}},PM=`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`.split(`.`);function FM(e){return typeof e==`string`&&PM.includes(e)}var IM=new Set(`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`.split(`.`));function LM(e){return typeof e==`string`&&IM.has(e)}function RM(e){return typeof e==`string`&&e.startsWith(`data-`)}function zM(e){if(typeof e!=`object`||!e)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(LM(n)||RM(n))&&(t[n]=e[n]);return t}function BM(e){if(e==null)return null;if((0,y.isValidElement)(e)&&typeof e.props==`object`&&e.props!==null){var t=e.props;return zM(t)}return typeof e==`object`&&!Array.isArray(e)?zM(e):null}function VM(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(LM(n)||RM(n)||FM(n))&&(t[n]=e[n]);return t}function HM(e){return e==null?null:(0,y.isValidElement)(e)?VM(e.props):typeof e==`object`&&!Array.isArray(e)?VM(e):null}var UM=[`children`,`width`,`height`,`viewBox`,`className`,`style`,`title`,`desc`];function WM(){return WM=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},WM.apply(null,arguments)}function GM(e,t){if(e==null)return{};var n,r,i=KM(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function KM(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var qM=(0,y.forwardRef)((e,t)=>{var n=e.children,r=e.width,i=e.height,a=e.viewBox,o=e.className,s=e.style,c=e.title,l=e.desc,u=GM(e,UM),d=a||{width:r,height:i,x:0,y:0},f=wn(`recharts-surface`,o);return y.createElement(`svg`,WM({},VM(u),{className:f,width:r,height:i,style:s,viewBox:`${d.x} ${d.y} ${d.width} ${d.height}`,ref:t}),y.createElement(`title`,null,c),y.createElement(`desc`,null,l),n)}),JM=[`children`,`className`];function YM(){return YM=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},YM.apply(null,arguments)}function XM(e,t){if(e==null)return{};var n,r,i=ZM(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function ZM(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var QM=y.forwardRef((e,t)=>{var n=e.children,r=e.className,i=XM(e,JM),a=wn(`recharts-layer`,r);return y.createElement(`g`,YM({className:a},VM(i),{ref:t}),n)});function $M(e){return e===`__proto__`}var eN=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function tN(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e===``||e.startsWith(`.`)||e.endsWith(`.`)?!1:eN.test(e);default:return!1}}function nN(e){return typeof e==`string`||typeof e==`symbol`?e:Object.is(e?.valueOf?.(),-0)?`-0`:String(e)}function rN(e){return typeof e==`symbol`||e instanceof Symbol}function iN(e){return e==null?``:aN(e)}function aN(e){if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(aN).join(`,`);if(rN(e))return e.toString();let t=e+``;return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function oN(e){if(Array.isArray(e))return e.map(nN);if(typeof e==`symbol`)return[e];e=iN(e);let t=[],n=e.length;if(n===0)return t;let r=0,i=``,a=``,o=!1,s=!1,c=/^-?\d+(?:\.\d+)?$/;for(e.charCodeAt(0)===46&&t.push(``);r<n;){let l=e[r];if(a)l===`\\`&&r+1<n?(r++,i+=e[r]):l===a?a=``:i+=l;else if(o){if(l===`"`||l===`'`)a=l,s=!0;else if(l===`]`){if(o=!1,!s&&i.includes(`.`)&&!c.test(i)){let e=i.split(`.`);for(let n=0;n<e.length;n++)e[n]!==``&&t.push(e[n])}else t.push(i);i=``}else i+=l}else if(l===`[`)o=!0,s=!1,i&&=(t.push(i),``);else if(l===`.`){i&&=(t.push(i),``);let n=e[r+1];(n===void 0||n===`.`)&&t.push(``)}else i+=l;r++}return i&&t.push(i),t}function sN(e,t,n){if(e==null)return n;switch(typeof t){case`string`:{if($M(t))return n;let r=e[t];return r===void 0?tN(t)&&!Object.hasOwn(e,t)?sN(e,oN(t),n):n:r}case`number`:case`symbol`:{typeof t==`number`&&(t=nN(t));let r=e[t];return r===void 0?n:r}default:{if(Array.isArray(t))return cN(e,t,n);if(t=Object.is(t?.valueOf(),-0)?`-0`:String(t),$M(t))return n;let r=e[t];return r===void 0?n:r}}}function cN(e,t,n){if(t.length===0)return n;let r=e;for(let e=0;e<t.length;e++){if(r==null||$M(t[e]))return n;r=r[t[e]]}return r===void 0?n:r}var lN=4;function uN(e){var t=10**(arguments.length>1&&arguments[1]!==void 0?arguments[1]:lN),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function dN(e){var t=[...arguments].slice(1);return e.reduce((e,n,r)=>{var i=t[r-1];return typeof i==`string`?e+i+n:i===void 0?e+n:e+uN(i)+n},``)}var fN=e=>e===0?0:e>0?1:-1,pN=e=>typeof e==`number`&&e!=+e,mN=e=>typeof e==`string`&&e.length>1&&e.indexOf(`%`)===e.length-1,Q=e=>(typeof e==`number`||e instanceof Number)&&!pN(e),hN=e=>Q(e)||typeof e==`string`,gN=0,_N=e=>{var t=++gN;return`${e||``}${t}`},vN=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(!Q(e)&&typeof e!=`string`)return n;var i;if(mN(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return pN(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},yN=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;r<t;r++)if(!n[String(e[r])])n[String(e[r])]=!0;else return!0;return!1};function bN(e,t,n){return Q(e)&&Q(t)?uN(e+n*(t-e)):t}function xN(e,t,n){if(e&&e.length)return e.find(e=>e&&(typeof t==`function`?t(e):sN(e,t))===n)}var SN=e=>e==null,CN=e=>SN(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function wN(e){return e!=null}function TN(){}function EN(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 DN(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ON(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?DN(Object(n),!0).forEach(function(t){kN(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):DN(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function kN(e,t,n){return(t=AN(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function AN(e){var t=jN(e,`string`);return typeof t==`symbol`?t:t+``}function jN(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var MN=e=>{var t=e.viewBox,n=e.position,r=e.offset,i=r===void 0?0:r,a=e.parentViewBox,o=e.clamp,s=EN(t),c=s.x,l=s.y,u=s.height,d=s.upperWidth,f=s.lowerWidth,p=c,m=c+(d-f)/2,h=(p+m)/2,g=(d+f)/2,_=p+d/2,v=u>=0?1:-1,y=v*i,b=v>0?`end`:`start`,x=v>0?`start`:`end`,S=d>=0?1:-1,C=S*i,w=S>0?`end`:`start`,T=S>0?`start`:`end`,E=a;if(n===`top`){var D={x:p+d/2,y:l-y,horizontalAnchor:`middle`,verticalAnchor:b};return o&&E&&(D.height=Math.max(l-E.y,0),D.width=d),D}if(n===`bottom`){var O={x:m+f/2,y:l+u+y,horizontalAnchor:`middle`,verticalAnchor:x};return o&&E&&(O.height=Math.max(E.y+E.height-(l+u),0),O.width=f),O}if(n===`left`){var ee={x:h-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`};return o&&E&&(ee.width=Math.max(ee.x-E.x,0),ee.height=u),ee}if(n===`right`){var k={x:h+g+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`};return o&&E&&(k.width=Math.max(E.x+E.width-k.x,0),k.height=u),k}var te=o&&E?{width:g,height:u}:{};return n===`insideLeft`?ON({x:h+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`},te):n===`insideRight`?ON({x:h+g-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`},te):n===`insideTop`?ON({x:p+d/2,y:l+y,horizontalAnchor:`middle`,verticalAnchor:x},te):n===`insideBottom`?ON({x:m+f/2,y:l+u-y,horizontalAnchor:`middle`,verticalAnchor:b},te):n===`insideTopLeft`?ON({x:p+C,y:l+y,horizontalAnchor:T,verticalAnchor:x},te):n===`insideTopRight`?ON({x:p+d-C,y:l+y,horizontalAnchor:w,verticalAnchor:x},te):n===`insideBottomLeft`?ON({x:m+C,y:l+u-y,horizontalAnchor:T,verticalAnchor:b},te):n===`insideBottomRight`?ON({x:m+f-C,y:l+u-y,horizontalAnchor:w,verticalAnchor:b},te):n&&typeof n==`object`&&(Q(n.x)||mN(n.x))&&(Q(n.y)||mN(n.y))?ON({x:c+vN(n.x,g),y:l+vN(n.y,u),horizontalAnchor:`end`,verticalAnchor:`end`},te):ON({x:_,y:l+u/2,horizontalAnchor:`middle`,verticalAnchor:`middle`},te)},NN=[`top`,`left`,`right`,`bottom`];function PN(e){return e==null?!1:typeof e==`object`||NN.includes(e)}var FN=(0,y.createContext)(null);function IN(e){return function(){return e}}var LN=Math.PI,RN=2*LN,zN=1e-6,BN=RN-zN;function VN(e){this._+=e[0];for(let t=1,n=e.length;t<n;++t)this._+=arguments[t]+e[t]}function HN(e){let t=Math.floor(e);if(!(t>=0))throw Error(`invalid digits: ${e}`);if(t>15)return VN;let n=10**t;return function(e){this._+=e[0];for(let t=1,r=e.length;t<r;++t)this._+=Math.round(arguments[t]*n)/n+e[t]}}var UN=class{constructor(e){this._x0=this._y0=this._x1=this._y1=null,this._=``,this._append=e==null?VN:HN(e)}moveTo(e,t){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}`}closePath(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(e,t){this._append`L${this._x1=+e},${this._y1=+t}`}quadraticCurveTo(e,t,n,r){this._append`Q${+e},${+t},${this._x1=+n},${this._y1=+r}`}bezierCurveTo(e,t,n,r,i,a){this._append`C${+e},${+t},${+n},${+r},${this._x1=+i},${this._y1=+a}`}arcTo(e,t,n,r,i){if(e=+e,t=+t,n=+n,r=+r,i=+i,i<0)throw Error(`negative radius: ${i}`);let a=this._x1,o=this._y1,s=n-e,c=r-t,l=a-e,u=o-t,d=l*l+u*u;if(this._x1===null)this._append`M${this._x1=e},${this._y1=t}`;else if(d>zN){if(!(Math.abs(u*s-c*l)>zN)||!i)this._append`L${this._x1=e},${this._y1=t}`;else{let f=n-a,p=r-o,m=s*s+c*c,h=f*f+p*p,g=Math.sqrt(m),_=Math.sqrt(d),v=i*Math.tan((LN-Math.acos((m+d-h)/(2*g*_)))/2),y=v/_,b=v/g;Math.abs(y-1)>zN&&this._append`L${e+y*l},${t+y*u}`,this._append`A${i},${i},0,0,${+(u*f>l*p)},${this._x1=e+b*s},${this._y1=t+b*c}`}}}arc(e,t,n,r,i,a){if(e=+e,t=+t,n=+n,a=!!a,n<0)throw Error(`negative radius: ${n}`);let o=n*Math.cos(r),s=n*Math.sin(r),c=e+o,l=t+s,u=1^a,d=a?r-i:i-r;this._x1===null?this._append`M${c},${l}`:(Math.abs(this._x1-c)>zN||Math.abs(this._y1-l)>zN)&&this._append`L${c},${l}`,n&&(d<0&&(d=d%RN+RN),d>BN?this._append`A${n},${n},0,1,${u},${e-o},${t-s}A${n},${n},0,1,${u},${this._x1=c},${this._y1=l}`:d>zN&&this._append`A${n},${n},0,${+(d>=LN)},${u},${this._x1=e+n*Math.cos(i)},${this._y1=t+n*Math.sin(i)}`)}rect(e,t,n,r){this._append`M${this._x0=this._x1=+e},${this._y0=this._y1=+t}h${n=+n}v${+r}h${-n}Z`}toString(){return this._}};UN.prototype;function WN(e){let t=3;return e.digits=function(n){if(!arguments.length)return t;if(n==null)t=null;else{let e=Math.floor(n);if(!(e>=0))throw RangeError(`invalid digits: ${n}`);t=e}return e},()=>new UN(t)}Array.prototype.slice;function GN(e){return typeof e==`object`&&`length`in e?e:Array.from(e)}function KN(e){this._context=e}KN.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)}}};function qN(e){return new KN(e)}function JN(e){return e[0]}function YN(e){return e[1]}function XN(e,t){var n=IN(!0),r=null,i=qN,a=null,o=WN(s);e=typeof e==`function`?e:e===void 0?JN:IN(e),t=typeof t==`function`?t:t===void 0?YN:IN(t);function s(s){var c,l=(s=GN(s)).length,u,d=!1,f;for(r??(a=i(f=o())),c=0;c<=l;++c)!(c<l&&n(u=s[c],c,s))===d&&((d=!d)?a.lineStart():a.lineEnd()),d&&a.point(+e(u,c,s),+t(u,c,s));if(f)return a=null,f+``||null}return s.x=function(t){return arguments.length?(e=typeof t==`function`?t:IN(+t),s):e},s.y=function(e){return arguments.length?(t=typeof e==`function`?e:IN(+e),s):t},s.defined=function(e){return arguments.length?(n=typeof e==`function`?e:IN(!!e),s):n},s.curve=function(e){return arguments.length?(i=e,r!=null&&(a=i(r)),s):i},s.context=function(e){return arguments.length?(e==null?r=a=null:a=i(r=e),s):r},s}function ZN(e,t,n){var r=null,i=IN(!0),a=null,o=qN,s=null,c=WN(l);e=typeof e==`function`?e:e===void 0?JN:IN(+e),t=typeof t==`function`?t:IN(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?YN:IN(+n);function l(l){var u,d,f,p=(l=GN(l)).length,m,h=!1,g,_=Array(p),v=Array(p);for(a??(s=o(g=c())),u=0;u<=p;++u){if(!(u<p&&i(m=l[u],u,l))===h){if(h=!h)d=u,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=u-1;f>=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return XN().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:IN(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:IN(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:IN(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:IN(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:IN(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:IN(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:IN(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var QN=class{constructor(e,t){this._context=e,this._x=t}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(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._x?this._context.bezierCurveTo(this._x0=(this._x0+e)/2,this._y0,this._x0,t,e,t):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+t)/2,e,this._y0,e,t)}this._x0=e,this._y0=t}};function $N(e){return new QN(e,!0)}function eP(e){return new QN(e,!1)}function tP(){}function nP(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 rP(e){this._context=e}rP.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:nP(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(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:nP(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function iP(e){return new rP(e)}function aP(e){this._context=e}aP.prototype={areaStart:tP,areaEnd:tP,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)}},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:nP(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function oP(e){return new aP(e)}function sP(e){this._context=e}sP.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,r=(this._y0+4*this._y1+t)/6;this._line?this._context.lineTo(n,r):this._context.moveTo(n,r);break;case 3:this._point=4;default:nP(this,e,t)}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t}};function cP(e){return new sP(e)}function lP(e){this._context=e}lP.prototype={areaStart:tP,areaEnd:tP,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 uP(e){return new lP(e)}function dP(e){return e<0?-1:1}function fP(e,t,n){var r=e._x1-e._x0,i=t-e._x1,a=(e._y1-e._y0)/(r||i<0&&-0),o=(n-e._y1)/(i||r<0&&-0),s=(a*i+o*r)/(r+i);return(dP(a)+dP(o))*Math.min(Math.abs(a),Math.abs(o),.5*Math.abs(s))||0}function pP(e,t){var n=e._x1-e._x0;return n?(3*(e._y1-e._y0)/n-t)/2:t}function mP(e,t,n){var r=e._x0,i=e._y0,a=e._x1,o=e._y1,s=(a-r)/3;e._context.bezierCurveTo(r+s,i+s*t,a-s,o-s*n,a,o)}function hP(e){this._context=e}hP.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:mP(this,this._t0,pP(this,this._t0))}(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,mP(this,pP(this,n=fP(this,e,t)),n);break;default:mP(this,this._t0,n=fP(this,e,t))}this._x0=this._x1,this._x1=e,this._y0=this._y1,this._y1=t,this._t0=n}}};function gP(e){this._context=new _P(e)}(gP.prototype=Object.create(hP.prototype)).point=function(e,t){hP.prototype.point.call(this,t,e)};function _P(e){this._context=e}_P.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,r,i,a){this._context.bezierCurveTo(t,e,r,n,a,i)}};function vP(e){return new hP(e)}function yP(e){return new gP(e)}function bP(e){this._context=e}bP.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 r=xP(e),i=xP(t),a=0,o=1;o<n;++a,++o)this._context.bezierCurveTo(r[0][a],i[0][a],r[1][a],i[1][a],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 xP(e){var t,n=e.length-1,r,i=Array(n),a=Array(n),o=Array(n);for(i[0]=0,a[0]=2,o[0]=e[0]+2*e[1],t=1;t<n-1;++t)i[t]=1,a[t]=4,o[t]=4*e[t]+2*e[t+1];for(i[n-1]=2,a[n-1]=7,o[n-1]=8*e[n-1]+e[n],t=1;t<n;++t)r=i[t]/a[t-1],a[t]-=r,o[t]-=r*o[t-1];for(i[n-1]=o[n-1]/a[n-1],t=n-2;t>=0;--t)i[t]=(o[t]-i[t+1])/a[t];for(a[n-1]=(e[n]+i[n-1])/2,t=0;t<n-1;++t)a[t]=2*e[t+1]-i[t+1];return[i,a]}function SP(e){return new bP(e)}function CP(e,t){this._context=e,this._t=t}CP.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)}}this._x=e,this._y=t}};function wP(e){return new CP(e,.5)}function TP(e){return new CP(e,0)}function EP(e){return new CP(e,1)}function DP(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n<o;++n)for(i=a,a=e[t[n]],r=0;r<s;++r)a[r][1]+=a[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function OP(e){for(var t=e.length,n=Array(t);--t>=0;)n[t]=t;return n}function kP(e,t){return e[t]}function AP(e){let t=[];return t.key=e,t}function jP(){var e=IN([]),t=OP,n=DP,r=kP;function i(i){var a=Array.from(e.apply(this,arguments),AP),o,s=a.length,c=-1,l;for(let e of i)for(o=0,++c;o<s;++o)(a[o][c]=[0,+r(e,a[o].key,c,i)]).data=e;for(o=0,l=GN(t(a));o<s;++o)a[l[o]].index=o;return n(a,l),a}return i.keys=function(t){return arguments.length?(e=typeof t==`function`?t:IN(Array.from(t)),i):e},i.value=function(e){return arguments.length?(r=typeof e==`function`?e:IN(+e),i):r},i.order=function(e){return arguments.length?(t=e==null?OP:typeof e==`function`?e:IN(Array.from(e)),i):t},i.offset=function(e){return arguments.length?(n=e??DP,i):n},i}function MP(e,t){if((r=e.length)>0){for(var n,r,i=0,a=e[0].length,o;i<a;++i){for(o=n=0;n<r;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<r;++n)e[n][i][1]/=o}DP(e,t)}}function NP(e,t){if((i=e.length)>0){for(var n=0,r=e[t[0]],i,a=r.length;n<a;++n){for(var o=0,s=0;o<i;++o)s+=e[o][n][1]||0;r[n][1]+=r[n][0]=-s/2}DP(e,t)}}function PP(e,t){if((o=e.length)>0&&(a=(i=e[t[0]]).length)>0){for(var n=0,r=1,i,a,o;r<a;++r){for(var s=0,c=0,l=0;s<o;++s){for(var u=e[t[s]],d=u[r][1]||0,f=(d-(u[r-1][1]||0))/2,p=0;p<s;++p){var m=e[t[p]],h=m[r][1]||0,g=m[r-1][1]||0;f+=h-g}c+=d,l+=f*d}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,DP(e,t)}}var FP=e=>`radius`in e&&`startAngle`in e&&`endAngle`in e,IP=(e,t)=>{if(!e||typeof e==`function`||typeof e==`boolean`)return null;var n=e;if((0,y.isValidElement)(e)&&(n=e.props),typeof n!=`object`&&typeof n!=`function`)return null;var r={};return Object.keys(n).forEach(e=>{FM(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},LP=(e,t,n)=>r=>(e(t,n,r),null),RP=(e,t,n)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return null;var r=null;return Object.keys(e).forEach(i=>{var a=e[i];FM(i)&&typeof a==`function`&&(r||={},r[i]=LP(a,t,n))}),r};function zP(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function BP(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?zP(Object(n),!0).forEach(function(t){VP(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zP(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function VP(e,t,n){return(t=HP(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function HP(e){var t=UP(e,`string`);return typeof t==`symbol`?t:t+``}function UP(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function WP(e,t){var n=BP({},e),r=t;return Object.keys(t).reduce((e,t)=>(e[t]===void 0&&r[t]!==void 0&&(e[t]=r[t]),e),n)}function GP(e,t){let n=new Map;for(let r=0;r<e.length;r++){let i=e[r],a=t(i,r,e);n.has(a)||n.set(a,i)}return Array.from(n.values())}function KP(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}function qP(e){return e}function JP(e){return Number.isSafeInteger(e)&&e>=0}function YP(e){return e!=null&&typeof e!=`function`&&JP(e.length)}function XP(e){return function(t){return sN(t,e)}}function ZP(e){return e==null||typeof e!=`object`&&typeof e!=`function`}function QP(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function $P(e){return Object.getOwnPropertySymbols(e).filter(t=>Object.prototype.propertyIsEnumerable.call(e,t))}function eF(e){return e==null?e===void 0?`[object Undefined]`:`[object Null]`:Object.prototype.toString.call(e)}var tF=`[object RegExp]`,nF=`[object String]`,rF=`[object Number]`,iF=`[object Boolean]`,aF=`[object Arguments]`,oF=`[object Symbol]`,sF=`[object Date]`,cF=`[object Map]`,lF=`[object Set]`,uF=`[object Array]`,dF=`[object Function]`,fF=`[object ArrayBuffer]`,pF=`[object Object]`,mF=`[object Error]`,hF=`[object DataView]`,gF=`[object Uint8Array]`,_F=`[object Uint8ClampedArray]`,vF=`[object Uint16Array]`,yF=`[object Uint32Array]`,Zie=`[object BigUint64Array]`,bF=`[object Int8Array]`,xF=`[object Int16Array]`,SF=`[object Int32Array]`,Qie=`[object BigInt64Array]`,CF=`[object Float32Array]`,wF=`[object Float64Array]`,TF=typeof globalThis==`object`&&globalThis||typeof window==`object`&&window||typeof self==`object`&&self||typeof global==`object`&&global||(function(){return this})();function EF(e){return TF.Buffer!==void 0&&TF.Buffer.isBuffer(e)}function $ie(e,t){return DF(e,void 0,e,new Map,t)}function DF(e,t,n,r=new Map,i=void 0){let a=i?.(e,t,n,r);if(a!==void 0)return a;if(ZP(e))return e;if(r.has(e))return r.get(e);if(Array.isArray(e)){let t=Array(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=DF(e[a],a,n,r,i);return Object.hasOwn(e,`index`)&&(t.index=e.index),Object.hasOwn(e,`input`)&&(t.input=e.input),t}if(e instanceof Date)return new Date(e.getTime());if(e instanceof RegExp){let t=new RegExp(e.source,e.flags);return t.lastIndex=e.lastIndex,t}if(e instanceof Map){let t=new Map;r.set(e,t);for(let[a,o]of e)t.set(a,DF(o,a,n,r,i));return t}if(e instanceof Set){let t=new Set;r.set(e,t);for(let a of e)t.add(DF(a,void 0,n,r,i));return t}if(EF(e))return e.subarray();if(QP(e)){let t=new(Object.getPrototypeOf(e)).constructor(e.length);r.set(e,t);for(let a=0;a<e.length;a++)t[a]=DF(e[a],a,n,r,i);return t}if(e instanceof ArrayBuffer||typeof SharedArrayBuffer<`u`&&e instanceof SharedArrayBuffer)return e.slice(0);if(e instanceof DataView){let t=new DataView(e.buffer.slice(0),e.byteOffset,e.byteLength);return r.set(e,t),OF(t,e,n,r,i),t}if(typeof File<`u`&&e instanceof File){let t=new File([e],e.name,{type:e.type});return r.set(e,t),OF(t,e,n,r,i),t}if(typeof Blob<`u`&&e instanceof Blob){let t=new Blob([e],{type:e.type});return r.set(e,t),OF(t,e,n,r,i),t}if(e instanceof Error){let t=structuredClone(e);return r.set(e,t),t.message=e.message,t.name=e.name,t.stack=e.stack,t.cause=e.cause,t.constructor=e.constructor,OF(t,e,n,r,i),t}if(e instanceof Boolean){let t=new Boolean(e.valueOf());return r.set(e,t),OF(t,e,n,r,i),t}if(e instanceof Number){let t=new Number(e.valueOf());return r.set(e,t),OF(t,e,n,r,i),t}if(e instanceof String){let t=new String(e.valueOf());return r.set(e,t),OF(t,e,n,r,i),t}if(typeof e==`object`&&eae(e)){let t=Object.create(Object.getPrototypeOf(e));return r.set(e,t),OF(t,e,n,r,i),t}return e}function OF(e,t,n=e,r,i){let a=[...Object.keys(t),...$P(t)];for(let o=0;o<a.length;o++){let s=a[o],c=Object.getOwnPropertyDescriptor(e,s);(c==null||c.writable)&&(e[s]=DF(t[s],s,n,r,i))}}function eae(e){switch(eF(e)){case aF:case uF:case fF:case hF:case iF:case sF:case CF:case wF:case bF:case xF:case SF:case cF:case rF:case pF:case tF:case lF:case nF:case oF:case gF:case _F:case vF:case yF:return!0;default:return!1}}function tae(e){return DF(e,void 0,e,new Map,void 0)}function kF(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function AF(e){return e!==null&&(typeof e==`object`||typeof e==`function`)}function jF(e,t,n){return typeof n==`function`?MF(e,t,function e(t,r,i,a,o,s){let c=n(t,r,i,a,o,s);return c===void 0?MF(t,r,e,s,!1):!!c},new Map,!0):jF(e,t,()=>void 0)}function MF(e,t,n,r,i=!1){if(t===e)return!0;switch(typeof t){case`object`:return nae(e,t,n,r,i);case`function`:return Object.keys(t).length>0?MF(e,{...t},n,r,i):kF(e,t);default:return AF(e)&&i?typeof t!=`string`||t===``:kF(e,t)}}function nae(e,t,n,r,i=!1){if(t==null)return!0;if(Array.isArray(t))return NF(e,t,n,r);if(t instanceof Map)return rae(e,t,n,r);if(t instanceof Set)return iae(e,t,n,r);let a=Object.keys(t);if(e==null)return i&&a.length===0;if(i)ZP(e)&&(e=Object(e));else{let t=eF(e);if(t!==`[object Object]`&&t!==`[object Arguments]`)return!1}if(a.length===0)return!0;if(r?.has(t))return r.get(t)===e;r?.set(t,e);try{for(let i=0;i<a.length;i++){let o=a[i];if(!(o in e)||t[o]===void 0&&e[o]!==void 0||t[o]===null&&e[o]!==null||!n(e[o],t[o],o,e,t,r))return!1}return!0}finally{r?.delete(t)}}function rae(e,t,n,r){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[i,a]of t.entries())if(n(e.get(i),a,i,e,t,r)===!1)return!1;return!0}function NF(e,t,n,r){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let a=0;a<t.length;a++){let o=t[a],s=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let l=e[c],u=!1;if(n(l,o,a,e,t,r)&&(u=!0),u){i.add(c),s=!0;break}}if(!s)return!1}return!0}function iae(e,t,n,r){return t.size===0||e instanceof Set&&NF([...e],[...t],n,r)}function PF(e,t){return jF(e,t,()=>void 0)}function aae(e){return e=tae(e),t=>PF(t,e)}function oae(e,t){return $ie(e,(n,r,i,a)=>{let o=t?.(n,r,i,a);if(o!==void 0)return o;if(typeof e==`object`){if(eF(e)===`[object Object]`&&typeof e.constructor!=`function`){let t={};return a.set(e,t),OF(t,e,i,a),t}switch(Object.prototype.toString.call(e)){case rF:case nF:case iF:{let t=new e.constructor(e?.valueOf());return OF(t,e),t}case aF:{let t={};return OF(t,e),t.length=e.length,t[Symbol.iterator]=e[Symbol.iterator],t}default:return}}})}function sae(e){return oae(e)}var cae=/^(?:0|[1-9]\d*)$/;function FF(e,t=2**53-1){switch(typeof e){case`number`:return Number.isInteger(e)&&e>=0&&e<t;case`symbol`:return!1;case`string`:return cae.test(e)}}function lae(e){return typeof e==`object`&&!!e&&eF(e)===`[object Arguments]`}function uae(e,t){let n;if(n=Array.isArray(t)?t:typeof t==`string`&&tN(t)&&!(t in Object(e))?oN(t):[t],n.length===0)return!1;let r=e;for(let e=0;e<n.length;e++){let t=nN(n[e]);if((r==null||!Object.hasOwn(r,t))&&!((Array.isArray(r)||lae(r))&&FF(t)&&Number(t)<r.length))return!1;r=r[t]}return!0}function dae(e,t){switch(typeof e){case`object`:Object.is(e?.valueOf(),-0)&&(e=`-0`);break;case`number`:e=nN(e)}return t=sae(t),function(n){let r=sN(n,e);return r===void 0?uae(n,e):t===void 0?r===void 0:PF(r,t)}}function fae(e){if(e==null)return qP;switch(typeof e){case`function`:return e;case`object`:return Array.isArray(e)&&e.length===2?dae(e[0],e[1]):aae(e);default:return XP(e)}}function pae(e){return e===0?0:e}function IF(e,t=qP){return YP(e)?GP(Array.from(e),KP(fae(t),1)).map(pae):[]}function mae(e,t,n){return t===!0?IF(e,n):typeof t==`function`?IF(e,t):e}var hae=s((e=>{var t=p();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var d=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?d:t.useSyncExternalStore})),gae=s(((e,t)=>{t.exports=hae()})),_ae=s((e=>{var t=p(),n=gae();function r(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var i=typeof Object.is==`function`?Object.is:r,a=n.useSyncExternalStore,o=t.useRef,s=t.useEffect,c=t.useMemo,l=t.useDebugValue;e.useSyncExternalStoreWithSelector=function(e,t,n,r,u){var d=o(null);if(d.current===null){var f={hasValue:!1,value:null};d.current=f}else f=d.current;d=c(function(){function e(e){if(!a){if(a=!0,o=e,e=r(e),u!==void 0&&f.hasValue){var t=f.value;if(u(t,e))return s=t}return s=e}if(t=s,i(o,e))return t;var n=r(e);return u!==void 0&&u(t,n)?(o=e,t):(o=e,s=n)}var a=!1,o,s,c=n===void 0?null:n;return[function(){return e(t())},c===null?void 0:function(){return e(c())}]},[t,n,r,u]);var p=a(e,d[0],d[1]);return s(function(){f.hasValue=!0,f.value=p},[p]),l(p),p}})),vae=s(((e,t)=>{t.exports=_ae()})),LF=(0,y.createContext)(null),yae=vae(),bae=e=>e,RF=()=>{var e=(0,y.useContext)(LF);return e?e.store.dispatch:bae},zF=()=>{},xae=()=>zF,Sae=(e,t)=>e===t;function BF(e){var t=(0,y.useContext)(LF),n=(0,y.useMemo)(()=>t?t=>{if(t!=null)return e(t)}:zF,[t,e]);return(0,yae.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:xae,t?t.store.getState:zF,t?t.store.getState:zF,n,Sae)}function Cae(e,t=`expected a function, instead received ${typeof e}`){if(typeof e!=`function`)throw TypeError(t)}function wae(e,t=`expected all items to be functions, instead received the following types: `){if(!e.every(e=>typeof e==`function`)){let n=e.map(e=>typeof e==`function`?`function ${e.name||`unnamed`}()`:typeof e).join(`, `);throw TypeError(`${t}[${n}]`)}}var VF=e=>Array.isArray(e)?e:[e];function Tae(e){let t=Array.isArray(e[0])?e[0]:e;return wae(t,`createSelector expects all input-selectors to be functions, but received the following types: `),t}function Eae(e,t){let n=[],{length:r}=e;for(let i=0;i<r;i++)n.push(e[i].apply(null,t));return n}var Dae=class{constructor(e){this.value=e}deref(){return this.value}},HF=typeof WeakRef>`u`?Dae:WeakRef,Oae=0,UF=1;function WF(){return{s:Oae,v:void 0,o:null,p:null}}function kae(e){return e instanceof HF?e.deref():e}function GF(e,t={}){let n=WF(),{resultEqualityCheck:r}=t,i,a=0;function o(){let t=n,{length:o}=arguments;for(let e=0,n=o;e<n;e++){let n=arguments[e];if(typeof n==`function`||typeof n==`object`&&n){let e=t.o;e===null&&(t.o=e=new WeakMap);let r=e.get(n);r===void 0?(t=WF(),e.set(n,t)):t=r}else{let e=t.p;e===null&&(t.p=e=new Map);let r=e.get(n);r===void 0?(t=WF(),e.set(n,t)):t=r}}let s=t,c;if(t.s===UF)c=t.v;else if(c=e.apply(null,arguments),a++,r){let e=kae(i);e!=null&&r(e,c)&&(c=e,a!==0&&a--),i=typeof c==`object`&&c||typeof c==`function`?new HF(c):c}return s.s=UF,s.v=c,c}return o.clearCache=()=>{n=WF(),o.resetResultsCount()},o.resultsCount=()=>a,o.resetResultsCount=()=>{a=0},o}function Aae(e,...t){let n=typeof e==`function`?{memoize:e,memoizeOptions:t}:e,r=(...e)=>{let t=0,r=0,i,a={},o=e.pop();typeof o==`object`&&(a=o,o=e.pop()),Cae(o,`createSelector expects an output function after the inputs, but received: [${typeof o}]`);let{memoize:s,memoizeOptions:c=[],argsMemoize:l=GF,argsMemoizeOptions:u=[]}={...n,...a},d=VF(c),f=VF(u),p=Tae(e),m=s(function(){return t++,o.apply(null,arguments)},...d),h=l(function(){r++;let e=Eae(p,arguments);return i=m.apply(null,e),i},...f);return Object.assign(h,{resultFunc:o,memoizedResultFunc:m,dependencies:p,dependencyRecomputations:()=>r,resetDependencyRecomputations:()=>{r=0},lastResult:()=>i,recomputations:()=>t,resetRecomputations:()=>{t=0},memoize:s,argsMemoize:l})};return Object.assign(r,{withTypes:()=>r}),r}var $=Aae(GF);function jae(e,t=1){let n=[],r=Math.floor(t),i=(e,t)=>{for(let a=0;a<e.length;a++){let o=e[a];Array.isArray(o)&&t<r?i(o,t+1):n.push(o)}};return i(e,0),n}function KF(e,t,n){return AF(n)&&(typeof t==`number`&&YP(n)&&FF(t)&&t<n.length||typeof t==`string`&&t in n)?kF(n[t],e):!1}function qF(e){return typeof e==`symbol`?1:e===null?2:e===void 0?3:e===e?0:4}var Mae=(e,t,n)=>{if(e!==t){let r=qF(e),i=qF(t);if(r===i&&r===0){if(e<t)return n===`desc`?1:-1;if(e>t)return n===`desc`?-1:1}return n===`desc`?i-r:r-i}return 0},Nae=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Pae=/^\w*$/;function Fae(e,t){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||rN(e)?!0:typeof e==`string`&&(Pae.test(e)||!Nae.test(e))||t!=null&&Object.hasOwn(t,e)}function Iae(e,t,n,r){if(e==null)return[];n=r?void 0:n,Array.isArray(e)||(e=YP(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(e=>String(e));let i=(e,t)=>{let n=e,r=0;for(;r<t.length&&n!=null;++r)n=n[t[r]];return r>0&&r===t.length?n:void 0},a=(e,t)=>{if(e==null)return t;if(t!=null)return typeof e==`object`&&`key`in e?Object.hasOwn(t,e.key)?t[e.key]:i(t,e.path):typeof e==`function`?e(t):Array.isArray(e)?i(t,e):t[e]},o=t.map(e=>(Array.isArray(e)&&e.length===1&&(e=e[0]),e==null||typeof e==`function`||Array.isArray(e)||Fae(e)?e:{key:e,path:oN(e)}));return e.map(e=>({original:e,criteria:o.map(t=>a(t,e))})).slice().sort((e,t)=>{for(let r=0;r<o.length;r++){let i=Mae(e.criteria[r],t.criteria[r],n[r]);if(i!==0)return i}return 0}).map(e=>e.original)}function JF(e,...t){let n=t.length;return n>1&&KF(e,t[0],t[1])?t=[]:n>2&&KF(t[0],t[1],t[2])&&(t=[t[0]]),Iae(e,jae(t),[`asc`])}var YF=e=>e.legend.settings,Lae=e=>e.legend.size;$([e=>e.legend.payload,YF],(e,t)=>{var n=t.itemSorter,r=e.flat(1);return n?JF(r,n):r});function Rae(e,t){return Hae(e)||Vae(e,t)||Bae(e,t)||zae()}function zae(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Bae(e,t){if(e){if(typeof e==`string`)return XF(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)?XF(e,t):void 0}}function XF(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Vae(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function Hae(e){if(Array.isArray(e))return e}var ZF=1;function QF(e,t){return Math.abs(e.height-t.height)>ZF||Math.abs(e.left-t.left)>ZF||Math.abs(e.top-t.top)>ZF||Math.abs(e.width-t.width)>ZF}function $F(e){var t=e.getBoundingClientRect();return{height:t.height,left:t.left,top:t.top,width:t.width}}function Uae(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=Rae((0,y.useState)({height:0,left:0,top:0,width:0}),2),n=t[0],r=t[1],i=(0,y.useRef)(null),a=(0,y.useRef)(n);a.current=n;var o=(0,y.useCallback)(e=>{if(i.current!=null&&(i.current.disconnect(),i.current=null),e!=null){var t=$F(e);if(QF(t,a.current)&&r(t),typeof ResizeObserver<`u`){var n=new ResizeObserver(()=>{var t=$F(e);QF(t,a.current)&&r(t)});n.observe(e),i.current=n}}},[...e]);return(0,y.useEffect)(()=>()=>{var e;(e=i.current)==null||e.disconnect()},[]),[n,o]}function eI(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 tI=typeof Symbol==`function`&&Symbol.observable||`@@observable`,nI=()=>Math.random().toString(36).substring(7).split(``).join(`.`),rI={INIT:`@@redux/INIT${nI()}`,REPLACE:`@@redux/REPLACE${nI()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${nI()}`};function iI(e){if(typeof e!=`object`||!e)return!1;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||Object.getPrototypeOf(e)===null}function aI(e,t,n){if(typeof e!=`function`)throw Error(eI(2));if(typeof t==`function`&&typeof n==`function`||typeof n==`function`&&typeof arguments[3]==`function`)throw Error(eI(0));if(typeof t==`function`&&n===void 0&&(n=t,t=void 0),n!==void 0){if(typeof n!=`function`)throw Error(eI(1));return n(aI)(e,t)}let r=e,i=t,a=new Map,o=a,s=0,c=!1;function l(){o===a&&(o=new Map,a.forEach((e,t)=>{o.set(t,e)}))}function u(){if(c)throw Error(eI(3));return i}function d(e){if(typeof e!=`function`)throw Error(eI(4));if(c)throw Error(eI(5));let t=!0;l();let n=s++;return o.set(n,e),function(){if(t){if(c)throw Error(eI(6));t=!1,l(),o.delete(n),a=null}}}function f(e){if(!iI(e))throw Error(eI(7));if(e.type===void 0)throw Error(eI(8));if(typeof e.type!=`string`)throw Error(eI(17));if(c)throw Error(eI(9));try{c=!0,i=r(i,e)}finally{c=!1}return(a=o).forEach(e=>{e()}),e}function p(e){if(typeof e!=`function`)throw Error(eI(10));r=e,f({type:rI.REPLACE})}function m(){let e=d;return{subscribe(t){if(typeof t!=`object`||!t)throw Error(eI(11));function n(){let e=t;e.next&&e.next(u())}return n(),{unsubscribe:e(n)}},[tI](){return this}}}return f({type:rI.INIT}),{dispatch:f,subscribe:d,getState:u,replaceReducer:p,[tI]:m}}function Wae(e){Object.keys(e).forEach(t=>{let n=e[t];if(n(void 0,{type:rI.INIT})===void 0)throw Error(eI(12));if(n(void 0,{type:rI.PROBE_UNKNOWN_ACTION()})===void 0)throw Error(eI(13))})}function oI(e){let t=Object.keys(e),n={};for(let r=0;r<t.length;r++){let i=t[r];typeof e[i]==`function`&&(n[i]=e[i])}let r=Object.keys(n),i;try{Wae(n)}catch(e){i=e}return function(e={},t){if(i)throw i;let a=!1,o={};for(let i=0;i<r.length;i++){let s=r[i],c=n[s],l=e[s],u=c(l,t);if(u===void 0)throw t&&t.type,Error(eI(14));o[s]=u,a||=u!==l}return a||=r.length!==Object.keys(e).length,a?o:e}}function sI(...e){return e.length===0?e=>e:e.length===1?e[0]:e.reduce((e,t)=>(...n)=>e(t(...n)))}function Gae(...e){return t=>(n,r)=>{let i=t(n,r),a=()=>{throw Error(eI(15))},o={getState:i.getState,dispatch:(e,...t)=>a(e,...t)};return a=sI(...e.map(e=>e(o)))(i.dispatch),{...i,dispatch:a}}}function cI(e){return iI(e)&&`type`in e&&typeof e.type==`string`}var lI=Symbol.for(`immer-nothing`),uI=Symbol.for(`immer-draftable`),dI=Symbol.for(`immer-state`);function fI(e,...t){throw Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var pI=Object,mI=pI.getPrototypeOf,hI=`constructor`,gI=`prototype`,_I=`configurable`,vI=`enumerable`,yI=`writable`,bI=`value`,xI=e=>!!e&&!!e[dI];function SI(e){return e?wI(e)||AI(e)||!!e[uI]||!!e[hI]?.[uI]||jI(e)||MI(e):!1}var Kae=pI[gI][hI].toString(),CI=new WeakMap;function wI(e){if(!e||!NI(e))return!1;let t=mI(e);if(t===null||t===pI[gI])return!0;let n=pI.hasOwnProperty.call(t,hI)&&t[hI];if(n===Object)return!0;if(!PI(n))return!1;let r=CI.get(n);return r===void 0&&(r=Function.toString.call(n),CI.set(n,r)),r===Kae}function TI(e,t,n=!0){EI(e)===0?(n?Reflect.ownKeys(e):pI.keys(e)).forEach(n=>{t(n,e[n],e)}):e.forEach((n,r)=>t(r,n,e))}function EI(e){let t=e[dI];return t?t.type_:AI(e)?1:jI(e)?2:MI(e)?3:0}var DI=(e,t,n=EI(e))=>n===2?e.has(t):pI[gI].hasOwnProperty.call(e,t),OI=(e,t,n=EI(e))=>n===2?e.get(t):e[t],kI=(e,t,n,r=EI(e))=>{r===2?e.set(t,n):r===3?e.add(n):e[t]=n};function qae(e,t){return e===t?e!==0||1/e==1/t:e!==e&&t!==t}var AI=Array.isArray,jI=e=>e instanceof Map,MI=e=>e instanceof Set,NI=e=>typeof e==`object`,PI=e=>typeof e==`function`,FI=e=>typeof e==`boolean`;function Jae(e){let t=+e;return Number.isInteger(t)&&String(t)===e}var II=e=>e.copy_||e.base_,LI=e=>e.modified_?e.copy_:e.base_;function RI(e,t){if(jI(e))return new Map(e);if(MI(e))return new Set(e);if(AI(e))return Array[gI].slice.call(e);let n=wI(e);if(t===!0||t===`class_only`&&!n){let t=pI.getOwnPropertyDescriptors(e);delete t[dI];let n=Reflect.ownKeys(t);for(let r=0;r<n.length;r++){let i=n[r],a=t[i];a[yI]===!1&&(a[yI]=!0,a[_I]=!0),(a.get||a.set)&&(t[i]={[_I]:!0,[yI]:!0,[vI]:a[vI],[bI]:e[i]})}return pI.create(mI(e),t)}{let t=mI(e);if(t!==null&&n)return{...e};let r=pI.create(t);return pI.assign(r,e)}}function zI(e,t=!1){return VI(e)||xI(e)||!SI(e)||(EI(e)>1&&pI.defineProperties(e,{set:BI,add:BI,clear:BI,delete:BI}),pI.freeze(e),t&&TI(e,(e,t)=>{zI(t,!0)},!1)),e}function Yae(){fI(2)}var BI={[bI]:Yae};function VI(e){return e===null||!NI(e)||pI.isFrozen(e)}var HI=`MapSet`,UI=`Patches`,WI=`ArrayMethods`,GI={};function KI(e){let t=GI[e];return t||fI(0,e),t}var qI=e=>!!GI[e],JI,YI=()=>JI,Xae=(e,t)=>({drafts_:[],parent_:e,immer_:t,canAutoFreeze_:!0,unfinalizedDrafts_:0,handledSet_:new Set,processedForPatches_:new Set,mapSetPlugin_:qI(HI)?KI(HI):void 0,arrayMethodsPlugin_:qI(WI)?KI(WI):void 0});function XI(e,t){t&&(e.patchPlugin_=KI(UI),e.patches_=[],e.inversePatches_=[],e.patchListener_=t)}function ZI(e){QI(e),e.drafts_.forEach(Zae),e.drafts_=null}function QI(e){e===JI&&(JI=e.parent_)}var $I=e=>JI=Xae(JI,e);function Zae(e){let t=e[dI];t.type_===0||t.type_===1?t.revoke_():t.revoked_=!0}function eL(e,t){t.unfinalizedDrafts_=t.drafts_.length;let n=t.drafts_[0];if(e!==void 0&&e!==n){n[dI].modified_&&(ZI(t),fI(4)),SI(e)&&(e=tL(t,e));let{patchPlugin_:r}=t;r&&r.generateReplacementPatches_(n[dI].base_,e,t)}else e=tL(t,n);return Qae(t,e,!0),ZI(t),t.patches_&&t.patchListener_(t.patches_,t.inversePatches_),e===lI?void 0:e}function tL(e,t){if(VI(t))return t;let n=t[dI];if(!n)return oL(t,e.handledSet_,e);if(!rL(n,e))return t;if(!n.modified_)return n.base_;if(!n.finalized_){let{callbacks_:t}=n;if(t)for(;t.length>0;)t.pop()(e);aL(n,e)}return n.copy_}function Qae(e,t,n=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&zI(t,n)}function nL(e){e.finalized_=!0,e.scope_.unfinalizedDrafts_--}var rL=(e,t)=>e.scope_===t,$ae=[];function iL(e,t,n,r){let i=II(e),a=e.type_;if(r!==void 0&&OI(i,r,a)===t){kI(i,r,n,a);return}if(!e.draftLocations_){let t=e.draftLocations_=new Map;TI(i,(e,n)=>{if(xI(n)){let r=t.get(n)||[];r.push(e),t.set(n,r)}})}let o=e.draftLocations_.get(t)??$ae;for(let e of o)kI(i,e,n,a)}function eoe(e,t,n){e.callbacks_.push(function(r){let i=t;if(!i||!rL(i,r))return;r.mapSetPlugin_?.fixSetContents(i);let a=LI(i);iL(e,i.draft_??i,a,n),aL(i,r)})}function aL(e,t){if(e.modified_&&!e.finalized_&&(e.type_===3||e.type_===1&&e.allIndicesReassigned_||(e.assigned_?.size??0)>0)){let{patchPlugin_:n}=t;if(n){let r=n.getPath(e);r&&n.generatePatches_(e,r,t)}nL(e)}}function toe(e,t,n){let{scope_:r}=e;if(xI(n)){let i=n[dI];rL(i,r)&&i.callbacks_.push(function(){fL(e),iL(e,n,LI(i),t)})}else SI(n)&&e.callbacks_.push(function(){let i=II(e);e.type_===3?i.has(n)&&oL(n,r.handledSet_,r):OI(i,t,e.type_)===n&&r.drafts_.length>1&&(e.assigned_.get(t)??!1)===!0&&e.copy_&&oL(OI(e.copy_,t,e.type_),r.handledSet_,r)})}function oL(e,t,n){return!n.immer_.autoFreeze_&&n.unfinalizedDrafts_<1||xI(e)||t.has(e)||!SI(e)||VI(e)||(t.add(e),TI(e,(r,i)=>{if(xI(i)){let t=i[dI];rL(t,n)&&(kI(e,r,LI(t),e.type_),nL(t))}else SI(i)&&oL(i,t,n)})),e}function noe(e,t){let n=AI(e),r={type_:+!!n,scope_:t?t.scope_:YI(),modified_:!1,finalized_:!1,assigned_:void 0,parent_:t,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1,callbacks_:void 0},i=r,a=sL;n&&(i=[r],a=cL);let{revoke:o,proxy:s}=Proxy.revocable(i,a);return r.draft_=s,r.revoke_=o,[s,r]}var sL={get(e,t){if(t===dI)return e;let n=e.scope_.arrayMethodsPlugin_,r=e.type_===1&&typeof t==`string`;if(r&&n?.isArrayOperationMethod(t))return n.createMethodInterceptor(e,t);let i=II(e);if(!DI(i,t,e.type_))return ioe(e,i,t);let a=i[t];if(e.finalized_||!SI(a)||r&&e.operationMethod&&n?.isMutatingArrayMethod(e.operationMethod)&&Jae(t))return a;if(a===lL(e.base_,t)||roe(e,t,a)){fL(e);let n=e.type_===1?+t:t,r=pL(e.scope_,a,e,n);return e.copy_[n]=r}return a},has(e,t){return t in II(e)},ownKeys(e){return Reflect.ownKeys(II(e))},set(e,t,n){let r=uL(II(e),t);if(r?.set)return r.set.call(e.draft_,n),!0;if(!e.modified_){let r=lL(II(e),t),i=r?.[dI];if(i&&i.base_===n)return e.copy_[t]=n,e.assigned_.set(t,!1),!0;if(qae(n,r)&&(n!==void 0||DI(e.base_,t,e.type_)))return!0;fL(e),dL(e)}return e.copy_[t]===n&&(n!==void 0||DI(e.copy_,t,e.type_))||Number.isNaN(n)&&Number.isNaN(e.copy_[t])||(e.copy_[t]=n,e.assigned_.set(t,!0),toe(e,t,n)),!0},deleteProperty(e,t){return fL(e),lL(e.base_,t)!==void 0||t in e.base_?(e.assigned_.set(t,!1),dL(e)):e.assigned_.delete(t),e.copy_&&delete e.copy_[t],!0},getOwnPropertyDescriptor(e,t){let n=II(e),r=Reflect.getOwnPropertyDescriptor(n,t);return r&&{[yI]:!0,[_I]:e.type_!==1||t!==`length`,[vI]:r[vI],[bI]:n[t]}},defineProperty(){fI(11)},getPrototypeOf(e){return mI(e.base_)},setPrototypeOf(){fI(12)}},cL={};for(let e in sL){let t=sL[e];cL[e]=function(){let e=arguments;return e[0]=e[0][0],t.apply(this,e)}}cL.deleteProperty=function(e,t){return cL.set.call(this,e,t,void 0)},cL.set=function(e,t,n){return sL.set.call(this,e[0],t,n,e[0])};function lL(e,t){let n=e[dI];return(n?II(n):e)[t]}function roe(e,t,n){return e.type_!==1||!e.allIndicesReassigned_||e.assigned_?.get(t)||!SI(n)||n[dI]?!1:e.baseRefs_.has(n)}function ioe(e,t,n){let r=uL(t,n);return r?bI in r?r[bI]:r.get?.call(e.draft_):void 0}function uL(e,t){if(!(t in e))return;let n=mI(e);for(;n;){let e=Object.getOwnPropertyDescriptor(n,t);if(e)return e;n=mI(n)}}function dL(e){e.modified_||(e.modified_=!0,e.parent_&&dL(e.parent_))}function fL(e){e.copy_||=(e.assigned_=new Map,RI(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var aoe=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.useStrictIteration_=!1,this.produce=(e,t,n)=>{if(PI(e)&&!PI(t)){let n=t;t=e;let r=this;return function(e=n,...i){return r.produce(e,e=>t.call(this,e,...i))}}PI(t)||fI(6),n!==void 0&&!PI(n)&&fI(7);let r;if(SI(e)){let i=$I(this),a=pL(i,e,void 0),o=!0;try{r=t(a),o=!1}finally{o?ZI(i):QI(i)}return XI(i,n),eL(r,i)}if(!e||!NI(e)){if(r=t(e),r===void 0&&(r=e),r===lI&&(r=void 0),this.autoFreeze_&&zI(r,!0),n){let t=[],i=[];KI(UI).generateReplacementPatches_(e,r,{patches_:t,inversePatches_:i}),n(t,i)}return r}fI(1,e)},this.produceWithPatches=(e,t)=>{if(PI(e))return(t,...n)=>this.produceWithPatches(t,t=>e(t,...n));let n,r;return[this.produce(e,t,(e,t)=>{n=e,r=t}),n,r]},FI(e?.autoFreeze)&&this.setAutoFreeze(e.autoFreeze),FI(e?.useStrictShallowCopy)&&this.setUseStrictShallowCopy(e.useStrictShallowCopy),FI(e?.useStrictIteration)&&this.setUseStrictIteration(e.useStrictIteration)}createDraft(e){SI(e)||fI(8),xI(e)&&(e=mL(e));let t=$I(this),n=pL(t,e,void 0);return n[dI].isManual_=!0,QI(t),n}finishDraft(e,t){let n=e&&e[dI];n&&n.isManual_||fI(9);let{scope_:r}=n;return XI(r,t),eL(void 0,r)}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--){let r=t[n];if(r.path.length===0&&r.op===`replace`){e=r.value;break}}n>-1&&(t=t.slice(n+1));let r=KI(UI).applyPatches_;return xI(e)?r(e,t):this.produce(e,e=>r(e,t))}};function pL(e,t,n,r){let[i,a]=jI(t)?KI(HI).proxyMap_(t,n):MI(t)?KI(HI).proxySet_(t,n):noe(t,n);return(n?.scope_??YI()).drafts_.push(i),a.callbacks_=n?.callbacks_??[],a.key_=r,n&&r!==void 0?eoe(n,a,r):a.callbacks_.push(function(e){e.mapSetPlugin_?.fixSetContents(a);let{patchPlugin_:t}=e;a.modified_&&t&&t.generatePatches_(a,[],e)}),i}function mL(e){return xI(e)||fI(10,e),hL(e)}function hL(e){if(!SI(e)||VI(e))return e;let t=e[dI],n,r=!0;if(t){if(!t.modified_)return t.base_;t.finalized_=!0,n=RI(e,t.scope_.immer_.useStrictShallowCopy_),r=t.scope_.immer_.shouldUseStrictIteration()}else n=RI(e,!0);return TI(n,(e,t)=>{kI(n,e,hL(t))},r),t&&(t.finalized_=!1),n}globalThis.Iterator?.from;var gL=new aoe().produce,_L=e=>e;function vL(e){return({dispatch:t,getState:n})=>r=>i=>typeof i==`function`?i(t,n,e):r(i)}var ooe=vL(),soe=vL,coe=typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]==`object`?sI:sI.apply(null,arguments)};typeof window<`u`&&window.__REDUX_DEVTOOLS_EXTENSION__&&window.__REDUX_DEVTOOLS_EXTENSION__;function yL(e,t){function n(...n){if(t){let r=t(...n);if(!r)throw Error(eR(0));return{type:e,payload:r.payload,...`meta`in r&&{meta:r.meta},...`error`in r&&{error:r.error}}}return{type:e,payload:n[0]}}return n.toString=()=>`${e}`,n.type=e,n.match=t=>cI(t)&&t.type===e,n}var bL=class e extends Array{constructor(...t){super(...t),Object.setPrototypeOf(this,e.prototype)}static get[Symbol.species](){return e}concat(...e){return super.concat.apply(this,e)}prepend(...t){return t.length===1&&Array.isArray(t[0])?new e(...t[0].concat(this)):new e(...t.concat(this))}};function xL(e){return SI(e)?gL(e,()=>{}):e}function SL(e,t,n){return e.has(t)?e.get(t):e.set(t,n(t)).get(t)}function loe(e){return typeof e==`boolean`}var uoe=()=>function(e){let{thunk:t=!0,immutableCheck:n=!0,serializableCheck:r=!0,actionCreatorCheck:i=!0}=e??{},a=new bL;return t&&(loe(t)?a.push(ooe):a.push(soe(t.extraArgument))),a},CL=`RTK_autoBatch`,wL=()=>e=>({payload:e,meta:{[CL]:!0}}),TL=e=>t=>{setTimeout(t,e)},doe=(e,t)=>n=>{let r=!1,i=()=>{r||(r=!0,cancelAnimationFrame(a),clearTimeout(o),n())},a=e(i),o=setTimeout(i,t)},EL=(e={type:`raf`})=>t=>(...n)=>{let r=t(...n),i=!0,a=!1,o=!1,s=new Set,c=e.type===`tick`?queueMicrotask:e.type===`raf`?typeof window<`u`&&window.requestAnimationFrame?doe(window.requestAnimationFrame,100):TL(10):e.type===`callback`?e.queueNotification:TL(e.timeout),l=()=>{o=!1,a&&(a=!1,s.forEach(e=>e()))};return Object.assign({},r,{subscribe(e){let t=r.subscribe(()=>i&&e());return s.add(e),()=>{t(),s.delete(e)}},dispatch(e){try{return i=!e?.meta?.[CL],a=!i,a&&(o||(o=!0,c(l))),r.dispatch(e)}finally{i=!0}}})},foe=e=>function(t){let{autoBatch:n=!0}=t??{},r=new bL(e);return n&&r.push(EL(typeof n==`object`?n:void 0)),r};function poe(e){let t=uoe(),{reducer:n=void 0,middleware:r,devTools:i=!0,duplicateMiddlewareCheck:a=!0,preloadedState:o=void 0,enhancers:s=void 0}=e||{},c;if(typeof n==`function`)c=n;else if(iI(n))c=oI(n);else throw Error(eR(1));let l;l=typeof r==`function`?r(t):t();let u=sI;i&&(u=coe({trace:!1,...typeof i==`object`&&i}));let d=foe(Gae(...l)),f=typeof s==`function`?s(d):d(),p=u(...f);return aI(c,o,p)}function DL(e){let t={},n=[],r,i={addCase(e,n){let r=typeof e==`string`?e:e.type;if(!r)throw Error(eR(28));if(r in t)throw Error(eR(29));return t[r]=n,i},addAsyncThunk(e,r){return r.pending&&(t[e.pending.type]=r.pending),r.rejected&&(t[e.rejected.type]=r.rejected),r.fulfilled&&(t[e.fulfilled.type]=r.fulfilled),r.settled&&n.push({matcher:e.settled,reducer:r.settled}),i},addMatcher(e,t){return n.push({matcher:e,reducer:t}),i},addDefaultCase(e){return r=e,i}};return e(i),[t,n,r]}function moe(e){return typeof e==`function`}function hoe(e,t){let[n,r,i]=DL(t),a;if(moe(e))a=()=>xL(e());else{let t=xL(e);a=()=>t}function o(e=a(),t){let o=[n[t.type],...r.filter(({matcher:e})=>e(t)).map(({reducer:e})=>e)];return o.filter(e=>!!e).length===0&&(o=[i]),o.reduce((e,n)=>{if(n){if(xI(e)){let r=n(e,t);return r===void 0?e:r}if(SI(e))return gL(e,e=>n(e,t));{let r=n(e,t);if(r===void 0){if(e===null)return e;throw Error(`A case reducer on a non-draftable value must not return undefined`)}return r}}return e},e)}return o.getInitialState=a,o}var goe=`ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW`,_oe=(e=21)=>{let t=``,n=e;for(;n--;)t+=goe[Math.random()*64|0];return t},voe=Symbol.for(`rtk-slice-createasyncthunk`);function yoe(e,t){return`${e}/${t}`}function boe({creators:e}={}){let t=e?.asyncThunk?.[voe];return function(e){let{name:n,reducerPath:r=n}=e;if(!n)throw Error(eR(11));let i=(typeof e.reducers==`function`?e.reducers(Soe()):e.reducers)||{},a=Object.keys(i),o={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},s={addCase(e,t){let n=typeof e==`string`?e:e.type;if(!n)throw Error(eR(12));if(n in o.sliceCaseReducersByType)throw Error(eR(13));return o.sliceCaseReducersByType[n]=t,s},addMatcher(e,t){return o.sliceMatchers.push({matcher:e,reducer:t}),s},exposeAction(e,t){return o.actionCreators[e]=t,s},exposeCaseReducer(e,t){return o.sliceCaseReducersByName[e]=t,s}};a.forEach(r=>{let a=i[r],o={reducerName:r,type:yoe(n,r),createNotation:typeof e.reducers==`function`};woe(a)?Eoe(o,a,s,t):Coe(o,a,s)});function c(){let[t={},n=[],r=void 0]=typeof e.extraReducers==`function`?DL(e.extraReducers):[e.extraReducers],i={...t,...o.sliceCaseReducersByType};return hoe(e.initialState,e=>{for(let t in i)e.addCase(t,i[t]);for(let t of o.sliceMatchers)e.addMatcher(t.matcher,t.reducer);for(let t of n)e.addMatcher(t.matcher,t.reducer);r&&e.addDefaultCase(r)})}let l=e=>e,u=new Map,d=new WeakMap,f;function p(e,t){return f||=c(),f(e,t)}function m(){return f||=c(),f.getInitialState()}function h(t,n=!1){function r(e){let i=e[t];return i===void 0&&n&&(i=SL(d,r,m)),i}function i(t=l){return SL(SL(u,n,()=>new WeakMap),t,()=>{let r={};for(let[i,a]of Object.entries(e.selectors??{}))r[i]=xoe(a,t,()=>SL(d,t,m),n);return r})}return{reducerPath:t,getSelectors:i,get selectors(){return i(r)},selectSlice:r}}let g={name:n,reducer:p,actions:o.actionCreators,caseReducers:o.sliceCaseReducersByName,getInitialState:m,...h(r),injectInto(e,{reducerPath:t,...n}={}){let i=t??r;return e.inject({reducerPath:i,reducer:p},n),{...g,...h(i,!0)}}};return g}}function xoe(e,t,n,r){function i(i,...a){let o=t(i);return o===void 0&&r&&(o=n()),e(o,...a)}return i.unwrapped=e,i}var OL=boe();function Soe(){function e(e,t){return{_reducerDefinitionType:`asyncThunk`,payloadCreator:e,...t}}return e.withTypes=()=>e,{reducer(e){return Object.assign({[e.name](...t){return e(...t)}}[e.name],{_reducerDefinitionType:`reducer`})},preparedReducer(e,t){return{_reducerDefinitionType:`reducerWithPrepare`,prepare:e,reducer:t}},asyncThunk:e}}function Coe({type:e,reducerName:t,createNotation:n},r,i){let a,o;if(`reducer`in r){if(n&&!Toe(r))throw Error(eR(17));a=r.reducer,o=r.prepare}else a=r;i.addCase(e,a).exposeCaseReducer(t,a).exposeAction(t,o?yL(e,o):yL(e))}function woe(e){return e._reducerDefinitionType===`asyncThunk`}function Toe(e){return e._reducerDefinitionType===`reducerWithPrepare`}function Eoe({type:e,reducerName:t},n,r,i){if(!i)throw Error(eR(18));let{payloadCreator:a,fulfilled:o,pending:s,rejected:c,settled:l,options:u}=n,d=i(e,a,u);r.exposeAction(t,d),o&&r.addCase(d.fulfilled,o),s&&r.addCase(d.pending,s),c&&r.addCase(d.rejected,c),l&&r.addMatcher(d.settled,l),r.exposeCaseReducer(t,{fulfilled:o||kL,pending:s||kL,rejected:c||kL,settled:l||kL})}function kL(){}var Doe=`task`,AL=`listener`,jL=`completed`,ML=`cancelled`,Ooe=`task-${ML}`,koe=`task-${jL}`,NL=`${AL}-${ML}`,Aoe=`${AL}-${jL}`,PL=class{constructor(e){this.code=e,this.message=`${Doe} ${ML} (reason: ${e})`}code;name=`TaskAbortError`;message},FL=(e,t)=>{if(typeof e!=`function`)throw TypeError(eR(32))},IL=()=>{},LL=(e,t=IL)=>(e.catch(t),e),RL=(e,t)=>(e.addEventListener(`abort`,t,{once:!0}),()=>e.removeEventListener(`abort`,t)),zL=e=>{if(e.aborted)throw new PL(e.reason)};function BL(e,t){let n=IL;return new Promise((r,i)=>{let a=()=>i(new PL(e.reason));e.aborted?a():(n=RL(e,a),t.finally(()=>n()).then(r,i))}).finally(()=>{n=IL})}var joe=async(e,t)=>{try{return await Promise.resolve(),{status:`ok`,value:await e()}}catch(e){return{status:e instanceof PL?`cancelled`:`rejected`,error:e}}finally{t?.()}},VL=e=>t=>LL(BL(e,t).then(t=>(zL(e),t))),HL=e=>{let t=VL(e);return e=>t(new Promise(t=>setTimeout(t,e)))},{assign:UL}=Object,WL={},GL=`listenerMiddleware`,Moe=(e,t)=>{let n=t=>RL(e,()=>t.abort(e.reason));return(r,i)=>{FL(r,`taskExecutor`);let a=new AbortController;n(a);let o=joe(async()=>{zL(e),zL(a.signal);let t=await r({pause:VL(a.signal),delay:HL(a.signal),signal:a.signal});return zL(a.signal),t},()=>a.abort(koe));return i?.autoJoin&&t.push(o.catch(IL)),{result:VL(e)(o),cancel(){a.abort(Ooe)}}}},Noe=(e,t)=>{let n=async(n,r)=>{zL(t);let i=()=>{},a=[new Promise((t,r)=>{let a=e({predicate:n,effect:(e,n)=>{n.unsubscribe(),t([e,n.getState(),n.getOriginalState()])}});i=()=>{a(),r()}})];r!=null&&a.push(new Promise(e=>setTimeout(e,r,null)));try{let e=await BL(t,Promise.race(a));return zL(t),e}finally{i()}};return((e,t)=>LL(n(e,t)))},KL=e=>{let{type:t,actionCreator:n,matcher:r,predicate:i,effect:a}=e;if(t)i=yL(t).match;else if(n)t=n.type,i=n.match;else if(r)i=r;else if(!i)throw Error(eR(21));return FL(a,`options.listener`),{predicate:i,type:t,effect:a}},qL=UL(e=>{let{type:t,predicate:n,effect:r}=KL(e);return{id:_oe(),effect:r,type:t,predicate:n,pending:new Set,unsubscribe:()=>{throw Error(eR(22))}}},{withTypes:()=>qL}),JL=(e,t)=>{let{type:n,effect:r,predicate:i}=KL(t);return Array.from(e.values()).find(e=>(typeof n==`string`?e.type===n:e.predicate===i)&&e.effect===r)},YL=e=>{e.pending.forEach(e=>{e.abort(NL)})},Poe=(e,t)=>()=>{for(let e of t.keys())YL(e);e.clear()},XL=(e,t,n)=>{try{e(t,n)}catch(e){setTimeout(()=>{throw e},0)}},ZL=UL(yL(`${GL}/add`),{withTypes:()=>ZL}),Foe=yL(`${GL}/removeAll`),QL=UL(yL(`${GL}/remove`),{withTypes:()=>QL}),Ioe=(...e)=>{console.error(`${GL}/error`,...e)},$L=(e={})=>{let t=new Map,n=new Map,r=e=>{let t=n.get(e)??0;n.set(e,t+1)},i=e=>{let t=n.get(e)??1;t===1?n.delete(e):n.set(e,t-1)},{extra:a,onError:o=Ioe}=e;FL(o,`onError`);let s=e=>(e.unsubscribe=()=>t.delete(e.id),t.set(e.id,e),t=>{e.unsubscribe(),t?.cancelActive&&YL(e)}),c=(e=>{let n=JL(t,e)??qL(e);return s(n)});UL(c,{withTypes:()=>c});let l=e=>{let n=JL(t,e);return n&&(n.unsubscribe(),e.cancelActive&&YL(n)),!!n};UL(l,{withTypes:()=>l});let u=async(e,n,s,l)=>{let u=new AbortController,d=Noe(c,u.signal),f=[];try{e.pending.add(u),r(e),await Promise.resolve(e.effect(n,UL({},s,{getOriginalState:l,condition:(e,t)=>d(e,t).then(Boolean),take:d,delay:HL(u.signal),pause:VL(u.signal),extra:a,signal:u.signal,fork:Moe(u.signal,f),unsubscribe:e.unsubscribe,subscribe:()=>{t.set(e.id,e)},cancelActiveListeners:()=>{e.pending.forEach((e,t,n)=>{e!==u&&(e.abort(NL),n.delete(e))})},cancel:()=>{u.abort(NL),e.pending.delete(u)},throwIfCancelled:()=>{zL(u.signal)}})))}catch(e){e instanceof PL||XL(o,e,{raisedBy:`effect`})}finally{await Promise.all(f),u.abort(Aoe),i(e),e.pending.delete(u)}},d=Poe(t,n);return{middleware:e=>n=>r=>{if(!cI(r))return n(r);if(ZL.match(r))return c(r.payload);if(Foe.match(r)){d();return}if(QL.match(r))return l(r.payload);let i=e.getState(),a=()=>{if(i===WL)throw Error(eR(23));return i},s;try{if(s=n(r),t.size>0){let n=e.getState(),s=Array.from(t.values());for(let t of s){let s=!1;try{s=t.predicate(r,n,i)}catch(e){s=!1,XL(o,e,{raisedBy:`predicate`})}s&&u(t,r,e,a)}}}finally{i=WL}return s},startListening:c,stopListening:l,clearListeners:d}};function eR(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 tR=OL({name:`chartLayout`,initialState:{layoutType:`horizontal`,width:0,height:0,margin:{top:5,right:5,bottom:5,left:5},scale:1},reducers:{setLayout(e,t){e.layoutType=t.payload},setChartSize(e,t){e.width=t.payload.width,e.height=t.payload.height},setMargin(e,t){e.margin.top=t.payload.top??0,e.margin.right=t.payload.right??0,e.margin.bottom=t.payload.bottom??0,e.margin.left=t.payload.left??0},setScale(e,t){e.scale=t.payload}}}),nR=tR.actions,Loe=nR.setMargin,Roe=nR.setLayout,zoe=nR.setChartSize,Boe=nR.setScale,Voe=tR.reducer;function rR(e,t,n){return Array.isArray(e)&&e&&t+n!==0?e.slice(t,n+1):e}function iR(e){return Number.isFinite(e)}function aR(e){return typeof e==`number`&&e>0&&Number.isFinite(e)}function oR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function sR(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?oR(Object(n),!0).forEach(function(t){Hoe(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):oR(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Hoe(e,t,n){return(t=Uoe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Uoe(e){var t=Woe(e,`string`);return typeof t==`symbol`?t:t+``}function Woe(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function cR(e,t,n){return SN(e)||SN(t)?n:hN(t)?sN(e,t,n):typeof t==`function`?t(e):n}var Goe=(e,t,n)=>{if(t&&n){var r=n.width,i=n.height,a=t.align,o=t.verticalAlign,s=t.layout,c=t.position,l=t.offset,u=l===void 0?0:l;if(c!=null){if(PN(c)){if(c===`top`&&Q(e.top))return sR(sR({},e),{},{top:e.top+(i||0)+u});if(c===`bottom`&&Q(e.bottom))return sR(sR({},e),{},{bottom:e.bottom+(i||0)+u});if(c===`left`&&Q(e.left))return sR(sR({},e),{},{left:e.left+(r||0)+u});if(c===`right`&&Q(e.right))return sR(sR({},e),{},{right:e.right+(r||0)+u})}return e}if((s===`vertical`||s===`horizontal`&&o===`middle`)&&a!==`center`&&Q(e[a]))return sR(sR({},e),{},{[a]:e[a]+(r||0)});if((s===`horizontal`||s===`vertical`&&a===`center`)&&o!==`middle`&&Q(e[o]))return sR(sR({},e),{},{[o]:e[o]+(i||0)})}return e},lR=(e,t)=>e===`horizontal`&&t===`xAxis`||e===`vertical`&&t===`yAxis`||e===`centric`&&t===`angleAxis`||e===`radial`&&t===`radiusAxis`,uR=(e,t,n,r)=>{if(r)return e.map(e=>e.coordinate);var i,a,o=e.map(e=>(e.coordinate===t&&(i=!0),e.coordinate===n&&(a=!0),e.coordinate));return i||o.push(t),a||o.push(n),o},dR=(e,t,n)=>{if(!e)return null;var r=e.duplicateDomain,i=e.type,a=e.range,o=e.scale,s=e.realScaleType,c=e.isCategorical,l=e.categoricalDomain,u=e.tickCount,d=e.ticks,f=e.niceTicks,p=e.axisType;if(!o)return null;var m=s===`scaleBand`&&o.bandwidth?o.bandwidth()/2:2,h=(t||n)&&i===`category`&&o.bandwidth?o.bandwidth()/m:0;return h=p===`angleAxis`&&a&&a.length>=2?fN(a[0]-a[1])*2*h:h,t&&(d||f)?(d||f||[]).map((e,t)=>{var n=r?r.indexOf(e):e,i=o.map(n);return iR(i)?{coordinate:i+h,value:e,offset:h,index:t}:null}).filter(wN):c&&l?l.map((e,t)=>{var n=o.map(e);return iR(n)?{coordinate:n+h,value:e,index:t,offset:h}:null}).filter(wN):o.ticks&&!n&&u!=null?o.ticks(u).map((e,t)=>{var n=o.map(e);return iR(n)?{coordinate:n+h,value:e,index:t,offset:h}:null}).filter(wN):o.domain().map((e,t)=>{var n=o.map(e);return iR(n)?{coordinate:n+h,value:r?r[e]:e,index:t,offset:h}:null}).filter(wN)},Koe={sign:e=>{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r<n;++r)for(var i=0,a=0,o=0;o<t;++o){var s=e[o]?.[r];if(s!=null){var c=s[1],l=s[0],u=pN(c)?l:c;u>=0?(s[0]=i,i+=u,s[1]=i):(s[0]=a,a+=u,s[1]=a)}}}},expand:MP,none:DP,silhouette:NP,wiggle:PP,positive:e=>{var t=e.length;if(!(t<=0)){var n=e[0]?.length;if(!(n==null||n<=0))for(var r=0;r<n;++r)for(var i=0,a=0;a<t;++a){var o=e[a]?.[r];if(o!=null){var s=pN(o[1])?o[0]:o[1];s>=0?(o[0]=i,i+=s,o[1]=i):(o[0]=0,o[1]=0)}}}}},qoe=(e,t,n)=>{var r=Koe[n]??DP,i=jP().keys(t).value((e,t)=>Number(cR(e,t,0))).order(OP).offset(r)(e);return i.forEach((n,r)=>{n.forEach((n,i)=>{var a=cR(e[i],t[r],0);Array.isArray(a)&&a.length===2&&Q(a[0])&&Q(a[1])&&(n[0]=a[0],n[1]=a[1])})}),i};function Joe(e){return e==null?void 0:String(e)}function fR(e){var t=e.axis,n=e.ticks,r=e.bandSize,i=e.entry,a=e.index,o=e.dataKey;if(t.type===`category`){if(!t.allowDuplicatedCategory&&t.dataKey&&!SN(i[t.dataKey])){var s=xN(n,`value`,i[t.dataKey]);if(s)return s.coordinate+r/2}return n!=null&&n[a]?n[a].coordinate+r/2:null}var c=cR(i,SN(o)?t.dataKey:o),l=t.scale.map(c);return Q(l)?l:null}var Yoe=e=>{var t=e.flat(2).filter(Q);return[Math.min(...t),Math.max(...t)]},Xoe=e=>[e[0]===1/0?0:e[0],e[1]===-1/0?0:e[1]],Zoe=(e,t,n)=>{if(e!=null&&Object.keys(e).length!==0)return Xoe(Object.keys(e).reduce((r,i)=>{var a=e[i];if(!a)return r;var o=a.stackedData.reduce((e,r)=>{var i=Yoe(rR(r,t,n));return!iR(i[0])||!iR(i[1])?e:[Math.min(e[0],i[0]),Math.max(e[1],i[1])]},[1/0,-1/0]);return[Math.min(o[0],r[0]),Math.max(o[1],r[1])]},[1/0,-1/0]))},pR=/^dataMin[\s]*-[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,mR=/^dataMax[\s]*\+[\s]*([0-9]+([.]{1}[0-9]+){0,1})$/,hR=(e,t,n)=>{if(e&&e.scale&&e.scale.bandwidth){var r=e.scale.bandwidth();if(!n||r>0)return r}if(e&&t&&t.length>=2){for(var i=JF(t,e=>e.coordinate),a=[],o=0,s=1,c=i.length;s<c;s++){var l=(i[s]?.coordinate||0)-(i[s-1]?.coordinate||0);a.push(l),o=Math.max(l,o)}var u=o*1e-4,d=1/0;for(var f of a)f>u&&(d=Math.min(f,d));return d===1/0?0:d}return n?void 0:0};function gR(e){var t=e.tooltipEntrySettings,n=e.dataKey,r=e.payload,i=e.value,a=e.name;return sR(sR({},t),{},{dataKey:n,payload:r,value:i,name:a})}function _R(e,t){if(e!=null)return String(e);if(typeof t==`string`)return t}var Qoe=(e,t)=>{if(t===`horizontal`)return e.relativeX;if(t===`vertical`)return e.relativeY},$oe=(e,t)=>t===`centric`?e.angle:e.radius,vR=e=>e.layout.width,yR=e=>e.layout.height,ese=e=>e.layout.scale,bR=e=>e.layout.margin,xR=$(e=>e.cartesianAxis.xAxis,e=>Object.values(e)),SR=$(e=>e.cartesianAxis.yAxis,e=>Object.values(e)),tse=`data-recharts-item-index`;function CR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wR(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?CR(Object(n),!0).forEach(function(t){nse(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):CR(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function nse(e,t,n){return(t=rse(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rse(e){var t=ise(e,`string`);return typeof t==`symbol`?t:t+``}function ise(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var ase=e=>e.brush.height;function ose(e){return SR(e).reduce((e,t)=>t.orientation===`left`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function sse(e){return SR(e).reduce((e,t)=>t.orientation===`right`&&!t.mirror&&!t.hide?e+(typeof t.width==`number`?t.width:60):e,0)}function cse(e){return xR(e).reduce((e,t)=>t.orientation===`top`&&!t.mirror&&!t.hide?e+(typeof t.height==`number`?t.height:30):e,0)}function lse(e){return xR(e).reduce((e,t)=>t.orientation===`bottom`&&!t.mirror&&!t.hide?e+(typeof t.height==`number`?t.height:30):e,0)}var TR=$([vR,yR,bR,ase,ose,sse,cse,lse,YF,Lae],(e,t,n,r,i,a,o,s,c,l)=>{var u={left:(n.left||0)+i,right:(n.right||0)+a},d=wR(wR({},{top:(n.top||0)+o,bottom:(n.bottom||0)+s}),u),f=d.bottom;d.bottom+=r,d=Goe(d,c,l);var p=e-d.left-d.right,m=t-d.top-d.bottom;return wR(wR({brushBottom:f},d),{},{width:Math.max(p,0),height:Math.max(m,0)})}),use=$(TR,e=>({x:e.left,y:e.top,width:e.width,height:e.height})),ER=$(vR,yR,(e,t)=>({x:0,y:0,width:e,height:t})),dse=(0,y.createContext)(null),DR=()=>(0,y.useContext)(dse)!=null,OR=e=>e.brush,kR=$([OR,TR,bR],(e,t,n)=>({height:e.height,x:Q(e.x)?e.x:t.left,y:Q(e.y)?e.y:t.top+t.height+t.brushBottom-(n?.bottom||0),width:Q(e.width)?e.width:t.width}));function fse(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function pse(e,t=0,n={}){typeof n!=`object`&&(n={});let{leading:r=!1,trailing:i=!0,maxWait:a}=n,o=[,,];r&&(o[0]=`leading`),i&&(o[1]=`trailing`);let s,c=null,l=fse(function(...t){s=e.apply(this,t),c=null},t,{edges:o}),u=function(...t){return a!=null&&(c===null&&(c=Date.now()),Date.now()-c>=a)?((r||i)&&(s=e.apply(this,t)),c=Date.now(),l.cancel(),l.schedule(),s):(l.apply(this,t),s)};return u.cancel=l.cancel,u.flush=()=>(l.flush(),s),u}function mse(e,t=0,n={}){let{leading:r=!0,trailing:i=!0}=n;return pse(e,t,{leading:r,maxWait:t,trailing:i})}var AR=function(e,t){var n=[...arguments].slice(2);if(typeof console<`u`&&console.warn&&(t===void 0&&console.warn(`LogUtils requires an error message argument`),!e)){if(t===void 0)console.warn(`Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.`);else{var r=0;console.warn(t.replace(/%s/g,()=>n[r++]))}}},jR={width:`100%`,height:`100%`,debounce:0,minWidth:0,initialDimension:{width:-1,height:-1}},MR=(e,t,n)=>{var r=n.width,i=r===void 0?jR.width:r,a=n.height,o=a===void 0?jR.height:a,s=n.aspect,c=n.maxHeight,l=mN(i)?e:Number(i),u=mN(o)?t:Number(o);return s&&s>0&&(l?u=l/s:u&&(l=u*s),c&&u!=null&&u>c&&(u=c)),{calculatedWidth:l,calculatedHeight:u}},hse={width:0,height:0,overflow:`visible`},gse={width:0,overflowX:`visible`},_se={height:0,overflowY:`visible`},vse={},yse=e=>{var t=e.width,n=e.height,r=mN(t),i=mN(n);return r&&i?hse:r?gse:i?_se:vse};function bse(e){var t=e.width,n=e.height,r=e.aspect,i=t,a=n;return i===void 0&&a===void 0?(i=jR.width,a=jR.height):i===void 0?i=r&&r>0?void 0:jR.width:a===void 0&&(a=r&&r>0?void 0:jR.height),{width:i,height:a}}var xse=[`aspect`,`initialDimension`,`width`,`height`,`minWidth`,`minHeight`,`maxHeight`,`children`,`debounce`,`id`,`className`,`onResize`,`style`];function NR(){return NR=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},NR.apply(null,arguments)}function PR(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function FR(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?PR(Object(n),!0).forEach(function(t){Sse(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):PR(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Sse(e,t,n){return(t=Cse(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Cse(e){var t=wse(e,`string`);return typeof t==`symbol`?t:t+``}function wse(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Tse(e,t){return kse(e)||Ose(e,t)||Dse(e,t)||Ese()}function Ese(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Dse(e,t){if(e){if(typeof e==`string`)return IR(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)?IR(e,t):void 0}}function IR(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Ose(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function kse(e){if(Array.isArray(e))return e}function Ase(e,t){if(e==null)return{};var n,r,i=jse(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function jse(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var LR=(0,y.createContext)(jR.initialDimension);function Mse(e){return aR(e.width)&&aR(e.height)}function RR(e){var t=e.children,n=e.width,r=e.height,i=(0,y.useMemo)(()=>({width:n,height:r}),[n,r]);return Mse(i)?y.createElement(LR.Provider,{value:i},t):null}var zR=()=>(0,y.useContext)(LR),Nse=(0,y.forwardRef)((e,t)=>{var n=e.aspect,r=e.initialDimension,i=r===void 0?jR.initialDimension:r,a=e.width,o=e.height,s=e.minWidth,c=s===void 0?jR.minWidth:s,l=e.minHeight,u=e.maxHeight,d=e.children,f=e.debounce,p=f===void 0?jR.debounce:f,m=e.id,h=e.className,g=e.onResize,_=e.style,v=_===void 0?{}:_,b=Ase(e,xse),x=(0,y.useRef)(null),S=(0,y.useRef)();S.current=g,(0,y.useImperativeHandle)(t,()=>x.current);var C=Tse((0,y.useState)({containerWidth:i.width,containerHeight:i.height}),2),w=C[0],T=C[1],E=(0,y.useCallback)((e,t)=>{T(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]);(0,y.useEffect)(()=>{if(x.current==null||typeof ResizeObserver>`u`)return TN;var e=e=>{var t,n=e[0];if(n!=null){var r=n.contentRect,i=r.width,a=r.height;E(i,a),(t=S.current)==null||t.call(S,i,a)}};p>0&&(e=mse(e,p,{trailing:!0,leading:!1}));var t=new ResizeObserver(e),n=x.current.getBoundingClientRect(),r=n.width,i=n.height;return E(r,i),t.observe(x.current),()=>{t.disconnect()}},[E,p]);var D=w.containerWidth,O=w.containerHeight;AR(!n||n>0,`The aspect(%s) must be greater than zero.`,n);var ee=MR(D,O,{width:a,height:o,aspect:n,maxHeight:u}),k=ee.calculatedWidth,te=ee.calculatedHeight;return AR(D<0||O<0||k!=null&&k>0||te!=null&&te>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.`,k,te,a,o,c,l,n),y.createElement(`div`,NR({id:m?`${m}`:void 0,className:wn(`recharts-responsive-container`,h),style:FR(FR({},v),{},{width:a,height:o,minWidth:c,minHeight:l,maxHeight:u}),ref:x},b),y.createElement(`div`,{style:yse({width:a,height:o})},y.createElement(RR,{width:k,height:te},d)))}),Pse=(0,y.forwardRef)((e,t)=>{var n=zR();if(aR(n.width)&&aR(n.height))return e.children;var r=bse({width:e.width,height:e.height,aspect:e.aspect}),i=r.width,a=r.height,o=MR(void 0,void 0,{width:i,height:a,aspect:e.aspect,maxHeight:e.maxHeight}),s=o.calculatedWidth,c=o.calculatedHeight;return Q(s)&&Q(c)?y.createElement(RR,{width:s,height:c},e.children):y.createElement(Nse,NR({},e,{width:i,height:a,ref:t}))}),BR=()=>{var e=DR(),t=BF(use),n=BF(kR),r=BF(OR)?.padding;return!e||!n||!r?t:{width:n.width-r.left-r.right,height:n.height-r.top-r.bottom,x:r.left,y:r.top}},Fse={top:0,bottom:0,left:0,right:0,width:0,height:0,brushBottom:0},VR=()=>BF(TR)??Fse,HR=()=>BF(vR),UR=()=>BF(yR),WR=e=>e.layout.layoutType,GR=()=>BF(WR),KR=()=>{var e=GR();if(e===`horizontal`||e===`vertical`)return e},qR=e=>{var t=e.layout.layoutType;if(t===`centric`||t===`radial`)return t},Ise=()=>GR()!==void 0,JR=e=>{var t=RF(),n=DR(),r=e.width,i=e.height,a=zR(),o=r,s=i;return a&&(o=a.width>0?a.width:r,s=a.height>0?a.height:i),(0,y.useEffect)(()=>{!n&&aR(o)&&aR(s)&&t(zoe({width:o,height:s}))},[t,n,o,s]),null},YR=OL({name:`legend`,initialState:{settings:{layout:`horizontal`,align:`center`,verticalAlign:`bottom`,itemSorter:`value`,position:void 0,offset:0},size:{width:0,height:0},payload:[]},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(_L(t.payload))},prepare:wL()},replaceLegendPayload:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next,a=mL(e).payload.indexOf(_L(r));a>-1&&(e.payload[a]=_L(i))},prepare:wL()},removeLegendPayload:{reducer(e,t){var n=mL(e).payload.indexOf(_L(t.payload));n>-1&&e.payload.splice(n,1)},prepare:wL()}}}),XR=YR.actions;XR.setLegendSize,XR.setLegendSettings;var Lse=XR.addLegendPayload,Rse=XR.replaceLegendPayload,zse=XR.removeLegendPayload,Bse=YR.reducer,Vse=s((e=>{var t=p();t.useSyncExternalStore,t.useRef,t.useEffect,t.useMemo,t.useDebugValue}));s(((e,t)=>{t.exports=Vse()}))();function Hse(e){e()}function Use(){let e=null,t=null;return{clear(){e=null,t=null},notify(){Hse(()=>{let t=e;for(;t;)t.callback(),t=t.next})},get(){let t=[],n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0,i=t={callback:n,next:null,prev:t};return i.prev?i.prev.next=i:e=i,function(){r&&e!==null&&(r=!1,i.next?i.next.prev=i.prev:t=i.prev,i.prev?i.prev.next=i.next:e=i.next)}}}}var ZR={notify(){},get:()=>[]};function Wse(e,t){let n,r=ZR,i=0,a=!1;function o(e){u();let t=r.subscribe(e),n=!1;return()=>{n||(n=!0,t(),d())}}function s(){r.notify()}function c(){m.onStateChange&&m.onStateChange()}function l(){return a}function u(){i++,n||(n=t?t.addNestedSub(c):e.subscribe(c),r=Use())}function d(){i--,n&&i===0&&(n(),n=void 0,r.clear(),r=ZR)}function f(){a||(a=!0,u())}function p(){a&&(a=!1,d())}let m={addNestedSub:o,notifyNestedSubs:s,handleChangeWrapper:c,isSubscribed:l,trySubscribe:f,tryUnsubscribe:p,getListeners:()=>r};return m}var Gse=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,Kse=typeof navigator<`u`&&navigator.product===`ReactNative`,qse=Gse||Kse?y.useLayoutEffect:y.useEffect;function QR(e,t){return e===t?e!==0||t!==0||1/e==1/t:e!==e&&t!==t}function Jse(e,t){if(QR(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;let n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!QR(e[n[r]],t[n[r]]))return!1;return!0}var Yse=Symbol.for(`react-redux-context`),Xse=typeof globalThis<`u`?globalThis:{};function Zse(){if(!y.createContext)return{};let e=Xse[Yse]??=new Map,t=e.get(y.createContext);return t||(t=y.createContext(null),e.set(y.createContext,t)),t}var Qse=Zse();function $se(e){let{children:t,context:n,serverState:r,store:i}=e,a=y.useMemo(()=>{let e=Wse(i);return{store:i,subscription:e,getServerState:r?()=>r:void 0}},[i,r]),o=y.useMemo(()=>i.getState(),[i]);qse(()=>{let{subscription:e}=a;return e.onStateChange=e.notifyNestedSubs,e.trySubscribe(),o!==i.getState()&&e.notifyNestedSubs(),()=>{e.tryUnsubscribe(),e.onStateChange=void 0}},[a,o]);let s=n||Qse;return y.createElement(s.Provider,{value:a},t)}var ece=$se,tce=new Set([`axisLine`,`tickLine`,`activeBar`,`activeDot`,`activeLabel`,`activeShape`,`allowEscapeViewBox`,`background`,`cursor`,`dot`,`label`,`line`,`margin`,`padding`,`position`,`shape`,`style`,`tick`,`wrapperStyle`,`radius`,`throttledEvents`]);function nce(e,t){return e==null&&t==null?!0:typeof e==`number`&&typeof t==`number`?e===t||e!==e&&t!==t:e===t}function $R(e,t){for(var n of new Set([...Object.keys(e),...Object.keys(t)]))if(tce.has(n)){if(e[n]==null&&t[n]==null)continue;if(!Jse(e[n],t[n]))return!1}else if(!nce(e[n],t[n]))return!1;return!0}function ez(){return ez=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ez.apply(null,arguments)}function tz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nz(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?tz(Object(n),!0).forEach(function(t){rce(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tz(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function rce(e,t,n){return(t=ice(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ice(e){var t=ace(e,`string`);return typeof t==`symbol`?t:t+``}function ace(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function oce(e,t){return iz(e)||lce(e,t)||cce(e,t)||sce()}function sce(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function cce(e,t){if(e){if(typeof e==`string`)return rz(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)?rz(e,t):void 0}}function rz(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function lce(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function iz(e){if(Array.isArray(e))return e}function az(e){return Array.isArray(e)&&hN(e[0])&&hN(e[1])?e.join(` ~ `):e}var oz={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 sz(e,t){return t==null?e:JF(e,t)}var cz=e=>{var t=e.separator,n=t===void 0?oz.separator:t,r=e.contentStyle,i=e.itemStyle,a=e.labelStyle,o=a===void 0?oz.labelStyle:a,s=e.payload,c=e.formatter,l=e.itemSorter,u=e.wrapperClassName,d=e.labelClassName,f=e.label,p=e.labelFormatter,m=e.accessibilityLayer,h=m===void 0?oz.accessibilityLayer:m,g=()=>{if(s&&s.length){var e={padding:0,margin:0},t=sz(s,l).map((e,t)=>{if(!e||e.type===`none`)return null;var r=e.formatter||c||az,a=e.value,o=e.name,l=a,u=o;if(r){var d=r(a,o,e,t,s);if(Array.isArray(d)){var f=oce(d,2);l=f[0],u=f[1]}else if(d!=null)l=d;else return null}var p=nz(nz({},oz.itemStyle),{},{color:e.color||oz.itemStyle.color},i);return y.createElement(`li`,{className:`recharts-tooltip-item`,key:`tooltip-item-${t}`,style:p},hN(u)?y.createElement(`span`,{className:`recharts-tooltip-item-name`},u):null,hN(u)?y.createElement(`span`,{className:`recharts-tooltip-item-separator`},n):null,y.createElement(`span`,{className:`recharts-tooltip-item-value`},l),y.createElement(`span`,{className:`recharts-tooltip-item-unit`},e.unit||``))});return y.createElement(`ul`,{className:`recharts-tooltip-item-list`,style:e},t)}return null},_=nz(nz({},oz.contentStyle),r),v=nz({margin:0},o),b=!SN(f),x=b?f:``,S=wn(`recharts-default-tooltip`,u),C=wn(`recharts-tooltip-label`,d);b&&p&&s!=null&&(x=p(f,s));var w=h?{role:`status`,"aria-live":`assertive`}:{};return y.createElement(`div`,ez({className:S,style:_},w),y.createElement(`p`,{className:C,style:v},y.isValidElement(x)?x:`${x}`),g())},lz=`recharts-tooltip-wrapper`,uz={visibility:`hidden`};function dz(e){var t=e.coordinate,n=e.translateX,r=e.translateY;return wn(lz,{[`${lz}-right`]:Q(n)&&t&&Q(t.x)&&n>=t.x,[`${lz}-left`]:Q(n)&&t&&Q(t.x)&&n<t.x,[`${lz}-bottom`]:Q(r)&&t&&Q(t.y)&&r>=t.y,[`${lz}-top`]:Q(r)&&t&&Q(t.y)&&r<t.y})}function fz(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.key,i=e.offset,a=e.position,o=e.reverseDirection,s=e.tooltipDimension,c=e.viewBox,l=e.viewBoxDimension;if(a&&Q(a[r]))return a[r];var u=n[r]-s-(i>0?i:0),d=n[r]+i;if(t[r])return o[r]?u:d;var f=c[r];return f==null?0:o[r]?Math.max(u<f?d:u,f):l==null?0:d+s>f+l?Math.max(u,f):Math.max(d,f)}function pz(e){var t=e.translateX,n=e.translateY;return{transform:e.useTranslate3d?`translate3d(${t}px, ${n}px, 0)`:`translate(${t}px, ${n}px)`}}function mz(e){var t=e.allowEscapeViewBox,n=e.coordinate,r=e.offsetTop,i=e.offsetLeft,a=e.position,o=e.reverseDirection,s=e.tooltipBox,c=e.useTranslate3d,l=e.viewBox,u,d,f;return s&&s.height>0&&s.width>0&&n?(d=fz({allowEscapeViewBox:t,coordinate:n,key:`x`,offset:i,position:a,reverseDirection:o,tooltipDimension:s.width,viewBox:l,viewBoxDimension:l.width}),f=fz({allowEscapeViewBox:t,coordinate:n,key:`y`,offset:r,position:a,reverseDirection:o,tooltipDimension:s.height,viewBox:l,viewBoxDimension:l.height}),u=pz({translateX:d,translateY:f,useTranslate3d:c})):u=uz,{cssProperties:u,cssClasses:dz({translateX:d,translateY:f,coordinate:n})}}var hz={devToolsEnabled:!0,isSsr:!(typeof window<`u`&&window.document&&window.document.createElement&&window.setTimeout)};function gz(e,t){return xz(e)||bz(e,t)||vz(e,t)||_z()}function _z(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vz(e,t){if(e){if(typeof e==`string`)return yz(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)?yz(e,t):void 0}}function yz(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function bz(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function xz(e){if(Array.isArray(e))return e}function Sz(){var e=gz((0,y.useState)(()=>hz.isSsr||!window.matchMedia?!1:window.matchMedia(`(prefers-reduced-motion: reduce)`).matches),2),t=e[0],n=e[1];return(0,y.useEffect)(()=>{if(window.matchMedia){var e=window.matchMedia(`(prefers-reduced-motion: reduce)`),t=()=>{n(e.matches)};return e.addEventListener(`change`,t),()=>{e.removeEventListener(`change`,t)}}},[]),t}function Cz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wz(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Cz(Object(n),!0).forEach(function(t){Tz(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Cz(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Tz(e,t,n){return(t=Ez(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ez(e){var t=Dz(e,`string`);return typeof t==`symbol`?t:t+``}function Dz(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Oz(e,t){return Nz(e)||Mz(e,t)||Az(e,t)||kz()}function kz(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Az(e,t){if(e){if(typeof e==`string`)return jz(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)?jz(e,t):void 0}}function jz(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Mz(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function Nz(e){if(Array.isArray(e))return e}function Pz(e){if(!(e.prefersReducedMotion&&e.isAnimationActive===`auto`)&&e.isAnimationActive&&e.active){var t=typeof e.animationEasing==`string`?e.animationEasing:`ease`;return`transform ${e.animationDuration}ms ${t}`}}function Fz(e){var t=Sz(),n=Oz(y.useState(()=>({dismissed:!1,dismissedAtCoordinate:{x:0,y:0}})),2),r=n[0],i=n[1];y.useEffect(()=>{var t=t=>{t.key===`Escape`&&i({dismissed:!0,dismissedAtCoordinate:{x:e.coordinate?.x??0,y:e.coordinate?.y??0}})};return document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`keydown`,t)}},[e.coordinate?.x,e.coordinate?.y]),r.dismissed&&((e.coordinate?.x??0)!==r.dismissedAtCoordinate.x||(e.coordinate?.y??0)!==r.dismissedAtCoordinate.y)&&i(wz(wz({},r),{},{dismissed:!1}));var a=mz({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}),o=a.cssClasses,s=a.cssProperties,c=wz(wz({},e.hasPortalFromProps?{}:wz(wz({transition:Pz({prefersReducedMotion:t,isAnimationActive:e.isAnimationActive,active:e.active,animationDuration:e.animationDuration,animationEasing:e.animationEasing})},s),{},{pointerEvents:`none`,position:`absolute`,top:0,left:0})),{},{visibility:!r.dismissed&&e.active&&e.hasPayload?`visible`:`hidden`},e.wrapperStyle);return y.createElement(`div`,{xmlns:`http://www.w3.org/1999/xhtml`,tabIndex:-1,className:o,style:c,ref:e.innerRef},e.children)}var Iz=y.memo(Fz),Lz=()=>BF(e=>e.rootProps.accessibilityLayer)??!0;function Rz(){return Rz=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Rz.apply(null,arguments)}function zz(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Bz(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?zz(Object(n),!0).forEach(function(t){Vz(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zz(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Vz(e,t,n){return(t=Hz(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Hz(e){var t=Uz(e,`string`);return typeof t==`symbol`?t:t+``}function Uz(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var Wz={curveBasisClosed:oP,curveBasisOpen:cP,curveBasis:iP,curveBumpX:$N,curveBumpY:eP,curveLinearClosed:uP,curveLinear:qN,curveMonotoneX:vP,curveMonotoneY:yP,curveNatural:SP,curveStep:wP,curveStepAfter:EP,curveStepBefore:TP},Gz=e=>iR(e.x)&&iR(e.y),Kz=e=>e.base!=null&&Gz(e.base)&&Gz(e),qz=e=>e.x,Jz=e=>e.y,Yz=(e,t)=>{if(typeof e==`function`)return e;var n=`curve${CN(e)}`;if((n===`curveMonotone`||n===`curveBump`)&&t){var r=Wz[`${n}${t===`vertical`?`Y`:`X`}`];if(r)return r}return Wz[n]||qN},Xz={connectNulls:!1,type:`linear`},Zz=e=>{var t=e.type,n=t===void 0?Xz.type:t,r=e.points,i=r===void 0?[]:r,a=e.baseLine,o=e.layout,s=e.connectNulls,c=s===void 0?Xz.connectNulls:s,l=Yz(n,o),u=c?i.filter(Gz):i;if(Array.isArray(a)){var d,f=i.map((e,t)=>Bz(Bz({},e),{},{base:a[t]}));return d=o===`vertical`?ZN().y(Jz).x1(qz).x0(e=>e.base.x):ZN().x(qz).y1(Jz).y0(e=>e.base.y),d.defined(Kz).curve(l)(c?f.filter(Kz):f)}return(o===`vertical`&&Q(a)?ZN().y(Jz).x1(qz).x0(a):Q(a)?ZN().x(qz).y1(Jz).y0(a):XN().x(qz).y(Jz)).defined(Gz).curve(l)(u)},Qz=e=>{var t=e.className,n=e.points,r=e.path,i=e.pathRef,a=GR();if((!n||!n.length)&&!r)return null;var o={type:e.type,points:e.points,baseLine:e.baseLine,layout:e.layout||a,connectNulls:e.connectNulls},s=n&&n.length?Zz(o):r;return y.createElement(`path`,Rz({},zM(e),IP(e),{className:wn(`recharts-curve`,t),d:s===null?void 0:s,ref:i}))},$z=[`x`,`y`,`top`,`left`,`width`,`height`,`className`];function eB(){return eB=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},eB.apply(null,arguments)}function tB(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function nB(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?tB(Object(n),!0).forEach(function(t){rB(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):tB(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function rB(e,t,n){return(t=iB(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function iB(e){var t=aB(e,`string`);return typeof t==`symbol`?t:t+``}function aB(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function oB(e,t){if(e==null)return{};var n,r,i=sB(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function sB(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var cB=(e,t,n,r,i,a)=>`M${e},${i}v${r}M${a},${t}h${n}`,lB=e=>{var t=e.x,n=t===void 0?0:t,r=e.y,i=r===void 0?0:r,a=e.top,o=a===void 0?0:a,s=e.left,c=s===void 0?0:s,l=e.width,u=l===void 0?0:l,d=e.height,f=d===void 0?0:d,p=e.className,m=oB(e,$z),h=nB({x:n,y:i,top:o,left:c,width:u,height:f},m);return!Q(n)||!Q(i)||!Q(u)||!Q(f)||!Q(o)||!Q(c)?null:y.createElement(`path`,eB({},VM(h),{className:wn(`recharts-cross`,p),d:cB(n,i,u,f,o,c)}))};function uB(e,t,n,r){var i=r/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`?r:n.width-1,height:e===`horizontal`?n.height-1:r}}var dB=(e,t)=>[0,3*e,3*t-6*e,3*e-3*t+1],fB=(e,t)=>e.map((e,n)=>e*t**n).reduce((e,t)=>e+t),pB=(e,t)=>n=>fB(dB(e,t),n),mB=(e,t)=>n=>fB([...dB(e,t).map((e,t)=>e*t).slice(1),0],n),hB=e=>{var t,n=e.split(`(`);if(n.length!==2||n[0]!==`cubic-bezier`)return null;var r=(t=n[1])==null||(t=t.split(`)`)[0])==null?void 0:t.split(`,`);if(r==null||r.length!==4)return null;var i=r.map(e=>parseFloat(e));return[i[0],i[1],i[2],i[3]]},gB=function(){var e=[...arguments];if(e.length===1)switch(e[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 t=hB(e[0]);if(t)return t}return e.length===4?e:[0,0,1,1]},_B=(e,t,n,r)=>{var i=pB(e,n),a=pB(t,r),o=mB(e,n),s=e=>e>1?1:e<0?0:e,c=e=>{for(var t=e>1?1:e,n=t,r=0;r<8;++r){var c=i(n)-t,l=o(n);if(Math.abs(c-t)<1e-4||l<1e-4)return a(n);n=s(n-c/l)}return a(n)};return c.isStepper=!1,c},vB=function(){return _B(...gB(...arguments))},yB=function(){for(var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.stiff,n=t===void 0?100:t,r=e.damping,i=r===void 0?8:r,a=e.dt,o=a===void 0?16.67:a,s=1,c=[0],l=0,u=0,d=1e4,f=0;f<d;){var p=-(l-s)*n,m=u*i;if(u+=(p-m)*o/1e3,l+=u*o/1e3,c.push(l),Math.abs(l-s)<1e-4&&Math.abs(u)<1e-4)break;f++}c[c.length-1]=s;var h=c.length-1;return e=>{if(e<=0)return 0;if(e>=1)return s;var t=e*h,n=Math.floor(t),r=t-n;return(c[n]??0)+((c[n+1]??0)-(c[n]??0))*r}},bB=e=>{if(typeof e==`string`)switch(e){case`ease`:case`ease-in-out`:case`ease-out`:case`ease-in`:case`linear`:return vB(e);case`spring`:return yB();default:if(e.split(`(`)[0]===`cubic-bezier`)return vB(e)}return typeof e==`function`?e:null},xB=(0,y.createContext)((e,t,n)=>{var r,i=a=>{var o=t.tick(a);if(t.getState()===`active`){if(n(t.getInterpolated()),t.getProgress()===1){t.complete(),r=void 0;return}r=e.setTimeout(i,o)}else r=e.setTimeout(i,o)};return r=e.setTimeout(i,0),()=>r?.()});xB.Provider;function SB(e){var t=(0,y.useContext)(xB);return(0,y.useMemo)(()=>e??t,[e,t])}function CB(e,t,n){return(t=wB(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wB(e){var t=TB(e,`string`);return typeof t==`symbol`?t:t+``}function TB(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var EB=`init`,DB=`pending`,OB=`active`,kB=`completed`;function AB(e){return Math.max(0,e)}var jB=class{getAnimationStartedTime(){return this.animationStartedTime}getBeginStartedTime(){return this.beginStartedTime}constructor(e){var t;CB(this,`state`,EB),this.animationId=e.animationId,this.onAnimationEnd=e.onAnimationEnd,this.animationDuration=AB(e.animationDuration),this.animationBegin=AB(e.animationBegin),this.progress=0,this.from=e.from,this.to=e.to,this.easing=e.easing,(t=e.onAnimationStart)==null||t.call(e)}getState(){return this.state}getEasing(){return this.easing}getAnimationDuration(){return this.animationDuration}tick(e){if(this.getState()===EB)return this.state=DB,this.beginStartedTime=e,this.animationBegin;if(this.getState()===DB){if(this.beginStartedTime==null)throw Error();var t=e-this.beginStartedTime;return t>=this.animationBegin?(this.state=OB,this.animationStartedTime=e,this.nextAnimationUpdate(0)):AB(this.animationBegin-t)}if(this.getState()===OB){if(this.animationStartedTime==null)throw Error();var n=e-this.animationStartedTime;return this.setProgress(n/this.animationDuration),this.nextAnimationUpdate(n)}return 0}setProgress(e){this.progress=Math.min(1,Math.max(0,e))}getProgress(){return this.progress}complete(){if(this.progress=1,this.state===`active`){var e;(e=this.onAnimationEnd)==null||e.call(this)}this.state=kB}getFrom(){return this.from}getTo(){return this.to}getAnimationId(){return this.animationId}getAnimationBegin(){return this.animationBegin}},MB=class extends jB{nextAnimationUpdate(){return 0}getInterpolated(){return this.easing(bN(this.getFrom(),this.getTo(),this.getProgress()))}},NB=class{setTimeout(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=performance.now(),r=null,i=a=>{a-n>=t?e(a):r=requestAnimationFrame(i)};return r=requestAnimationFrame(i),()=>{r!=null&&cancelAnimationFrame(r)}}};function PB(e,t){return zB(e)||RB(e,t)||IB(e,t)||FB()}function FB(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function IB(e,t){if(e){if(typeof e==`string`)return LB(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)?LB(e,t):void 0}}function LB(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function RB(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function zB(e){if(Array.isArray(e))return e}var BB={begin:0,duration:1e3,easing:`ease`,isActive:!0,canBegin:!0,onAnimationEnd:()=>{},onAnimationStart:()=>{}},VB=0,HB=1;function UB(e){var t=WP(e,BB),n=t.animationId,r=t.isActive,i=t.canBegin,a=t.duration,o=t.easing,s=t.begin,c=t.onAnimationEnd,l=t.onAnimationStart,u=t.children,d=Sz(),f=r===`auto`?!hz.isSsr&&!d:r,p=SB(t.animationController),m=PB((0,y.useState)(f?VB:HB),2),h=m[0],g=m[1];return(0,y.useEffect)(()=>{f||g(HB)},[f]),(0,y.useEffect)(()=>{var e=bB(o);return!f||!i||e==null?TN:p(new NB,new MB({animationId:n,easing:e,animationDuration:a,animationBegin:s,onAnimationStart:l,onAnimationEnd:c,from:VB,to:HB}),g)},[p,n,f,i,a,o,s,l,c]),u(Number(h))}function WB(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`animation-`,n=(0,y.useRef)(_N(t)),r=(0,y.useRef)(e);return r.current!==e&&(n.current=_N(t),r.current=e),n.current}var GB=e=>e.replace(/([A-Z])/g,e=>`-${e.toLowerCase()}`),KB=(e,t,n)=>e.map(e=>`${GB(e)} ${t}ms ${n}`).join(`,`),qB=[`radius`],JB=[`radius`],YB,XB,ZB,QB,$B,eV,tV,nV,rV,iV;function aV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function oV(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?aV(Object(n),!0).forEach(function(t){sV(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):aV(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function sV(e,t,n){return(t=cV(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function cV(e){var t=lV(e,`string`);return typeof t==`symbol`?t:t+``}function lV(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function uV(){return uV=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},uV.apply(null,arguments)}function dV(e,t){if(e==null)return{};var n,r,i=fV(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function fV(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function pV(e,t){return vV(e)||_V(e,t)||hV(e,t)||mV()}function mV(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function hV(e,t){if(e){if(typeof e==`string`)return gV(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)?gV(e,t):void 0}}function gV(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function _V(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function vV(e){if(Array.isArray(e))return e}function yV(e,t){return t||=e.slice(0),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var bV=(e,t,n,r,i)=>{var a=uN(n),o=uN(r),s=Math.min(Math.abs(a)/2,Math.abs(o)/2),c=o>=0?1:-1,l=a>=0?1:-1,u=+(o>=0&&a>=0||o<0&&a<0),d;if(s>0&&Array.isArray(i)){for(var f=[0,0,0,0],p=0,m=4;p<m;p++){var h=i[p]??0;f[p]=h>s?s:h}d=dN(YB||=yV([`M`,`,`,``]),e,t+c*f[0]),f[0]>0&&(d+=dN(XB||=yV([`A `,`,`,`,0,0,`,`,`,`,`,``]),f[0],f[0],u,e+l*f[0],t)),d+=dN(ZB||=yV([`L `,`,`,``]),e+n-l*f[1],t),f[1]>0&&(d+=dN(QB||=yV([`A `,`,`,`,0,0,`,`,
`,`,`,``]),f[1],f[1],u,e+n,t+c*f[1])),d+=dN($B||=yV([`L `,`,`,``]),e+n,t+r-c*f[2]),f[2]>0&&(d+=dN(eV||=yV([`A `,`,`,`,0,0,`,`,
`,`,`,``]),f[2],f[2],u,e+n-l*f[2],t+r)),d+=dN(tV||=yV([`L `,`,`,``]),e+l*f[3],t+r),f[3]>0&&(d+=dN(nV||=yV([`A `,`,`,`,0,0,`,`,
`,`,`,``]),f[3],f[3],u,e,t+r-c*f[3])),d+=`Z`}else if(s>0&&i===+i&&i>0){var g=Math.min(s,i);d=dN(rV||=yV(`M .,.
A .,.,0,0,.,.,.
L .,.
A .,.,0,0,.,.,.
L .,.
A .,.,0,0,.,.,.
L .,.
A .,.,0,0,.,.,. Z`.split(`.`)),e,t+c*g,g,g,u,e+l*g,t,e+n-l*g,t,g,g,u,e+n,t+c*g,e+n,t+r-c*g,g,g,u,e+n-l*g,t+r,e+l*g,t+r,g,g,u,e,t+r-c*g)}else d=dN(iV||=yV([`M `,`,`,` h `,` v `,` h `,` Z`]),e,t,n,r,-n);return d},xV={x:0,y:0,width:0,height:0,radius:0,isAnimationActive:!1,isUpdateAnimationActive:!1,animationBegin:0,animationDuration:1500,animationEasing:`ease`},SV=e=>{var t=WP(e,xV),n=(0,y.useRef)(null),r=pV((0,y.useState)(-1),2),i=r[0],a=r[1];(0,y.useEffect)(()=>{if(n.current&&n.current.getTotalLength)try{var e=n.current.getTotalLength();e&&a(e)}catch{}},[]);var o=t.x,s=t.y,c=t.width,l=t.height,u=t.radius,d=t.className,f=t.animationEasing,p=t.animationDuration,m=t.animationBegin,h=t.isAnimationActive,g=t.isUpdateAnimationActive,_=(0,y.useRef)(c),v=(0,y.useRef)(l),b=(0,y.useRef)(o),x=(0,y.useRef)(s),S=WB((0,y.useMemo)(()=>({x:o,y:s,width:c,height:l,radius:u}),[o,s,c,l,u]),`rectangle-`);if(o!==+o||s!==+s||c!==+c||l!==+l||c===0||l===0)return null;var C=wn(`recharts-rectangle`,d);if(!g){var w=VM(t);w.radius;var T=dV(w,qB);return y.createElement(`path`,uV({},T,{x:uN(o),y:uN(s),width:uN(c),height:uN(l),radius:typeof u==`number`?u:void 0,className:C,d:bV(o,s,c,l,u)}))}var E=_.current,D=v.current,O=b.current,ee=x.current,k=`0px ${i===-1?1:i}px`,te=`${i}px ${i}px`,A=KB([`strokeDasharray`],p,typeof f==`string`?f:xV.animationEasing);return y.createElement(UB,{animationId:S,key:S,canBegin:i>0,duration:p,easing:f,isActive:g,begin:m},e=>{var r=bN(E,c,e),i=bN(D,l,e),a=bN(O,o,e),d=bN(ee,s,e);n.current&&(_.current=r,v.current=i,b.current=a,x.current=d);var f=h?e>0?{transition:A,strokeDasharray:te}:{strokeDasharray:k}:{strokeDasharray:te},p=VM(t);p.radius;var m=dV(p,JB);return y.createElement(`path`,uV({},m,{radius:typeof u==`number`?u:void 0,className:C,d:bV(a,d,r,i,u),ref:n,style:oV(oV({},f),t.style)}))})};function CV(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function wV(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?CV(Object(n),!0).forEach(function(t){TV(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):CV(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function TV(e,t,n){return(t=EV(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function EV(e){var t=DV(e,`string`);return typeof t==`symbol`?t:t+``}function DV(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var OV=Math.PI/180,kV=e=>e*180/Math.PI,AV=(e,t,n,r)=>({x:e+Math.cos(-OV*r)*n,y:t+Math.sin(-OV*r)*n}),jV=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{top:0,right:0,bottom:0,left:0,width:0,height:0,brushBottom:0};return Math.min(Math.abs(e-(n.left||0)-(n.right||0)),Math.abs(t-(n.top||0)-(n.bottom||0)))/2},MV=(e,t)=>{var n=e.x,r=e.y,i=t.x,a=t.y;return Math.sqrt((n-i)**2+(r-a)**2)},NV=(e,t)=>{var n=e.x,r=e.y,i=t.cx,a=t.cy,o=MV({x:n,y:r},{x:i,y:a});if(o<=0)return{radius:o,angle:0};var s=(n-i)/o,c=Math.acos(s);return r>a&&(c=2*Math.PI-c),{radius:o,angle:kV(c),angleInRadian:c}},PV=e=>{var t=e.startAngle,n=e.endAngle,r=Math.floor(t/360),i=Math.floor(n/360),a=Math.min(r,i);return{startAngle:t-a*360,endAngle:n-a*360}},FV=(e,t)=>{var n=t.startAngle,r=t.endAngle,i=Math.floor(n/360),a=Math.floor(r/360);return e+Math.min(i,a)*360},IV=(e,t)=>{var n=e.relativeX,r=e.relativeY,i=NV({x:n,y:r},t),a=i.radius,o=i.angle,s=t.innerRadius,c=t.outerRadius;if(a<s||a>c||a===0)return null;var l=PV(t),u=l.startAngle,d=l.endAngle,f=o,p;if(u<=d){for(;f>d;)f-=360;for(;f<u;)f+=360;p=f>=u&&f<=d}else{for(;f>u;)f-=360;for(;f<d;)f+=360;p=f>=d&&f<=u}return p?wV(wV({},t),{},{radius:a,angle:FV(f,t)}):null};function LV(e){var t=e.cx,n=e.cy,r=e.radius,i=e.startAngle,a=e.endAngle;return{points:[AV(t,n,r,i),AV(t,n,r,a)],cx:t,cy:n,radius:r,startAngle:i,endAngle:a}}var RV,zV,BV,VV,HV,UV,WV;function GV(){return GV=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},GV.apply(null,arguments)}function KV(e,t){return t||=e.slice(0),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var qV=(e,t)=>fN(t-e)*Math.min(Math.abs(t-e),359.999),JV=e=>{var t=e.cx,n=e.cy,r=e.radius,i=e.angle,a=e.sign,o=e.isExternal,s=e.cornerRadius,c=e.cornerIsExternal,l=s*(o?1:-1)+r,u=Math.asin(s/l)/OV,d=c?i:i+a*u,f=AV(t,n,l,d),p=AV(t,n,r,d),m=c?i-a*u:i;return{center:f,circleTangency:p,lineTangency:AV(t,n,l*Math.cos(u*OV),m),theta:u}},YV=e=>{var t=e.cx,n=e.cy,r=e.innerRadius,i=e.outerRadius,a=e.startAngle,o=e.endAngle,s=qV(a,o),c=a+s,l=AV(t,n,i,a),u=AV(t,n,i,c),d=dN(RV||=KV([`M `,`,`,`
A `,`,`,`,0,
`,`,`,`,
`,`,`,`
`]),l.x,l.y,i,i,+(Math.abs(s)>180),+(a>c),u.x,u.y);if(r>0){var f=AV(t,n,r,a),p=AV(t,n,r,c);d+=dN(zV||=KV([`L `,`,`,`
A `,`,`,`,0,
`,`,`,`,
`,`,`,` Z`]),p.x,p.y,r,r,+(Math.abs(s)>180),+(a<=c),f.x,f.y)}else d+=dN(BV||=KV([`L `,`,`,` Z`]),t,n);return d},XV=e=>{var t=e.cx,n=e.cy,r=e.innerRadius,i=e.outerRadius,a=e.cornerRadius,o=e.forceCornerRadius,s=e.cornerIsExternal,c=e.startAngle,l=e.endAngle,u=fN(l-c),d=JV({cx:t,cy:n,radius:i,angle:c,sign:u,cornerRadius:a,cornerIsExternal:s}),f=d.circleTangency,p=d.lineTangency,m=d.theta,h=JV({cx:t,cy:n,radius:i,angle:l,sign:-u,cornerRadius:a,cornerIsExternal:s}),g=h.circleTangency,_=h.lineTangency,v=h.theta,y=s?Math.abs(c-l):Math.abs(c-l)-m-v;if(y<0)return o?dN(VV||=KV([`M `,`,`,`
a`,`,`,`,0,0,1,`,`,0
a`,`,`,`,0,0,1,`,`,0
`]),p.x,p.y,a,a,a*2,a,a,-a*2):YV({cx:t,cy:n,innerRadius:r,outerRadius:i,startAngle:c,endAngle:l});var b=dN(HV||=KV([`M `,`,`,`
A`,`,`,`,0,0,`,`,`,`,`,`
A`,`,`,`,0,`,`,`,`,`,`,`,`
A`,`,`,`,0,0,`,`,`,`,`,`
`]),p.x,p.y,a,a,+(u<0),f.x,f.y,i,i,+(y>180),+(u<0),g.x,g.y,a,a,+(u<0),_.x,_.y);if(r>0){var x=JV({cx:t,cy:n,radius:r,angle:c,sign:u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),S=x.circleTangency,C=x.lineTangency,w=x.theta,T=JV({cx:t,cy:n,radius:r,angle:l,sign:-u,isExternal:!0,cornerRadius:a,cornerIsExternal:s}),E=T.circleTangency,D=T.lineTangency,O=T.theta,ee=s?Math.abs(c-l):Math.abs(c-l)-w-O;if(ee<0&&a===0)return`${b}L${t},${n}Z`;b+=dN(UV||=KV([`L`,`,`,`
A`,`,`,`,0,0,`,`,`,`,`,`
A`,`,`,`,0,`,`,`,`,`,`,`,`
A`,`,`,`,0,0,`,`,`,`,`,`Z`]),D.x,D.y,a,a,+(u<0),E.x,E.y,r,r,+(ee>180),+(u>0),S.x,S.y,a,a,+(u<0),C.x,C.y)}else b+=dN(WV||=KV([`L`,`,`,`Z`]),t,n);return b},ZV={cx:0,cy:0,innerRadius:0,outerRadius:0,startAngle:0,endAngle:0,cornerRadius:0,forceCornerRadius:!1,cornerIsExternal:!1},QV=e=>{var t=WP(e,ZV),n=t.cx,r=t.cy,i=t.innerRadius,a=t.outerRadius,o=t.cornerRadius,s=t.forceCornerRadius,c=t.cornerIsExternal,l=t.startAngle,u=t.endAngle,d=t.className;if(a<i||l===u)return null;var f=wn(`recharts-sector`,d),p=a-i,m=vN(o,p,0,!0),h=m>0&&Math.abs(l-u)<360?XV({cx:n,cy:r,innerRadius:i,outerRadius:a,cornerRadius:Math.min(m,p/2),forceCornerRadius:s,cornerIsExternal:c,startAngle:l,endAngle:u}):YV({cx:n,cy:r,innerRadius:i,outerRadius:a,startAngle:l,endAngle:u});return y.createElement(`path`,GV({},VM(t),{className:f,d:h}))};function $V(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(FP(t)){if(e===`centric`){var r=t.cx,i=t.cy,a=t.innerRadius,o=t.outerRadius,s=t.angle,c=AV(r,i,a,s),l=AV(r,i,o,s);return[{x:c.x,y:c.y},{x:l.x,y:l.y}]}return LV(t)}}function eH(e){return rN(e)?NaN:Number(e)}function tH(e){return e?(e=eH(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function nH(e,t,n){n&&typeof n!=`number`&&KF(e,t,n)&&(t=n=void 0),e=tH(e),t===void 0?(t=e,e=0):t=tH(t),n=n===void 0?e<t?1:-1:tH(n);let r=Math.max(Math.ceil((t-e)/(n||1)),0),i=Array(r);for(let t=0;t<r;t++)i[t]=e,e+=n;return i}var rH=e=>e.chartData,iH=$([rH],e=>{var t=e.chartData==null?0:e.chartData.length-1;return{chartData:e.chartData,computedData:e.computedData,dataEndIndex:t,dataStartIndex:0}}),aH=(e,t,n,r)=>r?iH(e):rH(e),oH=(e,t,n)=>n?iH(e):rH(e),sH=$([aH],e=>{var t=e.chartData,n=e.dataStartIndex,r=e.dataEndIndex;return t==null?[]:t.slice(n,r+1)});$([iH],e=>{var t=e.chartData,n=e.dataStartIndex,r=e.dataEndIndex;return t==null?[]:t.slice(n,r+1)});var cH=$([rH],e=>{var t=e.chartData,n=e.dataStartIndex,r=e.dataEndIndex;return t==null?[]:t.slice(n,r+1)});function lH(e,t){return mH(e)||pH(e,t)||dH(e,t)||uH()}function uH(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function dH(e,t){if(e){if(typeof e==`string`)return fH(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)?fH(e,t):void 0}}function fH(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function pH(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function mH(e){if(Array.isArray(e))return e}function hH(e){if(Array.isArray(e)&&e.length===2){var t=lH(e,2),n=t[0],r=t[1];if(iR(n)&&iR(r))return!0}return!1}function gH(e,t,n){return n?e:[Math.min(e[0],t[0]),Math.max(e[1],t[1])]}function _H(e,t){if(t&&typeof e!=`function`&&Array.isArray(e)&&e.length===2){var n=lH(e,2),r=n[0],i=n[1],a,o;if(iR(r))a=r;else if(typeof r==`function`)return;if(iR(i))o=i;else if(typeof i==`function`)return;var s=[a,o];if(hH(s))return s}}function vH(e,t,n){if(n||t!=null){if(typeof e==`function`&&t!=null)try{var r=e(t,n);if(hH(r))return gH(r,t,n)}catch{}if(Array.isArray(e)&&e.length===2){var i=lH(e,2),a=i[0],o=i[1],s,c;if(a===`auto`)t!=null&&(s=Math.min(...t));else if(Q(a))s=a;else if(typeof a==`function`)try{t!=null&&(s=a(t?.[0]))}catch{}else if(typeof a==`string`&&pR.test(a)){var l=pR.exec(a);if(l==null||l[1]==null||t==null)s=void 0;else{var u=+l[1];s=t[0]-u}}else s=t?.[0];if(o===`auto`)t!=null&&(c=Math.max(...t));else if(Q(o))c=o;else if(typeof o==`function`)try{t!=null&&(c=o(t?.[1]))}catch{}else if(typeof o==`string`&&mR.test(o)){var d=mR.exec(o);if(d==null||d[1]==null||t==null)c=void 0;else{var f=+d[1];c=t[1]+f}}else c=t?.[1];var p=[s,c];if(hH(p))return t==null?p:gH(p,t,n)}}}var yH=u(s(((e,t,n)=>{(function(e){var n=1e9,r={precision:20,rounding:4,toExpNeg:-7,toExpPos:21,LN10:`2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286`},i=!0,a=`[DecimalError] `,o=a+`Invalid argument: `,s=a+`Exponent out of range: `,c=Math.floor,l=Math.pow,u=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,d,f=1e7,p=7,m=9007199254740991,h=c(m/p),g={};g.absoluteValue=g.abs=function(){var e=new this.constructor(this);return e.s&&=1,e},g.comparedTo=g.cmp=function(e){var t,n,r,i,a=this;if(e=new a.constructor(e),a.s!==e.s)return a.s||-e.s;if(a.e!==e.e)return a.e>e.e^a.s<0?1:-1;for(r=a.d.length,i=e.d.length,t=0,n=r<i?r:i;t<n;++t)if(a.d[t]!==e.d[t])return a.d[t]>e.d[t]^a.s<0?1:-1;return r===i?0:r>i^a.s<0?1:-1},g.decimalPlaces=g.dp=function(){var e=this,t=e.d.length-1,n=(t-e.e)*p;if(t=e.d[t],t)for(;t%10==0;t/=10)n--;return n<0?0:n},g.dividedBy=g.div=function(e){return b(this,new this.constructor(e))},g.dividedToIntegerBy=g.idiv=function(e){var t=this,n=t.constructor;return D(b(t,new n(e),0,1),n.precision)},g.equals=g.eq=function(e){return!this.cmp(e)},g.exponent=function(){return S(this)},g.greaterThan=g.gt=function(e){return this.cmp(e)>0},g.greaterThanOrEqualTo=g.gte=function(e){return this.cmp(e)>=0},g.isInteger=g.isint=function(){return this.e>this.d.length-2},g.isNegative=g.isneg=function(){return this.s<0},g.isPositive=g.ispos=function(){return this.s>0},g.isZero=function(){return this.s===0},g.lessThan=g.lt=function(e){return this.cmp(e)<0},g.lessThanOrEqualTo=g.lte=function(e){return this.cmp(e)<1},g.logarithm=g.log=function(e){var t,n=this,r=n.constructor,o=r.precision,s=o+5;if(e===void 0)e=new r(10);else if(e=new r(e),e.s<1||e.eq(d))throw Error(a+`NaN`);if(n.s<1)throw Error(a+(n.s?`NaN`:`-Infinity`));return n.eq(d)?new r(0):(i=!1,t=b(T(n,s),T(e,s),s),i=!0,D(t,o))},g.minus=g.sub=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?O(t,e):_(t,(e.s=-e.s,e))},g.modulo=g.mod=function(e){var t,n=this,r=n.constructor,o=r.precision;if(e=new r(e),!e.s)throw Error(a+`NaN`);return n.s?(i=!1,t=b(n,e,0,1).times(e),i=!0,n.minus(t)):D(new r(n),o)},g.naturalExponential=g.exp=function(){return x(this)},g.naturalLogarithm=g.ln=function(){return T(this)},g.negated=g.neg=function(){var e=new this.constructor(this);return e.s=-e.s||0,e},g.plus=g.add=function(e){var t=this;return e=new t.constructor(e),t.s==e.s?_(t,e):O(t,(e.s=-e.s,e))},g.precision=g.sd=function(e){var t,n,r,i=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(o+e);if(t=S(i)+1,r=i.d.length-1,n=r*p+1,r=i.d[r],r){for(;r%10==0;r/=10)n--;for(r=i.d[0];r>=10;r/=10)n++}return e&&t>n?t:n},g.squareRoot=g.sqrt=function(){var e,t,n,r,o,s,l,u=this,d=u.constructor;if(u.s<1){if(!u.s)return new d(0);throw Error(a+`NaN`)}for(e=S(u),i=!1,o=Math.sqrt(+u),o==0||o==1/0?(t=y(u.d),(t.length+e)%2==0&&(t+=`0`),o=Math.sqrt(t),e=c((e+1)/2)-(e<0||e%2),o==1/0?t=`5e`+e:(t=o.toExponential(),t=t.slice(0,t.indexOf(`e`)+1)+e),r=new d(t)):r=new d(o.toString()),n=d.precision,o=l=n+3;;)if(s=r,r=s.plus(b(u,s,l+2)).times(.5),y(s.d).slice(0,l)===(t=y(r.d)).slice(0,l)){if(t=t.slice(l-3,l+1),o==l&&t==`4999`){if(D(s,n+1,0),s.times(s).eq(u)){r=s;break}}else if(t!=`9999`)break;l+=4}return i=!0,D(r,n)},g.times=g.mul=function(e){var t,n,r,a,o,s,c,l,u,d=this,p=d.constructor,m=d.d,h=(e=new p(e)).d;if(!d.s||!e.s)return new p(0);for(e.s*=d.s,n=d.e+e.e,l=m.length,u=h.length,l<u&&(o=m,m=h,h=o,s=l,l=u,u=s),o=[],s=l+u,r=s;r--;)o.push(0);for(r=u;--r>=0;){for(t=0,a=l+r;a>r;)c=o[a]+h[r]*m[a-r-1]+t,o[a--]=c%f|0,t=c/f|0;o[a]=(o[a]+t)%f|0}for(;!o[--s];)o.pop();return t?++n:o.shift(),e.d=o,e.e=n,i?D(e,p.precision):e},g.toDecimalPlaces=g.todp=function(e,t){var r=this,i=r.constructor;return r=new i(r),e===void 0?r:(v(e,0,n),t===void 0?t=i.rounding:v(t,0,8),D(r,e+S(r)+1,t))},g.toExponential=function(e,t){var r,i=this,a=i.constructor;return e===void 0?r=ee(i,!0):(v(e,0,n),t===void 0?t=a.rounding:v(t,0,8),i=D(new a(i),e+1,t),r=ee(i,!0,e+1)),r},g.toFixed=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?ee(a):(v(e,0,n),t===void 0?t=o.rounding:v(t,0,8),i=D(new o(a),e+S(a)+1,t),r=ee(i.abs(),!1,e+S(i)+1),a.isneg()&&!a.isZero()?`-`+r:r)},g.toInteger=g.toint=function(){var e=this,t=e.constructor;return D(new t(e),S(e)+1,t.rounding)},g.toNumber=function(){return+this},g.toPower=g.pow=function(e){var t,n,r,o,s,l,u=this,f=u.constructor,h=12,g=+(e=new f(e));if(!e.s)return new f(d);if(u=new f(u),!u.s){if(e.s<1)throw Error(a+`Infinity`);return u}if(u.eq(d))return u;if(r=f.precision,e.eq(d))return D(u,r);if(t=e.e,n=e.d.length-1,l=t>=n,s=u.s,!l){if(s<0)throw Error(a+`NaN`)}else if((n=g<0?-g:g)<=m){for(o=new f(d),t=Math.ceil(r/p+4),i=!1;n%2&&(o=o.times(u),k(o.d,t)),n=c(n/2),n!==0;)u=u.times(u),k(u.d,t);return i=!0,e.s<0?new f(d).div(o):D(o,r)}return s=s<0&&e.d[Math.max(t,n)]&1?-1:1,u.s=1,i=!1,o=e.times(T(u,r+h)),i=!0,o=x(o),o.s=s,o},g.toPrecision=function(e,t){var r,i,a=this,o=a.constructor;return e===void 0?(r=S(a),i=ee(a,r<=o.toExpNeg||r>=o.toExpPos)):(v(e,1,n),t===void 0?t=o.rounding:v(t,0,8),a=D(new o(a),e,t),r=S(a),i=ee(a,e<=r||r<=o.toExpNeg,e)),i},g.toSignificantDigits=g.tosd=function(e,t){var r=this,i=r.constructor;return e===void 0?(e=i.precision,t=i.rounding):(v(e,1,n),t===void 0?t=i.rounding:v(t,0,8)),D(new i(r),e,t)},g.toString=g.valueOf=g.val=g.toJSON=function(){var e=this,t=S(e),n=e.constructor;return ee(e,t<=n.toExpNeg||t>=n.toExpPos)};function _(e,t){var n,r,a,o,s,c,l,u,d=e.constructor,m=d.precision;if(!e.s||!t.s)return t.s||(t=new d(e)),i?D(t,m):t;if(l=e.d,u=t.d,s=e.e,a=t.e,l=l.slice(),o=s-a,o){for(o<0?(r=l,o=-o,c=u.length):(r=u,a=s,c=l.length),s=Math.ceil(m/p),c=s>c?s+1:c+1,o>c&&(o=c,r.length=1),r.reverse();o--;)r.push(0);r.reverse()}for(c=l.length,o=u.length,c-o<0&&(o=c,r=u,u=l,l=r),n=0;o;)n=(l[--o]=l[o]+u[o]+n)/f|0,l[o]%=f;for(n&&(l.unshift(n),++a),c=l.length;l[--c]==0;)l.pop();return t.d=l,t.e=a,i?D(t,m):t}function v(e,t,n){if(e!==~~e||e<t||e>n)throw Error(o+e)}function y(e){var t,n,r,i=e.length-1,a=``,o=e[0];if(i>0){for(a+=o,t=1;t<i;t++)r=e[t]+``,n=p-r.length,n&&(a+=w(n)),a+=r;o=e[t],r=o+``,n=p-r.length,n&&(a+=w(n))}else if(o===0)return`0`;for(;o%10==0;)o/=10;return a+o}var b=(function(){function e(e,t){var n,r=0,i=e.length;for(e=e.slice();i--;)n=e[i]*t+r,e[i]=n%f|0,r=n/f|0;return r&&e.unshift(r),e}function t(e,t,n,r){var i,a;if(n!=r)a=n>r?1:-1;else for(i=a=0;i<n;i++)if(e[i]!=t[i]){a=e[i]>t[i]?1:-1;break}return a}function n(e,t,n){for(var r=0;n--;)e[n]-=r,r=+(e[n]<t[n]),e[n]=r*f+e[n]-t[n];for(;!e[0]&&e.length>1;)e.shift()}return function(r,i,o,s){var c,l,u,d,m,h,g,_,v,y,b,x,C,w,T,E,O,ee,k=r.constructor,te=r.s==i.s?1:-1,A=r.d,j=i.d;if(!r.s)return new k(r);if(!i.s)throw Error(a+`Division by zero`);for(l=r.e-i.e,O=j.length,T=A.length,g=new k(te),_=g.d=[],u=0;j[u]==(A[u]||0);)++u;if(j[u]>(A[u]||0)&&--l,x=o==null?o=k.precision:s?o+(S(r)-S(i))+1:o,x<0)return new k(0);if(x=x/p+2|0,u=0,O==1)for(d=0,j=j[0],x++;(u<T||d)&&x--;u++)C=d*f+(A[u]||0),_[u]=C/j|0,d=C%j|0;else{for(d=f/(j[0]+1)|0,d>1&&(j=e(j,d),A=e(A,d),O=j.length,T=A.length),w=O,v=A.slice(0,O),y=v.length;y<O;)v[y++]=0;ee=j.slice(),ee.unshift(0),E=j[0],j[1]>=f/2&&++E;do d=0,c=t(j,v,O,y),c<0?(b=v[0],O!=y&&(b=b*f+(v[1]||0)),d=b/E|0,d>1?(d>=f&&(d=f-1),m=e(j,d),h=m.length,y=v.length,c=t(m,v,h,y),c==1&&(d--,n(m,O<h?ee:j,h))):(d==0&&(c=d=1),m=j.slice()),h=m.length,h<y&&m.unshift(0),n(v,m,y),c==-1&&(y=v.length,c=t(j,v,O,y),c<1&&(d++,n(v,O<y?ee:j,y))),y=v.length):c===0&&(d++,v=[0]),_[u++]=d,c&&v[0]?v[y++]=A[w]||0:(v=[A[w]],y=1);while((w++<T||v[0]!==void 0)&&x--)}return _[0]||_.shift(),g.e=l,D(g,s?o+S(g)+1:o)}})();function x(e,t){var n,r,a,o,c,u,f=0,p=0,m=e.constructor,h=m.precision;if(S(e)>16)throw Error(s+S(e));if(!e.s)return new m(d);for(t==null?(i=!1,u=h):u=t,c=new m(.03125);e.abs().gte(.1);)e=e.times(c),p+=5;for(r=Math.log(l(2,p))/Math.LN10*2+5|0,u+=r,n=a=o=new m(d),m.precision=u;;){if(a=D(a.times(e),u),n=n.times(++f),c=o.plus(b(a,n,u)),y(c.d).slice(0,u)===y(o.d).slice(0,u)){for(;p--;)o=D(o.times(o),u);return m.precision=h,t==null?(i=!0,D(o,h)):o}o=c}}function S(e){for(var t=e.e*p,n=e.d[0];n>=10;n/=10)t++;return t}function C(e,t,n){if(t>e.LN10.sd())throw i=!0,n&&(e.precision=n),Error(a+`LN10 precision limit exceeded`);return D(new e(e.LN10),t)}function w(e){for(var t=``;e--;)t+=`0`;return t}function T(e,t){var n,r,o,s,c,l,u,f,p,m=1,h=10,g=e,_=g.d,v=g.constructor,x=v.precision;if(g.s<1)throw Error(a+(g.s?`NaN`:`-Infinity`));if(g.eq(d))return new v(0);if(t==null?(i=!1,f=x):f=t,g.eq(10))return t??(i=!0),C(v,f);if(f+=h,v.precision=f,n=y(_),r=n.charAt(0),s=S(g),Math.abs(s)<0x5543df729c000){for(;r<7&&r!=1||r==1&&n.charAt(1)>3;)g=g.times(e),n=y(g.d),r=n.charAt(0),m++;s=S(g),r>1?(g=new v(`0.`+n),s++):g=new v(r+`.`+n.slice(1))}else return u=C(v,f+2,x).times(s+``),g=T(new v(r+`.`+n.slice(1)),f-h).plus(u),v.precision=x,t==null?(i=!0,D(g,x)):g;for(l=c=g=b(g.minus(d),g.plus(d),f),p=D(g.times(g),f),o=3;;){if(c=D(c.times(p),f),u=l.plus(b(c,new v(o),f)),y(u.d).slice(0,f)===y(l.d).slice(0,f))return l=l.times(2),s!==0&&(l=l.plus(C(v,f+2,x).times(s+``))),l=b(l,new v(m),f),v.precision=x,t==null?(i=!0,D(l,x)):l;l=u,o+=2}}function E(e,t){var n,r,a;for((n=t.indexOf(`.`))>-1&&(t=t.replace(`.`,``)),(r=t.search(/e/i))>0?(n<0&&(n=r),n+=+t.slice(r+1),t=t.substring(0,r)):n<0&&(n=t.length),r=0;t.charCodeAt(r)===48;)++r;for(a=t.length;t.charCodeAt(a-1)===48;)--a;if(t=t.slice(r,a),t){if(a-=r,n=n-r-1,e.e=c(n/p),e.d=[],r=(n+1)%p,n<0&&(r+=p),r<a){for(r&&e.d.push(+t.slice(0,r)),a-=p;r<a;)e.d.push(+t.slice(r,r+=p));t=t.slice(r),r=p-t.length}else r-=a;for(;r--;)t+=`0`;if(e.d.push(+t),i&&(e.e>h||e.e<-h))throw Error(s+n)}else e.s=0,e.e=0,e.d=[0];return e}function D(e,t,n){var r,a,o,u,d,m,g,_,v=e.d;for(u=1,o=v[0];o>=10;o/=10)u++;if(r=t-u,r<0)r+=p,a=t,g=v[_=0];else{if(_=Math.ceil((r+1)/p),o=v.length,_>=o)return e;for(g=o=v[_],u=1;o>=10;o/=10)u++;r%=p,a=r-p+u}if(n!==void 0&&(o=l(10,u-a-1),d=g/o%10|0,m=t<0||v[_+1]!==void 0||g%o,m=n<4?(d||m)&&(n==0||n==(e.s<0?3:2)):d>5||d==5&&(n==4||m||n==6&&(r>0?a>0?g/l(10,u-a):0:v[_-1])%10&1||n==(e.s<0?8:7))),t<1||!v[0])return m?(o=S(e),v.length=1,t=t-o-1,v[0]=l(10,(p-t%p)%p),e.e=c(-t/p)||0):(v.length=1,v[0]=e.e=e.s=0),e;if(r==0?(v.length=_,o=1,_--):(v.length=_+1,o=l(10,p-r),v[_]=a>0?(g/l(10,u-a)%l(10,a)|0)*o:0),m)for(;;)if(_==0){(v[0]+=o)==f&&(v[0]=1,++e.e);break}else{if(v[_]+=o,v[_]!=f)break;v[_--]=0,o=1}for(r=v.length;v[--r]===0;)v.pop();if(i&&(e.e>h||e.e<-h))throw Error(s+S(e));return e}function O(e,t){var n,r,a,o,s,c,l,u,d,m,h=e.constructor,g=h.precision;if(!e.s||!t.s)return t.s?t.s=-t.s:t=new h(e),i?D(t,g):t;if(l=e.d,m=t.d,r=t.e,u=e.e,l=l.slice(),s=u-r,s){for(d=s<0,d?(n=l,s=-s,c=m.length):(n=m,r=u,c=l.length),a=Math.max(Math.ceil(g/p),c)+2,s>a&&(s=a,n.length=1),n.reverse(),a=s;a--;)n.push(0);n.reverse()}else{for(a=l.length,c=m.length,d=a<c,d&&(c=a),a=0;a<c;a++)if(l[a]!=m[a]){d=l[a]<m[a];break}s=0}for(d&&(n=l,l=m,m=n,t.s=-t.s),c=l.length,a=m.length-c;a>0;--a)l[c++]=0;for(a=m.length;a>s;){if(l[--a]<m[a]){for(o=a;o&&l[--o]===0;)l[o]=f-1;--l[o],l[a]+=f}l[a]-=m[a]}for(;l[--c]===0;)l.pop();for(;l[0]===0;l.shift())--r;return l[0]?(t.d=l,t.e=r,i?D(t,g):t):new h(0)}function ee(e,t,n){var r,i=S(e),a=y(e.d),o=a.length;return t?(n&&(r=n-o)>0?a=a.charAt(0)+`.`+a.slice(1)+w(r):o>1&&(a=a.charAt(0)+`.`+a.slice(1)),a=a+(i<0?`e`:`e+`)+i):i<0?(a=`0.`+w(-i-1)+a,n&&(r=n-o)>0&&(a+=w(r))):i>=o?(a+=w(i+1-o),n&&(r=n-i-1)>0&&(a=a+`.`+w(r))):((r=i+1)<o&&(a=a.slice(0,r)+`.`+a.slice(r)),n&&(r=n-o)>0&&(i+1===o&&(a+=`.`),a+=w(r))),e.s<0?`-`+a:a}function k(e,t){if(e.length>t)return e.length=t,!0}function te(e){var t,n,r;function i(e){var t=this;if(!(t instanceof i))return new i(e);if(t.constructor=i,e instanceof i)t.s=e.s,t.e=e.e,t.d=(e=e.d)?e.slice():e;else{if(typeof e==`number`){if(e*0!=0)throw Error(o+e);if(e>0)t.s=1;else if(e<0)e=-e,t.s=-1;else{t.s=0,t.e=0,t.d=[0];return}if(e===~~e&&e<1e7){t.e=0,t.d=[e];return}return E(t,e.toString())}if(typeof e!=`string`)throw Error(o+e);if(e.charCodeAt(0)===45?(e=e.slice(1),t.s=-1):t.s=1,u.test(e))E(t,e);else throw Error(o+e)}}if(i.prototype=g,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=te,i.config=i.set=A,e===void 0&&(e={}),e)for(r=[`precision`,`rounding`,`toExpNeg`,`toExpPos`,`LN10`],t=0;t<r.length;)e.hasOwnProperty(n=r[t++])||(e[n]=this[n]);return i.config(e),i}function A(e){if(!e||typeof e!=`object`)throw Error(a+`Object expected`);var t,r,i,s=[`precision`,1,n,`rounding`,0,8,`toExpNeg`,-1/0,0,`toExpPos`,0,1/0];for(t=0;t<s.length;t+=3)if((i=e[r=s[t]])!==void 0){if(c(i)===i&&i>=s[t+1]&&i<=s[t+2])this[r]=i;else throw Error(o+r+`: `+i)}if((i=e[r=`LN10`])!==void 0){if(i==Math.LN10)this[r]=new this(i);else throw Error(o+r+`: `+i)}return this}r=te(r),r.default=r.Decimal=r,d=new r(1),typeof define==`function`&&define.amd?define(function(){return r}):t!==void 0&&t.exports?t.exports=r:(e||=typeof self<`u`&&self&&self.self==self?self:Function(`return this`)(),e.Decimal=r)})(n)}))());function bH(e){return e===0?1:Math.floor(new yH.default(e).abs().log(10).toNumber())+1}function xH(e,t,n){for(var r=new yH.default(e),i=0,a=[];r.lt(t)&&i<1e5;)a.push(r.toNumber()),r=r.add(n),i++;return a}function SH(e,t){return DH(e)||EH(e,t)||wH(e,t)||CH()}function CH(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wH(e,t){if(e){if(typeof e==`string`)return TH(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)?TH(e,t):void 0}}function TH(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function EH(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function DH(e){if(Array.isArray(e))return e}var OH=e=>{var t=SH(e,2),n=t[0],r=t[1],i=n,a=r;return n>r&&(i=r,a=n),[i,a]},kH=(e,t,n)=>{if(e.lte(0))return new yH.default(0);var r=bH(e.toNumber()),i=new yH.default(10).pow(r),a=e.div(i),o=r===1?.1:.05,s=new yH.default(Math.ceil(a.div(o).toNumber())).add(n).mul(o).mul(i);return t?new yH.default(s.toNumber()):new yH.default(Math.ceil(s.toNumber()))},AH=(e,t,n)=>{if(e.lte(0))return new yH.default(0);var r=[1,2,2.5,5],i=e.toNumber(),a=Math.floor(new yH.default(i).abs().log(10).toNumber()),o=new yH.default(10).pow(a),s=e.div(o).toNumber(),c=r.findIndex(e=>e>=s-1e-10);if(c===-1&&(o=o.mul(10),c=0),c+=n,c>=r.length){var l=Math.floor(c/r.length);c%=r.length,o=o.mul(new yH.default(10).pow(l))}var u=r[c]??1,d=new yH.default(u).mul(o);return t?d:new yH.default(Math.ceil(d.toNumber()))},jH=(e,t,n)=>{var r=new yH.default(1),i=new yH.default(e);if(!i.isint()&&n){var a=Math.abs(e);a<1?(r=new yH.default(10).pow(bH(e)-1),i=new yH.default(Math.floor(i.div(r).toNumber())).mul(r)):a>1&&(i=new yH.default(Math.floor(e)))}else e===0?i=new yH.default(Math.floor((t-1)/2)):n||(i=new yH.default(Math.floor(e)));for(var o=Math.floor((t-1)/2),s=[],c=0;c<t;c++)s.push(i.add(new yH.default(c-o).mul(r)).toNumber());return s},MH=function(e,t,n,r){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0,a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:kH;if(!Number.isFinite((t-e)/(n-1)))return{step:new yH.default(0),tickMin:new yH.default(0),tickMax:new yH.default(0)};var o=a(new yH.default(t).sub(e).div(n-1),r,i),s;e<=0&&t>=0?s=new yH.default(0):(s=new yH.default(e).add(t).div(2),s=s.sub(new yH.default(s).mod(o)));var c=Math.ceil(s.sub(e).div(o).toNumber()),l=Math.ceil(new yH.default(t).sub(s).div(o).toNumber()),u=c+l+1;return u>n?MH(e,t,n,r,i+1,a):(u<n&&(l=t>0?l+(n-u):l,c=t>0?c:c+(n-u)),{step:o,tickMin:s.sub(new yH.default(c).mul(o)),tickMax:s.add(new yH.default(l).mul(o))})},NH=function(e){var t=SH(e,2),n=t[0],r=t[1],i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`auto`,s=Math.max(i,2),c=SH(OH([n,r]),2),l=c[0],u=c[1];if(l===-1/0||u===1/0){var d=u===1/0?[l,...Array(i-1).fill(1/0)]:[...Array(i-1).fill(-1/0),u];return n>r?d.reverse():d}if(l===u)return jH(l,i,a);var f=MH(l,u,s,a,0,o===`snap125`?AH:kH),p=f.step,m=f.tickMin,h=f.tickMax,g=xH(m,h.add(new yH.default(.1).mul(p)),p);return n>r?g.reverse():g},PH=function(e,t){var n=SH(e,2),r=n[0],i=n[1],a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0,o=arguments.length>3&&arguments[3]!==void 0?arguments[3]:`auto`,s=SH(OH([r,i]),2),c=s[0],l=s[1];if(c===-1/0||l===1/0)return[r,i];if(c===l)return[c];var u=o===`snap125`?AH:kH,d=Math.max(t,2),f=u(new yH.default(l).sub(c).div(d-1),a,0),p=[...xH(new yH.default(c),new yH.default(l),f),l];if(a===!1){p=p.map(e=>Math.round(e));var m=p.length-1;m>0&&p[m]===p[m-1]&&(p=p.slice(0,m))}return r>i?p.reverse():p},FH=e=>e.rootProps.barCategoryGap,IH=e=>e.rootProps.stackOffset,LH=e=>e.rootProps.reverseStackOrder,RH=e=>e.options.chartName,zH=e=>e.rootProps.syncId,BH=e=>e.rootProps.syncMethod,VH=e=>e.options.eventEmitter,HH=e=>e.rootProps.baseValue,UH={grid:-100,barBackground:-50,area:100,cursorRectangle:200,bar:300,line:400,axis:500,scatter:600,activeBar:1e3,cursorLine:1100,activeDot:1200,label:2e3},WH={allowDecimals:!1,allowDuplicatedCategory:!0,allowDataOverflow:!1,angle:0,angleAxisId:0,axisLine:!0,axisLineType:`polygon`,cx:0,cy:0,hide:!1,includeHidden:!1,label:!1,niceTicks:`auto`,orientation:`outer`,reversed:!1,scale:`auto`,tick:!0,tickLine:!0,tickSize:8,type:`auto`,zIndex:UH.axis},GH={allowDataOverflow:!1,allowDecimals:!1,allowDuplicatedCategory:!0,angle:0,axisLine:!0,includeHidden:!1,hide:!1,niceTicks:`auto`,label:!1,orientation:`right`,radiusAxisId:0,reversed:!1,scale:`auto`,stroke:`#ccc`,tick:!0,tickCount:5,tickLine:!0,type:`auto`,zIndex:UH.axis},KH=(e,t)=>{if(e&&t)return e!=null&&e.reversed?[t[1],t[0]]:t};function qH(e,t,n){if(n!==`auto`)return n;if(e!=null)return lR(e,t)?`category`:`number`}function JH(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function YH(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?JH(Object(n),!0).forEach(function(t){XH(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):JH(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function XH(e,t,n){return(t=ZH(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ZH(e){var t=QH(e,`string`);return typeof t==`symbol`?t:t+``}function QH(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var $H={allowDataOverflow:WH.allowDataOverflow,allowDecimals:WH.allowDecimals,allowDuplicatedCategory:!1,dataKey:void 0,domain:void 0,id:WH.angleAxisId,includeHidden:!1,name:void 0,reversed:WH.reversed,scale:WH.scale,tick:WH.tick,tickCount:void 0,ticks:void 0,type:WH.type,unit:void 0,niceTicks:`auto`},eU={allowDataOverflow:GH.allowDataOverflow,allowDecimals:GH.allowDecimals,allowDuplicatedCategory:GH.allowDuplicatedCategory,dataKey:void 0,domain:void 0,id:GH.radiusAxisId,includeHidden:GH.includeHidden,name:void 0,reversed:GH.reversed,scale:GH.scale,tick:GH.tick,tickCount:GH.tickCount,ticks:void 0,type:GH.type,unit:void 0,niceTicks:`auto`},tU=$([(e,t)=>{if(t!=null)return e.polarAxis.angleAxis[t]},qR],(e,t)=>{if(e!=null)return e;var n=qH(t,`angleAxis`,$H.type)??`category`;return YH(YH({},$H),{},{type:n})}),nU=$([(e,t)=>e.polarAxis.radiusAxis[t],qR],(e,t)=>{if(e!=null)return e;var n=qH(t,`radiusAxis`,eU.type)??`category`;return YH(YH({},eU),{},{type:n})}),rU=e=>e.polarOptions,iU=$([vR,yR,TR],jV),aU=$([rU,iU],(e,t)=>{if(e!=null)return vN(e.innerRadius,t,0)}),oU=$([rU,iU],(e,t)=>{if(e!=null)return vN(e.outerRadius,t,t*.8)}),sU=$([rU],e=>e==null?[0,0]:[e.startAngle,e.endAngle]);$([tU,sU],KH);var cU=$([iU,aU,oU],(e,t,n)=>{if(e!=null&&t!=null&&n!=null)return[t,n]});$([nU,cU],KH);var lU=$([WR,rU,aU,oU,vR,yR],(e,t,n,r,i,a)=>{if(!(e!==`centric`&&e!==`radial`||t==null||n==null||r==null)){var o=t.cx,s=t.cy,c=t.startAngle,l=t.endAngle;return{cx:vN(o,i,i/2),cy:vN(s,a,a/2),innerRadius:n,outerRadius:r,startAngle:c,endAngle:l,clockWise:!1}}}),uU=(e,t)=>t,dU=(e,t,n)=>n;function fU(e){return e?.id}function pU(e,t,n){var r=t.chartData,i=r===void 0?[]:r,a=n.allowDuplicatedCategory,o=n.dataKey,s=new Map;return e.forEach(e=>{var t=e.data??i;if(t!=null&&t.length!==0){var n=fU(e);t.forEach((t,r)=>{var i=o==null||a?r:String(cR(t,o,null)),c=cR(t,e.dataKey,0),l=s.has(i)?s.get(i):{};Object.assign(l,{[n]:c}),s.set(i,l)})}}),Array.from(s.values())}function mU(e){return`stackId`in e&&e.stackId!=null&&e.dataKey!=null}var hU=(e,t)=>e===t?!0:e==null||t==null?!1:e[0]===t[0]&&e[1]===t[1];function gU(e,t){return Array.isArray(e)&&Array.isArray(t)&&e.length===0&&t.length===0?!0:e===t}function _U(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 vU=e=>{var t=WR(e);return t===`horizontal`?`xAxis`:t===`vertical`?`yAxis`:t===`centric`?`angleAxis`:`radiusAxis`},yU=e=>e.tooltip.settings.axisId;function bU(e){if(e!=null){var t=e.ticks,n=e.bandwidth,r=e.range(),i=[Math.min(...r),Math.max(...r)];return{domain:()=>e.domain(),range:function(e){function t(){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}(()=>i),rangeMin:()=>i[0],rangeMax:()=>i[1],isInRange(e){var t=i[0],n=i[1];return t<=n?e>=t&&e<=n:e>=n&&e<=t},bandwidth:n?()=>n.call(e):void 0,ticks:t?n=>t.call(e,n):void 0,map:(t,n)=>{var r=e(t);if(r!=null){if(e.bandwidth&&n!=null&&n.position){var i=e.bandwidth();switch(n.position){case`middle`:r+=i/2;break;case`end`:r+=i}}return r}}}}}var xU=(e,t)=>{if(t!=null)switch(e){case`linear`:if(!hH(t)){for(var n,r,i=0;i<t.length;i++){var a=t[i];iR(a)&&((n===void 0||a<n)&&(n=a),(r===void 0||a>r)&&(r=a))}return n!==void 0&&r!==void 0?[n,r]:void 0}return t;default:return t}};function SU(e,t){return e==null||t==null?NaN:e<t?-1:e>t?1:e>=t?0:NaN}function CU(e,t){return e==null||t==null?NaN:t<e?-1:t>e?1:t>=e?0:NaN}function wU(e){let t,n,r;e.length===2?(t=e===SU||e===CU?e:TU,n=e,r=e):(t=SU,n=(t,n)=>SU(e(t),n),r=(t,n)=>e(t)-n);function i(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<0?i=t+1:a=t}while(i<a)}return i}function a(e,r,i=0,a=e.length){if(i<a){if(t(r,r)!==0)return a;do{let t=i+a>>>1;n(e[t],r)<=0?i=t+1:a=t}while(i<a)}return i}function o(e,t,n=0,a=e.length){let o=i(e,t,n,a-1);return o>n&&r(e[o-1],t)>-r(e[o],t)?o-1:o}return{left:i,center:o,right:a}}function TU(){return 0}function EU(e){return e===null?NaN:+e}function*DU(e,t){if(t===void 0)for(let t of e)t!=null&&(t=+t)>=t&&(yield t);else{let n=-1;for(let r of e)(r=t(r,++n,e))!=null&&(r=+r)>=r&&(yield r)}}var OU=wU(SU),kU=OU.right;OU.left,wU(EU).center;var AU=class extends Map{constructor(e,t=PU){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:t}}),e!=null)for(let[t,n]of e)this.set(t,n)}get(e){return super.get(jU(this,e))}has(e){return super.has(jU(this,e))}set(e,t){return super.set(MU(this,e),t)}delete(e){return super.delete(NU(this,e))}};function jU({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):n}function MU({_intern:e,_key:t},n){let r=t(n);return e.has(r)?e.get(r):(e.set(r,n),n)}function NU({_intern:e,_key:t},n){let r=t(n);return e.has(r)&&(n=e.get(r),e.delete(r)),n}function PU(e){return typeof e==`object`&&e?e.valueOf():e}function FU(e=SU){if(e===SU)return IU;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function IU(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:+(e>t))}var LU=Math.sqrt(50),RU=Math.sqrt(10),zU=Math.sqrt(2);function BU(e,t,n){let r=(t-e)/Math.max(0,n),i=Math.floor(Math.log10(r)),a=r/10**i,o=a>=LU?10:a>=RU?5:a>=zU?2:1,s,c,l;return i<0?(l=10**-i/o,s=Math.round(e*l),c=Math.round(t*l),s/l<e&&++s,c/l>t&&--c,l=-l):(l=10**i*o,s=Math.round(e/l),c=Math.round(t/l),s*l<e&&++s,c*l>t&&--c),c<s&&.5<=n&&n<2?BU(e,t,n*2):[s,c,l]}function VU(e,t,n){if(t=+t,e=+e,n=+n,!(n>0))return[];if(e===t)return[e];let r=t<e,[i,a,o]=r?BU(t,e,n):BU(e,t,n);if(!(a>=i))return[];let s=a-i+1,c=Array(s);if(r){if(o<0)for(let e=0;e<s;++e)c[e]=(a-e)/-o;else for(let e=0;e<s;++e)c[e]=(a-e)*o}else if(o<0)for(let e=0;e<s;++e)c[e]=(i+e)/-o;else for(let e=0;e<s;++e)c[e]=(i+e)*o;return c}function HU(e,t,n){return t=+t,e=+e,n=+n,BU(e,t,n)[2]}function UU(e,t,n){t=+t,e=+e,n=+n;let r=t<e,i=r?HU(t,e,n):HU(e,t,n);return(r?-1:1)*(i<0?1/-i:i)}function WU(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n<t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n<i||n===void 0&&i>=i)&&(n=i)}return n}function GU(e,t){let n;if(t===void 0)for(let t of e)t!=null&&(n>t||n===void 0&&t>=t)&&(n=t);else{let r=-1;for(let i of e)(i=t(i,++r,e))!=null&&(n>i||n===void 0&&i>=i)&&(n=i)}return n}function KU(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?IU:FU(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));KU(e,t,u,d,i)}let a=e[t],o=n,s=r;for(qU(e,n,t),i(e[r],a)>0&&qU(e,n,r);o<s;){for(qU(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}i(e[n],a)===0?qU(e,n,s):(++s,qU(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function qU(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function JU(e,t,n){if(e=Float64Array.from(DU(e,n)),(r=e.length)&&!isNaN(t=+t)){if(t<=0||r<2)return GU(e);if(t>=1)return WU(e);var r,i=(r-1)*t,a=Math.floor(i),o=WU(KU(e,a).subarray(0,a+1));return o+(GU(e.subarray(a+1))-o)*(i-a)}}function YU(e,t,n=EU){if((r=e.length)&&!isNaN(t=+t)){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function XU(e,t,n){e=+e,t=+t,n=(i=arguments.length)<2?(t=e,e=0,1):i<3?1:+n;for(var r=-1,i=Math.max(0,Math.ceil((t-e)/n))|0,a=Array(i);++r<i;)a[r]=e+r*n;return a}function ZU(e,t){switch(arguments.length){case 0:break;case 1:this.range(e);break;default:this.range(t).domain(e)}return this}function QU(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)}return this}var $U=Symbol(`implicit`);function eW(){var e=new AU,t=[],n=[],r=$U;function i(i){let a=e.get(i);if(a===void 0){if(r!==$U)return r;e.set(i,a=t.push(i)-1)}return n[a%n.length]}return i.domain=function(n){if(!arguments.length)return t.slice();t=[],e=new AU;for(let r of n)e.has(r)||e.set(r,t.push(r)-1);return i},i.range=function(e){return arguments.length?(n=Array.from(e),i):n.slice()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return eW(t,n).unknown(r)},ZU.apply(i,arguments),i}function tW(){var e=eW().unknown(void 0),t=e.domain,n=e.range,r=0,i=1,a,o,s=!1,c=0,l=0,u=.5;delete e.unknown;function d(){var e=t().length,d=i<r,f=d?i:r,p=d?r:i;a=(p-f)/Math.max(1,e-c+l*2),s&&(a=Math.floor(a)),f+=(p-f-a*(e-c))*u,o=a*(1-c),s&&(f=Math.round(f),o=Math.round(o));var m=XU(e).map(function(e){return f+a*e});return n(d?m.reverse():m)}return e.domain=function(e){return arguments.length?(t(e),d()):t()},e.range=function(e){return arguments.length?([r,i]=e,r=+r,i=+i,d()):[r,i]},e.rangeRound=function(e){return[r,i]=e,r=+r,i=+i,s=!0,d()},e.bandwidth=function(){return o},e.step=function(){return a},e.round=function(e){return arguments.length?(s=!!e,d()):s},e.padding=function(e){return arguments.length?(c=Math.min(1,l=+e),d()):c},e.paddingInner=function(e){return arguments.length?(c=Math.min(1,e),d()):c},e.paddingOuter=function(e){return arguments.length?(l=+e,d()):l},e.align=function(e){return arguments.length?(u=Math.max(0,Math.min(1,e)),d()):u},e.copy=function(){return tW(t(),[r,i]).round(s).paddingInner(c).paddingOuter(l).align(u)},ZU.apply(d(),arguments)}function nW(e){var t=e.copy;return e.padding=e.paddingOuter,delete e.paddingInner,delete e.paddingOuter,e.copy=function(){return nW(t())},e}function rW(){return nW(tW.apply(null,arguments).paddingInner(1))}function iW(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function aW(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function oW(){}var sW=.7,cW=1/sW,lW=`\\s*([+-]?\\d+)\\s*`,uW=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*`,dW=`\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*`,fW=/^#([0-9a-f]{3,8})$/,pW=RegExp(`^rgb\\(${lW},${lW},${lW}\\)$`),mW=RegExp(`^rgb\\(${dW},${dW},${dW}\\)$`),hW=RegExp(`^rgba\\(${lW},${lW},${lW},${uW}\\)$`),gW=RegExp(`^rgba\\(${dW},${dW},${dW},${uW}\\)$`),_W=RegExp(`^hsl\\(${uW},${dW},${dW}\\)$`),vW=RegExp(`^hsla\\(${uW},${dW},${dW},${uW}\\)$`),yW={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};iW(oW,wW,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:bW,formatHex:bW,formatHex8:xW,formatHsl:SW,formatRgb:CW,toString:CW});function bW(){return this.rgb().formatHex()}function xW(){return this.rgb().formatHex8()}function SW(){return LW(this).formatHsl()}function CW(){return this.rgb().formatRgb()}function wW(e){var t,n;return e=(e+``).trim().toLowerCase(),(t=fW.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?TW(t):n===3?new kW(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?EW(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?EW(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=pW.exec(e))?new kW(t[1],t[2],t[3],1):(t=mW.exec(e))?new kW(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=hW.exec(e))?EW(t[1],t[2],t[3],t[4]):(t=gW.exec(e))?EW(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=_W.exec(e))?IW(t[1],t[2]/100,t[3]/100,1):(t=vW.exec(e))?IW(t[1],t[2]/100,t[3]/100,t[4]):yW.hasOwnProperty(e)?TW(yW[e]):e===`transparent`?new kW(NaN,NaN,NaN,0):null}function TW(e){return new kW(e>>16&255,e>>8&255,e&255,1)}function EW(e,t,n,r){return r<=0&&(e=t=n=NaN),new kW(e,t,n,r)}function DW(e){return e instanceof oW||(e=wW(e)),e?(e=e.rgb(),new kW(e.r,e.g,e.b,e.opacity)):new kW}function OW(e,t,n,r){return arguments.length===1?DW(e):new kW(e,t,n,r??1)}function kW(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}iW(kW,OW,aW(oW,{brighter(e){return e=e==null?cW:cW**+e,new kW(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?sW:sW**+e,new kW(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new kW(PW(this.r),PW(this.g),PW(this.b),NW(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:AW,formatHex:AW,formatHex8:jW,formatRgb:MW,toString:MW}));function AW(){return`#${FW(this.r)}${FW(this.g)}${FW(this.b)}`}function jW(){return`#${FW(this.r)}${FW(this.g)}${FW(this.b)}${FW((isNaN(this.opacity)?1:this.opacity)*255)}`}function MW(){let e=NW(this.opacity);return`${e===1?`rgb(`:`rgba(`}${PW(this.r)}, ${PW(this.g)}, ${PW(this.b)}${e===1?`)`:`, ${e})`}`}function NW(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function PW(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function FW(e){return e=PW(e),(e<16?`0`:``)+e.toString(16)}function IW(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new zW(e,t,n,r)}function LW(e){if(e instanceof zW)return new zW(e.h,e.s,e.l,e.opacity);if(e instanceof oW||(e=wW(e)),!e)return new zW;if(e instanceof zW)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=NaN,s=a-i,c=(a+i)/2;return s?(o=t===a?(n-r)/s+(n<r)*6:n===a?(r-t)/s+2:(t-n)/s+4,s/=c<.5?a+i:2-a-i,o*=60):s=c>0&&c<1?0:o,new zW(o,s,c,e.opacity)}function RW(e,t,n,r){return arguments.length===1?LW(e):new zW(e,t,n,r??1)}function zW(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}iW(zW,RW,aW(oW,{brighter(e){return e=e==null?cW:cW**+e,new zW(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?sW:sW**+e,new zW(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,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new kW(HW(e>=240?e-240:e+120,i,r),HW(e,i,r),HW(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new zW(BW(this.h),VW(this.s),VW(this.l),NW(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(){let e=NW(this.opacity);return`${e===1?`hsl(`:`hsla(`}${BW(this.h)}, ${VW(this.s)*100}%, ${VW(this.l)*100}%${e===1?`)`:`, ${e})`}`}}));function BW(e){return e=(e||0)%360,e<0?e+360:e}function VW(e){return Math.max(0,Math.min(1,e||0))}function HW(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var UW=e=>()=>e;function WW(e,t){return function(n){return e+n*t}}function GW(e,t,n){return e**=+n,t=t**+n-e,n=1/n,function(r){return(e+r*t)**+n}}function KW(e){return(e=+e)==1?qW:function(t,n){return n-t?GW(t,n,e):UW(isNaN(t)?n:t)}}function qW(e,t){var n=t-e;return n?WW(e,n):UW(isNaN(e)?t:e)}var JW=(function e(t){var n=KW(t);function r(e,t){var r=n((e=OW(e)).r,(t=OW(t)).r),i=n(e.g,t.g),a=n(e.b,t.b),o=qW(e.opacity,t.opacity);return function(t){return e.r=r(t),e.g=i(t),e.b=a(t),e.opacity=o(t),e+``}}return r.gamma=e,r})(1);function YW(e,t){t||=[];var n=e?Math.min(t.length,e.length):0,r=t.slice(),i;return function(a){for(i=0;i<n;++i)r[i]=e[i]*(1-a)+t[i]*a;return r}}function XW(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function ZW(e,t){for(var n=t?t.length:0,r=e?Math.min(n,e.length):0,i=Array(r),a=Array(n),o=0;o<r;++o)i[o]=oG(e[o],t[o]);for(;o<n;++o)a[o]=t[o];return function(e){for(o=0;o<r;++o)a[o]=i[o](e);return a}}function QW(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function $W(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function eG(e,t){var n={},r={},i;for(i in typeof e==`object`&&e||(e={}),typeof t==`object`&&t||(t={}),t)i in e?n[i]=oG(e[i],t[i]):r[i]=t[i];return function(e){for(i in n)r[i]=n[i](e);return r}}var tG=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,nG=new RegExp(tG.source,`g`);function rG(e){return function(){return e}}function iG(e){return function(t){return e(t)+``}}function aG(e,t){var n=tG.lastIndex=nG.lastIndex=0,r,i,a,o=-1,s=[],c=[];for(e+=``,t+=``;(r=tG.exec(e))&&(i=nG.exec(t));)(a=i.index)>n&&(a=t.slice(n,a),s[o]?s[o]+=a:s[++o]=a),(r=r[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,c.push({i:o,x:$W(r,i)})),n=nG.lastIndex;return n<t.length&&(a=t.slice(n),s[o]?s[o]+=a:s[++o]=a),s.length<2?c[0]?iG(c[0].x):rG(t):(t=c.length,function(e){for(var n=0,r;n<t;++n)s[(r=c[n]).i]=r.x(e);return s.join(``)})}function oG(e,t){var n=typeof t,r;return t==null||n===`boolean`?UW(t):(n===`number`?$W:n===`string`?(r=wW(t))?(t=r,JW):aG:t instanceof wW?JW:t instanceof Date?QW:XW(t)?YW:Array.isArray(t)?ZW:typeof t.valueOf!=`function`&&typeof t.toString!=`function`||isNaN(t)?eG:$W)(e,t)}function sG(e,t){return e=+e,t=+t,function(n){return Math.round(e*(1-n)+t*n)}}function cG(e,t){t===void 0&&(t=e,e=oG);for(var n=0,r=t.length-1,i=t[0],a=Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(r-1,Math.floor(e*=r)));return a[t](e-t)}}function lG(e){return function(){return e}}function uG(e){return+e}var dG=[0,1];function fG(e){return e}function pG(e,t){return(t-=e=+e)?function(n){return(n-e)/t}:lG(isNaN(t)?NaN:.5)}function mG(e,t){var n;return e>t&&(n=e,e=t,t=n),function(n){return Math.max(e,Math.min(t,n))}}function hG(e,t,n){var r=e[0],i=e[1],a=t[0],o=t[1];return i<r?(r=pG(i,r),a=n(o,a)):(r=pG(r,i),a=n(a,o)),function(e){return a(r(e))}}function gG(e,t,n){var r=Math.min(e.length,t.length)-1,i=Array(r),a=Array(r),o=-1;for(e[r]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());++o<r;)i[o]=pG(e[o],e[o+1]),a[o]=n(t[o],t[o+1]);return function(t){var n=kU(e,t,1,r)-1;return a[n](i[n](t))}}function _G(e,t){return t.domain(e.domain()).range(e.range()).interpolate(e.interpolate()).clamp(e.clamp()).unknown(e.unknown())}function vG(){var e=dG,t=dG,n=oG,r,i,a,o=fG,s,c,l;function u(){var n=Math.min(e.length,t.length);return o!==fG&&(o=mG(e[0],e[n-1])),s=n>2?gG:hG,c=l=null,d}function d(i){return i==null||isNaN(i=+i)?a:(c||=s(e.map(r),t,n))(r(o(i)))}return d.invert=function(n){return o(i((l||=s(t,e.map(r),$W))(n)))},d.domain=function(t){return arguments.length?(e=Array.from(t,uG),u()):e.slice()},d.range=function(e){return arguments.length?(t=Array.from(e),u()):t.slice()},d.rangeRound=function(e){return t=Array.from(e),n=sG,u()},d.clamp=function(e){return arguments.length?(o=e?!0:fG,u()):o!==fG},d.interpolate=function(e){return arguments.length?(n=e,u()):n},d.unknown=function(e){return arguments.length?(a=e,d):a},function(e,t){return r=e,i=t,u()}}function yG(){return vG()(fG,fG)}function bG(e){return Math.abs(e=Math.round(e))>=1e21?e.toLocaleString(`en`).replace(/,/g,``):e.toString(10)}function xG(e,t){if(!isFinite(e)||e===0)return null;var n=(e=t?e.toExponential(t-1):e.toExponential()).indexOf(`e`),r=e.slice(0,n);return[r.length>1?r[0]+r.slice(2):r,+e.slice(n+1)]}function SG(e){return e=xG(Math.abs(e)),e?e[1]:NaN}function CG(e,t){return function(n,r){for(var i=n.length,a=[],o=0,s=e[0],c=0;i>0&&s>0&&(c+s+1>r&&(s=Math.max(1,r-c)),a.push(n.substring(i-=s,i+s)),!((c+=s+1)>r));)s=e[o=(o+1)%e.length];return a.reverse().join(t)}}function wG(e){return function(t){return t.replace(/[0-9]/g,function(t){return e[+t]})}}var TG=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function EG(e){if(!(t=TG.exec(e)))throw Error(`invalid format: `+e);var t;return new DG({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]})}EG.prototype=DG.prototype;function DG(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+``}DG.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 OG(e){out:for(var t=e.length,n=1,r=-1,i;n<t;++n)switch(e[n]){case`.`:r=i=n;break;case`0`:r===0&&(r=n),i=n;break;default:if(!+e[n])break out;r>0&&(r=0)}return r>0?e.slice(0,r)+e.slice(i+1):e}var kG;function AG(e,t){var n=xG(e,t);if(!n)return kG=void 0,e.toPrecision(t);var r=n[0],i=n[1],a=i-(kG=Math.max(-8,Math.min(8,Math.floor(i/3)))*3)+1,o=r.length;return a===o?r:a>o?r+Array(a-o+1).join(`0`):a>0?r.slice(0,a)+`.`+r.slice(a):`0.`+Array(1-a).join(`0`)+xG(e,Math.max(0,t+a-1))[0]}function jG(e,t){var n=xG(e,t);if(!n)return e+``;var r=n[0],i=n[1];return i<0?`0.`+Array(-i).join(`0`)+r:r.length>i+1?r.slice(0,i+1)+`.`+r.slice(i+1):r+Array(i-r.length+2).join(`0`)}var MG={"%":(e,t)=>(e*100).toFixed(t),b:e=>Math.round(e).toString(2),c:e=>e+``,d:bG,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)=>jG(e*100,t),r:jG,s:AG,X:e=>Math.round(e).toString(16).toUpperCase(),x:e=>Math.round(e).toString(16)};function NG(e){return e}var PG=Array.prototype.map,FG=[`y`,`z`,`a`,`f`,`p`,`n`,`µ`,`m`,``,`k`,`M`,`G`,`T`,`P`,`E`,`Z`,`Y`];function IG(e){var t=e.grouping===void 0||e.thousands===void 0?NG:CG(PG.call(e.grouping,Number),e.thousands+``),n=e.currency===void 0?``:e.currency[0]+``,r=e.currency===void 0?``:e.currency[1]+``,i=e.decimal===void 0?`.`:e.decimal+``,a=e.numerals===void 0?NG:wG(PG.call(e.numerals,String)),o=e.percent===void 0?`%`:e.percent+``,s=e.minus===void 0?`−`:e.minus+``,c=e.nan===void 0?`NaN`:e.nan+``;function l(e,l){e=EG(e);var u=e.fill,d=e.align,f=e.sign,p=e.symbol,m=e.zero,h=e.width,g=e.comma,_=e.precision,v=e.trim,y=e.type;y===`n`?(g=!0,y=`g`):MG[y]||(_===void 0&&(_=12),v=!0,y=`g`),(m||u===`0`&&d===`=`)&&(m=!0,u=`0`,d=`=`);var b=(l&&l.prefix!==void 0?l.prefix:``)+(p===`$`?n:p===`#`&&/[boxX]/.test(y)?`0`+y.toLowerCase():``),x=(p===`$`?r:/[%p]/.test(y)?o:``)+(l&&l.suffix!==void 0?l.suffix:``),S=MG[y],C=/[defgprs%]/.test(y);_=_===void 0?6:/[gprs]/.test(y)?Math.max(1,Math.min(21,_)):Math.max(0,Math.min(20,_));function w(e){var n=b,r=x,o,l,p;if(y===`c`)r=S(e)+r,e=``;else{e=+e;var w=e<0||1/e<0;if(e=isNaN(e)?c:S(Math.abs(e),_),v&&(e=OG(e)),w&&+e==0&&f!==`+`&&(w=!1),n=(w?f===`(`?f:s:f===`-`||f===`(`?``:f)+n,r=(y===`s`&&!isNaN(e)&&kG!==void 0?FG[8+kG/3]:``)+r+(w&&f===`(`?`)`:``),C){for(o=-1,l=e.length;++o<l;)if(p=e.charCodeAt(o),48>p||p>57){r=(p===46?i+e.slice(o+1):e.slice(o))+r,e=e.slice(0,o);break}}}g&&!m&&(e=t(e,1/0));var T=n.length+e.length+r.length,E=T<h?Array(h-T+1).join(u):``;switch(g&&m&&(e=t(E+e,E.length?h-r.length:1/0),E=``),d){case`<`:e=n+e+r+E;break;case`=`:e=n+E+e+r;break;case`^`:e=E.slice(0,T=E.length>>1)+n+e+r+E.slice(T);break;default:e=E+n+e+r}return a(e)}return w.toString=function(){return e+``},w}function u(e,t){var n=Math.max(-8,Math.min(8,Math.floor(SG(t)/3)))*3,r=10**-n,i=l((e=EG(e),e.type=`f`,e),{suffix:FG[8+n/3]});return function(e){return i(r*e)}}return{format:l,formatPrefix:u}}var LG,RG,zG;BG({thousands:`,`,grouping:[3],currency:[`$`,``]});function BG(e){return LG=IG(e),RG=LG.format,zG=LG.formatPrefix,LG}function VG(e){return Math.max(0,-SG(Math.abs(e)))}function HG(e,t){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(SG(t)/3)))*3-SG(Math.abs(e)))}function UG(e,t){return e=Math.abs(e),t=Math.abs(t)-e,Math.max(0,SG(t)-SG(e))+1}function WG(e,t,n,r){var i=UU(e,t,n),a;switch(r=EG(r??`,f`),r.type){case`s`:var o=Math.max(Math.abs(e),Math.abs(t));return r.precision==null&&!isNaN(a=HG(i,o))&&(r.precision=a),zG(r,o);case``:case`e`:case`g`:case`p`:case`r`:r.precision==null&&!isNaN(a=UG(i,Math.max(Math.abs(e),Math.abs(t))))&&(r.precision=a-(r.type===`e`));break;case`f`:case`%`:r.precision==null&&!isNaN(a=VG(i))&&(r.precision=a-(r.type===`%`)*2)}return RG(r)}function GG(e){var t=e.domain;return e.ticks=function(e){var n=t();return VU(n[0],n[n.length-1],e??10)},e.tickFormat=function(e,n){var r=t();return WG(r[0],r[r.length-1],e??10,n)},e.nice=function(n){n??=10;var r=t(),i=0,a=r.length-1,o=r[i],s=r[a],c,l,u=10;for(s<o&&(l=o,o=s,s=l,l=i,i=a,a=l);u-->0;){if(l=HU(o,s,n),l===c)return r[i]=o,r[a]=s,t(r);if(l>0)o=Math.floor(o/l)*l,s=Math.ceil(s/l)*l;else if(l<0)o=Math.ceil(o*l)/l,s=Math.floor(s*l)/l;else break;c=l}return e},e}function KG(){var e=yG();return e.copy=function(){return _G(e,KG())},ZU.apply(e,arguments),GG(e)}function qG(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,uG),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return qG(e).unknown(t)},e=arguments.length?Array.from(e,uG):[0,1],GG(n)}function JG(e,t){e=e.slice();var n=0,r=e.length-1,i=e[n],a=e[r],o;return a<i&&(o=n,n=r,r=o,o=i,i=a,a=o),e[n]=t.floor(i),e[r]=t.ceil(a),e}function YG(e){return Math.log(e)}function XG(e){return Math.exp(e)}function ZG(e){return-Math.log(-e)}function QG(e){return-Math.exp(-e)}function $G(e){return isFinite(e)?+(`1e`+e):e<0?0:e}function eK(e){return e===10?$G:e===Math.E?Math.exp:t=>e**+t}function tK(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 nK(e){return(t,n)=>-e(-t,n)}function rK(e){let t=e(YG,XG),n=t.domain,r=10,i,a;function o(){return i=tK(r),a=eK(r),n()[0]<0?(i=nK(i),a=nK(a),e(ZG,QG)):e(YG,XG),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s<o;c&&([o,s]=[s,o]);let l=i(o),u=i(s),d,f,p=e==null?10:+e,m=[];if(!(r%1)&&u-l<p){if(l=Math.floor(l),u=Math.ceil(u),o>0){for(;l<=u;++l)for(d=1;d<r;++d)if(f=l<0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}m.length*2<p&&(m=VU(o,s,p))}else m=VU(l,u,Math.min(u-l,p)).map(a);return c?m.reverse():m},t.tickFormat=(e,n)=>{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=EG(n)).precision==null&&(n.trim=!0),n=RG(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*r<r-.5&&(t*=r),t<=o?n(e):``}},t.nice=()=>n(JG(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function iK(){let e=rK(vG()).domain([1,10]);return e.copy=()=>_G(e,iK()).base(e.base()),ZU.apply(e,arguments),e}function aK(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function oK(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function sK(e){var t=1,n=e(aK(t),oK(t));return n.constant=function(n){return arguments.length?e(aK(t=+n),oK(t)):t},GG(n)}function cK(){var e=sK(vG());return e.copy=function(){return _G(e,cK()).constant(e.constant())},ZU.apply(e,arguments)}function lK(e){return function(t){return t<0?-((-t)**+e):t**+e}}function uK(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function dK(e){return e<0?-e*e:e*e}function fK(e){var t=e(fG,fG),n=1;function r(){return n===1?e(fG,fG):n===.5?e(uK,dK):e(lK(n),lK(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},GG(t)}function pK(){var e=fK(vG());return e.copy=function(){return _G(e,pK()).exponent(e.exponent())},ZU.apply(e,arguments),e}function mK(){return pK.apply(null,arguments).exponent(.5)}function hK(e){return Math.sign(e)*e*e}function gK(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function _K(){var e=yG(),t=[0,1],n=!1,r;function i(t){var i=gK(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(hK(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,uG)).map(hK)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return _K(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},ZU.apply(i,arguments),GG(i)}function vK(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r<i;)n[r-1]=YU(e,r/i);return a}function a(e){return e==null||isNaN(e=+e)?r:t[kU(n,e)]}return a.invertExtent=function(r){var i=t.indexOf(r);return i<0?[NaN,NaN]:[i>0?n[i-1]:e[0],i<n.length?n[i]:e[e.length-1]]},a.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(SU),i()},a.range=function(e){return arguments.length?(t=Array.from(e),i()):t.slice()},a.unknown=function(e){return arguments.length?(r=e,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return vK().domain(e).range(t).unknown(r)},ZU.apply(a,arguments)}function yK(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(e){return e!=null&&e<=e?i[kU(r,e,0,n)]:a}function s(){var i=-1;for(r=Array(n);++i<n;)r[i]=((i+1)*t-(i-n)*e)/(n+1);return o}return o.domain=function(n){return arguments.length?([e,t]=n,e=+e,t=+t,s()):[e,t]},o.range=function(e){return arguments.length?(n=(i=Array.from(e)).length-1,s()):i.slice()},o.invertExtent=function(a){var o=i.indexOf(a);return o<0?[NaN,NaN]:o<1?[e,r[0]]:o>=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return yK().domain([e,t]).range(i).unknown(a)},ZU.apply(GG(o),arguments)}function bK(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[kU(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return bK().domain(e).range(t).unknown(n)},ZU.apply(i,arguments)}var xK=new Date,SK=new Date;function CK(e,t,n,r){function i(t){return e(t=arguments.length===0?new Date:new Date(+t)),t}return i.floor=t=>(e(t=new Date(+t)),t),i.ceil=n=>(e(n=new Date(n-1)),t(n,1),e(n),n),i.round=e=>{let t=i(e),n=i.ceil(e);return e-t<n-e?t:n},i.offset=(e,n)=>(t(e=new Date(+e),n==null?1:Math.floor(n)),e),i.range=(n,r,a)=>{let o=[];if(n=i.ceil(n),a=a==null?1:Math.floor(a),!(n<r)||!(a>0))return o;let s;do o.push(s=new Date(+n)),t(n,a),e(n);while(s<n&&n<r);return o},i.filter=n=>CK(t=>{if(t>=t)for(;e(t),!n(t);)t.setTime(t-1)},(e,r)=>{if(e>=e){if(r<0)for(;++r<=0;)for(;t(e,-1),!n(e););else for(;--r>=0;)for(;t(e,1),!n(e););}}),n&&(i.count=(t,r)=>(xK.setTime(+t),SK.setTime(+r),e(xK),e(SK),Math.floor(n(xK,SK))),i.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?i.filter(r?t=>r(t)%e===0:t=>i.count(0,t)%e===0):i)),i}var wK=CK(()=>{},(e,t)=>{e.setTime(+e+t)},(e,t)=>t-e);wK.every=e=>(e=Math.floor(e),!isFinite(e)||!(e>0)?null:e>1?CK(t=>{t.setTime(Math.floor(t/e)*e)},(t,n)=>{t.setTime(+t+n*e)},(t,n)=>(n-t)/e):wK),wK.range;var TK=1e3,EK=TK*60,DK=EK*60,OK=DK*24,kK=OK*7,AK=OK*30,jK=OK*365,MK=CK(e=>{e.setTime(e-e.getMilliseconds())},(e,t)=>{e.setTime(+e+t*TK)},(e,t)=>(t-e)/TK,e=>e.getUTCSeconds());MK.range;var NK=CK(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*TK)},(e,t)=>{e.setTime(+e+t*EK)},(e,t)=>(t-e)/EK,e=>e.getMinutes());NK.range;var PK=CK(e=>{e.setUTCSeconds(0,0)},(e,t)=>{e.setTime(+e+t*EK)},(e,t)=>(t-e)/EK,e=>e.getUTCMinutes());PK.range;var FK=CK(e=>{e.setTime(e-e.getMilliseconds()-e.getSeconds()*TK-e.getMinutes()*EK)},(e,t)=>{e.setTime(+e+t*DK)},(e,t)=>(t-e)/DK,e=>e.getHours());FK.range;var IK=CK(e=>{e.setUTCMinutes(0,0,0)},(e,t)=>{e.setTime(+e+t*DK)},(e,t)=>(t-e)/DK,e=>e.getUTCHours());IK.range;var LK=CK(e=>e.setHours(0,0,0,0),(e,t)=>e.setDate(e.getDate()+t),(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*EK)/OK,e=>e.getDate()-1);LK.range;var RK=CK(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/OK,e=>e.getUTCDate()-1);RK.range;var zK=CK(e=>{e.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t)},(e,t)=>(t-e)/OK,e=>Math.floor(e/OK));zK.range;function BK(e){return CK(t=>{t.setDate(t.getDate()-(t.getDay()+7-e)%7),t.setHours(0,0,0,0)},(e,t)=>{e.setDate(e.getDate()+t*7)},(e,t)=>(t-e-(t.getTimezoneOffset()-e.getTimezoneOffset())*EK)/kK)}var VK=BK(0),HK=BK(1),UK=BK(2),WK=BK(3),GK=BK(4),KK=BK(5),qK=BK(6);VK.range,HK.range,UK.range,WK.range,GK.range,KK.range,qK.range;function JK(e){return CK(t=>{t.setUTCDate(t.getUTCDate()-(t.getUTCDay()+7-e)%7),t.setUTCHours(0,0,0,0)},(e,t)=>{e.setUTCDate(e.getUTCDate()+t*7)},(e,t)=>(t-e)/kK)}var YK=JK(0),XK=JK(1),ZK=JK(2),QK=JK(3),$K=JK(4),eq=JK(5),tq=JK(6);YK.range,XK.range,ZK.range,QK.range,$K.range,eq.range,tq.range;var nq=CK(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());nq.range;var rq=CK(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());rq.range;var iq=CK(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());iq.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:CK(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)}),iq.range;var aq=CK(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());aq.every=e=>!isFinite(e=Math.floor(e))||!(e>0)?null:CK(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)}),aq.range;function oq(e,t,n,r,i,a){let o=[[MK,1,TK],[MK,5,5*TK],[MK,15,15*TK],[MK,30,30*TK],[a,1,EK],[a,5,5*EK],[a,15,15*EK],[a,30,30*EK],[i,1,DK],[i,3,3*DK],[i,6,6*DK],[i,12,12*DK],[r,1,OK],[r,2,2*OK],[n,1,kK],[t,1,AK],[t,3,3*AK],[e,1,jK]];function s(e,t,n){let r=t<e;r&&([e,t]=[t,e]);let i=n&&typeof n.range==`function`?n:c(e,t,n),a=i?i.range(e,+t+1):[];return r?a.reverse():a}function c(t,n,r){let i=Math.abs(n-t)/r,a=wU(([,,e])=>e).right(o,i);if(a===o.length)return e.every(UU(t/jK,n/jK,r));if(a===0)return wK.every(Math.max(UU(t,n,r),1));let[s,c]=o[i/o[a-1][2]<o[a][2]/i?a-1:a];return s.every(c)}return[s,c]}var[sq,cq]=oq(aq,rq,YK,zK,IK,PK),[lq,uq]=oq(iq,nq,VK,LK,FK,NK);function dq(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 fq(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 pq(e,t,n){return{y:e,m:t,d:n,H:0,M:0,S:0,L:0}}function mq(e){var t=e.dateTime,n=e.date,r=e.time,i=e.periods,a=e.days,o=e.shortDays,s=e.months,c=e.shortMonths,l=xq(i),u=Sq(i),d=xq(a),f=Sq(a),p=xq(o),m=Sq(o),h=xq(s),g=Sq(s),_=xq(c),v=Sq(c),y={a:j,A:M,b:N,B:ne,c:null,d:Uq,e:Uq,f:Jq,g:aJ,G:sJ,H:Wq,I:Gq,j:Kq,L:qq,m:Yq,M:Xq,p:re,q:ie,Q:AJ,s:jJ,S:Zq,u:Qq,U:$q,V:tJ,w:nJ,W:rJ,x:null,X:null,y:iJ,Y:oJ,Z:cJ,"%":kJ},b={a:P,A:ae,b:oe,B:se,c:null,d:lJ,e:lJ,f:mJ,g:TJ,G:DJ,H:uJ,I:dJ,j:fJ,L:pJ,m:hJ,M:gJ,p:ce,q:le,Q:AJ,s:jJ,S:_J,u:vJ,U:yJ,V:xJ,w:SJ,W:CJ,x:null,X:null,y:wJ,Y:EJ,Z:OJ,"%":kJ},x={a:E,A:D,b:O,B:ee,c:k,d:Nq,e:Nq,f:zq,g:kq,G:Oq,H:Fq,I:Fq,j:Pq,L:Rq,m:Mq,M:Iq,p:T,q:jq,Q:Vq,s:Hq,S:Lq,u:wq,U:Tq,V:Eq,w:Cq,W:Dq,x:te,X:A,y:kq,Y:Oq,Z:Aq,"%":Bq};y.x=S(n,y),y.X=S(r,y),y.c=S(t,y),b.x=S(n,b),b.X=S(r,b),b.c=S(t,b);function S(e,t){return function(n){var r=[],i=-1,a=0,o=e.length,s,c,l;for(n instanceof Date||(n=new Date(+n));++i<o;)e.charCodeAt(i)===37&&(r.push(e.slice(a,i)),(c=hq[s=e.charAt(++i)])==null?c=s===`e`?` `:`0`:s=e.charAt(++i),(l=t[s])&&(s=l(n,c)),r.push(s),a=i+1);return r.push(e.slice(a,i)),r.join(``)}}function C(e,t){return function(n){var r=pq(1900,void 0,1),i=w(r,e,n+=``,0),a,o;if(i!=n.length)return null;if(`Q`in r)return new Date(r.Q);if(`s`in r)return new Date(r.s*1e3+(`L`in r?r.L:0));if(t&&!(`Z`in r)&&(r.Z=0),`p`in r&&(r.H=r.H%12+r.p*12),r.m===void 0&&(r.m=`q`in r?r.q:0),`V`in r){if(r.V<1||r.V>53)return null;`w`in r||(r.w=1),`Z`in r?(a=fq(pq(r.y,0,1)),o=a.getUTCDay(),a=o>4||o===0?XK.ceil(a):XK(a),a=RK.offset(a,(r.V-1)*7),r.y=a.getUTCFullYear(),r.m=a.getUTCMonth(),r.d=a.getUTCDate()+(r.w+6)%7):(a=dq(pq(r.y,0,1)),o=a.getDay(),a=o>4||o===0?HK.ceil(a):HK(a),a=LK.offset(a,(r.V-1)*7),r.y=a.getFullYear(),r.m=a.getMonth(),r.d=a.getDate()+(r.w+6)%7)}else(`W`in r||`U`in r)&&(`w`in r||(r.w=`u`in r?r.u%7:+(`W`in r)),o=`Z`in r?fq(pq(r.y,0,1)).getUTCDay():dq(pq(r.y,0,1)).getDay(),r.m=0,r.d=`W`in r?(r.w+6)%7+r.W*7-(o+5)%7:r.w+r.U*7-(o+6)%7);return`Z`in r?(r.H+=r.Z/100|0,r.M+=r.Z%100,fq(r)):dq(r)}}function w(e,t,n,r){for(var i=0,a=t.length,o=n.length,s,c;i<a;){if(r>=o)return-1;if(s=t.charCodeAt(i++),s===37){if(s=t.charAt(i++),c=x[s in hq?t.charAt(i++):s],!c||(r=c(e,n,r))<0)return-1}else if(s!=n.charCodeAt(r++))return-1}return r}function T(e,t,n){var r=l.exec(t.slice(n));return r?(e.p=u.get(r[0].toLowerCase()),n+r[0].length):-1}function E(e,t,n){var r=p.exec(t.slice(n));return r?(e.w=m.get(r[0].toLowerCase()),n+r[0].length):-1}function D(e,t,n){var r=d.exec(t.slice(n));return r?(e.w=f.get(r[0].toLowerCase()),n+r[0].length):-1}function O(e,t,n){var r=_.exec(t.slice(n));return r?(e.m=v.get(r[0].toLowerCase()),n+r[0].length):-1}function ee(e,t,n){var r=h.exec(t.slice(n));return r?(e.m=g.get(r[0].toLowerCase()),n+r[0].length):-1}function k(e,n,r){return w(e,t,n,r)}function te(e,t,r){return w(e,n,t,r)}function A(e,t,n){return w(e,r,t,n)}function j(e){return o[e.getDay()]}function M(e){return a[e.getDay()]}function N(e){return c[e.getMonth()]}function ne(e){return s[e.getMonth()]}function re(e){return i[+(e.getHours()>=12)]}function ie(e){return 1+~~(e.getMonth()/3)}function P(e){return o[e.getUTCDay()]}function ae(e){return a[e.getUTCDay()]}function oe(e){return c[e.getUTCMonth()]}function se(e){return s[e.getUTCMonth()]}function ce(e){return i[+(e.getUTCHours()>=12)]}function le(e){return 1+~~(e.getUTCMonth()/3)}return{format:function(e){var t=S(e+=``,y);return t.toString=function(){return e},t},parse:function(e){var t=C(e+=``,!1);return t.toString=function(){return e},t},utcFormat:function(e){var t=S(e+=``,b);return t.toString=function(){return e},t},utcParse:function(e){var t=C(e+=``,!0);return t.toString=function(){return e},t}}}var hq={"-":``,_:` `,0:`0`},gq=/^\s*\d+/,_q=/^%/,vq=/[\\^$*+?|[\]().{}]/g;function yq(e,t,n){var r=e<0?`-`:``,i=(r?-e:e)+``,a=i.length;return r+(a<n?Array(n-a+1).join(t)+i:i)}function bq(e){return e.replace(vq,`\\$&`)}function xq(e){return RegExp(`^(?:`+e.map(bq).join(`|`)+`)`,`i`)}function Sq(e){return new Map(e.map((e,t)=>[e.toLowerCase(),t]))}function Cq(e,t,n){var r=gq.exec(t.slice(n,n+1));return r?(e.w=+r[0],n+r[0].length):-1}function wq(e,t,n){var r=gq.exec(t.slice(n,n+1));return r?(e.u=+r[0],n+r[0].length):-1}function Tq(e,t,n){var r=gq.exec(t.slice(n,n+2));return r?(e.U=+r[0],n+r[0].length):-1}function Eq(e,t,n){var r=gq.exec(t.slice(n,n+2));return r?(e.V=+r[0],n+r[0].length):-1}function Dq(e,t,n){var r=gq.exec(t.slice(n,n+2));return r?(e.W=+r[0],n+r[0].length):-1}function Oq(e,t,n){var r=gq.exec(t.slice(n,n+4));return r?(e.y=+r[0],n+r[0].length):-1}function kq(e,t,n){var r=gq.exec(t.slice(n,n+2));return r?(e.y=+r[0]+(+r[0]>68?1900:2e3),n+r[0].length):-1}function Aq(e,t,n){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(t.slice(n,n+6));return r?(e.Z=r[1]?0:-(r[2]+(r[3]||`00`)),n+r[0].length):-1}function jq(e,t,n){var r=gq.exec(t.slice(n,n+1));return r?(e.q=r[0]*3-3,n+r[0].length):-1}function Mq(e,t,n){var r=gq.exec(t.slice(n,n+2));return r?(e.m=r[0]-1,n+r[0].length):-1}function Nq(e,t,n){var r=gq.exec(t.slice(n,n+2));return r?(e.d=+r[0],n+r[0].length):-1}function Pq(e,t,n){var r=gq.exec(t.slice(n,n+3));return r?(e.m=0,e.d=+r[0],n+r[0].length):-1}function Fq(e,t,n){var r=gq.exec(t.slice(n,n+2));return r?(e.H=+r[0],n+r[0].length):-1}function Iq(e,t,n){var r=gq.exec(t.slice(n,n+2));return r?(e.M=+r[0],n+r[0].length):-1}function Lq(e,t,n){var r=gq.exec(t.slice(n,n+2));return r?(e.S=+r[0],n+r[0].length):-1}function Rq(e,t,n){var r=gq.exec(t.slice(n,n+3));return r?(e.L=+r[0],n+r[0].length):-1}function zq(e,t,n){var r=gq.exec(t.slice(n,n+6));return r?(e.L=Math.floor(r[0]/1e3),n+r[0].length):-1}function Bq(e,t,n){var r=_q.exec(t.slice(n,n+1));return r?n+r[0].length:-1}function Vq(e,t,n){var r=gq.exec(t.slice(n));return r?(e.Q=+r[0],n+r[0].length):-1}function Hq(e,t,n){var r=gq.exec(t.slice(n));return r?(e.s=+r[0],n+r[0].length):-1}function Uq(e,t){return yq(e.getDate(),t,2)}function Wq(e,t){return yq(e.getHours(),t,2)}function Gq(e,t){return yq(e.getHours()%12||12,t,2)}function Kq(e,t){return yq(1+LK.count(iq(e),e),t,3)}function qq(e,t){return yq(e.getMilliseconds(),t,3)}function Jq(e,t){return qq(e,t)+`000`}function Yq(e,t){return yq(e.getMonth()+1,t,2)}function Xq(e,t){return yq(e.getMinutes(),t,2)}function Zq(e,t){return yq(e.getSeconds(),t,2)}function Qq(e){var t=e.getDay();return t===0?7:t}function $q(e,t){return yq(VK.count(iq(e)-1,e),t,2)}function eJ(e){var t=e.getDay();return t>=4||t===0?GK(e):GK.ceil(e)}function tJ(e,t){return e=eJ(e),yq(GK.count(iq(e),e)+(iq(e).getDay()===4),t,2)}function nJ(e){return e.getDay()}function rJ(e,t){return yq(HK.count(iq(e)-1,e),t,2)}function iJ(e,t){return yq(e.getFullYear()%100,t,2)}function aJ(e,t){return e=eJ(e),yq(e.getFullYear()%100,t,2)}function oJ(e,t){return yq(e.getFullYear()%1e4,t,4)}function sJ(e,t){var n=e.getDay();return e=n>=4||n===0?GK(e):GK.ceil(e),yq(e.getFullYear()%1e4,t,4)}function cJ(e){var t=e.getTimezoneOffset();return(t>0?`-`:(t*=-1,`+`))+yq(t/60|0,`0`,2)+yq(t%60,`0`,2)}function lJ(e,t){return yq(e.getUTCDate(),t,2)}function uJ(e,t){return yq(e.getUTCHours(),t,2)}function dJ(e,t){return yq(e.getUTCHours()%12||12,t,2)}function fJ(e,t){return yq(1+RK.count(aq(e),e),t,3)}function pJ(e,t){return yq(e.getUTCMilliseconds(),t,3)}function mJ(e,t){return pJ(e,t)+`000`}function hJ(e,t){return yq(e.getUTCMonth()+1,t,2)}function gJ(e,t){return yq(e.getUTCMinutes(),t,2)}function _J(e,t){return yq(e.getUTCSeconds(),t,2)}function vJ(e){var t=e.getUTCDay();return t===0?7:t}function yJ(e,t){return yq(YK.count(aq(e)-1,e),t,2)}function bJ(e){var t=e.getUTCDay();return t>=4||t===0?$K(e):$K.ceil(e)}function xJ(e,t){return e=bJ(e),yq($K.count(aq(e),e)+(aq(e).getUTCDay()===4),t,2)}function SJ(e){return e.getUTCDay()}function CJ(e,t){return yq(XK.count(aq(e)-1,e),t,2)}function wJ(e,t){return yq(e.getUTCFullYear()%100,t,2)}function TJ(e,t){return e=bJ(e),yq(e.getUTCFullYear()%100,t,2)}function EJ(e,t){return yq(e.getUTCFullYear()%1e4,t,4)}function DJ(e,t){var n=e.getUTCDay();return e=n>=4||n===0?$K(e):$K.ceil(e),yq(e.getUTCFullYear()%1e4,t,4)}function OJ(){return`+0000`}function kJ(){return`%`}function AJ(e){return+e}function jJ(e){return Math.floor(e/1e3)}var MJ,NJ,PJ;FJ({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 FJ(e){return MJ=mq(e),NJ=MJ.format,MJ.parse,PJ=MJ.utcFormat,MJ.utcParse,MJ}function IJ(e){return new Date(e)}function LJ(e){return e instanceof Date?+e:+new Date(+e)}function RJ(e,t,n,r,i,a,o,s,c,l){var u=yG(),d=u.invert,f=u.domain,p=l(`.%L`),m=l(`:%S`),h=l(`%I:%M`),g=l(`%I %p`),_=l(`%a %d`),v=l(`%b %d`),y=l(`%B`),b=l(`%Y`);function x(e){return(c(e)<e?p:s(e)<e?m:o(e)<e?h:a(e)<e?g:r(e)<e?i(e)<e?_:v:n(e)<e?y:b)(e)}return u.invert=function(e){return new Date(d(e))},u.domain=function(e){return arguments.length?f(Array.from(e,LJ)):f().map(IJ)},u.ticks=function(t){var n=f();return e(n[0],n[n.length-1],t??10)},u.tickFormat=function(e,t){return t==null?x:l(t)},u.nice=function(e){var n=f();return e&&typeof e.range==`function`||(e=t(n[0],n[n.length-1],e??10)),e?f(JG(n,e)):u},u.copy=function(){return _G(u,RJ(e,t,n,r,i,a,o,s,c,l))},u}function zJ(){return ZU.apply(RJ(lq,uq,iq,nq,VK,LK,FK,NK,MK,NJ).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)}function BJ(){return ZU.apply(RJ(sq,cq,aq,rq,YK,RK,IK,PK,MK,PJ).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function VJ(){var e=0,t=1,n,r,i,a,o=fG,s=!1,c;function l(e){return e==null||isNaN(e=+e)?c:o(i===0?.5:(e=(a(e)-n)*i,s?Math.max(0,Math.min(1,e)):e))}l.domain=function(o){return arguments.length?([e,t]=o,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(e){return arguments.length?(s=!!e,l):s},l.interpolator=function(e){return arguments.length?(o=e,l):o};function u(e){return function(t){var n,r;return arguments.length?([n,r]=t,o=e(n,r),l):[o(0),o(1)]}}return l.range=u(oG),l.rangeRound=u(sG),l.unknown=function(e){return arguments.length?(c=e,l):c},function(o){return a=o,n=o(e),r=o(t),i=n===r?0:1/(r-n),l}}function HJ(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function UJ(){var e=GG(VJ()(fG));return e.copy=function(){return HJ(e,UJ())},QU.apply(e,arguments)}function WJ(){var e=rK(VJ()).domain([1,10]);return e.copy=function(){return HJ(e,WJ()).base(e.base())},QU.apply(e,arguments)}function GJ(){var e=sK(VJ());return e.copy=function(){return HJ(e,GJ()).constant(e.constant())},QU.apply(e,arguments)}function KJ(){var e=fK(VJ());return e.copy=function(){return HJ(e,KJ()).exponent(e.exponent())},QU.apply(e,arguments)}function qJ(){return KJ.apply(null,arguments).exponent(.5)}function JJ(){var e=[],t=fG;function n(n){if(n!=null&&!isNaN(n=+n))return t((kU(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(SU),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map((n,r)=>t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>JU(e,r/t))},n.copy=function(){return JJ(t).domain(e)},QU.apply(n,arguments)}function YJ(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=fG,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*e<r*a?s:c),l(d?Math.max(0,Math.min(1,e)):e))}p.domain=function(l){return arguments.length?([e,t,n]=l,i=u(e=+e),a=u(t=+t),o=u(n=+n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p):[e,t,n]},p.clamp=function(e){return arguments.length?(d=!!e,p):d},p.interpolator=function(e){return arguments.length?(l=e,p):l};function m(e){return function(t){var n,r,i;return arguments.length?([n,r,i]=t,l=cG(e,[n,r,i]),p):[l(0),l(.5),l(1)]}}return p.range=m(oG),p.rangeRound=m(sG),p.unknown=function(e){return arguments.length?(f=e,p):f},function(l){return u=l,i=l(e),a=l(t),o=l(n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p}}function XJ(){var e=GG(YJ()(fG));return e.copy=function(){return HJ(e,XJ())},QU.apply(e,arguments)}function ZJ(){var e=rK(YJ()).domain([.1,1,10]);return e.copy=function(){return HJ(e,ZJ()).base(e.base())},QU.apply(e,arguments)}function QJ(){var e=sK(YJ());return e.copy=function(){return HJ(e,QJ()).constant(e.constant())},QU.apply(e,arguments)}function $J(){var e=fK(YJ());return e.copy=function(){return HJ(e,$J()).exponent(e.exponent())},QU.apply(e,arguments)}function eY(){return $J.apply(null,arguments).exponent(.5)}var tY=c({scaleBand:()=>tW,scaleDiverging:()=>XJ,scaleDivergingLog:()=>ZJ,scaleDivergingPow:()=>$J,scaleDivergingSqrt:()=>eY,scaleDivergingSymlog:()=>QJ,scaleIdentity:()=>qG,scaleImplicit:()=>$U,scaleLinear:()=>KG,scaleLog:()=>iK,scaleOrdinal:()=>eW,scalePoint:()=>rW,scalePow:()=>pK,scaleQuantile:()=>vK,scaleQuantize:()=>yK,scaleRadial:()=>_K,scaleSequential:()=>UJ,scaleSequentialLog:()=>WJ,scaleSequentialPow:()=>KJ,scaleSequentialQuantile:()=>JJ,scaleSequentialSqrt:()=>qJ,scaleSequentialSymlog:()=>GJ,scaleSqrt:()=>mK,scaleSymlog:()=>cK,scaleThreshold:()=>bK,scaleTime:()=>zJ,scaleUtc:()=>BJ,tickFormat:()=>WG});function nY(e){var t=tY;if(e in t&&typeof t[e]==`function`)return t[e]();var n=`scale${CN(e)}`;if(n in t&&typeof t[n]==`function`)return t[n]()}function rY(e,t,n){if(typeof e==`function`)return e.copy().domain(t).range(n);if(e!=null){var r=nY(e);if(r!=null)return r.domain(t).range(n),r}}function iY(e,t,n,r){if(n!=null&&r!=null)return typeof e.scale==`function`?rY(e.scale,n,r):rY(t,n,r)}function aY(e){return`scale${CN(e)}`}function oY(e){return aY(e)in tY}var sY=(e,t,n)=>{if(e!=null){var r=e.scale,i=e.type;if(r===`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 r==`string`)return oY(r)?r:`point`}};function cY(e,t){for(var n=0,r=e.length,i=e[0]<e[e.length-1];n<r;){var a=Math.floor((n+r)/2);(i?e[a]<t:e[a]>t)?n=a+1:r=a}return n}function lY(e,t){if(e){var n=t??e.domain(),r=n.map(t=>e(t)??0),i=e.range();if(!(n.length===0||i.length<2))return e=>{var t=cY(r,e);if(t<=0)return n[0];if(t>=n.length)return n[n.length-1];var i=r[t-1]??0,a=r[t]??0;return Math.abs(e-i)<=Math.abs(e-a)?n[t-1]:n[t]}}}function uY(e){if(e!=null)return`invert`in e&&typeof e.invert==`function`?e.invert.bind(e):lY(e,void 0)}function dY(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function fY(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?dY(Object(n),!0).forEach(function(t){pY(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dY(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function pY(e,t,n){return(t=mY(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mY(e){var t=hY(e,`string`);return typeof t==`symbol`?t:t+``}function hY(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function gY(e,t){return xY(e)||bY(e,t)||vY(e,t)||_Y()}function _Y(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function vY(e,t){if(e){if(typeof e==`string`)return yY(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)?yY(e,t):void 0}}function yY(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function bY(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function xY(e){if(Array.isArray(e))return e}var SY=[0,`auto`],CY={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`},wY=(e,t)=>e.cartesianAxis.xAxis[t],TY=(e,t)=>wY(e,t)??CY,EY={allowDataOverflow:!1,allowDecimals:!0,allowDuplicatedCategory:!0,angle:0,dataKey:void 0,domain:SY,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:60},DY=(e,t)=>e.cartesianAxis.yAxis[t],OY=(e,t)=>DY(e,t)??EY,kY={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:``},AY=(e,t)=>e.cartesianAxis.zAxis[t]??kY,jY=(e,t,n)=>{switch(t){case`xAxis`:return TY(e,n);case`yAxis`:return OY(e,n);case`zAxis`:return AY(e,n);case`angleAxis`:return tU(e,n);case`radiusAxis`:return nU(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},MY=(e,t,n)=>{switch(t){case`xAxis`:return TY(e,n);case`yAxis`:return OY(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},NY=(e,t,n)=>{switch(t){case`xAxis`:return TY(e,n);case`yAxis`:return OY(e,n);case`angleAxis`:return tU(e,n);case`radiusAxis`:return nU(e,n);default:throw Error(`Unexpected axis type: ${t}`)}},PY=e=>e.graphicalItems.cartesianItems.some(e=>e.type===`bar`)||e.graphicalItems.polarItems.some(e=>e.type===`radialBar`);function FY(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 IY=e=>e.graphicalItems.cartesianItems,LY=$([uU,dU],FY),RY=(e,t,n)=>e.filter(n).filter(e=>t?.includeHidden===!0||!e.hide),zY=$([IY,jY,LY],RY,{memoizeOptions:{resultEqualityCheck:gU}}),BY=$([zY],e=>e.filter(e=>e.type===`area`||e.type===`bar`).filter(mU)),VY=e=>e.filter(e=>!(`stackId`in e)||e.stackId===void 0),HY=$([zY],VY),UY=e=>e.map(e=>e.data).filter(Boolean).flat(1),WY=$([zY],e=>e.some(e=>!e.data)),GY=$([zY],UY,{memoizeOptions:{resultEqualityCheck:gU}}),KY=(e,t)=>{var n=t.chartData,r=n===void 0?[]:n,i=t.dataStartIndex,a=t.dataEndIndex;return e.length>0?e:r.slice(i,a+1)},qY=$([GY,aH],KY),JY=(e,t,n)=>t?.dataKey==null?n.length>0?n.map(e=>e.dataKey).flatMap(t=>e.map(e=>({value:cR(e,t)}))):e.map(e=>({value:e})):e.map(e=>({value:cR(e,t.dataKey)})),YY=(e,t,n,r,i,a)=>{var o=r.chartData,s=o===void 0?[]:o,c=r.dataStartIndex,l=r.dataEndIndex,u=JY(e,t,n);return i&&t?.dataKey!=null&&a.length>0?[...s.slice(c,l+1).map(e=>({value:cR(e,t.dataKey)})).filter(e=>e.value!=null),...u]:u},XY=$([qY,jY,zY,aH,WY,GY],YY);function ZY(e){if(hN(e)||e instanceof Date){var t=Number(e);if(iR(t))return t}}function QY(e){if(Array.isArray(e)){var t=[ZY(e[0]),ZY(e[1])];return hH(t)?t:void 0}var n=ZY(e);if(n!=null)return[n,n]}function $Y(e){return e.map(ZY).filter(wN)}function eX(e,t){var n=ZY(e),r=ZY(t);return n==null&&r==null?0:n==null?-1:r==null?1:n-r}var tX=$([XY],e=>e?.map(e=>e.value).sort(eX));function nX(e,t){switch(e){case`xAxis`:return t.direction===`x`;case`yAxis`:return t.direction===`y`;default:return!1}}function rX(e,t,n){if(!n||!n.length)return[];var r;if(typeof t==`number`&&!pN(t))r=t;else if(Array.isArray(t)){var i=$Y(t);i.length>0&&(r=Math.max(...i))}return r==null?[]:$Y(n.flatMap(t=>{var n=cR(e,t.dataKey),i,a;if(Array.isArray(n)){var o=gY(n,2);i=o[0],a=o[1]}else i=a=n;if(iR(i)&&iR(a))return[r-i,r+a]}))}var iX=e=>NY(e,vU(e),yU(e)),aX=$([iX],e=>e?.dataKey),oX=$([BY,aH,iX],pU),sX=(e,t,n,r)=>{var i=t.reduce((e,t)=>{if(t.stackId==null)return e;var n=e[t.stackId];return n??=[],n.push(t),e[t.stackId]=n,e},{});return Object.fromEntries(Object.entries(i).map(t=>{var i=gY(t,2),a=i[0],o=i[1],s=r?[...o].reverse():o;return[a,{stackedData:qoe(e,s.map(fU),n),graphicalItems:s}]}))},cX=$([oX,BY,IH,LH],sX),lX=(e,t,n,r)=>{var i=t.dataStartIndex,a=t.dataEndIndex;if(r==null&&n!==`zAxis`)return Zoe(e,i,a)},uX=$([jY],e=>e.allowDataOverflow),dX=e=>{if(e==null||!(`domain`in e))return SY;if(e.domain!=null)return e.domain;if(`ticks`in e&&e.ticks!=null){if(e.type===`number`){var t=$Y(e.ticks);return[Math.min(...t),Math.max(...t)]}if(e.type===`category`)return e.ticks.map(String)}return e?.domain??SY},fX=$([jY],dX),pX=$([fX,uX],_H),mX=$([cX,rH,uU,pX],lX,{memoizeOptions:{resultEqualityCheck:hU}}),hX=e=>e.errorBars,gX=(e,t,n)=>e.flatMap(e=>t[e.id]).filter(Boolean).filter(e=>nX(n,e)),_X=function(){var e=[...arguments].filter(Boolean);if(e.length!==0){var t=e.flat();return[Math.min(...t),Math.max(...t)]}},vX=function(e,t,n,r,i){var a=arguments.length>5&&arguments[5]!==void 0?arguments[5]:[],o,s;if(n.length>0&&n.forEach(e=>{var n=e.data==null?a:[...e.data],c=r[e.id]?.filter(e=>nX(i,e));n.forEach(n=>{var r=cR(n,t.dataKey??e.dataKey),i=rX(n,r,c);if(i.length>=2){var a=Math.min(...i),l=Math.max(...i);(o==null||a<o)&&(o=a),(s==null||l>s)&&(s=l)}var u=QY(r);u!=null&&(o=o==null?u[0]:Math.min(o,u[0]),s=s==null?u[1]:Math.max(s,u[1]))})}),t?.dataKey!=null&&n.length===0&&e.forEach(e=>{var n=QY(cR(e,t.dataKey));n!=null&&(o=o==null?n[0]:Math.min(o,n[0]),s=s==null?n[1]:Math.max(s,n[1]))}),iR(o)&&iR(s))return[o,s]},yX=$([qY,jY,HY,hX,uU,sH],vX,{memoizeOptions:{resultEqualityCheck:hU}});function bX(e){var t=e.value;if(hN(t)||t instanceof Date)return t}var xX=(e,t,n)=>{var r=e.map(bX).filter(e=>e!=null);return n&&(t.dataKey==null||t.allowDuplicatedCategory&&yN(r))?nH(0,e.length):t.allowDuplicatedCategory?r:Array.from(new Set(r))},SX=e=>e.referenceElements.dots,CX=(e,t,n)=>e.filter(e=>e.ifOverflow===`extendDomain`).filter(e=>t===`xAxis`?e.xAxisId===n:e.yAxisId===n),wX=$([SX,uU,dU],CX),TX=e=>e.referenceElements.areas,EX=$([TX,uU,dU],CX),DX=e=>e.referenceElements.lines,OX=$([DX,uU,dU],CX),kX=(e,t)=>{if(e!=null){var n=$Y(e.map(e=>t===`xAxis`?e.x:e.y));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},AX=$(wX,uU,kX),jX=(e,t)=>{if(e!=null){var n=$Y(e.flatMap(e=>[t===`xAxis`?e.x1:e.y1,t===`xAxis`?e.x2:e.y2]));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},MX=$([EX,uU],jX);function NX(e){if(e.x!=null)return $Y([e.x]);var t=e.segment?.map(e=>e.x);return t==null||t.length===0?[]:$Y(t)}function PX(e){if(e.y!=null)return $Y([e.y]);var t=e.segment?.map(e=>e.y);return t==null||t.length===0?[]:$Y(t)}var FX=(e,t)=>{if(e!=null){var n=e.flatMap(e=>t===`xAxis`?NX(e):PX(e));if(n.length!==0)return[Math.min(...n),Math.max(...n)]}},IX=$(AX,$([OX,uU],FX),MX,(e,t,n)=>_X(e,n,t)),LX=(e,t,n,r,i,a,o,s,c)=>{if(n!=null)return n;var l=o===`vertical`&&s===`xAxis`||o===`horizontal`&&s===`yAxis`?_X(r,a,i):_X(a,i),u=vH(t,l,e.allowDataOverflow);return u==null&&e.allowDataOverflow&&l==null&&c!=null?c:u},RX=$([jY,fX,pX,mX,yX,IX,WR,uU,$([jY],e=>{if(e!=null&&e.type===`number`&&`ticks`in e&&e.ticks!=null){var t=$Y(e.ticks);if(t.length!==0)return[Math.min(...t),Math.max(...t)]}},{memoizeOptions:{resultEqualityCheck:hU}})],LX,{memoizeOptions:{resultEqualityCheck:hU}}),zX=[0,1],BX=(e,t,n,r,i,a,o)=>{if(e!=null&&n!=null&&n.length!==0||o!==void 0){var s=e.dataKey,c=e.type,l=lR(t,a);return l&&s==null?nH(0,n?.length??0):c===`category`?xX(r,e,l):i===`expand`&&!l?zX:o}},VX=$([jY,WR,qY,XY,IH,uU,RX],BX),HX=$([jY,PY,RH],sY),UX=(e,t,n)=>{var r=t.niceTicks;if(r!==`none`){var i=dX(t),a=Array.isArray(i)&&(i[0]===`auto`||i[1]===`auto`);if((r===`snap125`||r===`adaptive`)&&t!=null&&t.tickCount&&hH(e)){if(a)return NH(e,t.tickCount,t.allowDecimals,r);if(t.type===`number`)return PH(e,t.tickCount,t.allowDecimals,r)}if(r===`auto`&&n===`linear`&&t!=null&&t.tickCount){if(a&&hH(e))return NH(e,t.tickCount,t.allowDecimals,`adaptive`);if(t.type===`number`&&hH(e))return PH(e,t.tickCount,t.allowDecimals,`adaptive`)}}},WX=$([VX,NY,HX],UX),GX=(e,t,n,r)=>{if(r!==`angleAxis`&&e?.type===`number`&&hH(t)&&Array.isArray(n)&&n.length>0){var i=t[0],a=n[0]??0,o=t[1],s=n[n.length-1]??0;return[Math.min(i,a),Math.max(o,s)]}return t},KX=$([jY,VX,WX,uU],GX),qX=$($(XY,jY,(e,t)=>{if(t&&t.type===`number`){var n=1/0,r=Array.from($Y(e.map(e=>e.value))).sort((e,t)=>e-t),i=r[0],a=r[r.length-1];if(i==null||a==null)return 1/0;var o=a-i;if(o===0)return 1/0;for(var s=0;s<r.length-1;s++){var c=r[s],l=r[s+1];if(c!=null&&l!=null){var u=l-c;n=Math.min(n,u)}}return n/o}}),WR,FH,TR,(e,t,n,r,i)=>i,(e,t,n,r,i)=>{if(!iR(e))return 0;var a=t===`vertical`?r.height:r.width;if(i===`gap`)return e*a/2;if(i===`no-gap`){var o=vN(n,e*a),s=e*a/2;return s-o-(s-o)/a*o}return 0}),JX=(e,t,n)=>{var r=TY(e,t);return r==null||typeof r.padding!=`string`?0:qX(e,`xAxis`,t,n,r.padding)},YX=(e,t,n)=>{var r=OY(e,t);return r==null||typeof r.padding!=`string`?0:qX(e,`yAxis`,t,n,r.padding)},XX=$(TY,JX,(e,t)=>{if(e==null)return{left:0,right:0};var n=e.padding;return typeof n==`string`?{left:t,right:t}:{left:(n.left??0)+t,right:(n.right??0)+t}}),ZX=$(OY,YX,(e,t)=>{if(e==null)return{top:0,bottom:0};var n=e.padding;return typeof n==`string`?{top:t,bottom:t}:{top:(n.top??0)+t,bottom:(n.bottom??0)+t}}),QX=$([TR,XX,kR,OR,(e,t,n)=>n],(e,t,n,r,i)=>{var a=r.padding;return i?[a.left,n.width-a.right]:[e.left+t.left,e.left+e.width-t.right]}),$X=$([TR,WR,ZX,kR,OR,(e,t,n)=>n],(e,t,n,r,i,a)=>{var o=i.padding;return a?[r.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]}),eZ=(e,t,n,r)=>{switch(t){case`xAxis`:return QX(e,n,r);case`yAxis`:return $X(e,n,r);case`zAxis`:return AY(e,n)?.range;case`angleAxis`:return sU(e);case`radiusAxis`:return cU(e,n);default:return}},tZ=$([jY,eZ],KH),nZ=$([jY,HX,$([HX,KX],xU),tZ],iY),rZ=(e,t,n,r)=>{if(n!=null&&n.dataKey!=null){var i=n.type,a=n.scale;if(lR(e,r)&&(i===`number`||a!==`auto`))return t.map(e=>e.value)}},iZ=$([WR,XY,NY,uU],rZ),aZ=$([nZ],bU);$([nZ],uY),$([nZ,tX],lY),$([zY,hX,uU],gX);function oZ(e,t){return e.id<t.id?-1:+(e.id>t.id)}var sZ=(e,t)=>t,cZ=(e,t,n)=>n,lZ=$(xR,sZ,cZ,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(oZ)),uZ=$(SR,sZ,cZ,(e,t,n)=>e.filter(e=>e.orientation===t).filter(e=>e.mirror===n).sort(oZ)),dZ=(e,t)=>{var n=typeof t.height==`number`?t.height:30;return{width:e.width,height:n}},fZ=(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height}),pZ=$(TR,TY,dZ),mZ=(e,t,n)=>{switch(t){case`top`:return e.top;case`bottom`:return n-e.bottom;default:return 0}},hZ=(e,t,n)=>{switch(t){case`left`:return e.left;case`right`:return n-e.right;default:return 0}},gZ=$(yR,TR,lZ,sZ,cZ,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=dZ(t,n);o??=mZ(t,r,e);var c=r===`top`&&!i||r===`bottom`&&i;a[n.id]=o-Number(c)*s.height,o+=(c?-1:1)*s.height}),a}),_Z=$(vR,TR,uZ,sZ,cZ,(e,t,n,r,i)=>{var a={},o;return n.forEach(n=>{var s=fZ(t,n);o??=hZ(t,r,e);var c=r===`left`&&!i||r===`right`&&i;a[n.id]=o-Number(c)*s.width,o+=(c?-1:1)*s.width}),a}),vZ=$([TR,TY,(e,t)=>{var n=TY(e,t);if(n!=null)return gZ(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:e.left,y:0}:{x:e.left,y:i}}}),yZ=$([TR,OY,(e,t)=>{var n=OY(e,t);if(n!=null)return _Z(e,n.orientation,n.mirror)},(e,t)=>t],(e,t,n,r)=>{if(t!=null){var i=n?.[r];return i==null?{x:0,y:e.top}:{x:i,y:e.top}}}),bZ=$(TR,OY,(e,t)=>({width:typeof t.width==`number`?t.width:60,height:e.height})),xZ=(e,t,n,r)=>{if(n!=null){var i=n.allowDuplicatedCategory,a=n.type,o=n.dataKey,s=lR(e,r),c=t.map(e=>e.value),l=c.filter(e=>e!=null);if(o&&s&&a===`category`&&i&&yN(l))return c}},SZ=$([WR,XY,jY,uU],xZ),CZ=$([WR,MY,HX,aZ,SZ,iZ,eZ,WX,uU],(e,t,n,r,i,a,o,s,c)=>{if(t!=null){var l=lR(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:a,duplicateDomain:i,isCategorical:l,niceTicks:s,range:o,realScaleType:n,scale:r}}}),wZ=$([WR,NY,HX,aZ,WX,eZ,SZ,iZ,uU],(e,t,n,r,i,a,o,s,c)=>{if(t!=null&&r!=null){var l=lR(e,c),u=t.type,d=t.ticks,f=t.tickCount,p=n===`scaleBand`&&typeof r.bandwidth==`function`?r.bandwidth()/2:2,m=u===`category`&&r.bandwidth?r.bandwidth()/p:0;m=c===`angleAxis`&&a!=null&&a.length>=2?fN(a[0]-a[1])*2*m:m;var h=d||i;return h?h.map((e,t)=>{var n=o?o.indexOf(e):e,i=r.map(n);return iR(i)?{index:t,coordinate:i+m,value:e,offset:m}:null}).filter(wN):l&&s?s.map((e,t)=>{var n=r.map(e);return iR(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(wN):r.ticks?r.ticks(f).map((e,t)=>{var n=r.map(e);return iR(n)?{coordinate:n+m,value:e,index:t,offset:m}:null}).filter(wN):r.domain().map((e,t)=>{var n=r.map(e);return iR(n)?{coordinate:n+m,value:o?o[e]:e,index:t,offset:m}:null}).filter(wN)}}),TZ=$([WR,NY,aZ,eZ,SZ,iZ,uU],(e,t,n,r,i,a,o)=>{if(t!=null&&n!=null&&r!=null&&r[0]!==r[1]){var s=lR(e,o),c=t.tickCount,l=0;return l=o===`angleAxis`&&r?.length>=2?fN(r[0]-r[1])*2*l:l,s&&a?a.map((e,t)=>{var r=n.map(e);return iR(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(wN):n.ticks?n.ticks(c).map((e,t)=>{var r=n.map(e);return iR(r)?{coordinate:r+l,value:e,index:t,offset:l}:null}).filter(wN):n.domain().map((e,t)=>{var r=n.map(e);return iR(r)?{coordinate:r+l,value:i?i[e]:e,index:t,offset:l}:null}).filter(wN)}}),EZ=$(jY,aZ,(e,t)=>{if(e!=null&&t!=null)return fY(fY({},e),{},{scale:t})});$((e,t,n)=>AY(e,n),$([$([jY,HX,VX,tZ],iY)],bU),(e,t)=>{if(e!=null&&t!=null)return fY(fY({},e),{},{scale:t})});var DZ=$([WR,xR,SR],(e,t,n)=>{switch(e){case`horizontal`:return t.some(e=>e.reversed)?`right-to-left`:`left-to-right`;case`vertical`:return n.some(e=>e.reversed)?`bottom-to-top`:`top-to-bottom`;case`centric`:case`radial`:return`left-to-right`;default:return}});$([(e,t,n)=>e.renderedTicks[t]?.[n]],e=>{if(e&&e.length!==0)return t=>{var n=1/0,r=e[0];for(var i of e){var a=Math.abs(i.coordinate-t);a<n&&(n=a,r=i)}return r?.value}});var OZ=e=>e.options.defaultTooltipEventType,kZ=e=>e.options.validateTooltipEventTypes;function AZ(e,t,n){if(e==null)return t;var r=e?`axis`:`item`;return n==null?t:n.includes(r)?r:t}function jZ(e,t){return AZ(t,OZ(e),kZ(e))}function MZ(e){return BF(t=>jZ(t,e))}var NZ=(e,t)=>{var n,r=Number(t);if(!(pN(r)||t==null))return r>=0?e==null||(n=e[r])==null?void 0:n.value:void 0},PZ=e=>e.tooltip.settings,FZ={active:!1,index:null,dataKey:void 0,graphicalItemId:void 0,coordinate:void 0},IZ=OL({name:`tooltip`,initialState:{itemInteraction:{click:FZ,hover:FZ},axisInteraction:{click:FZ,hover:FZ},keyboardInteraction:FZ,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}},reducers:{addTooltipEntrySettings:{reducer(e,t){e.tooltipItemPayloads.push(_L(t.payload))},prepare:wL()},replaceTooltipEntrySettings:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next,a=mL(e).tooltipItemPayloads.indexOf(_L(r));a>-1&&(e.tooltipItemPayloads[a]=_L(i))},prepare:wL()},removeTooltipEntrySettings:{reducer(e,t){var n=mL(e).tooltipItemPayloads.indexOf(_L(t.payload));n>-1&&e.tooltipItemPayloads.splice(n,1)},prepare:wL()},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}}}),LZ=IZ.actions,RZ=LZ.addTooltipEntrySettings,zZ=LZ.replaceTooltipEntrySettings,BZ=LZ.removeTooltipEntrySettings,VZ=LZ.setTooltipSettingsState,HZ=LZ.setActiveMouseOverItemIndex;LZ.mouseLeaveItem;var UZ=LZ.mouseLeaveChart;LZ.setActiveClickItemIndex;var WZ=LZ.setMouseOverAxisIndex,GZ=LZ.setMouseClickAxisIndex,KZ=LZ.setSyncInteraction,qZ=LZ.setKeyboardInteraction,JZ=IZ.reducer;function YZ(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function XZ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?YZ(Object(n),!0).forEach(function(t){ZZ(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):YZ(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ZZ(e,t,n){return(t=QZ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function QZ(e){var t=$Z(e,`string`);return typeof t==`symbol`?t:t+``}function $Z(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function eQ(e,t,n){return t===`axis`?n===`click`?e.axisInteraction.click:e.axisInteraction.hover:n===`click`?e.itemInteraction.click:e.itemInteraction.hover}function tQ(e){return e.index!=null}var nQ=(e,t,n,r)=>{if(t==null)return FZ;var i=eQ(e,t,n);if(i==null)return FZ;if(i.active)return i;if(e.keyboardInteraction.active)return e.keyboardInteraction;if(e.syncInteraction.active&&e.syncInteraction.index!=null)return e.syncInteraction;var a=e.settings.active===!0;if(tQ(i)){if(a)return XZ(XZ({},i),{},{active:!0})}else if(r!=null)return{active:!0,coordinate:void 0,dataKey:void 0,index:r,graphicalItemId:void 0};return XZ(XZ({},FZ),{},{coordinate:i.coordinate})};function rQ(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 iQ(e,t){var n=rQ(e),r=t[0],i=t[1];return n!==void 0&&n>=Math.min(r,i)&&n<=Math.max(r,i)}function aQ(e,t,n){if(n==null||t==null)return!0;var r=cR(e,t);return r==null||!hH(n)||iQ(r,n)}var oQ=(e,t,n,r)=>{var i=e?.index;if(i==null)return null;var a=Number(i);if(!iR(a))return i;var o=0,s=1/0;t.length>0&&(s=t.length-1);var c=Math.max(o,Math.min(a,s)),l=t[c];return l==null||aQ(l,n,r)?String(c):null},sQ=(e,t,n,r,i,a,o)=>{if(a!=null){var s=o[0]?.getPosition(a);if(s!=null)return s;var c=i?.[Number(a)];if(c)switch(n){case`horizontal`:return{x:c.coordinate,y:(r.top+t)/2};default:return{x:(r.left+e)/2,y:c.coordinate}}}},cQ=(e,t,n,r)=>{if(t===`axis`)return e.tooltipItemPayloads;if(e.tooltipItemPayloads.length===0)return[];var i=n===`hover`?e.itemInteraction.hover.graphicalItemId:e.itemInteraction.click.graphicalItemId;if(e.syncInteraction.active&&i==null)return e.tooltipItemPayloads;if(i==null&&(r!=null||e.keyboardInteraction.active)){var a=e.tooltipItemPayloads[0];return a==null?[]:[a]}return e.tooltipItemPayloads.filter(e=>e.settings?.graphicalItemId===i)},lQ=e=>e.options.tooltipPayloadSearcher,uQ=e=>e.tooltip;function dQ(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function fQ(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?dQ(Object(n),!0).forEach(function(t){pQ(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):dQ(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function pQ(e,t,n){return(t=mQ(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function mQ(e){var t=hQ(e,`string`);return typeof t==`symbol`?t:t+``}function hQ(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function gQ(e){if(typeof e==`string`||typeof e==`number`)return e}function _Q(e){if(typeof e==`string`||typeof e==`number`||typeof e==`boolean`)return e}function vQ(e){if(typeof e==`string`||typeof e==`number`)return e;if(typeof e==`function`)return t=>e(t)}function yQ(e){if(typeof e==`string`)return e}function bQ(e){if(typeof e==`object`&&e)return{name:`name`in e?gQ(e.name):void 0,unit:`unit`in e?_Q(e.unit):void 0,dataKey:`dataKey`in e?vQ(e.dataKey):void 0,payload:`payload`in e?e.payload:void 0,color:`color`in e?yQ(e.color):void 0,fill:`fill`in e?yQ(e.fill):void 0}}function xQ(e,t){return e??t}var SQ=(e,t,n,r,i,a,o)=>{if(t!=null&&a!=null){var s=n.chartData,c=n.computedData,l=n.dataStartIndex,u=n.dataEndIndex;return e.reduce((e,n)=>{var d=n.dataDefinedOnItem,f=n.settings,p=xQ(d,s),m=Array.isArray(p)?rR(p,l,u):p,h=f?.dataKey??r,g=f?.nameKey,_;return r&&Array.isArray(m)&&!Array.isArray(m[0])&&o===`axis`?(_=xN(m,r,i),_??=a(m,t,c,g)):_=a(m,t,c,g),Array.isArray(_)?_.forEach(t=>{var n=bQ(t),r=n?.name,i=n?.dataKey,a=n?.payload,o=fQ(fQ({},f),{},{name:r,unit:n?.unit,color:n?.color??f?.color,fill:n?.fill??f?.fill});e.push(gR({tooltipEntrySettings:o,dataKey:i,payload:a,value:cR(a,i),name:r==null?void 0:String(r)}))}):e.push(gR({tooltipEntrySettings:f,dataKey:h,payload:_,value:cR(_,h),name:cR(_,g)??f?.name})),e},[])}},CQ=$([iX,PY,RH],sY),wQ=$([$([e=>e.graphicalItems.cartesianItems,e=>e.graphicalItems.polarItems],(e,t)=>[...e,...t]),iX,$([vU,yU],FY)],RY,{memoizeOptions:{resultEqualityCheck:gU}}),TQ=$([wQ],e=>e.filter(mU)),EQ=$([wQ],UY,{memoizeOptions:{resultEqualityCheck:gU}}),DQ=$([wQ],e=>e.some(e=>!e.data)),OQ=$([EQ,rH],KY),kQ=$([TQ,rH,iX],pU),AQ=$([OQ,iX,wQ,rH,DQ,EQ],YY),jQ=$([iX],dX),MQ=$([jQ,$([iX],e=>e.allowDataOverflow)],_H),NQ=$([$([kQ,$([wQ],e=>e.filter(mU)),IH,LH],sX),rH,vU,MQ],lX),PQ=$([OQ,iX,$([wQ],VY),hX,vU,cH],vX,{memoizeOptions:{resultEqualityCheck:hU}}),FQ=$([$([SX,vU,yU],CX),vU],kX),IQ=$([$([TX,vU,yU],CX),vU],jX),LQ=$([iX,WR,OQ,AQ,IH,vU,$([iX,jQ,MQ,NQ,PQ,$([FQ,$([$([DX,vU,yU],CX),vU],FX),IQ],_X),WR,vU],LX)],BX),RQ=$([iX,LQ,$([LQ,iX,CQ],UX),vU],GX),zQ=e=>eZ(e,vU(e),yU(e),!1),BQ=$([iX,zQ],KH),VQ=$([$([iX,CQ,RQ,BQ],iY)],bU),HQ=$([WR,iX,CQ,VQ,zQ,$([WR,AQ,iX,vU],xZ),$([WR,AQ,iX,vU],rZ),vU],(e,t,n,r,i,a,o,s)=>{if(t){var c=t.type,l=lR(e,s);if(r){var u=n===`scaleBand`&&r.bandwidth?r.bandwidth()/2:2,d=c===`category`&&r.bandwidth?r.bandwidth()/u:0;return d=s===`angleAxis`&&i!=null&&i?.length>=2?fN(i[0]-i[1])*2*d:d,l&&o?o.map((e,t)=>{var n=r.map(e);return iR(n)?{coordinate:n+d,value:e,index:t,offset:d}:null}).filter(wN):r.domain().map((e,t)=>{var n=r.map(e);return iR(n)?{coordinate:n+d,value:a?a[e]:e,index:t,offset:d}:null}).filter(wN)}}}),UQ=$([OZ,kZ,PZ],(e,t,n)=>AZ(n.shared,e,t)),WQ=e=>e.tooltip.settings.trigger,GQ=e=>e.tooltip.settings.defaultIndex,KQ=$([uQ,UQ,WQ,GQ],nQ),qQ=$([KQ,OQ,aX,LQ],oQ),JQ=$([HQ,qQ],NZ),YQ=$([KQ],e=>{if(e)return e.dataKey}),XQ=$([KQ],e=>{if(e)return e.graphicalItemId}),ZQ=$([uQ,UQ,WQ,GQ],cQ),QQ=$([KQ,$([vR,yR,WR,TR,HQ,GQ,ZQ],sQ)],(e,t)=>e!=null&&e.coordinate?e.coordinate:t),$Q=$([KQ],e=>e?.active??!1),e$=$([$([ZQ,qQ,rH,aX,JQ,lQ,UQ],SQ)],e=>{if(e!=null){var t=e.map(e=>e.payload).filter(e=>e!=null);return Array.from(new Set(t))}});function t$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function n$(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?t$(Object(n),!0).forEach(function(t){r$(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):t$(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function r$(e,t,n){return(t=i$(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i$(e){var t=a$(e,`string`);return typeof t==`symbol`?t:t+``}function a$(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var o$=()=>BF(iX),s$=()=>{var e=o$(),t=BF(HQ),n=BF(VQ);return hR(!e||!n?void 0:n$(n$({},e),{},{scale:n}),t)};function c$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function l$(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?c$(Object(n),!0).forEach(function(t){u$(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):c$(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function u$(e,t,n){return(t=d$(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function d$(e){var t=f$(e,`string`);return typeof t==`symbol`?t:t+``}function f$(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var p$=(e,t,n,r)=>{var i=t.find(e=>e&&e.index===n);if(i){if(e===`horizontal`)return{x:i.coordinate,y:r.relativeY};if(e===`vertical`)return{x:r.relativeX,y:i.coordinate}}return{x:0,y:0}},m$=(e,t,n,r)=>{var i=t.find(e=>e&&e.index===n);if(i){if(e===`centric`){var a=i.coordinate,o=r.radius;return l$(l$(l$({},r),AV(r.cx,r.cy,o,a)),{},{angle:a,radius:o})}var s=i.coordinate,c=r.angle;return l$(l$(l$({},r),AV(r.cx,r.cy,s,c)),{},{angle:c,radius:s})}return{angle:0,clockWise:!1,cx:0,cy:0,endAngle:0,innerRadius:0,outerRadius:0,radius:0,startAngle:0,x:0,y:0}};function h$(e,t){var n=e.relativeX,r=e.relativeY;return n>=t.left&&n<=t.left+t.width&&r>=t.top&&r<=t.top+t.height}var g$=(e,t,n,r,i)=>{var a=t?.length??0;if(a<=1||e==null)return 0;if(r===`angleAxis`&&i!=null&&Math.abs(Math.abs(i[1]-i[0])-360)<=1e-6)for(var o=i[1]-i[0],s=(t,n,r)=>[e,e+o,e-o].some(e=>(r?e>=t:e>t)&&e<=n),c=0;c<a;c++){var l=c>0?n[c-1]?.coordinate:n[a-1]?.coordinate,u=n[c]?.coordinate,d=c>=a-1?n[0]?.coordinate:n[c+1]?.coordinate,f=void 0;if(l!=null&&u!=null&&d!=null){if(fN(u-l)!==fN(d-u)){var p=[];if(fN(d-u)===fN(i[1]-i[0])){f=d;var m=u+i[1]-i[0];p[0]=Math.min(m,(m+l)/2),p[1]=Math.max(m,(m+l)/2)}else{f=l;var h=d+i[1]-i[0];p[0]=Math.min(u,(h+u)/2),p[1]=Math.max(u,(h+u)/2)}var g=[Math.min(u,(f+u)/2),Math.max(u,(f+u)/2)];if(s(g[0],g[1],!1)||s(p[0],p[1],!0))return n[c]?.index}else{var _=Math.min(l,d),v=Math.max(l,d);if(s((_+u)/2,(v+u)/2,!1))return n[c]?.index}}}else if(t)for(var y=0;y<a;y++){var b=t[y];if(b!=null){var x=t[y+1],S=t[y-1];if(y===0&&x!=null&&e<=(b.coordinate+x.coordinate)/2||y===a-1&&S!=null&&e>(b.coordinate+S.coordinate)/2||y>0&&y<a-1&&S!=null&&x!=null&&e>(b.coordinate+S.coordinate)/2&&e<=(b.coordinate+x.coordinate)/2)return b.index}}return-1},_$=()=>BF(RH),v$=(e,t)=>t,y$=(e,t,n)=>n,b$=(e,t,n,r)=>r,x$=$(HQ,e=>JF(e,e=>e.coordinate)),S$=$([uQ,v$,y$,b$],nQ),C$=$([S$,OQ,aX,LQ],oQ),w$=(e,t,n)=>{if(t!=null){var r=uQ(e);return t===`axis`?n===`hover`?r.axisInteraction.hover.dataKey:r.axisInteraction.click.dataKey:n===`hover`?r.itemInteraction.hover.dataKey:r.itemInteraction.click.dataKey}},T$=$([uQ,v$,y$,b$],cQ),E$=$([vR,yR,WR,TR,HQ,b$,T$],sQ),D$=$([S$,E$],(e,t)=>e.coordinate??t),O$=$([HQ,C$],NZ),k$=$([T$,C$,rH,aX,O$,lQ,v$],SQ),A$=$([S$,C$],(e,t)=>({isActive:e.active&&t!=null,activeIndex:t})),j$=(e,t,n,r,i,a,o)=>{if(e&&n&&r&&i&&h$(e,o)){var s=g$(Qoe(e,t),a,i,n,r),c=p$(t,i,s,e);return{activeIndex:String(s),activeCoordinate:c}}},M$=(e,t,n,r,i,a,o)=>{if(e&&r&&i&&a&&n){var s=IV(e,n);if(s){var c=g$($oe(s,t),o,a,r,i),l=m$(t,a,c,s);return{activeIndex:String(c),activeCoordinate:l}}}},N$=(e,t,n,r,i,a,o,s)=>{if(e&&t&&r&&i&&a)return t===`horizontal`||t===`vertical`?j$(e,t,r,i,a,o,s):M$(e,t,n,r,i,a,o)},P$=$(e=>e.zIndex.zIndexMap,(e,t)=>t,(e,t,n)=>n,(e,t,n)=>{if(t!=null){var r=e[t];if(r!=null)return n?r.panoramaElement:r.element}}),F$=$(e=>e.zIndex.zIndexMap,e=>{var t=Object.keys(e).map(e=>parseInt(e,10)).concat(Object.values(UH));return Array.from(new Set(t)).sort((e,t)=>e-t)},{memoizeOptions:{resultEqualityCheck:_U}});function I$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function L$(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?I$(Object(n),!0).forEach(function(t){R$(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):I$(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function R$(e,t,n){return(t=z$(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z$(e){var t=B$(e,`string`);return typeof t==`symbol`?t:t+``}function B$(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var V$={zIndexMap:Object.values(UH).reduce((e,t)=>L$(L$({},e),{},{[t]:{element:void 0,panoramaElement:void 0,consumers:0}}),{})},H$=new Set(Object.values(UH));function U$(e){return H$.has(e)}var W$=OL({name:`zIndex`,initialState:V$,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:wL()},unregisterZIndexPortal:{reducer:(e,t)=>{var n=t.payload.zIndex;e.zIndexMap[n]&&(--e.zIndexMap[n].consumers,e.zIndexMap[n].consumers<=0&&!U$(n)&&delete e.zIndexMap[n])},prepare:wL()},registerZIndexPortalElement:{reducer:(e,t)=>{var n=t.payload,r=n.zIndex,i=n.element,a=n.isPanorama;e.zIndexMap[r]?a?e.zIndexMap[r].panoramaElement=_L(i):e.zIndexMap[r].element=_L(i):e.zIndexMap[r]={consumers:0,element:a?void 0:_L(i),panoramaElement:a?_L(i):void 0}},prepare:wL()},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:wL()}}}),G$=W$.actions,K$=G$.registerZIndexPortal,q$=G$.unregisterZIndexPortal,J$=G$.registerZIndexPortalElement,Y$=G$.unregisterZIndexPortalElement,X$=W$.reducer;function Z$(e){var t=e.zIndex,n=e.children,r=Ise()&&t!==void 0&&t!==0,i=DR(),a=(0,y.useRef)(void 0),o=(0,y.useRef)(new Set),s=RF(),c=BF(e=>P$(e,t,i));if((0,y.useLayoutEffect)(()=>{if(!r){var e=o.current;e.forEach(e=>{s(q$({zIndex:e}))}),e.clear(),a.current=void 0}else if(o.current.has(t)||(s(K$({zIndex:t})),o.current.add(t)),c){a.current=c;var n=o.current;n.forEach(e=>{e!==t&&(s(q$({zIndex:e})),n.delete(e))})}},[s,t,r,c]),(0,y.useLayoutEffect)(()=>{var e=o.current;return()=>{e.forEach(e=>{s(q$({zIndex:e}))}),e.clear()}},[s]),!r)return n;var l=c??a.current;return l?(0,xr.createPortal)(n,l):null}function Q$(){return Q$=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Q$.apply(null,arguments)}function $$(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function e1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?$$(Object(n),!0).forEach(function(t){t1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):$$(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function t1(e,t,n){return(t=n1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function n1(e){var t=r1(e,`string`);return typeof t==`symbol`?t:t+``}function r1(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function i1(e){var t=e.cursor,n=e.cursorComp,r=e.cursorProps;return(0,y.isValidElement)(t)?(0,y.cloneElement)(t,r):(0,y.createElement)(n,r)}function a1(e){var t=e.coordinate,n=e.payload,r=e.index,i=e.offset,a=e.tooltipAxisBandSize,o=e.layout,s=e.cursor,c=e.tooltipEventType,l=e.chartName,u=t,d=n,f=r;if(!s||!u||l!==`ScatterChart`&&c!==`axis`)return null;var p,m,h;if(l===`ScatterChart`)p=u,m=lB,h=UH.cursorLine;else if(l===`BarChart`)p=uB(o,u,i,a),m=SV,h=UH.cursorRectangle;else if(o===`radial`&&FP(u)){var g=LV(u),_=g.cx,v=g.cy,b=g.radius;p={cx:_,cy:v,startAngle:g.startAngle,endAngle:g.endAngle,innerRadius:b,outerRadius:b},m=QV,h=UH.cursorLine}else p={points:$V(o,u,i)},m=Qz,h=UH.cursorLine;var x=typeof s==`object`&&`className`in s?s.className:void 0,S=e1(e1(e1(e1({stroke:`#ccc`,pointerEvents:`none`},i),p),BM(s)),{},{payload:d,payloadIndex:f,className:wn(`recharts-tooltip-cursor`,x)});return y.createElement(Z$,{zIndex:e.zIndex??h},y.createElement(i1,{cursor:s,cursorComp:m,cursorProps:S}))}function o1(e){var t=s$(),n=VR(),r=GR(),i=_$();return t==null||n==null||r==null||i==null?null:y.createElement(a1,Q$({},e,{offset:n,layout:r,tooltipAxisBandSize:t,chartName:i}))}var s1=(0,y.createContext)(null),c1=()=>(0,y.useContext)(s1),l1=u(s(((e,t)=>{var n=Object.prototype.hasOwnProperty,r=`~`;function i(){}Object.create&&(i.prototype=Object.create(null),new i().__proto__||(r=!1));function a(e,t,n){this.fn=e,this.context=t,this.once=n||!1}function o(e,t,n,i,o){if(typeof n!=`function`)throw TypeError(`The listener must be a function`);var s=new a(n,i||e,o),c=r?r+t:t;return e._events[c]?e._events[c].fn?e._events[c]=[e._events[c],s]:e._events[c].push(s):(e._events[c]=s,e._eventsCount++),e}function s(e,t){--e._eventsCount===0?e._events=new i:delete e._events[t]}function c(){this._events=new i,this._eventsCount=0}c.prototype.eventNames=function(){var e=[],t,i;if(this._eventsCount===0)return e;for(i in t=this._events)n.call(t,i)&&e.push(r?i.slice(1):i);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(t)):e},c.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var i=0,a=n.length,o=Array(a);i<a;i++)o[i]=n[i].fn;return o},c.prototype.listenerCount=function(e){var t=r?r+e:e,n=this._events[t];return n?n.fn?1:n.length:0},c.prototype.emit=function(e,t,n,i,a,o){var s=r?r+e:e;if(!this._events[s])return!1;var c=this._events[s],l=arguments.length,u,d;if(c.fn){switch(c.once&&this.removeListener(e,c.fn,void 0,!0),l){case 1:return c.fn.call(c.context),!0;case 2:return c.fn.call(c.context,t),!0;case 3:return c.fn.call(c.context,t,n),!0;case 4:return c.fn.call(c.context,t,n,i),!0;case 5:return c.fn.call(c.context,t,n,i,a),!0;case 6:return c.fn.call(c.context,t,n,i,a,o),!0}for(d=1,u=Array(l-1);d<l;d++)u[d-1]=arguments[d];c.fn.apply(c.context,u)}else{var f=c.length,p;for(d=0;d<f;d++)switch(c[d].once&&this.removeListener(e,c[d].fn,void 0,!0),l){case 1:c[d].fn.call(c[d].context);break;case 2:c[d].fn.call(c[d].context,t);break;case 3:c[d].fn.call(c[d].context,t,n);break;case 4:c[d].fn.call(c[d].context,t,n,i);break;default:if(!u)for(p=1,u=Array(l-1);p<l;p++)u[p-1]=arguments[p];c[d].fn.apply(c[d].context,u)}}return!0},c.prototype.on=function(e,t,n){return o(this,e,t,n,!1)},c.prototype.once=function(e,t,n){return o(this,e,t,n,!0)},c.prototype.removeListener=function(e,t,n,i){var a=r?r+e:e;if(!this._events[a])return this;if(!t)return s(this,a),this;var o=this._events[a];if(o.fn)o.fn!==t||i&&!o.once||n&&o.context!==n||s(this,a);else{for(var c=0,l=[],u=o.length;c<u;c++)(o[c].fn!==t||i&&!o[c].once||n&&o[c].context!==n)&&l.push(o[c]);l.length?this._events[a]=l.length===1?l[0]:l:s(this,a)}return this},c.prototype.removeAllListeners=function(e){var t;return e?(t=r?r+e:e,this._events[t]&&s(this,t)):(this._events=new i,this._eventsCount=0),this},c.prototype.off=c.prototype.removeListener,c.prototype.addListener=c.prototype.on,c.prefixed=r,c.EventEmitter=c,t!==void 0&&(t.exports=c)}))(),1).default,u1=new l1,d1=`recharts.syncEvent.tooltip`,f1=`recharts.syncEvent.brush`,p1=(e,t)=>{if(t&&Array.isArray(e)){var n=Number.parseInt(t,10);if(!pN(n))return e[n]}},m1=OL({name:`options`,initialState:{chartName:``,tooltipPayloadSearcher:()=>void 0,eventEmitter:void 0,defaultTooltipEventType:`axis`},reducers:{createEventEmitter:e=>{e.eventEmitter??=Symbol(`rechartsEventEmitter`)}}}),h1=m1.reducer,g1=m1.actions.createEventEmitter;function _1(e){return e.tooltip.syncInteraction}var v1=OL({name:`chartData`,initialState:{chartData:void 0,computedData:void 0,dataStartIndex:0,dataEndIndex:0},reducers:{setChartData(e,t){e.chartData=_L(t.payload),t.payload==null?(e.dataStartIndex=0,e.dataEndIndex=0):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,r=n.startIndex,i=n.endIndex;r!=null&&(e.dataStartIndex=r),i!=null&&(e.dataEndIndex=i)}}}),y1=v1.actions,b1=y1.setChartData,x1=y1.setDataStartEndIndexes;y1.setComputedData;var S1=v1.reducer,C1=[`x`,`y`];function w1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function T1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?w1(Object(n),!0).forEach(function(t){E1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):w1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function E1(e,t,n){return(t=D1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D1(e){var t=O1(e,`string`);return typeof t==`symbol`?t:t+``}function O1(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function k1(e,t){if(e==null)return{};var n,r,i=A1(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function A1(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function j1(){var e=BF(zH),t=BF(VH),n=RF(),r=BF(BH),i=BF(HQ),a=GR(),o=BR(),s=BF(e=>e.rootProps.className);(0,y.useEffect)(()=>{if(e==null)return TN;var s=(s,c,l)=>{if(t!==l&&e===s){if(c.payload.active===!1)n(KZ({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));else if(r===`index`){var u;if(o&&c!=null&&(u=c.payload)!=null&&u.coordinate&&c.payload.sourceViewBox){var d=c.payload.coordinate,f=d.x,p=d.y,m=k1(d,C1),h=c.payload.sourceViewBox,g=h.x,_=h.y,v=h.width,y=h.height,b=T1(T1({},m),{},{x:o.x+(v?(f-g)/v:0)*o.width,y:o.y+(y?(p-_)/y:0)*o.height});n(T1(T1({},c),{},{payload:T1(T1({},c.payload),{},{coordinate:b})}))}else n(c)}else if(i!=null){var x;typeof r==`function`?x=i[r(i,{activeTooltipIndex:c.payload.index==null?void 0:Number(c.payload.index),isTooltipActive:c.payload.active,activeIndex:c.payload.index==null?void 0:Number(c.payload.index),activeLabel:c.payload.label,activeDataKey:c.payload.dataKey,activeCoordinate:c.payload.coordinate})]:r===`value`&&(x=i.find(e=>String(e.value)===c.payload.label));var S=c.payload.coordinate;if(S==null||o==null)n(KZ({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:void 0,graphicalItemId:void 0}));else if(x==null)n(KZ({active:!1,coordinate:void 0,dataKey:void 0,index:null,label:void 0,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:void 0}));else{var C=S.x,w=S.y,T=Math.min(C,o.x+o.width),E=Math.min(w,o.y+o.height),D={x:a===`horizontal`?x.coordinate:T,y:a===`horizontal`?E:x.coordinate};n(KZ({active:c.payload.active,coordinate:D,dataKey:c.payload.dataKey,index:String(x.index),label:c.payload.label,sourceViewBox:c.payload.sourceViewBox,graphicalItemId:c.payload.graphicalItemId}))}}}};return u1.on(d1,s),()=>{u1.off(d1,s)}},[s,n,t,e,r,i,a,o])}function M1(){var e=BF(zH),t=BF(VH),n=RF();(0,y.useEffect)(()=>{if(e==null)return TN;var r=(r,i,a)=>{t!==a&&e===r&&n(x1(i))};return u1.on(f1,r),()=>{u1.off(f1,r)}},[n,t,e])}function N1(){var e=RF();(0,y.useEffect)(()=>{e(g1())},[e]),j1(),M1()}function P1(e,t,n,r,i,a){var o=BF(n=>w$(n,e,t)),s=BF(XQ),c=BF(VH),l=BF(zH),u=BF(BH),d=BF(_1)?.sourceViewBox!=null,f=BR();(0,y.useEffect)(()=>{if(!d&&l!=null&&c!=null){var e=KZ({active:a,coordinate:n,dataKey:o,index:i,label:typeof r==`number`?String(r):r,sourceViewBox:f,graphicalItemId:s});u1.emit(d1,l,e,c)}},[d,n,o,s,i,r,c,l,u,a,f])}function F1(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function I1(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?F1(Object(n),!0).forEach(function(t){L1(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):F1(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function L1(e,t,n){return(t=R1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function R1(e){var t=z1(e,`string`);return typeof t==`symbol`?t:t+``}function z1(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function B1(e,t){return G1(e)||W1(e,t)||H1(e,t)||V1()}function V1(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function H1(e,t){if(e){if(typeof e==`string`)return U1(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)?U1(e,t):void 0}}function U1(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function W1(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function G1(e){if(Array.isArray(e))return e}function K1(e){return e.dataKey}function q1(e,t){return y.isValidElement(e)?y.cloneElement(e,t):typeof e==`function`?y.createElement(e,t):y.createElement(cz,t)}var J1=[],Y1={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 X1(e){var t=WP(e,Y1),n=t.active,r=t.allowEscapeViewBox,i=t.animationDuration,a=t.animationEasing,o=t.content,s=t.filterNull,c=t.isAnimationActive,l=t.offset,u=t.payloadUniqBy,d=t.position,f=t.reverseDirection,p=t.useTranslate3d,m=t.wrapperStyle,h=t.cursor,g=t.shared,_=t.trigger,v=t.defaultIndex,b=t.portal,x=t.axisId,S=RF(),C=typeof v==`number`?String(v):v;(0,y.useEffect)(()=>{S(VZ({shared:g,trigger:_,axisId:x,active:n,defaultIndex:C}))},[S,g,_,x,n,C]);var w=BR(),T=Lz(),E=MZ(g),D=BF(e=>A$(e,E,_,C))??{},O=D.activeIndex,ee=D.isActive,k=BF(e=>k$(e,E,_,C)),te=BF(e=>O$(e,E,_,C)),A=BF(e=>D$(e,E,_,C)),j=k,M=c1(),N=n??ee??!1,ne=B1(Uae([j,N]),2),re=ne[0],ie=ne[1],P=E===`axis`?te:void 0;P1(E,_,A,P,O,N);var ae=b??M;if(ae==null||w==null||E==null)return null;var oe=j??J1;N||(oe=J1),s&&oe.length&&(oe=mae(oe.filter(e=>e.value!=null&&(e.hide!==!0||t.includeHidden)),u,K1));var se=oe.length>0,ce=I1(I1({},t),{},{payload:oe,label:P,active:N,activeIndex:O,coordinate:A,accessibilityLayer:T}),le=y.createElement(Iz,{allowEscapeViewBox:r,animationDuration:i,animationEasing:a,isAnimationActive:c,active:N,coordinate:A,hasPayload:se,offset:l,position:d,reverseDirection:f,useTranslate3d:p,viewBox:w,wrapperStyle:m,lastBoundingBox:re,innerRef:ie,hasPortalFromProps:!!b},q1(o,ce));return y.createElement(y.Fragment,null,(0,xr.createPortal)(le,ae),N&&y.createElement(o1,{cursor:h,tooltipEventType:E,coordinate:A,payload:oe,index:O}))}function Z1(e,t,n){return(t=Q1(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Q1(e){var t=$1(e,`string`);return typeof t==`symbol`?t:t+``}function $1(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var e0=class{constructor(e){Z1(this,`cache`,new Map),this.maxSize=e}get(e){var t=this.cache.get(e);return t!==void 0&&(this.cache.delete(e),this.cache.set(e,t)),t}set(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxSize){var n=this.cache.keys().next().value;n!=null&&this.cache.delete(n)}this.cache.set(e,t)}clear(){this.cache.clear()}size(){return this.cache.size}};function t0(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function n0(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?t0(Object(n),!0).forEach(function(t){r0(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):t0(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function r0(e,t,n){return(t=i0(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i0(e){var t=a0(e,`string`);return typeof t==`symbol`?t:t+``}function a0(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var o0=n0({},{cacheSize:2e3,enableCache:!0}),s0=new e0(o0.cacheSize),c0={position:`absolute`,top:`-20000px`,left:0,padding:0,margin:0,border:`none`,whiteSpace:`pre`},l0=`recharts_measurement_span`;function u0(e,t){return`${e}|${t.fontSize||``}|${t.fontFamily||``}|${t.fontWeight||``}|${t.fontStyle||``}|${t.letterSpacing||``}|${t.textTransform||``}`}var d0=(e,t)=>{try{var n=document.getElementById(l0);n||(n=document.createElement(`span`),n.setAttribute(`id`,l0),n.setAttribute(`aria-hidden`,`true`),document.body.appendChild(n)),Object.assign(n.style,c0,t),n.textContent=`${e}`;var r=n.getBoundingClientRect();return{width:r.width,height:r.height}}catch{return{width:0,height:0}}},f0=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(e==null||hz.isSsr)return{width:0,height:0};if(!o0.enableCache)return d0(e,t);var n=u0(e,t),r=s0.get(n);if(r)return r;var i=d0(e,t);return s0.set(n,i),i},p0;function m0(e,t){return y0(e)||v0(e,t)||g0(e,t)||h0()}function h0(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function g0(e,t){if(e){if(typeof e==`string`)return _0(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)?_0(e,t):void 0}}function _0(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function v0(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function y0(e){if(Array.isArray(e))return e}function b0(e,t,n){return(t=x0(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function x0(e){var t=S0(e,`string`);return typeof t==`symbol`?t:t+``}function S0(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var C0=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([*/])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,w0=/(-?\d+(?:\.\d+)?[a-zA-Z%]*)([+-])(-?\d+(?:\.\d+)?[a-zA-Z%]*)/,T0=/^(px|cm|vh|vw|em|rem|%|mm|in|pt|pc|ex|ch|vmin|vmax|Q)$/,E0=/(-?\d+(?:\.\d+)?)([a-zA-Z%]+)?/,D0={cm:96/2.54,mm:96/25.4,pt:96/72,pc:16,in:96,Q:96/101.6,px:1},O0=[`cm`,`mm`,`pt`,`pc`,`in`,`Q`,`px`];function k0(e){return O0.includes(e)}var A0=`NaN`;function j0(e,t){return e*D0[t]}var M0=class e{static parse(t){var n=m0(E0.exec(t)??[],3),r=n[1],i=n[2];return r==null?e.NaN:new e(parseFloat(r),i??``)}constructor(e,t){this.num=e,this.unit=t,this.num=e,this.unit=t,pN(e)&&(this.unit=``),t!==``&&!T0.test(t)&&(this.num=NaN,this.unit=``),k0(t)&&(this.num=j0(e,t),this.unit=`px`)}add(t){return this.unit===t.unit?new e(this.num+t.num,this.unit):new e(NaN,``)}subtract(t){return this.unit===t.unit?new e(this.num-t.num,this.unit):new e(NaN,``)}multiply(t){return this.unit!==``&&t.unit!==``&&this.unit!==t.unit?new e(NaN,``):new e(this.num*t.num,this.unit||t.unit)}divide(t){return this.unit!==``&&t.unit!==``&&this.unit!==t.unit?new e(NaN,``):new e(this.num/t.num,this.unit||t.unit)}toString(){return`${this.num}${this.unit}`}isNaN(){return pN(this.num)}};p0=M0,b0(M0,`NaN`,new p0(NaN,``));function N0(e){if(e==null||e.includes(A0))return A0;for(var t=e;t.includes(`*`)||t.includes(`/`);){var n=m0(C0.exec(t)??[],4),r=n[1],i=n[2],a=n[3],o=M0.parse(r??``),s=M0.parse(a??``),c=i===`*`?o.multiply(s):o.divide(s);if(c.isNaN())return A0;t=t.replace(C0,c.toString())}for(;t.includes(`+`)||/.-\d+(?:\.\d+)?/.test(t);){var l=m0(w0.exec(t)??[],4),u=l[1],d=l[2],f=l[3],p=M0.parse(u??``),m=M0.parse(f??``),h=d===`+`?p.add(m):p.subtract(m);if(h.isNaN())return A0;t=t.replace(w0,h.toString())}return t}var P0=/\(([^()]*)\)/;function F0(e){for(var t=e,n;(n=P0.exec(t))!=null;){var r=m0(n,2)[1];t=t.replace(P0,N0(r))}return t}function I0(e){var t=e.replace(/\s+/g,``);return t=F0(t),t=N0(t),t}function L0(e){try{return I0(e)}catch{return A0}}function R0(e){var t=L0(e.slice(5,-1));return t===A0?``:t}var z0=[`x`,`y`,`lineHeight`,`capHeight`,`fill`,`scaleToFit`,`textAnchor`,`verticalAnchor`],B0=[`dx`,`dy`,`angle`,`className`,`breakAll`];function V0(){return V0=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},V0.apply(null,arguments)}function H0(e,t){if(e==null)return{};var n,r,i=U0(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function U0(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function W0(e,t){return fce(e)||dce(e,t)||uce(e,t)||G0()}function G0(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function uce(e,t){if(e){if(typeof e==`string`)return K0(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)?K0(e,t):void 0}}function K0(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function dce(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function fce(e){if(Array.isArray(e))return e}var q0=/[ \f\n\r\t\v\u2028\u2029]+/,J0=e=>{var t=e.children,n=e.breakAll,r=e.style;try{var i=[];return SN(t)||(i=n?t.toString().split(``):t.toString().split(q0)),{wordsWithComputedWidth:i.map(e=>({word:e,width:f0(e,r).width})),spaceWidth:n?0:f0(`\xA0`,r).width}}catch{return null}};function Y0(e){return e===`start`||e===`middle`||e===`end`||e===`inherit`}function pce(e){return SN(e)||typeof e==`string`||typeof e==`number`||typeof e==`boolean`}var X0=(e,t,n,r)=>e.reduce((e,i)=>{var a=i.word,o=i.width,s=e[e.length-1];if(s&&o!=null&&(t==null||r||s.width+o+n<Number(t)))s.words.push(a),s.width+=o+n;else{var c={words:[a],width:o};e.push(c)}return e},[]),Z0=e=>e.reduce((e,t)=>e.width>t.width?e:t),mce=`…`,Q0=(e,t,n,r,i,a,o,s)=>{var c=J0({breakAll:n,style:r,children:e.slice(0,t)+mce});if(!c)return[!1,[]];var l=X0(c.wordsWithComputedWidth,a,o,s);return[l.length>i||Z0(l).width>Number(a),l]},hce=(e,t,n,r,i)=>{var a=e.maxLines,o=e.children,s=e.style,c=e.breakAll,l=Q(a),u=String(o),d=X0(t,r,n,i);if(!l||i||!(d.length>a||Z0(d).width>Number(r)))return d;for(var f=0,p=u.length-1,m=0,h;f<=p&&m<=u.length-1;){var g=Math.floor((f+p)/2),_=W0(Q0(u,g-1,c,s,a,r,n,i),2),v=_[0],y=_[1],b=W0(Q0(u,g,c,s,a,r,n,i),1)[0];if(!v&&!b&&(f=g+1),v&&b&&(p=g-1),!v&&b){h=y;break}m++}return h||d},$0=e=>[{words:SN(e)?[]:e.toString().split(q0),width:void 0}],gce=e=>{var t=e.width,n=e.scaleToFit,r=e.children,i=e.style,a=e.breakAll,o=e.maxLines;if((t||n)&&!hz.isSsr){var s,c,l=J0({breakAll:a,children:r,style:i});if(l){var u=l.wordsWithComputedWidth,d=l.spaceWidth;s=u,c=d}else return $0(r);return hce({breakAll:a,children:r,maxLines:o,style:i},s,c,t,!!n)}return $0(r)},e2=`#808080`,_ce={angle:0,breakAll:!1,capHeight:`0.71em`,fill:e2,lineHeight:`1em`,scaleToFit:!1,textAnchor:`start`,verticalAnchor:`end`,x:0,y:0},t2=(0,y.forwardRef)((e,t)=>{var n=WP(e,_ce),r=n.x,i=n.y,a=n.lineHeight,o=n.capHeight,s=n.fill,c=n.scaleToFit,l=n.textAnchor,u=n.verticalAnchor,d=H0(n,z0),f=(0,y.useMemo)(()=>gce({breakAll:d.breakAll,children:d.children,maxLines:d.maxLines,scaleToFit:c,style:d.style,width:d.width}),[d.breakAll,d.children,d.maxLines,c,d.style,d.width]),p=d.dx,m=d.dy,h=d.angle,g=d.className,_=d.breakAll,v=H0(d,B0);if(!hN(r)||!hN(i)||f.length===0)return null;var b=Number(r)+(Q(p)?p:0),x=Number(i)+(Q(m)?m:0);if(!iR(b)||!iR(x))return null;var S;switch(u){case`start`:S=R0(`calc(${o})`);break;case`middle`:S=R0(`calc(${(f.length-1)/2} * -${a} + (${o} / 2))`);break;default:S=R0(`calc(${f.length-1} * -${a})`)}var C=[],w=f[0];if(c&&w!=null){var T=w.width,E=d.width;C.push(`scale(${Q(E)&&Q(T)?E/T:1})`)}return h&&C.push(`rotate(${h}, ${b}, ${x})`),C.length&&(v.transform=C.join(` `)),y.createElement(`text`,V0({},VM(v),{ref:t,x:b,y:x,className:wn(`recharts-text`,g),textAnchor:l,fill:s.includes(`url`)?e2:s}),f.map((e,t)=>{var n=e.words.join(_?``:` `);return y.createElement(`tspan`,{x:b,dy:t===0?S:a,key:`${n}-${t}`},n)}))});t2.displayName=`Text`;var vce=[`labelRef`],yce=[`content`];function n2(e,t){if(e==null)return{};var n,r,i=bce(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function bce(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function r2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function i2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?r2(Object(n),!0).forEach(function(t){xce(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):r2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function xce(e,t,n){return(t=Sce(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Sce(e){var t=Cce(e,`string`);return typeof t==`symbol`?t:t+``}function Cce(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function a2(){return a2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a2.apply(null,arguments)}var o2=(0,y.createContext)(null),wce=e=>{var t=e.x,n=e.y,r=e.upperWidth,i=e.lowerWidth,a=e.width,o=e.height,s=e.children,c=(0,y.useMemo)(()=>({x:t,y:n,upperWidth:r,lowerWidth:i,width:a,height:o}),[t,n,r,i,a,o]);return y.createElement(o2.Provider,{value:c},s)},s2=()=>{var e=(0,y.useContext)(o2),t=BR();return e||(t?EN(t):void 0)},Tce=(0,y.createContext)(null),Ece=()=>{var e=(0,y.useContext)(Tce),t=BF(lU);return e||t},Dce=e=>{var t=e.value,n=e.formatter,r=SN(e.children)?t:e.children;return typeof n==`function`?n(r):r},c2=e=>e!=null&&typeof e==`function`,Oce=(e,t)=>fN(t-e)*Math.min(Math.abs(t-e),360),kce=(e,t,n,r,i)=>{var a=e.offset,o=e.className,s=i.cx,c=i.cy,l=i.innerRadius,u=i.outerRadius,d=i.startAngle,f=i.endAngle,p=i.clockWise,m=(l+u)/2,h=Oce(d,f),g=h>=0?1:-1,_,v;switch(t){case`insideStart`:_=d+g*a,v=p;break;case`insideEnd`:_=f-g*a,v=!p;break;case`end`:_=f+g*a,v=p;break;default:throw Error(`Unsupported position ${t}`)}v=h<=0?v:!v;var b=AV(s,c,m,_),x=AV(s,c,m,_+(v?1:-1)*359),S=`M${b.x},${b.y}
A${m},${m},0,1,${+!v},
${x.x},${x.y}`,C=SN(e.id)?_N(`recharts-radial-line-`):e.id;return y.createElement(`text`,a2({},r,{dominantBaseline:`central`,className:wn(`recharts-radial-bar-label`,o)}),y.createElement(`defs`,null,y.createElement(`path`,{id:C,d:S})),y.createElement(`textPath`,{xlinkHref:`#${C}`},n))},Ace=(e,t,n)=>{var r=e.cx,i=e.cy,a=e.innerRadius,o=e.outerRadius,s=(e.startAngle+e.endAngle)/2;if(n===`outside`){var c=AV(r,i,o+t,s),l=c.x;return{x:l,y:c.y,textAnchor:l>=r?`start`:`end`,verticalAnchor:`middle`}}if(n===`center`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`middle`};if(n===`centerTop`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`start`};if(n===`centerBottom`)return{x:r,y:i,textAnchor:`middle`,verticalAnchor:`end`};var u=AV(r,i,(a+o)/2,s);return{x:u.x,y:u.y,textAnchor:`middle`,verticalAnchor:`middle`}},l2=e=>e!=null&&`cx`in e&&Q(e.cx),jce={angle:0,offset:5,zIndex:UH.label,position:`middle`,textBreakAll:!1};function Mce(e){if(!l2(e))return e;var t=e.cx,n=e.cy,r=e.outerRadius,i=r*2;return{x:t-r,y:n-r,width:i,upperWidth:i,lowerWidth:i,height:i}}function u2(e){var t=WP(e,jce),n=t.viewBox,r=t.parentViewBox,i=t.position,a=t.value,o=t.children,s=t.content,c=t.className,l=c===void 0?``:c,u=t.textBreakAll,d=t.labelRef,f=Ece(),p=s2(),m=n==null?i===`center`?p:f??p:l2(n)?n:EN(n),h,g,_=Mce(m);if(!m||SN(a)&&SN(o)&&!(0,y.isValidElement)(s)&&typeof s!=`function`)return null;var v=l2(m)&&(i===`insideStart`||i===`insideEnd`||i===`end`);if(l2(m))v||(g=Ace(m,t.offset,t.position));else if(_){var b=MN({viewBox:_,position:i,offset:t.offset,parentViewBox:l2(r)?void 0:r,clamp:!0});g=i2(i2({x:b.x,y:b.y,textAnchor:b.horizontalAnchor,verticalAnchor:b.verticalAnchor},b.width===void 0?{}:{width:b.width}),b.height===void 0?{}:{height:b.height})}var x=i2(i2(i2(i2({},g?.x===void 0?{}:{x:g.x}),g?.y===void 0?{}:{y:g.y}),t),{},{viewBox:m});if((0,y.isValidElement)(s)){x.labelRef;var S=n2(x,vce);return(0,y.cloneElement)(s,S)}if(typeof s==`function`){x.content;var C=n2(x,yce);if(h=(0,y.createElement)(s,C),(0,y.isValidElement)(h))return h}else h=Dce(t);var w=VM(t);return v&&l2(m)?kce(t,i,h,w,m):g==null?null:y.createElement(Z$,{zIndex:t.zIndex},y.createElement(t2,a2({ref:d,className:wn(`recharts-label`,l)},w,g,{textAnchor:Y0(w.textAnchor)?w.textAnchor:g.textAnchor,breakAll:u}),h))}u2.displayName=`Label`;var Nce=(e,t,n)=>{if(!e)return null;var r={viewBox:t,labelRef:n};return e===!0?y.createElement(u2,a2({key:`label-implicit`},r)):hN(e)?y.createElement(u2,a2({key:`label-implicit`,value:e},r)):(0,y.isValidElement)(e)?e.type===u2?(0,y.cloneElement)(e,i2({key:`label-implicit`},r)):y.createElement(u2,a2({key:`label-implicit`,content:e},r)):c2(e)?y.createElement(u2,a2({key:`label-implicit`,content:e},r)):e&&typeof e==`object`?y.createElement(u2,a2({},e,{key:`label-implicit`},r)):null};function Pce(e){var t=e.label,n=e.labelRef;return Nce(t,s2(),n)||null}var Fce=[`valueAccessor`],Ice=[`dataKey`,`clockWise`,`id`,`textBreakAll`,`zIndex`];function d2(){return d2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},d2.apply(null,arguments)}function f2(e,t){if(e==null)return{};var n,r,i=Lce(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Lce(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var Rce=e=>{var t=Array.isArray(e.value)?e.value[e.value.length-1]:e.value;if(pce(t))return t},p2=(0,y.createContext)(void 0),zce=p2.Provider,m2=(0,y.createContext)(void 0);m2.Provider;function Bce(){return(0,y.useContext)(p2)}function Vce(){return(0,y.useContext)(m2)}function h2(e){var t=e.valueAccessor,n=t===void 0?Rce:t,r=f2(e,Fce),i=r.dataKey;r.clockWise;var a=r.id,o=r.textBreakAll,s=r.zIndex,c=f2(r,Ice),l=Bce(),u=Vce(),d=l||u;return!d||!d.length?null:y.createElement(Z$,{zIndex:s??UH.label},y.createElement(QM,{className:`recharts-label-list`},d.map((e,t)=>{var s=SN(i)?n(e,t):cR(e.payload,i),l=SN(a)?{}:{id:`${a}-${t}`};return y.createElement(u2,d2({key:`label-${t}`},VM(e),c,l,{fill:r.fill??e.fill,parentViewBox:e.parentViewBox,value:s,textBreakAll:o,viewBox:e.viewBox,index:t,zIndex:0}))})))}h2.displayName=`LabelList`;function Hce(e){var t=e.label;return t?t===!0?y.createElement(h2,{key:`labelList-implicit`}):y.isValidElement(t)||c2(t)?y.createElement(h2,{key:`labelList-implicit`,content:t}):typeof t==`object`?y.createElement(h2,d2({key:`labelList-implicit`},t,{type:String(t.type)})):null:null}function g2(){return g2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},g2.apply(null,arguments)}var _2=e=>{var t=e.cx,n=e.cy,r=e.r,i=e.className,a=wn(`recharts-dot`,i);return Q(t)&&Q(n)&&Q(r)?y.createElement(`circle`,g2({},zM(e),IP(e),{className:a,cx:t,cy:n,r})):null},v2=OL({name:`polarAxis`,initialState:{radiusAxis:{},angleAxis:{}},reducers:{addRadiusAxis(e,t){e.radiusAxis[t.payload.id]=_L(t.payload)},removeRadiusAxis(e,t){delete e.radiusAxis[t.payload.id]},addAngleAxis(e,t){e.angleAxis[t.payload.id]=_L(t.payload)},removeAngleAxis(e,t){delete e.angleAxis[t.payload.id]}}}),y2=v2.actions;y2.addRadiusAxis,y2.removeRadiusAxis,y2.addAngleAxis,y2.removeAngleAxis;var Uce=v2.reducer;function Wce(e){return e&&typeof e==`object`&&`className`in e&&typeof e.className==`string`?e.className:``}var Gce=s((e=>{typeof Symbol==`function`&&Symbol.for}));s(((e,t)=>{t.exports=Gce()}))();var b2=e=>e&&typeof e==`object`&&`clipDot`in e?!!e.clipDot:!0;function x2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function S2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?x2(Object(n),!0).forEach(function(t){Kce(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):x2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Kce(e,t,n){return(t=qce(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function qce(e){var t=Jce(e,`string`);return typeof t==`symbol`?t:t+``}function Jce(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function C2(e,t){return S2(S2({},t),e)}function Yce(e){return(0,y.isValidElement)(e)?e.props:e}function Xce(e,t){return(0,y.cloneElement)(e,C2(Yce(e),t))}function Zce(e){if(`index`in e){var t=e.index;return typeof t==`number`||typeof t==`string`?t:void 0}}function Qce(e){return`isActive`in e&&e.isActive===!0}function $ce(e){var t=e.option,n=e.DefaultShape,r=e.shapeProps,i=e.activeClassName,a=i===void 0?`recharts-active-shape`:i,o=e.inActiveClassName,s=o===void 0?`recharts-shape`:o,c=Zce(r),l=(0,y.isValidElement)(t)?Xce(t,r):t===n?y.createElement(n,r):typeof t==`function`?t(r,c):typeof t==`object`?y.createElement(n,C2(t,r)):y.createElement(n,r);return Qce(r)?y.createElement(QM,{className:a},l):y.createElement(QM,{className:s},l)}function ele(e){var t=e.tooltipEntrySettings,n=RF(),r=DR(),i=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{r||(i.current===null?n(RZ(t)):i.current!==t&&n(zZ({prev:i.current,next:t})),i.current=t)},[t,n,r]),(0,y.useLayoutEffect)(()=>()=>{i.current&&=(n(BZ(i.current)),null)},[n]),null}function w2(e){var t=e.legendPayload,n=RF(),r=DR(),i=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{r||(i.current===null?n(Lse(t)):i.current!==t&&n(Rse({prev:i.current,next:t})),i.current=t)},[n,r,t]),(0,y.useLayoutEffect)(()=>()=>{i.current&&=(n(zse(i.current)),null)},[n]),null}function tle(e,t){return ale(e)||ile(e,t)||rle(e,t)||nle()}function nle(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function rle(e,t){if(e){if(typeof e==`string`)return T2(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)?T2(e,t):void 0}}function T2(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ile(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function ale(e){if(Array.isArray(e))return e}var E2=`index`;function D2(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:[],r=[];for(var i of n)r.push({status:`removed`,prev:i});for(var a=0;a<t.length;a++){var o=e[a],s=t[a];o==null?r.push({status:`added`,next:s}):r.push({status:`matched`,prev:o,next:s})}return r}function ole(e,t){var n=e.length/t.length;return D2(t.map((t,r)=>e[Math.floor(r*n)]),t)}function sle(e,t){return D2(t.map((t,n)=>e[n]),t)}function cle(e,t){for(var n=new Map,r=0;r<e.length;r++){var i=e[r];if(i!=null){var a=t(i,r);a!=null&&!n.has(a)&&n.set(a,i)}}return n}function lle(e,t,n){var r=cle(e,n),i=new Set,a=t.map((e,t)=>{var a=n(e,t);if(a!=null){var o=r.get(a);if(o!==void 0)return i.add(a),o}}),o=[];for(var s of r){var c=tle(s,2),l=c[0],u=c[1];i.has(l)||o.push(u)}return D2(a,t,o)}function O2(e,t,n){return t==null?null:e==null?t.map(e=>({status:`added`,next:e})):n===`index`?ole(e,t):n===`append`?sle(e,t):lle(e,t,n)}function k2(e,t){var n=(0,y.useRef)(e),r=(0,y.useRef)(t.current),i=(0,y.useRef)(!0);n.current!==e&&(n.current=e,r.current=t.current,i.current=!1);var a=(0,y.useCallback)(function(e,n){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;n===0?i.current=!0:(n===1&&(r.current=e),n>0&&i.current&&a&&(t.current=e))},[t]);return{startValue:r.current,syncStepValue:a}}function ule(e,t){return mle(e)||ple(e,t)||fle(e,t)||dle()}function dle(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function fle(e,t){if(e){if(typeof e==`string`)return A2(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)?A2(e,t):void 0}}function A2(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ple(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function mle(e){if(Array.isArray(e))return e}function hle(e,t){var n=ule((0,y.useState)(!1),2),r=n[0],i=n[1];return{isAnimating:r,handleAnimationStart:(0,y.useCallback)(()=>{typeof e==`function`&&e(),i(!0)},[e]),handleAnimationEnd:(0,y.useCallback)(()=>{typeof t==`function`&&t(),i(!1)},[t])}}function gle(e){var t=e.animationInput,n=e.animationIdPrefix,r=e.items,i=e.previousItemsRef,a=e.isAnimationActive,o=e.animationBegin,s=e.animationDuration,c=e.animationEasing,l=e.onAnimationStart,u=e.onAnimationEnd,d=e.animationInterpolateFn,f=e.animationMatchBy,p=e.shouldUpdatePreviousRef,m=e.children,h=e.layout,g=WB(t,n),_=k2(g,i),v=_.startValue??null,b=O2(v,r,f??E2);return y.createElement(UB,{animationId:g,begin:o,duration:s,isActive:a,easing:c,onAnimationEnd:u,onAnimationStart:l,key:g},e=>{var t=v==null,n=r==null?r:d(b,e,h),i=p?p(e):e>0;return _.syncStepValue(n,e,i),n==null?null:m(n,e,t)})}function _le(e,t){return xle(e)||ble(e,t)||yle(e,t)||vle()}function vle(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function yle(e,t){if(e){if(typeof e==`string`)return j2(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)?j2(e,t):void 0}}function j2(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function ble(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function xle(e){if(Array.isArray(e))return e}var M2=y.useId??(()=>_le(y.useState(()=>_N(`uid-`)),1)[0]);function Sle(e,t){var n=M2();return t||(e?`${e}-${n}`:n)}var Cle=(0,y.createContext)(void 0),wle=e=>{var t=e.id,n=e.type,r=e.children,i=Sle(`recharts-${n}`,t);return y.createElement(Cle.Provider,{value:i},r(i))},N2=OL({name:`graphicalItems`,initialState:{cartesianItems:[],polarItems:[]},reducers:{addCartesianGraphicalItem:{reducer(e,t){e.cartesianItems.push(_L(t.payload))},prepare:wL()},replaceCartesianGraphicalItem:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next,a=mL(e).cartesianItems.indexOf(_L(r));a>-1&&(e.cartesianItems[a]=_L(i))},prepare:wL()},removeCartesianGraphicalItem:{reducer(e,t){var n=mL(e).cartesianItems.indexOf(_L(t.payload));n>-1&&e.cartesianItems.splice(n,1)},prepare:wL()},addPolarGraphicalItem:{reducer(e,t){e.polarItems.push(_L(t.payload))},prepare:wL()},removePolarGraphicalItem:{reducer(e,t){var n=mL(e).polarItems.indexOf(_L(t.payload));n>-1&&e.polarItems.splice(n,1)},prepare:wL()},replacePolarGraphicalItem:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next,a=mL(e).polarItems.indexOf(_L(r));a>-1&&(e.polarItems[a]=_L(i))},prepare:wL()}}}),P2=N2.actions,Tle=P2.addCartesianGraphicalItem,Ele=P2.replaceCartesianGraphicalItem,Dle=P2.removeCartesianGraphicalItem;P2.addPolarGraphicalItem,P2.removePolarGraphicalItem,P2.replacePolarGraphicalItem;var Ole=N2.reducer,kle=(0,y.memo)(e=>{var t=RF(),n=(0,y.useRef)(null);return(0,y.useLayoutEffect)(()=>{n.current===null?t(Tle(e)):n.current!==e&&t(Ele({prev:n.current,next:e})),n.current=e},[t,e]),(0,y.useLayoutEffect)(()=>()=>{n.current&&=(t(Dle(n.current)),null)},[t]),null}),Ale=[`points`];function F2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function I2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?F2(Object(n),!0).forEach(function(t){jle(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):F2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function jle(e,t,n){return(t=Mle(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Mle(e){var t=Nle(e,`string`);return typeof t==`symbol`?t:t+``}function Nle(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function L2(){return L2=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},L2.apply(null,arguments)}function Ple(e,t){if(e==null)return{};var n,r,i=Fle(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Fle(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Ile(e){var t=e.option,n=e.dotProps,r=e.className;if((0,y.isValidElement)(t))return(0,y.cloneElement)(t,n);if(typeof t==`function`)return t(n);var i=wn(r,typeof t==`boolean`?``:t.className),a=n??{};a.points;var o=Ple(a,Ale);return y.createElement(_2,L2({},o,{className:i}))}function Lle(e,t){return e==null?!1:t?!0:e.length===1}function Rle(e){var t=e.points,n=e.dot,r=e.className,i=e.dotClassName,a=e.dataKey,o=e.baseProps,s=e.needClip,c=e.clipPathId,l=e.zIndex,u=l===void 0?UH.scatter:l;if(!Lle(t,n))return null;var d=b2(n),f=HM(n),p=t.map((e,r)=>{var s=I2(I2(I2({r:3},o),f),{},{index:r,cx:e.x??void 0,cy:e.y??void 0,dataKey:a,value:e.value,payload:e.payload,points:t});return y.createElement(Ile,{key:`dot-${r}`,option:n,dotProps:s,className:i})}),m={};return s&&c!=null&&(m.clipPath=`url(#clipPath-${d?``:`dots-`}${c})`),y.createElement(Z$,{zIndex:u},y.createElement(QM,L2({className:r},m),p))}function R2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function z2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?R2(Object(n),!0).forEach(function(t){zle(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):R2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function zle(e,t,n){return(t=Ble(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ble(e){var t=Vle(e,`string`);return typeof t==`symbol`?t:t+``}function Vle(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var B2=OL({name:`cartesianAxis`,initialState:{xAxis:{},yAxis:{},zAxis:{}},reducers:{addXAxis:{reducer(e,t){e.xAxis[t.payload.id]=_L(t.payload)},prepare:wL()},replaceXAxis:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next;e.xAxis[r.id]!==void 0&&(r.id!==i.id&&delete e.xAxis[r.id],e.xAxis[i.id]=_L(i))},prepare:wL()},removeXAxis:{reducer(e,t){delete e.xAxis[t.payload.id]},prepare:wL()},addYAxis:{reducer(e,t){e.yAxis[t.payload.id]=_L(t.payload)},prepare:wL()},replaceYAxis:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next;e.yAxis[r.id]!==void 0&&(r.id!==i.id&&delete e.yAxis[r.id],e.yAxis[i.id]=_L(i))},prepare:wL()},removeYAxis:{reducer(e,t){delete e.yAxis[t.payload.id]},prepare:wL()},addZAxis:{reducer(e,t){e.zAxis[t.payload.id]=_L(t.payload)},prepare:wL()},replaceZAxis:{reducer(e,t){var n=t.payload,r=n.prev,i=n.next;e.zAxis[r.id]!==void 0&&(r.id!==i.id&&delete e.zAxis[r.id],e.zAxis[i.id]=_L(i))},prepare:wL()},removeZAxis:{reducer(e,t){delete e.zAxis[t.payload.id]},prepare:wL()},updateYAxisWidth(e,t){var n=t.payload,r=n.id,i=n.width,a=e.yAxis[r];if(a){var o=a.widthHistory||[];if(o.length===3&&o[0]===o[2]&&i===o[1]&&i!==a.width&&Math.abs(i-(o[0]??0))<=1)return;var s=[...o,i].slice(-3);e.yAxis[r]=z2(z2({},a),{},{width:i,widthHistory:s})}},updateXAxisHeight(e,t){var n=t.payload,r=n.id,i=n.height,a=e.xAxis[r];if(a){var o=a.heightHistory||[];if(o.length===3&&o[0]===o[2]&&i===o[1]&&i!==a.height&&Math.abs(i-(o[0]??0))<=1)return;var s=[...o,i].slice(-3);e.xAxis[r]=z2(z2({},a),{},{height:i,heightHistory:s})}}}}),V2=B2.actions,Hle=V2.addXAxis,Ule=V2.replaceXAxis,Wle=V2.removeXAxis,Gle=V2.addYAxis,Kle=V2.replaceYAxis,qle=V2.removeYAxis;V2.addZAxis,V2.replaceZAxis,V2.removeZAxis;var Jle=V2.updateYAxisWidth,Yle=V2.updateXAxisHeight,Xle=B2.reducer,Zle=$([$([TR],e=>({top:e.top,bottom:e.bottom,left:e.left,right:e.right})),vR,yR],(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)}}),H2=()=>BF(Zle),Qle=()=>BF(e$);function U2(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function W2(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?U2(Object(n),!0).forEach(function(t){$le(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):U2(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function $le(e,t,n){return(t=eue(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function eue(e){var t=tue(e,`string`);return typeof t==`symbol`?t:t+``}function tue(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var nue=e=>{var t=e.point,n=e.childIndex,r=e.mainColor,i=e.activeDot,a=e.dataKey,o=e.clipPath;if(i===!1||t.x==null||t.y==null)return null;var s=W2(W2(W2({},{index:n,dataKey:a,cx:t.x,cy:t.y,r:4,fill:r??`none`,strokeWidth:2,stroke:`#fff`,payload:t.payload,value:t.value}),BM(i)),IP(i)),c=(0,y.isValidElement)(i)?(0,y.cloneElement)(i,s):typeof i==`function`?i(s):y.createElement(_2,s);return y.createElement(QM,{className:`recharts-active-dot`,clipPath:o},c)};function G2(e){var t=e.points,n=e.mainColor,r=e.activeDot,i=e.itemDataKey,a=e.clipPath,o=e.zIndex,s=o===void 0?UH.activeDot:o,c=BF(qQ),l=Qle();if(t==null||l==null)return null;var u=t.find(e=>l.includes(e.payload));return SN(u)?null:y.createElement(Z$,{zIndex:s},y.createElement(nue,{point:u,childIndex:Number(c),mainColor:n,dataKey:i,activeDot:r,clipPath:a}))}var rue=e=>{var t=e.chartData,n=RF(),r=DR();return(0,y.useEffect)(()=>r?()=>{}:(n(b1(t)),()=>{n(b1(void 0))}),[t,n,r]),null},K2={x:0,y:0,width:0,height:0,padding:{top:0,right:0,bottom:0,left:0}},q2=OL({name:`brush`,initialState:K2,reducers:{setBrushSettings(e,t){return t.payload==null?K2:t.payload}}});q2.actions.setBrushSettings;var iue=q2.reducer;function aue(e){return(e%180+180)%180}var oue=function(e){var t=e.width,n=e.height,r=aue(arguments.length>1&&arguments[1]!==void 0?arguments[1]:0)*Math.PI/180,i=Math.atan(n/t),a=r>i&&r<Math.PI-i?n/Math.sin(r):t/Math.cos(r);return Math.abs(a)},J2=OL({name:`referenceElements`,initialState:{dots:[],areas:[],lines:[]},reducers:{addDot:(e,t)=>{e.dots.push(t.payload)},removeDot:(e,t)=>{var n=mL(e).dots.findIndex(e=>e===t.payload);n!==-1&&e.dots.splice(n,1)},addArea:(e,t)=>{e.areas.push(t.payload)},removeArea:(e,t)=>{var n=mL(e).areas.findIndex(e=>e===t.payload);n!==-1&&e.areas.splice(n,1)},addLine:(e,t)=>{e.lines.push(_L(t.payload))},removeLine:(e,t)=>{var n=mL(e).lines.findIndex(e=>e===t.payload);n!==-1&&e.lines.splice(n,1)}}}),Y2=J2.actions;Y2.addDot,Y2.removeDot,Y2.addArea,Y2.removeArea,Y2.addLine,Y2.removeLine;var sue=J2.reducer;function cue(e,t){return fue(e)||due(e,t)||uue(e,t)||lue()}function lue(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function uue(e,t){if(e){if(typeof e==`string`)return X2(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)?X2(e,t):void 0}}function X2(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function due(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function fue(e){if(Array.isArray(e))return e}var pue=(0,y.createContext)(void 0),mue=e=>{var t=e.children,n=cue((0,y.useState)(`${_N(`recharts`)}-clip`),1)[0],r=H2();if(r==null)return null;var i=r.x,a=r.y,o=r.width,s=r.height;return y.createElement(pue.Provider,{value:n},y.createElement(`defs`,null,y.createElement(`clipPath`,{id:n},y.createElement(`rect`,{x:i,y:a,height:s,width:o}))),t)};function hue(){}function Z2(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null?!1:Object.prototype.toString.call(e)===`[object Object]`}function gue(e,t,n){return Q2(e,t,void 0,void 0,void 0,void 0,n)}function Q2(e,t,n,r,i,a,o){let s=o(e,t,n,r,i,a);if(s!==void 0)return s;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 $2(e,t,a,o)}return $2(e,t,a,o)}function $2(e,t,n,r){if(Object.is(e,t))return!0;let i=eF(e),a=eF(t);if(i===`[object Arguments]`&&(i=pF),a===`[object Arguments]`&&(a=pF),i!==a)return!1;switch(i){case nF:return e.toString()===t.toString();case rF:return kF(e.valueOf(),t.valueOf());case iF:case sF:case oF:return Object.is(e.valueOf(),t.valueOf());case tF:return e.source===t.source&&e.flags===t.flags;case dF:return e===t}n??=new Map;let o=n.get(e),s=n.get(t);if(o!=null&&s!=null)return o===t;n.set(e,t),n.set(t,e);try{switch(i){case cF:if(e.size!==t.size)return!1;for(let[i,a]of e.entries())if(!t.has(i)||!Q2(a,t.get(i),i,e,t,n,r))return!1;return!0;case lF:{if(e.size!==t.size)return!1;let i=Array.from(e.values()),a=Array.from(t.values());for(let o=0;o<i.length;o++){let s=i[o],c=a.findIndex(i=>Q2(s,i,void 0,e,t,n,r));if(c===-1)return!1;a.splice(c,1)}return!0}case uF:case gF:case _F:case vF:case yF:case Zie:case bF:case xF:case SF:case Qie:case CF:case wF:if(EF(e)!==EF(t)||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!Q2(e[i],t[i],i,e,t,n,r))return!1;return!0;case fF:return e.byteLength===t.byteLength&&$2(new Uint8Array(e),new Uint8Array(t),n,r);case hF:return e.byteLength!==t.byteLength||e.byteOffset!==t.byteOffset?!1:$2(new Uint8Array(e),new Uint8Array(t),n,r);case mF:return e.name===t.name&&e.message===t.message;case pF:{if(!($2(e.constructor,t.constructor,n,r)||Z2(e)&&Z2(t)))return!1;let i=[...Object.keys(e),...$P(e)],a=[...Object.keys(t),...$P(t)];if(i.length!==a.length)return!1;for(let a=0;a<i.length;a++){let o=i[a],s=e[o];if(!Object.hasOwn(t,o))return!1;let c=t[o];if(!Q2(s,c,o,e,t,n,r))return!1}return!0}default:return!1}}finally{n.delete(e),n.delete(t)}}function _ue(e,t){return gue(e,t,hue)}function e4(e,t){if(t<1)return[];if(t===1)return e;for(var n=[],r=0;r<e.length;r+=t){var i=e[r];i!==void 0&&n.push(i)}return n}function vue(e,t,n){return oue({width:e.width+t.width,height:e.height+t.height},n)}function yue(e,t,n){var r=n===`width`,i=e.x,a=e.y,o=e.width,s=e.height;return t===1?{start:r?i:a,end:r?i+o:a+s}:{start:r?i+o:a+s,end:r?i:a}}function t4(e,t,n,r,i){if(e*t<e*r||e*t>e*i)return!1;var a=n();return e*(t-e*a/2-r)>=0&&e*(t+e*a/2-i)<=0}function bue(e,t){return e4(e,t+1)}function xue(e,t,n,r,i){for(var a=(r||[]).slice(),o=t.start,s=t.end,c=0,l=1,u=o,d=function(){var t=r?.[c];if(t===void 0)return{v:e4(r,l)};var a=c,d,f=()=>(d===void 0&&(d=n(t,a)),d),p=t.coordinate,m=c===0||t4(e,p,f,u,s);m||(c=0,u=o,l+=1),m&&(u=p+e*(f()/2+i),c+=l)},f;l<=a.length;)if(f=d(),f)return f.v;return[]}function Sue(e,t,n,r,i){var a=(r||[]).slice().length;if(a===0)return[];for(var o=t.start,s=t.end,c=1;c<=a;c++){for(var l=(a-1)%c,u=o,d=!0,f=function(){var t=r[m];if(t==null)return 0;var a=m,o,c=()=>(o===void 0&&(o=n(t,a)),o),f=t.coordinate,p=m===l||t4(e,f,c,u,s);if(!p)return d=!1,1;p&&(u=f+e*(c()/2+i))},p,m=l;m<a&&(p=f(),p===0||p!==1);m+=c);if(d){for(var h=[],g=l;g<a;g+=c){var _=r[g];_!=null&&h.push(_)}return h}}return[]}function n4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function r4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?n4(Object(n),!0).forEach(function(t){Cue(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):n4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Cue(e,t,n){return(t=wue(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function wue(e){var t=Tue(e,`string`);return typeof t==`symbol`?t:t+``}function Tue(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Eue(e,t,n,r,i){for(var a=(r||[]).slice(),o=a.length,s=t.start,c=t.end,l=function(t){var r=a[t];if(r==null)return 1;var l=r,u,d=()=>(u===void 0&&(u=n(r,t)),u);if(t===o-1){var f=e*(l.coordinate+e*d()/2-c);a[t]=l=r4(r4({},l),{},{tickCoord:f>0?l.coordinate-f*e:l.coordinate})}else a[t]=l=r4(r4({},l),{},{tickCoord:l.coordinate});l.tickCoord!=null&&t4(e,l.tickCoord,d,s,c)&&(c=l.tickCoord-e*(d()/2+i),a[t]=r4(r4({},l),{},{isShow:!0}))},u=o-1;u>=0;u--)if(l(u))continue;return a}function Due(e,t,n,r,i,a){var o=(r||[]).slice(),s=o.length,c=t.start,l=t.end;if(a){var u=r[s-1];if(u!=null){var d=n(u,s-1),f=e*(u.coordinate+e*d/2-l);o[s-1]=u=r4(r4({},u),{},{tickCoord:f>0?u.coordinate-f*e:u.coordinate}),u.tickCoord!=null&&t4(e,u.tickCoord,()=>d,c,l)&&(l=u.tickCoord-e*(d/2+i),o[s-1]=r4(r4({},u),{},{isShow:!0}))}}for(var p=a?s-1:s,m=function(t){var r=o[t];if(r==null)return 1;var a=r,s,u=()=>(s===void 0&&(s=n(r,t)),s);if(t===0){var d=e*(a.coordinate-e*u()/2-c);o[t]=a=r4(r4({},a),{},{tickCoord:d<0?a.coordinate-d*e:a.coordinate})}else o[t]=a=r4(r4({},a),{},{tickCoord:a.coordinate});a.tickCoord!=null&&t4(e,a.tickCoord,u,c,l)&&(c=a.tickCoord+e*(u()/2+i),o[t]=r4(r4({},a),{},{isShow:!0}))},h=0;h<p;h++)if(m(h))continue;return o}function i4(e,t,n){var r=e.tick,i=e.ticks,a=e.viewBox,o=e.minTickGap,s=e.orientation,c=e.interval,l=e.tickFormatter,u=e.unit,d=e.angle;if(!i||!i.length||!r)return[];if(Q(c)||hz.isSsr)return bue(i,Q(c)?c:0)??[];var f=[],p=s===`top`||s===`bottom`?`width`:`height`,m=u&&p===`width`?f0(u,{fontSize:t,letterSpacing:n}):{width:0,height:0},h=(e,r)=>{var i=typeof l==`function`?l(e.value,r):e.value;return p===`width`?vue(f0(i,{fontSize:t,letterSpacing:n}),m,d):f0(i,{fontSize:t,letterSpacing:n})[p]},g=i[0],_=i[1],v=i.length>=2&&g!=null&&_!=null?fN(_.coordinate-g.coordinate):1,y=yue(a,v,p);return c===`equidistantPreserveStart`?xue(v,y,h,i,o):c===`equidistantPreserveEnd`?Sue(v,y,h,i,o):(f=c===`preserveStart`||c===`preserveStartEnd`?Due(v,y,h,i,o,c===`preserveStartEnd`):Eue(v,y,h,i,o),f.filter(e=>e.isShow))}var Oue=e=>{var t=e.ticks,n=e.label,r=e.labelGapWithTick,i=r===void 0?5:r,a=e.tickSize,o=a===void 0?0:a,s=e.tickMargin,c=s===void 0?0:s,l=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.width>l&&(l=t.width)}});var u=n?n.getBoundingClientRect().width:0,d=o+c,f=l+d+u+(n?i:0);return Math.round(f)}return 0},kue=e=>{var t=e.ticks,n=e.label,r=e.labelGapWithTick,i=r===void 0?5:r,a=e.tickSize,o=a===void 0?0:a,s=e.tickMargin,c=s===void 0?0:s,l=0;if(t){Array.from(t).forEach(e=>{if(e){var t=e.getBoundingClientRect();t.height>l&&(l=t.height)}});var u=n?n.getBoundingClientRect().height:0,d=o+c,f=l+d+u+(n?i:0);return Math.round(f)}return 0},a4=OL({name:`renderedTicks`,initialState:{xAxis:{},yAxis:{}},reducers:{setRenderedTicks:(e,t)=>{var n=t.payload,r=n.axisType,i=n.axisId,a=n.ticks;e[r][i]=_L(a)},removeRenderedTicks:(e,t)=>{var n=t.payload,r=n.axisType,i=n.axisId;delete e[r][i]}}}),o4=a4.actions,Aue=o4.setRenderedTicks,jue=o4.removeRenderedTicks,Mue=a4.reducer,Nue=[`axisLine`,`width`,`height`,`className`,`hide`,`ticks`,`axisType`,`axisId`];function s4(e,t){return Lue(e)||Iue(e,t)||Fue(e,t)||Pue()}function Pue(){throw 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 c4(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)?c4(e,t):void 0}}function c4(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Iue(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function Lue(e){if(Array.isArray(e))return e}function Rue(e,t){if(e==null)return{};var n,r,i=zue(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function zue(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function l4(){return l4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},l4.apply(null,arguments)}function u4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?u4(Object(n),!0).forEach(function(t){Bue(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):u4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Bue(e,t,n){return(t=Vue(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Vue(e){var t=Hue(e,`string`);return typeof t==`symbol`?t:t+``}function Hue(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var f4={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:UH.axis};function Uue(e){var t=e.x,n=e.y,r=e.width,i=e.height,a=e.orientation,o=e.mirror,s=e.axisLine,c=e.otherSvgProps;if(!s)return null;var l=d4(d4(d4({},c),zM(s)),{},{fill:`none`});if(a===`top`||a===`bottom`){var u=+(a===`top`&&!o||a===`bottom`&&o);l=d4(d4({},l),{},{x1:t,y1:n+u*i,x2:t+r,y2:n+u*i})}else{var d=+(a===`left`&&!o||a===`right`&&o);l=d4(d4({},l),{},{x1:t+d*r,y1:n,x2:t+d*r,y2:n+i})}return y.createElement(`line`,l4({},l,{className:wn(`recharts-cartesian-axis-line`,sN(s,`className`))}))}function Wue(e,t,n,r,i,a,o,s,c){var l,u,d,f,p,m,h=s?-1:1,g=e.tickSize||o,_=Q(e.tickCoord)?e.tickCoord:e.coordinate;switch(a){case`top`:l=u=e.coordinate,f=n+ +!s*i,d=f-h*g,m=d-h*c,p=_;break;case`left`:d=f=e.coordinate,u=t+ +!s*r,l=u-h*g,p=l-h*c,m=_;break;case`right`:d=f=e.coordinate,u=t+ +s*r,l=u+h*g,p=l+h*c,m=_;break;default:l=u=e.coordinate,f=n+ +s*i,d=f+h*g,m=d+h*c,p=_}return{line:{x1:l,y1:d,x2:u,y2:f},tick:{x:p,y:m}}}function Gue(e,t){switch(e){case`left`:return t?`start`:`end`;case`right`:return t?`end`:`start`;default:return`middle`}}function Kue(e,t){switch(e){case`left`:case`right`:return`middle`;case`top`:return t?`start`:`end`;default:return t?`end`:`start`}}function que(e){var t=e.option,n=e.tickProps,r=e.value,i,a=wn(n.className,`recharts-cartesian-axis-tick-value`);if(y.isValidElement(t))i=y.cloneElement(t,d4(d4({},n),{},{className:a}));else if(typeof t==`function`)i=t(d4(d4({},n),{},{className:a}));else{var o=`recharts-cartesian-axis-tick-value`;typeof t!=`boolean`&&(o=wn(o,Wce(t))),i=y.createElement(t2,l4({},n,{className:o}),r)}return i}function Jue(e){var t=e.ticks,n=e.axisType,r=e.axisId,i=RF(),a=(0,y.useRef)(null);return(0,y.useEffect)(()=>{if(r!=null&&n!=null){var e=t.map(e=>({value:e.value,coordinate:e.coordinate,offset:e.offset,index:e.index})),o=a.current;o!=null&&o.axisId===r&&o.axisType===n&&_ue(o.ticks,e)||(a.current={ticks:e,axisId:r,axisType:n},i(Aue({ticks:e,axisId:r,axisType:n})))}},[i,t,r,n]),(0,y.useEffect)(()=>r==null||n==null?TN:()=>{i(jue({axisId:r,axisType:n}))},[i,r,n]),null}var Yue=(0,y.forwardRef)((e,t)=>{var n=e.ticks,r=n===void 0?[]:n,i=e.tick,a=e.tickLine,o=e.stroke,s=e.tickFormatter,c=e.unit,l=e.padding,u=e.tickTextProps,d=e.orientation,f=e.mirror,p=e.x,m=e.y,h=e.width,g=e.height,_=e.tickSize,v=e.tickMargin,b=e.fontSize,x=e.letterSpacing,S=e.getTicksConfig,C=e.events,w=e.axisType,T=e.axisId,E=i4(d4(d4({},S),{},{ticks:r}),b,x),D=zM(S),O=BM(i),ee=Y0(D.textAnchor)?D.textAnchor:Gue(d,f),k=Kue(d,f),te={};typeof a==`object`&&(te=a);var A=d4(d4({},D),{},{fill:`none`},te),j=E.map(e=>d4({entry:e},Wue(e,p,m,h,g,d,_,f,v))),M=j.map(e=>{var t=e.entry,n=e.line;return y.createElement(QM,{className:`recharts-cartesian-axis-tick`,key:`tick-${t.value}-${t.coordinate}-${t.tickCoord}`},a&&y.createElement(`line`,l4({},A,n,{className:wn(`recharts-cartesian-axis-tick-line`,sN(a,`className`))})))}),N=j.map((e,t)=>{var n=e.entry,r=e.tick,a=d4(d4({},d4(d4(d4(d4({verticalAnchor:k},D),{},{textAnchor:ee,stroke:`none`,fill:o},r),{},{index:t,payload:n,visibleTicksCount:E.length,tickFormatter:s,padding:l},u),{},{angle:u?.angle??D.angle??0})),O);return y.createElement(QM,l4({className:`recharts-cartesian-axis-tick-label`,key:`tick-label-${n.value}-${n.coordinate}-${n.tickCoord}`},RP(C,n,t)),i&&y.createElement(que,{option:i,tickProps:a,value:`${typeof s==`function`?s(n.value,t):n.value}${c||``}`}))});return y.createElement(`g`,{className:`recharts-cartesian-axis-ticks recharts-${w}-ticks`},y.createElement(Jue,{ticks:E,axisId:T,axisType:w}),N.length>0&&y.createElement(Z$,{zIndex:UH.label},y.createElement(`g`,{className:`recharts-cartesian-axis-tick-labels recharts-${w}-tick-labels`,ref:t},N)),M.length>0&&y.createElement(`g`,{className:`recharts-cartesian-axis-tick-lines recharts-${w}-tick-lines`},M))}),Xue=(0,y.forwardRef)((e,t)=>{var n=e.axisLine,r=e.width,i=e.height,a=e.className,o=e.hide,s=e.ticks,c=e.axisType,l=e.axisId,u=Rue(e,Nue),d=s4((0,y.useState)(``),2),f=d[0],p=d[1],m=s4((0,y.useState)(``),2),h=m[0],g=m[1],_=(0,y.useRef)(null);(0,y.useImperativeHandle)(t,()=>({getCalculatedWidth:()=>Oue({ticks:_.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin}),getCalculatedHeight:()=>kue({ticks:_.current,label:e.labelRef?.current,labelGapWithTick:5,tickSize:e.tickSize,tickMargin:e.tickMargin})}));var v=(0,y.useCallback)(e=>{if(e){var t=e.getElementsByClassName(`recharts-cartesian-axis-tick-value`);_.current=t;var n=t[0];if(n){var r=window.getComputedStyle(n),i=r.fontSize,a=r.letterSpacing;(i!==f||a!==h)&&(p(i),g(a))}}},[f,h]);return o||r!=null&&r<=0||i!=null&&i<=0?null:y.createElement(Z$,{zIndex:e.zIndex},y.createElement(QM,{className:wn(`recharts-cartesian-axis`,a)},y.createElement(Uue,{x:e.x,y:e.y,width:r,height:i,orientation:e.orientation,mirror:e.mirror,axisLine:n,otherSvgProps:zM(e)}),y.createElement(Yue,{ref:v,axisType:c,events:u,fontSize:f,getTicksConfig:e,height:e.height,letterSpacing:h,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:s,unit:e.unit,width:e.width,x:e.x,y:e.y,axisId:l}),y.createElement(wce,{x:e.x,y:e.y,width:e.width,height:e.height,lowerWidth:e.width,upperWidth:e.width},y.createElement(Pce,{label:e.label,labelRef:e.labelRef}),e.children)))}),p4=y.forwardRef((e,t)=>{var n=WP(e,f4);return y.createElement(Xue,l4({},n,{ref:t}))});p4.displayName=`CartesianAxis`;var m4=(0,y.createContext)({grid:{stroke:`#ccc`,fill:`none`}});m4.Provider;var Zue=()=>(0,y.useContext)(m4),Que=[`x1`,`y1`,`x2`,`y2`,`key`],$ue=[`offset`],ede=[`xAxisId`,`yAxisId`],tde=[`xAxisId`,`yAxisId`];function h4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function g4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?h4(Object(n),!0).forEach(function(t){nde(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function nde(e,t,n){return(t=rde(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function rde(e){var t=ide(e,`string`);return typeof t==`symbol`?t:t+``}function ide(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function _4(){return _4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_4.apply(null,arguments)}function v4(e,t){if(e==null)return{};var n,r,i=ade(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function ade(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var ode=e=>{var t=e.fill;if(!t||t===`none`)return null;var n=e.fillOpacity,r=e.x,i=e.y,a=e.width,o=e.height,s=e.ry;return y.createElement(`rect`,{x:r,y:i,ry:s,width:a,height:o,stroke:`none`,fill:t,fillOpacity:n,className:`recharts-cartesian-grid-bg`})};function y4(e){var t=e.option,n=e.lineItemProps,r;if(y.isValidElement(t))r=y.cloneElement(t,n);else if(typeof t==`function`)r=t(n);else{var i=n.x1,a=n.y1,o=n.x2,s=n.y2,c=n.key,l=zM(v4(n,Que))??{};l.offset;var u=v4(l,$ue),d=Array.isArray(u.strokeDasharray)?u.strokeDasharray.join(`,`):u.strokeDasharray;r=y.createElement(`line`,_4({},u,{strokeDasharray:d,x1:i,y1:a,x2:o,y2:s,fill:`none`,key:c}))}return r}function sde(e){var t=e.x,n=e.width,r=e.horizontal,i=r===void 0||r,a=e.horizontalPoints;if(!i||!a||!a.length)return null;e.xAxisId,e.yAxisId;var o=v4(e,ede),s=a.map((e,r)=>{var a=g4(g4({},o),{},{x1:t,y1:e,x2:t+n,y2:e,key:`line-${r}`,index:r});return y.createElement(y4,{key:`line-${r}`,option:i,lineItemProps:a})});return y.createElement(`g`,{className:`recharts-cartesian-grid-horizontal`},s)}function cde(e){var t=e.y,n=e.height,r=e.vertical,i=r===void 0||r,a=e.verticalPoints;if(!i||!a||!a.length)return null;e.xAxisId,e.yAxisId;var o=v4(e,tde),s=a.map((e,r)=>{var a=g4(g4({},o),{},{x1:e,y1:t,x2:e,y2:t+n,key:`line-${r}`,index:r});return y.createElement(y4,{option:i,lineItemProps:a,key:`line-${r}`})});return y.createElement(`g`,{className:`recharts-cartesian-grid-vertical`},s)}function lde(e){var t=e.horizontalFill,n=e.fillOpacity,r=e.x,i=e.y,a=e.width,o=e.height,s=e.horizontalPoints,c=e.horizontal;if(!(c===void 0||c)||!t||!t.length||s==null)return null;var l=s.map(e=>Math.round(e+i-i)).sort((e,t)=>e-t);i!==l[0]&&l.unshift(0);var u=l.map((e,s)=>{var c=l[s+1],u=c==null?i+o-e:c-e;if(u<=0)return null;var d=s%t.length;return y.createElement(`rect`,{key:`react-${s}`,y:e,x:r,height:u,width:a,stroke:`none`,fill:t[d],fillOpacity:n,className:`recharts-cartesian-grid-bg`})});return y.createElement(`g`,{className:`recharts-cartesian-gridstripes-horizontal`},u)}function ude(e){var t=e.vertical,n=t===void 0||t,r=e.verticalFill,i=e.fillOpacity,a=e.x,o=e.y,s=e.width,c=e.height,l=e.verticalPoints;if(!n||!r||!r.length)return null;var u=l.map(e=>Math.round(e+a-a)).sort((e,t)=>e-t);a!==u[0]&&u.unshift(0);var d=u.map((e,t)=>{var n=u[t+1],l=n==null?a+s-e:n-e;if(l<=0)return null;var d=t%r.length;return y.createElement(`rect`,{key:`react-${t}`,x:e,y:o,width:l,height:c,stroke:`none`,fill:r[d],fillOpacity:i,className:`recharts-cartesian-grid-bg`})});return y.createElement(`g`,{className:`recharts-cartesian-gridstripes-vertical`},d)}var dde=(e,t)=>{var n=e.xAxis,r=e.width,i=e.height,a=e.offset;return uR(i4(g4(g4(g4({},f4),n),{},{ticks:dR(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.left,a.left+a.width,t)},fde=(e,t)=>{var n=e.yAxis,r=e.width,i=e.height,a=e.offset;return uR(i4(g4(g4(g4({},f4),n),{},{ticks:dR(n,!0),viewBox:{x:0,y:0,width:r,height:i}})),a.top,a.top+a.height,t)},pde={horizontal:!0,vertical:!0,horizontalPoints:[],verticalPoints:[],verticalFill:[],horizontalFill:[],xAxisId:0,yAxisId:0,syncWithTicks:!1,zIndex:UH.grid};function b4(e){var t=HR(),n=UR(),r=VR(),i=g4(g4({},WP(e,pde)),{},{x:Q(e.x)?e.x:r.left,y:Q(e.y)?e.y:r.top,width:Q(e.width)?e.width:r.width,height:Q(e.height)?e.height:r.height}),a=i.xAxisId,o=i.yAxisId,s=i.x,c=i.y,l=i.width,u=i.height,d=i.syncWithTicks,f=i.horizontalValues,p=i.verticalValues,m=DR(),h=BF(e=>CZ(e,`xAxis`,a,m)),g=BF(e=>CZ(e,`yAxis`,o,m)),_=Zue(),v={stroke:i.stroke??_.grid.stroke,strokeWidth:i.strokeWidth??_.grid.strokeWidth,strokeOpacity:i.strokeOpacity??_.grid.strokeOpacity,strokeDasharray:i.strokeDasharray??_.grid.strokeDasharray};if(!aR(l)||!aR(u)||!Q(s)||!Q(c))return null;var b=i.verticalCoordinatesGenerator||dde,x=i.horizontalCoordinatesGenerator||fde,S=i.horizontalPoints,C=i.verticalPoints;if((!S||!S.length)&&typeof x==`function`){var w=f&&f.length,T=x({yAxis:g?g4(g4({},g),{},{ticks:w?f:g.ticks}):void 0,width:t??l,height:n??u,offset:r},w?!0:d);AR(Array.isArray(T),`horizontalCoordinatesGenerator should return Array but instead it returned [${typeof T}]`),Array.isArray(T)&&(S=T)}if((!C||!C.length)&&typeof b==`function`){var E=p&&p.length,D=b({xAxis:h?g4(g4({},h),{},{ticks:E?p:h.ticks}):void 0,width:t??l,height:n??u,offset:r},E?!0:d);AR(Array.isArray(D),`verticalCoordinatesGenerator should return Array but instead it returned [${typeof D}]`),Array.isArray(D)&&(C=D)}return y.createElement(Z$,{zIndex:i.zIndex},y.createElement(`g`,{className:`recharts-cartesian-grid`},y.createElement(ode,{fill:i.fill??_.grid.fill,fillOpacity:i.fillOpacity??_.grid.fillOpacity,x:i.x,y:i.y,width:i.width,height:i.height,ry:i.ry}),y.createElement(lde,_4({},i,{horizontalPoints:S})),y.createElement(ude,_4({},i,{verticalPoints:C})),y.createElement(sde,_4({},i,v,{offset:r,horizontalPoints:S,xAxis:h,yAxis:g})),y.createElement(cde,_4({},i,v,{offset:r,verticalPoints:C,xAxis:h,yAxis:g}))))}b4.displayName=`CartesianGrid`;var x4=OL({name:`errorBars`,initialState:{},reducers:{addErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.errorBar;e[r]||(e[r]=[]),e[r].push(i)},replaceErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.prev,a=n.next;e[r]&&(e[r]=e[r].map(e=>e.dataKey===i.dataKey&&e.direction===i.direction?a:e))},removeErrorBar:(e,t)=>{var n=t.payload,r=n.itemId,i=n.errorBar;e[r]&&(e[r]=e[r].filter(e=>e.dataKey!==i.dataKey||e.direction!==i.direction))}}}),S4=x4.actions;S4.addErrorBar,S4.replaceErrorBar,S4.removeErrorBar;var mde=x4.reducer;function C4(e,t){var n=BF(t=>TY(t,e)),r=BF(e=>OY(e,t)),i=n?.allowDataOverflow??CY.allowDataOverflow,a=r?.allowDataOverflow??EY.allowDataOverflow;return{needClip:i||a,needClipX:i,needClipY:a}}function hde(e){var t=e.xAxisId,n=e.yAxisId,r=e.clipPathId,i=H2(),a=C4(t,n),o=a.needClipX,s=a.needClipY,c=a.needClip,l=BF(e=>QX(e,t,!1)),u=BF(e=>$X(e,n,!1));if(!c||!i)return null;var d=i.x,f=i.y,p=i.width,m=i.height,h=o&&l?Math.min(l[0],l[1]):d-p/2,g=s&&u?Math.min(u[0],u[1]):f-m/2,_=o&&l?Math.abs(l[1]-l[0]):p*2,v=s&&u?Math.abs(u[1]-u[0]):m*2;return y.createElement(`clipPath`,{id:`clipPath-${r}`},y.createElement(`rect`,{x:h,y:g,width:_,height:v}))}function gde(e){var t=BM(e),n=3,r=2;if(t!=null){var i=t.r,a=t.strokeWidth,o=Number(i),s=Number(a);return(Number.isNaN(o)||o<0)&&(o=n),(Number.isNaN(s)||s<0)&&(s=r),{r:o,strokeWidth:s}}return{r:n,strokeWidth:r}}function w4(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.xAxisId??0}function T4(e,t){return e.graphicalItems.cartesianItems.find(e=>e.id===t)?.yAxisId??0}var E4=(e,t,n)=>EZ(e,`xAxis`,w4(e,t),n),D4=(e,t,n)=>TZ(e,`xAxis`,w4(e,t),n),O4=(e,t,n)=>EZ(e,`yAxis`,T4(e,t),n),k4=(e,t,n)=>TZ(e,`yAxis`,T4(e,t),n),_de=$([WR,E4,O4,D4,k4],(e,t,n,r,i)=>lR(e,`xAxis`)?hR(t,r,!1):hR(n,i,!1)),A4=$([IY,(e,t)=>t],(e,t)=>e.filter(e=>e.type===`area`).find(e=>e.id===t)),j4=e=>lR(WR(e),`xAxis`)?`yAxis`:`xAxis`,vde=(e,t)=>j4(e)===`yAxis`?T4(e,t):w4(e,t),M4=(e,t,n)=>cX(e,j4(e),vde(e,t),n),yde=$([WR,E4,O4,D4,k4,$([A4,M4],(e,t)=>{if(e!=null&&t!=null){var n=e.stackId,r=fU(e);if(n!=null&&r!=null){var i=(t[n]?.stackedData)?.find(e=>e.key===r);if(i!=null)return i.map(e=>[e[0],e[1]])}}}),oH,_de,A4,HH,$([A4,M4],(e,t)=>{if(e!=null&&e.stackId!=null&&t!=null){var n=t[e.stackId];if(n!=null)return n.graphicalItems.map(e=>e.dataKey).filter(wN)}})],(e,t,n,r,i,a,o,s,c,l,u)=>{var d=o.chartData,f=o.dataStartIndex,p=o.dataEndIndex;if(!(c==null||e!==`horizontal`&&e!==`vertical`||t==null||n==null||r==null||i==null||r.length===0||i.length===0||s==null)){var m=c.data,h=m&&m.length>0?m:d?.slice(f,p+1);if(h!=null)return Wde({layout:e,xAxis:t,yAxis:n,xAxisTicks:r,yAxisTicks:i,dataStartIndex:f,areaSettings:c,stackedData:a,displayedData:h,chartBaseValue:l,bandSize:s,stackDataKeys:u})}}),bde=[`animationElapsedTime`,`isAnimating`,`isEntrance`,`layout`,`isRange`,`stroke`,`connectNulls`],xde=[`id`,`baseLine`];function N4(){return N4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},N4.apply(null,arguments)}function P4(e,t){if(e==null)return{};var n,r,i=Sde(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Sde(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function Cde(e){var t=e.alpha,n=e.baseLine,r=e.points,i=e.strokeWidth,a=r[0]?.x,o=r[r.length-1]?.x;if(!iR(a)||!iR(o))return null;var s=t*Math.abs(a-o),c=Math.max(...r.map(e=>e.y||0));return Q(n)?c=Math.max(n,c):n&&Array.isArray(n)&&n.length&&(c=Math.max(...n.map(e=>e.y||0),c)),Q(c)?y.createElement(`rect`,{x:a<o?a:a-s,y:0,width:s,height:Math.floor(c+(i?parseInt(`${i}`,10):1))}):null}function wde(e){var t=e.alpha,n=e.baseLine,r=e.points,i=e.strokeWidth,a=r[0]?.y,o=r[r.length-1]?.y;if(!iR(a)||!iR(o))return null;var s=t*Math.abs(a-o),c=Math.max(...r.map(e=>e.x||0));return Q(n)?c=Math.max(n,c):n&&Array.isArray(n)&&n.length&&(c=Math.max(...n.map(e=>e.x||0),c)),Q(c)?y.createElement(`rect`,{x:0,y:a<o?a:a-s,width:c+(i?parseInt(`${i}`,10):1),height:Math.floor(s)}):null}function Tde(e){var t=e.alpha,n=e.layout,r=e.points,i=e.baseLine,a=e.strokeWidth;return n===`vertical`?y.createElement(wde,{alpha:t,points:r,baseLine:i,strokeWidth:a}):y.createElement(Cde,{alpha:t,points:r,baseLine:i,strokeWidth:a})}function Ede(e){var t=e.animationElapsedTime,n=t===void 0?1:t,r=e.isAnimating,i=r!==void 0&&r,a=e.isEntrance,o=a!==void 0&&a,s=e.layout,c=e.isRange,l=e.stroke,u=e.connectNulls,d=P4(e,bde),f=s===`vertical`?`vertical`:`horizontal`,p=u??!1,m=M2(),h=d.id,g=d.baseLine,_=zM(P4(d,xde)),v=y.createElement(Qz,N4({},d,{id:h,baseLine:g,connectNulls:p,stroke:`none`,className:`recharts-area-area`,layout:f})),b=l!==`none`&&y.createElement(Qz,N4({},_,{className:`recharts-area-curve`,layout:f,type:d.type,connectNulls:p,fill:`none`,stroke:l,points:d.points})),x=l!==`none`&&c&&Array.isArray(g)&&y.createElement(Qz,N4({},_,{className:`recharts-area-curve`,layout:f,type:d.type,connectNulls:p,fill:`none`,stroke:l,points:g}));return o&&(i||n<1)?y.createElement(QM,null,y.createElement(`defs`,null,y.createElement(`clipPath`,{id:m},y.createElement(Tde,{alpha:n,points:d.points??[],baseLine:g,layout:f,strokeWidth:d.strokeWidth}))),y.createElement(QM,{clipPath:`url(#${m})`},v,b,x)):y.createElement(y.Fragment,null,v,b,x)}var Dde=[`id`],Ode=[`activeDot`,`animationBegin`,`animationDuration`,`animationEasing`,`connectNulls`,`dot`,`fill`,`fillOpacity`,`hide`,`isAnimationActive`,`legendType`,`stroke`,`xAxisId`,`yAxisId`];function F4(){return F4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},F4.apply(null,arguments)}function I4(e,t){if(e==null)return{};var n,r,i=kde(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function kde(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function L4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function R4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?L4(Object(n),!0).forEach(function(t){Ade(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):L4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ade(e,t,n){return(t=jde(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function jde(e){var t=Mde(e,`string`);return typeof t==`symbol`?t:t+``}function Mde(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var z4={activeDot:!0,animationBegin:0,animationDuration:1500,animationEasing:`ease`,animationMatchBy:E2,animationInterpolateFn:(e,t)=>e==null?[]:t===1?e.flatMap(e=>e.status===`removed`?[]:[e.next]):e.flatMap(e=>e.status===`matched`?[R4(R4({},e.next),{},{x:bN(e.prev.x,e.next.x,t),y:bN(e.prev.y,e.next.y,t)})]:e.status===`added`?[e.next]:[]),connectNulls:!1,dot:!1,fill:`#3182bd`,fillOpacity:.6,hide:!1,isAnimationActive:`auto`,legendType:`line`,stroke:`#3182bd`,strokeWidth:1,type:`linear`,label:!1,shape:Ede,xAxisId:0,yAxisId:0,zIndex:UH.area};function B4(e,t){return e&&e!==`none`?e:t}var Nde=e=>{var t=e.dataKey,n=e.name,r=e.stroke,i=e.fill,a=e.legendType;return[{inactive:e.hide,dataKey:t,type:a,color:B4(r,i),value:_R(n,t),payload:e}]},Pde=y.memo(e=>{var t=e.dataKey,n=e.data,r=e.stroke,i=e.strokeWidth,a=e.fill,o=e.name,s=e.hide,c=e.unit,l=e.formatter,u=e.tooltipType,d=e.id,f={dataDefinedOnItem:n,getPosition:TN,settings:{stroke:r,strokeWidth:i,fill:a,dataKey:t,nameKey:void 0,name:_R(o,t),hide:s,type:u,color:B4(r,a),unit:c,formatter:l,graphicalItemId:d}};return y.createElement(ele,{tooltipEntrySettings:f})});function Fde(e){var t=e.clipPathId,n=e.points,r=e.props,i=r.needClip,a=r.dot,o=r.dataKey,s=zM(r);return y.createElement(Rle,{points:n,dot:a,className:`recharts-area-dots`,dotClassName:`recharts-area-dot`,dataKey:o,baseProps:s,needClip:i,clipPathId:t})}function Ide(e){var t=e.showLabels,n=e.children,r=e.points.map(e=>{var t={x:e.x??0,y:e.y??0,width:0,lowerWidth:0,upperWidth:0,height:0};return R4(R4({},t),{},{value:e.value,payload:e.payload,parentViewBox:void 0,viewBox:t,fill:void 0})});return y.createElement(zce,{value:t?r:void 0},n)}function Lde(e){var t=e.points,n=e.baseLine,r=e.needClip,i=e.clipPathId,a=e.props,o=e.animationElapsedTime,s=e.isAnimating,c=e.isEntrance,l=a.layout,u=a.type,d=a.stroke,f=a.connectNulls,p=a.isRange,m=a.shape,h=a.id,g=I4(a,Dde),_=R4(R4({},VM(g)),{},{id:h,points:t,connectNulls:f,type:u,baseLine:n,layout:l,stroke:d,isRange:p,animationElapsedTime:o,isAnimating:s,isEntrance:c});return y.createElement(y.Fragment,null,t?.length>1&&y.createElement(QM,{clipPath:r?`url(#clipPath-${i})`:void 0},y.createElement($ce,{option:m,DefaultShape:z4.shape,shapeProps:_})),y.createElement(Fde,{points:t,props:g,clipPathId:i}))}function Rde(e,t,n){return Q(e)?bN(Q(t)?t:void 0,e,n):SN(e)||pN(e)?bN(Q(t)?t:void 0,0,n):e}function zde(e){var t=e.needClip,n=e.clipPathId,r=e.props,i=e.previousPointsRef,a=e.previousBaselineRef,o=r.points,s=r.baseLine,c=r.isAnimationActive,l=r.animationBegin,u=r.animationDuration,d=r.animationEasing,f=r.animationMatchBy,p=r.animationInterpolateFn,m=(0,y.useMemo)(()=>({points:o,baseLine:s}),[o,s]),h=k2(m,a),g=KR(),_=hle(r.onAnimationStart,r.onAnimationEnd),v=_.isAnimating,b=_.handleAnimationStart,x=_.handleAnimationEnd,S=h.startValue;if(g==null)return null;var C=Array.isArray(s)&&Array.isArray(S)?O2(S,s,f):Array.isArray(s)?O2(null,s,f):null;return y.createElement(gle,{animationInput:m,animationIdPrefix:`recharts-area-`,items:o,previousItemsRef:i,isAnimationActive:c,animationBegin:l,animationDuration:u,animationEasing:d,onAnimationStart:b,onAnimationEnd:x,animationInterpolateFn:p,animationMatchBy:f,layout:g},(e,i,a)=>{var c=i===1?s:Array.isArray(s)?p(C,i,g):a?s:Rde(s,S,i);return h.syncStepValue(c,i),y.createElement(Ide,{showLabels:!v,points:o},r.children,y.createElement(Lde,{points:e,baseLine:c,needClip:t,clipPathId:n,props:r,animationElapsedTime:i,isAnimating:v||i<1,isEntrance:a}),y.createElement(Hce,{label:r.label}))})}function Bde(e){var t=e.needClip,n=e.clipPathId,r=e.props,i=(0,y.useRef)(null),a=(0,y.useRef)();return y.createElement(zde,{needClip:t,clipPathId:n,props:r,previousPointsRef:i,previousBaselineRef:a})}var Vde=class extends y.PureComponent{render(){var e=this.props,t=e.hide,n=e.dot,r=e.points,i=e.className,a=e.top,o=e.left,s=e.needClip,c=e.xAxisId,l=e.yAxisId,u=e.width,d=e.height,f=e.id,p=e.baseLine,m=e.zIndex;if(t)return null;var h=wn(`recharts-area`,i),g=f,_=gde(n),v=_.r,b=_.strokeWidth,x=b2(n),S=v*2+b,C=s?`url(#clipPath-${x?``:`dots-`}${g})`:void 0;return y.createElement(Z$,{zIndex:m},y.createElement(QM,{className:h},s&&y.createElement(`defs`,null,y.createElement(hde,{clipPathId:g,xAxisId:c,yAxisId:l}),!x&&y.createElement(`clipPath`,{id:`clipPath-dots-${g}`},y.createElement(`rect`,{x:o-S/2,y:a-S/2,width:u+S,height:d+S}))),y.createElement(Bde,{needClip:s,clipPathId:g,props:this.props})),y.createElement(G2,{points:r,mainColor:B4(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:C}),this.props.isRange&&Array.isArray(p)&&y.createElement(G2,{points:p,mainColor:B4(this.props.stroke,this.props.fill),itemDataKey:this.props.dataKey,activeDot:this.props.activeDot,clipPath:C}))}};function Hde(e){var t=e.activeDot,n=e.animationBegin,r=e.animationDuration,i=e.animationEasing,a=e.connectNulls,o=e.dot,s=e.fill,c=e.fillOpacity,l=e.hide,u=e.isAnimationActive,d=e.legendType,f=e.stroke,p=e.xAxisId,m=e.yAxisId,h=I4(e,Ode),g=GR(),_=_$(),v=C4(p,m).needClip,b=DR(),x=BF(t=>yde(t,e.id,b))??{},S=x.points,C=x.isRange,w=x.baseLine,T=H2();if(g!==`horizontal`&&g!==`vertical`||T==null||_!==`AreaChart`&&_!==`ComposedChart`)return null;var E=T.height,D=T.width,O=T.x,ee=T.y;return!S||!S.length?null:y.createElement(Vde,F4({},h,{activeDot:t,animationBegin:n,animationDuration:r,animationEasing:i,baseLine:w,connectNulls:a,dot:o,fill:s,fillOpacity:c,height:E,hide:l,layout:g,isAnimationActive:u,isRange:C,legendType:d,needClip:v,points:S,stroke:f,width:D,left:O,top:ee,xAxisId:p,yAxisId:m}))}var Ude=(e,t,n,r,i)=>{var a=n??t;if(Q(a))return a;var o=e===`horizontal`?i:r,s=o.scale.domain();if(o.type===`number`){var c=Math.max(s[0],s[1]),l=Math.min(s[0],s[1]);return a===`dataMin`?l:a===`dataMax`||c<0?c:Math.max(Math.min(s[0],s[1]),0)}return a===`dataMin`?s[0]:a===`dataMax`?s[1]:s[0]};function Wde(e){var t=e.areaSettings,n=t.connectNulls,r=t.baseValue,i=t.dataKey,a=e.stackedData,o=e.layout,s=e.chartBaseValue,c=e.xAxis,l=e.yAxis,u=e.displayedData,d=e.dataStartIndex,f=e.xAxisTicks,p=e.yAxisTicks,m=e.bandSize,h=e.stackDataKeys,g=a&&a.length,_=Ude(o,s,r,c,l),v=o===`horizontal`,y=!1,b=u.map((e,t)=>{var r;if(g)r=a[d+t];else{var o=cR(e,i);Array.isArray(o)?(r=o,y=!0):r=[_,o]}var s=r?.[1]??null,u=cR(e,i),b=g&&u==null&&h!=null&&h.length>0&&h.every(t=>cR(e,t)==null),x=s==null||g&&!n&&u==null||b;return v?{x:fR({axis:c,ticks:f,bandSize:m,entry:e,index:t}),y:x?null:l.scale.map(s)??null,value:r,payload:e}:{x:x?null:c.scale.map(s)??null,y:fR({axis:l,ticks:p,bandSize:m,entry:e,index:t}),value:r,payload:e}});return{points:b,baseLine:(g||y?b.map(e=>{var t=Array.isArray(e.value)?e.value[0]:null;return v?{x:e.x,y:t!=null&&e.y!=null?l.scale.map(t)??null:null,payload:e.payload}:{x:t==null?null:c.scale.map(t)??null,y:e.y,payload:e.payload}}):v?l.scale.map(_):c.scale.map(_))??0,isRange:y}}function Gde(e){var t=WP(e,z4),n=DR();return y.createElement(wle,{id:t.id,type:`area`},e=>y.createElement(y.Fragment,null,y.createElement(w2,{legendPayload:Nde(t)}),y.createElement(Pde,{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:e}),y.createElement(kle,{type:`area`,id:e,data:t.data,dataKey:t.dataKey,xAxisId:t.xAxisId,yAxisId:t.yAxisId,zAxisId:0,stackId:Joe(t.stackId),hide:t.hide,barSize:void 0,baseValue:t.baseValue,isPanorama:n,connectNulls:t.connectNulls}),y.createElement(Hde,F4({},t,{id:e}))))}var V4=y.memo(Gde,$R);V4.displayName=`Area`;var Kde=[`domain`,`range`],qde=[`domain`,`range`];function H4(e,t){if(e==null)return{};var n,r,i=Jde(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Jde(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function U4(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 W4(e,t){if(e===t)return!0;var n=e.domain,r=e.range,i=H4(e,Kde),a=t.domain,o=t.range,s=H4(t,qde);return!U4(n,a)||!U4(r,o)?!1:$R(i,s)}var Yde=[`type`],Xde=[`dangerouslySetInnerHTML`,`ticks`,`scale`],Zde=[`id`,`scale`];function G4(){return G4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},G4.apply(null,arguments)}function K4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function q4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?K4(Object(n),!0).forEach(function(t){Qde(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):K4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Qde(e,t,n){return(t=$de(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $de(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 r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function J4(e,t){if(e==null)return{};var n,r,i=tfe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function tfe(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function nfe(e){var t=RF(),n=(0,y.useRef)(null),r=KR(),i=e.type,a=J4(e,Yde),o=qH(r,`xAxis`,i),s=(0,y.useMemo)(()=>{if(o!=null)return q4(q4({},a),{},{type:o})},[a,o]);return(0,y.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(Hle(s)):n.current!==s&&t(Ule({prev:n.current,next:s})),n.current=s)},[s,t]),(0,y.useLayoutEffect)(()=>()=>{n.current&&=(t(Wle(n.current)),null)},[t]),null}var rfe=e=>{var t=e.xAxisId,n=e.className,r=e.height,i=e.label,a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=BF(ER),c=DR(),l=RF(),u=`xAxis`,d=BF(e=>wZ(e,u,t,c)),f=BF(e=>pZ(e,t)),p=BF(e=>vZ(e,t)),m=BF(e=>wY(e,t));if((0,y.useLayoutEffect)(()=>{if(!(r!==`auto`||!f||c2(i)||(0,y.isValidElement)(i)||m==null)){var e=a.current;if(e){var n=e.getCalculatedHeight();Math.round(f.height)!==Math.round(n)&&l(Yle({id:t,height:n}))}}},[d,f,l,i,t,r,m]),f==null||p==null||m==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var h=J4(e,Xde);m.id,m.scale;var g=J4(m,Zde);return y.createElement(p4,G4({},h,g,{ref:a,labelRef:o,x:p.x,y:p.y,width:f.width,height:f.height,className:wn(`recharts-${u} ${u}`,n),viewBox:s,ticks:d,axisType:u,axisId:t}))},ife={allowDataOverflow:CY.allowDataOverflow,allowDecimals:CY.allowDecimals,allowDuplicatedCategory:CY.allowDuplicatedCategory,angle:CY.angle,axisLine:f4.axisLine,height:CY.height,hide:!1,includeHidden:CY.includeHidden,interval:CY.interval,label:!1,minTickGap:CY.minTickGap,mirror:CY.mirror,orientation:CY.orientation,padding:CY.padding,reversed:CY.reversed,scale:CY.scale,tick:CY.tick,tickCount:CY.tickCount,tickLine:f4.tickLine,tickSize:f4.tickSize,type:CY.type,niceTicks:CY.niceTicks,xAxisId:0},Y4=y.memo(e=>{var t=WP(e,ife);return y.createElement(y.Fragment,null,y.createElement(nfe,{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}),y.createElement(rfe,t))},W4);Y4.displayName=`XAxis`;var afe=[`type`],ofe=[`dangerouslySetInnerHTML`,`ticks`,`scale`],sfe=[`id`,`scale`];function X4(){return X4=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},X4.apply(null,arguments)}function Z4(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Q4(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Z4(Object(n),!0).forEach(function(t){cfe(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Z4(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function cfe(e,t,n){return(t=lfe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lfe(e){var t=ufe(e,`string`);return typeof t==`symbol`?t:t+``}function ufe(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function $4(e,t){if(e==null)return{};var n,r,i=dfe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function dfe(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function ffe(e){var t=RF(),n=(0,y.useRef)(null),r=KR(),i=e.type,a=$4(e,afe),o=qH(r,`yAxis`,i),s=(0,y.useMemo)(()=>{if(o!=null)return Q4(Q4({},a),{},{type:o})},[o,a]);return(0,y.useLayoutEffect)(()=>{s!=null&&(n.current===null?t(Gle(s)):n.current!==s&&t(Kle({prev:n.current,next:s})),n.current=s)},[s,t]),(0,y.useLayoutEffect)(()=>()=>{n.current&&=(t(qle(n.current)),null)},[t]),null}function pfe(e){var t=e.yAxisId,n=e.className,r=e.width,i=e.label,a=(0,y.useRef)(null),o=(0,y.useRef)(null),s=BF(ER),c=DR(),l=RF(),u=`yAxis`,d=BF(e=>bZ(e,t)),f=BF(e=>yZ(e,t)),p=BF(e=>wZ(e,u,t,c)),m=BF(e=>DY(e,t));if((0,y.useLayoutEffect)(()=>{if(!(r!==`auto`||!d||c2(i)||(0,y.isValidElement)(i)||m==null)){var e=a.current;if(e){var n=e.getCalculatedWidth();Math.round(d.width)!==Math.round(n)&&l(Jle({id:t,width:n}))}}},[p,d,l,i,t,r,m]),d==null||f==null||m==null)return null;e.dangerouslySetInnerHTML,e.ticks,e.scale;var h=$4(e,ofe);m.id,m.scale;var g=$4(m,sfe);return y.createElement(p4,X4({},h,g,{ref:a,labelRef:o,x:f.x,y:f.y,tickTextProps:r===`auto`?{width:void 0}:{width:r},width:d.width,height:d.height,className:wn(`recharts-${u} ${u}`,n),viewBox:s,ticks:p,axisType:u,axisId:t}))}var mfe={allowDataOverflow:EY.allowDataOverflow,allowDecimals:EY.allowDecimals,allowDuplicatedCategory:EY.allowDuplicatedCategory,angle:EY.angle,axisLine:f4.axisLine,hide:!1,includeHidden:EY.includeHidden,interval:EY.interval,label:!1,minTickGap:EY.minTickGap,mirror:EY.mirror,orientation:EY.orientation,padding:EY.padding,reversed:EY.reversed,scale:EY.scale,tick:EY.tick,tickCount:EY.tickCount,tickLine:f4.tickLine,tickSize:f4.tickSize,type:EY.type,niceTicks:EY.niceTicks,width:EY.width,yAxisId:0},e3=y.memo(e=>{var t=WP(e,mfe);return y.createElement(y.Fragment,null,y.createElement(ffe,{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}),y.createElement(pfe,t))},W4);e3.displayName=`YAxis`;var t3=$([(e,t)=>t,WR,lU,vU,BQ,HQ,x$,TR],N$);function hfe(e){return`getBBox`in e.currentTarget&&typeof e.currentTarget.getBBox==`function`}function n3(e){var t=e.currentTarget.getBoundingClientRect(),n,r;if(hfe(e)){var i=e.currentTarget.getBBox();n=i.width>0?t.width/i.width:1,r=i.height>0?t.height/i.height:1}else{var a=e.currentTarget;n=a.offsetWidth>0?t.width/a.offsetWidth:1,r=a.offsetHeight>0?t.height/a.offsetHeight:1}var o=(e,i)=>({relativeX:Math.round((e-t.left)/n),relativeY:Math.round((i-t.top)/r)});return`touches`in e?Array.from(e.touches).map(e=>o(e.clientX,e.clientY)):o(e.clientX,e.clientY)}var r3=yL(`mouseClick`),i3=$L();i3.startListening({actionCreator:r3,effect:(e,t)=>{var n=e.payload,r=t3(t.getState(),n3(n));r?.activeIndex!=null&&t.dispatch(GZ({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}});var a3=yL(`mouseMove`),o3=$L(),s3=null,c3=null,l3=null;o3.startListening({actionCreator:a3,effect:(e,t)=>{var n=e.payload,r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a?.includes(`mousemove`);s3!==null&&(cancelAnimationFrame(s3),s3=null),c3===null||typeof i==`number`&&o||(clearTimeout(c3),c3=null),l3=n3(n);var s=()=>{var e=t.getState(),n=jZ(e,e.tooltip.settings.shared);if(!l3)s3=null,c3=null;else{if(n===`axis`){var r=t3(e,l3);r?.activeIndex==null?t.dispatch(UZ()):t.dispatch(WZ({activeIndex:r.activeIndex,activeDataKey:void 0,activeCoordinate:r.activeCoordinate}))}s3=null,c3=null}};o?i===`raf`?s3=requestAnimationFrame(s):typeof i==`number`&&c3===null&&(c3=setTimeout(s,i)):s()}});function gfe(e,t){return t instanceof HTMLElement?`HTMLElement <${t.tagName} class="${t.className}">`:t===window?`global.window`:e===`children`&&typeof t==`object`&&t?`<<CHILDREN>>`:t}var u3={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},d3=OL({name:`rootProps`,initialState:u3,reducers:{updateOptions:(e,t)=>{e.accessibilityLayer=t.payload.accessibilityLayer,e.barCategoryGap=t.payload.barCategoryGap,e.barGap=t.payload.barGap??u3.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}}}),_fe=d3.reducer,vfe=d3.actions.updateOptions,f3=OL({name:`polarOptions`,initialState:null,reducers:{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)}});f3.actions.updatePolarOptions;var yfe=f3.reducer,p3=yL(`keyDown`),m3=yL(`focus`),h3=yL(`blur`),g3=$L(),_3=null,v3=null,y3=null;g3.startListening({actionCreator:p3,effect:(e,t)=>{y3=e.payload,_3!==null&&(cancelAnimationFrame(_3),_3=null);var n=t.getState().eventSettings,r=n.throttleDelay,i=n.throttledEvents,a=i===`all`||i.includes(`keydown`);v3===null||typeof r==`number`&&a||(clearTimeout(v3),v3=null);var o=()=>{try{var e=t.getState();if(e.rootProps.accessibilityLayer===!1)return;var n=e.tooltip.keyboardInteraction,r=y3;if(r!==`ArrowRight`&&r!==`ArrowLeft`&&r!==`Enter`)return;var i=oQ(n,OQ(e),aX(e),LQ(e)),a=i==null?-1:Number(i),o=!Number.isFinite(a)||a<0,s=HQ(e),c=OQ(e),l=jZ(e,e.tooltip.settings.shared);if(r===`Enter`){if(o)return;var u=E$(e,l,`hover`,String(n.index));t.dispatch(qZ({active:!n.active,activeIndex:n.index,activeCoordinate:u}));return}var d=DZ(e)===`left-to-right`?1:-1,f=r===`ArrowRight`?1:-1,p;if(o){var m=aX(e),h=LQ(e),g=f*d,_=e=>({active:!1,index:String(e),dataKey:void 0,graphicalItemId:void 0,coordinate:void 0});if(p=-1,g>0){for(var v=0;v<c.length;v++)if(oQ(_(v),c,m,h)!=null){p=v;break}}else for(var y=c.length-1;y>=0;y--)if(oQ(_(y),c,m,h)!=null){p=y;break}if(p<0)return}else{p=a+f*d;var b=s?.length||c.length;if(b===0||p>=b||p<0)return}var x=E$(e,l,`hover`,String(p));t.dispatch(qZ({active:!0,activeIndex:p.toString(),activeCoordinate:x}))}finally{_3=null,v3=null}};a?r===`raf`?_3=requestAnimationFrame(o):typeof r==`number`&&v3===null&&(o(),y3=null,v3=setTimeout(()=>{y3?o():(v3=null,_3=null)},r)):o()}}),g3.startListening({actionCreator:m3,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;if(!r.active&&r.index==null){var i=`0`,a=E$(n,jZ(n,n.tooltip.settings.shared),`hover`,String(i));t.dispatch(qZ({active:!0,activeIndex:i,activeCoordinate:a}))}}}}),g3.startListening({actionCreator:h3,effect:(e,t)=>{var n=t.getState();if(n.rootProps.accessibilityLayer!==!1){var r=n.tooltip.keyboardInteraction;r.active&&t.dispatch(qZ({active:!1,activeIndex:r.index,activeCoordinate:r.coordinate}))}}});function b3(e){e.persist();var t=e.currentTarget;return new Proxy(e,{get:(e,n)=>{if(n===`currentTarget`)return t;var r=Reflect.get(e,n);return typeof r==`function`?r.bind(e):r}})}var x3=yL(`externalEvent`),S3=$L(),C3=new Map,w3=new Map,T3=new Map;S3.startListening({actionCreator:x3,effect:(e,t)=>{var n=e.payload,r=n.handler,i=n.reactEvent;if(r!=null){var a=i.type,o=b3(i);T3.set(a,{handler:r,reactEvent:o});var s=C3.get(a);s!==void 0&&(cancelAnimationFrame(s),C3.delete(a));var c=t.getState().eventSettings,l=c.throttleDelay,u=c.throttledEvents,d=u===`all`||u?.includes(a),f=w3.get(a);f===void 0||typeof l==`number`&&d||(clearTimeout(f),w3.delete(a));var p=()=>{var e=T3.get(a);try{if(!e)return;var n=e.handler,r=e.reactEvent,i=t.getState(),o={activeCoordinate:QQ(i),activeDataKey:YQ(i),activeIndex:qQ(i),activeLabel:JQ(i),activeTooltipIndex:qQ(i),isTooltipActive:$Q(i)};n&&n(o,r)}finally{C3.delete(a),w3.delete(a),T3.delete(a)}};if(!d)p();else if(l===`raf`){var m=requestAnimationFrame(p);C3.set(a,m)}else if(typeof l==`number`){if(!w3.has(a)){p();var h=setTimeout(p,l);w3.set(a,h)}}else p()}}});var bfe=$([$([uQ],e=>e.tooltipItemPayloads),(e,t)=>t,(e,t,n)=>n],(e,t,n)=>{if(t!=null){var r=e.find(e=>e.settings.graphicalItemId===n);if(r!=null){var i=r.getPosition;if(i!=null)return i(t)}}}),E3=yL(`touchMove`),D3=$L(),O3=null,k3=null,A3=null,j3=null;D3.startListening({actionCreator:E3,effect:(e,t)=>{var n=e.payload;if(n.touches!=null&&n.touches.length!==0){j3=b3(n);var r=t.getState().eventSettings,i=r.throttleDelay,a=r.throttledEvents,o=a===`all`||a.includes(`touchmove`);O3!==null&&(cancelAnimationFrame(O3),O3=null),k3===null||typeof i==`number`&&o||(clearTimeout(k3),k3=null),A3=Array.from(n.touches).map(e=>n3({clientX:e.clientX,clientY:e.clientY,currentTarget:n.currentTarget}));var s=()=>{if(j3!=null){var e=t.getState(),n=jZ(e,e.tooltip.settings.shared);if(n===`axis`){var r=A3?.[0];if(r==null){O3=null,k3=null;return}var i=t3(e,r);i?.activeIndex!=null&&t.dispatch(WZ({activeIndex:i.activeIndex,activeDataKey:void 0,activeCoordinate:i.activeCoordinate}))}else if(n===`item`){var a=j3.touches[0];if(document.elementFromPoint==null||a==null)return;var o=document.elementFromPoint(a.clientX,a.clientY);if(!o||!o.getAttribute)return;var s=o.getAttribute(tse),c=o.getAttribute(`data-recharts-item-id`)??void 0,l=wQ(e).find(e=>e.id===c);if(s==null||l==null||c==null)return;var u=l.dataKey,d=bfe(e,s,c);t.dispatch(HZ({activeDataKey:u,activeIndex:s,activeCoordinate:d,activeGraphicalItemId:c}))}O3=null,k3=null}};o?i===`raf`?O3=requestAnimationFrame(s):typeof i==`number`&&k3===null&&(s(),j3=null,k3=setTimeout(()=>{j3?s():(k3=null,O3=null)},i)):s()}}});var M3={throttleDelay:`raf`,throttledEvents:[`mousemove`,`touchmove`,`pointermove`,`scroll`,`wheel`]},N3=OL({name:`eventSettings`,initialState:M3,reducers:{setEventSettings:(e,t)=>{t.payload.throttleDelay!=null&&(e.throttleDelay=t.payload.throttleDelay),t.payload.throttledEvents!=null&&(e.throttledEvents=_L(t.payload.throttledEvents))}}}),xfe=N3.actions.setEventSettings,Sfe=N3.reducer,Cfe=oI({brush:iue,cartesianAxis:Xle,chartData:S1,errorBars:mde,eventSettings:Sfe,graphicalItems:Ole,layout:Voe,legend:Bse,options:h1,polarAxis:Uce,polarOptions:yfe,referenceElements:sue,renderedTicks:Mue,rootProps:_fe,tooltip:JZ,zIndex:X$}),wfe=function(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:`Chart`;return poe({reducer:Cfe,preloadedState:e,middleware:e=>e({serializableCheck:!1,immutableCheck:![`commonjs`,`es6`,`production`].includes(`es6`)}).concat([i3.middleware,o3.middleware,g3.middleware,S3.middleware,D3.middleware]),enhancers:e=>{var t=e;return typeof e==`function`&&(t=e()),t.concat(EL({type:`raf`}))},devTools:hz.devToolsEnabled&&{serialize:{replacer:gfe},name:`recharts-${t}`}})};function Tfe(e){var t=e.preloadedState,n=e.children,r=e.reduxStoreName,i=DR(),a=(0,y.useRef)(null);if(i)return n;a.current??=wfe(t,r);var o=LF;return y.createElement(ece,{context:o,store:a.current},n)}function Efe(e){var t=e.layout,n=e.margin,r=RF(),i=DR();return(0,y.useEffect)(()=>{i||(r(Roe(t)),r(Loe(n)))},[r,i,t,n]),null}var Dfe=(0,y.memo)(Efe,$R);function Ofe(e){var t=RF();return(0,y.useEffect)(()=>{t(vfe(e))},[t,e]),null}var kfe=(0,y.memo)(e=>{var t=RF();return(0,y.useEffect)(()=>{t(xfe(e))},[t,e]),null},$R);function P3(e){var t=e.zIndex,n=e.isPanorama,r=(0,y.useRef)(null),i=RF();return(0,y.useLayoutEffect)(()=>(r.current&&i(J$({zIndex:t,element:r.current,isPanorama:n})),()=>{i(Y$({zIndex:t,isPanorama:n}))}),[i,t,n]),y.createElement(`g`,{tabIndex:-1,ref:r,className:`recharts-zIndex-layer_${t}`})}function F3(e){var t=e.children,n=e.isPanorama,r=BF(F$);if(!r||r.length===0)return t;var i=r.filter(e=>e<0),a=r.filter(e=>e>0);return y.createElement(y.Fragment,null,i.map(e=>y.createElement(P3,{key:e,zIndex:e,isPanorama:n})),t,a.map(e=>y.createElement(P3,{key:e,zIndex:e,isPanorama:n})))}var Afe=[`children`];function jfe(e,t){if(e==null)return{};var n,r,i=Mfe(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Mfe(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function I3(){return I3=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},I3.apply(null,arguments)}var Nfe={width:`100%`,height:`100%`,display:`block`},Pfe=(0,y.forwardRef)((e,t)=>{var n=HR(),r=UR(),i=Lz();if(!aR(n)||!aR(r))return null;var a=e.children,o=e.otherAttributes,s=e.title,c=e.desc,l,u;return o!=null&&(l=typeof o.tabIndex==`number`?o.tabIndex:i?0:void 0,u=typeof o.role==`string`?o.role:i?`application`:void 0),y.createElement(qM,I3({},o,{title:s,desc:c,role:u,tabIndex:l,width:n,height:r,style:Nfe,ref:t}),a)}),Ffe=e=>{var t=e.children,n=BF(kR);if(!n)return null;var r=n.width,i=n.height,a=n.y,o=n.x;return y.createElement(qM,{width:r,height:i,x:o,y:a},t)},L3=(0,y.forwardRef)((e,t)=>{var n=e.children,r=jfe(e,Afe);return DR()?y.createElement(Ffe,null,y.createElement(F3,{isPanorama:!0},n)):y.createElement(Pfe,I3({ref:t},r),y.createElement(F3,{isPanorama:!1},n))});function Ife(e,t){return Bfe(e)||zfe(e,t)||Rfe(e,t)||Lfe()}function Lfe(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Rfe(e,t){if(e){if(typeof e==`string`)return R3(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)?R3(e,t):void 0}}function R3(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function zfe(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function Bfe(e){if(Array.isArray(e))return e}function Vfe(){var e=RF(),t=Ife((0,y.useState)(null),2),n=t[0],r=t[1],i=BF(ese);return(0,y.useEffect)(()=>{if(n!=null){var t=n.getBoundingClientRect().width/n.offsetWidth;iR(t)&&t!==i&&e(Boe(t))}},[n,e,i]),r}function z3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Hfe(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?z3(Object(n),!0).forEach(function(t){Ufe(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):z3(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ufe(e,t,n){return(t=Wfe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Wfe(e){var t=Gfe(e,`string`);return typeof t==`symbol`?t:t+``}function Gfe(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function B3(){return B3=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},B3.apply(null,arguments)}function V3(e,t){return Yfe(e)||Jfe(e,t)||qfe(e,t)||Kfe()}function Kfe(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function qfe(e,t){if(e){if(typeof e==`string`)return H3(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)?H3(e,t):void 0}}function H3(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Jfe(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r,i,a,o,s=[],c=!0,l=!1;try{if(a=(n=n.call(e)).next,t===0){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=a.call(n)).done)&&(s.push(r.value),s.length!==t);c=!0);}catch(e){l=!0,i=e}finally{try{if(!c&&n.return!=null&&(o=n.return(),Object(o)!==o))return}finally{if(l)throw i}}return s}}function Yfe(e){if(Array.isArray(e))return e}var Xfe=()=>(N1(),null);function U3(e){if(typeof e==`number`)return e;if(typeof e==`string`){var t=parseFloat(e);if(!Number.isNaN(t))return t}return 0}var Zfe=(0,y.forwardRef)((e,t)=>{var n=(0,y.useRef)(null),r=V3((0,y.useState)({containerWidth:U3(e.style?.width),containerHeight:U3(e.style?.height)}),2),i=r[0],a=r[1],o=(0,y.useCallback)((e,t)=>{a(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),s=(0,y.useCallback)(e=>{if(typeof t==`function`&&t(e),n.current!=null&&(n.current.disconnect(),n.current=null),e!=null&&typeof ResizeObserver<`u`){var r=e.getBoundingClientRect(),i=r.width,a=r.height;o(i,a);var s=new ResizeObserver(e=>{var t=e[0];if(t!=null){var n=t.contentRect,r=n.width,i=n.height;o(r,i)}});s.observe(e),n.current=s}},[t,o]);return(0,y.useEffect)(()=>()=>{n.current?.disconnect()},[o]),y.createElement(y.Fragment,null,y.createElement(JR,{width:i.containerWidth,height:i.containerHeight}),y.createElement(`div`,B3({ref:s},e)))}),Qfe=(0,y.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=V3((0,y.useState)({containerWidth:U3(n),containerHeight:U3(r)}),2),a=i[0],o=i[1],s=(0,y.useCallback)((e,t)=>{o(n=>{var r=Math.round(e),i=Math.round(t);return n.containerWidth===r&&n.containerHeight===i?n:{containerWidth:r,containerHeight:i}})},[]),c=(0,y.useCallback)(e=>{if(typeof t==`function`&&t(e),e!=null){var n=e.getBoundingClientRect(),r=n.width,i=n.height;s(r,i)}},[t,s]);return y.createElement(y.Fragment,null,y.createElement(JR,{width:a.containerWidth,height:a.containerHeight}),y.createElement(`div`,B3({ref:c},e)))}),$fe=(0,y.forwardRef)((e,t)=>{var n=e.width,r=e.height;return y.createElement(y.Fragment,null,y.createElement(JR,{width:n,height:r}),y.createElement(`div`,B3({ref:t},e)))}),epe=(0,y.forwardRef)((e,t)=>{var n=e.width,r=e.height;return typeof n==`string`||typeof r==`string`?y.createElement(Qfe,B3({},e,{ref:t})):typeof n==`number`&&typeof r==`number`?y.createElement($fe,B3({},e,{width:n,height:r,ref:t})):y.createElement(y.Fragment,null,y.createElement(JR,{width:n,height:r}),y.createElement(`div`,B3({ref:t},e)))});function tpe(e){return e?Zfe:epe}var npe=(0,y.forwardRef)((e,t)=>{var n=e.children,r=e.className,i=e.height,a=e.onClick,o=e.onContextMenu,s=e.onDoubleClick,c=e.onMouseDown,l=e.onMouseEnter,u=e.onMouseLeave,d=e.onMouseMove,f=e.onMouseUp,p=e.onTouchEnd,m=e.onTouchMove,h=e.onTouchStart,g=e.style,_=e.width,v=e.responsive,b=e.dispatchTouchEvents,x=b===void 0||b,S=(0,y.useRef)(null),C=RF(),w=V3((0,y.useState)(null),2),T=w[0],E=w[1],D=V3((0,y.useState)(null),2),O=D[0],ee=D[1],k=Vfe(),te=zR(),A=te?.width>0?te.width:_,j=te?.height>0?te.height:i,M=(0,y.useCallback)(e=>{k(e),typeof t==`function`&&t(e),E(e),ee(e),e!=null&&(S.current=e)},[k,t,E,ee]),N=(0,y.useCallback)(e=>{C(r3(e)),C(x3({handler:a,reactEvent:e}))},[C,a]),ne=(0,y.useCallback)(e=>{C(a3(e)),C(x3({handler:l,reactEvent:e}))},[C,l]),re=(0,y.useCallback)(e=>{C(UZ()),C(x3({handler:u,reactEvent:e}))},[C,u]),ie=(0,y.useCallback)(e=>{C(a3(e)),C(x3({handler:d,reactEvent:e}))},[C,d]),P=(0,y.useCallback)(()=>{C(m3())},[C]),ae=(0,y.useCallback)(()=>{C(h3())},[C]),oe=(0,y.useCallback)(e=>{C(p3(e.key))},[C]),se=(0,y.useCallback)(e=>{C(x3({handler:o,reactEvent:e}))},[C,o]),ce=(0,y.useCallback)(e=>{C(x3({handler:s,reactEvent:e}))},[C,s]),le=(0,y.useCallback)(e=>{C(x3({handler:c,reactEvent:e}))},[C,c]),ue=(0,y.useCallback)(e=>{C(x3({handler:f,reactEvent:e}))},[C,f]),de=(0,y.useCallback)(e=>{C(x3({handler:h,reactEvent:e}))},[C,h]),fe=(0,y.useCallback)(e=>{x&&C(E3(e)),C(x3({handler:m,reactEvent:e}))},[C,x,m]),pe=(0,y.useCallback)(e=>{C(x3({handler:p,reactEvent:e}))},[C,p]),me=tpe(v);return y.createElement(s1.Provider,{value:T},y.createElement(FN.Provider,{value:O},y.createElement(me,{width:A??g?.width,height:j??g?.height,className:wn(`recharts-wrapper`,r),style:Hfe({position:`relative`,cursor:`default`,width:A,height:j},g),onClick:N,onContextMenu:se,onDoubleClick:ce,onFocus:P,onBlur:ae,onKeyDown:oe,onMouseDown:le,onMouseEnter:ne,onMouseLeave:re,onMouseMove:ie,onMouseUp:ue,onTouchEnd:pe,onTouchMove:fe,onTouchStart:de,ref:M},y.createElement(Xfe,null),n)))}),rpe=[`width`,`height`,`responsive`,`children`,`className`,`style`,`compact`,`title`,`desc`];function ipe(e,t){if(e==null)return{};var n,r,i=ape(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function ape(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var ope=(0,y.forwardRef)((e,t)=>{var n=e.width,r=e.height,i=e.responsive,a=e.children,o=e.className,s=e.style,c=e.compact,l=e.title,u=e.desc,d=zM(ipe(e,rpe));return c?y.createElement(y.Fragment,null,y.createElement(JR,{width:n,height:r}),y.createElement(L3,{otherAttributes:d,title:l,desc:u},a)):y.createElement(npe,{className:o,style:s,width:n,height:r,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},y.createElement(L3,{otherAttributes:d,title:l,desc:u,ref:t},y.createElement(mue,null,a)))});function W3(){return W3=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},W3.apply(null,arguments)}function G3(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function spe(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?G3(Object(n),!0).forEach(function(t){cpe(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):G3(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function cpe(e,t,n){return(t=lpe(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function lpe(e){var t=upe(e,`string`);return typeof t==`symbol`?t:t+``}function upe(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var dpe=spe({accessibilityLayer:!0,barCategoryGap:`10%`,barGap:4,layout:`horizontal`,margin:{top:5,right:5,bottom:5,left:5},responsive:!1,reverseStackOrder:!1,stackOffset:`none`,syncMethod:`index`},M3),fpe=(0,y.forwardRef)(function(e,t){var n=WP(e.categoricalChartProps,dpe),r=e.chartName,i=e.defaultTooltipEventType,a=e.validateTooltipEventTypes,o=e.tooltipPayloadSearcher,s=e.categoricalChartProps,c={chartName:r,defaultTooltipEventType:i,validateTooltipEventTypes:a,tooltipPayloadSearcher:o,eventEmitter:void 0};return y.createElement(Tfe,{preloadedState:{options:c},reduxStoreName:s.id??r},y.createElement(rue,{chartData:s.data}),y.createElement(Dfe,{layout:n.layout,margin:n.margin}),y.createElement(kfe,{throttleDelay:n.throttleDelay,throttledEvents:n.throttledEvents}),y.createElement(Ofe,{baseValue:n.baseValue,accessibilityLayer:n.accessibilityLayer,barCategoryGap:n.barCategoryGap,maxBarSize:n.maxBarSize,stackOffset:n.stackOffset,barGap:n.barGap,barSize:n.barSize,syncId:n.syncId,syncMethod:n.syncMethod,className:n.className,reverseStackOrder:n.reverseStackOrder}),y.createElement(ope,W3({},n,{ref:t})))}),ppe=[`axis`],mpe=(0,y.forwardRef)((e,t)=>y.createElement(fpe,{chartName:`AreaChart`,defaultTooltipEventType:`axis`,validateTooltipEventTypes:ppe,tooltipPayloadSearcher:p1,categoricalChartProps:e,ref:t})),K3=e=>[`N`,`NNE`,`NE`,`ENE`,`E`,`ESE`,`SE`,`SSE`,`S`,`SSW`,`SW`,`WSW`,`W`,`WNW`,`NW`,`NNW`][Math.round(((e%=360)<0?e+360:e)/22.5)%16],hpe=({active:e,payload:t,label:n})=>{if(e&&t&&t.length){let e=t[0].payload;return(0,z.jsxs)(`div`,{className:`bg-white p-3 rounded-lg shadow-lg border border-gray-100 text-sm`,children:[(0,z.jsx)(`p`,{className:`font-semibold text-gray-900 mb-2`,children:CM(new Date(n),`h:mm a, MMM d`)}),(0,z.jsxs)(`div`,{className:`space-y-1`,children:[(0,z.jsxs)(`p`,{className:`text-blue-600 font-medium`,children:[`Height: `,e.height,` ft`]}),(0,z.jsxs)(`p`,{className:`text-gray-600`,children:[`Period: `,e.period,` s`]}),(0,z.jsxs)(`p`,{className:`text-gray-600`,children:[`Direction: `,e.direction,`° `,K3(e.direction)]})]})]})}return null},gpe=({lat:e,lon:t,locationName:n})=>{let[r,i]=(0,y.useState)(null),[a,o]=(0,y.useState)(!0),[s,c]=(0,y.useState)(null),l=async()=>{o(!0),c(null);try{let n=await NM(e,t);i(n.waveData)}catch(e){console.warn(`Wave API Error`,e);let t=Array.from({length:24}).map((e,t)=>({time:new Date(Date.now()+t*36e5).toISOString(),height:Number((5+Math.sin(t/4)*2+Math.random()).toFixed(1)),period:10+Math.floor(Math.sin(t/6)*3),direction:270+Math.floor(Math.sin(t/8)*20)}));i(t)}finally{o(!1)}};(0,y.useEffect)(()=>{l()},[e,t]);let u=(0,y.useMemo)(()=>r?.[0]||null,[r]);return(0,z.jsxs)(`div`,{className:`bg-white rounded-2xl shadow-sm border border-gray-100 overflow-hidden relative`,children:[(0,z.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:[(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`h3`,{className:`font-bold text-gray-900 flex items-center gap-2`,children:[(0,z.jsx)(ga,{className:`w-5 h-5 text-indigo-500`}),`Marine Forecast`]}),(0,z.jsxs)(`p`,{className:`text-xs text-gray-500 mt-1`,children:[`Coastal conditions near `,n]})]}),u&&!a&&(0,z.jsxs)(`div`,{className:`flex gap-4 sm:gap-6 bg-white px-4 py-2 rounded-xl border border-gray-100 shadow-sm`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,z.jsx)(`span`,{className:`text-[10px] text-gray-400 font-bold uppercase tracking-wider mb-0.5`,children:`Height`}),(0,z.jsxs)(`span`,{className:`text-base font-bold text-indigo-600`,children:[u.height,` ft`]})]}),(0,z.jsx)(`div`,{className:`w-px bg-gray-100`}),(0,z.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,z.jsx)(`span`,{className:`text-[10px] text-gray-400 font-bold uppercase tracking-wider mb-0.5`,children:`Period`}),(0,z.jsxs)(`span`,{className:`text-base font-bold text-gray-700`,children:[u.period,`s`]})]}),(0,z.jsx)(`div`,{className:`w-px bg-gray-100`}),(0,z.jsxs)(`div`,{className:`flex flex-col items-center`,children:[(0,z.jsx)(`span`,{className:`text-[10px] text-gray-400 font-bold uppercase tracking-wider mb-0.5`,children:`Direction`}),(0,z.jsxs)(`div`,{className:`flex items-center text-sm font-bold text-gray-700`,children:[(0,z.jsx)($a,{className:`w-3.5 h-3.5 mr-1 text-gray-400`,style:{transform:`rotate(${u.direction}deg)`}}),K3(u.direction)]})]})]})]}),a&&!r?(0,z.jsx)(`div`,{className:`p-6`,children:(0,z.jsx)(TM,{className:`w-full h-[200px] rounded-xl`})}):(0,z.jsx)(`div`,{className:`p-4 h-64 w-full`,children:(0,z.jsx)(Pse,{width:`100%`,height:`100%`,children:(0,z.jsxs)(mpe,{data:r,margin:{top:10,right:10,left:-20,bottom:0},children:[(0,z.jsx)(`defs`,{children:(0,z.jsxs)(`linearGradient`,{id:`waveGradient`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,z.jsx)(`stop`,{offset:`5%`,stopColor:`#6366f1`,stopOpacity:.3}),(0,z.jsx)(`stop`,{offset:`95%`,stopColor:`#6366f1`,stopOpacity:0})]})}),(0,z.jsx)(b4,{strokeDasharray:`3 3`,vertical:!1,stroke:`#f1f5f9`}),(0,z.jsx)(Y4,{dataKey:`time`,tickFormatter:e=>CM(new Date(e),`ha`),tick:{fontSize:12,fill:`#64748b`},axisLine:!1,tickLine:!1,minTickGap:30}),(0,z.jsx)(e3,{tick:{fontSize:12,fill:`#64748b`},axisLine:!1,tickLine:!1,tickFormatter:e=>`${e}ft`}),(0,z.jsx)(X1,{content:(0,z.jsx)(hpe,{})}),(0,z.jsx)(V4,{type:`monotone`,dataKey:`height`,stroke:`#6366f1`,strokeWidth:3,fill:`url(#waveGradient)`})]})})})]})},q3=({townName:e,townSlug:t,lat:n,lon:r,defaultStationId:i})=>{let a=DM(e,n,r),o=i||(a?a.id:`9435380`);return(0,z.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-8 w-full max-w-7xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`h-full min-h-[500px]`,children:(0,z.jsx)(jM,{defaultStationId:o})}),(0,z.jsx)(`div`,{className:`h-full min-h-[500px]`,children:(0,z.jsx)(gpe,{lat:n,lon:r})})]})},J3=`https://pnwlighthouses.com`,Y3=`https://pnwscenictrains.com`,X3=`https://waterfallsoregon.com`,Z3=`https://pnwcrabbing.com`,_pe={astoria:{lighthouses:[{label:`Desdemona Sands Lighthouse`,url:`${J3}/desdemona-sands-lighthouse/`}],crabbing:[{label:`Columbia River`,url:`${Z3}/columbia-river/`}]},warrenton:{lighthouses:[{label:`Point Adams Lighthouse`,url:`${J3}/point-adams-lighthouse/`}],crabbing:[{label:`Columbia River`,url:`${Z3}/columbia-river/`}]},seaside:{lighthouses:[{label:`Tillamook Rock Lighthouse`,url:`${J3}/tillamook-rock-lighthouse/`}],crabbing:[{label:`Necanicum River`,url:`${Z3}/necanicum-river/`}]},"cannon-beach":{lighthouses:[{label:`Tillamook Rock Lighthouse`,url:`${J3}/tillamook-rock-lighthouse/`}]},"tolovana-park":{lighthouses:[{label:`Tillamook Rock Lighthouse`,url:`${J3}/tillamook-rock-lighthouse/`}]},manzanita:{crabbing:[{label:`Nehalem Bay`,url:`${Z3}/nehalem-bay/`}]},nehalem:{crabbing:[{label:`Nehalem Bay`,url:`${Z3}/nehalem-bay/`}]},wheeler:{crabbing:[{label:`Nehalem Bay`,url:`${Z3}/nehalem-bay/`}]},"rockaway-beach":{trains:[{label:`Oregon Coast Scenic Railroad`,url:`${Y3}/oregon-coast-scenic-railroad/`}]},garibaldi:{trains:[{label:`Oregon Coast Scenic Railroad`,url:`${Y3}/oregon-coast-scenic-railroad/`}],crabbing:[{label:`Tillamook Bay`,url:`${Z3}/tillamook-bay/`}]},"bay-city":{crabbing:[{label:`Tillamook Bay`,url:`${Z3}/tillamook-bay/`}]},tillamook:{lighthouses:[{label:`Cape Meares Lighthouse`,url:`${J3}/cape-meares-lighthouse/`}],waterfalls:[{label:`Munson Creek Falls, Nehalem Falls & more Coast Range waterfalls`,url:`${X3}/regions/coast-range`}],crabbing:[{label:`Tillamook Bay`,url:`${Z3}/tillamook-bay/`}]},netarts:{crabbing:[{label:`Netarts Bay`,url:`${Z3}/netarts-bay/`}]},oceanside:{lighthouses:[{label:`Cape Meares Lighthouse`,url:`${J3}/cape-meares-lighthouse/`}],crabbing:[{label:`Netarts Bay`,url:`${Z3}/netarts-bay/`}]},"pacific-city":{crabbing:[{label:`Nestucca Bay`,url:`${Z3}/nestucca-bay/`}]},"lincoln-city":{waterfalls:[{label:`Drift Creek Falls, Chitwood Falls & more Coast Range waterfalls`,url:`${X3}/regions/coast-range`}],crabbing:[{label:`Siletz Bay`,url:`${Z3}/siletz-bay/`}]},"gleneden-beach":{crabbing:[{label:`Siletz Bay`,url:`${Z3}/siletz-bay/`}]},"depoe-bay":{whales:[{label:`Live whale sightings map`,url:`https://whalewatching.live/#map`}]},newport:{lighthouses:[{label:`Yaquina Head Lighthouse`,url:`${J3}/yaquina-head-lighthouse/`},{label:`Yaquina Bay Lighthouse`,url:`${J3}/yaquina-bay-lighthouse/`}],waterfalls:[{label:`Drift Creek Falls, Alsea Falls & more Coast Range waterfalls`,url:`${X3}/regions/coast-range`}],crabbing:[{label:`Yaquina Bay`,url:`${Z3}/yaquina-bay/`}]},"south-beach":{lighthouses:[{label:`Yaquina Bay Lighthouse`,url:`${J3}/yaquina-bay-lighthouse/`}],crabbing:[{label:`Yaquina Bay`,url:`${Z3}/yaquina-bay/`}]},waldport:{crabbing:[{label:`Alsea Bay`,url:`${Z3}/alsea-bay/`}]},yachats:{lighthouses:[{label:`Cleft of the Rock Lighthouse`,url:`${J3}/cleft-of-the-rock-lighthouse/`}]},florence:{lighthouses:[{label:`Heceta Head Lighthouse`,url:`${J3}/heceta-head-lighthouse/`}],waterfalls:[{label:`Sweet Creek Falls, Kentucky Falls, Siuslaw Falls & more Coast Range waterfalls`,url:`${X3}/regions/coast-range`}],crabbing:[{label:`Siuslaw River`,url:`${Z3}/siuslaw-river/`}]},gardiner:{crabbing:[{label:`Umpqua River`,url:`${Z3}/umpqua-river/`}]},reedsport:{crabbing:[{label:`Umpqua River`,url:`${Z3}/umpqua-river/`}]},"winchester-bay":{lighthouses:[{label:`Umpqua River Lighthouse`,url:`${J3}/umpqua-river-lighthouse/`}],crabbing:[{label:`Umpqua River`,url:`${Z3}/umpqua-river/`}]},"coos-bay":{lighthouses:[{label:`Cape Arago Lighthouse`,url:`${J3}/cape-arago-lighthouse/`}],waterfalls:[{label:`Golden & Silver Falls, Laverne Falls & more Coast Range waterfalls`,url:`${X3}/regions/coast-range`}],crabbing:[{label:`Coos Bay`,url:`${Z3}/coos-bay/`}]},"north-bend":{crabbing:[{label:`Coos Bay`,url:`${Z3}/coos-bay/`}]},charleston:{lighthouses:[{label:`Cape Arago Lighthouse`,url:`${J3}/cape-arago-lighthouse/`}],crabbing:[{label:`Coos Bay`,url:`${Z3}/coos-bay/`}]},bandon:{lighthouses:[{label:`Coquille River Lighthouse`,url:`${J3}/coquille-river-lighthouse/`}],crabbing:[{label:`Coquille River`,url:`${Z3}/coquille-river/`}]},"port-orford":{lighthouses:[{label:`Cape Blanco Lighthouse`,url:`${J3}/cape-blanco-lighthouse/`}],crabbing:[{label:`Port Orford`,url:`${Z3}/port-orford/`}]},"gold-beach":{waterfalls:[{label:`Coquille River Falls & more Southern Oregon waterfalls`,url:`${X3}/regions/rogue-river`}],crabbing:[{label:`Rogue River`,url:`${Z3}/rogue-river/`}]},brookings:{lighthouses:[{label:`Pelican Bay Lighthouse`,url:`${J3}/pelican-bay-lighthouse/`}],crabbing:[{label:`Chetco River`,url:`${Z3}/chetco-river/`}]},harbor:{crabbing:[{label:`Chetco River`,url:`${Z3}/chetco-river/`}]}},vpe=[{key:`lighthouses`,heading:`Lighthouses in this area`,Icon:yo,site:`PNWLighthouses.com`},{key:`trains`,heading:`Train rides in this area`,Icon:Zo,site:`PNWScenicTrains.com`},{key:`waterfalls`,heading:`Waterfalls in this area`,Icon:to,site:`WaterfallsOregon.com`},{key:`crabbing`,heading:`Crabbing locations in this area`,Icon:Uo,site:`PNWCrabbing.com`},{key:`whales`,heading:`Whale watching in this area`,Icon:Da,site:`WhaleWatching.live`}],Q3={1:`sm:grid-cols-1 max-w-xl`,2:`sm:grid-cols-2 max-w-4xl`,3:`sm:grid-cols-2 lg:grid-cols-3 max-w-7xl`,4:`sm:grid-cols-2 lg:grid-cols-4 max-w-7xl`,5:`sm:grid-cols-2 lg:grid-cols-5 max-w-7xl`},$3=({townSlug:e})=>{let t=e?_pe[e]:null;if(!t)return null;let n=vpe.map(e=>({...e,links:t[e.key]||[]})).filter(e=>e.links.length>0);return n.length===0?null:(0,z.jsx)(`section`,{className:`bg-parchment border-b border-border py-14 px-4`,"aria-label":`More to explore in this area`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-10`,children:[(0,z.jsx)(`p`,{className:`text-xs font-sans font-bold uppercase tracking-[0.3em] text-[#9a7b1c] mb-3`,children:`Pacific Northwest Travel Network`}),(0,z.jsx)(`div`,{className:`h-px w-24 bg-[#c9a227] mx-auto`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 ${Q3[n.length]||Q3[3]} gap-6 mx-auto`,children:n.map((e,t)=>(0,z.jsxs)(q.article,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:t*.08},className:`editorial-card bg-white p-6 border-t-4 border-t-[#c9a227] flex flex-col`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,z.jsx)(`span`,{className:`flex items-center justify-center w-11 h-11 rounded-full bg-primary shrink-0`,children:(0,z.jsx)(e.Icon,{className:`w-5 h-5 text-[#e7c65a]`})}),(0,z.jsx)(`h3`,{className:`text-lg font-serif font-bold uppercase tracking-widest text-primary leading-snug`,children:e.heading})]}),(0,z.jsx)(`ul`,{className:`space-y-2.5 flex-grow`,children:e.links.map(e=>(0,z.jsx)(`li`,{children:(0,z.jsxs)(`a`,{href:e.url,target:`_blank`,rel:`noopener noreferrer`,className:`group inline-flex items-start gap-1.5 text-[15px] font-sans text-primary underline decoration-[#c9a227] decoration-2 underline-offset-4 hover:text-sage transition-colors`,children:[(0,z.jsx)(`span`,{children:e.label}),(0,z.jsx)(Ca,{className:`w-4 h-4 mt-0.5 shrink-0 text-[#9a7b1c] group-hover:text-sage transition-colors`})]})},e.url+e.label))}),(0,z.jsx)(`p`,{className:`mt-5 pt-4 border-t border-border text-[11px] font-sans font-bold uppercase tracking-[0.2em] text-muted-foreground`,children:e.site})]},e.key))})]})})},e6={},ype=18e5,t6={"User-Agent":`(OregonCoastalGuide, [email protected])`,Accept:`application/geo+json`},bpe=async(e,t)=>{let n=`${e.toFixed(4)},${t.toFixed(4)}`;if(e6[n]&&Date.now()-e6[n].timestamp<ype)return e6[n].data;try{let r=await fetch(`https://api.weather.gov/points/${e},${t}`,{headers:t6});if(!r.ok)throw Error(`Failed to fetch NOAA points data`);let i=await r.json(),a=i.properties.forecast,o=i.properties.forecastHourly,[s,c]=await Promise.all([fetch(a,{headers:t6}),fetch(o,{headers:t6})]);if(!s.ok||!c.ok)throw Error(`Failed to fetch NOAA forecast data`);let l=await s.json(),u=(await c.json()).properties.periods[0]||{},d=l.properties.periods||[],f={};d.forEach(e=>{let t=new Date(e.startTime).toLocaleDateString(`en-US`,{timeZone:`America/Los_Angeles`});f[t]||(f[t]={date:new Date(e.startTime),high:-1/0,low:1/0,condition:e.shortForecast,icon:e.icon}),e.temperature>f[t].high&&(f[t].high=e.temperature),e.temperature<f[t].low&&(f[t].low=e.temperature),e.isDaytime&&(f[t].condition=e.shortForecast,f[t].icon=e.icon)});let p=Object.values(f).sort((e,t)=>e.date-t.date).slice(0,5),m={current:{temp:u.temperature||0,high:p[0]?.high||u.temperature,low:p[0]?.low||u.temperature-10,condition:u.shortForecast||`Clear`,description:u.shortForecast||``,icon:u.icon,humidity:u.relativeHumidity?.value||50,windSpeed:parseInt(u.windSpeed)||0,windDirection:u.windDirection||`N`,pressure:1013},forecast:p};return e6[n]={data:m,timestamp:Date.now()},m}catch(e){throw console.error(`NOAA API Error:`,e),e}},xpe=(e,t)=>{let[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(!0),[o,s]=(0,y.useState)(null);return(0,y.useEffect)(()=>{let n=!0,i,o=async()=>{a(!0),s(null);try{let i=await bpe(e,t);n&&(r(i),a(!1))}catch(e){console.warn(`Weather API error, using mock data:`,e);let t={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((e,t)=>({date:new Date(Date.now()+(t+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:``}))};n&&(r(t),a(!1))}};return o(),i=setInterval(o,18e5),()=>{n=!1,clearInterval(i)}},[e,t]),{data:n,loading:i,error:o}},n6=({lat:e=46.1878,lon:t=-123.8244,townName:n=`Coastal Town`})=>{let{data:r,loading:i,error:a}=xpe(e,t),o=(0,y.useMemo)(()=>{if(!r)return`bg-gradient-to-b from-blue-400 to-blue-600 text-white`;let e=r.current.condition.toLowerCase();return e.includes(`night`)?`bg-gradient-to-b from-slate-800 to-slate-900 text-white`:e.includes(`rain`)||e.includes(`showers`)?`bg-gradient-to-b from-slate-600 to-slate-800 text-white`:e.includes(`cloud`)||e.includes(`overcast`)?`bg-gradient-to-b from-slate-400 to-slate-600 text-white`:e.includes(`clear`)||e.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`},[r]);if(a)return(0,z.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||!r)return(0,z.jsxs)(`div`,{className:`rounded-none p-6 shadow-editorial w-full mx-auto min-h-[400px] flex flex-col bg-gray-50`,children:[(0,z.jsx)(TM,{className:`h-8 w-32 mx-auto mb-2 rounded-none`}),(0,z.jsx)(TM,{className:`h-24 w-32 mx-auto mb-2 rounded-none`}),(0,z.jsx)(TM,{className:`h-6 w-24 mx-auto mb-8 rounded-none`}),(0,z.jsx)(`div`,{className:`space-y-3 mt-auto`,children:[1,2,3,4,5].map(e=>(0,z.jsx)(TM,{className:`h-8 w-full rounded-none`},e))})]});let{current:s,forecast:c}=r,l=(e,t=`w-6 h-6`)=>{let n=e?.toLowerCase()||``;return n.includes(`clear`)||n.includes(`sun`)?(0,z.jsx)(Xo,{className:`${t} text-yellow-300`}):n.includes(`rain`)||n.includes(`shower`)?(0,z.jsx)(Ya,{className:`${t} text-blue-200`}):(0,z.jsx)(Xa,{className:`${t} text-gray-200`})};return(0,z.jsxs)(`div`,{className:`rounded-none shadow-editorial p-6 w-full h-full overflow-hidden relative ${o}`,children:[(0,z.jsx)(`div`,{className:`absolute -top-24 -right-24 w-48 h-48 bg-white/10 rounded-full blur-3xl pointer-events-none`}),(0,z.jsx)(`div`,{className:`absolute -bottom-24 -left-24 w-64 h-64 bg-black/10 rounded-full blur-3xl pointer-events-none`}),(0,z.jsxs)(`div`,{className:`relative z-10`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-6`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-medium tracking-wide mb-1 drop-shadow-sm`,children:n}),(0,z.jsxs)(`div`,{className:`text-7xl font-thin tracking-tighter mb-2 ml-4 drop-shadow-sm`,children:[s.temp,`°`]}),(0,z.jsx)(`p`,{className:`text-lg font-medium capitalize mb-1 drop-shadow-sm`,children:s.condition}),(0,z.jsxs)(`div`,{className:`flex items-center justify-center space-x-3 text-sm opacity-90 font-medium`,children:[(0,z.jsxs)(`span`,{children:[`H:`,s.high,`°`]}),(0,z.jsxs)(`span`,{children:[`L:`,s.low,`°`]})]})]}),(0,z.jsxs)(`div`,{className:`grid grid-cols-3 gap-2 bg-black/10 rounded-none shadow-editorial p-4 mb-6 backdrop-blur-md`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col items-center justify-center text-center`,children:[(0,z.jsx)(us,{className:`w-5 h-5 opacity-70 mb-1`}),(0,z.jsx)(`span`,{className:`text-xs opacity-70 mb-0.5`,children:`Wind`}),(0,z.jsxs)(`span`,{className:`text-sm font-semibold`,children:[s.windSpeed,` mph `,s.windDirection]})]}),(0,z.jsxs)(`div`,{className:`flex flex-col items-center justify-center text-center`,children:[(0,z.jsx)(to,{className:`w-5 h-5 opacity-70 mb-1`}),(0,z.jsx)(`span`,{className:`text-xs opacity-70 mb-0.5`,children:`Humidity`}),(0,z.jsxs)(`span`,{className:`text-sm font-semibold`,children:[s.humidity,`%`]})]}),(0,z.jsxs)(`div`,{className:`flex flex-col items-center justify-center text-center`,children:[(0,z.jsx)(so,{className:`w-5 h-5 opacity-70 mb-1`}),(0,z.jsx)(`span`,{className:`text-xs opacity-70 mb-0.5`,children:`Pressure`}),(0,z.jsxs)(`span`,{className:`text-sm font-semibold`,children:[s.pressure,` mb`]})]})]}),(0,z.jsxs)(`div`,{className:`bg-black/10 rounded-none shadow-editorial p-4 backdrop-blur-md`,children:[(0,z.jsx)(`div`,{className:`text-xs font-semibold opacity-70 uppercase tracking-wider mb-4 pb-2`,children:`5-Day Forecast`}),(0,z.jsx)(`div`,{className:`space-y-4`,children:c.map((e,t)=>(0,z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,z.jsx)(`span`,{className:`w-12 text-sm font-medium opacity-90`,children:t===0?`Today`:CM(e.date,`EEE`)}),(0,z.jsx)(`div`,{className:`flex items-center justify-center w-10`,children:l(e.condition,`w-5 h-5`)}),(0,z.jsxs)(`div`,{className:`flex items-center space-x-3 w-24 justify-end text-sm`,children:[(0,z.jsxs)(`span`,{className:`opacity-70 font-medium`,children:[e.low,`°`]}),(0,z.jsx)(`div`,{className:`w-16 h-1.5 bg-black/20 rounded-none overflow-hidden`,children:(0,z.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,(e.high-e.low)/30*100))}%`,marginLeft:`${Math.min(50,Math.max(0,(e.low-30)/60*100))}%`}})}),(0,z.jsxs)(`span`,{className:`font-bold`,children:[e.high,`°`]})]})]},t))})]})]})]})},Spe=e=>{let[t,n]=(0,y.useState)(e||``),[r,i]=(0,y.useState)([]);(0,y.useEffect)(()=>{n(e||``)},[e]);let a=(0,y.useCallback)(()=>{if(!document)return;let e=[];document.queryCommandState(`bold`)&&e.push(`bold`),document.queryCommandState(`italic`)&&e.push(`italic`),document.queryCommandState(`underline`)&&e.push(`underline`),document.queryCommandState(`strikeThrough`)&&e.push(`strikeThrough`),document.queryCommandState(`insertUnorderedList`)&&e.push(`insertUnorderedList`),document.queryCommandState(`insertOrderedList`)&&e.push(`insertOrderedList`),document.queryCommandState(`justifyLeft`)&&e.push(`justifyLeft`),document.queryCommandState(`justifyCenter`)&&e.push(`justifyCenter`),document.queryCommandState(`justifyRight`)&&e.push(`justifyRight`);let t=document.queryCommandValue(`formatBlock`);t&&e.push(t.toLowerCase()),i(e)},[]);return{content:t,setContent:n,activeFormats:r,checkActiveFormats:a,applyFormat:(e,t=null)=>{document.execCommand(e,!1,t),a()},insertLink:(e,t)=>{if(t){let n=`<a href="${e}" target="_blank" rel="noopener noreferrer">${t}</a>`;document.execCommand(`insertHTML`,!1,n)}else document.execCommand(`createLink`,!1,e);a()},removeFormat:()=>{document.execCommand(`removeFormat`,!1,null),a()}}},r6=({active:e,onClick:t,icon:n,title:r,disabled:i})=>(0,z.jsx)(`button`,{type:`button`,onClick:e=>{e.preventDefault(),i||t()},disabled:i,className:R(`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:r,children:(0,z.jsx)(n,{className:`w-4 h-4`})}),Cpe=({isOpen:e,onClose:t,onSubmit:n,initialUrl:r=`https://`})=>{let[i,a]=(0,y.useState)(r),[o,s]=(0,y.useState)(``);return e?(0,z.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:[(0,z.jsx)(`h4`,{className:`text-sm font-semibold mb-3`,children:`Insert Link`}),(0,z.jsxs)(`div`,{className:`space-y-3`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`label`,{className:`block text-xs text-gray-500 mb-1`,children:`URL`}),(0,z.jsx)(`input`,{type:`text`,value:i,onChange:e=>a(e.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})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`label`,{className:`block text-xs text-gray-500 mb-1`,children:`Link Text (Optional)`}),(0,z.jsx)(`input`,{type:`text`,value:o,onChange:e=>s(e.target.value),className:`w-full text-sm border rounded px-2 py-1 focus:ring-2 focus:ring-[#2d5016] outline-none`,placeholder:`Click here`})]}),(0,z.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,z.jsx)(Bw,{variant:`ghost`,size:`sm`,onClick:t,className:`h-7 px-2`,children:`Cancel`}),(0,z.jsx)(Bw,{size:`sm`,onClick:()=>n(i,o),className:`h-7 px-2 bg-[#2d5016] text-white hover:bg-[#1a3b0b]`,children:`Insert`})]})]})]}):null},wpe=({content:e,onChange:t,className:n})=>{let r=(0,y.useRef)(null),[i,a]=(0,y.useState)(!1),{activeFormats:o,checkActiveFormats:s,applyFormat:c,insertLink:l,removeFormat:u}=Spe(e),[d,f]=(0,y.useState)(!1);(0,y.useEffect)(()=>{!i&&r.current&&r.current.innerHTML!==e&&(r.current.innerHTML=e)},[e,i]);let p=()=>{if(r.current){let e=r.current.innerHTML;t(e),s()}},m=(e,t)=>{r.current&&r.current.focus(),l(e,t),f(!1),p()},h=e=>{if(!i&&(e.ctrlKey||e.metaKey)){let t=null;e.key===`b`?t=`bold`:e.key===`i`?t=`italic`:e.key===`u`&&(t=`underline`),t&&(e.preventDefault(),c(t),p())}};return(0,z.jsxs)(`div`,{className:R(`border border-gray-300 rounded-lg bg-white overflow-hidden flex flex-col shadow-sm transition-all duration-200`,n),children:[(0,z.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:[(0,z.jsxs)(`div`,{className:R(`flex flex-wrap gap-1 items-center transition-opacity duration-200`,i?`opacity-30 pointer-events-none select-none grayscale`:`opacity-100`),children:[(0,z.jsx)(r6,{icon:ka,active:o.includes(`bold`),onClick:()=>c(`bold`),title:`Bold (Ctrl+B)`}),(0,z.jsx)(r6,{icon:vo,active:o.includes(`italic`),onClick:()=>c(`italic`),title:`Italic (Ctrl+I)`}),(0,z.jsx)(r6,{icon:ns,active:o.includes(`underline`),onClick:()=>c(`underline`),title:`Underline (Ctrl+U)`}),(0,z.jsx)(r6,{icon:Yo,active:o.includes(`strikethrough`),onClick:()=>c(`strikeThrough`),title:`Strikethrough`}),(0,z.jsx)(`div`,{className:`w-px h-6 bg-gray-300 mx-1`}),(0,z.jsx)(r6,{icon:uo,active:o.includes(`h2`),onClick:()=>c(`formatBlock`,`H2`),title:`Heading 2`}),(0,z.jsx)(r6,{icon:fo,active:o.includes(`h3`),onClick:()=>c(`formatBlock`,`H3`),title:`Heading 3`}),(0,z.jsx)(r6,{icon:Fo,active:o.includes(`p`),onClick:()=>c(`formatBlock`,`P`),title:`Paragraph`}),(0,z.jsx)(`div`,{className:`w-px h-6 bg-gray-300 mx-1`}),(0,z.jsx)(r6,{icon:Co,active:o.includes(`insertunorderedlist`),onClick:()=>c(`insertUnorderedList`),title:`Bullet List`}),(0,z.jsx)(r6,{icon:So,active:o.includes(`insertorderedlist`),onClick:()=>c(`insertOrderedList`),title:`Numbered List`}),(0,z.jsx)(`div`,{className:`w-px h-6 bg-gray-300 mx-1`}),(0,z.jsx)(r6,{icon:va,active:o.includes(`justifyleft`),onClick:()=>c(`justifyLeft`),title:`Align Left`}),(0,z.jsx)(r6,{icon:_a,active:o.includes(`justifycenter`),onClick:()=>c(`justifyCenter`),title:`Align Center`}),(0,z.jsx)(r6,{icon:ya,active:o.includes(`justifyright`),onClick:()=>c(`justifyRight`),title:`Align Right`}),(0,z.jsx)(`div`,{className:`w-px h-6 bg-gray-300 mx-1`}),(0,z.jsxs)(`div`,{className:`relative`,children:[(0,z.jsx)(r6,{icon:xo,active:!1,onClick:()=>f(!d),title:`Insert Link`}),(0,z.jsx)(Cpe,{isOpen:d,onClose:()=>f(!1),onSubmit:m})]}),(0,z.jsx)(r6,{icon:Bo,active:!1,onClick:()=>{u(),p()},title:`Clear Formatting`})]}),(0,z.jsx)(`div`,{className:`flex-grow`}),(0,z.jsx)(`div`,{className:`border-l border-gray-300 pl-1 ml-1`,children:(0,z.jsx)(r6,{icon:i?ro:Za,active:i,onClick:()=>a(!i),title:i?`Switch to Visual Editor`:`Switch to Code Editor`})})]}),(0,z.jsx)(`div`,{className:`flex-1 relative min-h-[200px] flex flex-col`,children:i?(0,z.jsx)(`textarea`,{value:e,onChange:e=>t(e.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 -->`}):(0,z.jsx)(`div`,{ref:r,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:p,onMouseUp:s,onKeyUp:e=>{s(),h(e)},onBlur:p})})]})},i6=({townName:e,initialDescription:t})=>{let{isAuthenticated:n}=Qd(),{toast:r}=Of(),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(t||``),[c,l]=(0,y.useState)(t||``),[u,d]=(0,y.useState)(!1),[f,p]=(0,y.useState)(!0);return(0,y.useEffect)(()=>{let n=!0;return e&&(async()=>{p(!0);try{let{data:r,error:i}=await Xd.from(`town_descriptions`).select(`description`).eq(`town_name`,e).order(`created_at`,{ascending:!1}).limit(1).maybeSingle();if(i)throw i;n&&(r&&r.description?(s(r.description),l(r.description)):t&&(s(t),l(t)))}catch(r){console.error(`Error fetching description for`,e,`:`,r),n&&t&&(s(t),l(t))}finally{n&&p(!1)}})(),()=>{n=!1}},[e,t]),(0,z.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:[(0,z.jsxs)(`div`,{className:`flex flex-col sm:flex-row justify-between items-start sm:items-center gap-4 mb-6`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:[`About `,e,` Oregon`]}),n&&!i&&!f&&(0,z.jsxs)(Bw,{variant:`outline`,size:`sm`,onClick:()=>a(!0),className:`shrink-0`,children:[(0,z.jsx)(No,{className:`w-4 h-4 mr-2`}),` Edit Description`]})]}),(0,z.jsx)(`div`,{className:`flex-grow`,children:f?(0,z.jsxs)(`div`,{className:`flex items-center justify-center h-full min-h-[150px] text-gray-400`,children:[(0,z.jsx)(wo,{className:`w-8 h-8 animate-spin`}),(0,z.jsx)(`span`,{className:`ml-3 text-sm font-medium`,children:`Loading description...`})]}):i?(0,z.jsxs)(`div`,{className:`space-y-4 animate-in fade-in duration-200`,children:[(0,z.jsx)(wpe,{content:c,onChange:l}),(0,z.jsxs)(`div`,{className:`flex justify-end gap-3 pt-2`,children:[(0,z.jsxs)(Bw,{variant:`outline`,onClick:()=>{l(o),a(!1)},disabled:u,children:[(0,z.jsx)(ps,{className:`w-4 h-4 mr-2`}),` Cancel`]}),(0,z.jsx)(Bw,{onClick:async()=>{if(!c.trim())r({title:`Error`,description:`Description cannot be empty.`,variant:`destructive`});else{d(!0);try{let{data:t}=await Xd.from(`town_descriptions`).select(`id`).eq(`town_name`,e).maybeSingle(),n;if(t){let{error:e}=await Xd.from(`town_descriptions`).update({description:c}).eq(`id`,t.id);n=e}else{let{error:t}=await Xd.from(`town_descriptions`).insert([{town_name:e,description:c}]);n=t}if(n)throw n;s(c),a(!1),r({title:`Success`,description:`${e} description updated successfully.`,variant:`default`})}catch(e){r({title:`Error saving description`,description:e.message,variant:`destructive`})}finally{d(!1)}}},disabled:u,className:`bg-[#2d5016] text-white hover:bg-[#1a3b0b]`,children:u?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(wo,{className:`w-4 h-4 mr-2 animate-spin`}),` Saving...`]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(Vo,{className:`w-4 h-4 mr-2`}),` Save Changes`]})})]})]}):(0,z.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&&(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.jsx)(`p`,{className:`text-sm text-gray-500 font-medium italic text-left`,children:`Explore the beauty and history of the Central Coast.`})})]})},Tpe=`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.`,a6=[{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`}],Epe=[{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.`}],Dpe=[{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`}],Ope=[{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`}],kpe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(0,z.jsx)(`div`,{className:`bg-teal-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-teal-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),Ape=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-teal-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-teal-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the Coast`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-teal-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(kpe,{attraction:e,index:t},t))})]})})),jpe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Mpe=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(jpe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),o6=({townName:e,fallbackHotels:t=[],affiliateHotels:n=[],sourcePageOverride:r=null})=>{let i=new Map;(t||[]).forEach(e=>{e&&e.name&&i.set(e.name.toLowerCase(),{fallback:e,aff:null})}),(n||[]).forEach(e=>{if(!e||!e.name)return;let t=e.name.toLowerCase(),n=t;if(!i.has(t)){for(let[e,r]of i.entries())if(e.includes(t)||t.includes(e)){n=e;break}}i.has(n)?i.get(n).aff=e:i.set(t,{fallback:null,aff:e})});let a=Array.from(i.values()).map(({fallback:t,aff:n})=>{let r=t||{},i=n||{},a=[];a=Array.isArray(r.amenities)?r.amenities:typeof r.amenities==`string`?r.amenities.split(`,`).map(e=>e.trim()):[`Free WiFi`,`Free Parking`,`Comfortable Rooms`];let o=i.photoUrl||r.image||null;if(o&&o.includes(`drive.google.com/uc`)){let e=o.match(/id=([^&]+)/);e&&e[1]&&(o=`https://drive.google.com/thumbnail?id=${e[1]}&sz=w1000`)}return{name:r.name||i.name,link:r.link||r.bookingUrl||r.affiliateUrl||i.link||`#`,linkRel:r.linkRel||i.linkRel||`noopener noreferrer`,price:r.price||i.price||`$$`,rating:r.rating||i.rating||`4.0/5`,address:r.address||i.address||`${e}, OR`,description:r.description||i.description||`Enjoy your stay at ${r.name||i.name} located in beautiful ${e}. Book now for great rates and comfortable accommodations on the Oregon Coast.`,amenities:a,image:o,chain:r.category||r.chain||i.chain||`Hotel`,stars:r.stars||i.stars||3,bgClass:r.bgClass,bgImage:r.bgImage}});return!a||a.length===0?(0,z.jsx)(`section`,{className:`py-24 px-4 bg-slate-50 text-center`,children:(0,z.jsxs)(`p`,{className:`text-stone-500`,children:[`Hotel information currently unavailable for `,e,`.`]})}):(0,z.jsx)(`section`,{className:`py-20 px-4`,style:{backgroundColor:`#e8eff2`},children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`h2`,{className:`text-4xl md:text-5xl font-serif font-bold mb-4`,style:{color:`#1a3a4a`},children:[`Where to Stay in `,e]}),(0,z.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.`})]}),(0,z.jsx)(`div`,{className:`space-y-16`,children:a.map((t,n)=>{let i=t.bgClass&&t.bgClass.includes(`500`)||t.bgImage,a=yee(e,t.name),o=r||K(e);return(0,z.jsxs)(q.div,{initial:{opacity:0,y:30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:`flex flex-col ${n%2==0?`md:flex-row`:`md:flex-row-reverse`} bg-white rounded-2xl overflow-hidden shadow-lg hover:shadow-xl transition-shadow duration-300`,children:[(0,z.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:[(0,z.jsxs)(`div`,{className:`image-fallback absolute inset-0 bg-slate-200 flex flex-col items-center justify-center z-0`,style:{display:t.image?`none`:`flex`},children:[(0,z.jsx)(Na,{className:`w-12 h-12 text-slate-400 mb-2`}),(0,z.jsx)(`span`,{className:`text-slate-500 text-sm font-medium`,children:`Image not available`})]}),t.image&&(0,z.jsx)(`img`,{src:t.image,alt:`View of ${t.name}`,className:`absolute inset-0 w-full h-full object-cover z-0 transition-transform duration-700 group-hover:scale-105`,onError:e=>{e.target.style.display=`none`;let t=e.target.closest(`.image-wrapper`);if(t){let e=t.querySelector(`.image-fallback`);e&&(e.style.display=`flex`)}}}),(0,z.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:(0,z.jsxs)(`div`,{className:`text-white`,children:[(0,z.jsx)(`p`,{className:`text-sm font-semibold tracking-wider uppercase mb-1`,style:{color:`#a8d5d1`},children:t.chain}),(0,z.jsx)(`div`,{className:`flex items-center space-x-1`,children:[...Array(t.stars||3)].map((e,t)=>(0,z.jsx)(Jo,{className:`w-4 h-4 fill-current text-yellow-400`},t))})]})})]}),(0,z.jsxs)(`div`,{className:`w-full md:w-1/2 p-8 flex flex-col justify-between relative ${t.bgClass||``}`,style:{...t.bgClass?{}:{backgroundColor:`#f0e8d8`},...t.bgImage?{backgroundImage:`url(${t.bgImage})`,backgroundSize:`cover`,backgroundPosition:`center`}:{}},children:[t.bgImage&&(0,z.jsx)(`div`,{className:`absolute inset-0 bg-black/75 z-0`}),(0,z.jsxs)(`div`,{className:`relative z-10 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:`flex justify-between items-start mb-4 gap-4`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-serif font-bold`,style:{color:i?`#ffffff`:`#1a3a4a`},children:(0,z.jsx)(`a`,{href:t.link===`#`?void 0:t.link,target:t.link===`#`?void 0:`_blank`,rel:t.link===`#`?void 0:t.linkRel,className:t.link===`#`?``:`hover:underline hover:opacity-80 transition-all duration-200`,children:t.name})}),(0,z.jsxs)(`div`,{className:`flex items-center gap-2 flex-shrink-0`,children:[a&&(0,z.jsx)(X,{objectId:a.object_id,title:t.name,sourcePage:o,pageType:`town`,module:`hotel-card`,affiliateLink:t.link===`#`?null:t.link,theme:i?`dark`:`light`}),(0,z.jsx)(`span`,{className:`font-bold text-lg whitespace-nowrap`,style:{color:i?`#f0fdfa`:`#2e7d8a`},children:t.price})]})]}),(0,z.jsxs)(`div`,{className:`flex items-center text-sm mb-4`,style:{color:i?`#e0f2fe`:`#8c7055`},children:[(0,z.jsx)(V,{className:`w-4 h-4 mr-1 flex-shrink-0`}),t.address]}),(0,z.jsx)(`p`,{className:`mb-6 font-serif leading-relaxed`,style:{color:i?`#f8fafc`:`#1a3a4a`},children:t.description}),(0,z.jsxs)(`div`,{className:`mb-6`,children:[(0,z.jsx)(`h4`,{className:`text-sm font-bold uppercase tracking-wider mb-2`,style:{color:i?`#ffffff`:`#2e7d8a`},children:`Amenities`}),(0,z.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:t.amenities.map((e,t)=>(0,z.jsxs)(`span`,{className:`flex items-center text-xs px-2 py-1 rounded-full ${i?`bg-black/40 text-white`:`bg-white/50`}`,style:i?{}:{color:`#1a3a4a`},children:[(0,z.jsx)(Ra,{className:`w-3 h-3 mr-1`,style:i?{color:`#ffffff`}:{color:`#2e7d8a`}}),` `,e]},t))})]})]}),(0,z.jsxs)(`div`,{className:`flex items-center justify-between mt-auto pt-4`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col`,children:[(0,z.jsx)(`span`,{className:`text-xs uppercase font-bold`,style:{color:i?`#e0f2fe`:`#8c7055`},children:`Google Rating`}),(0,z.jsx)(`span`,{className:`font-bold text-lg`,style:{color:i?`#ffffff`:`#1a3a4a`},children:t.rating})]}),t.link!==`#`&&(0,z.jsxs)(`a`,{href:t.link,target:`_blank`,rel:t.linkRel,className:`flex items-center px-6 py-3 rounded-lg font-bold transition-colors duration-300 hover:opacity-90 shadow-sm`,style:{backgroundColor:i?t.bgImage?`#2e7d8a`:`rgba(0,0,0,0.4)`:`#2e7d8a`,color:`#ffffff`},children:[`Book on Expedia `,(0,z.jsx)(no,{className:`w-4 h-4 ml-2`})]})]})]})]})]},n)})}),(0,z.jsx)(`div`,{className:`mt-12 text-center`,children:(0,z.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.`})})]})})},Npe=({hotels:e})=>{let t=`Arch Cape`,n=[`Vacation Rentals`,`Arch Cape Loft`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},s6=({restaurant:e})=>{let t=Mf(`Arch Cape`,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:`/town/arch-cape`,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},c6=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),Ppe=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,4),n=e.slice(4,6),r=e.slice(6);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Nearby Dining`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Local Favorites`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(s6,{restaurant:e},t))})]}),(0,z.jsx)(c6,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(c6,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(s6,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Coffee & Breakfast`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-4 gap-6`,children:r.map((e,t)=>(0,z.jsx)(s6,{restaurant:e},t))})]})]})})},Fpe=()=>{(0,y.useEffect)(()=>{console.log(`ArchCapePage mounted`)},[]);let e=Y[`arch-cape`],t=Uf(`Arch Cape`),n=Wf(`Arch Cape`),r=OA[`arch-cape`],i=`/images/heroes/arch-cape/hero-arch-cape-1600.webp`,a=`/images/heroes/arch-cape/hero-arch-cape-640.webp 640w, /images/heroes/arch-cape/hero-arch-cape-1024.webp 1024w, /images/heroes/arch-cape/hero-arch-cape-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Arch Cape Oregon Travel`,description:n,url:`https://oregoncoastal.com/town/arch-cape`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(mj,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,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`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Arch Cape`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Arch Cape`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-2`,children:(0,z.jsx)(i6,{townName:`Arch Cape`,initialDescription:Tpe},`ArchCape-About`)}),(0,z.jsx)(`div`,{className:`lg:col-span-1`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.8051,lon:e?.geo?.lng||-123.9604,townName:`Arch Cape`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Arch Cape`,townSlug:`arch-cape`,lat:e?.geo?.lat||45.8051,lon:e?.geo?.lng||-123.9604})})]}),(0,z.jsx)($3,{townSlug:`arch-cape`}),(0,z.jsx)(vj,{townName:`Arch Cape`,featuredImage:r,title:`Arch Cape in Photos`}),(0,z.jsx)(hj,{attractions:a6,townName:`Arch Cape`}),(0,z.jsx)(Ape,{attractions:a6}),(0,z.jsx)(Mpe,{trails:Epe}),(0,z.jsx)(Npe,{hotels:Dpe}),(0,z.jsx)(Ppe,{restaurants:Ope})]}),(0,z.jsx)(NS,{})]})},Ipe=class extends y.Component{constructor(e){super(e),this.state={hasError:!1,error:null}}static getDerivedStateFromError(e){return{hasError:!0,error:e}}componentDidCatch(e,t){console.error(`ErrorBoundary caught an error:`,e,t)}render(){return this.state.hasError?(0,z.jsx)(`div`,{className:`p-4 bg-red-50 border border-red-200 rounded-xl my-4`,children:(0,z.jsxs)(AA,{variant:`destructive`,className:`bg-transparent border-none p-0`,children:[(0,z.jsx)(Ua,{className:`h-5 w-5 text-red-600 mb-2`}),(0,z.jsx)(jA,{className:`text-red-800 font-semibold`,children:`Component Error`}),(0,z.jsxs)(MA,{className:`text-red-700 mt-1`,children:[`Something went wrong loading this component. Please try refreshing the page.`,this.props.showDetails&&this.state.error&&(0,z.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}},Lpe={hidden:{opacity:0},visible:{opacity:1,transition:{staggerChildren:.1}}},Rpe={hidden:{y:20,opacity:0},visible:{y:0,opacity:1,transition:{type:`spring`,stiffness:100}}},l6=({events:e=[],title:t=`Local Events & Festivals`,subtitle:n=`Plan your trip around these upcoming coastal gatherings.`,townName:r})=>!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#FFF8F0] border-y border-stone-200`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(`p`,{className:`text-sm md:text-base font-semibold text-stone-500 uppercase tracking-wider mb-2`,children:`Mark Your Calendar`}),(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-serif font-bold text-stone-900 tracking-tight mb-4`,children:t}),(0,z.jsx)(`div`,{className:`w-24 h-[1px] bg-stone-300 mx-auto`}),(0,z.jsx)(`p`,{className:`mt-6 text-lg text-stone-600 max-w-2xl mx-auto`,children:n})]}),(0,z.jsx)(q.div,{variants:Lpe,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((e,t)=>{let n=xee(r,e.title);return(0,z.jsx)(q.div,{variants:Rpe,className:`h-full`,children:(0,z.jsx)(Ew,{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:(0,z.jsxs)(`div`,{className:`flex flex-col h-full gap-4`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-serif font-bold text-stone-900 leading-tight`,children:e.title}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.title,sourcePage:K(r),pageType:`town`,module:`events`,affiliateLink:null,theme:`light`})]}),(0,z.jsxs)(`div`,{className:`flex items-center text-stone-600 font-medium gap-2 mt-auto pt-4 border-t border-stone-100`,children:[(0,z.jsx)(Pa,{className:`w-4 h-4 flex-shrink-0 text-stone-400`}),(0,z.jsx)(`span`,{className:`text-sm tracking-wide`,children:e.date})]}),e.description&&(0,z.jsx)(`p`,{className:`text-sm text-stone-500 mt-2`,children:e.description})]})})},t)})})]})}),zpe=1e4,Bpe=(e,t)=>{let n,r=new Promise((e,r)=>{n=setTimeout(()=>{r(Error(`Request timed out after 10s`))},t)});return Promise.race([e,r]).finally(()=>{clearTimeout(n)})},u6=async e=>{let t=new Date().toISOString();console.group(`🌊 [fetchTidesNetData] Start fetch for: ${e}`),console.log(`[Time] Request initiated at: ${t}`);try{let{data:t,error:n}=await Bpe(Gd.functions.invoke(`fetch-tides-data`,{body:{stationPath:e}}),zpe);if(n)throw console.error(`[fetchTidesNetData] Supabase invoke error:`,n),Error(`Invoke error: ${n.message}`);if(console.log(`[fetchTidesNetData] Raw API Response Received:`,t),!t||t.error)throw console.warn(`[fetchTidesNetData] Edge function returned internal error:`,t?.error),Error(t?.error||`Unknown edge function error`);if(!Array.isArray(t.data))throw Error(`Invalid response format: 'data' is not an array. Found: ${typeof t.data}`);return console.log(`[fetchTidesNetData] Parsed ${t.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:t.data,source:t.source||`unknown`,timestamp:t.timestamp||Date.now(),error:null}}catch(e){return console.error(`[fetchTidesNetData] Exception caught:`,e.message),console.groupEnd(),{tides:[],source:`error`,timestamp:Date.now(),error:e.message}}},d6={},Vpe=18e5,Hpe=[{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`}],Upe=e=>{let[t,n]=(0,y.useState)([]),[r,i]=(0,y.useState)(!0),[a,o]=(0,y.useState)(null),[s,c]=(0,y.useState)({source:``,timestamp:null}),[l,u]=(0,y.useState)(!1),d=(0,y.useCallback)(async(e,t=!1,r=1)=>{if(!e)return;r===1&&(i(!0),o(null),console.log(`[useTideData] Initiating fetch pipeline for ${e}`));let a=e.toLowerCase();if(!t&&r===1&&d6[a]&&Date.now()-d6[a].timestamp<Vpe)console.log(`[useTideData] Using cached processed data for ${e}`),n(d6[a].data),c(d6[a].meta),u(d6[a].isMock||!1),i(!1);else try{let t=OM(e);console.log(`[useTideData] Step 1: Mapping resolved. Path -> ${t}`);let r=await u6(t);if(console.log(`[useTideData] Step 2: Edge Function responded. Source: ${r.source}`),r.error||!r.tides||r.tides.length===0)throw Error(`Data fetch failed step 2: ${r.error||`Empty data array`}`);console.log(`[useTideData] Step 3: Raw response data:`,r.tides);let o=MM();console.log(`[useTideData] Step 4: Attaching Pacific Date string: ${o}`);let s=r.tides.map(e=>({time:e.time,height_ft:e.height_ft,height_m:e.height_m,type:e.type,v:e.height_ft,displayTime:e.time,pacificDate:o,_rawDebug:JSON.stringify(e)}));console.log(`[useTideData] Step 5: Final output to component state:`,s);let l={source:r.source,timestamp:r.timestamp,error:null};d6[a]={data:s,meta:l,timestamp:Date.now(),isMock:!1},n(s),c(l),u(!1),i(!1)}catch(a){if(console.warn(`[useTideData] Attempt ${r} failed for ${e}:`,a.message),r<2){let n=r*3e3;console.log(`[useTideData] Retrying in ${n}ms...`),setTimeout(()=>{d(e,t,r+1)},n)}else{console.error(`[useTideData] Pipeline failed. Activating fallback data for ${e}.`),o(`Processing failed: ${a.message}. Showing estimated fallback.`),u(!0);let t=MM();n(Hpe.map(e=>({...e,v:e.height_ft,displayTime:e.time,pacificDate:t,_rawDebug:JSON.stringify(e)}))),i(!1)}}},[]);return(0,y.useEffect)(()=>{d(e)},[e,d]),{data:t,loading:r,error:a,meta:s,isUsingMockData:l,refetch:()=>d(e,!0,1)}},Wpe=e=>e?.toString().toLowerCase().replace(/\s+/g,`-`).replace(/[^\w-]/g,``)||``,Gpe=({attraction:e,index:t})=>(0,z.jsx)(q.div,{id:Wpe(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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the History`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(Gpe,{attraction:e,index:t},t))})]})})),qpe=e=>e?.toString().toLowerCase().replace(/\s+/g,`-`).replace(/[^\w-]/g,``)||``,Jpe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Ype=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{id:qpe(e.name),initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group scroll-mt-24`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Jpe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),Xpe=[{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`}],Zpe=()=>{let e=`Astoria`;return(0,z.jsx)(o6,{townName:e,fallbackHotels:Xpe,affiliateHotels:qC[e]})},Qpe=[{icon:(0,z.jsx)(Pa,{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:(0,z.jsx)(Ia,{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:(0,z.jsx)(Ya,{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:(0,z.jsx)(os,{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:(0,z.jsx)(Oo,{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:(0,z.jsx)($a,{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.`}],$pe=()=>(0,z.jsx)(`section`,{className:`py-20 px-4`,style:{backgroundColor:`#1a3a4a`},children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-serif font-bold mb-4`,style:{color:`#f0e8d8`},children:`Essential Planning Tips`}),(0,z.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.`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:Qpe.map((e,t)=>(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`mb-4 inline-block p-3 rounded-lg`,style:{backgroundColor:`#2e7d8a`,color:`#f0e8d8`},children:e.icon}),(0,z.jsx)(`h3`,{className:`text-xl font-serif font-bold mb-3`,style:{color:`#f0e8d8`},children:e.title}),(0,z.jsx)(`p`,{className:`font-serif leading-relaxed`,style:{color:`#e8eff2`},children:e.description})]},t))})]})}),f6=`Astoria`,eme=K(f6),tme=e=>e?.toString().toLowerCase().replace(/\s+/g,`-`).replace(/[^\w-]/g,``)||``,p6=({restaurant:e})=>{let t=Mf(f6,e?.name);return(0,z.jsxs)(`div`,{id:tme(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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:eme,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},m6=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),nme=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,5),r=e.slice(5,7),i=e.slice(7);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Astoria`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Fine Dining & Seafood`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(p6,{restaurant:e},t))})]}),(0,z.jsx)(m6,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(m6,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(p6,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-3 gap-6 mb-16`,children:[(0,z.jsx)(`div`,{className:`md:col-span-3 text-center mb-4`,children:(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 inline-block`,children:`Local Favorites`})}),r.map((e,t)=>(0,z.jsx)(p6,{restaurant:e},t)),(0,z.jsx)(`div`,{className:`h-full min-h-[200px] rounded-xl overflow-hidden shadow-md`,children:(0,z.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`})})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Cafes, Sweets & Light Bites`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-4 gap-6`,children:i.map((e,t)=>(0,z.jsx)(p6,{restaurant:e},t))}),(0,z.jsx)(`div`,{className:`mt-8 text-center`,children:(0,z.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`})})]})]})})},rme=[{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`}],ime=()=>{let[e,t]=(0,y.useState)(!1),{data:n}=Upe(`Astoria`),r=Ze();(0,y.useEffect)(()=>{console.log(`AstoriaPage mounted`),window.location.search.includes(`debug=true`)&&(t(!0),console.log(`🌊 [AstoriaPage Debug] Tide Data at Render:`,n))},[n]);let i=Y.astoria,a=Uf(`Astoria`),o=Wf(`Astoria`),s=Gf(r.pathname),c=OA.astoria,l=`/images/heroes/astoria/hero-astoria-1600.webp`,u=`/images/heroes/astoria/hero-astoria-640.webp 640w, /images/heroes/astoria/hero-astoria-1024.webp 1024w, /images/heroes/astoria/hero-astoria-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:a}),(0,z.jsx)(`meta`,{name:`description`,content:o}),(0,z.jsx)(`link`,{rel:`canonical`,href:s}),(0,z.jsx)(`meta`,{property:`og:title`,content:a}),(0,z.jsx)(`meta`,{property:`og:description`,content:o}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:l,imagesrcset:u,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),e&&(0,z.jsxs)(`div`,{className:`bg-amber-100 border-b border-amber-300 p-4 text-amber-900 text-sm font-mono shadow-inner`,children:[(0,z.jsx)(`h4`,{className:`font-bold mb-2 uppercase`,children:`🛠️ Tide Data Debug View Active`}),(0,z.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.`}),(0,z.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[(0,z.jsxs)(`div`,{className:`bg-white/50 p-2 rounded`,children:[(0,z.jsx)(`strong`,{children:`Raw First Entry:`}),(0,z.jsx)(`br`,{}),n?.[0]?._rawDebug||`Loading...`]}),(0,z.jsxs)(`div`,{className:`bg-white/50 p-2 rounded`,children:[(0,z.jsx)(`strong`,{children:`Processed Display Time:`}),(0,z.jsx)(`br`,{}),(0,z.jsx)(`span`,{"data-raw-time":n?.[0]?.time,children:n?.[0]?.displayTime||`Loading...`})]})]})]}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:l,srcSet:u,sizes:`100vw`,width:1600,height:1198,fetchpriority:`high`,alt:`Astoria, Oregon waterfront`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Astoria`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`}),(0,z.jsx)(`div`,{className:`mt-6`,children:(0,z.jsx)(X,{objectId:`obj_oregoncoastal_town_astoria_v1`,title:`Astoria`,sourcePage:`/town/astoria`,pageType:`town`,module:`town-header`,affiliateLink:null,theme:`dark`})})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Astoria Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:zA}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:i?.geo.lat||46.1878,lon:i?.geo.lng||-123.8244,townName:`Astoria`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(Ipe,{showDetails:!0,children:(0,z.jsx)(q3,{townName:`Astoria`,townSlug:`astoria`,lat:i?.geo.lat||46.1878,lon:i?.geo.lng||-123.8244})})})]}),(0,z.jsx)($3,{townSlug:`astoria`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Astoria`,featuredImage:c,title:`Astoria in Photos`})}),(0,z.jsx)(hj,{attractions:BA,townName:`Astoria`}),(0,z.jsx)(Kpe,{attractions:BA}),(0,z.jsx)(Ype,{trails:VA}),(0,z.jsx)(l6,{events:rme}),(0,z.jsx)(Zpe,{}),(0,z.jsx)(nme,{restaurants:HA}),(0,z.jsx)($pe,{})]}),(0,z.jsx)(NS,{})]})},h6=`Bandon`,ame=K(h6),ome=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(h6,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:ame,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),sme=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Discover the Magic`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(ome,{attraction:e,index:t},t))})]})})),g6=`Bandon`,cme=K(g6),lme=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},ume=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Beach Walks`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(g6,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:cme,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(lme,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),dme=({hotels:e})=>{let t=`Bandon`,n=[`Bandon Dunes Golf Resort`,`Lamplighter Inn`,`Windermere on the Beach`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},_6=`Bandon`,fme=K(_6),v6=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),(()=>{let t=Mf(_6,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:fme,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),y6=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),pme=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,5),r=e.slice(5,8),i=e.slice(8);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Bandon`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Boardwalk & Seafood`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(v6,{restaurant:e},t))})]}),(0,z.jsx)(y6,{src:`https://images.unsplash.com/photo-1572593455878-b46c49ba79cc`,alt:`Fresh catch right off the boat`,caption:`Fresh catch right off the boat`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(y6,{src:`https://images.unsplash.com/photo-1571091718767-18b5b1457add?auto=format&fit=crop&w=800&q=80`,alt:`Fine dining plate`,caption:`Elevated coastal cuisine`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(v6,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-3 gap-6 mb-16`,children:[(0,z.jsx)(`div`,{className:`md:col-span-3 text-center mb-4`,children:(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 inline-block`,children:`Pubs & Sweets`})}),r.map((e,t)=>(0,z.jsx)(v6,{restaurant:e},t)),(0,z.jsx)(`div`,{className:`h-full min-h-[200px] rounded-xl overflow-hidden shadow-md`,children:(0,z.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`})})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Dining with a View`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 gap-6`,children:i.map((e,t)=>(0,z.jsx)(v6,{restaurant:e},t))}),(0,z.jsx)(`div`,{className:`mt-8 text-center`,children:(0,z.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`})})]})]})})},mme=[{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`}],hme=()=>{(0,y.useEffect)(()=>{console.log(`BandonPage mounted`)},[]);let e=Y.bandon,t=Uf(`Bandon`),n=Wf(`Bandon`),r=`/images/heroes/bandon/hero-bandon-1280.webp`,i=`/images/heroes/bandon/hero-bandon-640.webp 640w, /images/heroes/bandon/hero-bandon-1024.webp 1024w, /images/heroes/bandon/hero-bandon-1280.webp 1280w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:r,imagesrcset:i,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:r,srcSet:i,sizes:`100vw`,width:1280,height:960,fetchpriority:`high`,alt:`Bandon, Oregon coastline with sea stacks`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Bandon`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Bandon Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:ij}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo.lat||43.1189,lon:e?.geo.lng||-124.4172,townName:`Bandon`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Bandon`,townSlug:`bandon`,lat:e?.geo.lat||43.1189,lon:e?.geo.lng||-124.4172})})]}),(0,z.jsx)($3,{townSlug:`bandon`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Bandon`,featuredImage:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/5b77b21e59bd04defe28f5074f5126d6.webp`,title:`Bandon in Photos`})}),(0,z.jsx)(hj,{attractions:aj,townName:`Bandon`}),(0,z.jsx)(sme,{attractions:aj}),(0,z.jsx)(ume,{trails:oj}),(0,z.jsx)(l6,{events:mme}),(0,z.jsx)(dme,{hotels:sj}),(0,z.jsx)(pme,{restaurants:cj})]}),(0,z.jsx)(NS,{})]})},gme=`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.`,b6=[{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`}],_me=[{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.`}],vme=[{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`}],yme=[{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`}],x6=`Bay City`,bme=K(x6),xme=({attraction:e,index:t})=>{let n=Pf(x6,e?.name);return(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:bme,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`div`,{className:`bg-cyan-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-cyan-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})})},Sme=({attractions:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`AttractionsSection: No attractions data provided`)},[e]),!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-cyan-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-cyan-600 font-bold tracking-wider uppercase text-sm`,children:`Discover the Bay`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-cyan-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6`,children:e.map((e,t)=>(0,z.jsx)(xme,{attraction:e,index:t},t))})]})})),S6=`Bay City`,Cme=K(S6),wme=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Tme=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-cyan-600`}),`Nature Trails & Walks`]}),(0,z.jsx)(`p`,{className:`text-gray-600 text-lg`,children:`Explore the unique ecosystems of Tillamook Bay, from wetland boardwalks to forest paths.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-cyan-700 transition-colors`,children:e.name}),(()=>{let t=Nf(S6,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Cme,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(wme,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),Eme=({hotels:e})=>{let 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)`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},C6=`Bay City`,Dme=K(C6),w6=({restaurant:e})=>{let t=Mf(C6,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-cyan-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Dme,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-cyan-600 bg-cyan-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-cyan-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-cyan-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},T6=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-cyan-500 pl-3`,children:n})})]}),Ome=({restaurants:e})=>{if((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`RestaurantsSection: No restaurant data provided`)},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-cyan-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-cyan-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2,4),r=e.slice(4);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-cyan-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-cyan-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Bay City`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-cyan-900 border-b-2 border-cyan-200 pb-2 inline-block`,children:`Fresh Seafood`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(w6,{restaurant:e},t))})]}),(0,z.jsx)(T6,{src:`https://images.unsplash.com/photo-1615141982880-19ed7e6656fa?auto=format&fit=crop&w=800&q=80`,alt:`Oysters`,caption:`World-famous fresh oysters`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(T6,{src:`https://images.unsplash.com/photo-1555939594-58d7cb561ad1?auto=format&fit=crop&w=800&q=80`,alt:`Casual dining`,caption:`Local comfort food`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(w6,{restaurant:e},t))})]})]}),r.length>0&&(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-cyan-900 mb-8 text-center`,children:`More Local Bites`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:r.map((e,t)=>(0,z.jsx)(w6,{restaurant:e},t))})]})]})})},kme=()=>{(0,y.useEffect)(()=>{console.log(`BayCityPage mounted`)},[]);let e=Y[`bay-city`],t=Uf(`Bay City`),n=Wf(`Bay City`),r=OA[`bay-city`],i=`/images/heroes/bay-city/hero-bay-city-1600.webp`,a=`/images/heroes/bay-city/hero-bay-city-640.webp 640w, /images/heroes/bay-city/hero-bay-city-1024.webp 1024w, /images/heroes/bay-city/hero-bay-city-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1067,fetchpriority:`high`,alt:`Bay City, Oregon coastline`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Bay City`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Bay City Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:gme}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo.lat||45.5222,lon:e?.geo.lng||-123.8893,townName:`Bay City`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Bay City`,townSlug:`bay-city`,lat:e?.geo.lat||45.5222,lon:e?.geo.lng||-123.8893})})]}),(0,z.jsx)($3,{townSlug:`bay-city`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Bay City`,featuredImage:r,title:`Bay City in Photos`})}),(0,z.jsx)(hj,{attractions:b6,townName:`Bay City`}),(0,z.jsx)(Sme,{attractions:b6}),(0,z.jsx)(Tme,{trails:_me}),(0,z.jsx)(Eme,{hotels:vme}),(0,z.jsx)(Ome,{restaurants:yme})]}),(0,z.jsx)(NS,{})]})},Ame=`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.`,E6=[{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.`}],jme=[{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.`}],Mme=[{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`}],Nme=[{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`}],D6=`Brookings`,Pme=K(D6),Fme=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(D6,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Pme,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),Ime=({attractions:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`AttractionsSection: No attractions data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Discover the Banana Belt`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(Fme,{attraction:e,index:t},t))})]})})),O6=`Brookings`,Lme=K(O6),Rme=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},zme=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(O6,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Lme,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Rme,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),Bme=({hotels:e})=>{let t=`Brookings`;return(0,z.jsx)(o6,{townName:t,fallbackHotels:e,affiliateHotels:qC[t]})},k6=`Brookings`,Vme=K(k6),Hme=e=>e?.toString().toLowerCase().replace(/\s+/g,`-`).replace(/[^\w-]/g,``)||``,A6=({restaurant:e})=>(0,z.jsxs)(`div`,{id:Hme(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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),(()=>{let t=Mf(k6,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Vme,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),j6=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),Ume=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,5),r=e.slice(5,7),i=e.slice(7);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Brookings`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Fine Dining & Seafood`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(A6,{restaurant:e},t))})]}),(0,z.jsx)(j6,{src:`https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80`,alt:`Seafood dining`,caption:`Fresh catches served daily`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(j6,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(A6,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-3 gap-6 mb-16`,children:[(0,z.jsx)(`div`,{className:`md:col-span-3 text-center mb-4`,children:(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 inline-block`,children:`Local Favorites`})}),r.map((e,t)=>(0,z.jsx)(A6,{restaurant:e},t)),(0,z.jsx)(`div`,{className:`h-full min-h-[200px] rounded-xl overflow-hidden shadow-md`,children:(0,z.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`})})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Quick Bites & Pizza`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-4 gap-6`,children:i.map((e,t)=>(0,z.jsx)(A6,{restaurant:e},t))}),(0,z.jsx)(`div`,{className:`mt-8 text-center`,children:(0,z.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`})})]})]})})},Wme=[{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`}],Gme=()=>{(0,y.useEffect)(()=>{console.log(`BrookingsPage mounted`)},[]);let e=Y.brookings,t=Uf(`Brookings`),n=Wf(`Brookings`),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/d70e7940aab86e455bd557529fff3fdd.webp`,i=`/images/heroes/brookings/hero-brookings-1280.webp`,a=`/images/heroes/brookings/hero-brookings-640.webp 640w, /images/heroes/brookings/hero-brookings-1024.webp 1024w, /images/heroes/brookings/hero-brookings-1280.webp 1280w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Brookings, Oregon`,description:n,url:`https://oregoncoastal.com/town/brookings`,geo:{lat:42.0534,lng:-124.2844},image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1280,height:960,fetchpriority:`high`,alt:`Brookings coastline with sea stacks`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Brookings`,region:`South Coast`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Brookings Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:Ame}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo.lat||42.0534,lon:e?.geo.lng||-124.2844,townName:`Brookings`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Brookings`,townSlug:`brookings`,lat:e?.geo.lat||42.0534,lon:e?.geo.lng||-124.2844})})]}),(0,z.jsx)($3,{townSlug:`brookings`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Brookings`,featuredImage:r,title:`Brookings in Photos`})}),(0,z.jsx)(hj,{attractions:E6,townName:`Brookings`}),(0,z.jsx)(Ime,{attractions:E6}),(0,z.jsx)(zme,{trails:jme}),(0,z.jsx)(l6,{events:Wme}),(0,z.jsx)(Bme,{hotels:Mme}),(0,z.jsx)(Ume,{restaurants:Nme})]}),(0,z.jsx)(NS,{})]})},Kme=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(0,z.jsx)(`div`,{className:`bg-amber-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-amber-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),qme=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-amber-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-amber-600 font-bold tracking-wider uppercase text-sm`,children:`Iconic Landmarks & Art`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-amber-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-8`,children:e.map((e,t)=>(0,z.jsx)(Kme,{attraction:e,index:t},t))})]})})),Jme=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Yme=({trails:e,townName:t=`Cannon Beach`})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-teal-600`}),`Hiking Trails & State Parks`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,n)=>(0,z.jsxs)(q.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:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors`,children:e.name}),(()=>{let n=See(t,e.name);return n?(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:`/town/cannon-beach`,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Jme,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},n))})]})})),Xme=({hotels:e})=>{let t=`Cannon Beach`;return(0,z.jsx)(o6,{townName:t,fallbackHotels:e,affiliateHotels:qC[t]})},M6=({restaurant:e})=>{let t=Mf(`Cannon Beach`,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-red-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:`/town/cannon-beach`,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.cuisine&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-red-600 bg-red-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.cuisine})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.price&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-red-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-red-800 uppercase tracking-wide`,children:`Price Range`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.price})]})]})},N6=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-red-500 pl-3`,children:n})})]}),Zme=({restaurants:e})=>{let t=e||[];if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-[hsl(var(--cream-bg))] text-center`,children:(0,z.jsx)(`p`,{className:`text-red-900`,children:`Dining information currently unavailable.`})});let n=t.filter(e=>e.name.toLowerCase().includes(`fine`)||e.name.toLowerCase().includes(`ocean`)).slice(0,2),r=t.filter(e=>e.name.toLowerCase().includes(`brew`)||e.name.toLowerCase().includes(`pub`)||e.name.toLowerCase().includes(`bill`)).slice(0,2),i=[...n,...r].map(e=>e.name),a=t.filter(e=>!i.includes(e.name)),o=a.filter(e=>!e.name.toLowerCase().includes(`cafe`)&&!e.name.toLowerCase().includes(`coffee`)),s=a.filter(e=>e.name.toLowerCase().includes(`cafe`)||e.name.toLowerCase().includes(`coffee`));return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-[hsl(var(--cream-bg))]`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-red-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Cannon Beach`}),(0,z.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&&(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-red-900 border-b-2 border-red-200 pb-2 inline-block`,children:`Oceanfront & Fine Dining`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(M6,{restaurant:e},t))})]}),(0,z.jsx)(N6,{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`})]}),r.length>0&&(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(N6,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-red-900 border-b-2 border-red-200 pb-2 inline-block`,children:`Breweries & Pubs`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:r.map((e,t)=>(0,z.jsx)(M6,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`mb-16`,children:[(0,z.jsx)(`div`,{className:`text-center mb-8`,children:(0,z.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`})}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:o.map((e,t)=>(0,z.jsx)(M6,{restaurant:e},t))})]}),s.length>0&&(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-red-900 mb-8 text-center`,children:`Coffee, Crepes & Cafes`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-4 gap-6`,children:s.map((e,t)=>(0,z.jsx)(M6,{restaurant:e},t))})]})]})})},Qme=[{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`}],$me=()=>{(0,y.useEffect)(()=>{console.log(`CannonBeachPage mounted`)},[]);let e=Y[`cannon-beach`],t=Uf(`Cannon Beach`),n=Wf(`Cannon Beach`),r=Gf(`/town/cannon-beach`),i=Kf(`Cannon Beach`,e?.heroImage),a=`/images/heroes/cannon-beach/hero-cannon-beach-1600.webp`,o=`/images/heroes/cannon-beach/hero-cannon-beach-640.webp 640w, /images/heroes/cannon-beach/hero-cannon-beach-1024.webp 1024w, /images/heroes/cannon-beach/hero-cannon-beach-1600.webp 1600w`,s=Jf(e,r,i);return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`link`,{rel:`canonical`,href:r}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:a,imagesrcset:o,imagesizes:`100vw`,fetchpriority:`high`}),(0,z.jsx)(`meta`,{property:`og:image`,content:i}),(0,z.jsx)(`meta`,{property:`og:url`,content:r}),(0,z.jsx)(`meta`,{property:`og:type`,content:`website`}),(0,z.jsx)(`meta`,{name:`twitter:card`,content:`summary_large_image`}),(0,z.jsx)(`meta`,{name:`twitter:title`,content:t}),(0,z.jsx)(`meta`,{name:`twitter:description`,content:n}),(0,z.jsx)(`meta`,{name:`twitter:image`,content:i}),s&&(0,z.jsx)(`script`,{type:`application/ld+json`,children:JSON.stringify(s)})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:a,srcSet:o,sizes:`100vw`,width:1600,height:1150,fetchpriority:`high`,alt:`Scenic coastal view with Haystack Rock and surrounding sea stacks, mountains in the background, Cannon Beach Oregon`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Cannon Beach`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-amber-400 rounded-full mb-0 shadow-lg`}),(0,z.jsx)(`div`,{className:`mt-6`,children:(0,z.jsx)(X,{objectId:`obj_oregoncoastal_town_cannon_beach_v1`,title:`Cannon Beach`,sourcePage:`/town/cannon-beach`,pageType:`town`,module:`town-header`,affiliateLink:null,theme:`dark`})})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Cannon Beach Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:UA}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo.lat||45.8918,lon:e?.geo.lng||-123.9615,townName:`Cannon Beach`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Cannon Beach`,townSlug:`cannon-beach`,lat:e?.geo.lat||45.8918,lon:e?.geo.lng||-123.9615,defaultStationId:`9437908`})})]}),(0,z.jsx)($3,{townSlug:`cannon-beach`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Cannon Beach`,featuredImage:i,title:`Cannon Beach in Photos`})}),(0,z.jsx)(hj,{attractions:WA,townName:`Cannon Beach`,geo:e?.geo,url:r}),(0,z.jsx)(qme,{attractions:WA}),(0,z.jsx)(Yme,{trails:GA}),(0,z.jsx)(l6,{events:Qme,townName:`Cannon Beach`}),(0,z.jsx)(Xme,{hotels:KA}),(0,z.jsx)(Zme,{restaurants:qA})]}),(0,z.jsx)(NS,{})]})},ehe=`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.`,P6=[{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.`}],the=[{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.`}],nhe=[{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.`}],rhe=[{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.`}],F6=`Charleston`,ihe=K(F6),ahe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(F6,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:ihe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),ohe=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Parks & Wildlife`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(ahe,{attraction:e,index:t},t))})]})})),she=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},che=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Estuaries`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(she,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),lhe=({hotels:e})=>{let t=`Charleston`;return(0,z.jsx)(o6,{townName:t,fallbackHotels:e,affiliateHotels:qC[t]})},I6=`Charleston`,uhe=K(I6),L6=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),(()=>{let t=Mf(I6,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:uhe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),R6=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),dhe=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let 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),r=e.slice(2,4),i=e.slice(4);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Charleston`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Fresh Catch & Views`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(L6,{restaurant:e},t))})]}),(0,z.jsx)(R6,{src:t[0],alt:`Seafood Platter`,caption:`Locally caught seafood`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(R6,{src:t[1],alt:`Casual Dining`,caption:`Relaxed atmosphere by the bay`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:r.map((e,t)=>(0,z.jsx)(L6,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-3 gap-6 mb-16`,children:[(0,z.jsx)(`div`,{className:`md:col-span-3 text-center mb-4`,children:(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 inline-block`,children:`Quick & Delicious`})}),i.map((e,t)=>(0,z.jsx)(L6,{restaurant:e},t)),(0,z.jsx)(`div`,{className:`h-full min-h-[200px] rounded-xl overflow-hidden shadow-md`,children:(0,z.jsx)(`img`,{src:t[2],alt:`Fish and chips`,className:`w-full h-full object-cover`})}),(0,z.jsx)(`div`,{className:`h-full min-h-[200px] rounded-xl overflow-hidden shadow-md`,children:(0,z.jsx)(`img`,{src:t[3],alt:`Chowder`,className:`w-full h-full object-cover`})})]})]})})},fhe=()=>{(0,y.useEffect)(()=>{console.log(`CharlestonPage mounted`)},[]);let e=Y.charleston,t=Uf(`Charleston`),n=Wf(`Charleston`),r=`/images/heroes/charleston/hero-charleston-1280.webp`,i=`/images/heroes/charleston/hero-charleston-640.webp 640w, /images/heroes/charleston/hero-charleston-1024.webp 1024w, /images/heroes/charleston/hero-charleston-1280.webp 1280w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:r,imagesrcset:i,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:r,srcSet:i,sizes:`100vw`,width:1280,height:960,fetchpriority:`high`,alt:`Charleston, Oregon Marina`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Charleston`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Charleston Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:ehe}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||43.3569,lon:e?.geo?.lng||-124.3199,townName:`Charleston`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Charleston`,townSlug:`charleston`,lat:e?.geo.lat||43.3569,lon:e?.geo.lng||-124.3199})})]}),(0,z.jsx)($3,{townSlug:`charleston`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Charleston`,featuredImage:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/459d754428b004077d795060ad117106.webp`,title:`Charleston Gallery`})}),(0,z.jsx)(hj,{attractions:P6,townName:`Charleston`}),(0,z.jsx)(ohe,{attractions:P6}),(0,z.jsx)(che,{trails:the}),(0,z.jsx)(lhe,{hotels:nhe}),(0,z.jsx)(dhe,{restaurants:rhe})]}),(0,z.jsx)(NS,{})]})},phe=({waterfall:e,index:t,townName:n})=>(0,z.jsxs)(q.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:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 flex-1`,children:[(0,z.jsx)(to,{className:`w-5 h-5 text-blue-600 flex-shrink-0`}),(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900`,children:e.name}),(()=>{let t=n?Pf(n,e.name):null;return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:K(n),pageType:`town`,module:`waterfall-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`span`,{className:`px-3 py-1 rounded-none text-xs font-semibold ${(e=>{let t=e.toLowerCase();return t.includes(`easy`)?`bg-green-100 text-green-700`:t.includes(`moderate`)?`bg-yellow-100 text-yellow-700`:t.includes(`hard`)||t.includes(`strenuous`)?`bg-red-100 text-red-700`:`bg-gray-100 text-gray-700`})(e.difficulty)} whitespace-nowrap ml-2`,children:e.difficulty})]}),(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-4 mb-4 text-sm text-gray-600`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,z.jsx)(V,{className:`w-4 h-4 text-blue-500`}),(0,z.jsx)(`span`,{className:`font-medium`,children:e.distance})]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,z.jsx)(Jo,{className:`w-4 h-4 text-yellow-500`}),(0,z.jsxs)(`span`,{className:`font-medium`,children:[`Accessibility: `,(e=>{let t=[],n=Math.floor(e);for(let e=0;e<5;e++)t.push((0,z.jsx)(`span`,{className:e<n?`text-yellow-500`:`text-gray-300`,children:`★`},e));return t})(e.accessibility)]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-700 leading-relaxed mb-4 flex-grow`,children:e.description}),e.notes&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.jsxs)(`p`,{className:`text-sm text-gray-600 italic`,children:[(0,z.jsx)(`span`,{className:`font-semibold text-blue-700`,children:`Pro tip:`}),` `,e.notes]})})]}),z6=({townName:e=`This Area`,waterfalls:t=[],headerTitle:n=`Nearby Waterfalls`,headerSubtitle:r=`Discover stunning waterfalls near the coast.`})=>!t||t.length===0?null:(0,z.jsx)(`section`,{className:`py-16 px-4 bg-gradient-to-b from-blue-50 to-white`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:`text-center mb-12`,children:[(0,z.jsx)(`div`,{className:`flex items-center justify-center gap-2 mb-4`,children:(0,z.jsx)(to,{className:`w-8 h-8 text-blue-600`})}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4 uppercase tracking-widest font-serif`,children:n}),(0,z.jsx)(`p`,{className:`text-lg text-gray-600 max-w-3xl mx-auto leading-relaxed`,children:r})]}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6 mb-12`,children:t.map((t,n)=>(0,z.jsx)(phe,{waterfall:t,index:n,townName:e},n))}),(0,z.jsx)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.3},className:`text-center mt-12`,children:(0,z.jsxs)(`div`,{className:`inline-block bg-primary rounded-none p-8 shadow-editorial`,children:[(0,z.jsx)(`div`,{className:`text-white text-lg font-medium mb-6 max-w-2xl mx-auto`,children:(0,z.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,children:[(0,z.jsx)(`span`,{children:`Want to see more Oregon waterfalls, and finding lodging near any waterfall`}),(0,z.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 `,(0,z.jsx)(no,{className:`w-4 h-4`})]})]})}),(0,z.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 →`})]})})]})}),mhe=`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.`,B6=[{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.`}],hhe=[{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.`}],ghe=[{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.`}],_he=[{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.`}],V6=`Coos Bay`,vhe=K(V6),yhe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(V6,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:vhe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),bhe=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Gardens, Cliffs & Culture`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(yhe,{attraction:e,index:t},t))})]})})),H6=`Coos Bay`,xhe=K(H6),She=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Che=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(H6,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:xhe,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(She,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),whe=({hotels:e})=>{let t=`Coos Bay`,n=[`The Mill Casino • Hotel`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},U6=`Coos Bay`,The=K(U6),W6=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),(()=>{let t=Mf(U6,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:The,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),G6=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),Ehe=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2,4),r=e.slice(4);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Coos Bay`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Local Flavors`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(W6,{restaurant:e},t))})]}),(0,z.jsx)(G6,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(G6,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(W6,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Casual Eats & Treats`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-4 gap-6 justify-center`,children:r.map((e,t)=>(0,z.jsx)(W6,{restaurant:e},t))}),(0,z.jsx)(`div`,{className:`mt-8 text-center`,children:(0,z.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`})})]})]})})},Dhe=[{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.`}],Ohe=[{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`}],khe=()=>{(0,y.useEffect)(()=>{console.log(`CoosBayPage mounted`)},[]);let e=Y[`coos-bay`],t=Uf(`Coos Bay`),n=Wf(`Coos Bay`),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/32c0d973a9704cf199b61ec4477d1531.webp`,i=`/images/heroes/coos-bay/hero-coos-bay-1600.webp`,a=`/images/heroes/coos-bay/hero-coos-bay-640.webp 640w, /images/heroes/coos-bay/hero-coos-bay-1024.webp 1024w, /images/heroes/coos-bay/hero-coos-bay-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Coos Bay Oregon Travel`,description:n,url:`https://oregoncoastal.com/town/coos-bay`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:633,fetchpriority:`high`,alt:`Coos Bay Oregon Boardwalk and Waterfront`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Coos Bay`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Coos Bay Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:mhe}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||43.3665,lon:e?.geo?.lng||-124.2179,townName:`Coos Bay`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Coos Bay`,townSlug:`coos-bay`,lat:e?.geo?.lat||43.3665,lon:e?.geo?.lng||-124.2179})})]}),(0,z.jsx)($3,{townSlug:`coos-bay`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Coos Bay`,featuredImage:r,title:`Coos Bay in Photos`})}),(0,z.jsx)(hj,{attractions:B6,townName:`Coos Bay`}),(0,z.jsx)(bhe,{attractions:B6}),(0,z.jsx)(Che,{trails:hhe}),(0,z.jsx)(z6,{townName:`Coos Bay`,waterfalls:Dhe,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.`}),(0,z.jsx)(l6,{events:Ohe,townName:`Coos Bay`}),(0,z.jsx)(whe,{hotels:ghe}),(0,z.jsx)(Ehe,{restaurants:_he})]}),(0,z.jsx)(NS,{})]})},Ahe=`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.`,K6=[{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`}],jhe=[{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.`}],Mhe=[{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`}],Nhe=[{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.`}],q6=`Depoe Bay`,Phe=K(q6),Fhe=({attraction:e,index:t})=>{let n=Pf(q6,e?.name);return(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:Phe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`div`,{className:`bg-blue-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-blue-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})})},Ihe=({attractions:e})=>!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-blue-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-blue-600 font-bold tracking-wider uppercase text-sm`,children:`Harbor & Coast`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-blue-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6`,children:e.map((e,t)=>(0,z.jsx)(Fhe,{attraction:e,index:t},t))})]})}),Lhe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Easy),children:e})},Rhe=({trails:e})=>!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-teal-600`}),`Coastal Trails & Viewpoints`]}),(0,z.jsx)(`p`,{className:`text-gray-600 text-lg`,children:`Discover dramatic headlands, hidden coves, and the best whale watching spots on foot.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Lhe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})}),zhe=({hotels:e})=>{let t=`Depoe Bay`,n=[`Channel House`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},J6=`Depoe Bay`,Bhe=K(J6),Y6=({restaurant:e})=>{let t=Mf(J6,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-teal-950`,children:e?.name}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Bhe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-teal-600 bg-teal-100 px-2 py-1 rounded-md whitespace-nowrap`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-teal-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-teal-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},X6=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-teal-500 pl-3`,children:n})})]}),Vhe=({restaurants:e})=>{if(!e||e.length===0)return null;let t=e.slice(0,2),n=e.slice(2,5),r=e.slice(5);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-teal-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Depoe Bay`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-teal-900 border-b-2 border-teal-200 pb-2 inline-block`,children:`Fine Dining & Views`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(Y6,{restaurant:e},t))})]}),(0,z.jsx)(X6,{src:`https://images.unsplash.com/photo-1550513185-b643c86c370e`,alt:`Elegant table setting at a high-end seafood restaurant`,caption:`Oceanfront Dining Experiences`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(X6,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(Y6,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm border border-teal-50`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-teal-900 mb-8 text-center`,children:`International & Quick Bites`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 gap-6`,children:r.map((e,t)=>(0,z.jsx)(Y6,{restaurant:e},t))})]})]})})},Hhe=()=>{(0,y.useEffect)(()=>{console.log(`DepoeBayPage mounted`)},[]);let e=`Depoe Bay`,t=Uf(e),n=Wf(e),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2c57f533ae0506195f5f5c9a0953d506.webp`,i=`/images/heroes/depoe-bay/hero-depoe-bay-1600.webp`,a=`/images/heroes/depoe-bay/hero-depoe-bay-640.webp 640w, /images/heroes/depoe-bay/hero-depoe-bay-1024.webp 1024w, /images/heroes/depoe-bay/hero-depoe-bay-1600.webp 1600w`,o={name:e,description:n,image:r,geo:{lat:44.8066,lng:-124.0601},url:`https://oregoncoastal.com/town/depoe-bay`};return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsx)(VS,{...o}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Depoe Bay harbor and coastline`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Depoe Bay`}),(0,z.jsx)(q.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`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-teal-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Depoe Bay Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:Ahe}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:o.geo.lat,lon:o.geo.lng,townName:`Depoe Bay`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Depoe Bay`,townSlug:`depoe-bay`,lat:o.geo.lat,lon:o.geo.lng})})]}),(0,z.jsx)($3,{townSlug:`depoe-bay`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Depoe Bay`,featuredImage:r,title:`Depoe Bay in Photos`})}),(0,z.jsx)(hj,{attractions:K6,townName:`Depoe Bay`}),(0,z.jsx)(Ihe,{attractions:K6}),(0,z.jsx)(Rhe,{trails:jhe}),(0,z.jsx)(zhe,{hotels:Mhe}),(0,z.jsx)(Vhe,{restaurants:Nhe})]}),(0,z.jsx)(NS,{})]})},Uhe=`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.`,Z6=[{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.`}],Whe=[{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.`}],Ghe=[{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.`}],Khe=[{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.`}],Q6=`Dune City`,qhe=K(Q6),Jhe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(Q6,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:qhe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),Yhe=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Lakes & Dunes`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(Jhe,{attraction:e,index:t},t))})]})})),$6=`Dune City`,Xhe=K($6),Zhe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Qhe=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf($6,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Xhe,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Zhe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),$he=({hotels:e})=>{let t=`Dune City`,n=[`Tyee Campground`,`Woahink Lake RV Resort`,`Dune City Vacation Rentals`,`Coming Soon`,`Westlake Resort`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},ege=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),tge=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),nge=({restaurants:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Dune City`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(tge,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:e.map((e,t)=>(0,z.jsx)(ege,{restaurant:e},t))})]})]})]})})),rge=()=>{(0,y.useEffect)(()=>{console.log(`DuneCityPage mounted`)},[]);let e=Y[`dune-city`],t=Uf(`Dune City`),n=Wf(`Dune City`),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c2bb95a8f717d26828623d6733b9a799.webp`,i=`/images/heroes/dune-city/hero-dune-city-1600.webp`,a=`/images/heroes/dune-city/hero-dune-city-640.webp 640w, /images/heroes/dune-city/hero-dune-city-1024.webp 1024w, /images/heroes/dune-city/hero-dune-city-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Dune City Oregon Travel`,description:n,url:`https://oregoncoastal.com/town/dune-city`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Dune City, Oregon Lakes and Dunes`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Dune City`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Dune City`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto town-grid-layout mb-12`,children:[(0,z.jsx)(`div`,{className:`town-about-section`,children:(0,z.jsx)(i6,{townName:`Dune City`,initialDescription:Uhe})}),(0,z.jsx)(`div`,{className:`town-weather-section`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||43.8885,lon:e?.geo?.lng||-124.1165,townName:`Dune City`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Dune City`,townSlug:`dune-city`,lat:e?.geo?.lat||43.8885,lon:e?.geo?.lng||-124.1165})})]}),(0,z.jsx)($3,{townSlug:`dune-city`}),(0,z.jsx)(vj,{townName:`Dune City`,featuredImage:r,title:`Dune City in Photos`}),(0,z.jsx)(hj,{attractions:Z6,townName:`Dune City`}),(0,z.jsx)(Yhe,{attractions:Z6}),(0,z.jsx)(Qhe,{trails:Whe}),(0,z.jsx)($he,{hotels:Ghe}),(0,z.jsx)(nge,{restaurants:Khe})]}),(0,z.jsx)(NS,{})]})},ige={featured:`https://images.unsplash.com/photo-1565624796120-0010c283626e?auto=format&fit=crop&w=1200&q=80`,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`]},e8=`Florence`,age=K(e8),oge=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(e8,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:age,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),sge=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Discover the Dunes & More`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(oge,{attraction:e,index:t},t))})]})})),t8=`Florence`,cge=K(t8),lge=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},uge=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(t8,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:cge,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(lge,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),dge=({hotels:e})=>{let t=`Florence`,n=[`Edwin K Bed & Breakfast`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},n8=`Florence`,fge=K(n8),r8=({restaurant:e})=>{let t=Mf(n8,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:fge,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},i8=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),pge=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,7),r=e.slice(7);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Florence`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Riverfront Dining`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(r8,{restaurant:e},t))})]}),(0,z.jsx)(i8,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(i8,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(r8,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Cafes, Sweets & Light Bites`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-4 gap-6`,children:r.map((e,t)=>(0,z.jsx)(r8,{restaurant:e},t))}),(0,z.jsx)(`div`,{className:`mt-8 text-center`,children:(0,z.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`})})]})]})})},mge=[{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.`}],hge=[{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`}],gge=()=>{(0,y.useEffect)(()=>{console.log(`FlorencePage mounted`)},[]);let e=Y.florence,t=Uf(`Florence`),n=Wf(`Florence`),r=`/images/heroes/florence/hero-florence-1600.webp`,i=`/images/heroes/florence/hero-florence-640.webp 640w, /images/heroes/florence/hero-florence-1024.webp 1024w, /images/heroes/florence/hero-florence-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:r,imagesrcset:i,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:r,srcSet:i,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Florence, Oregon Dunes and River`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Florence`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Florence`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto town-grid-layout mb-12`,children:[(0,z.jsx)(`div`,{className:`town-about-section`,children:(0,z.jsx)(i6,{townName:`Florence`,initialDescription:$A})}),(0,z.jsx)(`div`,{className:`town-weather-section`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||43.9826,lon:e?.geo?.lng||-124.0998,townName:`Florence`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Florence`,townSlug:`florence`,lat:e?.geo?.lat||43.9826,lon:e?.geo?.lng||-124.0998})})]}),(0,z.jsx)($3,{townSlug:`florence`}),(0,z.jsx)(vj,{townName:`Florence`,featuredImage:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/f96e6b74688eedfb4225959efeeff861.webp`,title:`Florence in Photos`,images:ige.images}),(0,z.jsx)(hj,{attractions:ej,townName:`Florence`}),(0,z.jsx)(sge,{attractions:ej}),(0,z.jsx)(uge,{trails:tj}),(0,z.jsx)(z6,{townName:`Florence`,waterfalls:mge,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.`}),(0,z.jsx)(l6,{events:hge,townName:`Florence`}),(0,z.jsx)(dge,{hotels:nj}),(0,z.jsx)(pge,{restaurants:rj})]}),(0,z.jsx)(NS,{})]})},_ge=`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.`,a8=[{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.`}],vge=[{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.`}],yge=[{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.`}],bge=[{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.`}],o8=`Gardiner`,xge=K(o8),Sge=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-slate-900 leading-tight`,children:e.name}),(()=>{let t=Pf(o8,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:xge,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-slate-100 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-slate-600`})})]}),(0,z.jsx)(`p`,{className:`text-slate-600 mb-6 flex-grow leading-relaxed`,children:e.description}),(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-slate-100`,children:(0,z.jsx)(`p`,{className:`text-sm font-medium text-slate-700 bg-slate-50 inline-block px-3 py-1 rounded-md`,children:e.details})})]})}),Cge=({attractions:e})=>(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-slate-50 to-white`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-slate-600 font-bold tracking-wider uppercase text-sm`,children:`Historic & Scenic`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-slate-400 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6`,children:e.map((e,t)=>(0,z.jsx)(Sge,{attraction:e,index:t},t))})]})}),s8=`Gardiner`,wge=K(s8),Tge=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e})},Ege=({trails:e})=>(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-blue-50 to-slate-50`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-blue-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-slate-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)($o,{className:`w-8 h-8 text-blue-600`}),`Trails & Dunes`]}),(0,z.jsx)(`p`,{className:`text-slate-600 text-lg`,children:`Explore the unique transition from river estuary to massive sand dunes.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:e.map((e,t)=>(0,z.jsx)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-blue-100 transition-all group h-full`,children:(0,z.jsxs)(`div`,{className:`flex flex-col justify-between h-full`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:`flex justify-between items-start mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-slate-800 group-hover:text-blue-700 transition-colors`,children:e.name}),(()=>{let t=Nf(s8,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:wge,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(Tge,{level:e.difficulty})]}),(0,z.jsx)(`p`,{className:`text-slate-600 leading-relaxed text-sm mb-4`,children:e.description})]}),(0,z.jsxs)(`div`,{className:`mt-auto pt-4 border-t border-slate-50 text-sm text-slate-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]})]})},t))})]})}),Dge=()=>{let e=[{name:`Best Western Salbasgeon Inn & Suites Of Reedsport`,image:`/images/hotels/gardiner/best-western-salbasgeon-inn-and-suites-of-reedsport.jpg`,affiliateUrl:`https://expedia.com/affiliate/T06n3oJ`,description:`Comfortable suites with modern amenities located conveniently in Reedsport.`,rating:4.5},{name:`Economy Inn Reedsport`,image:`/images/hotels/reedsport/economy-inn-reedsport.jpg/expedia.com/affiliate/86T7wG7`,description:`Budget-friendly accommodations perfect for travelers exploring the Oregon Coast.`,rating:3.5},{name:`Anchor Bay Inn`,image:`/images/hotels/reedsport/anchor-bay-inn.jpga.com/affiliate/mg9V7Qk`,description:`Quaint and cozy lodging near the heart of the coastal activity.`,rating:4},{name:`Best Budget Inn`,image:`/images/hotels/reedsport/best-budget-inn.jpgia.com/affiliate/12zpSQt`,description:`Affordable and reliable lodging for visitors on the go.`,rating:3},{name:`Winchester Bay Inn`,image:`/images/hotels/reedsport/winchester-bay-inn.jpgpedia.com/affiliate/5QIauAF`,description:`Scenic views and comfortable rooms located in beautiful Winchester Bay.`,rating:4.2}];return(0,z.jsx)(o6,{townName:`Gardiner`,fallbackHotels:e,affiliateHotels:e})},Oge=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-4`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-emerald-950`,children:e.name}),(0,z.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})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-6 text-base leading-relaxed flex-grow`,children:e.description}),(0,z.jsxs)(`div`,{className:`pt-4 border-t border-emerald-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-emerald-800 uppercase tracking-wide mb-1`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),kge=({restaurants:e})=>(0,z.jsx)(`section`,{className:`py-24 px-4 bg-gradient-to-b from-green-50 to-emerald-50`,children:(0,z.jsxs)(`div`,{className:`max-w-4xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-emerald-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Gardiner`}),(0,z.jsx)(`div`,{className:`bg-white/60 p-4 rounded-lg inline-block mx-auto mt-4 border border-emerald-100`,children:(0,z.jsxs)(`p`,{className:`flex items-center gap-2 text-emerald-800 text-sm font-medium`,children:[(0,z.jsx)(go,{className:`w-4 h-4`}),`Dining options are limited within the historic district.`]})})]}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 gap-8`,children:e.map((e,t)=>(0,z.jsx)(Oge,{restaurant:e},t))}),(0,z.jsx)(`div`,{className:`mt-12 text-center`,children:(0,z.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.`})})]})}),Age=()=>{(0,y.useEffect)(()=>{console.log(`GardinerPage mounted`)},[]);let e=Y.gardiner,t=Uf(`Gardiner`),n=Wf(`Gardiner`),r=`/images/heroes/gardiner/hero-gardiner-1600.webp`,i=`/images/heroes/gardiner/hero-gardiner-640.webp 640w, /images/heroes/gardiner/hero-gardiner-1024.webp 1024w, /images/heroes/gardiner/hero-gardiner-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:r,imagesrcset:i,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:r,srcSet:i,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Gardiner, Oregon Historic District`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Gardiner`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Gardiner Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:_ge}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||43.7315,lon:e?.geo?.lng||-124.1126,townName:`Gardiner`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Gardiner`,townSlug:`gardiner`,lat:e?.geo?.lat||43.7315,lon:e?.geo?.lng||-124.1126})})]}),(0,z.jsx)($3,{townSlug:`gardiner`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Gardiner`,featuredImage:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/b4066023187b60adc59587c738bf4819.jpg`,title:`Historic Gardiner Gallery`})}),(0,z.jsx)(hj,{attractions:a8,townName:`Gardiner`}),(0,z.jsx)(Cge,{attractions:a8}),(0,z.jsx)(Ege,{trails:vge}),(0,z.jsx)(Dge,{hotels:yge}),(0,z.jsx)(kge,{restaurants:bge})]}),(0,z.jsx)(NS,{})]})},jge=`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.`,c8=[{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`}],Mge=[{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.`}],Nge=[{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`}],Pge=[{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`}],l8=`Garibaldi`,Fge=K(l8),Ige=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(l8,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Fge,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-blue-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-blue-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed text-sm`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),Lge=({attractions:e})=>!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-blue-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-blue-600 font-bold tracking-wider uppercase text-sm`,children:`Discover the Bay`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-blue-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6`,children:e.map((e,t)=>(0,z.jsx)(Ige,{attraction:e,index:t},t))})]})}),Rge=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},zge=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-blue-600`}),`Hiking & Nature Walks`]}),(0,z.jsx)(`p`,{className:`text-gray-600 text-lg`,children:`Explore the rugged beauty of Tillamook Bay, from jetty walks to forest trails.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-blue-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Rge,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),Bge=({hotels:e})=>{let t=`Garibaldi`,n=[`Barview Jetty County Campground`,`Vacation Rentals`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},u8=`Garibaldi`,Vge=K(u8),d8=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-blue-950`,children:e?.name||`Restaurant Name`}),(()=>{let t=Mf(u8,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Vge,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-blue-600 bg-blue-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-blue-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-blue-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),f8=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-blue-500 pl-3`,children:n})})]}),Hge=({restaurants:e})=>{if((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`RestaurantsSection: No restaurant data provided`)},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-blue-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-blue-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2,4),r=e.slice(4);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-blue-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-blue-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Garibaldi`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-blue-900 border-b-2 border-blue-200 pb-2 inline-block`,children:`Portside Favorites`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(d8,{restaurant:e},t))})]}),(0,z.jsx)(f8,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(f8,{src:`https://images.unsplash.com/photo-1551024709-8f23befc6f87?auto=format&fit=crop&w=800&q=80`,alt:`Pub food`,caption:`Local pub fare & brews`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(d8,{restaurant:e},t))})]})]}),r.length>0&&(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-blue-900 mb-8 text-center`,children:`More Local Spots`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:r.map((e,t)=>(0,z.jsx)(d8,{restaurant:e},t))})]})]})})},Uge=()=>{(0,y.useEffect)(()=>{console.log(`GaribaldiBPage mounted`)},[]);let e=Y.garibaldi,t=Uf(`Garibaldi`),n=Wf(`Garibaldi`),r=OA.garibaldi,i=`/images/heroes/garibaldi/hero-garibaldi-1536.webp`,a=`/images/heroes/garibaldi/hero-garibaldi-640.webp 640w, /images/heroes/garibaldi/hero-garibaldi-1024.webp 1024w, /images/heroes/garibaldi/hero-garibaldi-1536.webp 1536w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Garibaldi Oregon Travel`,description:n,url:`https://oregoncoastal.com/town/garibaldi`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1536,height:1152,fetchpriority:`high`,alt:`Garibaldi, Oregon Marina and Bay`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Garibaldi`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Garibaldi`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-2`,children:(0,z.jsx)(i6,{townName:`Garibaldi`,initialDescription:jge},`Garibaldi-About`)}),(0,z.jsx)(`div`,{className:`lg:col-span-1`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.5587,lon:e?.geo?.lng||-123.9168,townName:`Garibaldi`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Garibaldi`,townSlug:`garibaldi`,lat:e?.geo?.lat||45.5587,lon:e?.geo?.lng||-123.9168})})]}),(0,z.jsx)($3,{townSlug:`garibaldi`}),(0,z.jsx)(vj,{townName:`Garibaldi`,featuredImage:r,title:`Garibaldi in Photos`}),(0,z.jsx)(hj,{attractions:c8,townName:`Garibaldi`}),(0,z.jsx)(Lge,{attractions:c8}),(0,z.jsx)(zge,{trails:Mge}),(0,z.jsx)(Bge,{hotels:Nge}),(0,z.jsx)(Hge,{restaurants:Pge})]}),(0,z.jsx)(NS,{})]})},Wge=`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.`,p8=[{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`}],Gge=[{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`}],Kge=[{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`]}],qge=[{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:`$-$$$$`}],Jge=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),Yge=({attractions:e})=>!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the Charm`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(Jge,{attraction:e,index:t},t))})]})}),Xge=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Zge=({trails:e})=>!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Xge,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})}),Qge=({hotels:e})=>{let t=`Gearhart`,n=[`Nearby Seaside Options`,`Gearhart by the Sea`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},m8=`Gearhart`,$ge=K(m8),h8=({restaurant:e})=>{let t=Mf(m8,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:$ge,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.cuisine&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.cuisine})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.price&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Price Range`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.price})]})]})},g8=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),e_e=({restaurants:e})=>{if(!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2,4),r=e.slice(4);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Gearhart`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Local Favorites`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(h8,{restaurant:e},t))})]}),(0,z.jsx)(g8,{src:`https://images.unsplash.com/photo-1559339352-11d035aa65de?auto=format&fit=crop&w=800&q=80`,alt:`Cozy cafe dining`,caption:`Charming local spots`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(g8,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(h8,{restaurant:e},t))})]})]}),r.length>0&&(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`More Delicious Options`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:r.map((e,t)=>(0,z.jsx)(h8,{restaurant:e},t))})]})]})})},t_e=()=>{(0,y.useEffect)(()=>{console.log(`GearheartPage mounted`)},[]);let e=Y.gearhart,t=Uf(`Gearhart`),n=Wf(`Gearhart`),r=OA.gearhart,i=`/images/heroes/gearhart/hero-gearhart-1600.webp`,a=`/images/heroes/gearhart/hero-gearhart-640.webp 640w, /images/heroes/gearhart/hero-gearhart-1024.webp 1024w, /images/heroes/gearhart/hero-gearhart-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`}),(0,z.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}})})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:918,fetchpriority:`high`,alt:`Gearhart, Oregon Coast`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Gearhart`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Gearhart`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-2`,children:(0,z.jsx)(i6,{townName:`Gearhart`,initialDescription:Wge},`Gearhart-About`)}),(0,z.jsx)(`div`,{className:`lg:col-span-1`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||46.027,lon:e?.geo?.lng||-123.9189,townName:`Gearhart`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Gearhart`,townSlug:`gearhart`,lat:e?.geo?.lat||46.027,lon:e?.geo?.lng||-123.9189})})]}),(0,z.jsx)($3,{townSlug:`gearhart`}),(0,z.jsx)(vj,{townName:`Gearhart`,featuredImage:r,title:`Gearhart in Photos`}),(0,z.jsx)(hj,{attractions:p8,townName:`Gearhart`}),(0,z.jsx)(Yge,{attractions:p8}),(0,z.jsx)(Zge,{trails:Gge}),(0,z.jsx)(Qge,{hotels:Kge}),(0,z.jsx)(e_e,{restaurants:qge})]}),(0,z.jsx)(NS,{})]})},n_e=`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.`,_8=[{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`}],r_e=[{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.`}],i_e=[{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.`}],a_e=[{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.`}],v8=`Gleneden Beach`,o_e=K(v8),s_e=({attraction:e,index:t})=>{let n=Pf(v8,e?.name);return(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:o_e,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`div`,{className:`bg-blue-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-blue-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})})},c_e=({attractions:e})=>!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-blue-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-blue-600 font-bold tracking-wider uppercase text-sm`,children:`Discover Gleneden`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-blue-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6`,children:e.map((e,t)=>(0,z.jsx)(s_e,{attraction:e,index:t},t))})]})}),l_e=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Easy),children:e})},u_e=({trails:e})=>!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Nature Trails & Beach Walks`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(l_e,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})}),d_e=({hotels:e})=>{let t=`Gleneden Beach`,n=[`Vacation Rentals`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},y8=`Gleneden Beach`,f_e=K(y8),b8=({restaurant:e})=>{let t=Mf(y8,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:f_e,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},x8=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),p_e=({restaurants:e})=>{if((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`RestaurantsSection: No restaurant data provided`)},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2,5),r=e.slice(5,7);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Gleneden Beach`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Fine Dining & Lounges`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(b8,{restaurant:e},t))})]}),(0,z.jsx)(x8,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(x8,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(b8,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Marketplace Treats`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 gap-6 max-w-4xl mx-auto`,children:r.map((e,t)=>(0,z.jsx)(b8,{restaurant:e},t))}),(0,z.jsx)(`div`,{className:`mt-8 text-center`,children:(0,z.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`})})]})]})})},m_e=()=>{(0,y.useEffect)(()=>{console.log(`GlenedenBeachPage mounted`)},[]);let e=`Gleneden Beach`,t=Uf(e),n=Wf(e),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/198018a5878ad5fcf6cafddb42efb27d.webp`,i=`/images/heroes/gleneden-beach/hero-gleneden-beach-1600.webp`,a=`/images/heroes/gleneden-beach/hero-gleneden-beach-640.webp 640w, /images/heroes/gleneden-beach/hero-gleneden-beach-1024.webp 1024w, /images/heroes/gleneden-beach/hero-gleneden-beach-1600.webp 1600w`,o={name:e,description:n,image:r,geo:{lat:44.8879,lng:-124.0326},url:`https://oregoncoastal.com/town/gleneden-beach`};return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsx)(VS,{...o}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Gleneden Beach coastline`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Gleneden Beach`}),(0,z.jsx)(q.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`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-blue-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Gleneden Beach Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:n_e}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:o.geo.lat,lon:o.geo.lng,townName:`Gleneden Beach`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Gleneden Beach`,townSlug:`gleneden-beach`,lat:o.geo.lat,lon:o.geo.lng})})]}),(0,z.jsx)($3,{townSlug:`gleneden-beach`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Gleneden Beach`,featuredImage:r,title:`Gleneden Beach in Photos`})}),(0,z.jsx)(hj,{attractions:_8,townName:`Gleneden Beach`}),(0,z.jsx)(c_e,{attractions:_8}),(0,z.jsx)(u_e,{trails:r_e}),(0,z.jsx)(d_e,{hotels:i_e}),(0,z.jsx)(p_e,{restaurants:a_e})]}),(0,z.jsx)(NS,{})]})},h_e=`
<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>
`,S8=[{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`}],g_e=[{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.`}],__e=[{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:`/images/hotels/gold-beach/tu-tu-tun-lodge.jpg`},{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`}],v_e=[{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`}],C8=`Gold Beach`,y_e=K(C8),b_e=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(C8,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:y_e,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),x_e=({attractions:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`AttractionsSection: No attractions data provided`)},[e]),!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Experience the Adventure`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(b_e,{attraction:e,index:t},t))})]})})),w8=`Gold Beach`,S_e=K(w8),C_e=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},w_e=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(w8,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:S_e,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(C_e,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),T_e=({hotels:e})=>{let t=`Gold Beach`;return(0,z.jsx)(o6,{townName:t,fallbackHotels:e,affiliateHotels:qC[t]})},E_e=e=>e?.toString().toLowerCase().replace(/\s+/g,`-`).replace(/[^\w-]/g,``)||``,T8=({restaurant:e})=>(0,z.jsxs)(`div`,{id:E_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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),E8=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),D_e=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,5),r=e.slice(5,7),i=e.slice(7);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Gold Beach`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`River & Ocean Dining`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(T8,{restaurant:e},t))})]}),(0,z.jsx)(E8,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(E8,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(T8,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-3 gap-6 mb-16`,children:[(0,z.jsx)(`div`,{className:`md:col-span-3 text-center mb-4`,children:(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 inline-block`,children:`Local Favorites`})}),r.map((e,t)=>(0,z.jsx)(T8,{restaurant:e},t)),(0,z.jsx)(`div`,{className:`h-full min-h-[200px] rounded-xl overflow-hidden shadow-md`,children:(0,z.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`})})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Cafes, Breakfasts & Light Bites`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:i.map((e,t)=>(0,z.jsx)(T8,{restaurant:e},t))}),(0,z.jsx)(`div`,{className:`mt-8 text-center`,children:(0,z.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`})})]})]})})},O_e=[{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.`}],k_e=()=>{(0,y.useEffect)(()=>{console.log(`GoldBeachPage mounted`)},[]);let e=Y[`gold-beach`],t=Uf(`Gold Beach`),n=Wf(`Gold Beach`),r=`/images/heroes/gold-beach/hero-gold-beach-1280.webp`,i=`/images/heroes/gold-beach/hero-gold-beach-640.webp 640w, /images/heroes/gold-beach/hero-gold-beach-1024.webp 1024w, /images/heroes/gold-beach/hero-gold-beach-1280.webp 1280w`,a=[`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(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:r,imagesrcset:i,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Gold Beach, Oregon`,description:n,url:`https://oregoncoastal.com/gold-beach`,geo:{lat:42.4091,lng:-124.4187},image:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c877cc6b256faf5d4fc943c9cf11f331.webp`}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:r,srcSet:i,sizes:`100vw`,width:1280,height:960,fetchpriority:`high`,alt:`Gold Beach coastline and Rogue River`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Gold Beach`,region:`South Coast`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Gold Beach Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:h_e}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||42.4073,lon:e?.geo?.lng||-124.4218,townName:`Gold Beach`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Gold Beach`,townSlug:`gold-beach`,lat:e?.geo?.lat||42.4073,lon:e?.geo?.lng||-124.4218})})]}),(0,z.jsx)($3,{townSlug:`gold-beach`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Gold Beach`,featuredImage:a[0],images:a,title:`Gold Beach in Photos`})}),(0,z.jsx)(hj,{attractions:S8,townName:`Gold Beach`}),(0,z.jsx)(x_e,{attractions:S8}),(0,z.jsx)(w_e,{trails:g_e}),(0,z.jsx)(z6,{townName:`Gold Beach`,waterfalls:O_e,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.`}),(0,z.jsx)(T_e,{hotels:__e}),(0,z.jsx)(D_e,{restaurants:v_e})]}),(0,z.jsx)(NS,{})]})},A_e=`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.`,D8=[{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.`}],j_e=[{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.`}],M_e=[{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`}],N_e=[{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`}],P_e=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`AttractionsSection: No attractions data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the Port`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(P_e,{attraction:e,index:t},t))})]})})),I_e=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},L_e=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(I_e,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),R_e=({hotels:e})=>{let t=`Brookings`;return(0,z.jsx)(o6,{townName:t,fallbackHotels:e,affiliateHotels:qC[t],sourcePageOverride:`/town/harbor`})},O8=`Harbor`,z_e=K(O8),k8=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),(()=>{let t=Mf(O8,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:z_e,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),A8=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),B_e=({restaurants:e})=>{if((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`RestaurantsSection: No restaurant data provided`)},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,5),r=e.slice(5,7);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Harbor`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Fresh Seafood`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(k8,{restaurant:e},t))})]}),(0,z.jsx)(A8,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(A8,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(k8,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Bakery & Market`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-2 gap-6`,children:r.map((e,t)=>(0,z.jsx)(k8,{restaurant:e},t))})]})]})})},V_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`}],H_e=()=>{(0,y.useEffect)(()=>{console.log(`HarborPage mounted`)},[]);let e=Y.harbor,t=Uf(`Harbor`),n=Wf(`Harbor`),r=`/images/heroes/harbor/hero-harbor-1600.webp`,i=`/images/heroes/harbor/hero-harbor-640.webp 640w, /images/heroes/harbor/hero-harbor-1024.webp 1024w, /images/heroes/harbor/hero-harbor-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:r,imagesrcset:i,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:r,srcSet:i,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Harbor, Oregon coastline`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Harbor`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Harbor Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:A_e}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||42.0534,lon:e?.geo?.lng||-124.2844,townName:`Harbor`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Harbor`,townSlug:`harbor`,lat:e?.geo?.lat||42.0534,lon:e?.geo?.lng||-124.2844})})]}),(0,z.jsx)($3,{townSlug:`harbor`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Harbor`,featuredImage:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/c83af0560b4f8c977f60d521543eadef.webp`,title:`Harbor in Photos`})}),(0,z.jsx)(hj,{attractions:D8,townName:`Harbor`}),(0,z.jsx)(F_e,{attractions:D8}),(0,z.jsx)(L_e,{trails:j_e}),(0,z.jsx)(l6,{events:V_e}),(0,z.jsx)(R_e,{hotels:M_e}),(0,z.jsx)(B_e,{restaurants:N_e})]}),(0,z.jsx)(NS,{})]})},U_e=`
<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>
`,j8=[{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.`}],W_e=[{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.`}],G_e=[{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.`}],K_e=[{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.`}],M8=`Lakeside`,q_e=K(M8),J_e=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e.name}),(()=>{let t=Pf(M8,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:q_e,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-blue-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-blue-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e.description}),(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),Y_e=({attractions:e})=>(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-blue-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-blue-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the Lakes`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-blue-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(J_e,{attraction:e,index:t},t))})]})}),N8=`Lakeside`,X_e=K(N8),Z_e=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e})},Q_e=({trails:e})=>(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f4f8fb]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)($o,{className:`w-8 h-8 text-emerald-600`}),`Nature Trails & Walks`]}),(0,z.jsx)(`p`,{className:`text-gray-600 text-lg`,children:`Discover peaceful paths through lush coastal forests and around tranquil lakes.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(N8,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:X_e,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Z_e,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})}),$_e=({hotels:e})=>{let t=`Lakeside`,n=[`Osprey Point RV Resort`,`Tenmile Lakes County Park Campground`,`William M. Tugman State Park Campground`,`Coming Soon`,`North Lake Resort`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},P8=`Lakeside`,eve=K(P8),tve=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900`,children:e.name}),(()=>{let t=Mf(P8,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:eve,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.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})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-4 text-sm leading-relaxed flex-grow`,children:e.description}),(0,z.jsxs)(`div`,{className:`pt-3 border-t border-gray-100 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-gray-500 uppercase tracking-wide mb-1`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-700 font-medium`,children:e.features})]})]}),nve=({restaurants:e})=>(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50/50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-500`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(Ea,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Lakeside`}),(0,z.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.`})]}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:e.map((e,t)=>(0,z.jsx)(tve,{restaurant:e},t))})]})}),rve=()=>{(0,y.useEffect)(()=>{console.log(`LakesidePage mounted`)},[]);let e=Y.lakeside,t=Uf(`Lakeside`),n=Wf(`Lakeside`),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e921b311af063b364aecb010b4f38a5a.webp`,i=`/images/heroes/lakeside/hero-lakeside-1280.webp`,a=`/images/heroes/lakeside/hero-lakeside-640.webp 640w, /images/heroes/lakeside/hero-lakeside-1024.webp 1024w, /images/heroes/lakeside/hero-lakeside-1280.webp 1280w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Lakeside Oregon Travel`,description:n,url:`https://oregoncoastal.com/town/lakeside`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1280,height:960,fetchpriority:`high`,alt:`Lakeside, Oregon - Tenmile Lakes`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Lakeside`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Lakeside Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:U_e}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||43.5785,lon:e?.geo?.lng||-124.1754,townName:`Lakeside`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Lakeside`,townSlug:`lakeside`,lat:e?.geo?.lat||43.5785,lon:e?.geo?.lng||-124.1754})})]}),(0,z.jsx)($3,{townSlug:`lakeside`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Lakeside`,featuredImage:r,title:`Lakeside in Photos`})}),(0,z.jsx)(hj,{attractions:j8,townName:`Lakeside`}),(0,z.jsx)(Y_e,{attractions:j8}),(0,z.jsx)(Q_e,{trails:W_e}),(0,z.jsx)($_e,{hotels:G_e}),(0,z.jsx)(nve,{restaurants:K_e})]}),(0,z.jsx)(NS,{})]})},ive=`
<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>
`,F8=[{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.`}],ave=[{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.`}],ove=[{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.`}],sve=[{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.`}],I8=`Langlois`,cve=K(I8),lve=({attraction:e,index:t})=>(0,z.jsxs)(q.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&&(0,z.jsxs)(`div`,{className:`relative h-48 overflow-hidden`,children:[(0,z.jsx)(`img`,{src:e.image,alt:e.name,className:`w-full h-full object-cover transition-transform duration-500 hover:scale-110`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-t from-black/20 to-transparent`})]}),(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(I8,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:cve,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})]}),uve=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Rural Charm & Nature`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(lve,{attraction:e,index:t},t))})]})})),dve=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},fve=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Vistas`]}),(0,z.jsx)(`p`,{className:`text-gray-600 text-lg`,children:`Discover hidden headlands, quiet lakes, and the wild beauty of the Southern Oregon Coast trails.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(dve,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),pve=({hotels:e})=>{let t=`Langlois`,n=[`Floras Lake House B&B`,`Wildspring Guest Habitat (Port Orford)`,`Castaway by the Sea (Port Orford)`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},L8=`Langlois`,mve=K(L8),hve=({restaurant:e})=>(0,z.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&&(0,z.jsx)(`div`,{className:`mb-4 rounded-lg overflow-hidden h-40`,children:(0,z.jsx)(`img`,{src:e.image,alt:e.name,className:`w-full h-full object-cover`})}),(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),(()=>{let t=Mf(L8,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:mve,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),gve=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),_ve=({restaurants:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Langlois`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Market & Classics`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:e.map((e,t)=>(0,z.jsx)(hve,{restaurant:e},t))})]}),(0,z.jsx)(gve,{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`})]})]})})),vve=()=>{(0,y.useEffect)(()=>{console.log(`LangloisPage mounted`)},[]);let e=Y.langlois,t=Uf(`Langlois`),n=Wf(`Langlois`),r=`/images/heroes/langlois/hero-langlois-1200.webp`,i=`/images/heroes/langlois/hero-langlois-640.webp 640w, /images/heroes/langlois/hero-langlois-1024.webp 1024w, /images/heroes/langlois/hero-langlois-1200.webp 1200w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:r,imagesrcset:i,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:r,srcSet:i,sizes:`100vw`,width:1200,height:800,fetchpriority:`high`,alt:`Langlois, Oregon countryside`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Langlois`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Langlois Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:ive}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||42.9248,lon:e?.geo?.lng||-124.4504,townName:`Langlois`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Langlois`,townSlug:`langlois`,lat:e?.geo?.lat||42.9248,lon:e?.geo?.lng||-124.4504})})]}),(0,z.jsx)($3,{townSlug:`langlois`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Langlois`,featuredImage:`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/17bd9faa00a2de20cd5caa78364dd87c.webp`,title:`Langlois Gallery`})}),(0,z.jsx)(hj,{attractions:F8,townName:`Langlois`}),(0,z.jsx)(uve,{attractions:F8}),(0,z.jsx)(fve,{trails:ave}),(0,z.jsx)(pve,{hotels:ove}),(0,z.jsx)(_ve,{restaurants:sve})]}),(0,z.jsx)(NS,{})]})},yve=`
<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>
`,R8=[{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.`}],bve=[{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.`}],xve=[{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`}],Sve=[{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.`}],z8=`Lincoln City`,Cve=K(z8),wve=({attraction:e,index:t})=>{let n=Pf(z8,e?.name);return(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:Cve,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`div`,{className:`bg-blue-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-blue-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})})},Tve=({attractions:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`AttractionsSection: No attractions data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-blue-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-blue-600 font-bold tracking-wider uppercase text-sm`,children:`Experience the Magic`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-blue-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6`,children:e.map((e,t)=>(0,z.jsx)(wve,{attraction:e,index:t},t))})]})})),Eve=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Dve=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:[(0,z.jsxs)(`div`,{className:`max-w-3xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-teal-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]}),(0,z.jsx)(`div`,{className:`hidden md:block`,children:(0,z.jsx)($o,{className:`w-16 h-16 text-teal-100`})})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Eve,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),Ove=({hotels:e})=>{let t=`Lincoln City`;return(0,z.jsx)(o6,{townName:t,fallbackHotels:e,affiliateHotels:qC[t]})},B8=`Lincoln City`,kve=K(B8),V8=({restaurant:e,index:t})=>{let n=Mf(B8,e?.name);return(0,z.jsxs)(q.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-lg font-bold text-orange-950 truncate pr-2`,children:e?.name||`Restaurant`}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:kve,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`div`,{className:`shrink-0`,children:e?.category?.includes(`Seafood`)?(0,z.jsx)(oo,{className:`w-4 h-4 text-orange-400`}):e?.category?.includes(`Coffee`)||e?.category?.includes(`Breakfast`)?(0,z.jsx)(Qa,{className:`w-4 h-4 text-orange-400`}):e?.category?.includes(`Fine`)||e?.category?.includes(`Wine`)?(0,z.jsx)(ds,{className:`w-4 h-4 text-orange-400`}):(0,z.jsx)(os,{className:`w-4 h-4 text-orange-400`})})]}),(0,z.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`}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-[10px] font-bold text-orange-800 uppercase tracking-wide mb-1`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-xs text-gray-500`,children:e.features})]})]})},H8=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8 w-full`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),Ave=({restaurants:e})=>{if((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`RestaurantsSection: No restaurant data provided`)},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=[e[0],e[1],e[4],e[6]].filter(Boolean),n=[e[2],e[3],e[5],e[7]].filter(Boolean),r=[e[8],e[9],e[10],e[11]].filter(Boolean);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(`div`,{className:`h-px w-12 bg-orange-200`}),(0,z.jsx)(oo,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Lincoln City`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Fresh Seafood & Views`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(V8,{restaurant:e,index:t},t))})]}),(0,z.jsx)(H8,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(H8,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(V8,{restaurant:e,index:t},t))})]})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Pubs, Markets & Treats`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-4 gap-6`,children:r.map((e,t)=>(0,z.jsx)(V8,{restaurant:e,index:t},t))})]})]})})},jve=[{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.`}],Mve=[{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)`}],Nve=()=>{(0,y.useEffect)(()=>{console.log(`LincolnCityPage mounted`)},[]);let e=Y[`lincoln-city`],t=`Lincoln City`,n=Uf(t),r=Wf(t),i=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/4b7ba56a47e804904a0e87f9ebad9b07.webp`,a=`/images/heroes/lincoln-city/hero-lincoln-city-1600.webp`,o=`/images/heroes/lincoln-city/hero-lincoln-city-640.webp 640w, /images/heroes/lincoln-city/hero-lincoln-city-1024.webp 1024w, /images/heroes/lincoln-city/hero-lincoln-city-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:n}),(0,z.jsx)(`meta`,{name:`description`,content:r}),(0,z.jsx)(`meta`,{property:`og:title`,content:n}),(0,z.jsx)(`meta`,{property:`og:description`,content:r}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:a,imagesrcset:o,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsx)(VS,{name:t,description:r,image:i,geo:{lat:44.9729,lng:-124.0049},url:`https://oregoncoastal.com/town/lincoln-city`}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:a,srcSet:o,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Lincoln City coastline with kites and waves`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Lincoln City`}),(0,z.jsx)(q.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`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-blue-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Lincoln City Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:yve}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo.lat||44.9729,lon:e?.geo.lng||-124.0113,townName:`Lincoln City`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Lincoln City`,townSlug:`lincoln-city`,lat:e?.geo.lat||44.9729,lon:e?.geo.lng||-124.0113,defaultStationId:`9436101`})})]}),(0,z.jsx)($3,{townSlug:`lincoln-city`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Lincoln City`,featuredImage:i,title:`Lincoln City in Photos`})}),(0,z.jsx)(hj,{attractions:R8,townName:`Lincoln City`}),(0,z.jsx)(Tve,{attractions:R8}),(0,z.jsx)(Dve,{trails:bve}),(0,z.jsx)(z6,{townName:`Lincoln City`,waterfalls:jve,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.`}),(0,z.jsx)(l6,{events:Mve}),(0,z.jsx)(Ove,{hotels:xve}),(0,z.jsx)(Ave,{restaurants:Sve})]}),(0,z.jsx)(NS,{})]})},Pve=`
<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>
`,U8=[{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`}],Fve=[{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.`}],Ive=[{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`}],Lve=[{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`}],Rve=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(0,z.jsx)(`div`,{className:`bg-teal-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-teal-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),zve=({attractions:e})=>!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-teal-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-teal-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the Beauty`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-teal-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(Rve,{attraction:e,index:t},t))})]})}),Bve=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Vve=({trails:e})=>!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-teal-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Bve,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})}),Hve=({hotels:e})=>{let t=`Manzanita`,n=[`The Ocean Inn`,`Spindrift Inn`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},W8=({restaurant:e})=>{let t=Mf(`Manzanita`,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-teal-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:`/town/manzanita`,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.cuisine&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-teal-600 bg-teal-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.cuisine})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.price&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-teal-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-teal-800 uppercase tracking-wide`,children:`Price Range`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.price})]})]})},G8=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-teal-500 pl-3`,children:n})})]}),Uve=({restaurants:e})=>{if(!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-teal-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-teal-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,6),r=e.slice(6);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-teal-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-teal-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Manzanita`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-teal-900 border-b-2 border-teal-200 pb-2 inline-block`,children:`Local Favorites`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(W8,{restaurant:e},t))})]}),(0,z.jsx)(G8,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(G8,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(W8,{restaurant:e},t))})]})]}),r.length>0&&(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-teal-900 mb-8 text-center`,children:`Coffee, Thai & Wine`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-4 gap-6`,children:r.map((e,t)=>(0,z.jsx)(W8,{restaurant:e},t))})]})]})})},Wve=()=>{(0,y.useEffect)(()=>{console.log(`ManzanitaPage mounted`)},[]);let e=Y.manzanita,t=Uf(`Manzanita`),n=Wf(`Manzanita`),r=OA.manzanita,i=`/images/heroes/manzanita/hero-manzanita-1600.webp`,a=`/images/heroes/manzanita/hero-manzanita-640.webp 640w, /images/heroes/manzanita/hero-manzanita-1024.webp 1024w, /images/heroes/manzanita/hero-manzanita-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Manzanita Oregon Travel`,description:n,url:`https://oregoncoastal.com/town/manzanita`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1067,fetchpriority:`high`,alt:`Manzanita, Oregon Coast and Neahkahnie Mountain`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Manzanita`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-teal-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Manzanita Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:Pve}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.7184,lon:e?.geo?.lng||-123.9351,townName:`Manzanita`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Manzanita`,townSlug:`manzanita`,lat:e?.geo?.lat||45.7184,lon:e?.geo?.lng||-123.9351})})]}),(0,z.jsx)($3,{townSlug:`manzanita`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Manzanita`,featuredImage:r,title:`Manzanita in Photos`})}),(0,z.jsx)(hj,{attractions:U8,townName:`Manzanita`}),(0,z.jsx)(zve,{attractions:U8}),(0,z.jsx)(Vve,{trails:Fve}),(0,z.jsx)(Hve,{hotels:Ive}),(0,z.jsx)(Uve,{restaurants:Lve})]}),(0,z.jsx)(NS,{})]})},Gve=`
<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>
`,K8=[{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`}],Kve=[{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.`}],qve=[{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`}],Jve=[{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`}],Yve=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(0,z.jsx)(`div`,{className:`bg-teal-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-teal-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed text-sm`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),Xve=({attractions:e})=>!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-teal-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-teal-600 font-bold tracking-wider uppercase text-sm`,children:`Discover Nehalem`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-teal-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6`,children:e.map((e,t)=>(0,z.jsx)(Yve,{attraction:e,index:t},t))})]})}),Zve=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Qve=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-teal-600`}),`Hiking Trails & Outdoor Adventure`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Zve,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),$ve=({hotels:e})=>{let t=`Nehalem`,n=[`Nehalem Bay State Park Campground`,`Vacation Rentals`,`Coming Soon`,`Nehalem River Inn`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},q8=({restaurant:e,image:t})=>{let n=Mf(`Nehalem`,e?.name);return(0,z.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:[(0,z.jsx)(`div`,{className:`h-48 w-full bg-teal-50 relative overflow-hidden`,children:t?(0,z.jsx)(`img`,{src:t,alt:e.name,className:`w-full h-full object-cover transition-transform duration-500 hover:scale-105`}):(0,z.jsx)(`div`,{className:`flex items-center justify-center h-full text-teal-200`,children:(0,z.jsx)(mo,{className:`w-8 h-8`})})}),(0,z.jsxs)(`div`,{className:`p-6 flex flex-col flex-grow`,children:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-teal-950`,children:e?.name||`Restaurant Name`}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:`/town/nehalem`,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-teal-700 bg-teal-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-teal-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-teal-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})]})},eye=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-80 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-teal-500 pl-3`,children:n})})]}),tye=({restaurants:e})=>{let[t,n]=(0,y.useState)({});if((0,y.useEffect)(()=>{(async()=>{let{data:t}=await Xd.from(`town_photos`).select(`image_url, caption`).eq(`town_name`,`Nehalem`);if(t){let r={};t.forEach((t,n)=>{e[n]&&(r[e[n].name]=t.image_url)}),n(r)}})()},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-teal-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-teal-900`,children:`Dining information currently unavailable.`})});let r=e=>{let t=[`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 t[e%t.length]},i=e.slice(0,2),a=e.slice(2);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-teal-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-teal-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Nehalem`}),(0,z.jsx)(`p`,{className:`text-lg text-gray-600 max-w-2xl mx-auto`,children:`Local favorites, artisan chowders, and riverfront sips.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-teal-900 border-b-2 border-teal-200 pb-2 inline-block`,children:`Local Favorites`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:i.map((e,n)=>(0,z.jsx)(q8,{restaurant:e,image:t[e.name]||r(n)},n))})]}),(0,z.jsx)(eye,{src:`https://images.unsplash.com/photo-1621351183204-58cb30d50712?auto=format&fit=crop&w=800&q=80`,alt:`Clam Chowder`,caption:`Award-winning local chowders`})]}),a.length>0&&(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-teal-900 mb-8 text-center`,children:`More Good Eats`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:a.map((e,n)=>(0,z.jsx)(q8,{restaurant:e,image:t[e.name]||r(n+2)},n))})]})]})})},nye=()=>{(0,y.useEffect)(()=>{console.log(`NehalemPage mounted`)},[]);let e=Y.nehalem,t=Uf(`Nehalem`),n=Wf(`Nehalem`),r=OA.nehalem,i=`/images/heroes/nehalem/hero-nehalem-1600.webp`,a=`/images/heroes/nehalem/hero-nehalem-640.webp 640w, /images/heroes/nehalem/hero-nehalem-1024.webp 1024w, /images/heroes/nehalem/hero-nehalem-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Nehalem Oregon Travel`,description:n,url:`https://oregoncoastal.com/town/nehalem`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Nehalem River and Coast`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Nehalem`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Nehalem`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-2`,children:(0,z.jsx)(i6,{townName:`Nehalem`,initialDescription:Gve},`Nehalem-About`)}),(0,z.jsx)(`div`,{className:`lg:col-span-1`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.7179,lon:e?.geo?.lng||-123.8965,townName:`Nehalem`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Nehalem`,townSlug:`nehalem`,lat:e?.geo?.lat||45.7179,lon:e?.geo?.lng||-123.8965})})]}),(0,z.jsx)($3,{townSlug:`nehalem`}),(0,z.jsx)(vj,{townName:`Nehalem`,featuredImage:r,title:`Nehalem in Photos`}),(0,z.jsx)(hj,{attractions:K8,townName:`Nehalem`}),(0,z.jsx)(Xve,{attractions:K8}),(0,z.jsx)(Qve,{trails:Kve}),(0,z.jsx)($ve,{hotels:qve}),(0,z.jsx)(tye,{restaurants:Jve})]}),(0,z.jsx)(NS,{})]})},rye=`
<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>
`,J8=[{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`}],iye=[{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.`}],aye=[{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`}],oye=[{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`}],Y8=`Neskowin`,sye=K(Y8),cye=({attraction:e,index:t})=>{let n=Pf(Y8,e?.name);return(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:sye,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})})},lye=({attractions:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`AttractionsSection: No attractions data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the Hidden Gem`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(cye,{attraction:e,index:t},t))})]})})),uye=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},dye=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(uye,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),fye=({hotels:e})=>{let t=`Neskowin`,n=[`Neskowin Creek RV Resort`,`Vacation Rentals`,`Coming Soon`,`Proposal Rock Inn`,`The Breakers`,`The Chelan`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},X8=`Neskowin`,pye=K(X8),mye=({restaurant:e})=>{let t=Mf(X8,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:pye,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},Z8=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),hye=({restaurants:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`RestaurantsSection: No restaurant data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Neskowin`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-start mb-16`,children:[(0,z.jsx)(`div`,{className:`space-y-6`,children:(0,z.jsx)(`div`,{className:`grid gap-6`,children:e.map((e,t)=>(0,z.jsx)(mye,{restaurant:e},t))})}),(0,z.jsxs)(`div`,{className:`space-y-8`,children:[(0,z.jsx)(Z8,{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`}),(0,z.jsx)(Z8,{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`})]})]})]})})),gye=()=>{(0,y.useEffect)(()=>{console.log(`NeskowinPage mounted`)},[]);let e=Y.neskowin,t=Uf(`Neskowin`),n=Wf(`Neskowin`),r=OA.neskowin,i=`/images/heroes/neskowin/hero-neskowin-1600.webp`,a=`/images/heroes/neskowin/hero-neskowin-640.webp 640w, /images/heroes/neskowin/hero-neskowin-1024.webp 1024w, /images/heroes/neskowin/hero-neskowin-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Neskowin, Oregon`,description:n,url:window.location.href,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1063,fetchpriority:`high`,alt:`Neskowin, Oregon coastline`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Neskowin`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Neskowin Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:rye}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.1032,lon:e?.geo?.lng||-123.9804,townName:`Neskowin`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Neskowin`,townSlug:`neskowin`,lat:e?.geo?.lat||45.1032,lon:e?.geo?.lng||-123.9804})})]}),(0,z.jsx)($3,{townSlug:`neskowin`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Neskowin`,featuredImage:r,title:`Neskowin in Photos`})}),(0,z.jsx)(hj,{attractions:J8,townName:`Neskowin`}),(0,z.jsx)(lye,{attractions:J8}),(0,z.jsx)(dye,{trails:iye}),(0,z.jsx)(fye,{hotels:aye}),(0,z.jsx)(hye,{restaurants:oye})]}),(0,z.jsx)(NS,{})]})},_ye=`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.`,Q8=[{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`}],vye=[{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.`}],yye=[{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`}],bye=[{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`}],$8=`Netarts`,xye=K($8),Sye=({attraction:e,index:t})=>{let n=Pf($8,e?.name);return(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:xye,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`div`,{className:`bg-blue-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-blue-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})})},Cye=({attractions:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`AttractionsSection: No attractions data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-blue-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-blue-600 font-bold tracking-wider uppercase text-sm`,children:`Discover the Coast`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-blue-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(Sye,{attraction:e,index:t},t))})]})})),e5=`Netarts`,wye=K(e5),Tye=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Eye=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-blue-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-blue-700 transition-colors`,children:e.name}),(()=>{let t=Nf(e5,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:wye,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Tye,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),Dye=({hotels:e})=>{let t=`Netarts`,n=[`Netarts Bay Garden RV Resort`,`Vacation Rentals`,`Note`,`Coming Soon`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},t5=`Netarts`,Oye=K(t5),n5=({restaurant:e})=>{let t=Mf(t5,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-blue-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Oye,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-blue-600 bg-blue-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-blue-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-blue-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},kye=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-blue-500 pl-3`,children:n})})]}),Aye=({restaurants:e})=>{if((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`RestaurantsSection: No restaurant data provided`)},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-blue-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-blue-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-blue-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-blue-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Netarts`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-blue-900 border-b-2 border-blue-200 pb-2 inline-block`,children:`Local Favorites`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(n5,{restaurant:e},t))})]}),(0,z.jsx)(kye,{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`})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-blue-900 mb-8 text-center`,children:`Markets & Casual Eats`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-3 gap-6`,children:n.map((e,t)=>(0,z.jsx)(n5,{restaurant:e},t))})]})]})})},jye=()=>{(0,y.useEffect)(()=>{console.log(`NetartsPage mounted`)},[]);let e=Y.netarts,t=Uf(`Netarts`),n=Wf(`Netarts`),r=OA.netarts,i=`/images/heroes/netarts/hero-netarts-1600.webp`,a=`/images/heroes/netarts/hero-netarts-640.webp 640w, /images/heroes/netarts/hero-netarts-1024.webp 1024w, /images/heroes/netarts/hero-netarts-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Netarts Bay`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Netarts`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Netarts`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-2`,children:(0,z.jsx)(i6,{townName:`Netarts`,initialDescription:_ye},`Netarts-About`)}),(0,z.jsx)(`div`,{className:`lg:col-span-1`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.4312,lon:e?.geo?.lng||-123.9451,townName:`Netarts`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Netarts`,townSlug:`netarts`,lat:e?.geo?.lat||45.4312,lon:e?.geo?.lng||-123.9451})})]}),(0,z.jsx)($3,{townSlug:`netarts`}),(0,z.jsx)(vj,{townName:`Netarts`,featuredImage:r,title:`Netarts in Photos`}),(0,z.jsx)(hj,{attractions:Q8,townName:`Netarts`}),(0,z.jsx)(Cye,{attractions:Q8}),(0,z.jsx)(Eye,{trails:vye}),(0,z.jsx)(Dye,{hotels:yye}),(0,z.jsx)(Aye,{restaurants:bye})]}),(0,z.jsx)(NS,{})]})},r5=`Newport`,Mye=K(r5),Nye=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(r5,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Mye,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),Pye=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the Coast`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(Nye,{attraction:e,index:t},t))})]})})),i5=`Newport`,Fye=K(i5),Iye=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Lye=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(i5,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Fye,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Iye,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),Rye=({hotels:e})=>{let t=`Newport`,n=[`Inn at Nye Beach`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},a5=`Newport`,zye=K(a5),o5=({restaurant:e})=>{let t=Mf(a5,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:zye,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md whitespace-nowrap flex-shrink-0`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},s5=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),Bye=({restaurants:e})=>{if((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`RestaurantsSection: No restaurant data provided`)},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,5),r=e.slice(5,8),i=e.slice(8,12);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Newport`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Fine Dining & Seafood`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(o5,{restaurant:e},t))})]}),(0,z.jsx)(s5,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(s5,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(o5,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-3 gap-6 mb-16`,children:[(0,z.jsx)(`div`,{className:`md:col-span-3 text-center mb-4`,children:(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 inline-block`,children:`Global Flavors & Comfort Food`})}),r.map((e,t)=>(0,z.jsx)(o5,{restaurant:e},t)),(0,z.jsx)(`div`,{className:`h-full min-h-[200px] rounded-xl overflow-hidden shadow-md hidden md:block`,children:(0,z.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`})})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Cafes, Bistros & Bakeries`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-4 gap-6`,children:i.map((e,t)=>(0,z.jsx)(o5,{restaurant:e},t))}),(0,z.jsx)(`div`,{className:`mt-8 text-center`,children:(0,z.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`})})]})]})})},Vye=[{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.`}],Hye=[{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`}],Uye=()=>{(0,y.useEffect)(()=>{console.log(`NewportPage mounted`)},[]);let e=Y.newport,t=Uf(`Newport`),n=Wf(`Newport`),r=`/images/heroes/newport/hero-newport-1600.webp`,i=`/images/heroes/newport/hero-newport-640.webp 640w, /images/heroes/newport/hero-newport-1024.webp 1024w, /images/heroes/newport/hero-newport-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:r,imagesrcset:i,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:r,srcSet:i,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Newport, Oregon waterfront and bridge`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Newport`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Newport Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:JA}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo.lat||44.6368,lon:e?.geo.lng||-124.0535,townName:`Newport`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Newport`,townSlug:`newport`,lat:e?.geo.lat||44.6368,lon:e?.geo.lng||-124.0535})})]}),(0,z.jsx)($3,{townSlug:`newport`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Newport`,featuredImage:r,title:`Newport in Photos`})}),(0,z.jsx)(hj,{attractions:YA,townName:`Newport`}),(0,z.jsx)(Pye,{attractions:YA}),(0,z.jsx)(Lye,{trails:XA}),(0,z.jsx)(z6,{townName:`Newport`,waterfalls:Vye,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.`}),(0,z.jsx)(l6,{events:Hye}),(0,z.jsx)(Rye,{hotels:ZA}),(0,z.jsx)(Bye,{restaurants:QA})]}),(0,z.jsx)(NS,{})]})},Wye=`
<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>
`,c5=[{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.`}],Gye=[{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.`}],Kye=[{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.`}],qye=[{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.`}],l5=`North Bend`,Jye=K(l5),Yye=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(l5,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Jye,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),Xye=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Bridges, Dunes & History`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(Yye,{attraction:e,index:t},t))})]})})),u5=`North Bend`,Zye=K(u5),Qye=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},$ye=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(u5,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Zye,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Qye,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),ebe=({hotels:e})=>{let t=`North Bend`;return(0,z.jsx)(o6,{townName:t,fallbackHotels:e,affiliateHotels:qC[t]})},d5=`North Bend`,tbe=K(d5),f5=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),(()=>{let t=Mf(d5,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:tbe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),p5=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),nbe=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2,5),r=e.slice(5);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in North Bend`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Dinner & Date Night`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(f5,{restaurant:e},t))})]}),(0,z.jsx)(p5,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(p5,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(f5,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Casual Eats & Healthy Bites`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:r.map((e,t)=>(0,z.jsx)(f5,{restaurant:e},t))}),(0,z.jsx)(`div`,{className:`mt-8 text-center`,children:(0,z.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`})})]})]})})},rbe=[{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`}],ibe=()=>{(0,y.useEffect)(()=>{console.log(`NorthBendPage mounted`)},[]);let e=Uf(`North Bend`),t=Wf(`North Bend`),n=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/072208077f88884fb8012cdedd684f53.webp`,r=`/images/heroes/north-bend/hero-north-bend-550.webp`,i=`/images/heroes/north-bend/hero-north-bend-550.webp 550w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:e}),(0,z.jsx)(`meta`,{name:`description`,content:t}),(0,z.jsx)(`meta`,{property:`og:title`,content:e}),(0,z.jsx)(`meta`,{property:`og:description`,content:t}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:r,imagesrcset:i,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`North Bend Oregon Travel`,description:t,url:`https://oregoncoastal.com/town/north-bend`,image:n}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:r,srcSet:i,sizes:`100vw`,width:550,height:364,fetchpriority:`high`,alt:`McCullough Memorial Bridge North Bend`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`North Bend`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About North Bend Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:Wye}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:43.4065,lon:-124.2243,townName:`North Bend`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`North Bend`,townSlug:`north-bend`,lat:43.4065,lon:-124.2243})})]}),(0,z.jsx)($3,{townSlug:`north-bend`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`North Bend`,featuredImage:n,title:`North Bend in Photos`})}),(0,z.jsx)(hj,{attractions:c5,townName:`North Bend`}),(0,z.jsx)(Xye,{attractions:c5}),(0,z.jsx)($ye,{trails:Gye}),(0,z.jsx)(l6,{events:rbe}),(0,z.jsx)(ebe,{hotels:Kye}),(0,z.jsx)(nbe,{restaurants:qye})]}),(0,z.jsx)(NS,{})]})},abe=`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.`,m5=[{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`}],obe=[{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.`}],sbe=[{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`}],cbe=[{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`}],h5=`Oceanside`,lbe=K(h5),ube=({attraction:e,index:t})=>{let n=Pf(h5,e?.name);return(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:lbe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`div`,{className:`bg-cyan-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-cyan-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})})},dbe=({attractions:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`AttractionsSection: No attractions data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-cyan-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-cyan-600 font-bold tracking-wider uppercase text-sm`,children:`Discover the Coast`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-cyan-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(ube,{attraction:e,index:t},t))})]})})),g5=`Oceanside`,fbe=K(g5),pbe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},mbe=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-teal-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors`,children:e.name}),(()=>{let t=Nf(g5,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:fbe,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(pbe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),hbe=({hotels:e})=>{let t=`Oceanside`,n=[`Vacation Rentals`,`Note`,`Coming Soon`,`Ocean Front Cabins`,`Turtlejanes B&B`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},_5=`Oceanside`,gbe=K(_5),v5=({restaurant:e})=>{let t=Mf(_5,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-sky-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:gbe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-sky-600 bg-sky-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-sky-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-sky-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},_be=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-sky-500 pl-3`,children:n})})]}),vbe=({restaurants:e})=>{if((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`RestaurantsSection: No restaurant data provided`)},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-sky-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-sky-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-sky-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-sky-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Oceanside`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-sky-900 border-b-2 border-sky-200 pb-2 inline-block`,children:`Oceanfront Favorites`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(v5,{restaurant:e},t))})]}),(0,z.jsx)(_be,{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`})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-sky-900 mb-8 text-center`,children:`Cafes & Coffee`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-3 gap-6`,children:n.map((e,t)=>(0,z.jsx)(v5,{restaurant:e},t))})]})]})})},ybe=()=>{(0,y.useEffect)(()=>{console.log(`OceansidePage mounted`)},[]);let e=Y.oceanside,t=Uf(`Oceanside`),n=Wf(`Oceanside`),r=OA.oceanside,i=`/images/heroes/oceanside/hero-oceanside-1600.webp`,a=`/images/heroes/oceanside/hero-oceanside-640.webp 640w, /images/heroes/oceanside/hero-oceanside-1024.webp 1024w, /images/heroes/oceanside/hero-oceanside-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:946,fetchpriority:`high`,alt:`Oceanside, Oregon coastline`,className:`w-full h-full object-cover object-top`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Oceanside`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Oceanside`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-2`,children:(0,z.jsx)(i6,{townName:`Oceanside`,initialDescription:abe},`Oceanside-About`)}),(0,z.jsx)(`div`,{className:`lg:col-span-1`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.459,lon:e?.geo?.lng||-123.9687,townName:`Oceanside`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Oceanside`,townSlug:`oceanside`,lat:e?.geo?.lat||45.459,lon:e?.geo?.lng||-123.9687})})]}),(0,z.jsx)($3,{townSlug:`oceanside`}),(0,z.jsx)(vj,{townName:`Oceanside`,featuredImage:r,title:`Oceanside in Photos`}),(0,z.jsx)(hj,{attractions:m5,townName:`Oceanside`}),(0,z.jsx)(dbe,{attractions:m5}),(0,z.jsx)(mbe,{trails:obe}),(0,z.jsx)(hbe,{hotels:sbe}),(0,z.jsx)(vbe,{restaurants:cbe})]}),(0,z.jsx)(NS,{})]})},bbe=`
<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>
`,y5=[{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`}],xbe=[{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.`}],Sbe=[{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.`}],Cbe=[{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.`}],b5=`Otter Rock`,wbe=K(b5),Tbe=({attraction:e,index:t})=>{let n=Pf(b5,e?.name);return(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:wbe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`div`,{className:`bg-blue-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-blue-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})})},Ebe=({attractions:e})=>!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-blue-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-blue-600 font-bold tracking-wider uppercase text-sm`,children:`Geology & Marine Life`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-blue-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6`,children:e.map((e,t)=>(0,z.jsx)(Tbe,{attraction:e,index:t},t))})]})}),Dbe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Easy),children:e})},Obe=({trails:e})=>!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-teal-600`}),`Cliffside Trails & Beach Walks`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-teal-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Dbe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})}),kbe=({hotels:e})=>{let t=`Otter Rock`,n=[`Otter Rock Vacation Rentals`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},x5=`Otter Rock`,Abe=K(x5),jbe=({restaurant:e})=>{let t=Mf(x5,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-teal-950`,children:e?.name}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Abe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-teal-600 bg-teal-100 px-2 py-1 rounded-md whitespace-nowrap`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-teal-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-teal-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},Mbe=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-teal-500 pl-3`,children:n})})]}),Nbe=({restaurants:e})=>!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-teal-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Otter Rock`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(Mbe,{src:`https://images.unsplash.com/photo-1666616881093-1131c83669dd`,alt:`Casual seafood restaurant with family dining atmosphere`,caption:`Chowder & Ocean Views`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:e.map((e,t)=>(0,z.jsx)(jbe,{restaurant:e},t))})]})]})]})}),Pbe=()=>{(0,y.useEffect)(()=>{console.log(`OtterRockPage mounted`)},[]);let e=Y[`otter-rock`],t=`Otter Rock`,n=Uf(t),r=Wf(t),i=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/db7f80fe48b5bd85006a138f546efff8.webp`,a=`/images/heroes/otter-rock/hero-otter-rock-1600.webp`,o=`/images/heroes/otter-rock/hero-otter-rock-640.webp 640w, /images/heroes/otter-rock/hero-otter-rock-1024.webp 1024w, /images/heroes/otter-rock/hero-otter-rock-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:n}),(0,z.jsx)(`meta`,{name:`description`,content:r}),(0,z.jsx)(`meta`,{property:`og:title`,content:n}),(0,z.jsx)(`meta`,{property:`og:description`,content:r}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:a,imagesrcset:o,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsx)(VS,{name:t,description:r,image:i,geo:{lat:44.7523,lng:-124.0673},url:`https://oregoncoastal.com/town/otter-rock`}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:a,srcSet:o,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Otter Rock coastline and Devil's Punchbowl`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(`span`,{className:`text-teal-400 font-bold uppercase tracking-widest text-sm md:text-base mb-4 drop-shadow-md`,children:`Central Coast`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight mb-2`,children:`Otter Rock`}),(0,z.jsx)(`p`,{className:`text-xl text-white/90 font-light tracking-wide drop-shadow-md`,children:`Gateway to the Devil's Punchbowl`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto town-grid-layout mb-12`,children:[(0,z.jsx)(`div`,{className:`town-about-section`,children:(0,z.jsx)(i6,{townName:`Otter Rock`,initialDescription:bbe})}),(0,z.jsx)(`div`,{className:`town-weather-section`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||44.7523,lon:e?.geo?.lng||-124.0673,townName:`Otter Rock`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Otter Rock`,townSlug:`otter-rock`,lat:e?.geo?.lat||44.7523,lon:e?.geo?.lng||-124.0673})})]}),(0,z.jsx)($3,{townSlug:`otter-rock`}),(0,z.jsx)(vj,{townName:`Otter Rock`,featuredImage:i,title:`Otter Rock in Photos`}),(0,z.jsx)(hj,{attractions:y5,townName:`Otter Rock`}),(0,z.jsx)(Ebe,{attractions:y5}),(0,z.jsx)(Obe,{trails:xbe}),(0,z.jsx)(kbe,{hotels:Sbe}),(0,z.jsx)(Nbe,{restaurants:Cbe})]}),(0,z.jsx)(NS,{})]})},Fbe=`
<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>
`,S5=[{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`}],Ibe=[{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.`}],Lbe=[{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`}],Rbe=[{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`}],C5=`Pacific City`,zbe=K(C5),Bbe=({attraction:e,index:t})=>{let n=Pf(C5,e?.name);return(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:zbe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`div`,{className:`bg-amber-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-amber-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})})},Vbe=({attractions:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`AttractionsSection: No attractions data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-amber-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-amber-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the Dory Fleet Home`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-amber-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(Bbe,{attraction:e,index:t},t))})]})})),Hbe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Ube=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-amber-600`}),`Hiking Trails & Dunes`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-amber-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Hbe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),Wbe=({hotels:e})=>{let t=`Pacific City`;return(0,z.jsx)(o6,{townName:t,fallbackHotels:e,affiliateHotels:qC[t]})},w5=`Pacific City`,T5=K(w5),Gbe=({restaurant:e})=>{let t=Mf(w5,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-amber-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:T5,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.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})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-amber-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-amber-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},Kbe=({restaurants:e})=>{if((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`RestaurantsSection: No restaurant data provided`)},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-amber-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-amber-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-amber-50`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-amber-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(Ea,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Pacific City`}),(0,z.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.`})]}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 gap-8 mb-16`,children:t.map((e,t)=>(0,z.jsxs)(`div`,{className:`bg-white p-8 rounded-2xl shadow-lg border-t-4 border-amber-500`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-gray-900`,children:e.name}),Mf(w5,e.name)&&(0,z.jsx)(X,{objectId:Mf(w5,e.name).object_id,title:e.name,sourcePage:T5,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`span`,{className:`inline-block bg-amber-100 text-amber-800 text-xs font-bold px-2 py-1 rounded mb-4`,children:e.category}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-4 text-lg`,children:e.description}),(0,z.jsxs)(`p`,{className:`text-sm font-medium text-amber-700`,children:[`✨ `,e.features]})]},t))}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-amber-900 mb-8 text-center`,children:`More Local Favorites`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:n.map((e,t)=>(0,z.jsx)(Gbe,{restaurant:e},t))})]})]})})},qbe=`https://whalewatching.live/api/status`,E5=`kruseroot`,Jbe=12e4,D5=`https://www.tiktok.com/@kruseroot?_r=1&_t=ZT-99roT1rgFuY`,Ybe=`https://whalewatching.live/api/social-stats`,Xbe=864e5,Zbe=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/901f4f5812079a900a7fbe8f6d86a158.jpg`,Qbe=()=>{let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(!0),[i,a]=(0,y.useState)(null),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(null),u=(0,y.useCallback)(async()=>{try{let e=await fetch(Ybe,{headers:{Accept:`application/json`}});if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json(),n=Array.isArray(t?.stats)?t.stats:[],r=e=>String(e?.username||e?.handle||e?.user||``).toLowerCase().replace(/^@/,``)===E5,i=n.filter(r),a=i.length?i:n,o=a.find(e=>String(e?.platform||``).toLowerCase()===`tiktok`&&r(e))||a.find(e=>String(e?.platform||``).toLowerCase()===`tiktok`);o&&(o.follower_label||o.follower_count!=null)&&s({label:o.follower_label||String(o.follower_count),unit:`followers`});let c=(i.length?i:n).map(e=>e?.checked_at).filter(Boolean).sort(),u=c.length?c[c.length-1]:t?.checked_at;if(u){let e=new Date(u);l(Number.isNaN(e.getTime())?null:e)}}catch{}},[]),d=(0,y.useCallback)(async()=>{try{let e=await fetch(qbe,{headers:{Accept:`application/json`}});if(!e.ok)throw Error(`HTTP ${e.status}`);let n=await e.json(),r=(Array.isArray(n?.lives)?n.lives:[]).some(e=>String(e?.username||``).toLowerCase()===E5&&e?.is_live===!0);t(r),a(new Date)}catch{a(new Date)}finally{r(!1)}},[]);return(0,y.useEffect)(()=>{d();let e=setInterval(d,Jbe);return()=>clearInterval(e)},[d]),(0,y.useEffect)(()=>{u();let e=setInterval(u,Xbe);return()=>clearInterval(e)},[u]),(0,z.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:(0,z.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:[(0,z.jsx)(`div`,{className:`relative w-full`,children:(0,z.jsx)(`div`,{className:`relative aspect-[4/3] w-full overflow-hidden rounded-sm bg-[#1a2a32] shadow-editorial ring-1 ring-black/10`,children:(0,z.jsx)(`img`,{src:Zbe,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})})}),(0,z.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:[(0,z.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`}),(0,z.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`}),(0,z.jsx)(`div`,{className:`mb-6 h-1 w-16 bg-amber-400 rounded-full`,"aria-hidden":`true`}),(0,z.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&&(0,z.jsx)(`div`,{className:`mb-6 grid grid-cols-1 gap-3 max-w-xs`,children:(0,z.jsxs)(`div`,{className:`rounded-sm border border-[hsl(var(--border))] bg-[hsl(var(--muted))]/40 px-4 py-3`,children:[(0,z.jsx)(`p`,{className:`text-xs font-sans font-semibold uppercase tracking-[0.15em] text-sage`,children:`TikTok`}),(0,z.jsxs)(`p`,{className:`mt-1 text-lg md:text-xl font-serif font-bold text-primary leading-tight`,children:[o.label,(0,z.jsx)(`span`,{className:`ml-1 text-sm font-sans font-light text-foreground/60 normal-case`,children:o.unit})]})]})}),c&&(0,z.jsxs)(`p`,{className:`mb-6 text-xs font-sans font-light text-foreground/50`,children:[`Updated`,` `,c.toLocaleDateString([],{month:`short`,day:`numeric`,year:`numeric`})]}),(0,z.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:[(0,z.jsxs)(`div`,{className:`flex items-center gap-3`,children:[e?(0,z.jsxs)(`span`,{className:`relative flex h-3 w-3 flex-none`,"aria-hidden":`true`,children:[(0,z.jsx)(`span`,{className:`absolute inline-flex h-full w-full animate-ping rounded-full bg-red-500 opacity-75`}),(0,z.jsx)(`span`,{className:`relative inline-flex h-3 w-3 rounded-full bg-red-600`})]}):(0,z.jsx)(`span`,{className:`inline-flex h-3 w-3 flex-none rounded-full bg-[hsl(var(--muted-foreground))]/50`,"aria-hidden":`true`}),(0,z.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&&(0,z.jsxs)(`a`,{href:D5,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:[(0,z.jsx)(Lo,{className:`h-4 w-4`,strokeWidth:2,"aria-hidden":`true`}),`Watch Live`,(0,z.jsx)(no,{className:`h-3.5 w-3.5 opacity-80`,"aria-hidden":`true`})]}),i&&(0,z.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&&(0,z.jsx)(`div`,{className:`flex flex-wrap gap-3`,children:(0,z.jsxs)(`a`,{href:D5,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`,(0,z.jsx)(no,{className:`h-3.5 w-3.5 opacity-80`,"aria-hidden":`true`})]})})]})]})})},$be=[{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`}],exe=()=>{(0,y.useEffect)(()=>{console.log(`PacificCityPage mounted`)},[]);let e=Y[`pacific-city`],t=Uf(`Pacific City`),n=Wf(`Pacific City`),r=OA[`pacific-city`],i=`/images/heroes/pacific-city/hero-pacific-city-1600.webp`,a=`/images/heroes/pacific-city/hero-pacific-city-640.webp 640w, /images/heroes/pacific-city/hero-pacific-city-1024.webp 1024w, /images/heroes/pacific-city/hero-pacific-city-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Pacific City, Oregon`,description:n,url:window.location.href,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,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`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Pacific City`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-amber-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsx)(Qbe,{}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Pacific City Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:Fbe}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.2015,lon:e?.geo?.lng||-123.9626,townName:`Pacific City`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Pacific City`,townSlug:`pacific-city`,lat:e?.geo?.lat||45.2015,lon:e?.geo?.lng||-123.9626})})]}),(0,z.jsx)($3,{townSlug:`pacific-city`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Pacific City`,featuredImage:r,title:`Pacific City in Photos`})}),(0,z.jsx)(hj,{attractions:S5,townName:`Pacific City`}),(0,z.jsx)(Vbe,{attractions:S5}),(0,z.jsx)(Ube,{trails:Ibe}),(0,z.jsx)(l6,{events:$be}),(0,z.jsx)(Wbe,{hotels:Lbe}),(0,z.jsx)(Kbe,{restaurants:Rbe})]}),(0,z.jsx)(NS,{})]})},O5=({slotId:e,format:t=`auto`,responsive:n=`true`,className:r=``})=>{let i=(0,y.useRef)(null),[a,o]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{let e;if(i.current&&i.current.innerHTML===``)try{(window.adsbygoogle=window.adsbygoogle||[]).push({})}catch(e){console.error(`AdSense initialization error:`,e),o(!0)}return e=setTimeout(()=>{i.current&&i.current.getAttribute(`data-adsbygoogle-status`)===`done`&&o(!1)},3e3),()=>clearTimeout(e)},[]),(0,z.jsxs)(`div`,{className:`w-full max-w-5xl mx-auto px-4 my-8 flex flex-col items-center justify-center ${r}`,children:[(0,z.jsx)(`span`,{className:`text-[10px] text-stone-400 uppercase tracking-widest mb-2 font-medium`,children:`Advertisement`}),(0,z.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:a?(0,z.jsx)(`div`,{className:`text-stone-400 text-sm`,children:`Ad failed to load.`}):(0,z.jsx)(`div`,{ref:i,className:`w-full h-full flex justify-center items-center`,children:(0,z.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})})})]})},k5={"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`}},A5=e=>e&&k5[e.toLowerCase().replace(/\s+/g,`-`)]||k5.default,txe=`
<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>
`,j5=[{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.`}],nxe=[{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.`}],rxe=[{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.`}],ixe=[{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.`}],M5=`Port Orford`,axe=K(M5),oxe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(M5,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:axe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),sxe=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Discover the Hidden Gems`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(oxe,{attraction:e,index:t},t))})]})})),N5=`Port Orford`,cxe=K(N5),lxe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},uxe=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(N5,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:cxe,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(lxe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),dxe=({hotels:e})=>{let t=`Port Orford`,n=[`Castaway by the Sea`,`Sea Crest Motel`,`Whaleshead Beach Resort`,`The Inn at Port Orford`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},P5=`Port Orford`,fxe=K(P5),F5=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),(()=>{let t=Mf(P5,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:fxe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),I5=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),pxe=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2,6),r=e.slice(6,9);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Port Orford`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Oceanview & Dockside`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(F5,{restaurant:e},t))})]}),(0,z.jsx)(I5,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(I5,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(F5,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Quick Bites & Pubs`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:r.map((e,t)=>(0,z.jsx)(F5,{restaurant:e},t))})]})]})})},mxe=()=>{(0,y.useEffect)(()=>{console.log(`PortOrfordPage mounted`)},[]);let e=Y[`port-orford`],t=Uf(`Port Orford`),n=Wf(`Port Orford`),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2a920d94b7ea480bbad4676664281550.webp`,i=`/images/heroes/port-orford/hero-port-orford-1280.webp`,a=`/images/heroes/port-orford/hero-port-orford-640.webp 640w, /images/heroes/port-orford/hero-port-orford-1024.webp 1024w, /images/heroes/port-orford/hero-port-orford-1280.webp 1280w`,o=A5(`port-orford`);return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Port Orford, Oregon`,description:n,url:`https://oregoncoastal.com/town/port-orford`,geo:{lat:42.7457,lng:-124.4984},image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1280,height:960,fetchpriority:`high`,alt:`Port Orford coastline with Battle Rock`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Port Orford`,region:`South Coast`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Port Orford Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:txe}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||42.7457,lon:e?.geo?.lng||-124.4984,townName:`Port Orford`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Port Orford`,townSlug:`port-orford`,lat:e?.geo?.lat||42.7457,lon:e?.geo?.lng||-124.4984})})]}),(0,z.jsx)($3,{townSlug:`port-orford`}),(0,z.jsx)(O5,{slotId:o.top}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Port Orford`,featuredImage:r,title:`Port Orford in Photos`})}),(0,z.jsx)(hj,{attractions:j5,townName:`Port Orford`}),(0,z.jsx)(sxe,{attractions:j5}),(0,z.jsx)(uxe,{trails:nxe}),(0,z.jsx)(O5,{slotId:o.middle}),(0,z.jsx)(dxe,{hotels:rxe}),(0,z.jsx)(O5,{slotId:o.bottom}),(0,z.jsx)(pxe,{restaurants:ixe}),(0,z.jsx)(RS,{faqs:[{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.`}],title:`Port Orford Visitor FAQs`})]}),(0,z.jsx)(NS,{})]})},hxe=`
<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>
`,L5=[{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.`}],gxe=[{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.`}],_xe=[{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.`}],vxe=[{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.`}],R5=`Reedsport`,yxe=K(R5),bxe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(R5,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:yxe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),xxe=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Wildlife & Wilderness`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(bxe,{attraction:e,index:t},t))})]})})),z5=`Reedsport`,Sxe=K(z5),Cxe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},wxe=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(z5,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Sxe,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Cxe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),Txe=({hotels:e})=>{let t=`Reedsport`,n=[`Fir Grove Motel`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},B5=`Reedsport`,Exe=K(B5),V5=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),(()=>{let t=Mf(B5,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Exe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),H5=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),Dxe=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,5),r=e.slice(5);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Reedsport`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Local Favorites`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(V5,{restaurant:e},t))})]}),(0,z.jsx)(H5,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(H5,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(V5,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Casual Dining & Seafood`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:r.map((e,t)=>(0,z.jsx)(V5,{restaurant:e},t))}),(0,z.jsx)(`div`,{className:`mt-8 text-center`,children:(0,z.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`})})]})]})})},Oxe=()=>{(0,y.useEffect)(()=>{console.log(`ReedsportPage mounted`)},[]);let e=Y.reedsport,t=Uf(`Reedsport`),n=Wf(`Reedsport`),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/8c4def8dadeb5e37fc696c35b7fe47c7.webp`,i=`/images/heroes/reedsport/hero-reedsport-1600.webp`,a=`/images/heroes/reedsport/hero-reedsport-640.webp 640w, /images/heroes/reedsport/hero-reedsport-1024.webp 1024w, /images/heroes/reedsport/hero-reedsport-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Reedsport Oregon Travel`,description:n,url:`https://oregoncoastal.com/town/reedsport`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Reedsport, Oregon River and Bridge`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Reedsport`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Reedsport Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:hxe}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||43.7023,lon:e?.geo?.lng||-124.0968,townName:`Reedsport`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Reedsport`,townSlug:`reedsport`,lat:e?.geo?.lat||43.7023,lon:e?.geo?.lng||-124.0968})})]}),(0,z.jsx)($3,{townSlug:`reedsport`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Reedsport`,featuredImage:r,title:`Reedsport in Photos`})}),(0,z.jsx)(hj,{attractions:L5,townName:`Reedsport`}),(0,z.jsx)(xxe,{attractions:L5}),(0,z.jsx)(wxe,{trails:gxe}),(0,z.jsx)(Txe,{hotels:_xe}),(0,z.jsx)(Dxe,{restaurants:vxe})]}),(0,z.jsx)(NS,{})]})},kxe=`
<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>
`,U5=[{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`}],Axe=[{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.`}],jxe=[{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`}],Mxe=[{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`}],W5=`Rockaway Beach`,Nxe=K(W5),Pxe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(W5,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Nxe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-sky-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-sky-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed text-sm`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),Fxe=({attractions:e})=>!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-sky-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-sky-600 font-bold tracking-wider uppercase text-sm`,children:`Explore Rockaway Beach`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-sky-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6`,children:e.map((e,t)=>(0,z.jsx)(Pxe,{attraction:e,index:t},t))})]})}),G5=`Rockaway Beach`,Ixe=K(G5),Lxe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Rxe=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-sky-600`}),`Hiking Trails & Nature Walks`]}),(0,z.jsx)(`p`,{className:`text-gray-600 text-lg`,children:`From the accessible Cedar Wetlands boardwalk to challenging coastal peaks, discover nature around Rockaway Beach.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-sky-700 transition-colors`,children:e.name}),(()=>{let t=Nf(G5,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Ixe,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Lxe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),zxe=({hotels:e})=>{let t=`Rockaway Beach`,n=[`The Sea Treasure Inn`,`Beach Stay Motel`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},K5=`Rockaway Beach`,Bxe=K(K5),q5=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-sky-950`,children:e?.name||`Restaurant Name`}),(()=>{let t=Mf(K5,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Bxe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-sky-600 bg-sky-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-sky-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-sky-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),J5=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-sky-500 pl-3`,children:n})})]}),Vxe=({restaurants:e})=>{if((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`RestaurantsSection: No restaurant data provided`)},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-sky-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-sky-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,5),r=e.slice(5);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-sky-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-sky-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Rockaway Beach`}),(0,z.jsx)(`p`,{className:`text-lg text-gray-600 max-w-2xl mx-auto`,children:`Classic corndogs, fresh seafood, and family favorites along Highway 101.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-sky-900 border-b-2 border-sky-200 pb-2 inline-block`,children:`Beach Classics`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(q5,{restaurant:e},t))})]}),(0,z.jsx)(J5,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(J5,{src:`https://images.unsplash.com/photo-1593560708920-638784597446?auto=format&fit=crop&w=800&q=80`,alt:`Pizza`,caption:`Family pizza night`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(q5,{restaurant:e},t))})]})]}),r.length>0&&(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-sky-900 mb-8 text-center`,children:`More Good Eats`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:r.map((e,t)=>(0,z.jsx)(q5,{restaurant:e},t))})]})]})})},Hxe=()=>{(0,y.useEffect)(()=>{console.log(`RockawaySeasideBeachPage mounted`)},[]);let e=Y[`rockaway-beach`],t=Uf(`Rockaway Beach`),n=Wf(`Rockaway Beach`),r=OA[`rockaway-beach`],i=`/images/heroes/rockaway-beach/hero-rockaway-beach-1600.webp`,a=`/images/heroes/rockaway-beach/hero-rockaway-beach-640.webp 640w, /images/heroes/rockaway-beach/hero-rockaway-beach-1024.webp 1024w, /images/heroes/rockaway-beach/hero-rockaway-beach-1600.webp 1600w`,o=A5(`rockaway-beach`);return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Rockaway Beach Oregon Travel`,description:n,url:`https://oregoncoastal.com/town/rockaway-beach`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1067,fetchpriority:`high`,alt:`Scenic beach view of Rockaway Beach with Twin Rocks arch formation in the ocean, waves crashing on the sandy shore, and an overcast sky.`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Rockaway Beach`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Rockaway Beach`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-2`,children:(0,z.jsx)(i6,{townName:`Rockaway Beach`,initialDescription:kxe},`RockawayBeach-About`)}),(0,z.jsx)(`div`,{className:`lg:col-span-1`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.6132,lon:e?.geo?.lng||-123.9437,townName:`Rockaway Beach`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Rockaway Beach`,townSlug:`rockaway-beach`,lat:e?.geo?.lat||45.6132,lon:e?.geo?.lng||-123.9437})})]}),(0,z.jsx)($3,{townSlug:`rockaway-beach`}),(0,z.jsx)(O5,{slotId:o.top}),(0,z.jsx)(vj,{townName:`Rockaway Beach`,featuredImage:r,title:`Rockaway Beach in Photos`}),(0,z.jsx)(hj,{attractions:U5,townName:`Rockaway Beach`}),(0,z.jsx)(Fxe,{attractions:U5}),(0,z.jsx)(Rxe,{trails:Axe}),(0,z.jsx)(O5,{slotId:o.middle}),(0,z.jsx)(zxe,{hotels:jxe}),(0,z.jsx)(O5,{slotId:o.bottom}),(0,z.jsx)(Vxe,{restaurants:Mxe})]}),(0,z.jsx)(NS,{})]})},Uxe=`
<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>
`,Y5=[{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`}],Wxe=[{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`}],Gxe=[{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:`/images/hotels/seaside/motel-6-seaside-or.jpg`,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:`/images/hotels/seaside/inn-at-the-shore.jpg`,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:`/images/hotels/seaside/seashore-inn-on-the-beach.jpg`,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`}],Kxe=[{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:`$$`}],qxe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(0,z.jsx)(`div`,{className:`bg-blue-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-blue-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),Jxe=({attractions:e})=>!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-blue-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-blue-600 font-bold tracking-wider uppercase text-sm`,children:`Family Fun & History`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-blue-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(qxe,{attraction:e,index:t},t))})]})}),Yxe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},Xxe=({trails:e})=>!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-blue-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-blue-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(Yxe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})}),Zxe=({hotels:e})=>{let t=`Seaside`;return(0,z.jsx)(o6,{townName:t,fallbackHotels:e,affiliateHotels:qC[t]})},X5=`Seaside`,Qxe=K(X5),Z5=({restaurant:e})=>{let t=Mf(X5,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-blue-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:Qxe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.cuisine&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-blue-600 bg-blue-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.cuisine})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.price&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-blue-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-blue-800 uppercase tracking-wide`,children:`Price Range`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.price})]})]})},Q5=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-blue-500 pl-3`,children:n})})]}),$xe=({restaurants:e})=>{if(!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-blue-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-blue-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2,4),r=e.slice(4);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-blue-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-blue-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Seaside`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-blue-900 border-b-2 border-blue-200 pb-2 inline-block`,children:`Local Icons`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(Z5,{restaurant:e},t))})]}),(0,z.jsx)(Q5,{src:`https://images.unsplash.com/photo-1615887023516-9b6c00f91ce9?auto=format&fit=crop&w=800&q=80`,alt:`Seafood dining`,caption:`Fresh catch and chowder`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(Q5,{src:`https://images.unsplash.com/photo-1550547660-d9450f859349?auto=format&fit=crop&w=800&q=80`,alt:`Burger and fries`,caption:`Casual family favorites`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(Z5,{restaurant:e},t))})]})]}),r.length>0&&(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-blue-900 mb-8 text-center`,children:`More Delicious Options`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:r.map((e,t)=>(0,z.jsx)(Z5,{restaurant:e},t))})]})]})})},eSe=[{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`}],tSe=()=>{(0,y.useEffect)(()=>{console.log(`SeasidePage mounted`)},[]);let e=Y.seaside,t=Uf(`Seaside`),n=Wf(`Seaside`),r=OA.seaside,i=`/images/heroes/seaside/hero-seaside-1600.webp`,a=`/images/heroes/seaside/hero-seaside-640.webp 640w, /images/heroes/seaside/hero-seaside-1024.webp 1024w, /images/heroes/seaside/hero-seaside-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Seaside Oregon Travel`,description:n,url:`https://visitseaside.com`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1066,fetchpriority:`high`,alt:`Seaside, Oregon Promenade and Beach`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Seaside`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Seaside`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-2`,children:(0,z.jsx)(i6,{townName:`Seaside`,initialDescription:Uxe},`Seaside-About`)}),(0,z.jsx)(`div`,{className:`lg:col-span-1`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.9932,lon:e?.geo?.lng||-123.9226,townName:`Seaside`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Seaside`,townSlug:`seaside`,lat:e?.geo?.lat||45.9932,lon:e?.geo?.lng||-123.9226,defaultStationId:`9437908`})})]}),(0,z.jsx)($3,{townSlug:`seaside`}),(0,z.jsx)(vj,{townName:`Seaside`,featuredImage:r,title:`Seaside in Photos`}),(0,z.jsx)(hj,{attractions:Y5,townName:`Seaside`}),(0,z.jsx)(Jxe,{attractions:Y5}),(0,z.jsx)(Xxe,{trails:Wxe}),(0,z.jsx)(l6,{events:eSe}),(0,z.jsx)(Zxe,{hotels:Gxe}),(0,z.jsx)($xe,{restaurants:Kxe})]}),(0,z.jsx)(NS,{})]})},nSe=`
<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>
`,$5=[{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.`}],rSe=[{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.`}],iSe=[{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.`}],aSe=[{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.`}],e7=`South Beach`,oSe=K(e7),sSe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(e7,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:oSe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),cSe=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the Adventure Side`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(sSe,{attraction:e,index:t},t))})]})})),t7=`South Beach`,lSe=K(t7),uSe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},dSe=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Trails, Dunes & Jetties`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(t7,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:lSe,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(uSe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),fSe=({hotels:e})=>{let t=`South Beach`,n=[`Whaler's Rest RV & Camping Resort`,`South Beach State Park Yurts`,`Coming Soon`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},n7=({restaurant:e})=>(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md whitespace-nowrap`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]}),r7=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),pSe=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2,4);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in South Beach`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Fresh & Famous`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(n7,{restaurant:e},t))})]}),(0,z.jsx)(r7,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(r7,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(n7,{restaurant:e},t))})]})]})]})})},mSe=()=>{(0,y.useEffect)(()=>{console.log(`SouthBeachPage mounted`)},[]);let e=Y[`south-beach`],t=Uf(`South Beach`),n=Wf(`South Beach`),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e1e041b89722871843a1b35e49288748.webp`,i=`/images/heroes/south-beach/hero-south-beach-1600.webp`,a=`/images/heroes/south-beach/hero-south-beach-640.webp 640w, /images/heroes/south-beach/hero-south-beach-1024.webp 1024w, /images/heroes/south-beach/hero-south-beach-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`South Beach, Oregon coastline`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`South Beach`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`South Beach`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto town-grid-layout mb-12`,children:[(0,z.jsx)(`div`,{className:`town-about-section`,children:(0,z.jsx)(i6,{townName:`South Beach`,initialDescription:nSe})}),(0,z.jsx)(`div`,{className:`town-weather-section`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||44.6062,lon:e?.geo?.lng||-124.0434,townName:`South Beach`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`South Beach`,townSlug:`south-beach`,lat:e?.geo?.lat||44.6062,lon:e?.geo?.lng||-124.0434})})]}),(0,z.jsx)($3,{townSlug:`south-beach`}),(0,z.jsx)(vj,{townName:`South Beach`,featuredImage:r,title:`South Beach Gallery`}),(0,z.jsx)(VS,{name:`South Beach, Oregon`,description:n,image:r,url:window.location.href,geo:{latitude:44.6333,longitude:-124.0667}}),(0,z.jsx)(hj,{attractions:$5,townName:`South Beach`}),(0,z.jsx)(cSe,{attractions:$5}),(0,z.jsx)(dSe,{trails:rSe}),(0,z.jsx)(fSe,{hotels:iSe}),(0,z.jsx)(pSe,{restaurants:aSe})]}),(0,z.jsx)(NS,{})]})},hSe=`
<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>
`,i7=[{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`}],gSe=[{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.`}],_Se=[{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`}],vSe=[{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`}],a7=`Tillamook`,ySe=K(a7),bSe=({attraction:e,index:t})=>{let n=Pf(a7,e?.name);return(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:ySe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`div`,{className:`bg-green-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-green-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed text-sm`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})})},xSe=({attractions:e})=>!e||e.length===0?null:(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-green-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-green-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the Valley`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-green-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6`,children:e.map((e,t)=>(0,z.jsx)(bSe,{attraction:e,index:t},t))})]})}),o7=`Tillamook`,SSe=K(o7),CSe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},wSe=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-green-600`}),`Hiking Trails & Nature`]}),(0,z.jsx)(`p`,{className:`text-gray-600 text-lg`,children:`Discover lush rainforests, waterfalls, and dramatic capes just minutes from town.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-green-700 transition-colors`,children:e.name}),(()=>{let t=Nf(o7,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:SSe,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(CSe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),TSe=({hotels:e})=>{let t=`Tillamook`,n=[`Vacation Rentals`,`Campgrounds`,`Nearby Options`,`Sheltered Nook on Tillamook Bay`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},s7=`Tillamook`,ESe=K(s7),c7=({restaurant:e})=>{let t=Mf(s7,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-green-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:ESe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-green-600 bg-green-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-green-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-green-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},l7=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-green-500 pl-3`,children:n})})]}),DSe=({restaurants:e})=>{if((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`RestaurantsSection: No restaurant data provided`)},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-green-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-green-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,4),n=e.slice(4,7),r=e.slice(7);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-green-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-green-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Tillamook`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-green-900 border-b-2 border-green-200 pb-2 inline-block`,children:`Local Favorites`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(c7,{restaurant:e},t))})]}),(0,z.jsx)(l7,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(l7,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(c7,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-green-900 mb-8 text-center`,children:`Cafes & Quick Bites`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:r.map((e,t)=>(0,z.jsx)(c7,{restaurant:e},t))})]})]})})},OSe=[{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.`}],kSe=()=>{(0,y.useEffect)(()=>{console.log(`TillamookPage mounted`)},[]);let e=Y.tillamook,t=Uf(`Tillamook`),n=Wf(`Tillamook`),r=OA.tillamook,i=`/images/heroes/tillamook/hero-tillamook-1600.webp`,a=`/images/heroes/tillamook/hero-tillamook-640.webp 640w, /images/heroes/tillamook/hero-tillamook-1024.webp 1024w, /images/heroes/tillamook/hero-tillamook-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Tillamook Oregon Travel`,description:n,url:`https://oregoncoastal.com/town/tillamook`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1070,fetchpriority:`high`,alt:`Tillamook, Oregon Countryside`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Tillamook`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-green-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Tillamook Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:hSe}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.4562,lon:e?.geo?.lng||-123.844,townName:`Tillamook`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Tillamook`,townSlug:`tillamook`,lat:e?.geo?.lat||45.4562,lon:e?.geo?.lng||-123.844,defaultStationId:`9437331`})})]}),(0,z.jsx)($3,{townSlug:`tillamook`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Tillamook`,featuredImage:r,title:`Tillamook in Photos`})}),(0,z.jsx)(hj,{attractions:i7,townName:`Tillamook`}),(0,z.jsx)(xSe,{attractions:i7}),(0,z.jsx)(wSe,{trails:gSe}),(0,z.jsx)(z6,{townName:`Tillamook`,waterfalls:OSe,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.`}),(0,z.jsx)(TSe,{hotels:_Se}),(0,z.jsx)(DSe,{restaurants:vSe})]}),(0,z.jsx)(NS,{})]})},ASe=`
<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>
`,u7=[{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.`}],jSe=[{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.`}],MSe=[{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.`}],NSe=[{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.`}],d7=`Toledo`,PSe=K(d7),FSe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(d7,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:PSe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),ISe=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Discover the Heritage`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(FSe,{attraction:e,index:t},t))})]})})),LSe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},RSe=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & River Walks`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(LSe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),zSe=({hotels:e})=>{let t=`Toledo`,n=[`Ollala Lake Campground`,`Coming Soon`,`Toledo Riverfront Hotel`,`Grandma's Cottage`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},f7=`Toledo`,BSe=K(f7),p7=({restaurant:e})=>{let t=Mf(f7,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:BSe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md whitespace-nowrap flex-shrink-0`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},m7=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),VSe=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,2),n=e.slice(2,4);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Toledo`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Local Legends`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(p7,{restaurant:e},t))})]}),(0,z.jsx)(m7,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(m7,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(p7,{restaurant:e},t))})]})]})]})})},HSe=()=>{(0,y.useEffect)(()=>{console.log(`ToledoPage mounted`)},[]);let e=Y.toledo,t=Uf(`Toledo`),n=Wf(`Toledo`),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/457d2a9a2f4957025e208eca9ea65735.webp`,i=`/images/heroes/toledo/hero-toledo-1600.webp`,a=`/images/heroes/toledo/hero-toledo-640.webp 640w, /images/heroes/toledo/hero-toledo-1024.webp 1024w, /images/heroes/toledo/hero-toledo-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Toledo, Oregon scenic view`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Toledo`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Toledo`})]})]}),(0,z.jsxs)(`main`,{className:`w-full`,children:[(0,z.jsx)(q3,{townName:`Toledo`,townSlug:`toledo`,lat:e?.geo?.lat||44.6215,lon:e?.geo?.lng||-123.9373}),(0,z.jsx)(`section`,{className:`py-12 md:py-16 px-6 bg-white`,children:(0,z.jsxs)(`div`,{className:`max-w-4xl mx-auto text-center`,children:[(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-semibold text-gray-900 mb-8 tracking-tight leading-tight`,children:`About Toledo Oregon`}),(0,z.jsx)(`div`,{className:`prose prose-lg md:prose-xl text-gray-700 leading-loose mx-auto`,dangerouslySetInnerHTML:{__html:ASe}}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full mt-10`})]})}),(0,z.jsx)($3,{townSlug:`toledo`}),(0,z.jsx)(vj,{townName:`Toledo`,featuredImage:r,title:`Toledo Gallery`}),(0,z.jsx)(VS,{name:`Toledo, Oregon`,description:n,image:r,url:window.location.href,geo:{latitude:44.6215,longitude:-123.9373}}),(0,z.jsx)(hj,{attractions:u7,townName:`Toledo`}),(0,z.jsx)(ISe,{attractions:u7}),(0,z.jsx)(RSe,{trails:jSe}),(0,z.jsx)(zSe,{hotels:MSe}),(0,z.jsx)(VSe,{restaurants:NSe})]}),(0,z.jsx)(NS,{})]})},USe=`
<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>
`,h7=[{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`}],WSe=[{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`}],GSe=[{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`]}],KSe=[{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:`$$`}],qSe=({attraction:e,index:t,townName:n})=>{let r=Pf(n,e?.name);return(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),r&&(0,z.jsx)(X,{objectId:r.object_id,title:e.name,sourcePage:`/town/tolovana-park`,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`})]}),(0,z.jsx)(`div`,{className:`bg-indigo-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-indigo-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})})},JSe=({attractions:e,townName:t=`Tolovana Park`})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-indigo-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-indigo-600 font-bold tracking-wider uppercase text-sm`,children:`Peaceful & Scenic`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-indigo-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,n)=>(0,z.jsx)(qSe,{attraction:e,index:n,townName:t},n))})]})})),YSe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},XSe=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-indigo-600`}),`Hiking Trails & Beach Walks`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-indigo-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(YSe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),ZSe=({hotels:e})=>{let t=`Tolovana`,n=[`Coming Soon`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},g7=({restaurant:e,townName:t})=>{let n=Mf(t,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-blue-950`,children:e?.name||`Restaurant Name`}),n&&(0,z.jsx)(X,{objectId:n.object_id,title:e.name,sourcePage:`/town/tolovana-park`,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.cuisine&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-blue-600 bg-blue-100 px-2 py-1 rounded-md`,children:e.cuisine})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.price&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-blue-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-blue-800 uppercase tracking-wide`,children:`Price Range`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.price})]})]})},_7=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-blue-500 pl-3`,children:n})})]}),QSe=({restaurants:e,townName:t=`Tolovana Park`})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-blue-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-blue-900`,children:`Dining information currently unavailable.`})});let n=e.slice(0,2),r=e.slice(2,4),i=e.slice(4);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-blue-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-blue-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Tolovana`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-blue-900 border-b-2 border-blue-200 pb-2 inline-block`,children:`Local Icons`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,n)=>(0,z.jsx)(g7,{restaurant:e,townName:t},n))})]}),(0,z.jsx)(_7,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(_7,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:r.map((e,n)=>(0,z.jsx)(g7,{restaurant:e,townName:t},n))})]})]}),i.length>0&&(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-blue-900 mb-8 text-center`,children:`More Delicious Options Nearby`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-2 gap-6`,children:i.map((e,n)=>(0,z.jsx)(g7,{restaurant:e,townName:t},n))})]})]})})},$Se=()=>{(0,y.useEffect)(()=>{console.log(`TolovanaPage mounted`)},[]);let e=Y[`tolovana-park`]||Y.tolovana,t=Uf(`Tolovana Park`),n=Wf(`Tolovana Park`),r=OA.tolovanaPark,i=`/images/heroes/tolovana-park/hero-tolovana-park-1600.webp`,a=`/images/heroes/tolovana-park/hero-tolovana-park-640.webp 640w, /images/heroes/tolovana-park/hero-tolovana-park-1024.webp 1024w, /images/heroes/tolovana-park/hero-tolovana-park-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Tolovana Park Travel Guide`,description:n,url:`https://visittolovanapark.com`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Tolovana Park Beach`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Tolovana Park`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Tolovana Park`})]})]}),(0,z.jsxs)(`main`,{className:`w-full`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-2`,children:(0,z.jsx)(i6,{townName:`Tolovana Park`,initialDescription:USe},`Tolovana-About`)}),(0,z.jsx)(`div`,{className:`lg:col-span-1`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.8643,lon:e?.geo?.lng||-123.9604,townName:`Tolovana Park`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Tolovana Park`,townSlug:`tolovana-park`,lat:e?.geo?.lat||45.8643,lon:e?.geo?.lng||-123.9604})})]}),(0,z.jsx)($3,{townSlug:`tolovana-park`}),(0,z.jsx)(vj,{townName:`Tolovana Park`,featuredImage:r,title:`Tolovana Park in Photos`}),(0,z.jsx)(hj,{attractions:h7,townName:`Tolovana Park`}),(0,z.jsx)(JSe,{attractions:h7}),(0,z.jsx)(XSe,{trails:WSe}),(0,z.jsx)(ZSe,{hotels:GSe}),(0,z.jsx)(QSe,{restaurants:KSe})]}),(0,z.jsx)(NS,{})]})},eCe=`
<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>
`,v7=[{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.`}],tCe=[{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.`}],nCe=[{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.`}],rCe=[{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.`}],y7=`Waldport`,iCe=K(y7),aCe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(y7,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:iCe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),oCe=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Discover the Bayshore`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(aCe,{attraction:e,index:t},t))})]})})),b7=`Waldport`,sCe=K(b7),cCe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},lCe=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Beach Walks`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(b7,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:sCe,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(cCe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),uCe=({hotels:e})=>{let t=`Waldport`,n=[`Beachside State Recreation Site`,`Waldport Vacation Rentals`,`Cliff House Bed & Breakfast`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},x7=`Waldport`,dCe=K(x7),S7=({restaurant:e})=>{let t=Mf(x7,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:dCe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md whitespace-nowrap flex-shrink-0`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},fCe=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),pCe=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,5),r=e.slice(5,7);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Waldport`}),(0,z.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.`})]}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-3 gap-8 items-stretch mb-16`,children:t.map((e,t)=>(0,z.jsx)(S7,{restaurant:e},t))}),(0,z.jsx)(fCe,{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`}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-4 gap-6 items-stretch mb-16`,children:[n.map((e,t)=>(0,z.jsx)(S7,{restaurant:e},t)),r.map((e,t)=>(0,z.jsx)(S7,{restaurant:e},t))]})]})})},mCe=[{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`}],hCe=()=>{(0,y.useEffect)(()=>{console.log(`WaldportPage mounted`)},[]);let e=Y.waldport,t=Uf(`Waldport`),n=Wf(`Waldport`),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/f29f63a80e5ae25aecbbc6b26c9d6390.webp`,i=`/images/heroes/waldport/hero-waldport-1600.webp`,a=`/images/heroes/waldport/hero-waldport-640.webp 640w, /images/heroes/waldport/hero-waldport-1024.webp 1024w, /images/heroes/waldport/hero-waldport-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1066,fetchpriority:`high`,alt:`Waldport, Oregon Alsea Bay Bridge`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Waldport`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Waldport`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto town-grid-layout mb-12`,children:[(0,z.jsx)(`div`,{className:`town-about-section`,children:(0,z.jsx)(i6,{townName:`Waldport`,initialDescription:eCe},`Waldport-About`)}),(0,z.jsx)(`div`,{className:`town-weather-section`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||44.4268,lon:e?.geo?.lng||-124.0734,townName:`Waldport`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Waldport`,townSlug:`waldport`,lat:e?.geo?.lat||44.4268,lon:e?.geo?.lng||-124.0734,tideStationId:`9434939`})})]}),(0,z.jsx)($3,{townSlug:`waldport`}),(0,z.jsx)(vj,{townName:`Waldport`,featuredImage:r,title:`Waldport Gallery`}),(0,z.jsx)(VS,{name:`Waldport, Oregon`,description:n,image:r,url:window.location.href,geo:{latitude:44.4267,longitude:-124.0733}}),(0,z.jsx)(hj,{attractions:v7,townName:`Waldport`}),(0,z.jsx)(oCe,{attractions:v7}),(0,z.jsx)(lCe,{trails:tCe}),(0,z.jsx)(l6,{events:mCe}),(0,z.jsx)(uCe,{hotels:nCe}),(0,z.jsx)(pCe,{restaurants:rCe})]}),(0,z.jsx)(NS,{})]})},gCe=`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.`,C7=[{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`}],_Ce=[{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`}],vCe=[{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`]}],yCe=[{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:`$$$`}],bCe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),xCe=({attractions:e})=>!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the History`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(bCe,{attraction:e,index:t},t))})]})}),SCe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},CCe=({trails:e})=>!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(SCe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})}),wCe=({hotels:e})=>{let t=`Warrenton`,n=[`Fort Stevens State Park Campground`,`Kampers West RV Park`,`South Jetty Inn`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},w7=`Warrenton`,TCe=K(w7),T7=({restaurant:e})=>{let t=Mf(w7,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:TCe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.cuisine&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md flex-shrink-0`,children:e.cuisine})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed`,children:e?.description||`No description available.`}),e?.price&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Price Range`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.price})]})]})},E7=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),ECe=({restaurants:e})=>{if(!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,5),r=e.slice(5,7),i=e.slice(7);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Warrenton`}),(0,z.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.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 border-b-2 border-orange-200 pb-2 inline-block`,children:`Local Favorites`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:t.map((e,t)=>(0,z.jsx)(T7,{restaurant:e},t))})]}),(0,z.jsx)(E7,{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`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsx)(E7,{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`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.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`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:n.map((e,t)=>(0,z.jsx)(T7,{restaurant:e},t))})]})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-3 gap-6 mb-16`,children:[(0,z.jsx)(`div`,{className:`md:col-span-3 text-center mb-4`,children:(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 inline-block`,children:`More Delicious Options`})}),r.map((e,t)=>(0,z.jsx)(T7,{restaurant:e},t)),(0,z.jsx)(`div`,{className:`h-full min-h-[200px] rounded-xl overflow-hidden shadow-md`,children:(0,z.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&&(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-orange-900 mb-8 text-center`,children:`Cafe & Quick Bites`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:i.map((e,t)=>(0,z.jsx)(T7,{restaurant:e},t))})]})]})})},DCe=[{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`}],OCe=()=>{(0,y.useEffect)(()=>{console.log(`WarrentonPage mounted`)},[]);let e=Y.warrenton,t=Uf(`Warrenton`),n=Wf(`Warrenton`),r=OA.warrenton,i=`/images/heroes/warrenton/hero-warrenton-1600.webp`,a=`/images/heroes/warrenton/hero-warrenton-640.webp 640w, /images/heroes/warrenton/hero-warrenton-1024.webp 1024w, /images/heroes/warrenton/hero-warrenton-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:959,fetchpriority:`high`,alt:`Warrenton, Oregon Coast`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Warrenton`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Warrenton`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-2`,children:(0,z.jsx)(i6,{townName:`Warrenton`,initialDescription:gCe},`Warrenton-About`)}),(0,z.jsx)(`div`,{className:`lg:col-span-1`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||46.1648,lon:e?.geo?.lng||-123.9226,townName:`Warrenton`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Warrenton`,townSlug:`warrenton`,lat:e?.geo?.lat||46.1648,lon:e?.geo?.lng||-123.9226})})]}),(0,z.jsx)($3,{townSlug:`warrenton`}),(0,z.jsx)(vj,{townName:`Warrenton`,featuredImage:r,title:`Warrenton in Photos`}),(0,z.jsx)(hj,{attractions:C7,townName:`Warrenton`}),(0,z.jsx)(xCe,{attractions:C7}),(0,z.jsx)(CCe,{trails:_Ce}),(0,z.jsx)(l6,{events:DCe}),(0,z.jsx)(wCe,{hotels:vCe}),(0,z.jsx)(ECe,{restaurants:yCe})]}),(0,z.jsx)(NS,{})]})},kCe=`
<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>
`,D7=[{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`}],ACe=[{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.`}],jCe=[{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`}],MCe=[{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`}],O7=`Wheeler`,NCe=K(O7),PCe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(O7,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:NCe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-cyan-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-cyan-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),FCe=({attractions:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`AttractionsSection: No attractions data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-cyan-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-cyan-600 font-bold tracking-wider uppercase text-sm`,children:`Explore the History`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-cyan-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(PCe,{attraction:e,index:t},t))})]})})),ICe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},LCe=({trails:e})=>((0,y.useEffect)(()=>{e&&e.length!==0||console.warn(`HikingTrailsSection: No trails data provided`)},[e]),!e||e.length===0?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-cyan-600`}),`Hiking Trails & Outdoor Adventure`]}),(0,z.jsx)(`p`,{className:`text-gray-600 text-lg`,children:`From gentle marsh walks to kayaking the bay, Wheeler offers peaceful adventures in nature.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-cyan-700 transition-colors`,children:e.name}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(ICe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),RCe=({hotels:e})=>{let t=`Wheeler`,n=[`Nehalem Bay Cottages`],r=e?e.filter(e=>!n.includes(e.name)):[];return(0,z.jsx)(o6,{townName:t,fallbackHotels:r,affiliateHotels:qC[t]})},k7=`Wheeler`,zCe=K(k7),A7=({restaurant:e,image:t})=>(0,z.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:[(0,z.jsx)(`div`,{className:`h-48 w-full bg-cyan-50 relative overflow-hidden`,children:t?(0,z.jsx)(`img`,{src:t,alt:e.name,className:`w-full h-full object-cover transition-transform duration-500 hover:scale-105`}):(0,z.jsx)(`div`,{className:`flex items-center justify-center h-full text-cyan-200`,children:(0,z.jsx)(mo,{className:`w-8 h-8`})})}),(0,z.jsxs)(`div`,{className:`p-6 flex flex-col flex-grow`,children:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-cyan-950`,children:e?.name||`Restaurant Name`}),(()=>{let t=Mf(k7,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:zCe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`}):null})()]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-cyan-700 bg-cyan-100 px-2 py-1 rounded-md`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-cyan-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-cyan-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})]}),BCe=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-80 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-cyan-500 pl-3`,children:n})})]}),VCe=({restaurants:e})=>{let[t,n]=(0,y.useState)({});if((0,y.useEffect)(()=>{(async()=>{let{data:t}=await Xd.from(`town_photos`).select(`image_url, caption`).eq(`town_name`,`Wheeler`);if(t){let r={};t.forEach((t,n)=>{e[n]&&(r[e[n].name]=t.image_url)}),n(r)}})()},[e]),!e||e.length===0)return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-cyan-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-cyan-900`,children:`Dining information currently unavailable.`})});let r=e=>{let t=[`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 t[e%t.length]},i=e.slice(0,1),a=e.slice(1);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-cyan-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-cyan-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Wheeler`}),(0,z.jsx)(`p`,{className:`text-lg text-gray-600 max-w-2xl mx-auto`,children:`Fresh seafood, cozy cafes, and sunset views from the deck.`})]}),(0,z.jsxs)(`div`,{className:`grid md:grid-cols-2 gap-8 items-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-cyan-900 border-b-2 border-cyan-200 pb-2 inline-block`,children:`Waterfront Dining`}),(0,z.jsx)(`div`,{className:`grid gap-6`,children:i.map((e,n)=>(0,z.jsx)(A7,{restaurant:e,image:t[e.name]||r(n)},n))})]}),(0,z.jsx)(BCe,{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`})]}),a.length>0&&(0,z.jsxs)(`div`,{className:`bg-white/60 p-8 rounded-2xl shadow-sm`,children:[(0,z.jsx)(`h3`,{className:`text-2xl font-bold text-cyan-900 mb-8 text-center`,children:`Local Favorites`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-2 lg:grid-cols-3 gap-6`,children:a.map((e,n)=>(0,z.jsx)(A7,{restaurant:e,image:t[e.name]||r(n+1)},n))})]})]})})},HCe=()=>{(0,y.useEffect)(()=>{console.log(`WheelerPage mounted`)},[]);let e=Y.wheeler,t=Uf(`Wheeler`),n=Wf(`Wheeler`),r=OA.wheeler,i=`/images/heroes/wheeler/hero-wheeler-1600.webp`,a=`/images/heroes/wheeler/hero-wheeler-640.webp 640w, /images/heroes/wheeler/hero-wheeler-1024.webp 1024w, /images/heroes/wheeler/hero-wheeler-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Wheeler Oregon Travel`,description:n,url:`https://oregoncoastal.com/town/wheeler`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden`,children:[(0,z.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Wheeler, Oregon Bayfront`,className:`w-full h-full object-cover`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-black/30 to-black/70`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Wheeler`}),(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-white drop-shadow-lg tracking-tight`,children:`Wheeler`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 mb-12`,children:[(0,z.jsx)(`div`,{className:`lg:col-span-2`,children:(0,z.jsx)(i6,{townName:`Wheeler`,initialDescription:kCe},`Wheeler-About`)}),(0,z.jsx)(`div`,{className:`lg:col-span-1`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||45.6887,lon:e?.geo?.lng||-123.8812,townName:`Wheeler`})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Wheeler`,townSlug:`wheeler`,lat:e?.geo?.lat||45.6887,lon:e?.geo?.lng||-123.8812})})]}),(0,z.jsx)($3,{townSlug:`wheeler`}),(0,z.jsx)(vj,{townName:`Wheeler`,featuredImage:r,title:`Wheeler in Photos`}),(0,z.jsx)(hj,{attractions:D7,townName:`Wheeler`}),(0,z.jsx)(FCe,{attractions:D7}),(0,z.jsx)(LCe,{trails:ACe}),(0,z.jsx)(RCe,{hotels:jCe}),(0,z.jsx)(VCe,{restaurants:MCe})]}),(0,z.jsx)(NS,{})]})},UCe=`
<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>
`,j7=[{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.`}],WCe=[{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.`}],M7=[{name:`Winchester Bay Inn`,category:`Hotel`,image:`/images/hotels/winchester-bay/winchester-bay-inn.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`}],GCe=[{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."`}],N7=`Winchester Bay`,KCe=K(N7),qCe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(N7,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:KCe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),JCe=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Lighthouses & Dunes`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(qCe,{attraction:e,index:t},t))})]})})),P7=`Winchester Bay`,YCe=K(P7),XCe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},ZCe=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(P7,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:YCe,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(XCe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),QCe=({hotels:e})=>{let t=`Winchester Bay`,n=(e&&e.length>0?e:M7).filter(e=>e.name===`Winchester Bay Inn`),r=(qC[t]||[]).filter(e=>e.name===`Winchester Bay Inn`);return(0,z.jsx)(o6,{townName:t,fallbackHotels:n,affiliateHotels:r})},$Ce=da(`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 F7({className:e,variant:t,...n}){return(0,z.jsx)(`div`,{className:R($Ce({variant:t}),e),...n})}var ewe=({restaurant:e})=>(0,z.jsxs)(Ew,{className:`h-full flex flex-col hover:shadow-lg transition-shadow duration-300 border-orange-100 group`,children:[(0,z.jsxs)(Dw,{className:`pb-3`,children:[(0,z.jsxs)(`div`,{className:`flex justify-between items-start gap-4`,children:[(0,z.jsx)(Ow,{className:`text-xl font-bold text-gray-900 group-hover:text-orange-700 transition-colors`,children:e.name}),e.price&&(0,z.jsx)(F7,{variant:`outline`,className:`bg-orange-50 text-orange-700 border-orange-200 whitespace-nowrap`,children:e.price})]}),(0,z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2 mt-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center text-yellow-500 bg-yellow-50 px-2 py-0.5 rounded text-sm font-medium`,children:[(0,z.jsx)(Jo,{className:`w-4 h-4 mr-1 fill-current`}),e.rating]}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500`,children:[`(`,e.reviews,` reviews)`]}),(0,z.jsx)(`span`,{className:`text-gray-300`,children:`•`}),(0,z.jsx)(F7,{variant:`secondary`,className:`bg-gray-100 text-gray-700 hover:bg-gray-200`,children:e.category})]})]}),(0,z.jsxs)(kw,{className:`flex-grow flex flex-col gap-4`,children:[(0,z.jsxs)(`div`,{className:`space-y-2 text-sm text-gray-600`,children:[(0,z.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,z.jsx)(V,{className:`w-4 h-4 mt-0.5 text-orange-500 shrink-0`}),(0,z.jsx)(`span`,{children:e.address})]}),e.status&&(0,z.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,z.jsx)(Ja,{className:`w-4 h-4 mt-0.5 text-red-500 shrink-0`}),(0,z.jsx)(`span`,{className:`text-red-600 font-medium`,children:e.status})]})]}),(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.jsxs)(`div`,{className:`flex items-start gap-2 text-gray-600 bg-gray-50 p-3 rounded-lg`,children:[(0,z.jsx)(Ao,{className:`w-4 h-4 mt-1 text-gray-400 shrink-0`}),(0,z.jsx)(`p`,{className:`text-sm italic font-serif leading-relaxed`,children:e.quote})]})})]})]}),twe=({restaurants:e})=>!e||e.length===0?(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-24 px-4 bg-gradient-to-b from-orange-50/50 to-white`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16 max-w-3xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex items-center justify-center gap-2 mb-4`,children:(0,z.jsx)(`div`,{className:`p-3 bg-orange-100 rounded-full text-orange-600`,children:(0,z.jsx)(os,{className:`w-6 h-6`})})}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-6`,children:`Dining in Winchester Bay`}),(0,z.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.`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6`,children:e.map((e,t)=>(0,z.jsx)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.5,delay:t*.1},children:(0,z.jsx)(ewe,{restaurant:e})},t))})]})}),nwe=()=>{(0,y.useEffect)(()=>{console.log(`WinchesterBayPage mounted`)},[]);let e=Y[`winchester-bay`],t=Uf(`Winchester Bay`),n=Wf(`Winchester Bay`),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/2f37573b78ca4f0f6ac0a59604cf403c.webp`,i=`/images/heroes/winchester-bay/hero-winchester-bay-1600.webp`,a=`/images/heroes/winchester-bay/hero-winchester-bay-640.webp 640w, /images/heroes/winchester-bay/hero-winchester-bay-1024.webp 1024w, /images/heroes/winchester-bay/hero-winchester-bay-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Winchester Bay Oregon Travel`,description:n,url:`https://oregoncoastal.com/town/winchester-bay`,image:r}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Winchester Bay, Oregon Lighthouse and Harbor`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Winchester Bay`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Winchester Bay Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:UCe}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||43.6765,lon:e?.geo?.lng||-124.1768,townName:`Winchester Bay`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Winchester Bay`,townSlug:`winchester-bay`,lat:e?.geo?.lat||43.6765,lon:e?.geo?.lng||-124.1768})})]}),(0,z.jsx)($3,{townSlug:`winchester-bay`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Winchester Bay`,featuredImage:r,title:`Winchester Bay in Photos`})}),(0,z.jsx)(hj,{attractions:j7,townName:`Winchester Bay`}),(0,z.jsx)(JCe,{attractions:j7}),(0,z.jsx)(ZCe,{trails:WCe}),(0,z.jsx)(QCe,{hotels:M7}),(0,z.jsx)(twe,{restaurants:GCe})]}),(0,z.jsx)(NS,{})]})},rwe=`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.`,I7=[{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`}],iwe=[{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.`}],awe=[{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.`}],owe=[{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`}],L7=`Yachats`,swe=K(L7),cwe=({attraction:e,index:t})=>(0,z.jsx)(q.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:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e?.name||`Unknown Attraction`}),(()=>{let t=Pf(L7,e?.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:swe,pageType:`town`,module:`attraction-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsx)(`div`,{className:`bg-lime-50 p-2 rounded-full shrink-0 ml-2`,children:(0,z.jsx)(V,{className:`w-5 h-5 text-lime-600`})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e?.description||`No description available.`}),e?.details&&(0,z.jsx)(`div`,{className:`mt-auto pt-4 border-t border-gray-100`,children:(0,z.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})})]})}),lwe=({attractions:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gray-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Attraction information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-gradient-to-b from-white to-lime-50/30`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsx)(q.span,{initial:{opacity:0},whileInView:{opacity:1},className:`text-lime-600 font-bold tracking-wider uppercase text-sm`,children:`Wonders of the Coast`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1 w-24 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(cwe,{attraction:e,index:t},t))})]})})),R7=`Yachats`,uwe=K(R7),dwe=({level:e})=>{let 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(0,z.jsx)(`span`,{className:R(`px-2.5 py-0.5 rounded-full text-xs font-medium border`,t[e]||t.Moderate),children:e||`Unknown`})},fwe=({trails:e})=>((0,y.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?(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa] text-center`,children:(0,z.jsx)(`p`,{className:`text-gray-500`,children:`Hiking trail information currently unavailable.`})}):(0,z.jsx)(`section`,{className:`py-20 px-4 bg-[#f8f9fa]`,children:(0,z.jsxs)(`div`,{className:`max-w-5xl mx-auto`,children:[(0,z.jsx)(`div`,{className:`flex flex-col md:flex-row md:items-end justify-between mb-12 border-b border-gray-200 pb-8`,children:(0,z.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,z.jsxs)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4 flex items-center gap-3`,children:[(0,z.jsx)(H,{className:`w-8 h-8 text-emerald-600`}),`Hiking Trails & Nature`]}),(0,z.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.`})]})}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:10},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.05},className:`bg-white p-6 rounded-lg shadow-sm hover:shadow-md border border-gray-100 transition-all group`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between md:items-center gap-4 mb-3`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-800 group-hover:text-emerald-700 transition-colors`,children:e.name}),(()=>{let t=Nf(R7,e.name);return t?(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:uwe,pageType:`town`,module:`trail-card`,affiliateLink:null,theme:`light`}):null})()]}),(0,z.jsxs)(`div`,{className:`flex items-center gap-3 flex-wrap`,children:[(0,z.jsx)(dwe,{level:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(es,{className:`w-4 h-4`}),` `,e.distance]}),e.elevation&&(0,z.jsxs)(`span`,{className:`text-sm text-gray-500 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-4 h-4`}),` `,e.elevation]})]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed text-sm md:text-base`,children:e.description})]},t))})]})})),pwe=({hotels:e})=>{let t=`Yachats`;return(0,z.jsx)(o6,{townName:t,fallbackHotels:e,affiliateHotels:qC[t]})},z7=`Yachats`,mwe=K(z7),B7=({restaurant:e})=>{let t=Mf(z7,e?.name);return(0,z.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:[(0,z.jsxs)(`div`,{className:`flex justify-between items-baseline mb-3 gap-2`,children:[(0,z.jsxs)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,z.jsx)(`h3`,{className:`text-xl font-bold text-orange-950`,children:e?.name||`Restaurant Name`}),t&&(0,z.jsx)(X,{objectId:t.object_id,title:e.name,sourcePage:mwe,pageType:`town`,module:`dining-card`,affiliateLink:null,theme:`light`})]}),e?.category&&(0,z.jsx)(`span`,{className:`text-xs font-medium text-orange-600 bg-orange-100 px-2 py-1 rounded-md whitespace-nowrap flex-shrink-0`,children:e.category})]}),(0,z.jsx)(`p`,{className:`text-gray-700 mb-4 text-sm leading-relaxed flex-grow`,children:e?.description||`No description available.`}),e?.features&&(0,z.jsxs)(`div`,{className:`pt-3 border-t border-orange-100/50 mt-auto`,children:[(0,z.jsx)(`p`,{className:`text-xs font-bold text-orange-800 uppercase tracking-wide`,children:`Highlight`}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600`,children:e.features})]})]})},hwe=({src:e,alt:t,caption:n})=>(0,z.jsxs)(`div`,{className:`group relative overflow-hidden rounded-xl shadow-lg h-64 md:h-72 my-8`,children:[(0,z.jsx)(`img`,{src:e,alt:t,className:`w-full h-full object-cover transition-transform duration-700 group-hover:scale-105`,loading:`lazy`}),(0,z.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/80 to-transparent p-6`,children:(0,z.jsx)(`p`,{className:`text-white font-medium text-lg border-l-4 border-orange-500 pl-3`,children:n})})]}),gwe=({restaurants:e})=>{if((0,y.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(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50 text-center`,children:(0,z.jsx)(`p`,{className:`text-orange-900`,children:`Dining information currently unavailable.`})});let t=e.slice(0,3),n=e.slice(3,6),r=e.slice(6,9);return(0,z.jsx)(`section`,{className:`py-24 px-4 bg-orange-50`,children:(0,z.jsxs)(`div`,{className:`max-w-6xl mx-auto`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-16`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-center gap-2 mb-4 text-orange-600`,children:[(0,z.jsx)(os,{className:`w-6 h-6`}),(0,z.jsx)(ds,{className:`w-6 h-6`}),(0,z.jsx)(Qa,{className:`w-6 h-6`})]}),(0,z.jsx)(`h2`,{className:`text-4xl md:text-5xl font-bold text-gray-900 mb-4`,children:`Dining in Yachats`}),(0,z.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.`})]}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-3 gap-8 items-stretch mb-16`,children:t.map((e,t)=>(0,z.jsx)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},children:(0,z.jsx)(B7,{restaurant:e})},t))}),(0,z.jsx)(hwe,{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`}),(0,z.jsx)(`div`,{className:`grid md:grid-cols-3 gap-6 items-stretch mb-16`,children:n.map((e,t)=>(0,z.jsx)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},children:(0,z.jsx)(B7,{restaurant:e})},t))}),r.length>0&&(0,z.jsx)(`div`,{className:`grid md:grid-cols-3 gap-6 items-stretch`,children:r.map((e,t)=>(0,z.jsx)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.1},children:(0,z.jsx)(B7,{restaurant:e})},t))})]})})},_we=[{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)`}],vwe=()=>{(0,y.useEffect)(()=>{console.log(`YachatsPage mounted`)},[]);let e=Y.yachats,t=Uf(`Yachats`),n=Wf(`Yachats`),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/e7a98346b0f2453dedf2c0e629d0d68c.webp`,i=`/images/heroes/yachats/hero-yachats-1600.webp`,a=`/images/heroes/yachats/hero-yachats-640.webp 640w, /images/heroes/yachats/hero-yachats-1024.webp 1024w, /images/heroes/yachats/hero-yachats-1600.webp 1600w`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`preload`,as:`image`,type:`image/webp`,href:i,imagesrcset:a,imagesizes:`100vw`,fetchpriority:`high`})]}),(0,z.jsx)(VS,{name:`Yachats, Oregon`,description:n,image:r,url:window.location.href,geo:{latitude:44.3112,longitude:-124.1049}}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:i,srcSet:a,sizes:`100vw`,width:1600,height:1200,fetchpriority:`high`,alt:`Yachats, Oregon coastline`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Yachats`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-lime-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Yachats Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:rwe}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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."`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||44.3112,lon:e?.geo?.lng||-124.1049,townName:`Yachats`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Yachats`,townSlug:`yachats`,lat:e?.geo?.lat||44.3112,lon:e?.geo?.lng||-124.1049})})]}),(0,z.jsx)($3,{townSlug:`yachats`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Yachats`,featuredImage:r,title:`Yachats Gallery`})}),(0,z.jsx)(hj,{attractions:I7,townName:`Yachats`}),(0,z.jsx)(lwe,{attractions:I7}),(0,z.jsx)(fwe,{trails:iwe}),(0,z.jsx)(l6,{events:_we,townName:`Yachats`}),(0,z.jsx)(pwe,{hotels:awe}),(0,z.jsx)(gwe,{restaurants:owe})]}),(0,z.jsx)(NS,{})]})},ywe=`
<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>
`,V7=[{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.`}],bwe=[{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!`}],xwe=qC.Waldport||[],Swe=[{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.`}],Cwe=({attractions:e})=>(0,z.jsx)(`section`,{className:`py-16 px-4 bg-gray-50 border-t border-gray-100`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:`text-center mb-12`,children:[(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4`,children:`Things to Do in Seal Rock`}),(0,z.jsx)(`div`,{className:`h-1 w-20 bg-lime-500 mx-auto rounded-full`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8`,children:e.map((e,t)=>(0,z.jsx)(q.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 overflow-hidden hover:shadow-lg transition-shadow border border-gray-100 flex flex-col`,children:(0,z.jsxs)(`div`,{className:`p-6 flex flex-col h-full`,children:[(0,z.jsxs)(`div`,{className:`flex items-start mb-4`,children:[(0,z.jsx)(`div`,{className:`bg-blue-50 p-3 rounded-full mr-4 text-blue-600`,children:(0,z.jsx)(V,{className:`w-6 h-6`})}),(0,z.jsx)(`div`,{children:(0,z.jsx)(`h3`,{className:`text-xl font-bold text-gray-900 leading-tight`,children:e.name})})]}),(0,z.jsx)(`p`,{className:`text-gray-600 mb-6 flex-grow leading-relaxed`,children:e.description}),e.details&&(0,z.jsxs)(`div`,{className:`bg-gray-50 rounded-lg p-4 mt-auto border border-gray-100`,children:[(0,z.jsxs)(`div`,{className:`flex items-center text-sm text-gray-700 font-medium mb-1`,children:[(0,z.jsx)(go,{className:`w-4 h-4 mr-2 text-blue-500`}),`Good to Know`]}),(0,z.jsx)(`p`,{className:`text-sm text-gray-600 ml-6`,children:e.details})]})]})},t))})]})}),wwe=({trails:e})=>(0,z.jsx)(`section`,{className:`py-16 px-4 bg-white border-t border-gray-100`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:`text-center mb-12`,children:[(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4`,children:`Hiking & Trails`}),(0,z.jsx)(`div`,{className:`h-1 w-20 bg-emerald-600 mx-auto rounded-full mb-6`}),(0,z.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.`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6`,children:e.map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.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:[(0,z.jsxs)(`h3`,{className:`text-xl font-bold text-gray-900 mb-3 flex items-center`,children:[(0,z.jsx)(Mo,{className:`w-5 h-5 mr-2 text-emerald-600`}),e.name]}),(0,z.jsxs)(`div`,{className:`flex items-center space-x-4 mb-4 text-sm font-medium`,children:[(0,z.jsx)(`span`,{className:`px-3 py-1 rounded-full ${e.difficulty===`Easy`?`bg-green-100 text-green-700`:e.difficulty===`Moderate`?`bg-yellow-100 text-yellow-700`:`bg-red-100 text-red-700`}`,children:e.difficulty}),(0,z.jsxs)(`span`,{className:`text-gray-600 flex items-center`,children:[(0,z.jsx)(V,{className:`w-4 h-4 mr-1 text-gray-400`}),e.distance]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed`,children:e.description})]},t))})]})}),Twe=({hotels:e})=>(0,z.jsx)(o6,{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.`}),Ewe=()=>(0,z.jsx)(`section`,{className:`py-16 px-4 bg-gray-50 border-t border-gray-100`,children:(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto`,children:[(0,z.jsxs)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},className:`text-center mb-12`,children:[(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-bold text-gray-900 mb-4`,children:`Where to Eat`}),(0,z.jsx)(`div`,{className:`h-1 w-20 bg-orange-500 mx-auto rounded-full mb-6`}),(0,z.jsx)(`p`,{className:`text-lg text-gray-600 max-w-2xl mx-auto`,children:`Enjoy local flavors and coastal cuisine around Seal Rock.`})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6`,children:[{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}].map((e,t)=>(0,z.jsxs)(q.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.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:[(0,z.jsxs)(`div`,{className:`flex items-start justify-between mb-4`,children:[(0,z.jsxs)(`h3`,{className:`text-xl font-bold text-gray-900 flex items-center`,children:[(0,z.jsx)(os,{className:`w-5 h-5 mr-2 text-orange-500`}),e.name]}),e.rating&&(0,z.jsxs)(`div`,{className:`flex items-center bg-orange-50 px-2 py-1 rounded-md`,children:[(0,z.jsx)(Jo,{className:`w-4 h-4 text-orange-500 mr-1 fill-current`}),(0,z.jsx)(`span`,{className:`text-sm font-semibold text-orange-700`,children:e.rating})]})]}),(0,z.jsxs)(`div`,{className:`mb-4 flex flex-wrap gap-2`,children:[(0,z.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:e.category}),e.price&&(0,z.jsxs)(`span`,{className:`inline-flex items-center bg-green-50 text-green-700 text-xs font-semibold px-3 py-1 rounded-full`,children:[(0,z.jsx)(eo,{className:`w-3 h-3 mr-0.5`}),e.price]})]}),(0,z.jsx)(`p`,{className:`text-gray-600 leading-relaxed mb-6 flex-grow`,children:e.description}),(0,z.jsxs)(`div`,{className:`space-y-2 mt-auto text-sm text-gray-600`,children:[e.address&&(0,z.jsxs)(`div`,{className:`flex items-start`,children:[(0,z.jsx)(V,{className:`w-4 h-4 mr-2 text-gray-400 mt-0.5 flex-shrink-0`}),(0,z.jsx)(`span`,{children:e.address})]}),e.phone&&(0,z.jsxs)(`div`,{className:`flex items-center`,children:[(0,z.jsx)(Po,{className:`w-4 h-4 mr-2 text-gray-400 flex-shrink-0`}),(0,z.jsx)(`span`,{children:e.phone})]}),e.hours&&(0,z.jsxs)(`div`,{className:`flex items-center text-green-600 font-medium`,children:[(0,z.jsx)(Ja,{className:`w-4 h-4 mr-2 flex-shrink-0`}),(0,z.jsx)(`span`,{children:e.hours})]})]}),e.features&&(0,z.jsxs)(`div`,{className:`mt-4 pt-4 border-t border-gray-100 flex items-start text-sm text-gray-500`,children:[(0,z.jsx)(Jo,{className:`w-4 h-4 mr-2 text-yellow-400 flex-shrink-0 mt-0.5 fill-current`}),(0,z.jsx)(`span`,{className:`italic`,children:e.features})]})]},t))})]})}),Dwe=()=>{(0,y.useEffect)(()=>{console.log(`SealRockPage mounted`)},[]);let e=Y[`seal-rock`],t=Uf(`Seal Rock`),n=Wf(`Seal Rock`),r=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/8827892cb93ca1b0cd53550f0936dcde.webp`;return(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsxs)(J,{children:[(0,z.jsx)(`title`,{children:t}),(0,z.jsx)(`meta`,{name:`description`,content:n}),(0,z.jsx)(`meta`,{property:`og:title`,content:t}),(0,z.jsx)(`meta`,{property:`og:description`,content:n}),(0,z.jsx)(`link`,{rel:`canonical`,href:`https://oregoncoastal.com/seal-rock`})]}),(0,z.jsx)(gj,{}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`relative h-[60vh] md:h-[70vh] w-full overflow-hidden bg-gray-900`,children:[(0,z.jsxs)(q.div,{initial:{scale:1.1},animate:{scale:1},transition:{duration:1.5},className:`absolute inset-0`,children:[(0,z.jsx)(`img`,{src:r,alt:`Seal Rock, Oregon coastline`,className:`w-full h-full object-cover opacity-90`}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-black/60 via-transparent to-black/80`})]}),(0,z.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:[(0,z.jsx)(yj,{townName:`Seal Rock`}),(0,z.jsx)(q.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`}),(0,z.jsx)(`div`,{className:`h-1.5 w-32 bg-teal-400 rounded-full mb-0 shadow-lg`})]})]}),(0,z.jsxs)(`main`,{className:`w-full flex-grow`,children:[(0,z.jsxs)(`section`,{className:`py-16 px-4 bg-white relative`,children:[(0,z.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:(0,z.jsx)(`span`,{className:`text-4xl`,children:`🌊`})}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto grid grid-cols-1 lg:grid-cols-3 gap-8 items-stretch mb-12`,children:[(0,z.jsxs)(q.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:[(0,z.jsx)(`div`,{className:`flex flex-col items-start gap-3 mb-6`,children:(0,z.jsx)(`h2`,{className:`text-3xl md:text-4xl font-semibold text-gray-900 tracking-tight leading-tight`,children:`About Seal Rock Oregon`})}),(0,z.jsx)(`div`,{className:`flex-grow`,children:(0,z.jsx)(`div`,{className:`text-lg text-gray-700 leading-relaxed font-light prose prose-lg max-w-none text-left`,dangerouslySetInnerHTML:{__html:ywe}})}),(0,z.jsx)(`div`,{className:`mt-8 pt-6 border-t border-gray-200 mt-auto`,children:(0,z.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.`})})]}),(0,z.jsx)(q.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:(0,z.jsx)(`div`,{className:`h-full w-full`,children:(0,z.jsx)(n6,{lat:e?.geo?.lat||44.4984,lon:e?.geo?.lng||-124.0829,townName:`Seal Rock`})})})]}),(0,z.jsx)(`div`,{className:`max-w-7xl mx-auto border-t border-gray-100 pt-16 mt-8`,children:(0,z.jsx)(q3,{townName:`Seal Rock`,townSlug:`seal-rock`,lat:e?.geo?.lat||44.4984,lon:e?.geo?.lng||-124.0829})})]}),(0,z.jsx)($3,{townSlug:`seal-rock`}),(0,z.jsx)(`div`,{className:`relative bg-gradient-to-b from-white to-gray-50 pt-8 pb-16`,children:(0,z.jsx)(vj,{townName:`Seal Rock`,featuredImage:r,title:`Seal Rock in Photos`})}),(0,z.jsx)(hj,{attractions:V7,townName:`Seal Rock`}),(0,z.jsx)(Cwe,{attractions:V7}),(0,z.jsx)(wwe,{trails:bwe}),(0,z.jsx)(Twe,{hotels:xwe}),(0,z.jsx)(Ewe,{restaurants:Swe})]}),(0,z.jsx)(NS,{})]})},Owe=()=>{let[e,t]=(0,y.useState)(``),[n,r]=(0,y.useState)(``),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(`idle`),[u,d]=(0,y.useState)(``),[f,p]=(0,y.useState)(!1),{login:m,isAuthenticated:h}=Qd(),g=F(),{toast:_}=Ds();return(0,y.useEffect)(()=>{h&&g(`/admin`)},[h,g]),(0,z.jsxs)(`div`,{className:`min-h-screen bg-gray-50 flex flex-col`,children:[(0,z.jsx)(jS,{}),(0,z.jsx)(`div`,{className:`flex-grow flex items-center justify-center px-4 py-12`,children:(0,z.jsxs)(`div`,{className:`max-w-md w-full space-y-8`,children:[(0,z.jsxs)(`div`,{className:`bg-white rounded-xl shadow-lg p-8 border border-gray-100`,children:[(0,z.jsxs)(`div`,{className:`text-center mb-8`,children:[(0,z.jsx)(`div`,{className:`bg-lime-100 w-16 h-16 rounded-full flex items-center justify-center mx-auto mb-4`,children:(0,z.jsx)(To,{className:`w-8 h-8 text-[#2d5016]`})}),(0,z.jsx)(`h1`,{className:`text-2xl font-bold text-gray-900`,children:`Admin Access`}),(0,z.jsx)(`p`,{className:`text-gray-500 mt-2`,children:`Sign in to manage content`})]}),o&&(0,z.jsx)(`div`,{className:`mb-6 bg-red-50 border border-red-200 rounded-lg p-4`,children:(0,z.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,z.jsx)(Ua,{className:`w-5 h-5 text-red-600 flex-shrink-0 mt-0.5`}),(0,z.jsxs)(`div`,{className:`flex-1`,children:[(0,z.jsx)(`h4`,{className:`text-sm font-semibold text-red-800`,children:`Login Failed`}),(0,z.jsx)(`p`,{className:`text-sm text-red-700 mt-1`,children:o.message}),(o.code||o.hint)&&(0,z.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,(0,z.jsx)(`br`,{}),`Type: `,o.hint]})]})]})}),(0,z.jsxs)(`form`,{onSubmit:async t=>{t.preventDefault(),s(null),a(!0);try{let t=await m(e,n);t.success?(_({title:`Login Successful`,description:`Welcome back, Admin!`,className:`bg-green-50 border-green-200 text-green-900`}),g(`/admin`)):(s({message:t.error,code:t.details?.code||t.details?.status||`UNKNOWN`,hint:t.details?.name||`Auth Error`}),_({title:`Login Failed`,description:t.error,variant:`destructive`}),a(!1))}catch(e){s({message:`An unexpected client-side error occurred.`,code:`CLIENT_EXCEPTION`,hint:e.message}),a(!1)}},className:`space-y-6`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`label`,{htmlFor:`email`,className:`block text-sm font-medium text-gray-700 mb-1`,children:`Email Address`}),(0,z.jsxs)(`div`,{className:`relative`,children:[(0,z.jsx)(Do,{className:`absolute left-3 top-2.5 h-5 w-5 text-gray-400`}),(0,z.jsx)(`input`,{id:`email`,name:`email`,type:`email`,required:!0,value:e,onChange:e=>{t(e.target.value),o&&s(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:`[email protected]`,autoComplete:`email`})]})]}),(0,z.jsxs)(`div`,{children:[(0,z.jsx)(`label`,{htmlFor:`password`,className:`block text-sm font-medium text-gray-700 mb-1`,children:`Password`}),(0,z.jsxs)(`div`,{className:`relative`,children:[(0,z.jsx)(To,{className:`absolute left-3 top-2.5 h-5 w-5 text-gray-400`}),(0,z.jsx)(`input`,{id:`password`,name:`password`,type:`password`,required:!0,value:n,onChange:e=>{r(e.target.value),o&&s(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`})]})]}),(0,z.jsx)(Bw,{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?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(wo,{className:`mr-2 h-4 w-4 animate-spin`}),`Authenticating...`]}):`Sign In`})]})]}),(0,z.jsxs)(`div`,{className:`space-y-4`,children:[(0,z.jsxs)(`div`,{className:`bg-gray-100 rounded-xl p-4 border border-gray-200`,children:[(0,z.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,z.jsx)(`h3`,{className:`text-xs font-semibold text-gray-500 uppercase tracking-wider`,children:`System Status`}),(0,z.jsxs)(Bw,{variant:`ghost`,size:`sm`,onClick:async()=>{l(`testing`),d(`Pinging Supabase Auth Service...`);try{let e=Date.now(),{data:t,error:n}=await Xd.auth.getSession(),r=Date.now()-e;n?(l(`error`),d(`Connection Failed (${r}ms): ${n.message}`)):(l(`success`),d(`Connected successfully (${r}ms). Service is reachable.`))}catch(e){l(`error`),d(`Network Exception: ${e.message}`)}},className:`h-6 text-xs text-gray-600 hover:text-gray-900`,disabled:c===`testing`,children:[c===`testing`?(0,z.jsx)(wo,{className:`w-3 h-3 animate-spin`}):(0,z.jsx)(zo,{className:`w-3 h-3 mr-1`}),` Test Connection`]})]}),(0,z.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:(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[c===`success`?(0,z.jsx)(ls,{className:`w-3 h-3`}):c===`error`?(0,z.jsx)(cs,{className:`w-3 h-3`}):(0,z.jsx)(`div`,{className:`w-2 h-2 rounded-full bg-gray-300`}),(0,z.jsx)(`span`,{children:u||`Click 'Test Connection' to verify database reachability.`})]})})]}),(0,z.jsxs)(`div`,{className:`bg-blue-50 rounded-xl p-4 border border-blue-100`,children:[(0,z.jsx)(`div`,{className:`flex items-center justify-between mb-2`,children:(0,z.jsxs)(`h3`,{className:`text-xs font-semibold text-blue-800 uppercase tracking-wider flex items-center gap-1`,children:[(0,z.jsx)(Go,{className:`w-3 h-3`}),` Admin Recovery`]})}),(0,z.jsx)(`p`,{className:`text-xs text-blue-600 mb-3`,children:`Can't login? Reset the default admin account.`}),(0,z.jsx)(Bw,{variant:`outline`,size:`sm`,onClick:async()=>{p(!0);try{let{data:e,error:n}=await Xd.functions.invoke(`reset-admin-user`);if(n)throw n;if(e.success)_({title:`Admin User ${e.action===`created`?`Created`:`Reset`}`,description:`User ID: ${e.userId}. Password reset to "password".`,className:`bg-blue-50 border-blue-200 text-blue-900`}),t(`[email protected]`),r(`password`);else throw Error(e.error||`Unknown error in edge function`)}catch(e){_({title:`Reset Failed`,description:e.message,variant:`destructive`})}finally{p(!1)}},disabled:f,className:`w-full h-8 text-xs border-blue-200 text-blue-700 hover:bg-blue-100 hover:text-blue-800`,children:f?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(wo,{className:`w-3 h-3 animate-spin mr-2`}),`Resetting User...`]}):`Reset User ([email protected])`})]})]})]})})]})},kwe=({townName:e,onUploadComplete:t})=>{let{isAuthenticated:n}=Qd(),[r,i]=(0,y.useState)([]),[a,o]=(0,y.useState)(!1),[s,c]=(0,y.useState)(0),l=(0,y.useRef)(null),{toast:u}=Ds(),d=e=>{e.preventDefault(),e.stopPropagation()},f=e=>{e.preventDefault(),e.stopPropagation(),!a&&e.dataTransfer.files&&e.dataTransfer.files.length>0&&m(e.dataTransfer.files)},p=e=>{e.target.files&&e.target.files.length>0&&m(e.target.files),l.current&&(l.current.value=``)},m=e=>{let t=Array.from(e).filter(e=>{let t=e.type.startsWith(`image/`),n=e.size<=10485760;return t&&n}).map(e=>({file:e,id:Math.random().toString(36).substr(2,9),preview:URL.createObjectURL(e),status:`pending`,errorMessage:``}));t.length===0?u({title:`Invalid Files`,description:`Please select valid images (Max 10MB).`,variant:`destructive`}):i(e=>[...e,...t])},h=e=>{a||i(t=>t.filter(t=>t.id!==e))},g=()=>{a||(i([]),c(0))},_=async()=>{if(!e){u({title:`Error`,description:`No town selected.`,variant:`destructive`});return}let{data:{session:n},error:a}=await Xd.auth.getSession();if(!n||a){u({title:`Authentication Error`,description:`You must be logged in to upload photos.`,variant:`destructive`});return}let s=r.filter(e=>e.status===`pending`||e.status===`error`);if(s.length===0)return;o(!0),c(0);let l=0,d=0,f=s.length;for(let t of s){v(t.id,`uploading`);try{let n=t.file.name.split(`.`).pop(),r=`${e.toLowerCase().replace(/[^a-z0-9]/g,`-`)}-${Math.random().toString(36).substring(2,10)}.${n}`,{error:i}=await Xd.storage.from(`town-images`).upload(r,t.file,{cacheControl:`3600`,upsert:!1});if(i)throw Error(`Upload failed: ${i.message}`);let{data:{publicUrl:a}}=Xd.storage.from(`town-images`).getPublicUrl(r);v(t.id,`optimizing`);let o=a,s=null,c=null,u=null;try{let{data:e,error:t}=await Xd.functions.invoke(`optimize-image`,{body:{imageUrl:a,fileName:r}});t?console.warn(`Optimization warning (non-fatal):`,t):e?.success&&(o=e.optimizedUrl,s=e.thumbnailUrl,c=e.originalSize,u=e.optimizedSize)}catch(e){console.error(`Optimization fetch error:`,e)}let{error:d}=await Xd.from(`town_photos`).insert([{town_name:e,image_url:o,thumbnail_url:s||o,original_size:c,optimized_size:u,caption:t.file.name.split(`.`)[0]}]);if(d)throw d;v(t.id,`success`),l++}catch(e){console.error(`Error uploading ${t.file.name}:`,e),v(t.id,`error`,e.message)}d++,c(Math.round(d/f*100))}o(!1),l>0&&(u({title:`Upload Complete`,description:`Successfully uploaded ${l} photos for ${e}.`,className:`bg-green-50 border-green-200 text-green-900`}),t&&(console.log(`Triggering onUploadComplete`),t()),setTimeout(()=>{i(e=>e.filter(e=>e.status!==`success`)),c(0)},2e3))},v=(e,t,n=``)=>{i(r=>r.map(r=>r.id===e?{...r,status:t,errorMessage:n}:r))};return!n&&!a?(0,z.jsxs)(`div`,{className:`bg-amber-50 p-6 rounded-xl border border-amber-200 text-center`,children:[(0,z.jsx)(Wo,{className:`w-8 h-8 text-amber-600 mx-auto mb-2`}),(0,z.jsx)(`h3`,{className:`font-semibold text-amber-800`,children:`Authentication Required`}),(0,z.jsx)(`p`,{className:`text-sm text-amber-700 mt-1`,children:`You must be logged in as an admin to upload photos.`})]}):(0,z.jsxs)(`div`,{className:`bg-white p-6 rounded-xl border border-gray-200 shadow-sm`,children:[(0,z.jsx)(`div`,{className:`flex justify-between items-center mb-4`,children:(0,z.jsxs)(`h3`,{className:`text-lg font-semibold text-gray-800 flex items-center gap-2`,children:[(0,z.jsx)(rs,{className:`w-5 h-5 text-[#2d5016]`}),`Upload Photos for `,e]})}),(0,z.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`}
${a?`opacity-70 pointer-events-none`:``}`,onDragOver:d,onDrop:f,onClick:()=>!a&&e&&l.current?.click(),children:[(0,z.jsx)(`input`,{type:`file`,ref:l,className:`hidden`,multiple:!0,accept:`image/*`,onChange:p}),(0,z.jsxs)(`div`,{className:`flex flex-col items-center justify-center gap-2`,children:[(0,z.jsx)(`div`,{className:`bg-gray-100 p-3 rounded-full text-gray-500`,children:a?(0,z.jsx)(wo,{className:`w-6 h-6 animate-spin`}):(0,z.jsx)(ho,{className:`w-6 h-6`})}),(0,z.jsx)(`p`,{className:`text-sm font-medium text-gray-700`,children:a?`Uploading in progress...`:`Click to select or drag photos here`}),!a&&(0,z.jsx)(`p`,{className:`text-xs text-gray-500`,children:`Max 10MB per file • Optimized automatically`})]})]}),r.length>0&&(0,z.jsxs)(`div`,{className:`mt-6 space-y-4`,children:[(0,z.jsxs)(`div`,{className:`flex justify-between items-center border-b border-gray-100 pb-2`,children:[(0,z.jsxs)(`span`,{className:`text-sm font-medium text-gray-700`,children:[`Queue (`,r.length,`)`]}),!a&&(0,z.jsx)(`button`,{onClick:g,className:`text-xs text-red-500 hover:text-red-700`,children:`Clear all`})]}),(0,z.jsx)(`div`,{className:`max-h-60 overflow-y-auto space-y-2 pr-1`,children:r.map(e=>(0,z.jsxs)(`div`,{className:`flex items-center gap-3 bg-gray-50 p-2 rounded border border-gray-200`,children:[(0,z.jsx)(`div`,{className:`w-10 h-10 rounded overflow-hidden flex-shrink-0 bg-gray-200`,children:(0,z.jsx)(`img`,{src:e.preview,alt:``,className:`w-full h-full object-cover`})}),(0,z.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,z.jsx)(`p`,{className:`text-sm text-gray-700 truncate`,children:e.file.name}),(0,z.jsxs)(`p`,{className:`text-xs flex items-center gap-1`,children:[e.status===`pending`&&(0,z.jsx)(`span`,{className:`text-gray-500`,children:`Ready`}),e.status===`uploading`&&(0,z.jsxs)(`span`,{className:`text-blue-600 flex items-center gap-1`,children:[(0,z.jsx)(wo,{className:`w-3 h-3 animate-spin`}),` Uploading...`]}),e.status===`optimizing`&&(0,z.jsxs)(`span`,{className:`text-purple-600 flex items-center gap-1`,children:[(0,z.jsx)(qo,{className:`w-3 h-3 animate-pulse`}),` Optimizing...`]}),e.status===`success`&&(0,z.jsxs)(`span`,{className:`text-green-600 flex items-center gap-1`,children:[(0,z.jsx)(Ra,{className:`w-3 h-3`}),` Done`]}),e.status===`error`&&(0,z.jsxs)(`span`,{className:`text-red-600 flex items-center gap-1`,children:[(0,z.jsx)(Ua,{className:`w-3 h-3`}),` Failed`]})]})]}),e.status===`pending`&&!a&&(0,z.jsx)(`button`,{onClick:()=>h(e.id),className:`text-gray-400 hover:text-red-500`,children:(0,z.jsx)(ps,{className:`w-4 h-4`})})]},e.id))}),r.some(e=>e.status===`pending`||e.status===`error`)&&(0,z.jsx)(Bw,{onClick:_,disabled:a||!e,className:`w-full bg-[#2d5016] hover:bg-[#1a300d] transition-all`,children:a?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(wo,{className:`w-4 h-4 mr-2 animate-spin`}),`Processing `,s,`%`]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(rs,{className:`w-4 h-4 mr-2`}),`Start Upload`]})})]})]})},H7=`focusScope.autoFocusOnMount`,U7=`focusScope.autoFocusOnUnmount`,W7={bubbles:!1,cancelable:!0},Awe=`FocusScope`,G7=y.forwardRef((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:i,onUnmountAutoFocus:a,...o}=e,[s,c]=y.useState(null),l=zr(i),u=zr(a),d=y.useRef(null),f=Tr(t,e=>c(e)),p=y.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;y.useEffect(()=>{if(r){let e=function(e){if(p.paused||!s)return;let t=e.target;s.contains(t)?d.current=t:J7(d.current,{select:!0})},t=function(e){if(p.paused||!s)return;let t=e.relatedTarget;t!==null&&(s.contains(t)||J7(d.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&J7(s)};document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return s&&r.observe(s,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,s,p.paused]),y.useEffect(()=>{if(s){Y7.add(p);let e=document.activeElement;if(!s.contains(e)){let t=new CustomEvent(H7,W7);s.addEventListener(H7,l),s.dispatchEvent(t),t.defaultPrevented||(jwe(Iwe(K7(s)),{select:!0}),document.activeElement===e&&J7(s))}return()=>{s.removeEventListener(H7,l),setTimeout(()=>{let t=new CustomEvent(U7,W7);s.addEventListener(U7,u),s.dispatchEvent(t),t.defaultPrevented||J7(e??document.body,{select:!0}),s.removeEventListener(U7,u),Y7.remove(p)},0)}}},[s,l,u,p]);let m=y.useCallback(e=>{if(!n&&!r||p.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=Mwe(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&J7(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&J7(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,p.paused]);return(0,z.jsx)(Lr.div,{tabIndex:-1,...o,ref:f,onKeyDown:m})});G7.displayName=Awe;function jwe(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(J7(r,{select:t}),document.activeElement!==n)return}function Mwe(e){let t=K7(e);return[q7(t,e),q7(t.reverse(),e)]}function K7(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function q7(e,t){for(let n of e)if(!Nwe(n,{upTo:t}))return n}function Nwe(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 Pwe(e){return e instanceof HTMLInputElement&&`select`in e}function J7(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Pwe(e)&&t&&e.select()}}var Y7=Fwe();function Fwe(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=X7(e,t),e.unshift(t)},remove(t){e=X7(e,t),e[0]?.resume()}}}function X7(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Iwe(e){return e.filter(e=>e.tagName!==`A`)}var Z7=0;function Lwe(){y.useEffect(()=>{let e=document.querySelectorAll(`[data-radix-focus-guard]`);return document.body.insertAdjacentElement(`afterbegin`,e[0]??Q7()),document.body.insertAdjacentElement(`beforeend`,e[1]??Q7()),Z7++,()=>{Z7===1&&document.querySelectorAll(`[data-radix-focus-guard]`).forEach(e=>e.remove()),Z7--}},[])}function Q7(){let 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 $7=`Dialog`,[e9,t9]=Or($7),[Rwe,n9]=e9($7),r9=e=>{let{__scopeDialog:t,children:n,open:r,defaultOpen:i,onOpenChange:a,modal:o=!0}=e,s=y.useRef(null),c=y.useRef(null),[l=!1,u]=ui({prop:r,defaultProp:i,onChange:a});return(0,z.jsx)(Rwe,{scope:t,triggerRef:s,contentRef:c,contentId:ZC(),titleId:ZC(),descriptionId:ZC(),open:l,onOpenChange:u,onOpenToggle:y.useCallback(()=>u(e=>!e),[u]),modal:o,children:n})};r9.displayName=$7;var i9=`DialogTrigger`,a9=y.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=n9(i9,n),a=Tr(t,i.triggerRef);return(0,z.jsx)(Lr.button,{type:`button`,"aria-haspopup":`dialog`,"aria-expanded":i.open,"aria-controls":i.contentId,"data-state":b9(i.open),...r,ref:a,onClick:Sr(e.onClick,i.onOpenToggle)})});a9.displayName=i9;var o9=`DialogPortal`,[zwe,s9]=e9(o9,{forceMount:void 0}),c9=e=>{let{__scopeDialog:t,forceMount:n,children:r,container:i}=e,a=n9(o9,t);return(0,z.jsx)(zwe,{scope:t,forceMount:n,children:y.Children.map(r,e=>(0,z.jsx)(oi,{present:n||a.open,children:(0,z.jsx)(ii,{asChild:!0,container:i,children:e})}))})};c9.displayName=o9;var l9=`DialogOverlay`,u9=y.forwardRef((e,t)=>{let n=s9(l9,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=n9(l9,e.__scopeDialog);return a.modal?(0,z.jsx)(oi,{present:r||a.open,children:(0,z.jsx)(Bwe,{...i,ref:t})}):null});u9.displayName=l9;var Bwe=y.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=n9(l9,n);return(0,z.jsx)(vk,{as:Ar,allowPinchZoom:!0,shards:[i.contentRef],children:(0,z.jsx)(Lr.div,{"data-state":b9(i.open),...r,ref:t,style:{pointerEvents:`auto`,...r.style}})})}),d9=`DialogContent`,f9=y.forwardRef((e,t)=>{let n=s9(d9,e.__scopeDialog),{forceMount:r=n.forceMount,...i}=e,a=n9(d9,e.__scopeDialog);return(0,z.jsx)(oi,{present:r||a.open,children:a.modal?(0,z.jsx)(Vwe,{...i,ref:t}):(0,z.jsx)(Hwe,{...i,ref:t})})});f9.displayName=d9;var Vwe=y.forwardRef((e,t)=>{let n=n9(d9,e.__scopeDialog),r=y.useRef(null),i=Tr(t,n.contentRef,r);return y.useEffect(()=>{let e=r.current;if(e)return JO(e)},[]),(0,z.jsx)(p9,{...e,ref:i,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Sr(e.onCloseAutoFocus,e=>{e.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Sr(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=t.button===0&&t.ctrlKey===!0;(t.button===2||n)&&e.preventDefault()}),onFocusOutside:Sr(e.onFocusOutside,e=>e.preventDefault())})}),Hwe=y.forwardRef((e,t)=>{let n=n9(d9,e.__scopeDialog),r=y.useRef(!1),i=y.useRef(!1);return(0,z.jsx)(p9,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(r.current||n.triggerRef.current?.focus(),t.preventDefault()),r.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(r.current=!0,t.detail.originalEvent.type===`pointerdown`&&(i.current=!0));let a=t.target;n.triggerRef.current?.contains(a)&&t.preventDefault(),t.detail.originalEvent.type===`focusin`&&i.current&&t.preventDefault()}})}),p9=y.forwardRef((e,t)=>{let{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:i,onCloseAutoFocus:a,...o}=e,s=n9(d9,n),c=y.useRef(null),l=Tr(t,c);return Lwe(),(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(G7,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:i,onUnmountAutoFocus:a,children:(0,z.jsx)(qr,{role:`dialog`,id:s.contentId,"aria-describedby":s.descriptionId,"aria-labelledby":s.titleId,"data-state":b9(s.open),...o,ref:l,onDismiss:()=>s.onOpenChange(!1)})}),(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(Wwe,{titleId:s.titleId}),(0,z.jsx)(Kwe,{contentRef:c,descriptionId:s.descriptionId})]})]})}),m9=`DialogTitle`,h9=y.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=n9(m9,n);return(0,z.jsx)(Lr.h2,{id:i.titleId,...r,ref:t})});h9.displayName=m9;var g9=`DialogDescription`,_9=y.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=n9(g9,n);return(0,z.jsx)(Lr.p,{id:i.descriptionId,...r,ref:t})});_9.displayName=g9;var v9=`DialogClose`,y9=y.forwardRef((e,t)=>{let{__scopeDialog:n,...r}=e,i=n9(v9,n);return(0,z.jsx)(Lr.button,{type:`button`,...r,ref:t,onClick:Sr(e.onClick,()=>i.onOpenChange(!1))})});y9.displayName=v9;function b9(e){return e?`open`:`closed`}var x9=`DialogTitleWarning`,[Uwe,S9]=Dr(x9,{contentName:d9,titleName:m9,docsSlug:`dialog`}),Wwe=({titleId:e})=>{let t=S9(x9),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 y.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},Gwe=`DialogDescriptionWarning`,Kwe=({contentRef:e,descriptionId:t})=>{let n=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${S9(Gwe).contentName}}.`;return y.useEffect(()=>{let r=e.current?.getAttribute(`aria-describedby`);t&&r&&(document.getElementById(t)||console.warn(n))},[n,e,t]),null},qwe=r9,Jwe=a9,Ywe=c9,Xwe=u9,Zwe=f9,Qwe=h9,$we=_9,C9=y9,w9=`AlertDialog`,[eTe,tTe]=Or(w9,[t9]),T9=t9(),E9=e=>{let{__scopeAlertDialog:t,...n}=e,r=T9(t);return(0,z.jsx)(qwe,{...r,...n,modal:!0})};E9.displayName=w9;var nTe=`AlertDialogTrigger`,D9=y.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=T9(n);return(0,z.jsx)(Jwe,{...i,...r,ref:t})});D9.displayName=nTe;var rTe=`AlertDialogPortal`,O9=e=>{let{__scopeAlertDialog:t,...n}=e,r=T9(t);return(0,z.jsx)(Ywe,{...r,...n})};O9.displayName=rTe;var iTe=`AlertDialogOverlay`,k9=y.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=T9(n);return(0,z.jsx)(Xwe,{...i,...r,ref:t})});k9.displayName=iTe;var A9=`AlertDialogContent`,[aTe,oTe]=eTe(A9),j9=y.forwardRef((e,t)=>{let{__scopeAlertDialog:n,children:r,...i}=e,a=T9(n),o=y.useRef(null),s=Tr(t,o),c=y.useRef(null);return(0,z.jsx)(Uwe,{contentName:A9,titleName:M9,docsSlug:`alert-dialog`,children:(0,z.jsx)(aTe,{scope:n,cancelRef:c,children:(0,z.jsxs)(Zwe,{role:`alertdialog`,...a,...i,ref:s,onOpenAutoFocus:Sr(i.onOpenAutoFocus,e=>{e.preventDefault(),c.current?.focus({preventScroll:!0})}),onPointerDownOutside:e=>e.preventDefault(),onInteractOutside:e=>e.preventDefault(),children:[(0,z.jsx)(Mr,{children:r}),(0,z.jsx)(cTe,{contentRef:o})]})})})});j9.displayName=A9;var M9=`AlertDialogTitle`,N9=y.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=T9(n);return(0,z.jsx)(Qwe,{...i,...r,ref:t})});N9.displayName=M9;var P9=`AlertDialogDescription`,F9=y.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=T9(n);return(0,z.jsx)($we,{...i,...r,ref:t})});F9.displayName=P9;var sTe=`AlertDialogAction`,I9=y.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,i=T9(n);return(0,z.jsx)(C9,{...i,...r,ref:t})});I9.displayName=sTe;var L9=`AlertDialogCancel`,R9=y.forwardRef((e,t)=>{let{__scopeAlertDialog:n,...r}=e,{cancelRef:i}=oTe(L9,n),a=T9(n),o=Tr(t,i);return(0,z.jsx)(C9,{...a,...r,ref:o})});R9.displayName=L9;var cTe=({contentRef:e})=>{let t=`\`${A9}\` requires a description for the component to be accessible for screen reader users.
You can add a description to the \`${A9}\` by passing a \`${P9}\` 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 \`${A9}\`. 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 y.useEffect(()=>{document.getElementById(e.current?.getAttribute(`aria-describedby`))||console.warn(t)},[t,e]),null},lTe=E9,uTe=D9,dTe=O9,z9=k9,B9=j9,V9=I9,H9=R9,U9=N9,W9=F9,fTe=lTe,pTe=uTe,mTe=dTe,G9=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(z9,{className:R(`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}));G9.displayName=z9.displayName;var K9=y.forwardRef(({className:e,...t},n)=>(0,z.jsxs)(mTe,{children:[(0,z.jsx)(G9,{}),(0,z.jsx)(B9,{ref:n,className:R(`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})]}));K9.displayName=B9.displayName;var q9=({className:e,...t})=>(0,z.jsx)(`div`,{className:R(`flex flex-col space-y-2 text-center sm:text-left`,e),...t});q9.displayName=`AlertDialogHeader`;var J9=({className:e,...t})=>(0,z.jsx)(`div`,{className:R(`flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2`,e),...t});J9.displayName=`AlertDialogFooter`;var Y9=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(U9,{ref:n,className:R(`text-lg font-semibold`,e),...t}));Y9.displayName=U9.displayName;var X9=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(W9,{ref:n,className:R(`text-sm text-muted-foreground`,e),...t}));X9.displayName=W9.displayName;var Z9=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(V9,{ref:n,className:R(`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}));Z9.displayName=V9.displayName;var Q9=y.forwardRef(({className:e,...t},n)=>(0,z.jsx)(H9,{ref:n,className:R(`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}));Q9.displayName=H9.displayName;var hTe=({townName:e,refreshTrigger:t})=>{let[n,r]=(0,y.useState)([]),[i,a]=(0,y.useState)(!1),[o,s]=(0,y.useState)(null),[c,l]=(0,y.useState)(null),{toast:u}=Ds();(0,y.useEffect)(()=>{e?d():r([])},[e,t]);let d=async()=>{a(!0),s(null),console.log(`[Grid] Fetching photos for: ${e}`);try{let{data:t,error:n}=await Xd.from(`town_photos`).select(`*`).eq(`town_name`,e).order(`created_at`,{ascending:!1});if(n)throw n;console.log(`[Grid] Fetched ${t.length} photos`),r(t||[])}catch(e){console.error(`[Grid] Error fetching photos:`,e),s(`Failed to load photos. Please try again.`)}finally{a(!1)}},f=async e=>{l(e.id);try{if(e.image_url)try{let t=e.image_url.split(`/`),n=t[t.length-1],{error:r}=await Xd.storage.from(`town-images`).remove([n]);r&&console.warn(`[Grid] Storage delete warning:`,r)}catch(e){console.warn(`[Grid] Failed to parse filename for storage deletion`,e)}let{error:t}=await Xd.from(`town_photos`).delete().eq(`id`,e.id);if(t)throw t;r(t=>t.filter(t=>t.id!==e.id)),u({title:`Photo deleted`,description:`The photo has been removed successfully.`})}catch(e){console.error(`[Grid] Delete error:`,e),u({title:`Delete failed`,description:`Could not delete the photo. Please try again.`,variant:`destructive`})}finally{l(null)}};return e?i?(0,z.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-64`,children:[(0,z.jsx)(wo,{className:`w-8 h-8 text-[#2d5016] animate-spin mb-2`}),(0,z.jsxs)(`p`,{className:`text-gray-500`,children:[`Loading photos for `,e,`...`]})]}):o?(0,z.jsxs)(`div`,{className:`bg-red-50 p-4 rounded-lg flex items-center gap-3 text-red-700`,children:[(0,z.jsx)(Ua,{className:`w-5 h-5 shrink-0`}),(0,z.jsx)(`p`,{children:o}),(0,z.jsx)(Bw,{variant:`outline`,size:`sm`,onClick:d,className:`ml-auto border-red-200 hover:bg-red-100`,children:`Retry`})]}):n.length===0?(0,z.jsxs)(`div`,{className:`flex flex-col items-center justify-center h-64 bg-gray-50 rounded-lg border border-gray-200`,children:[(0,z.jsx)(mo,{className:`w-10 h-10 text-gray-300 mb-3`}),(0,z.jsxs)(`p`,{className:`text-gray-500 font-medium`,children:[`No photos found for `,e]}),(0,z.jsx)(`p`,{className:`text-gray-400 text-sm mt-1`,children:`Upload some photos to get started!`})]}):(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`div`,{className:`flex justify-between items-center mb-4`,children:[(0,z.jsxs)(`span`,{className:`text-sm text-gray-500`,children:[`Showing `,n.length,` photo`,n.length!==1&&`s`]}),(0,z.jsxs)(Bw,{variant:`ghost`,size:`sm`,onClick:d,className:`h-8 text-gray-500 hover:text-gray-900`,children:[(0,z.jsx)(zo,{className:`w-3 h-3 mr-2`}),`Refresh`]})]}),(0,z.jsx)(`div`,{className:`grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-4`,children:n.map(e=>(0,z.jsxs)(`div`,{className:`group relative bg-white border border-gray-200 rounded-lg overflow-hidden shadow-sm hover:shadow-md transition-shadow`,children:[(0,z.jsxs)(`div`,{className:`aspect-square bg-gray-100 relative`,children:[(0,z.jsx)(`img`,{src:e.thumbnail_url||e.image_url,alt:e.caption||`Town photo`,className:`w-full h-full object-cover`,loading:`lazy`,onError:e=>{e.target.onerror=null,e.target.src=`https://placehold.co/400x400?text=Image+Error`}}),(0,z.jsx)(`div`,{className:`absolute inset-0 bg-black/0 group-hover:bg-black/10 transition-colors`})]}),(0,z.jsxs)(`div`,{className:`p-3`,children:[(0,z.jsx)(`p`,{className:`text-xs text-gray-500 truncate mb-2`,title:e.caption,children:e.caption||`No caption`}),(0,z.jsxs)(fTe,{children:[(0,z.jsx)(pTe,{asChild:!0,children:(0,z.jsx)(Bw,{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===e.id,children:c===e.id?(0,z.jsx)(wo,{className:`w-3 h-3 animate-spin`}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(Qo,{className:`w-3 h-3 mr-1.5`}),`Delete`]})})}),(0,z.jsxs)(K9,{children:[(0,z.jsxs)(q9,{children:[(0,z.jsx)(Y9,{children:`Delete this photo?`}),(0,z.jsx)(X9,{children:`This action cannot be undone. This will permanently remove the photo from the gallery.`})]}),(0,z.jsxs)(J9,{children:[(0,z.jsx)(Q9,{children:`Cancel`}),(0,z.jsx)(Z9,{onClick:()=>f(e),className:`bg-red-600 hover:bg-red-700 text-white`,children:`Delete Photo`})]})]})]})]})]},e.id))})]}):(0,z.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:[(0,z.jsx)(mo,{className:`w-12 h-12 mb-3 opacity-50`}),(0,z.jsx)(`p`,{children:`Select a town to manage photos`})]})},$9=async(e=`Astoria`)=>{console.group(`🔍 [Tide Debugger] Executing full trace for: ${e}`);let 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{let n=OM(e);if(t.stationPath=n,console.log(`[Step 1] Resolved Mapping -> Path: ${n}`),!n)throw Error(`Station path resolution failed.`);console.log(`[Step 2] Fetching from Edge Function...`);let r=performance.now(),i=await u6(n),a=(performance.now()-r).toFixed(2);t.apiResponse={source:i.source,timestamp:i.timestamp,durationMs:a},console.log(`[Step 2] Response received in ${a}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(e){console.error(`❌ Critical failure in debugger:`,e),t.errors.push(e.message)}finally{console.groupEnd()}return t};typeof window<`u`&&(window.testTideDebugFlow=$9);var gTe=async()=>{let e=[`Astoria`,`Newport`,`Bandon`,`Coos Bay`,`Lincoln City`];console.group(`⏱️ [Time Verification] Auditing Multiple Towns`);let t=[];for(let n of e){console.log(`Testing ${n}...`);try{let e=await $9(n);t.push({town:n,success:e.success,path:e.stationPath,sampleData:e.parsedData?e.parsedData.slice(0,2):null,errors:e.errors})}catch(e){t.push({town:n,success:!1,errors:[e.message]})}}return console.log(`[Time Verification] Final Report:`,t),console.groupEnd(),t},_Te=()=>{let[e,t]=(0,y.useState)(!1),[n,r]=(0,y.useState)(null),[i,a]=(0,y.useState)(null),{toast:o}=Of();return(0,z.jsxs)(`div`,{className:`bg-white p-6 rounded-xl border border-gray-200 shadow-sm space-y-6`,children:[(0,z.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:[(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`h2`,{className:`text-xl font-bold text-gray-800 flex items-center gap-2`,children:[(0,z.jsx)(ga,{className:`w-5 h-5 text-indigo-500`}),` Tide Time & Offset Diagnostic`]}),(0,z.jsx)(`p`,{className:`text-sm text-gray-500 mt-1`,children:`Investigate 45-60 min offset issues`})]}),(0,z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,z.jsxs)(Bw,{onClick:async()=>{t(!0),o({title:`Running Diagnostics`,description:`Testing Astoria configuration...`});try{let e=await $9(`Astoria`);r(e),o({title:`Diagnostics Complete`,description:`See results below.`})}catch(e){o({title:`Diagnostic Failed`,description:e.message,variant:`destructive`})}t(!1)},disabled:e,variant:`outline`,size:`sm`,className:`gap-2`,children:[(0,z.jsx)(Ro,{className:`w-4 h-4 ${e?`animate-spin`:``}`}),` Run Astoria Test`]}),(0,z.jsx)(Bw,{onClick:async()=>{t(!0),o({title:`Verifying Multiple Towns`,description:`Testing across the coast...`});try{let e=await gTe();a(e),o({title:`Verification Complete`,description:`Multi-town data fetched.`})}catch(e){o({title:`Verification Failed`,description:e.message,variant:`destructive`})}t(!1)},disabled:e,variant:`secondary`,size:`sm`,className:`gap-2`,children:`Verify All Towns`})]})]}),n&&(0,z.jsxs)(`div`,{className:`space-y-4`,children:[(0,z.jsx)(`h3`,{className:`font-semibold text-lg border-b pb-2`,children:`Astoria Report`}),(0,z.jsxs)(`div`,{className:`grid grid-cols-2 gap-4 text-sm`,children:[(0,z.jsxs)(`div`,{className:`p-3 bg-gray-50 rounded-lg border border-gray-100`,children:[(0,z.jsx)(`span`,{className:`text-gray-500 block mb-1`,children:`Status`}),n.success?(0,z.jsxs)(`span`,{className:`text-green-600 font-medium flex items-center`,children:[(0,z.jsx)(Ka,{className:`w-4 h-4 mr-1`}),` Success`]}):(0,z.jsxs)(`span`,{className:`text-red-600 font-medium flex items-center`,children:[(0,z.jsx)(qa,{className:`w-4 h-4 mr-1`}),` Failed`]})]}),(0,z.jsxs)(`div`,{className:`p-3 bg-gray-50 rounded-lg border border-gray-100`,children:[(0,z.jsx)(`span`,{className:`text-gray-500 block mb-1`,children:`Station Path`}),(0,z.jsx)(`span`,{className:`font-mono text-xs`,children:n.stationPath})]})]}),(0,z.jsxs)(`div`,{className:`bg-slate-900 text-green-400 p-4 rounded-lg overflow-x-auto text-xs font-mono`,children:[(0,z.jsx)(`p`,{className:`text-white mb-2`,children:`// Raw Parsed Output (Look at times carefully):`}),(0,z.jsx)(`pre`,{children:JSON.stringify(n.parsedData,null,2)})]}),n.errors?.length>0&&(0,z.jsxs)(`div`,{className:`bg-red-50 p-4 rounded-lg text-sm text-red-700`,children:[(0,z.jsx)(`strong`,{children:`Errors:`}),(0,z.jsx)(`ul`,{className:`list-disc pl-5 mt-2`,children:n.errors.map((e,t)=>(0,z.jsx)(`li`,{children:e},t))})]})]}),i&&(0,z.jsxs)(`div`,{className:`space-y-4`,children:[(0,z.jsx)(`h3`,{className:`font-semibold text-lg border-b pb-2`,children:`Multi-Town Verification`}),(0,z.jsx)(`div`,{className:`overflow-x-auto`,children:(0,z.jsxs)(`table`,{className:`w-full text-sm text-left`,children:[(0,z.jsx)(`thead`,{className:`bg-gray-50 text-gray-500 uppercase`,children:(0,z.jsxs)(`tr`,{children:[(0,z.jsx)(`th`,{className:`px-4 py-2`,children:`Town`}),(0,z.jsx)(`th`,{className:`px-4 py-2`,children:`Status`}),(0,z.jsx)(`th`,{className:`px-4 py-2`,children:`First Tide Time`})]})}),(0,z.jsx)(`tbody`,{children:i.map((e,t)=>(0,z.jsxs)(`tr`,{className:`border-b`,children:[(0,z.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:e.town}),(0,z.jsx)(`td`,{className:`px-4 py-2`,children:e.success?(0,z.jsx)(`span`,{className:`text-green-600`,children:`Valid`}):(0,z.jsx)(`span`,{className:`text-red-600`,children:`Error`})}),(0,z.jsx)(`td`,{className:`px-4 py-2 font-mono`,children:e.sampleData?.[0]?.time||`N/A`})]},t))})]})})]}),!n&&!i&&(0,z.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.`})]})},vTe=async()=>{let 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{let{data:t,error:n}=await Xd.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){let{error:n}=await Xd.from(`town_descriptions`).update({description:e}).eq(`id`,t.id);return n?(console.error(`Error updating Waldport description:`,n.message),{success:!1,error:n.message}):(console.log(`Successfully updated Waldport description.`),{success:!0,message:`Waldport description updated successfully!`})}{let{error:t}=await Xd.from(`town_descriptions`).insert([{town_name:`Waldport`,description:e}]);return t?(console.error(`Error inserting Waldport description:`,t.message),{success:!1,error:t.message}):(console.log(`Successfully inserted new Waldport description.`),{success:!0,message:`New Waldport description created successfully!`})}}catch(e){return console.error(`Unexpected error updating Waldport description:`,e),{success:!1,error:e.message}}},yTe=[`Astoria`,`Newport`,`Florence`,`Coos Bay`,`Lincoln City`,`Tillamook`,`Gold Beach`],bTe=async()=>{console.group(`🌊 [Tide Data Verification] Starting Diagnostics...`);let e=[];for(let t of yTe)try{let n=OM(t);console.log(`Testing ${t} (Path: ${n})...`);let r=await u6(n),i=r.source.includes(`live`)||r.source.includes(`cached`),a=r.tides&&r.tides.length>0,o={town:t,path:n,source:r.source,isLive:i,success:i&&a,recordCount:r.tides?.length||0,error:r.error||null,timestamp:r.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},xTe=()=>{let{logout:e}=Qd(),t=F(),{toast:n}=Of(),[r,i]=(0,y.useState)(``),[a,o]=(0,y.useState)(0),[s,c]=(0,y.useState)(!1),[l,u]=(0,y.useState)([]),[d,f]=(0,y.useState)(!1);(0,y.useEffect)(()=>{g()},[]);let p=()=>{e(),t(`/admin/login`)},m=()=>{o(e=>e+1)},h=async()=>{c(!0),n({title:`Running update...`,description:`Updating the Waldport town description.`});let e=await vTe();e.success?n({title:`Success!`,description:`Waldport description updated successfully.`}):n({title:`Update Failed`,description:e.error,variant:`destructive`}),c(!1)},g=async()=>{f(!0),n({title:`Verifying Tide Sources`,description:`Testing connections to tides.net via Edge Function...`});let e=await bTe();u(e),n({title:`Verification Complete`,description:`Tide source status updated.`}),f(!1)},_=Object.entries(Y).sort(([,e],[,t])=>e.name.localeCompare(t.name));return(0,z.jsxs)(`div`,{className:`min-h-screen bg-gray-50 font-sans`,children:[(0,z.jsx)(jS,{}),(0,z.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 py-8`,children:[(0,z.jsxs)(`div`,{className:`flex flex-col md:flex-row justify-between items-start md:items-center mb-8 gap-4`,children:[(0,z.jsxs)(`div`,{children:[(0,z.jsxs)(`h1`,{className:`text-3xl font-bold text-gray-900 flex items-center gap-2`,children:[(0,z.jsx)(bo,{className:`w-8 h-8 text-[#2d5016]`}),` Admin Dashboard`]}),(0,z.jsx)(`p`,{className:`text-gray-500 mt-1`,children:`Manage content and check system status`})]}),(0,z.jsxs)(Bw,{onClick:p,variant:`outline`,className:`flex items-center gap-2 border-red-200 text-red-700 hover:bg-red-50 hover:text-red-800`,children:[(0,z.jsx)(Eo,{className:`w-4 h-4`}),` Sign Out`]})]}),(0,z.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-8`,children:[(0,z.jsxs)(`div`,{className:`lg:col-span-1 space-y-6`,children:[(0,z.jsxs)(`div`,{className:`bg-white p-6 rounded-xl border border-gray-200 shadow-sm`,children:[(0,z.jsx)(`label`,{className:`block text-sm font-medium text-gray-700 mb-2`,children:`Select Town to Manage`}),(0,z.jsxs)(`select`,{value:r,onChange:e=>i(e.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:[(0,z.jsx)(`option`,{value:``,children:`-- Choose a Town --`}),_.map(([e,t])=>(0,z.jsx)(`option`,{value:t.name,children:t.name},e))]})]}),(0,z.jsx)(kwe,{townName:r,onUploadComplete:m}),(0,z.jsxs)(`div`,{className:`bg-white p-6 rounded-xl border border-gray-200 shadow-sm`,children:[(0,z.jsxs)(`h3`,{className:`text-lg font-semibold text-gray-900 mb-4 flex items-center gap-2`,children:[(0,z.jsx)(fs,{className:`w-5 h-5 text-gray-500`}),` Quick Actions`]}),(0,z.jsx)(`div`,{className:`space-y-3`,children:(0,z.jsx)(Bw,{onClick:h,disabled:s,variant:`outline`,className:`w-full justify-start`,children:`Update Waldport Description`})})]})]}),(0,z.jsxs)(`div`,{className:`lg:col-span-2 space-y-6`,children:[(0,z.jsx)(_Te,{}),(0,z.jsxs)(`div`,{className:`bg-white p-6 rounded-xl border border-gray-200 shadow-sm`,children:[(0,z.jsxs)(`div`,{className:`flex justify-between items-center mb-6 border-b border-gray-100 pb-4`,children:[(0,z.jsxs)(`h2`,{className:`text-xl font-bold text-gray-800 flex items-center gap-2`,children:[(0,z.jsx)(ss,{className:`w-5 h-5 text-blue-500`}),` Tide Data Status (tides.net)`]}),(0,z.jsxs)(Bw,{onClick:g,disabled:d,variant:`outline`,size:`sm`,className:`gap-2`,children:[(0,z.jsx)(zo,{className:`w-4 h-4 ${d?`animate-spin`:``}`}),` Refresh Status`]})]}),(0,z.jsx)(`div`,{className:`overflow-x-auto`,children:(0,z.jsxs)(`table`,{className:`w-full text-sm text-left`,children:[(0,z.jsx)(`thead`,{className:`text-xs text-gray-500 uppercase bg-gray-50`,children:(0,z.jsxs)(`tr`,{children:[(0,z.jsx)(`th`,{className:`px-4 py-3`,children:`Town`}),(0,z.jsx)(`th`,{className:`px-4 py-3`,children:`Source`}),(0,z.jsx)(`th`,{className:`px-4 py-3`,children:`Status`}),(0,z.jsx)(`th`,{className:`px-4 py-3 text-right`,children:`Last Updated`})]})}),(0,z.jsx)(`tbody`,{children:l.length>0?l.map((e,t)=>(0,z.jsxs)(`tr`,{className:`border-b last:border-0 hover:bg-gray-50`,children:[(0,z.jsx)(`td`,{className:`px-4 py-3 font-medium text-gray-900`,children:e.town}),(0,z.jsx)(`td`,{className:`px-4 py-3 text-gray-600`,children:e.source}),(0,z.jsx)(`td`,{className:`px-4 py-3`,children:e.success?(0,z.jsxs)(`span`,{className:`flex items-center gap-1 text-green-600`,children:[(0,z.jsx)(Ka,{className:`w-4 h-4`}),` Live`]}):(0,z.jsxs)(`span`,{className:`flex items-center gap-1 text-amber-600`,children:[(0,z.jsx)(ts,{className:`w-4 h-4`}),` Fallback`]})}),(0,z.jsx)(`td`,{className:`px-4 py-3 text-right text-gray-500`,children:e.timestamp?new Date(e.timestamp).toLocaleTimeString():`N/A`})]},t)):(0,z.jsx)(`tr`,{children:(0,z.jsx)(`td`,{colSpan:`4`,className:`px-4 py-8 text-center text-gray-500`,children:`Run verification to see tide data status.`})})})]})})]}),(0,z.jsxs)(`div`,{className:`bg-white p-6 rounded-xl border border-gray-200 shadow-sm`,children:[(0,z.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:[(0,z.jsx)(`span`,{children:`Gallery Photos`}),r&&(0,z.jsx)(`span`,{className:`text-gray-500 font-normal text-base bg-gray-100 px-3 py-1 rounded-full`,children:r})]}),(0,z.jsx)(hTe,{townName:r,refreshTrigger:a})]})]})]})]})]})},STe=({children:e})=>{let{isAuthenticated:t,loading:n}=Qd(),r=Ze();return n?(0,z.jsxs)(`div`,{className:`min-h-screen flex flex-col items-center justify-center bg-gray-50`,children:[(0,z.jsx)(wo,{className:`w-8 h-8 text-[#2d5016] animate-spin mb-4`}),(0,z.jsx)(`p`,{className:`text-gray-500 font-medium`,children:`Verifying access...`})]}):t?e:(0,z.jsx)(Ct,{to:`/admin/login`,state:{from:r},replace:!0})},CTe=()=>((0,y.useEffect)(()=>(ap(!0),()=>ap(!1)),[]),(0,z.jsxs)(`div`,{className:`min-h-screen bg-white flex flex-col font-sans`,children:[(0,z.jsx)(J,{children:(0,z.jsx)(`title`,{children:`Page Not Found | Oregon Coast Travel Guide`})}),(0,z.jsx)(jS,{}),(0,z.jsxs)(`main`,{className:`flex-grow flex flex-col items-center justify-center p-4 text-center py-20 bg-slate-50`,children:[(0,z.jsx)(`h1`,{className:`text-5xl md:text-7xl font-bold text-slate-900 tracking-tight mb-4`,children:`Page Not Found`}),(0,z.jsx)(`div`,{className:`h-1.5 w-24 bg-blue-500 rounded-full mb-8 shadow-sm`}),(0,z.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.`}),(0,z.jsx)(dn,{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`})]}),(0,z.jsx)(NS,{})]})),wTe=()=>((0,y.useEffect)(()=>{window.location.replace(`https://oregoncoastal.com/town/cannon-beach`)},[]),null),TTe=()=>((0,y.useEffect)(()=>{window.location.replace(`https://oregoncoastal.com/town/pacific-city`)},[]),null),ETe=()=>{let e=Ze();return(0,y.useEffect)(()=>{op();let t=Gf(e.pathname),n=`https://horizons-cdn.hostinger.com/91649f3d-f52f-4f57-93dc-6dffdfd2021c/ef2a8c8e278e0a6afb62c1ed916892d4.jpg`,r=`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=r,Xf(t),Zf(i),Qf(t),$f(r),ep(i),tp(n),np(r),rp(i),ip(n)},[e.pathname]),null};function DTe(){return(0,z.jsx)(gee,{children:(0,z.jsx)($d,{children:(0,z.jsx)(gf,{children:(0,z.jsx)(Hf,{children:(0,z.jsxs)(ln,{children:[(0,z.jsx)(ETe,{}),(0,z.jsx)(Tx,{}),(0,z.jsx)(kx,{}),(0,z.jsxs)(Tt,{children:[(0,z.jsx)(I,{path:`/`,element:(0,z.jsx)(one,{})}),(0,z.jsx)(I,{path:`/map`,element:(0,z.jsx)(sne,{})}),(0,z.jsx)(I,{path:`/maps`,element:(0,z.jsx)(Pw,{})}),(0,z.jsx)(I,{path:`/hotels-map`,element:(0,z.jsx)(Pw,{})}),(0,z.jsx)(I,{path:`/host`,element:(0,z.jsx)(xA,{})}),(0,z.jsx)(I,{path:`/ruby`,element:(0,z.jsx)(wTe,{})}),(0,z.jsx)(I,{path:`/kruseroot`,element:(0,z.jsx)(TTe,{})}),(0,z.jsx)(I,{path:`/hotel/:id`,element:(0,z.jsx)(pj,{})}),(0,z.jsx)(I,{path:`/admin/login`,element:(0,z.jsx)(Owe,{})}),(0,z.jsx)(I,{path:`/admin`,element:(0,z.jsx)(STe,{children:(0,z.jsx)(xTe,{})})}),(0,z.jsx)(I,{path:`/north-coast`,element:(0,z.jsx)(NA,{})}),(0,z.jsx)(I,{path:`/central-coast`,element:(0,z.jsx)(FA,{})}),(0,z.jsx)(I,{path:`/south-coast`,element:(0,z.jsx)(RA,{})}),(0,z.jsx)(I,{path:`/seal-rock`,element:(0,z.jsx)(Dwe,{})}),(0,z.jsx)(I,{path:`/town/arch-cape`,element:(0,z.jsx)(Fpe,{})}),(0,z.jsx)(I,{path:`/town/astoria`,element:(0,z.jsx)(ime,{})}),(0,z.jsx)(I,{path:`/town/bandon`,element:(0,z.jsx)(hme,{})}),(0,z.jsx)(I,{path:`/town/bay-city`,element:(0,z.jsx)(kme,{})}),(0,z.jsx)(I,{path:`/town/brookings`,element:(0,z.jsx)(Gme,{})}),(0,z.jsx)(I,{path:`/town/cannon-beach`,element:(0,z.jsx)($me,{})}),(0,z.jsx)(I,{path:`/town/charleston`,element:(0,z.jsx)(fhe,{})}),(0,z.jsx)(I,{path:`/town/coos-bay`,element:(0,z.jsx)(khe,{})}),(0,z.jsx)(I,{path:`/town/depoe-bay`,element:(0,z.jsx)(Hhe,{})}),(0,z.jsx)(I,{path:`/town/dune-city`,element:(0,z.jsx)(rge,{})}),(0,z.jsx)(I,{path:`/town/florence`,element:(0,z.jsx)(gge,{})}),(0,z.jsx)(I,{path:`/town/gardiner`,element:(0,z.jsx)(Age,{})}),(0,z.jsx)(I,{path:`/town/garibaldi`,element:(0,z.jsx)(Uge,{})}),(0,z.jsx)(I,{path:`/town/gearhart`,element:(0,z.jsx)(t_e,{})}),(0,z.jsx)(I,{path:`/town/gleneden-beach`,element:(0,z.jsx)(m_e,{})}),(0,z.jsx)(I,{path:`/town/gold-beach`,element:(0,z.jsx)(k_e,{})}),(0,z.jsx)(I,{path:`/town/harbor`,element:(0,z.jsx)(H_e,{})}),(0,z.jsx)(I,{path:`/town/lakeside`,element:(0,z.jsx)(rve,{})}),(0,z.jsx)(I,{path:`/town/langlois`,element:(0,z.jsx)(vve,{})}),(0,z.jsx)(I,{path:`/town/lincoln-city`,element:(0,z.jsx)(Nve,{})}),(0,z.jsx)(I,{path:`/town/manzanita`,element:(0,z.jsx)(Wve,{})}),(0,z.jsx)(I,{path:`/town/nehalem`,element:(0,z.jsx)(nye,{})}),(0,z.jsx)(I,{path:`/town/neskowin`,element:(0,z.jsx)(gye,{})}),(0,z.jsx)(I,{path:`/town/netarts`,element:(0,z.jsx)(jye,{})}),(0,z.jsx)(I,{path:`/town/newport`,element:(0,z.jsx)(Uye,{})}),(0,z.jsx)(I,{path:`/town/north-bend`,element:(0,z.jsx)(ibe,{})}),(0,z.jsx)(I,{path:`/town/oceanside`,element:(0,z.jsx)(ybe,{})}),(0,z.jsx)(I,{path:`/town/otter-rock`,element:(0,z.jsx)(Pbe,{})}),(0,z.jsx)(I,{path:`/town/pacific-city`,element:(0,z.jsx)(exe,{})}),(0,z.jsx)(I,{path:`/town/port-orford`,element:(0,z.jsx)(mxe,{})}),(0,z.jsx)(I,{path:`/town/reedsport`,element:(0,z.jsx)(Oxe,{})}),(0,z.jsx)(I,{path:`/town/rockaway-beach`,element:(0,z.jsx)(Hxe,{})}),(0,z.jsx)(I,{path:`/town/seaside`,element:(0,z.jsx)(tSe,{})}),(0,z.jsx)(I,{path:`/town/south-beach`,element:(0,z.jsx)(mSe,{})}),(0,z.jsx)(I,{path:`/town/tillamook`,element:(0,z.jsx)(kSe,{})}),(0,z.jsx)(I,{path:`/town/toledo`,element:(0,z.jsx)(HSe,{})}),(0,z.jsx)(I,{path:`/town/tolovana-park`,element:(0,z.jsx)($Se,{})}),(0,z.jsx)(I,{path:`/town/waldport`,element:(0,z.jsx)(hCe,{})}),(0,z.jsx)(I,{path:`/town/warrenton`,element:(0,z.jsx)(OCe,{})}),(0,z.jsx)(I,{path:`/town/wheeler`,element:(0,z.jsx)(HCe,{})}),(0,z.jsx)(I,{path:`/town/winchester-bay`,element:(0,z.jsx)(nwe,{})}),(0,z.jsx)(I,{path:`/town/yachats`,element:(0,z.jsx)(vwe,{})}),(0,z.jsx)(I,{path:`*`,element:(0,z.jsx)(CTe,{})})]}),(0,z.jsx)(Os,{})]})})})})})}var OTe=async()=>(console.warn(`Prerender.io token not found. Skipping client-side bot intercept.`),!1);(async()=>{await OTe()||Sn.createRoot(document.getElementById(`root`)).render((0,z.jsx)(DTe,{}))})();