PageSourceSearch

https://douce-france-location.lovable.app/assets/routes-DVquLpdm.js

js douce-france-location.lovable.app collected 2026-10-03 03:21:24 UTC 8,645 bytes, 1 lines download raw bytes

1import{a as e,l as t,o as n,r,s as i}from"./i18n-BsSYpmhc.js";import{a,i as o,s,t as c}from"./index-BLV8I6YN.js";import{n as l,r as u}from"./photos-BkX7R65L.js";import{t as d}from"./Reveal-BFUMlbDz.js";import{n as f,t as p}from"./chevron-right-2u4vFsGu.js";var m=t(i(),1),h=n(),g=6e3;function _({photos:t,title:n,subtitle:i}){let{lang:a,tr:o}=e(),[s,c]=(0,m.useState)(0),[l,u]=(0,m.useState)(0),d=(0,m.useRef)(null),_=t.length,v=(0,m.useCallback)(e=>c(t=>(t+e+_)%_),[_]);return(0,m.useEffect)(()=>{if(_<2)return;let e=window.setInterval(()=>c(e=>(e+1)%_),g);return()=>window.clearInterval(e)},[_,s]),(0,m.useEffect)(()=>{let e=()=>u(Math.min(window.scrollY,900)*.12);return e(),window.addEventListener(`scroll`,e,{passive:!0}),()=>window.removeEventListener(`scroll`,e)},[]),(0,h.jsxs)(`section`,{className:`relative h-[100svh] w-full overflow-hidden bg-ink`,onTouchStart:e=>{d.current=e.touches[0].clientX},onTouchEnd:e=>{let t=d.current;if(d.current=null,t===null)return;let n=e.changedTouches[0].clientX-t;Math.abs(n)>50&&v(n<0?1:-1)},children:[t.map((e,t)=>(0,h.jsx)(`img`,{src:e.url,alt:r(e.alt,a),loading:t===0?`eager`:`lazy`,className:`absolute inset-0 h-full w-full object-cover transition-opacity duration-[1600ms] ease-in-out`,style:{opacity:+(t===s),transform:`translate3d(0, ${l}px, 0) scale(1.04)`}},e.url)),(0,h.jsx)(`div`,{className:`absolute inset-0 bg-ink/30`}),(0,h.jsxs)(`div`,{className:`relative flex h-full flex-col items-center justify-center px-6 text-center`,children:[(0,h.jsx)(`h1`,{className:`title-spaced font-display text-[2.6rem] leading-[1.1] text-background sm:text-6xl lg:text-[5rem]`,style:{fontWeight:400},children:n}),(0,h.jsx)(`p`,{className:`mt-8 max-w-xl text-[0.95rem] leading-relaxed text-background/80 sm:text-[1.05rem]`,children:i})]}),_>1&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`button`,{type:`button`,onClick:()=>v(-1),"aria-label":o(`prevSlide`),className:`absolute left-5 top-1/2 hidden h-11 w-11 -translate-y-1/2 items-center justify-center rounded-full border border-background/40 text-background/80 opacity-0 transition hover:border-background hover:text-background focus-visible:opacity-100 group-hover:opacity-100 sm:flex sm:opacity-40 sm:hover:opacity-100 lg:left-10`,children:(0,h.jsx)(f,{className:`h-5 w-5`})}),(0,h.jsx)(`button`,{type:`button`,onClick:()=>v(1),"aria-label":o(`nextSlide`),className:`absolute right-5 top-1/2 hidden h-11 w-11 -translate-y-1/2 items-center justify-center rounded-full border border-background/40 text-background/80 transition hover:border-background hover:text-background sm:flex sm:opacity-40 sm:hover:opacity-100 lg:right-10`,children:(0,h.jsx)(p,{className:`h-5 w-5`})}),(0,h.jsx)(`div`,{className:`absolute bottom-10 left-1/2 flex -translate-x-1/2 items-center gap-3`,children:t.map((e,t)=>(0,h.jsx)(`button`,{type:`button`,onClick:()=>c(t),"aria-label":`${o(`goToSlide`)} ${t+1}`,"aria-current":t===s,className:`py-3`,children:(0,h.jsx)(`span`,{className:`block h-px transition-all duration-500 ${t===s?`w-12 bg-background`:`w-6 bg-background/45`}`})},e.url))})]})]})}var v=[{slug:`la-farigoule`,reviewIds:[1]},{slug:`le-parc-de-la-fage`,reviewIds:[1,2]}];function y(e){return Number.isInteger(e)?e.toString():parseFloat(e.toFixed(2)).toString()}function b(){let{lang:t,tr:n}=e(),i=v.map(({slug:e,reviewIds:t})=>{let n=c(e),r=o(e);return!n||!r?null:{slug:e,set:n,property:r,reviews:t.map(e=>n.reviews.find(t=>t.id===e)).filter(e=>!!e)}}).filter(e=>!!e);return i.length===0?null:(0,h.jsx)(`section`,{className:`section-y border-t border-border/50`,children:(0,h.jsxs)(`div`,{className:`shell`,children:[(0,h.jsxs)(d,{children:[(0,h.jsx)(`span`,{className:`eyebrow`,children:n(`averageScore`)}),(0,h.jsx)(`h2`,{className:`title-spaced mt-8 max-w-3xl font-display text-[2.4rem] leading-[1.1] text-foreground sm:text-[3.2rem]`,children:n(`guestReviews`)})]}),(0,h.jsx)(`div`,{className:`mt-20 grid gap-16 lg:grid-cols-2 lg:gap-24`,children:i.map((e,i)=>(0,h.jsx)(d,{delay:i*120,children:(0,h.jsxs)(`div`,{className:`border-t border-border/50 pt-10`,children:[(0,h.jsxs)(`p`,{className:`font-display text-5xl leading-none text-foreground`,children:[y(e.set.average),(0,h.jsx)(`span`,{className:`ml-3 align-baseline text-lg text-muted-foreground`,children:n(e.set.scale===5?`outOfFive`:`outOfTen`)})]}),(0,h.jsx)(`p`,{className:`eyebrow mt-4`,children:r(e.set.sourceLabel,t)}),(0,h.jsx)(`p`,{className:`mt-2 font-display text-xl text-foreground`,children:e.property.name}),(0,h.jsx)(`div`,{className:`mt-10 space-y-10`,children:e.reviews.map(e=>(0,h.jsxs)(`figure`,{children:[(0,h.jsxs)(`blockquote`,{className:`font-sans text-[0.95rem] leading-[1.7] text-muted-foreground`,children:[`« `,e.comment,` »`]}),(0,h.jsxs)(`figcaption`,{className:`eyebrow mt-4`,children:[e.name,e.country?` · ${e.country}`:``]})]},e.id))}),(0,h.jsx)(`div`,{className:`mt-10`,children:(0,h.jsx)(s,{to:e.property.route,className:`link-line`,children:n(`readAllReviews`)})})]})},e.slug))})]})})}function x(){let e=l(`la-farigoule`),t=l(`le-parc-de-la-fage`),n=l(`la-cachette`);return[e[0],t[0],n[0],e[10],t[12]].filter(e=>!!e)}function S(){let{lang:t,tr:n}=e(),i=x();return(0,h.jsxs)(`div`,{children:[i.length?(0,h.jsx)(_,{photos:i,title:`Douce France Location`,subtitle:n(`heroSubtitle`)}):(0,h.jsx)(`div`,{className:`h-[100svh]`,children:(0,h.jsx)(u,{ratio:`h-full`})}),(0,h.jsx)(`section`,{className:`section-y`,children:(0,h.jsx)(`div`,{className:`shell max-w-3xl text-center md:mx-auto`,children:(0,h.jsxs)(d,{children:[(0,h.jsx)(`span`,{className:`eyebrow`,children:n(`heroEyebrow`)}),(0,h.jsx)(`p`,{className:`mt-10 font-display text-[1.7rem] leading-[1.45] text-foreground sm:text-[2.25rem]`,children:n(`brandPitch`)}),(0,h.jsx)(`span`,{className:`rule-accent mx-auto mt-12`})]})})}),a.map((e,i)=>{let a=l(e.slug)[0];return(0,h.jsxs)(`section`,{className:`border-t border-border/50 pb-24 pt-20 md:pb-32 md:pt-28`,children:[(0,h.jsx)(d,{children:(0,h.jsxs)(s,{to:e.route,className:`group relative block`,children:[a?(0,h.jsx)(`img`,{src:a.url,alt:r(a.alt,t),loading:i===0?`eager`:`lazy`,className:`h-[58vh] w-full object-cover md:h-[74vh]`}):(0,h.jsx)(`div`,{className:`h-[58vh] md:h-[74vh]`,children:(0,h.jsx)(u,{ratio:`h-full`})}),a&&(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`div`,{className:`absolute inset-x-0 bottom-0 h-1/2 bg-gradient-to-t from-ink/60 to-transparent`}),(0,h.jsx)(`span`,{className:`absolute bottom-6 left-5 text-[0.66rem] uppercase tracking-[0.22em] text-background/85 md:left-8`,children:r(e.location,t)})]})]})}),(0,h.jsxs)(`div`,{className:`shell mt-14 grid gap-10 lg:grid-cols-[1fr_1fr] lg:gap-24`,children:[(0,h.jsxs)(d,{children:[(0,h.jsx)(`span`,{className:`eyebrow`,children:r(e.location,t)}),(0,h.jsx)(`h2`,{className:`title-spaced mt-6 font-display text-[2.6rem] leading-[1.05] text-foreground sm:text-[3.4rem]`,children:e.name}),(0,h.jsx)(`span`,{className:`rule-accent mt-8`})]}),(0,h.jsxs)(d,{delay:120,children:[(0,h.jsx)(`p`,{className:`max-w-lg text-[1.02rem] leading-relaxed text-muted-foreground`,children:r(e.tagline,t)}),(0,h.jsx)(s,{to:e.route,className:`link-line mt-12`,children:n(`discoverHouse`)})]})]})]},e.slug)}),(0,h.jsx)(`div`,{className:`shell pb-24 text-center md:pb-32`,children:(0,h.jsx)(s,{to:`/nos-proprietes`,className:`btn-outline-fine`,children:n(`viewAllProperties`)})}),(0,h.jsx)(b,{}),(0,h.jsx)(`section`,{className:`section-y border-t border-border/50`,children:(0,h.jsxs)(`div`,{className:`shell`,children:[(0,h.jsxs)(d,{children:[(0,h.jsx)(`span`,{className:`eyebrow`,children:n(`bespoke`)}),(0,h.jsx)(`h2`,{className:`title-spaced mt-8 max-w-3xl font-display text-[2.4rem] leading-[1.1] text-foreground sm:text-[3.2rem]`,children:n(`artOfHosting`)}),(0,h.jsx)(`p`,{className:`mt-10 max-w-xl leading-relaxed text-muted-foreground`,children:n(`artOfHostingText`)})]}),(0,h.jsx)(`div`,{className:`mt-20 grid gap-14 sm:grid-cols-2 lg:gap-20`,children:`...`}),(0,h.jsx)(d,{delay:200,children:(0,h.jsx)(`div`,{className:`mt-16`,children:(0,h.jsx)(s,{to:`/contact`,className:`link-line`,children:n(`servicesCta`)})})})]})}),(0,h.jsx)(`section`,{className:`section-y border-t border-border/50`,children:(0,h.jsx)(`div`,{className:`shell text-center`,children:(0,h.jsxs)(d,{children:[(0,h.jsx)(`h2`,{className:`title-spaced mx-auto max-w-3xl font-display text-[2.4rem] leading-[1.1] text-foreground sm:text-[3.2rem]`,children:n(`talkStay`)}),(0,h.jsx)(`p`,{className:`mx-auto mt-8 max-w-lg text-muted-foreground`,children:n(`servicesText`)}),(0,h.jsx)(`div`,{className:`mt-12`,children:(0,h.jsx)(s,{to:`/contact`,className:`btn-outline-fine`,children:n(`contactUs`)})})]})})})]})}export{S as component};

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.