1import{A as e,C as t,M as n,P as r,T as i,k as a}from"./cities-B-5P1UT8.js";import{f as o}from"./projects.functions-DcL09nHv.js";import{D as s,E as c,T as l,_ as u,a as d,b as f,c as p,g as m,m as h,v as g}from"./Footer-994ksRnk.js";var _=r(n(),1),v=e(),y=_.createContext(void 0),b=e=>{let t=_.useContext(y);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},x=({client:e,children:t})=>(_.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),(0,v.jsx)(y.Provider,{value:e,children:t})),S={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},C=new class{#e=S;setTimeoutProvider(e){this.#e=e}setTimeout(e,t){return this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function ee(e){setTimeout(e,0)}var te=typeof window>`u`||`Deno`in globalThis;function w(){}function ne(e,t){return typeof e==`function`?e(t):e}function re(e){return typeof e==`number`&&e>=0&&e!==1/0}function ie(e,t){return Math.max(e+(t||0)-Date.now(),0)}function T(e,t){return typeof e==`function`?e(t):e}function ae(e,t){let{type:n=`all`,exact:r,fetchStatus:i,predicate:a,queryKey:o,stale:s}=e;if(o){if(r){if(t.queryHash!==E(o,t.options))return!1}else if(!O(t.queryKey,o))return!1}if(n!==`all`){let e=t.isActive();if(n===`active`&&!e||n===`inactive`&&e)return!1}return!(typeof s==`boolean`&&t.isStale()!==s||i&&i!==t.state.fetchStatus||a&&!a(t))}function oe(e,t){let{exact:n,status:r,predicate:i,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(D(t.options.mutationKey)!==D(a))return!1}else if(!O(t.options.mutationKey,a))return!1}return!(r&&t.state.status!==r||i&&!i(t))}function E(e,t){return(t?.queryKeyHashFn||D)(e)}function D(e){return JSON.stringify(e,(e,t)=>k(t)?Object.keys(t).sort().reduce((e,n)=>(e[n]=t[n],e),{}):t)}function O(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(e&&t&&typeof e==`object`&&typeof t==`object`){if(Array.isArray(e)&&Array.isArray(t)){for(let n=0;n<t.length;n++)if(!O(e[n],t[n]))return!1;return!0}let n=Object.keys(t);for(let r of n)if(!O(e[r],t[r]))return!1;return!0}return!1}var se=Object.prototype.hasOwnProperty;function ce(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=ue(e)&&ue(t);if(!r&&!(k(e)&&k(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:se.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=ce(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function le(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function ue(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function k(e){if(!de(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!de(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function de(e){return Object.prototype.toString.call(e)===`[object Object]`}function fe(e){return new Promise(t=>{C.setTimeout(t,e)})}function pe(e,t,n){return typeof n.structuralSharing==`function`?n.structuralSharing(e,t):n.structuralSharing===!1?t:ce(e,t)}function me(e,t,n=0){let r=[...e,t];return n&&r.length>n?r.slice(1):r}function he(e,t,n=0){let r=[t,...e];return n&&r.length>n?r.slice(0,-1):r}var A=Symbol();function ge(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===A?()=>Promise.reject(Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}function _e(e,t){return typeof e==`function`?e(...t):!!e}function ve(e,t,n){let r=!1,i;return Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(i??=t(),r?i:(r=!0,i.aborted?n():i.addEventListener(`abort`,n,{once:!0}),i))}),e}var ye=()=>te,j=()=>ye(),M=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},N=new class extends M{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();
1this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},be=ee;function xe(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=be,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var P=xe(),F=new class extends M{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function Se(e){return Math.min(1e3*2**e,3e4)}function I(e){return(e??`online`)!==`online`||F.isOnline()}var L=class extends Error{constructor(e){super(`CancelledError`),this.revert=e?.revert,this.silent=e?.silent}};function R(e){let t=!1,n=0,r,i=`pending`,a,o,s=new Promise((e,t)=>{a=e,o=t});s.catch(w);let c=()=>i!==`pending`,l=t=>{if(!c()){let n=new L(t);h(n),e.onCancel?.(n)}},u=()=>{t=!0},d=()=>{t=!1},f=()=>N.isFocused()&&(e.networkMode===`always`||F.isOnline())&&e.canRun(),p=()=>I(e.networkMode)&&e.canRun(),m=e=>{c()||(r?.(),i=`resolved`,a(e))},h=e=>{c()||(r?.(),i=`rejected`,o(e))},g=()=>new Promise(t=>{r=e=>{(c()||f())&&t(e)},e.onPause?.()}).then(()=>{r=void 0,c()||e.onContinue?.()}),_=()=>{if(c())return;let r,i=n===0?e.initialPromise:void 0;try{r=i??e.fn()}catch(e){r=Promise.reject(e)}Promise.resolve(r).then(m).catch(r=>{if(c())return;let i=e.retry??(j()?0:3),a=e.retryDelay??Se,o=typeof a==`function`?a(n,r):a,s=i===!0||typeof i==`number`&&n<i||typeof i==`function`&&i(n,r);if(t||!s){h(r);return}n++,e.onFail?.(n,r),fe(o).then(()=>f()?void 0:g()).then(()=>{t?h(r):_()})})};return{promise:s,status:()=>i,cancel:l,continue:()=>(r?.(),s),cancelRetry:u,continueRetry:d,canStart:p,start:()=>(p()?_():g().then(_),s)}}var Ce=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),re(this.gcTime)&&(this.#e=C.setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(j()?1/0:3e5))}clearGcTimeout(){this.#e!==void 0&&(C.clearTimeout(this.#e),this.#e=void 0)}};function we(e){return{onFetch:(t,n)=>{let r=t.options,i=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],o=t.state.data?.pageParams||[],s={pages:[],pageParams:[]},c=0,l=async()=>{let n=!1,l=e=>{ve(e,()=>t.signal,()=>n=!0)},u=ge(t.options,t.fetchOptions),d=async(e,r,i)=>{if(n)return Promise.reject(t.signal.reason);if(r==null&&e.pages.length)return Promise.resolve(e);let a=(()=>{let e={client:t.client,queryKey:t.queryKey,pageParam:r,direction:i?`backward`:`forward`,meta:t.options.meta};return l(e),e})(),o=await u(a),{maxPages:s}=t.options,c=i?he:me;return{pages:c(e.pages,o,s),pageParams:c(e.pageParams,r,s)}};if(i&&a.length){let e=i===`backward`,t=e?Ee:Te,n={pages:a,pageParams:o};s=await d(n,t(r,n),e)}else{let t=e??a.length;do{let e=c===0?o[0]??r.initialPageParam:Te(r,s);if(c>0&&e==null)break;s=await d(s,e),c++}while(c<t)}return s};t.fetchFn=t.options.persister?()=>t.options.persister?.(l,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):l}}}function Te(e,{pages:t,pageParams:n}){let r=t.length-1;return t.length>0?e.getNextPageParam(t[r],t,n[r],n):void 0}function Ee(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var De=class extends Ce{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e){super(),this.#s=!1,this.#o=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#i=e.client,this.#r=this.#i.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#t=Ae(this.options),this.state=e.state??this.#t,this.scheduleGc()}get meta(){return this.options.meta}get queryType(){return this.#e}get promise(){return this.#a?.promise}setOptions(e){if(this.options={...this.#o,...e},e?._type&&(this.#e=e._type),this.updateGcTime(this.options.gcTime),this.state&&this.state.data===void 0){let e=Ae(this.options);e.data!==void 0&&(this.setState(ke(e.data,e.dataUpdatedAt)),this.#t=e)}}optionalRemove(){!this.observers.length&&this.state.fetchStatus===`idle`&&this.#r.remove(this)}setData(e,t){let n=pe(this.state.data,e,this.options);return this.#c({data:n,type:`success`,dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e){this.#c({type:`setState`,state:e})}cancel(e){let t=this.#a?.promise;return this.#a?.cancel(e),t?t.then(w).catch(w):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}get resetState(){return this.#t}reset(){this.destroy(),this.setState(this.resetState)}isActive(){return this.observers.some(e=>T(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===A||!this.isFetched()}isFetched(){return this.state.dataUpdateCount+this.state.errorUpdate
1Count>0}isStatic(){return this.getObserversCount()>0&&this.observers.some(e=>T(e.options.staleTime,this)===`static`)}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e===`static`?!1:this.state.isInvalidated?!0:!ie(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(e=>e.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#a?.continue()}onOnline(){this.observers.find(e=>e.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#a?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#r.notify({type:`observerAdded`,query:this,observer:e}))}removeObserver(e){let t=this.observers.indexOf(e);t!==-1&&(this.observers.splice(t,1),this.observers.length||(this.#a&&(this.#s||this.state.fetchStatus===`paused`&&this.state.status===`pending`?this.#a.cancel({revert:!0}):this.#a.cancelRetry()),this.scheduleGc()),this.#r.notify({type:`observerRemoved`,query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#c({type:`invalidate`})}async fetch(e,t){if(this.state.fetchStatus!==`idle`&&this.#a?.status()!==`rejected`){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#a)return this.#a.continueRetry(),this.#a.promise}if(e&&this.setOptions(e),!this.options.queryFn){let e=this.observers.find(e=>e.options.queryFn);e&&this.setOptions(e.options)}let n=new AbortController,r=e=>{Object.defineProperty(e,"signal",{enumerable:!0,get:()=>(this.#s=!0,n.signal)})},i=()=>{let e=ge(this.options,t),n=(()=>{let e={client:this.#i,queryKey:this.queryKey,meta:this.meta};return r(e),e})();return this.#s=!1,this.options.persister?this.options.persister(e,n,this):e(n)},a=(()=>{let e={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#i,state:this.state,fetchFn:i};return r(e),e})();(this.#e===`infinite`?we(this.options.pages):this.options.behavior)?.onFetch(a,this),this.#n=this.state,(this.state.fetchStatus===`idle`||this.state.fetchMeta!==a.fetchOptions?.meta)&&this.#c({type:`fetch`,meta:a.fetchOptions?.meta});let o=this.#a=R({initialPromise:t?.initialPromise,fn:a.fetchFn,onCancel:e=>{e instanceof L&&e.revert&&this.setState({...this.#n,fetchStatus:`idle`}),n.abort()},onFail:(e,t)=>{this.#c({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#c({type:`pause`})},onContinue:()=>{this.#c({type:`continue`})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0});try{let e=await o.start();if(e===void 0)throw Error(`${this.queryHash} data is undefined`);return this.setData(e),this.#r.config.onSuccess?.(e,this),this.#r.config.onSettled?.(e,this.state.error,this),e}catch(e){if(e instanceof L){if(e.silent)return this.#a.promise;if(e.revert){if(this.state.data===void 0)throw e;return this.state.data}}throw this.#c({type:`error`,error:e}),this.#r.config.onError?.(e,this),this.#r.config.onSettled?.(this.state.data,e,this),e}finally{this.#a===o&&(this.#a=void 0),this.scheduleGc()}}#c(e){let t=t=>{switch(e.type){case`failed`:return{...t,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case`pause`:return{...t,fetchStatus:`paused`};case`continue`:return{...t,fetchStatus:`fetching`};case`fetch`:return{...t,...Oe(t.data,this.options),fetchMeta:e.meta??null};case`success`:let n={...t,...ke(e.data,e.dataUpdatedAt),dataUpdateCount:t.dataUpdateCount+1,...!e.manual&&{fetchStatus:`idle`,fetchFailureCount:0,fetchFailureReason:null}};return this.#n=e.manual?n:void 0,n;case`error`:let r=e.error;return{...t,error:r,errorUpdateCount:t.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:t.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:`idle`,status:`error`,isInvalidated:!0};case`invalidate`:return{...t,isInvalidated:!0};case`setState`:return{...t,...e.state}}};this.state=t(this.state),P.batch(()=>{this.observers.slice().forEach(e=>{e.onQueryUpdate()}),this.#r.notify({query:this,type:`updated`,action:e})})}};function Oe(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:I(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}function ke(e,t){return{data:e,dataUpdatedAt:t??Date.now(),error:null,isInvalidated:!1,status:`success`}}function Ae(e){let t=typeof e.initialData==`function`?e.initialData():e.initialData,n=t!==void 0,r=n?typeof e.initialDataUpdatedAt==`function`?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?r??Date.now():0,error:null,errorUpdate
1Count:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?`success`:`pending`,fetchStatus:`idle`}}var je=m(`arrow-up-right`,[[`path`,{d:`M7 7h10v10`,key:`1tivn9`}],[`path`,{d:`M7 17 17 7`,key:`1vkiza`}]]),Me=m(`external-link`,[[`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`}]]),Ne=m(`fence`,[[`path`,{d:`M4 3 2 5v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z`,key:`1n2rgs`}],[`path`,{d:`M6 8h4`,key:`utf9t1`}],[`path`,{d:`M6 18h4`,key:`12yh4b`}],[`path`,{d:`m12 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z`,key:`3ha7mj`}],[`path`,{d:`M14 8h4`,key:`1r8wg2`}],[`path`,{d:`M14 18h4`,key:`1t3kbu`}],[`path`,{d:`m20 3-2 2v15c0 .6.4 1 1 1h2c.6 0 1-.4 1-1V5Z`,key:`dfd4e2`}]]),Pe=m(`hammer`,[[`path`,{d:`m15 12-9.373 9.373a1 1 0 0 1-3.001-3L12 9`,key:`1hayfq`}],[`path`,{d:`m18 15 4-4`,key:`16gjal`}],[`path`,{d:`m21.5 11.5-1.914-1.914A2 2 0 0 1 19 8.172v-.344a2 2 0 0 0-.586-1.414l-1.657-1.657A6 6 0 0 0 12.516 3H9l1.243 1.243A6 6 0 0 1 12 8.485V10l2 2h1.172a2 2 0 0 1 1.414.586L18.5 14.5`,key:`15ts47`}]]),Fe=m(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),Ie=m(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),Le=m(`tree-pine`,[[`path`,{d:`m17 14 3 3.3a1 1 0 0 1-.7 1.7H4.7a1 1 0 0 1-.7-1.7L7 14h-.3a1 1 0 0 1-.7-1.7L9 9h-.2A1 1 0 0 1 8 7.3L12 3l4 4.3a1 1 0 0 1-.8 1.7H15l3 3.3a1 1 0 0 1-.7 1.7H17Z`,key:`cpyugq`}],[`path`,{d:`M12 22v-3`,key:`kmzjlo`}]]),Re=Object.defineProperty,z=(e,t)=>Re(e,`name`,{value:t,configurable:!0}),B=`Collapsible`,[ze,Be]=c(B),[Ve,V]=ze(B),He=_.forwardRef(z(function(e,t){let{__scopeCollapsible:n,open:r,defaultOpen:a,disabled:o,onOpenChange:s,...c}=e,[l,d]=u({prop:r,defaultProp:a??!1,onChange:s,caller:B});return(0,v.jsx)(Ve,{scope:n,disabled:o,contentId:p(),open:l,onOpenToggle:_.useCallback(()=>d(e=>!e),[d]),children:(0,v.jsx)(i.div,{"data-state":H(l),"data-disabled":o?``:void 0,...c,ref:t})})},`Collapsible`)),Ue=`CollapsibleTrigger`,We=_.forwardRef(z(function(e,t){let{__scopeCollapsible:n,...r}=e,a=V(Ue,n);return(0,v.jsx)(i.button,{type:`button`,"aria-controls":a.open?a.contentId:void 0,"aria-expanded":a.open||!1,"data-state":H(a.open),"data-disabled":a.disabled?``:void 0,disabled:a.disabled,...r,ref:t,onClick:s(e.onClick,a.onOpenToggle)})},`CollapsibleTrigger`)),Ge=`CollapsibleContent`,Ke=_.forwardRef(z(function(e,t){let{forceMount:n,...r}=e,i=V(Ge,e.__scopeCollapsible);return(0,v.jsx)(g,{present:n||i.open,children:({present:e})=>(0,v.jsx)(qe,{...r,ref:t,present:e})})},`CollapsibleContent`)),qe=_.forwardRef(z(function(e,t){let{__scopeCollapsible:n,present:r,children:o,...s}=e,c=V(Ge,n),[l,u]=_.useState(r),d=_.useRef(null),p=a(t,d),m=_.useRef(0),h=m.current,g=_.useRef(0),y=g.current,b=c.open||l,x=_.useRef(b),S=_.useRef(void 0);return _.useEffect(()=>{let e=requestAnimationFrame(()=>x.current=!1);return()=>cancelAnimationFrame(e)},[]),f(()=>{let e=d.current;if(e){S.current=S.current||{transitionDuration:e.style.transitionDuration,animationName:e.style.animationName},e.style.transitionDuration=`0s`,e.style.animationName=`none`;let t=e.getBoundingClientRect();m.current=t.height,g.current=t.width,x.current||(e.style.transitionDuration=S.current.transitionDuration,e.style.animationName=S.current.animationName),u(r)}},[c.open,r]),(0,v.jsx)(i.div,{"data-state":H(c.open),"data-disabled":c.disabled?``:void 0,id:c.contentId,hidden:!b,...s,ref:p,style:{"--radix-collapsible-content-height":h?`${h}px`:void 0,"--radix-collapsible-content-width":y?`${y}px`:void 0,...e.style},children:b&&o})},`CollapsibleContentImpl`));function H(e){return e?`open`:`closed`}z(H,`getState`);var Je=He,Ye=We,Xe=Ke,Ze=Object.defineProperty,U=(e,t)=>Ze(e,`name`,{value:t,configurable:!0}),W=`Accordion`,Qe=[`Home`,`End`,`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`],[G,$e,et]=l(W),[K,tt]=c(W,[et,Be]),q=Be(),nt=_.forwardRef(U(function(e,t){let{type:n,...r}=e,i=r,a=r;return(0,v.jsx)(G.Provider,{scope:e.__scopeAccordion,children:n===`multiple`?(0,v.jsx)(ct,{...a,ref:t}):(0,v.jsx)(st,{...i,ref:t})})},`Accordion`)),[rt,it]=K(W),[at,ot]=K(W,{collapsible:!1}),st=_.forwardRef(U(function(e,t){let{value:n,defaultValue:r,onValueChange:i=U(()=>{},`onValueChange`),collapsible:a=!1,...o}=e,[s,c]=u({prop:n,defaultProp:r??``,onChange:i,caller:W});return(0,v.jsx)(rt,{scope:e.__scopeAccordion,value:_.useMemo(()=>s?[s]:[],[s]),onItemOpen:c,onItemClose:_.useCallback(()=>a&&c(``),[a,c]),children:(0,v.jsx)(at,{scope:e.__scopeAccordion,collapsible:a,children:(0,v.jsx)(ut,{...o,ref:t})})})},`AccordionImplSingle`)),ct=_.forwardRef(U(function(e,t){let{value:n,defaultValue:r,onValueChange:i=U(()=>{},`onValueChange`),...a}=e,[o,s]=u({prop:n,defaultProp:r??[],onChange:i,caller:W}),c=_.useCallback(e=>s((t=[])=>[...t,e]),[s]),l=_.useCallback(e=>s((t=[])=>t.filter(t=>t!==e)),[s]);return(0,v.jsx)(rt,{scope:e.__scopeAccordion,value:o,onItemOpen:c,onItemClose:l,children:(0,v.jsx)(at,{scope:e.__scopeAccordion,collapsible:!0,children:(0,v.jsx)(ut,{...a,ref:t})})})},`AccordionImplMultiple`)),[lt,J]=K(W),ut=_.forwardRef(U(function(e,t){let{__scopeAccordion:n,disabled:r,dir:o,orientation:c=`vertical`,...l}=e,u=_.useRef(null),f=a(u,t),p=$e(n),m=d(o)===`ltr`,h=s(e.onKeyDown,e=>
1{if(!Qe.includes(e.key))return;let t=e.target,n=p().filter(e=>!e.ref.current?.disabled),r=n.findIndex(e=>e.ref.current===t),i=n.length;if(r===-1)return;e.preventDefault();let a=r,o=i-1,s=U(()=>{a=r+1,a>o&&(a=0)},`moveNext`),l=U(()=>{a=r-1,a<0&&(a=o)},`movePrev`);switch(e.key){case`Home`:a=0;break;case`End`:a=o;break;case`ArrowRight`:c===`horizontal`&&(m?s():l());break;case`ArrowDown`:c===`vertical`&&s();break;case`ArrowLeft`:c===`horizontal`&&(m?l():s());break;case`ArrowUp`:c===`vertical`&&l()}n[a%i].ref.current?.focus()});return(0,v.jsx)(lt,{scope:n,disabled:r,direction:o,orientation:c,children:(0,v.jsx)(G.Slot,{scope:n,children:(0,v.jsx)(i.div,{...l,"data-orientation":c,ref:f,onKeyDown:r?void 0:h})})})},`AccordionImpl`)),Y=`AccordionItem`,[dt,X]=K(Y),ft=_.forwardRef(U(function(e,t){let{__scopeAccordion:n,value:r,...i}=e,a=J(Y,n),o=it(Y,n),s=q(n),c=p(),l=r&&o.value.includes(r)||!1,u=a.disabled||e.disabled;return(0,v.jsx)(dt,{scope:n,open:l,disabled:u,triggerId:c,children:(0,v.jsx)(Je,{"data-orientation":a.orientation,"data-state":Q(l),...s,...i,ref:t,disabled:u,open:l,onOpenChange:e=>{e?o.onItemOpen(r):o.onItemClose(r)}})})},`AccordionItem`)),pt=`AccordionHeader`,mt=_.forwardRef(U(function(e,t){let{__scopeAccordion:n,...r}=e,a=J(W,n),o=X(pt,n);return(0,v.jsx)(i.h3,{"data-orientation":a.orientation,"data-state":Q(o.open),"data-disabled":o.disabled?``:void 0,...r,ref:t})},`AccordionHeader`)),Z=`AccordionTrigger`,ht=_.forwardRef(U(function(e,t){let{__scopeAccordion:n,...r}=e,i=J(W,n),a=X(Z,n),o=ot(Z,n),s=q(n);return(0,v.jsx)(G.ItemSlot,{scope:n,children:(0,v.jsx)(Ye,{"aria-disabled":a.open&&!o.collapsible||void 0,"data-orientation":i.orientation,id:a.triggerId,...s,...r,ref:t})})},`AccordionTrigger`)),gt=`AccordionContent`,_t=_.forwardRef(U(function(e,t){let{__scopeAccordion:n,...r}=e,i=J(W,n),a=X(gt,n),o=q(n);return(0,v.jsx)(Xe,{role:`region`,"aria-labelledby":a.triggerId,"data-orientation":i.orientation,...o,...r,ref:t,style:{"--radix-accordion-content-height":`var(--radix-collapsible-content-height)`,"--radix-accordion-content-width":`var(--radix-collapsible-content-width)`,...e.style}})},`AccordionContent`));function Q(e){return e?`open`:`closed`}U(Q,`getState`);var vt=nt,yt=ft,bt=mt,xt=ht,St=_t,Ct=vt,wt=_.forwardRef(({className:e,...n},r)=>(0,v.jsx)(yt,{ref:r,className:t(`border-b`,e),...n}));wt.displayName=`AccordionItem`;var Tt=_.forwardRef(({className:e,children:n,...r},i)=>(0,v.jsx)(bt,{className:`flex`,children:(0,v.jsxs)(xt,{ref:i,className:t(`flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180`,e),...r,children:[n,(0,v.jsx)(h,{className:`h-4 w-4 shrink-0 transition-transform duration-200`})]})}));Tt.displayName=xt.displayName;var $=_.forwardRef(({className:e,children:n,...r},i)=>(0,v.jsx)(St,{ref:i,className:`overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down`,...r,children:(0,v.jsx)(`div`,{className:t(`pb-4 pt-0`,e),children:n})}));$.displayName=St.displayName;var Et=({cityName:e,reviewsUrl:t,audienceLabel:n,rating:r=`5.0`,reviewCount:i})=>(0,v.jsx)(`section`,{"aria-label":`Google reviews`,className:`bg-muted/40 border-b border-border`,children:(0,v.jsx)(`div`,{className:`container mx-auto px-4 py-5`,children:(0,v.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-3 sm:gap-5 text-center sm:text-left`,children:[(0,v.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,v.jsx)(`div`,{className:`flex`,"aria-label":`${r} out of 5 stars`,children:[...[,,,,,]].map((e,t)=>(0,v.jsx)(o,{className:`w-5 h-5 fill-star text-star drop-shadow-sm`,"aria-hidden":`true`},t))}),(0,v.jsxs)(`span`,{className:`font-bold text-foreground`,children:[r,` on Google`]})]}),(0,v.jsx)(`span`,{className:`hidden sm:inline text-muted-foreground`,children:`·`}),(0,v.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[i?`${i} verified reviews from `:`Reviewed by `,n||`${e} homeowners and businesses`]}),(0,v.jsxs)(`a`,{href:t,target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1.5 text-sm font-semibold text-brand-blue hover:underline underline-offset-4`,children:[`Read our Google reviews`,(0,v.jsx)(Me,{className:`w-3.5 h-3.5`,"aria-hidden":`true`})]})]})})});export{pe as A,D as C,ae as D,oe as E,ie as F,C as I,x as L,le as M,_e as N,w as O,A as P,b as R,ne as S,re as T,F as _,Tt as a,M as b,Fe as c,Me as d,je as f,R as g,Ce as h,wt as i,T as j,O as k,Pe as l,Oe as m,Ct as n,Le as o,De as p,$ as r,Ie as s,Et as t,Ne as u,P as v,E as w,j as x,N as y};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.