PageSourceSearch

https://vika-krol.com/assets/ArticlePage-Bb1qzKZw.js

js vika-krol.com collected 2026-10-04 05:41:02 UTC 11,978 bytes, 22 lines download raw bytes

1import{j as e,m as c}from"./vendor-motion-i3VZ6rIW.js";import{h as Y,L as E}from"./vendor-react-DPq4nRXU.js";import{u as A}from"./vendor-query-2yB9p-Rm.js";import{D as J,u as X,L as k,y as Z,s as P}from"./index-uu5Ind1I.js";import{n as ee,a as te,b as y,C as re}from"./article-urls-UiQvQcxX.js";import{A as ae}from"./arrow-left-DbkuGbLE.js";import{C as ie}from"./calendar-D-GPghP_.js";import{C as oe}from"./clock-ChhPTDqw.js";import"./vendor-supabase-CXidNrjy.js";function ye({language:o="EN"}){return e.jsx(J,{lang:o,children:e.jsx(se,{language:o})})}function se({language:o="EN"}){const{slug:b}=Y(),{t:m}=X(),v=b==null?void 0:b.replace(/\.html$/,""),{data:t,isLoading:z}=A({queryKey:["article",v,o],queryFn:async()=>{const{data:r}=await P.from("blog_articles").select("*").eq("slug",v).eq("language",o).eq("status","published").maybeSingle();return r},enabled:!!v}),g=t?t.source_article_id||(o==="EN"?t.id:null):null,{data:L}=A({queryKey:["article-siblings",g],queryFn:async()=>{if(!g)return[];const{data:r}=await P.from("blog_articles").select("slug, language").or(`id.eq.${g},source_article_id.eq.${g}`).eq("status","published");return r||[]},enabled:!!g,staleTime:10*60*1e3});if(z)return e.jsx(k,{children:e.jsx("div",{className:"min-h-screen flex items-center justify-center",children:e.jsx("div",{className:"w-8 h-8 border-2 border-primary border-t-transparent rounded-full animate-spin"})})});if(!t)return e.jsx(k,{children:e.jsxs("div",{className:"min-h-screen flex flex-col items-center justify-center gap-4",children:[e.jsx("p",{className:"text-muted-foreground font-heading text-xl",children:m("Article not found")}),e.jsxs(E,{to:"/paris-proposal.html",className:"text-primary hover:underline text-sm",children:["← ",m("Back to Proposal Paris")]})]})});const H=t.content_html.replace(/<[^>]+>/g,"").split(/\s+/).length,T=Math.max(1,Math.round(H/200)),C={EN:"en-US",IT:"it-IT",DE:"de-DE",ES:"es-ES",RU:"ru-RU"},N=t.publish_at||t.created_at,R=new Date(N).toLocaleDateString(C[o]||"en-US",{year:"numeric",month:"long",day:"numeric"}),j=[],D=/<h3[^>]*>(.*?)<\/h3>\s*<p[^>]*>(.*?)<\/p>/gi;let w;for(;(w=D.exec(t.content_html))!==null;)j.push({question:w[1].replace(/<[^>]+>/g,""),answer:w[2].replace(/<[^>]+>/g,"")});const M=r=>{const n=new DOMParser().parseFromString(`<div id="article-root">${r}</div>`,"text/html").getElementById("article-root");if(!n)return r;const i=a=>!!a&&/H[23]/.test(a.tagName),d=a=>a?!!(a.classList.contains("article-media-break")||a.tagName==="FIGURE"&&a.querySelector("img, video, iframe")||a.tagName==="VIDEO"):!1;return Array.from(n.querySelectorAll("div.article-media-break, figure, video")).forEach(a=>{const s=a.parentElement;if(!s)return;const x=a.previousElementSibling;if(i(x)){s.insertBefore(a,x);return}let u=a.nextElementSibling;for(;u&&!i(u);){if(d(u))return;u=u.nextElementSibling}i(u)&&s.insertBefore(a,u)}),n.innerHTML},B=(r,p)=>{const i=new DOMParser().parseFromString(`<div id="root">${r}</div>`,"text/html").getElementById("root");if(!i)return r;const d=Array.from(i.querySelectorAll("h2, h3, figure.article-photo img"));let l=p;return d.forEach(a=>{var s;a.tagName==="H2"||a.tagName==="H3"?l=((s=a.textContent)==null?void 0:s.trim())||p:a.tagName==="IMG"&&(a.alt=l,a.title=l)}),i.innerHTML},F=((r,p)=>{if(p==="EN")return r;const n={IT:{"/paris-proposal.html":"/it/proposta-di-matrimonio-parigi.html","/paris-proposal-ideas.html":"/it/idee-proposta-di-matrimonio-parigi.html","/paris-proposal-locations-spots.html":"/it/luoghi-proposta-di-matrimonio-parigi.html","/rooftop-proposal-paris.html":"/it/proposta-di-matrimonio-rooftop-parigi.html","/contact":"/contact"},DE:{"/paris-proposal.html":"/de/heiratsantrag-paris.html","/paris-proposal-ideas.html":"/de/heiratsantrag-paris-ideen.html","/paris-proposal-locations-spots.html":"/de/heiratsantrag-paris-orte.html","/rooftop-proposal-paris.html":"/de/heiratsantrag-rooftop-paris.html","/contact":"/contact"},ES:{"/paris-proposal.html":"/es/propuesta-de-matrimonio-paris.html","/paris-proposal-ideas.html":"/es/ideas-propuesta-de-matrimonio-paris.html","/paris-proposal-locations-spots.html":"/es/lugares-propuesta-de-matrimonio-paris.html","/rooftop-proposal-paris.html":"/es/propuesta-de-matrimonio-rooftop-paris.html","/contact":"/contact"},RU:{"/paris-proposal.html":"/ru/predlozhenie-ruki-parizh.html","/paris-proposal-ideas.html":"/ru/idei-predlozheniya-ruki-parizh.html","/paris-proposal-locations-spots.html":"/ru/mesta-predlozheniya-ruki-parizh.html","/rooftop-proposal-paris.html":"/ru/predlozhenie-na-kryshe-parizh.html","/contact":"/contact"}}[p];if(!n)return r;let i=r;const d="https://vika-krol.com";for(const[l,a]of Object.entries(n)){const s=new RegExp(`href="${l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}"`,"g");i=i.replace(s,`href="${a}"`);const x=new RegExp(`href="${(d+l).replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}"`,"g");i=i.replace(x,`href="${d}${a}"`)}return i})(t.content_html,o),O=M(F),K=B(O,t.title).replace(/<h2([^>]*)>
1((?:FAQ|Frequently Asked Questions)[^<]*)<\/h2>([\s\S]*)$/i,(r,p,f,n)=>{const i=n.replace(/<h3([^>]*)>(.*?)<\/h3>\s*<p([^>]*)>([\s\S]*?)<\/p>/gi,(d,l,a,s,x)=>`<div class="faq-card"><h3${l}>${a}</h3><p${s}>${x}</p></div>`);return`<div class="article-faq-section"><h2${p}>${f}</h2>${i}</div>`}),U={"@context":"https://schema.org","@type":"Article",headline:t.title,description:t.meta_description||"",image:t.featured_image_url||void 0,datePublished:N,dateModified:t.updated_at,author:{"@type":"Organization",name:"Vika Krol"},publisher:{"@type":"Organization",name:"Vika Krol",logo:{"@type":"ImageObject",url:"https://vika-krol.com/favicon.png"}}},_="https://vika-krol.com",h=ee(t.city),q=te(h,o),V=re[h],Q={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:_},{"@type":"ListItem",position:2,name:`${V} Proposal`,item:`${_}${q}`},{"@type":"ListItem",position:3,name:t.title,item:y(h,o,t.slug)}]},I=[U,Q];j.length>0&&I.push({"@context":"https://schema.org","@type":"FAQPage",mainEntity:j.map(r=>({"@type":"Question",name:r.question,acceptedAnswer:{"@type":"Answer",text:r.answer}}))});const W=y(h,o,t.slug),G=q,$=(L||[]).map(r=>({lang:r.language==="EN"?"en":r.language.toLowerCase(),href:y(h,r.language,r.slug)})),S=(L||[]).find(r=>r.language==="EN");return S&&$.push({lang:"x-default",href:y(h,"EN",S.slug)}),e.jsxs(k,{children:[e.jsx(Z,{title:t.meta_title||t.title,description:t.meta_description||t.title,canonical:W,ogImage:t.featured_image_url||void 0,ogType:"article",jsonLd:I,hreflang:$}),e.jsxs("section",{className:"relative pt-24 pb-16 md:pt-32 md:pb-20 overflow-hidden",children:[e.jsx("div",{className:"absolute inset-0 pointer-events-none",children:e.jsx("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[600px] h-[400px] bg-primary/5 rounded-full blur-[120px]"})}),e.jsxs("div",{className:"container max-w-6xl mx-auto px-4 relative z-10",children:[e.jsx(c.div,{initial:{opacity:0,x:-10},animate:{opacity:1,x:0},transition:{duration:.4},children:e.jsxs(E,{to:G,className:"inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-primary transition-colors mb-8 group",children:[e.jsx(ae,{className:"w-4 h-4 group-hover:-translate-x-1 transition-transform"}),o==="EN"?"Back to Proposal Paris":"← Back"]})}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-10 lg:gap-16 items-center",children:[e.jsxs("div",{children:[t.tags&&t.tags.length>0&&e.jsx(c.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.4,delay:.1},className:"flex flex-wrap gap-2 mb-6",children:t.tags.map(r=>e.jsx("span",{className:"text-[11px] uppercase tracking-widest px-3 py-1.5 rounded-full border border-primary/20 text-primary/80 font-medium",children:m(r)},r))}),e.jsx(c.h1,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6,delay:.15},className:"font-heading text-3xl sm:text-4xl md:text-5xl lg:text-[3.5rem] leading-[1.1] mb-6 text-foreground",children:t.title}),t.meta_description&&e.jsx(c.p,{initial:{opacity:0,y:15},animate:{opacity:1,y:0},transition:{duration:.5,delay:.25},className:"text-lg md:text-xl text-muted-foreground leading-relaxed mb-8",children:t.meta_description}),e.jsxs(c.div,{initial:{opacity:0}
1,animate:{opacity:1},transition:{duration:.5,delay:.35},className:"flex flex-wrap items-center gap-4 md:gap-6 text-sm text-muted-foreground",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(ie,{className:"w-4 h-4 text-primary/60"}),e.jsx("time",{dateTime:N,children:R})]}),e.jsx("div",{className:"w-1 h-1 rounded-full bg-muted-foreground/30"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(oe,{className:"w-4 h-4 text-primary/60"}),e.jsxs("span",{children:[T," ",m("min read")]})]}),e.jsx("div",{className:"w-1 h-1 rounded-full bg-muted-foreground/30"}),e.jsx("span",{className:"font-medium text-foreground/80",children:"Vika Krol"})]})]}),t.featured_image_url&&e.jsx(c.div,{initial:{opacity:0,scale:.95,x:20},animate:{opacity:1,scale:1,x:0},transition:{duration:.7,delay:.2},children:e.jsxs("div",{className:"relative rounded-2xl overflow-hidden glow-accent aspect-[3/4]",children:[e.jsx("img",{src:t.featured_image_url,alt:t.title,title:t.title,className:"w-full h-full object-cover object-top",loading:"eager"}),e.jsx("div",{className:"absolute inset-0 bg-gradient-to-t from-background/40 via-transparent to-transparent"})]})})]})]})]}),e.jsx("div",{className:"container max-w-4xl mx-auto px-4",children:e.jsx("div",{className:"h-px bg-gradient-to-r from-transparent via-primary/30 to-transparent"})}),e.jsx(c.article,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.6,delay:.4},className:"container max-w-3xl mx-auto px-4 py-12 md:py-16",children:e.jsx("div",{className:`
2            article-content
3            prose prose-xl prose-invert max-w-none
4            
5            prose-headings:font-heading prose-headings:text-foreground prose-headings:tracking-tight
6            prose-h2:text-3xl prose-h2:md:text-4xl prose-h2:mt-20 prose-h2:mb-8
7            prose-h2:relative prose-h2:pl-0
8            prose-h3:text-xl prose-h3:md:text-2xl prose-h3:mt-14 prose-h3:mb-5 prose-h3:text-primary
9            
10            prose-p:text-muted-foreground prose-p:leading-[1.9] prose-p:text-[1.05rem] prose-p:md:text-lg prose-p:mb-8
11            
12            prose-a:text-primary prose-a:no-underline prose-a:border-b prose-a:border-primary/30 hover:prose-a:border-primary
13            
14            prose-strong:text-foreground prose-strong:font-semibold
15            prose-em:text-foreground/80
16            
17            prose-ul:my-8 prose-ul:space-y-3
18            prose-li:text-muted-foreground prose-li:leading-relaxed prose-li:marker:text-primary/50
19            
20            prose-blockquote:border-l-primary/40 prose-blockquote:bg-card/50 prose-blockquote:rounded-r-lg
21            prose-blockquote:py-4 prose-blockquote:px-6 prose-blockquote:not-italic
22          `,dangerouslySetInnerHTML:{__html:K}})}),e.jsxs("section",{className:"container max-w-3xl mx-auto px-4 pb-20",children:[e.jsx("div",{className:"h-px bg-gradient-to-r from-transparent via-primary/30 to-transparent mb-16"}),e.jsxs(c.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"glass-card rounded-2xl p-8 md:p-12 text-center glow-accent",children:[e.jsx("p",{className:"font-heading text-2xl md:text-3xl text-foreground mb-4",children:m("Ready to Plan Your Paris Proposal?")}),e.jsx("p",{className:"text-muted-foreground mb-8 max-w-lg mx-auto leading-relaxed",children:m("With 1,000+ proposals orchestrated and a 5★ Google rating, Vika Krol turns your dream proposal into reality.")}),e.jsx(E,{to:"/paris-proposal.html",className:"inline-flex items-center gap-2 gradient-cta text-primary-foreground font-medium px-8 py-3.5 rounded-full hover:opacity-90 transition-opacity text-sm uppercase tracking-wider",children:m("Discover Our Experiences")})]})]})]})}export{ye as default};

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.