1var Me=e=>{throw TypeError(e)};var pe=(e,t,s)=>t.has(e)||Me("Cannot "+s);var r=(e,t,s)=>(pe(e,t,"read from private field"),s?s.call(e):t.get(e)),I=(e,t,s)=>t.has(e)?Me("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,s),x=(e,t,s,n)=>(pe(e,t,"write to private field"),n?n.call(e,s):t.set(e,s),s),j=(e,t,s)=>(pe(e,t,"access private method"),s);import{j as c}from"./ariakit-vendor-Rr0LjWYd.js";import{S as tt,i as $e,j as A,k as xe,r as oe,a as ve,l as Se,q as Ue,t as st,u as de,f as rt,v as nt,w as De,n as Ve,x as Xe,y as it}from"./QueryClientProvider-By2IWy2m.js";import{r as v}from"./i18n-vendor-CgdUv56d.js";import{c as ge}from"./clsx-B-dksMZM.js";import{o as at,c as ot}from"./Dialog-CtGabwxG.js";import{$ as ct,a as lt}from"./Modal-BoHiR_0O.js";import{f as ut}from"./router-vendor-AuyDRqQq.js";import{E as dt,S as ft}from"./ECatalogueSearchModal-kLnFFW3o.js";import{I as Fe}from"./Icon-B3cbPL1E.js";import{u as ht}from"./useRootData-y6ULYVmM.js";import{t as ce}from"./triggerEvent-Cz4KJkb0.js";import{L as Ye}from"./LinkWithLocale-DBFiFWfy.js";import"./item-href-CiEtss40.js";import"./use-reduced-motion-DEkqkSI3.js";import"./proxy-z5yF0M2d.js";import"./index-DBVtroP0.js";import"./SuperLink-C47XcoJI.js";var N,d,le,T,z,q,Q,H,ue,ee,te,V,X,W,se,m,ae,je,we,_e,Re,Ie,Te,Ee,Je,ze,mt=(ze=class extends tt{constructor(t,s){super();I(this,m);I(this,N);I(this,d);I(this,le);I(this,T);I(this,z);I(this,q);I(this,Q);I(this,H);I(this,ue);I(this,ee);I(this,te);I(this,V);I(this,X);I(this,W);I(this,se,new Set);this.options=s,x(this,N,t),x(this,H,null),x(this,Q,$e()),this.bindMethods(),this.setOptions(s)}bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(r(this,d).addObserver(this),Le(r(this,d),this.options)?j(this,m,ae).call(this):this.updateResult(),j(this,m,Re).call(this))}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return Ne(r(this,d),this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return Ne(r(this,d),this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,j(this,m,Ie).call(this),j(this,m,Te).call(this),r(this,d).removeObserver(this)}setOptions(t){const s=this.options,n=r(this,d);if(this.options=r(this,N).defaultQueryOptions(t),this.options.enabled!==void 0&&typeof this.options.enabled!="boolean"&&typeof this.options.enabled!="function"&&typeof A(this.options.enabled,r(this,d))!="boolean")throw new Error("Expected enabled to be a boolean or a callback that returns a boolean");j(this,m,Ee).call(this),r(this,d).setOptions(this.options),s._defaulted&&!xe(this.options,s)&&r(this,N).getQueryCache().notify({type:"observerOptionsUpdated",query:r(this,d),observer:this});const i=this.hasListeners();i&&ke(r(this,d),n,this.options,s)&&j(this,m,ae).call(this),this.updateResult(),i&&(r(this,d)!==n||A(this.options.enabled,r(this,d))!==A(s.enabled,r(this,d))||oe(this.options.staleTime,r(this,d))!==oe(s.staleTime,r(this,d)))&&j(this,m,je).call(this);const a=j(this,m,we).call(this);i&&(r(this,d)!==n||A(this.options.enabled,r(this,d))!==A(s.enabled,r(this,d))||a!==r(this,W))&&j(this,m,_e).call(this,a)}getOptimisticResult(t){const s=r(this,N).getQueryCache().build(r(this,N),t),n=this.createResult(s,t);return gt(this,n)&&(x(this,T,n),x(this,q,this.options),x(this,z,r(this,d).state)),n}getCurrentResult(){return r(this,T)}trackResult(t,s){return new Proxy(t,{get:(n,i)=>(this.trackProp(i),s==null||s(i),i==="promise"&&(this.trackProp("data"),!this.options.experimental_prefetchInRender&&r(this,Q).status==="pending"&&r(this,Q).reject(new Error("experimental_prefetchInRender feature flag is not enabled"))),Reflect.get(n,i))})}trackProp(t){r(this,se).add(t)}getCurrentQuery(){return r(this,d)}refetch({...t}={}){return this.fetch({...t})}fetchOptimistic(t){const s=r(this,N).defaultQueryOptions(t),n=r(this,N).getQueryCache().build(r(this,N),s);return n.fetch().then(()=>this.createResult(n,s))}fetch(t){return j(this,m,ae).call(this,{...t,cancelRefetch:t.cancelRefetch??!0}).then(()=>(this.updateResult(),r(this,T)))}createResult(t,s){var K;const n=r(this,d),i=this.options,a=r(this,T),l=r(this,z),o=r(this,q),u=t!==n?t.state:r(this,le),{state:g}=t;let h={...g},b=!1,p;if(s._optimisticResults){const E=this.hasListeners(),_=!E&&Le(t,s),Y=E&&ke(t,n,s,i);(_||Y)&&(h={...h,...nt(g.data,t.options)}),s._optimisticResults==="isRestoring"&&(h.fetchStatus="idle")}let{error:M,errorUpdatedAt:F,status:S}=h;p=h.data;let C=!1;if(s.placeholderData!==void 0&&p===void 0&&S==="pending"){let E;a!=null&&a.isPlaceholderData&&s.placeholderData===(o==null?void 0:o.placeholderData)?(E=a.data,C=!0):E=typeof s.placeholderData=="function"?s.placeholderData((K=r(this,te))==null?void 0:K.state.data,r(this,te)):s.placeholderData,E!==void 0&&(S="success",p=De(a==null?void 0:a.data,E,s),b=!0)}if(s.select&&p!==void 0&&!C)if(a&&p===(l==null?void 0:l.data)&&s.select===r(this,ue))p=r(this,ee);else try{x(this,ue,s.select),p=s.select(p),p=De(a==null?void 0:a.data,p,s),x(this,ee,p),x(this,H,null)}catch(E){x(this,H,E)}r(this,H)&&(M=r(this,H),p=r(this,ee),F=Date.now(),S="error");const L=h.fetchStatus==="fetching",G=S==="pending",B=S==="error",$=G&&L,y=p!==void 0,w={status:S,fetchStatus:h.fetchStatus,isPending:G,isSuccess:S==="success",isError:B,isInitialLoading:$,isLoading:$,data:p,dataUpdatedAt:h.dataUpdatedAt,error:M,errorUpdatedAt:F,failureCount:h.fetchFailureCount,failureReason:h.fetchFailureReason,errorUpdate
1Count:h.errorUpdateCount,isFetched:t.isFetched(),isFetchedAfterMount:h.dataUpdateCount>u.dataUpdateCount||h.errorUpdateCount>u.errorUpdateCount,isFetching:L,isRefetching:L&&!G,isLoadingError:B&&!y,isPaused:h.fetchStatus==="paused",isPlaceholderData:b,isRefetchError:B&&y,isStale:Oe(t,s),refetch:this.refetch,promise:r(this,Q),isEnabled:A(s.enabled,t)!==!1};if(this.options.experimental_prefetchInRender){const E=w.data!==void 0,_=w.status==="error"&&!E,Y=Z=>{_?Z.reject(w.error):E&&Z.resolve(w.data)},J=()=>{const Z=x(this,Q,w.promise=$e());Y(Z)},k=r(this,Q);switch(k.status){case"pending":t.queryHash===n.queryHash&&Y(k);break;case"fulfilled":(_||w.data!==k.value)&&J();break;case"rejected":(!_||w.error!==k.reason)&&J();break}}return w}updateResult(){const t=r(this,T),s=this.createResult(r(this,d),this.options);if(x(this,z,r(this,d).state),x(this,q,this.options),r(this,z).data!==void 0&&x(this,te,r(this,d)),xe(s,t))return;x(this,T,s);const n=()=>{if(!t)return!0;const{notifyOnChangeProps:i}=this.options,a=typeof i=="function"?i():i;if(a==="all"||!a&&!r(this,se).size)return!0;const l=new Set(a??r(this,se));return this.options.throwOnError&&l.add("error"),Object.keys(r(this,T)).some(o=>{const f=o;return r(this,T)[f]!==t[f]&&l.has(f)})};j(this,m,Je).call(this,{listeners:n()})}onQueryUpdate(){this.updateResult(),this.hasListeners()&&j(this,m,Re).call(this)}},N=new WeakMap,d=new WeakMap,le=new WeakMap,T=new WeakMap,z=new WeakMap,q=new WeakMap,Q=new WeakMap,H=new WeakMap,ue=new WeakMap,ee=new WeakMap,te=new WeakMap,V=new WeakMap,X=new WeakMap,W=new WeakMap,se=new WeakMap,m=new WeakSet,ae=function(t){j(this,m,Ee).call(this);let s=r(this,d).fetch(this.options,t);return t!=null&&t.throwOnError||(s=s.catch(ve)),s},je=function(){j(this,m,Ie).call(this);const t=oe(this.options.staleTime,r(this,d));if(Se.isServer()||r(this,T).isStale||!Ue(t))return;const n=st(r(this,T).dataUpdatedAt,t)+1;x(this,V,de.setTimeout(()=>{r(this,T).isStale||this.updateResult()},n))},we=function(){return(typeof this.options.refetchInterval=="function"?this.options.refetchInterval(r(this,d)):this.options.refetchInterval)??!1},_e=function(t){j(this,m,Te).call(this),x(this,W,t),!(Se.isServer()||A(this.options.enabled,r(this,d))===!1||!Ue(r(this,W))||r(this,W)===0)&&x(this,X,de.setInterval(()=>{(this.options.refetchIntervalInBackground||rt.isFocused())&&j(this,m,ae).call(this)},r(this,W)))},Re=function(){j(this,m,je).call(this),j(this,m,_e).call(this,j(this,m,we).call(this))},Ie=function(){r(this,V)!==void 0&&(de.clearTimeout(r(this,V)),x(this,V,void 0))},Te=function(){r(this,X)!==void 0&&(de.clearInterval(r(this,X)),x(this,X,void 0))},Ee=function(){const t=r(this,N).getQueryCache().build(r(this,N),this.options);if(t===r(this,d))return;const s=r(this,d);x(this,d,t),x(this,le,t.state),this.hasListeners()&&(s==null||s.removeObserver(this),t.addObserver(this))},Je=function(t){Ve.batch(()=>{t.listeners&&this.listeners.forEach(s=>{s(r(this,T))}),r(this,N).getQueryCache().notify({query:r(this,d),type:"observerResultsUpdated"})})},ze);function pt(e,t){return A(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status==="error"&&A(t.retryOnMount,e)===!1)}function Le(e,t){return pt(e,t)||e.state.data!==void 0&&Ne(e,t,t.refetchOnMount)}function Ne(e,t,s){if(A(t.enabled,e)!==!1&&oe(t.staleTime,e)!=="static"){const n=typeof s=="function"?s(e):s;return n==="always"||n!==!1&&Oe(e,t)}return!1}function ke(e,t,s,n){return(e!==t||A(n.enabled,e)===!1)&&(!s.suspense||e.state.status!=="error")&&Oe(e,s)}function Oe(e,t){return A(t.enabled,e)!==!1&&e.isStaleByTime(oe(t.staleTime,e))}function gt(e,t){return!xe(e.getCurrentResult(),t)}var Ze=v.createContext(!1),bt=()=>v.useContext(Ze);Ze.Provider;function yt(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var xt=v.createContext(yt()),vt=()=>v.useContext(xt),St=(e,t,s)=>{const n=s!=null&&s.state.error&&typeof e.throwOnError=="function"?Xe(e.throwOnError,[s.state.error,s]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||n)&&(t.isReset()||(e.retryOnMount=!1))},jt=e=>{v.useEffect(()=>{e.clearReset()},[e])},wt=({result:e,errorResetBoundary:t,throwOnError:s,query:n,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&n&&(i&&e.data===void 0||Xe(s,[e.error,n])),_t=e=>{if(e.suspense){const s=i=>i==="static"?i:Math.max(i??1e3,1e3),n=e.staleTime;e.staleTime=typeof n=="function"?(...i)=>s(n(...i)):s(n),typeof e.gcTime=="number"&&(e.gcTime=Math.max(e.gcTime,1e3))}},Rt=(e,t)=>
1e.isLoading&&e.isFetching&&!t,It=(e,t)=>(e==null?void 0:e.suspense)&&t.isPending,Pe=(e,t,s)=>t.fetchOptimistic(e).catch(()=>{s.clearReset()});function Tt(e,t,s){var b,p,M,F;const n=bt(),i=vt(),a=it(),l=a.defaultQueryOptions(e);(p=(b=a.getDefaultOptions().queries)==null?void 0:b._experimental_beforeQuery)==null||p.call(b,l);const o=a.getQueryCache().get(l.queryHash);l._optimisticResults=n?"isRestoring":"optimistic",_t(l),St(l,i,o),jt(i);const f=!a.getQueryCache().get(l.queryHash),[u]=v.useState(()=>new t(a,l)),g=u.getOptimisticResult(l),h=!n&&e.subscribed!==!1;if(v.useSyncExternalStore(v.useCallback(S=>{const C=h?u.subscribe(Ve.batchCalls(S)):ve;return u.updateResult(),C},[u,h]),()=>u.getCurrentResult(),()=>u.getCurrentResult()),v.useEffect(()=>{u.setOptions(l)},[l,u]),It(l,g))throw Pe(l,u,i);if(wt({result:g,errorResetBoundary:i,throwOnError:l.throwOnError,query:o,suspense:l.suspense}))throw g.error;if((F=(M=a.getDefaultOptions().queries)==null?void 0:M._experimental_afterQuery)==null||F.call(M,l,g),l.experimental_prefetchInRender&&!Se.isServer()&&Rt(g,n)){const S=f?Pe(l,u,i):o==null?void 0:o.promise;S==null||S.catch(ve).finally(()=>{u.updateResult()})}return l.notifyOnChangeProps?g:u.trackResult(g)}function Qe(e,t){return Tt(e,mt)}var Et=typeof global=="object"&&global&&global.Object===Object&&global,Nt=typeof self=="object"&&self&&self.Object===Object&&self,qe=Et||Nt||Function("return this")(),fe=qe.Symbol,et=Object.prototype,Ct=et.hasOwnProperty,Ot=et.toString,ie=fe?fe.toStringTag:void 0;function At(e){var t=Ct.call(e,ie),s=e[ie];try{e[ie]=void 0;var n=!0}catch{}var i=Ot.call(e);return n&&(t?e[ie]=s:delete e[ie]),i}var Mt=Object.prototype,$t=Mt.toString;function Ut(e){return $t.call(e)}var Dt="[object Null]",Ft="[object Undefined]",Be=fe?fe.toStringTag:void 0;function Lt(e){return e==null?e===void 0?Ft:Dt:Be&&Be in Object(e)?At(e):Ut(e)}function kt(e){return e!=null&&typeof e=="object"}var Pt="[object Symbol]";function Qt(e){return typeof e=="symbol"||kt(e)&&Lt(e)==Pt}var Bt=/\s/;function Ht(e){for(var t=e.length;t--&&Bt.test(e.charAt(t)););return t}var Wt=/^\s+/;function Gt(e){return e&&e.slice(0,Ht(e)+1).replace(Wt,"")}function Ce(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}var He=NaN,Kt=/^[-+]0x[0-9a-f]+$/i,zt=/^0b[01]+$/i,Vt=/^0o[0-7]+$/i,Xt=parseInt;function We(e){if(typeof e=="number")return e;if(Qt(e))return He;if(Ce(e)){var t=typeof e.valueOf=="function"?e.valueOf():e;e=Ce(t)?t+"":t}if(typeof e!="string")return e===0?e:+e;e=Gt(e);var s=zt.test(e);return s||Vt.test(e)?Xt(e.slice(2),s?2:8):Kt.test(e)?He:+e}var be=function(){return qe.Date.now()},Yt="Expected a function",Jt=Math.max,Zt=Math.min;function qt(e,t,s){var n,i,a,l,o,f,u=0,g=!1,h=!1,b=!0;if(typeof e!="function")throw new TypeError(Yt);t=We(t)||0,Ce(s)&&(g=!!s.leading,h="maxWait"in s,a=h?Jt(We(s.maxWait)||0,t):a,b="trailing"in s?!!s.trailing:b);function p(y){var U=n,w=i;return n=i=void 0,u=y,l=e.apply(w,U),l}function M(y){return u=y,o=setTimeout(C,t),g?p(y):l}function F(y){var U=y-f,w=y-u,K=t-U;return h?Zt(K,a-w):K}function S(y){var U=y-f,w=y-u;return f===void 0||U>=t||U<0||h&&w>=a}function C(){var y=be();if(S(y))return L(y);o=setTimeout(C,F(y))}function L(y){return o=void 0,b&&n?p(y):(n=i=void 0,l)}function G(){o!==void 0&&clearTimeout(o),u=0,n=f=i=o=void 0}function B(){return o===void 0?l:L(be())}function $(){var y=be(),U=S(y);if(n=arguments,i=this,f=y,U){if(o===void 0)return M(f);if(h)return clearTimeout(o),o=setTimeout(C,t),p(f)}return o===void 0&&(o=setTimeout(C,t)),l}return $.cancel=G,$.flush=B,$}const es="/assets/placeholdersmall-BCeB8_kG.jpg";function re({children:e,image:t,to:s,imageAlt:n,searchContext:i,itemData:a,onClick:l=()=>{}}){const o=v.useRef(null),[f,u]=v.useState(!1);v.useEffect(()=>{if(!o.current||f||!i||!a)return;const h=new IntersectionObserver(b=>{for(const p of b)p.isIntersecting&&!f&&(ce("guide_search_result_impression",{item_craft:a.itemCraft||"",item_type:a.itemType,item_id:a.itemId,item_location:a.itemLocation||"",item_title:a.itemName,search_term:i.query.slice(0,50),search_position:String(a.position||"")}),u(!0))},{threshold:.5});return h.observe(o.current),()=>{o.current&&h.unobserve(o.current)}},[f,i,a]);const g=()=>{l(),i&&a&&ce("guide_search_result_click",{item_craft:a.itemCraft||"",item_type:a.itemType,item_id:a.itemId,item_location:a.itemLocation||"",item_title:a.itemName,search_term:i.query.slice(0,50)})};return c.jsx(Ye,{ref:o,to:s,"data-testid":"search-result-card",className:"block w-2/5 md:w-full",onClick:g,children:c.jsxs("div",{className:"flex flex-col md:flex-row gap-2 md:gap-4 w-40 sm:w-full",children:[c.jsx("div",{className:"w-full aspect-square md:w-16 md:h-16 overflow-hidden bg-lightGrey shrink-0",children:t?c.jsx("img",{src:t.replace("/img/","/img-thumb/"),alt:n,className:"w-full h-full object-cover"}):c.jsx("img",{src:es,alt:"Placeholder",className:"w-full h-full object-cover"})}),c.jsx("div",{className:"flex-1 overflow-hidden truncate",children:e})]})})}function ts({hit:e,searchContext:t,onClick:s,position:n}){var l,o,f,u,g,h,b;let i="/artisans";Array.isArray(e==null?void 0:e["type-of-artisan"])?i=e["type-of-artisan"].some(p=>["Ambassador person","Ambassador Institution"].includes(p))?"/ambassadors":"/artisans":typeof(e==null?void 0:e.type)<"u"&&(i=["Ambassador person","Ambassador Institution"].includes(e.type)?"/ambassadors":"/artisans");const a={itemId:e.id||e.slug,itemType:"Artisan",itemName:e.name,itemCraft:((l=e==null?void 0:e["type-of-artisan"])==null?void 0:l[0])==="Artisan"?(o=e==null?void 0:e.craft_person)==null?void 0:o.join(", "):(f=e==null?void 0:e.craft_metier)==null?void 0:f.join(", "),itemLocation:e.city_and_country,position:n};return c.jsxs(re,{onClick:s,to:`${i}/${e.slug}`,image:e.picture??e.images?Array.isArray(e.picture??e.images)?(u=(e.picture??e.images).filter(p=>!!p))==null?void 0:u[0]:e.picture??e.images:void 0,imageAlt:e.name,searchContext:t,itemData:a,children:[c.jsx("div",{className:"font-bold text-md truncate w-full overflow-hidden",children:e.name}),c.jsx("div",{className:"truncate w-full overflow-hidden",children:((g=e==null?void 0:e["type-of-artisan"])==null?void 0:g[0])==="Artisan"?(h=e==null?void 0:e.craft_person)==null?void 0:h.join(", "):(b=e==null?void 0:e.craft_metier)==null?void 0:b.join(", ")}),c.jsx("div",{className:"truncate w-full overflow-hidden",children:e.city_and_country})]})}function ss({hit:e,searchContext:t,onClick:s,position:n}){var a,l,o;const i={itemId:e.id||e.slug,itemType:"Experience",itemName:e.name,itemCraft:(a=e.craft_person)==null?void 0:a.join(", "),itemLocation:e.city_and_country,position:n};return c.jsxs(re,{onClick:s,to:`/experiences/${e.slug}`,image:e.images?Array.isArray(e.images)?(l=e.images.filter(f=>!!f))==null?void 0:l[0]:e.images:void 0,imageAlt:e.name,searchContext:t,itemData:i,children:[c.jsx("div",{className:"font-bold text-md truncate w-full overflow-hidden",children:e.name}),c.jsx("div",{className:"truncate w-full overflow-hidden",children:(o=e.craft_person)==null?void 0:o.join(", ")}),c.jsx("div",{className:"truncate w-full overflow-hidden",children:e.city_and_country})]})}function rs({hit:e,searchContext:t,onClick:s,position:n}){var a,l,o,f;const i={itemId:e.id||e.slug,itemType:"Object",itemName:e.name,itemCraft:(a=e.craft_person)==null?void 0:a.join(", "),itemLocation:e.city_and_country,position:n};return c.jsxs(re,{onClick:s,to:`/objects/${e.slug}`,image:e.picture?Array.isArray(e.picture)?(l=e.picture.filter(u=>!!u))==null?void 0:l[0]:e.picture:void 0,imageAlt:e.name,searchContext:t,itemData:i,children:[c.jsx("div",{className:"font-bold text-md truncate w-full overflow-hidden",children:e.name}),c.jsx("div",{className:"truncate w-full overflow-hidden",children:(o=e.categories)==null?void 0:o.join(", ")}),c.jsxs("div",{className:"truncate w-full overflow-hidden",children:["by ",((f=e.profile_id)==null?void 0:f.name)||"Unknown artisan"]})]})}const ns={City:"cities",Country:"countries",Itinerary:"itineraries",Region:"regions"};function is({hit:e,searchContext:t,onClick:s,position:n}){var o,f,u;const i={itemId:e.id||e.slug,itemType:"Destination",itemName:e.name,itemCraft:(o=e.craft_person)==null?void 0:o.join(", "),itemLocation:e.city_and_country,position:n},a=String(e.type),l=ns[a]??"destinations";return c.jsxs(re,{onClick:s,to:`/destinations/${l}/${e.slug}`,image:e.images?Array.isArray(e.images)?(f=e.images.filter(g=>!!g))==null?void 0:f[0]:e.images:void 0,imageAlt:e.name,searchContext:t,itemData:i,children:[c.jsx("div",{className:"font-bold text-md truncate w-full overflow-hidden",children:e.name}),c.jsx("div",{className:"truncate w-full overflow-hidden",children:(u=e.craft_person)==null?void 0:u.join(", ")}),c.jsx("div",{className:"truncate w-full overflow-hidden",children:e.city_and_country})]})}function as({hit:e,searchContext:t,onClick:s}){var i;const n={itemId:e.id||e.slug,itemType:"material",itemName:e.name};return c.jsxs(re,{onClick:s,to:`/materials/${e.slug}`,image:e.images?Array.isArray(e.images)?(i=e.images.filter(a=>!!a))==null?void 0:i[0]:e.images:void 0,imageAlt:e.name,searchContext:t,itemData:n,children:[c.jsx("div",{className:"font-bold text-md truncate w-full overflow-hidden",children:e.name}),c.jsx("div",{className:"truncate w-full overflow-hidden",children:"Material"})]})}function os({hit:e,searchContext:t,onClick:s}){var i;const n={itemId:e.id||e.slug,itemType:"craft",itemName:e.name};return c.jsxs(re,{onClick:s,to:`/crafts/${e.slug}`,image:e.picture?Array.isArray(e.picture)?(i=e.picture.filter(a=>!!a))==null?void 0:i[0]:e.picture:void 0,imageAlt:e.name,searchContext:t,itemData:n,children:[c.jsx("div",{className:"font-bold text-md truncate w-full overflow-hidden",children:e.name}),c.jsx("div",{className:"truncate w-full overflow-hidden",children:"Craft"})]})}const ye={profile:"Artisan",destination:"Destination",experience:"Experience",object:"Object",more:"More result"}
1,cs={profile:"/artisans",destination:"/destinations",experience:"/experiences",object:"/objects"};function ls({hit:e,indexUid:t,searchContext:s,onClick:n,position:i}){switch(t){case"profile":return c.jsx(ts,{hit:e,searchContext:s,onClick:n,position:i});case"object":return c.jsx(rs,{hit:e,searchContext:s,onClick:n,position:i});case"experience":return c.jsx(ss,{hit:e,searchContext:s,onClick:n,position:i});case"destination":return c.jsx(is,{hit:e,searchContext:s,onClick:n,position:i});case"material-level-1":case"material-level-2":return c.jsx(as,{hit:e,searchContext:s,onClick:n});case"craft":return c.jsx(os,{hit:e,searchContext:s,onClick:n});default:return null}}function us({result:e,search:t}){const s=String(e.indexUid),n=cs[s],i=String(e.indexUid),a={query:t,resultItemId:e.indexUid,resultItemItemType:e.indexUid,resultItemName:ye[i]},l=({section:o})=>{ce("guide_srp_seeall_click",{search_term:t,entity_type:o})};return c.jsxs("div",{"data-testid":`search-section-${e.indexUid}`,className:"flex flex-col gap-6 lg:gap-10 border-b border-gray-200 py-8 lg:py-10",children:[c.jsxs("div",{className:"flex items-center gap-4 justify-between",children:[c.jsxs("div",{"data-testid":`search-section-count-${e.indexUid}`,className:"text-lg font-bold",children:[e.estimatedTotalHits," ",ye[i],e.estimatedTotalHits>1?"s":""]}),n&&e.estimatedTotalHits>4?c.jsx("div",{children:c.jsx(Ye,{to:`${n}${t?`?q=${encodeURIComponent(t)}`:""}`,"data-testid":`search-view-all-${e.indexUid}`,className:"underline underline-offset-2",onClick:()=>{l({section:ye[i]})},children:"View all"})}):null]}),c.jsx("div",{className:"flex flex-row flex-nowrap overflow-x-scroll md:grid md:grid-cols-4 gap-8 no-scrollbar max-w-full overflow-hidden",children:e.hits.map((o,f)=>c.jsx(ls,{hit:o,indexUid:o.indexUid||e.indexUid,searchContext:a,onClick:()=>{},position:f+1},o.id))})]},e.indexUid)}const ds=new Set(["artisans","objects","experiences","destinations"]);function fs(e){return/\/e-catalogue(\/|$)/.test(e)}function hs(e){const t=e.split("/").filter(Boolean);return ds.has(t[1]??"")}function ms(e){const t=String(e.getMonth()+1).padStart(2,"0"),s=String(e.getDate()).padStart(2,"0");return`${e.getFullYear()}-${t}-${s}`}function ps(e,t=new Date){if(!(e!=null&&e.startDate)||!(e!=null&&e.endDate))return!1;const s=ms(t);return e.startDate.slice(0,10)<=s&&s<=e.endDate.slice(0,10)}function Ge(e,t,s=new Date){return fs(e)?"ecatalogue":hs(e)?"guide":ps(t,s)?"ecatalogue":"guide"}async function Ke(e){const t=await fetch(`/api/search?index&q=${encodeURIComponent(e)}`);
1if(!t.ok)throw new Error("Search failed");return t.json()}function $s({isOpen:e,onOpenChange:t,scope:s,onScopeChange:n,instantEntry:i=!1}){const[a,l]=v.useState(""),[o,f]=v.useState(""),u=v.useContext(at),g=ut(),h=ht(),b=h.programmeEvent??null,p=h.lang??"en",[M,F]=v.useState(()=>Ge(g.pathname,b)),S=s??M,[C,L]=v.useState(!1),G=n??F,B=R=>{L(!0),G(R)},$=(b==null?void 0:b.slug)??null,y=b&&(s!==void 0||!!$),U=()=>{t==null||t(!1),u==null||u.close()},w=e??(u==null?void 0:u.isOpen)??!1;v.useEffect(()=>{w||(L(!1),s===void 0&&F(Ge(g.pathname,b)))},[w,s,g.pathname,b]);const K=v.useMemo(()=>qt(R=>f(R),300),[]),E=R=>{l(R.target.value),K(R.target.value)},{data:_,isFetching:Y}=Qe({queryKey:["search",o],queryFn:()=>Ke(o),staleTime:1e3*60*5}),J=v.useMemo(()=>!(_!=null&&_.results)||!o?0:_.results.reduce((R,O)=>{var D;return R+(O.estimatedTotalHits||((D=O.hits)==null?void 0:D.length)||0)},0),[_,o]),k=!!(o&&J===0&&!Y),{data:Z}=Qe({queryKey:["search",""],queryFn:()=>Ke(""),staleTime:1e3*60*10,enabled:k}),he=k?Z:_;if(v.useEffect(()=>{if(_!=null&&_.results&&o&&J>=0){const R=_.results.reduce((O,D)=>{var Ae;const P=D.indexUid,ne=D.estimatedTotalHits||((Ae=D.hits)==null?void 0:Ae.length)||0;return P==="profile"?O.artisan+=ne:P==="experience"?O.experience+=ne:P==="destination"?O.destination+=ne:P==="object"?O.object+=ne:O.other+=ne,O},{artisan:0,experience:0,destination:0,object:0,other:0});ce("search",{search_term:o.slice(0,50),search_results_impression:String(J),search_number_of_results_artisan:String(R.artisan),search_number_of_results_experience:String(R.experience),search_number_of_results_destination:String(R.destination),search_number_of_results_object:String(R.object),search_number_of_results_other:String(R.other)})}},[_,o]),S==="ecatalogue"&&$)return c.jsx(dt,{isOpen:w,onClose:U,eventSlug:$,basePath:`/${p}/${$}/e-catalogue`,scope:S,onScopeChange:B,instantEntry:C});const me=i||C;return c.jsx(ct,{isDismissable:!0,...e!==void 0?{isOpen:e,onOpenChange:t}:{},className:ge("fixed top-0 left-0 right-0 bottom-0 z-[9999] focus:outline-none flex justify-end text-center transition-opacity duration-300 ease-out-expo data-[exiting]:opacity-0",!me&&"data-[entering]:opacity-0"),children:c.jsx(lt,{isDismissable:!0,className:ge("w-full h-full relative bg-white focus:outline-none text-left align-middle opacity-100 shadow-xl transition-[opacity,transform] duration-300 ease-out-expo data-[exiting]:opacity-0 data-[exiting]:scale-98",!me&&"data-[entering]:opacity-0 data-[entering]:scale-98"),children:c.jsx(ot,{className:"outline-none w-full h-full",children:({close:R})=>{var O;return c.jsxs("div",{className:ge("outline-none w-full h-full flex flex-col",me&&"guide-search-content-in"),children:[c.jsxs("div",{className:"bg-lightGrey flex flex-row items-center px-4",children:[c.jsx(Fe,{name:"search-line",size:"md"}),c.jsx("input",{type:"text",placeholder:"Search","data-testid":"search-modal-input",autoFocus:!0,className:"w-full text-lg px-4 py-[17px] focus:outline-none",value:a,onChange:E}),c.jsx(Fe,{name:"close-large-line",className:"text-black cursor-pointer",onClick:()=>{R(),ce("guide_search_close")}})]}),y&&c.jsx("div",{className:"flex w-full px-6 pt-5 md:px-8",children:c.jsx(ft,{scope:S,onScopeChange:B,theme:"light"})}),c.jsxs("div",{className:"flex-1 overflow-auto min-h-0 w-full px-4 lg:px-14 py-4 flex flex-col",children:[k&&c.jsxs("div",{className:"text-center text-gray-500 mb-8",children:["Unfortunately, no results found for this query. We invite you to search by city, name, craft... Discover Homo Faber Guide",c.jsx("span",{className:"font-bold ml-1",children:o})]}),(O=he==null?void 0:he.results)==null?void 0:O.filter(D=>{var P;return((P=D.hits)==null?void 0:P.length)>0}).map((D,P)=>c.jsx("div",{className:"guide-search-section-in",style:{animationDelay:`${120+P*70}ms`},children:c.jsx(us,{result:D,search:k?"":o,close:R})},D.id))]})]})}})})})}export{$s as SearchModal};
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.