PageSourceSearch

https://sunvoy.com/assets/SectionBubble-BFMYAojd.js

js sunvoy.com collected 2026-09-24 13:09:17 UTC 9,652 bytes, 1 lines download raw bytes

1import{r as c,j as r}from"./chunk-5KNZJZUH-CwKDB1FX.js";import{F as m,f as y}from"./index-DACkgdDa.js";import{n as k,o as w}from"./index-DPmOKpyi.js";import{c as x}from"./utils-y9b8gBZq.js";import{T as $}from"./index-m5tz63dZ.js";import{L as C}from"./LinkWithPrefix-C2mdx2Y4.js";import{f as A}from"./LaurelSVG-6Xof2ti5.js";import{m as S}from"./media-Q1WJOGbK.js";import{u as T}from"./index-DXTIDYoB.js";import{o as I}from"./actions-DxQbNCA6.js";function R({threshold:e=.3,rootMargin:t="0px",triggerOnce:s=!0,delay:a=0}={}){const[n,l]=c.useState(!1),[i,o]=c.useState(!1),u=c.useRef(null),d=c.useRef(void 0);return c.useEffect(()=>{const p=u.current;if(!p)return;const f=new IntersectionObserver(([N])=>{const h=N.isIntersecting;h&&(!i||!s)?a>0?d.current=setTimeout(()=>{l(!0),o(!0)},a):(l(!0),o(!0)):!h&&!s&&(d.current&&clearTimeout(d.current),l(!1))},{threshold:e,rootMargin:t});return f.observe(p),()=>{f.disconnect(),d.current&&clearTimeout(d.current)}},[e,t,s,a,i]),{ref:u,isVisible:n,hasBeenVisible:i}}function Q(e,t,s=2e3){const[a,n]=c.useState(0);return c.useEffect(()=>{if(!t){n(0);return}const l=60,i=e/l,o=s/l;let u=0;const d=setInterval(()=>{if(u++,u>=l)n(e),clearInterval(d);else{const p=i*u,f=e%1!==0?Math.round(p*10)/10:Math.round(p);n(f)}},o);return()=>clearInterval(d)},[e,t,s]),a}function j(e,t=100,s=0){return{transitionDelay:`${s+e*t}ms`}}const D=()=>r.jsxs("div",{className:"flex flex-col md:flex-row gap-4",children:[r.jsxs("div",{className:"flex self-start items-center gap-4 roun
1ded-lg bg-primary-600 p-4",children:[r.jsx("img",{src:`${S}img/google-play.svg`,className:"w-8 h-auto"}),r.jsxs("div",{className:"flex flex-col",children:[r.jsx("span",{className:"text-primary-200 text-xs",children:"Get It On"}),r.jsx("span",{className:"text-white text-sm font-semibold",children:"Google Play"})]})]}),r.jsxs("div",{className:"flex self-start items-center gap-4 rounded-lg bg-primary-600 p-4",children:[r.jsx(m,{icon:A,className:"text-4xl text-white"}),r.jsxs("div",{className:"flex flex-col",children:[r.jsx("span",{className:"text-primary-200 text-xs",children:"Download on the"}),r.jsx("span",{className:"text-white text-sm font-semibold",children:"App Store"})]})]})]}),b=e=>typeof e!="string"?e:e.split(/(==[^=]+==|<mark>.*?<\/mark>|\*\*[^*]+\*\*|<strong>.*?<\/strong>|{% AppStoreButtons %})/g).map((s,a)=>{if(/^\*\*[^*]+\*\*$/.test(s))return r.jsx("strong",{className:"font-bold",children:s.slice(2,-2)},a);if(/^==[^=]+==$/.test(s))return r.jsx("mark",{className:"bg-primary-100 dark:bg-primary-100/40 dark:text-white group-[.bg-primary-100]:bg-white dark:group-[.bg-primary-100]:text-primary-700",children:s.slice(2,-2)},a);if(/^<strong>.*<\/strong>$/.test(s)){const n=s.replace(/^<strong>(.*?)<\/strong>$/,"$1");return r.jsx("strong",{className:"font-bold",children:n},a)}if(/^<mark>.*<\/mark>$/.test(s)){const n=s.replace(/^<mark>(.*?)<\/mark>$/,"$1");return r.jsx("mark",{className:"bg-primary-100 group-[.bg-primary-100]:bg-white",children:n},a)}return/^{% AppStoreButtons %}$/.test(s)?r.jsx(D,{},a):r.jsx("span",{children:s},a)}),B={bold:e=>r.jsx("strong",{className:"font-semibold",children:e?.children}),a:e=>{const t=e?.url||"#";return t.startsWith("http")||t.startsWith("mailto:")||t.startsWith("tel:")?r.jsx("a",{href:t,className:"text-black underline",target:t.startsWith("http")?"_blank":void 0,rel:t.startsWith("http")?"noopener noreferrer":void 0,children:e?.children}):r.jsx(C,{to:t,className:"text-black underline",children:e?.children})},ul:e=>r.jsx("ul",{className:"flex flex-col gap-3",children:e?.children}),li:e=>{const t=y({prefix:"fass",iconName:"check"}),s=e?.children?.props?.content;let a=e?.children;if(Array.isArray(s)){const n=s.map(l=>Array.isArray(l.children)?l.children.map(i=>typeof i.text=="string"?i.bold?`**${i.text}**`:i.text:"").join(""):"").join("");(n.includes("==")||n.includes("<mark>")||n.includes("**")||n.includes("<strong>")||n.includes("{% AppStoreButtons %}"))&&(a=b(n))}return r.jsxs("li",{className:"flex items-start odd:font-semibold",children:[t&&r.jsx(m,{icon:t,className:"bg-primary-200 text-primary-500 p-1 rounded mr-4 flex-shrink-0"}),r.jsx("span",{children:a})]})},h2:e=>r.jsx("h2",{className:"text-3xl font-bold mb-6",children:e?.children})},M=({content:e,components:t,highlight:s=!0})=>typeof e=="string"?r.jsx("div",{children:e}):r.jsx($,{content:e,components:{...B,...s&&{p:a=>{const n=a?.children?.props?.content;if(Array.isArray(n)&&!n.some(i=>i.type==="a"||i.children&&i.children.some(o=>o.type==="a"))){const i=n.map(o=>typeof o.text=="string"?o.bold?["**",o.text,"**"].join(""):o.text:"").join("");if(i.includes("==")||i.includes("<mark>")||i.includes("{% AppStoreButtons %}"))return r.jsx("p",{children:b(i)})}return r.jsx("p",{...a})}},...t}}),W=({videoUrl:e})=>{const t=c.useRef(null);return r.jsx("div",{className:"relative w-full max-w-4xl aspect-video bg-black rounded-lg overflow-hidden",children:r.jsx("video",{ref:t,className:"w-full h-full",controls:!0,autoPlay:!0,children:r.jsx("source",{src:e,type:"video/mp4"})})})},L=({videoUrl:e,index:t,isVisible:s,dispatchUi:a})=>{const n=c.useRef(null);return r.jsxs("div",{className:x("relative h-full min-h-[300px] overflow-hidden bg-primary-600 border-r border-b border-primary-100 dark:border-primary-600 cursor-pointer group","transition-all duration-700 transform",s?"opacity-100 translate-y-0":"opacity-0 translate-y-12"),style:j(t,100),onClick:()=>a(I(r.jsx(W,{videoUrl:e}))),children:[r.jsx("video",{ref:n,className:"absolute inset-0 w-full h-full object-cover",muted:!0,playsInline:!0,children:r.jsx("source",{src:e,type:"video/mp4"})}),r.jsx("div",{className:"absolute inset-0 z-10 transition-all duration-300 mix-blend-multiply bg-primary-300/100 dar
1k:bg-primary-300 group-hover:bg-primary-300 dark:group-hover:bg-primary-400"}),r.jsx("div",{className:"absolute inset-0 z-20 flex items-center justify-center",children:r.jsx("div",{className:"size-18 flex items-center justify-center rounded-full bg-white text-cta-200 group-hover:text-white group-hover:bg-cta group-hover:scale-110 transition-all shadow-2xl",children:r.jsx(m,{icon:k,className:"text-7xl"})})})]})},V=({quote:e,photo:t,name:s,position:a,index:n,isVisible:l})=>r.jsxs("div",{className:x("flex flex-col gap-4 p-8 h-full min-h-[300px] border-r border-b border-primary-100 dark:border-primary-600 bg-white dark:bg-primary-700","transition-all duration-700 transform",l?"opacity-100 translate-y-0":"opacity-0 translate-y-12"),style:j(n,100),children:[r.jsx("span",{className:"font-serif text-[16rem] text-gray-200 dark:text-primary-600 leading-none absolute -top-2 right-0",children:"”"}),r.jsx("div",{className:"flex gap-0.5",children:[...Array(5)].map((i,o)=>r.jsx(m,{icon:w,className:"text-primary-300"},o))}),e&&typeof e=="object"&&"children"in e&&e.children.length>0?r.jsx("blockquote",{className:"text-primary-500 dark:text-primary-400 flex-grow relative",children:r.jsx(M,{content:e})}):null,r.jsxs("div",{className:"flex gap-3 items-center mt-auto relative",children:[t&&r.jsx("div",{className:"relative shrink-0",children:r.jsxs("div",{className:"rounded-full size-12 overflow-hidden relative",children:[r.jsx("div",{className:"absolute rounded-full inset-0 z-10 transition-all duration-300 mix-blend-multiply border-2 border-primary-500"}),r.jsx("img",{alt:s??void 0,className:"object-cover w-full h-full grayscale-50",src:t})]})}),r.jsxs("div",{className:"flex flex-col min-w-0",children:[r.jsx("p",{className:"font-semibold text-primary-700 dark:text-primary-100 truncate",children:s}),r.jsx("p",{className:"text-sm text-primary-400 dark:text-primary-500 truncate",children:a})]})]})]}),X=({items:e})=>{const{ref:t,isVisible:s}=R({threshold:.1,triggerOnce:!0}),[,a]=T();return!e||e.length===0?null:r.jsx(r.Fragment,{children:r.jsx("div",{ref:t,className:"w-full border-t border-primary-100 dark:border-primary-600 -mb-px",children:r.jsx("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3",children:e.map((n,l)=>n?n.videoUrl?r.jsx(L,{videoUrl:n.videoUrl,index:l,isVisible:s,dispatchUi:a},l):n.quote&&n.name?r.jsx(V,{quote:n.quote,photo:n.photo,logo:n.logo,name:n.name,position:n.position||"",index:l,isVisible:s},l):null:null)})})})},z=(e,t="fass")=>{if(!e)return null;const s=e.replace(/^fa/,"").replace(/([A-Z])/g,"-$1").toLowerCase().replace(/^-/,"");return y({prefix:t,iconName:s})},v=(e,t)=>{const s=e.match(/^([^\s]+)\s+dark:(.+)$/);if(s){const[,a,n]=s,l=n.replace(/^(bg-|text-)/,"");return`${t}-${a} dark:${t}-${l}`}return`${t}-${e}`},U=(e,t="text-primary-100")=>e?v(e,"text"):t,E=(e,t="bg-white dark:bg-primary-700")=>e?v(e,"bg"):t,g=(e,t)=>(e==="bg"?E:U)(t),Y=({bubble:e,variant:t="default"})=>{if(!e?.icon)return null;const s=z(e.icon);if(!s)return null;const a=g("bg",e.backgroundColor||"primary-100"),n=g("text",e.textColor||"primary-700");return t==="absolute"?r.jsx("div",{className:"p-8 rounded-full text-primary-600 border border-6 border-primary-600 bg-primary-200 text-4xl -top-12 left-1/2 transform -translate-x-1/2 absolute",children:r.jsx(m,{icon:s,className:"text-4xl"})}):t==="rounded"&&e.title?r.jsxs("span",{className:x("border border-6 border-primary-600 absolute -top-5 left-1/2 transform -translate-x-1/2 inline-flex items-center gap-2 rounded-full px-4 py-2 font-semibold text-xs uppercase tracking-wide",a,n),children:[r.jsx(m,{icon:s}),e.title]}):e.title?r.jsxs("span",{className:x("inline-flex items-center gap-2 rounded-full px-4 py-2 font-semibold text-xs uppercase tracking-wide w-fit",t
1==="default"&&"block",a,n),id:e.title.toLowerCase().replace(" ","-"),children:[r.jsx(m,{icon:s,className:"mr-2"}),e.title]}):null};export{M,X as R,Y as S,z as a,j as b,Q as c,g,R as u};

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.