PageSourceSearch

https://ctvcam.com/assets/services-DkpyIjin.js

js ctvcam.com collected 2026-10-04 02:39:20 UTC 19,441 bytes, 1 lines download raw bytes

1import{a as u,j as e}from"./query-Ban24u4e.js";import{H as T,m as a,F as o,s,g as I,h as F,B as k,i as C}from"./index-jvhwSSW_.js";import{G as V}from"./GoogleReviews-C3J1w4BS.js";import{C as g}from"./check-Dcx7_PRd.js";import{C as y}from"./chevron-right-Bm_-M2lJ.js";import"./radix-ui-DdasXo-Q.js";const c="https://ctvcam.com";function K(){const[i,d]=u.useState("idle"),[m,t]=u.useState("");async function l(r){r.preventDefault();const x=r.currentTarget,n=new FormData(x);if(n.get("_gotcha"))return;const f=String(n.get("name")??"").trim(),b=String(n.get("email")??"").trim(),v=String(n.get("phone")??"").trim(),j=String(n.get("company")??"").trim(),w=String(n.get("serviceType")??"").trim(),N=String(n.get("facilitySize")??"").trim(),S=String(n.get("message")??"").trim();d("sending"),t("");try{const h=await(await fetch("/api/contact/installation-quote",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({conversation:{messages_attributes:[{body:S||"New installation quote request"}],data:{__gd_contact_form_title:"Installation Quote Request","Service Type":w,"Facility Size":N,Company:j,Phone:v}},user:{email:b,name:f}})})).json();if(h.success)d("success"),x.reset();else throw new Error(h.error||"Something went wrong.")}catch(p){d("error"),t(p instanceof Error?p.message:"Something went wrong. Please try again.")}}return i==="success"?e.jsxs(a.div,{initial:{opacity:0,scale:.95},animate:{opacity:1,scale:1},className:"text-center py-12",role:"status",children:[e.jsx("div",{className:"w-16 h-16 rounded-full bg-green-500/10 border border-green-500/30 flex items-center justify-center mx-auto mb-4",children:e.jsx(g,{size:28,className:"text-green-500"})}),e.jsx("h3",{className:"text-foreground font-bold text-xl mb-2",children:"Quote Request Received"}),e.jsx("p",{className:"text-muted-foreground",style:{whiteSpace:"pre-line"},children:e.jsx(o,{devId:"c6f3e1",guard:{file:"src/pages/services.tsx",tagName:"p",sourceKind:"content-key",contentKey:"services.form.successMessage",contentKeyTemplate:null,expressionHash:null},children:s.form.successMessage})})]}):e.jsxs("form",{onSubmit:l,noValidate:!0,children:[e.jsx("input",{type:"text",name:"_gotcha",tabIndex:-1,autoComplete:"off",style:{position:"absolute",left:"-9999px"},"aria-hidden":"true"}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 mb-4",children:[e.jsxs("div",{children:[e.jsxs("label",{htmlFor:"name",className:"block text-sm font-medium text-foreground mb-1.5",children:["Full Name ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx("input",{id:"name",name:"name",type:"text",required:!0,placeholder:"Jane Smith",className:"w-full px-3 py-2.5 rounded-lg bg-background border border-border/60 text-foreground placeholder:text-muted-foreground/50 text-sm focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors"})]}),e.jsxs("div",{children:[e.jsxs("label",{htmlFor:"email",className:"block text-sm font-medium text-foreground mb-1.5",children:["Email Address ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsx("input",{id:"email",name:"email",type:"email",required:!0,placeholder:"[email protected]",className:"w-full px-3 py-2.5 rounded-lg bg-background border border-border/60 text-foreground placeholder:text-muted-foreground/50 text-sm focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"phone",className:"block text-sm font-medium text-foreground mb-1.5",children:"Phone Number"}),e.jsx("input",{id:"phone",name:"phone",type:"tel",placeholder:"(555) 000-0000",className:"w-full px-3 py-2.5 rounded-lg bg-background border border-border/60 text-foreground placeholder:text-muted-foreground/50 text-sm focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors"})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"company",className:"block text-sm font-medium text-foreground mb-1.5",children:"Company / Organization"}),e.jsx("input",{id:"company",name:"company",type:"text",placeholder:"Acme Corp",className:"w-full px-3 py-2.5 rounded-lg bg-background border border-border/60 text-foreground placeholder:text-muted-foreground
1/50 text-sm focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors"})]})]}),e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4 mb-4",children:[e.jsxs("div",{children:[e.jsxs("label",{htmlFor:"serviceType",className:"block text-sm font-medium text-foreground mb-1.5",children:["Service Type ",e.jsx("span",{className:"text-destructive",children:"*"})]}),e.jsxs("select",{id:"serviceType",name:"serviceType",required:!0,defaultValue:"",className:"w-full px-3 py-2.5 rounded-lg bg-background border border-border/60 text-foreground text-sm focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors appearance-none",children:[e.jsx("option",{value:"",disabled:!0,children:"Select a service…"}),s.form.serviceOptions.map(r=>e.jsx("option",{value:r,children:r},r))]})]}),e.jsxs("div",{children:[e.jsx("label",{htmlFor:"facilitySize",className:"block text-sm font-medium text-foreground mb-1.5",children:"Facility Size"}),e.jsxs("select",{id:"facilitySize",name:"facilitySize",defaultValue:"",className:"w-full px-3 py-2.5 rounded-lg bg-background border border-border/60 text-foreground text-sm focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors appearance-none",children:[e.jsx("option",{value:"",disabled:!0,children:"Select size…"}),s.form.facilitySizeOptions.map(r=>e.jsx("option",{value:r,children:r},r))]})]})]}),e.jsxs("div",{className:"mb-6",children:[e.jsx("label",{htmlFor:"message",className:"block text-sm font-medium text-foreground mb-1.5",children:"Project Details"}),e.jsx("textarea",{id:"message",name:"message",rows:4,placeholder:"Describe your facility, current setup, and what you're looking to achieve…",className:"w-full px-3 py-2.5 rounded-lg bg-background border border-border/60 text-foreground placeholder:text-muted-foreground/50 text-sm focus:outline-none focus:ring-2 focus:ring-primary/50 focus:border-primary transition-colors resize-none"})]}),i==="error"&&e.jsx("p",{role:"alert",className:"text-destructive text-sm mb-4",children:e.jsx(o,{devId:"5ea96e",guard:{file:"src/pages/services.tsx",tagName:"p",sourceKind:"bound-expression",contentKey:null,contentKeyTemplate:null,expressionHash:"sha256:1c0238d2a5401216440d3a40ef09cf8a641cbbc703bbdb0cfe4af2625e4564c6"},children:m})}),e.jsx(k,{type:"submit",disabled:i==="sending",size:"lg",className:"w-full bg-primary hover:bg-primary/90 text-primary-foreground font-semibold shadow-[0_0_20px_hsl(var(--primary)/0.3)] hover:shadow-[0_0_30px_hsl(var(--primary)/0.5)] transition-all",children:i==="sending"?e.jsxs(e.Fragment,{children:[e.jsx(C,{size:16,className:"mr-2 animate-spin"}),"Sending…"]}):e.jsxs(e.Fragment,{children:["Submit Quote Request",e.jsx(y,{size:16,className:"ml-2"})]})})]})}function R(){const[i,d]=u.useState(!1),m={"@context":"https://schema.org","@type":"Service",name:"Commercial Security System Installation",description:"Professional security camera system installation for commercial properties. Starter, Professional, and Enterprise tiers with cabling, video intercom, and WiFi options.",url:`${c}/services`,provider:{"@id":`${c}/#organization`},areaServed:"Texas",serviceType:"Security System Installation"};return e.jsxs(e.Fragment,{children:[e.jsxs(T,{children:[e.jsx("title",{children:"Security System Installation Services — CTVCam"}),e.jsx("meta",{name:"description",content:"Professional security camera installation by certified technicians. Starter ($499) to Enterprise packages. Cabling, video intercom, and extended WiFi systems for commercial properties in Texas."}),e.jsx("link",{rel:"canonical",href:`${c}/services`}),e.jsx("meta",{property:"og:title",content:"Security System Installation Services — CTVCam"}),e.jsx("meta",{property:"og:description",content:"Certified technicians install commercial security camera systems, structured cabling, video intercom, and WiFi. Serving Texas businesses."}),e.jsx("meta",{property:"og:url",content:`${c}/services`}),e.jsx("meta",{property:"og:type",content:"website"}),e.jsx("meta",{property:"og:image",content:`${c}/og-image.png`}),e.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),e.jsx("meta",{name:"twitter:title",content:"Security System Installation Services — CTVCam"}),e.jsx("meta",{name:"twitter:description",content:"Certified technicians install c
1ommercial security camera systems, structured cabling, video intercom, and WiFi."}),e.jsx("meta",{name:"twitter:image",content:`${c}/og-image.png`}),e.jsx("script",{type:"application/ld+json",children:JSON.stringify(m)})]}),e.jsxs("main",{className:"pt-20 bg-background min-h-screen",children:[e.jsx("section",{className:"py-20 px-4 sm:px-6 lg:px-8 text-center border-b border-border/40",children:e.jsxs("div",{className:"max-w-3xl mx-auto",children:[e.jsx(a.p,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{duration:.4},className:"text-primary text-sm font-semibold tracking-wide mb-3",style:{whiteSpace:"pre-line"},children:e.jsx(o,{devId:"4afc5d",guard:{file:"src/pages/services.tsx",tagName:"p",sourceKind:"content-key",contentKey:"services.hero.eyebrow",contentKeyTemplate:null,expressionHash:null},children:s.hero.eyebrow})}),e.jsx(a.h1,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.05},className:"text-4xl md:text-5xl font-bold text-foreground mb-5 leading-tight",style:{whiteSpace:"pre-line"},children:e.jsx(o,{devId:"a65f06",guard:{file:"src/pages/services.tsx",tagName:"h1",sourceKind:"content-key",contentKey:"services.hero.title",contentKeyTemplate:null,expressionHash:null},children:s.hero.title})}),e.jsx(a.p,{initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.4,delay:.1},className:"text-muted-foreground text-lg leading-relaxed",style:{whiteSpace:"pre-line"},children:e.jsx(o,{devId:"4afc5e",guard:{file:"src/pages/services.tsx",tagName:"p",sourceKind:"content-key",contentKey:"services.hero.subtitle",contentKeyTemplate:null,expressionHash:null},children:s.hero.subtitle})})]})}),e.jsx(I,{}),e.jsx("section",{className:"py-20 px-4 sm:px-6 lg:px-8",children:e.jsx("div",{className:"max-w-6xl mx-auto",children:e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-6",children:s.packages.map((t,l)=>e.jsxs(a.div,{initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:l*.08,ease:"easeOut"},className:`relative rounded-2xl border flex flex-col ${t.highlighted?"bg-primary text-primary-foreground border-primary shadow-[0_0_40px_hsl(var(--primary)/0.3)]":"bg-card border-border/60"}`,children:[t.highlighted&&e.jsx("div",{className:"absolute -top-3 left-1/2 -translate-x-1/2",children:e.jsx("span",{className:"bg-primary-foreground text-primary text-xs font-bold px-3 py-1 rounded-full",children:"Most Popular"})}),e.jsxs("div",{className:"p-7 flex flex-col flex-1",children:[e.jsx("p",{className:`text-sm font-semibold mb-1 ${t.highlighted?"text-primary-foreground/80":"text-muted-foreground"}`,style:{whiteSpace:"pre-line"},children:t.name}),e.jsx("div",{className:"flex items-end gap-1.5 mb-1",children:e.jsx("span",{className:`text-4xl font-bold ${t.highlighted?"text-primary-foreground":"text-foreground"}`,style:{whiteSpace:"pre-line"},children:t.price})}),e.jsx("p",{className:`text-xs mb-4 ${t.highlighted?"text-primary-foreground/70":"text-muted-foreground"}`,style:{whiteSpace:"pre-line"},children:t.priceNote}),e.jsx("p",{className:`text-sm leading-relaxed mb-6 ${t.highlighted?"text-primary-foreground/85":"text-muted-foreground"}`,style:{whiteSpace:"pre-line"},children:t.description}),e.jsx("ul",{className:"flex flex-col gap-2.5 mb-8 flex-1",children:t.features.map(r=>e.jsxs("li",{className:"flex items-start gap-2.5 text-sm",children:[e.jsx(g,{size:15,className:`mt-0.5 shrink-0 ${t.highlighted?"text-primary-foreground":"text-primary"}`}),e.jsx("span",{className:t.highlighted?"text-primary-foreground/90":"text-foreground",style:{whiteSpace:"pre-line"},children:r})]},r))}),e.jsx("a",{href:"#quote-form",className:`block text-center py-2.5 px-5 rounded-lg font-semibold text-sm transition-all duration-200 ${t.highlighted?"bg-primary-foreground text-primary hover:bg-primary-foreground/90":"bg-primary text-primary-foreground hover:bg-primary/90 shadow-[0_0_16px_hsl(var(--primary)/0.25)]"}`,style:{whiteSpace:"pre-line"},children:t.cta})]})]},t.id))})})}),e.jsx("section",{className:"py-20 px-4 sm:px-6 lg:px-8 border-t border-border/40 bg-card/30",children:e.jsxs("div",{className:"max-w-5xl mx-auto",children:[e.jsxs("div",{className:"text-center mb-14",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-3",style:{whiteSpace:"pre-line"},children:e.jsx(o,{devId:"09bbd9",guard:{file:"src/pages/services.tsx",tagName:"h2",sourceKind:"content-key",contentKey:"services.process.title",contentKeyTemplate:null,expressionH
1ash:null},children:s.process.title})}),e.jsx("p",{className:"text-muted-foreground max-w-xl mx-auto",style:{whiteSpace:"pre-line"},children:e.jsx(o,{devId:"7c8aaf",guard:{file:"src/pages/services.tsx",tagName:"p",sourceKind:"content-key",contentKey:"services.process.subtitle",contentKeyTemplate:null,expressionHash:null},children:s.process.subtitle})})]}),e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-5 gap-4",children:s.process.steps.map((t,l)=>e.jsxs(a.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:l*.07,ease:"easeOut"},className:"relative flex flex-col items-center text-center sm:items-start sm:text-left",children:[l<4&&e.jsx("div",{className:"hidden sm:block absolute top-6 left-[calc(100%-8px)] w-full h-px",style:{background:"hsl(var(--primary) / 0.15)"}}),e.jsx("div",{className:"w-11 h-11 rounded-full flex items-center justify-center text-sm font-bold text-primary-foreground mb-3 shrink-0 relative z-10",style:{background:"hsl(var(--primary))"},children:t.number}),e.jsx("h3",{className:"text-foreground font-semibold text-sm mb-1.5",style:{whiteSpace:"pre-line"},children:t.title}),e.jsx("p",{className:"text-muted-foreground text-xs leading-relaxed",style:{whiteSpace:"pre-line"},children:t.description})]},t.id))})]})}),e.jsx("section",{id:"quote-form",className:"py-20 px-4 sm:px-6 lg:px-8 border-t border-border/40",children:e.jsxs("div",{className:"max-w-2xl mx-auto",children:[e.jsxs(a.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,ease:"easeOut"},className:"text-center mb-10",children:[e.jsx("h2",{className:"text-3xl font-bold text-foreground mb-3",style:{whiteSpace:"pre-line"},children:e.jsx(o,{devId:"1cd59e",guard:{file:"src/pages/services.tsx",tagName:"h2",sourceKind:"content-key",contentKey:"services.form.title",contentKeyTemplate:null,expressionHash:null},children:s.form.title})}),e.jsx("p",{className:"text-muted-foreground",style:{whiteSpace:"pre-line"},children:e.jsx(o,{devId:"00ffd4",guard:{file:"src/pages/services.tsx",tagName:"p",sourceKind:"content-key",contentKey:"services.form.subtitle",contentKeyTemplate:null,expressionHash:null},children:s.form.subtitle})})]}),e.jsx(a.div,{initial:{opacity:0,y:20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.4,delay:.05,ease:"easeOut"},className:"bg-card border border-border/60 rounded-2xl p-8",children:e.jsx(K,{})})]})}),e.jsx("section",{className:"border-t border-border/40 py-xl",children:e.jsxs("div",{className:"max-w-content mx-auto px-4 sm:px-6 lg:px-8",children:[e.jsx("div",{className:"flex justify-center",children:e.jsxs("button",{onClick:()=>d(t=>!t),"aria-expanded":i,"aria-controls":"reviews-panel",className:"inline-flex items-center gap-2 px-6 py-3 rounded-full border border-primary/40 bg-card text-primary font-semibold text-sm hover:bg-primary hover:text-primary-foreground transition-all duration-200 shadow-sm",children:[e.jsx(F,{className:"w-4 h-4 fill-current"}),i?"Hide Customer Reviews":"What Our Customers Say",e.jsx(y,{className:"w-4 h-4 transition-transform duration-200",style:{transform:i?"rotate(90deg)":"rotate(0deg)"}})]})}),i&&e.jsx(a.div,{id:"reviews-panel",initial:{opacity:0,y:16},animate:{opacity:1,y:0},transition:{duration:.35,ease:"easeOut"},className:"mt-10",children:e.jsx(V,{reviews:[{reviewId:"AbFvOql41ryrvq-H6bGlpW3imbhgE4KbzldAITVq7e5P7VtxoK-W-zFxm_JfJBCJYq92EEzvwFmX",reviewer:{displayName:"Tiffany Baird",profilePhotoUrl:"https://lh3.googleusercontent.com/a/ACg8ocJhzbfCBy9_9JNaFzBB4qad44r_aEaMdzNbkgIbt0taz8098Q=s120-c-rp-mo-br100"},starRating:"FIVE",comment:"Danillo is amazing! He has put systems in two of our homes as well as our business! He's fair with pricing, kind, professional and we will recommend him to all family and friends! If you're looking for upscale AI systems to protect your home….do yourself a favor and call him immediately!",createTime:"2025-09-28T21:05:27.187860Z",updateTime:"2025-09-28T21:05:27.187860Z"},{reviewId:"AbFvOqkt-i4IVe8dQNxEib7M1hpFwZrbqPrUkkrCXwLMLrXIBLFDOKVP2Kiw3XrHogiQ3Bs9Cr57iA",reviewer:{displayName:"Ultimateplex LLC",profilePhotoUrl:"https://lh3.googleusercontent.com/a/ACg8ocIfZmgL0T-a7ErsWYmWsFPfhRVDVoBejpaayhSdOsRAAk7rkw=s120-c-rp-mo-br100"},starRating:"FOUR",comment:"",createTime:"2022-03-23T07:37:10.651428Z",updateTime:"2022-03-23T07:37:10.651428Z"},{reviewId:"AbFvOqkVr_eOlaqiSCgdENETLOD8rarj01BhGPyBCP5Xnr07dhXCa9TQ3rkvgHVwhVywC7JoMe0tXA",reviewer:{displayName:"Laufasa Family",profilePhotoUrl:"https://lh3.googleusercontent.com/a/ACg8ocKVy7PTuft9F9i5hRH6ZFOqZIx0GEBRYCwGHacSg880gE5VZQ=s120-c-rp-mo-br100"},starRating:"FIVE",comment:"Great price and professional installation. I would highly recommend.",createTime:"2021-10-28T15:38:57.931308Z",updateTime:"2021-10-28T15:38:57.931308Z"},{reviewId:"AbFvOqkupn3_aNeYUzLBEzGMakEWDnaltthZiuw_0abxaSolMDqusR_sJF25dSYdY0euIEQjtEJ4Lw",reviewer:{displayName:"Jai I",profilePhotoUrl:"https://lh3.googleusercontent.com/a/ACg8ocIOcZnWepf3UcQuBx4rkA342FT6jekliyNm9hf038Akh6jd0w=s120-c-rp-mo-br100"},starRating:"FIVE",comment:"Professional! Work is top notch! Attention to detail, and expertly done. He gave us a reasonable price for the equipment and installation. Very customer-oriented and delivered on his work! Very happy with entire process. Highly recommend for residential and commercial.",createTime:"2021-10-28T15:34:34.882500Z",updateTime:"2021-10-28T15:34:34.882500Z"},{reviewId:"AbFvOql0aael3cvRjXO9Jbm58-mVI9V_tokuezOS12uin3hjjds2EEATHTuq0Kw_GZJiFXvYTsTXVg",reviewer:{displayName:"jay J",profilePhotoUrl:"https://lh3.googleusercontent.com/a/ACg8ocKgaz-nbLRrfU5R_3_GvNHajP40Ln4A5c3tgjIah40SJnaHcQ=s120-c-rp-mo-ba12-br100"},starRating:"THREE",comment:"",createTime:"2021-04-03T17:13:47.341790Z",updateTime:"2021-04-03T17:13:47.341790Z"},{reviewId:"AbFvOqkRSTSkC2_0KY12xOrYvqVtI6-joMy32--I6ew2p6MsStEVMM1ju1lgVSQw2KqJjNALtOjWOA",reviewer:{displayName:"Damen Smien",profilePhotoUrl:"https://lh3.googleusercontent.com/a-/ALV-UjUdYdCLv58btpGayZkGOVqxxuI6GU54Bx4sw04yVQQDfev0nnIS=s120-c-rp-mo-ba12-br100"},starRating:"FIVE",comment:"Great customer service",createTime:"2019-02-18T21:51:59.483733Z",updateTime:"2019-02-18T21:52:17.581121Z"}],title:"What Our Customers Say",maxVisible:6,className:""})})]})})]})]})}export{R 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.