1import{j as o}from"./react-vendor-C-_weJGF.js";import{u as i,P as n,H as u,s as c}from"./index-DiEum5Ju.js";import a from"./ProductsShowcase-B_dvGcxp.js";import{V as m}from"./VoiceAgentsSection-ki5zV7w6.js";import d from"./SectionRenderer-BSR0_JhA.js";import{E as l}from"./EditorialContent-CGoAbuuu.js";import{u as p}from"./query-DA-B5yju.js";import"./radix-CMA3xQgM.js";import"./icons-BZJMmL1V.js";import"./supabase-BppBjPB2.js";import"./motion-CfmjrLVm.js";import"./AnimatedHeadline-BMpqJCIM.js";import"./TiltCard-B9XilYOH.js";import"./skeleton-CSiVJos9.js";import"./waitlistApps-CXCnZ_jk.js";import"./purify.es-Dqc4LzU4.js";function F(){const{data:t}=i("products"),{data:r}=p({queryKey:["products-jsonld"],queryFn:async()=>{const{data:e}=await c.from("products").select("name, slug, short_description, primary_image_url").eq("status","published").order("display_order",{ascending:!0});return(e||[]).map(s=>({name:s.name,slug:s.slug||void 0,description:s.short_description||void 0,image:s.primary_image_url||void 0}))},staleTime:5*60*1e3});return o.jsxs(n,{title:(t==null?void 0:t.seo_title)||"Products - Streamline Factory",description:(t==null?void 0:t.seo_description)||"Purpose-built software products for insurance, construction, field service, and automotive.",slug:"products",products:r,children:[o.jsx(u,{title:(t==null?void 0:t.hero_title)||"Our Products",subtitle:(t==null?void 0:t.hero_subtitle)||"Each app we develop solves real problems for professionals in high-demand industries.",buttonText:(t==null?void 0:t.hero_button_text)||"Contact Us",buttonLink:(t==null?void 0:t.hero_button_link)||"/contact",button2Text:null}),o.jsx(a,{}),o.jsx(m,{}),t!=null&&t.sections&&t.sections.length>0?o.jsx(d,{sections:t.sections}):o.jsx(l,{slug:"products"})]})}export{F 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.