PageSourceSearch

https://pvcpipecalc.replit.app/assets/MiniGreenhousePlan-D5tdmFqC.js

js pvcpipecalc.replit.app collected 2026-10-03 03:57:53 UTC 25,809 bytes, 1 lines download raw bytes

1import{r as j,j as e}from"./vendor-motion-D7tqbIxK.js";import{H as O,L as z,d as N,B as L,C as v,a as C,b as P,c as w,S as Q}from"./index-CY8dd0ap.js";import{S as M,a as B,b as E,c as q,d as u}from"./select-Dih7pzBY.js";import{C as I}from"./checkbox-DGCQzi3m.js";import{L as W}from"./label-Bktk3moZ.js";import{C as K}from"./chevron-left-Cs8g7vxL.js";import{D as X}from"./download-C0VtdH3f.js";import{I as U}from"./info-Cr-VJwHh.js";import{R as H}from"./ruler-DrMAxa0C.js";import{M as J}from"./minus-CSGdN1K_.js";import{P as Z}from"./plus-C1fYnY_j.js";import{P as ee}from"./package-DAoejoHv.js";import"./vendor-react-Bzgz95E1.js";import"./vendor-query-DzVW2h6_.js";import"./vendor-radix-wRl3KeJQ.js";import"./chevron-up-DoS_bQLV.js";const se=120,T=.125,V=1.02,F={"11R":.45,"141-F":.65,"61-F":.85,"31-F":.9,"41-F":1.1};function te({archWidthIn:a}){return e.jsxs("svg",{viewBox:"0 0 260 160",className:"w-full",children:[e.jsx("line",{x1:10,y1:140,x2:250,y2:140,stroke:"#d1d5db",strokeWidth:1.5}),e.jsx("path",{d:"M30,140 Q30,20 130,20 Q230,20 230,140",fill:"none",stroke:"#f97316",strokeWidth:3,strokeLinecap:"round"}),e.jsx("circle",{cx:30,cy:138,r:5,fill:"#6366f1"}),e.jsx("circle",{cx:230,cy:138,r:5,fill:"#6366f1"}),e.jsx("circle",{cx:130,cy:20,r:5,fill:"#6366f1"}),e.jsx("line",{x1:22,y1:140,x2:22,y2:112,stroke:"#64748b",strokeWidth:2.5,strokeLinecap:"round"}),e.jsx("line",{x1:238,y1:140,x2:238,y2:112,stroke:"#64748b",strokeWidth:2.5,strokeLinecap:"round"}),e.jsx("line",{x1:22,y1:112,x2:30,y2:96,stroke:"#64748b",strokeWidth:2,strokeDasharray:"4 2"}),e.jsx("line",{x1:238,y1:112,x2:230,y2:96,stroke:"#64748b",strokeWidth:2,strokeDasharray:"4 2"}),e.jsx("line",{x1:30,y1:152,x2:230,y2:152,stroke:"#9ca3af",strokeWidth:1,markerEnd:"url(#arr)"}),e.jsxs("text",{x:130,y:164,textAnchor:"middle",fontSize:9,fill:"#6b7280",fontFamily:"monospace",children:[Math.round(a/12*10)/10,"ft wide"]}),e.jsx("line",{x1:244,y1:140,x2:244,y2:20,stroke:"#9ca3af",strokeWidth:1}),e.jsxs("text",{x:252,y:160/2,textAnchor:"middle",fontSize:9,fill:"#6b7280",fontFamily:"monospace",transform:`rotate(-90, 252, ${160/2})`,children:[Math.round(a*.6/12*10)/10,"ft"]}),e.jsx("text",{x:130,y:14,textAnchor:"middle",fontSize:8,fill:"#f97316",fontWeight:"bold",children:"Arch Hoop"}),e.jsx("text",{x:12,y:126,textAnchor:"middle",fontSize:8,fill:"#64748b",children:"End Wall"})]})}function ae({numBays:a,bayLengthIn:f,archWidthIn:i}){const o=272/a,p=i*.6/12*28,t=a+1;return e.jsxs("svg",{viewBox:"0 0 320 150",className:"w-full",children:[e.jsx("line",{x1:20,y1:128,x2:300,y2:128,stroke:"#d1d5db",strokeWidth:1.5}),e.jsx("line",{x1:24,y1:128-p,x2:296,y2:128-p,stroke:"#6366f1",strokeWidth:2.5,strokeDasharray:"none"}),e.jsx("line",{x1:24,y1:118,x2:296,y2:118,stroke:"#6366f1",strokeWidth:2,opacity:.6}),Array.from({length:t}).map((x,r)=>{const l=24+r*o;return e.jsxs("g",{children:[e.jsx("line",{x1:l,y1:128,x2:l,y2:128-p,stroke:"#f97316",strokeWidth:r===0||r===a?3:2.5}),e.jsx("circle",{cx:l,cy:128-p,r:4,fill:"#f97316"}),e.jsx("circle",{cx:l,cy:118,r:3.5,fill:r===0||r===a?"#4f46e5":"#818cf8"})]},r)}),e.jsx("line",{x1:24,y1:140,x2:24+o,y2:140,stroke:"#9ca3af",strokeWidth:1}),e.jsxs("text",{x:24+o/2,y:151,textAnchor:"middle",fontSize:9,fill:"#6b7280",fontFamily:"monospace",children:[f/12,"ft/bay"]}),e.jsx("line",{x1:24,y1:162,x2:296,y2:162,stroke:"#9ca3af",strokeWidth:1}),e.jsxs("text",{x:320/2,y:173,textAnchor:"middle",fontSize:9,fill:"#6b7280",fontFamily:"monospace",children:[Math.round(a*f/12*10)/10,"ft total length"]}),e.jsx("line",{x1:24,y1:12,x2:40,y2:12,stroke:"#f97316",strokeWidth:2.5}),e.jsx("text",{x:44,y:16,fontSize:8,fill:"#6b7280",children:"Arch hoops"}),e.jsx("line",{x1:96,y1:12,x2:112,y2:12,stroke:"#6366f1",strokeWidth:2.5}),e.jsx("text",{x:116,y:16,fontSize:8,fill:"#6b7280",children:"Rails"})]})}function re({cuts:a,parts:f,numBays:i,bayLengthIn:k,archWidthIn:c,pipeCalc:b}){const g=t=>{const x=Math.floor(t/12),r=Math.round(t%12);return x>0?`${x}'${r>0?` ${r}"`:""}`:`${r}"`},y=b.totalLength/12*V,o=f.reduce((t,x)=>t+x.qty*x.unitPrice,0),p=y+o;return e.jsxs("div",{className:"print-sheet hidden print:block",style:{fontFamily:"Arial, sans-serif",padding:24,maxWidth:680,margin:"0 auto"},children:[e.jsxs("div",{style:{borderBottom:"3px solid #f97316",paddingBottom:12,marginBottom:16},children:[e.jsx("div",{style:{fontSize:22,fontWeight:700,color:"#1e293b"},children:"🌱 Mini Greenhouse Cover"}),e.jsx("div",{style:{fontSize:13,color:"#64748b"},children:"PVC Project Plan — Garden & Growing · circoinnovations.com"}),e.jsxs("div",{style:{fontSize:13,color:"#64748b",marginTop:4},children:[i," bays · ",Math.round(i*k/12*10)/10,"ft long · ~",Math.round(c/12*10)/10,"ft wide · Est. $",p.toFixed(2)]})]}),e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:24},children:[e.jsxs("div",{children:[e.jsx("div",{style:{fontWeight:700,fontSize:12,textTransform:"uppercase",letterSpacing:1,color:"#0f172a",marginBottom:6},children:'Pipe Cut List — ½" PVC'}),e.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:11},children:[e.jsx("thead",{children:e.jsxs("tr",{style:{background:"#f8fafc"},children:[e.jsx("th",{style:{textAlign:"left",padding:"4px 6px",borderBottom:"1px solid #e2e8f0"},children:"Piece"}),e.jsx("th",{style:{textAlign:"right",padding:"4px 6px",borderBottom:"1px solid #e2e8f0"},children:"Length"}),e.jsx("th",{style:{textAlign:"right",padding:"4px 6px",borderBottom:"1px solid #e2e8f0"},children:"Qty"})]})}),e.jsx("tbody",{children:a.map(t=>e.jsxs("tr",{style:{borderBottom:"1px solid #f1f5f9"},children:[e.jsx("td",{style:{padding:"4px 6px"},children:t.label}),e.jsx("td",{style:{textAlign:"right",padding:"4px 6px",fontFamily:"monospace"},children:g(t.lengthInches)}),e.jsxs("td",{style:{textAlign:"right",padding:"4px 6px",fontWeight:700},children:["×",t.qty]})]},t.label))})]}
1),e.jsxs("div",{style:{marginTop:8,fontSize:10,color:"#64748b"},children:["Total: ",b.totalSticks," sticks · ",g(Math.round(b.waste))," waste"]})]}),e.jsxs("div",{children:[e.jsx("div",{style:{fontWeight:700,fontSize:12,textTransform:"uppercase",letterSpacing:1,color:"#0f172a",marginBottom:6},children:"Parts & Fittings"}),e.jsxs("table",{style:{width:"100%",borderCollapse:"collapse",fontSize:11},children:[e.jsx("thead",{children:e.jsxs("tr",{style:{background:"#f8fafc"},children:[e.jsx("th",{style:{textAlign:"left",padding:"4px 6px",borderBottom:"1px solid #e2e8f0"},children:"SKU"}),e.jsx("th",{style:{textAlign:"left",padding:"4px 6px",borderBottom:"1px solid #e2e8f0"},children:"Description"}),e.jsx("th",{style:{textAlign:"right",padding:"4px 6px",borderBottom:"1px solid #e2e8f0"},children:"Qty"}),e.jsx("th",{style:{textAlign:"right",padding:"4px 6px",borderBottom:"1px solid #e2e8f0"},children:"Price"})]})}),e.jsx("tbody",{children:f.map(t=>e.jsxs("tr",{style:{borderBottom:"1px solid #f1f5f9"},children:[e.jsx("td",{style:{padding:"4px 6px",fontFamily:"monospace",color:"#f97316",fontWeight:700},children:t.sku}),e.jsx("td",{style:{padding:"4px 6px"},children:t.name}),e.jsx("td",{style:{textAlign:"right",padding:"4px 6px"},children:t.qty}),e.jsxs("td",{style:{textAlign:"right",padding:"4px 6px"},children:["$",(t.qty*t.unitPrice).toFixed(2)]})]},t.sku))})]})]})]}),e.jsxs("div",{style:{marginTop:20,paddingTop:12,borderTop:"1px solid #e2e8f0"},children:[e.jsx("div",{style:{fontWeight:700,fontSize:12,textTransform:"uppercase",letterSpacing:1,color:"#0f172a",marginBottom:10},children:"Assembly Steps"}),e.jsxs("ol",{style:{fontSize:11,color:"#334155",lineHeight:1.7,paddingLeft:18},children:[e.jsx("li",{children:"Lay out the base frame on a flat surface. Insert the 3-way and 4-way fittings at each corner and arch position along the ground."}),e.jsx("li",{children:"Connect the horizontal side rails end-to-end through the fittings to form the two long base edges."}),e.jsx("li",{children:"Insert the arch hoops into the side-position fittings — gently bend each 5ft pipe into an arch and press both ends into the base fittings."}),e.jsx("li",{children:"Connect the top ridge rail through the top of each arch fitting, running the full length of the greenhouse."}),e.jsx("li",{children:"Attach the end wall verticals at each corner with the 45° elbow at the top, angling inward to meet the arch."}),e.jsx("li",{children:"Drape the plastic sheeting (approx. 6×35ft) over the frame, starting from one end. Pull taut and secure with Snap Clamps (#11R) every 12–18 inches along each arch."}),e.jsx("li",{children:"Secure the sheeting at the ends by folding and clamping or tucking under the base rails."}),e.jsx("li",{children:"For ventilation, leave one end partially open or use a clip-on door flap."})]})]}),e.jsxs("div",{style:{marginTop:16,display:"flex",justifyContent:"space-between",fontSize:11,color:"#64748b",borderTop:"1px solid #e2e8f0",paddingTop:10},children:[e.jsxs("div",{children:["Pipe: $",y.toFixed(2),"  |  Fittings: $",o.toFixed(2),"  |  ",e.jsxs("strong",{children:["Est. Total: $",p.toFixed(2)]})]}),e.jsx("div",{children:"circoinnovations.com · (530) 272-3382"})]})]})}function Ne(){const[a,f]=j.useState(4),[i,k]=j.useState(36),[c,b]=j.useState(60),[g,y]=j.useState(!0),[o,p]=j.useState(!0),t=a+1,x=j.useMemo(()=>[{label:"Arch Hoops",lengthInches:c,qty:t},{label:"End Wall Verticals",lengthInches:48,qty:4},{label:"Horizontal Rails (top + sides)",lengthInches:i,qty:a*3},{label:"Short Stub Connectors",lengthInches:2,qty:4}],[a,i,c,t]),r=j.useMemo(()=>[{sku:"11R",name:'½" Snap Clamp Pro Series',qty:t*4,unitPrice:F["11R"],note:"Holds plastic sheeting to arches"},{sku:"41-F",name:'½" 4-Way Fitting',qty:4,unitPrice:F["41-F"],note:"Base corners"},{sku:"31-F",name:'½" 3-Way Fitting',qty:(a-1)*2,unitPrice:F["31-F"],note:"Intermediate arch bases"},{sku:"61-F",name:'½" Slip Tee',qty:a*2,unitPrice:F["61-F"],note:"Along side rails"},{sku:"141-F",name:'½" 45° Elbow',qty:4,unitPrice:F["141-F"],note:"End wall top corners"}],[a,t]),l=j.useMemo(()=>{const s=[];x.forEach(d=>{for(let m=0;m<d.qty;m++)s.push(d.lengthInches)}),s.sort((d,m)=>m-d);const n=[];for(const d of s){let m=!1;for(let A=0;A<n.length;A++)if(n[A]>=d+T){n[A]-=d+T,m=!0;break}m||n.push(se-d-T)}const S=s.reduce((d,m)=>d+m,0),_=n.reduce((d,m)=>d+m,0);return{totalLength:S,totalSticks:n.length,waste:_}},[x]),R=l.totalLength/12*V,D=r.reduce((s,n)=>s+n.qty*n.unitPrice,0),Y=R+D,h=s=>{const n=Math.floor(s/12),S=Math.round(s%12);return n>0?`${n}'${S>0?` ${S}"`:""}`:`${S}"`},G=g&&o?"Add All to Cart":g?"Add Only Pipe to Cart":o?"Add Only Fittings to Cart":"Nothing Selected",$=()=>window.print();return e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"min-h-screen bg-gray-50 calculator-ui",children:[e.jsx(O,{}),e.jsx("div",{className:"bg-white border-b sticky top-14 z-10",children:e.jsxs("div",{className:"container mx-auto px-4 py-2 flex items-center justify-between max-w-5xl",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(z,{href:"/plans",children:e.jsx(N,{variant:"ghost",size:"sm",className:"h-8 px-2 text-gray-500 hover:text-gray-900",children:e.jsx(K,{className:"w-4 h-4"})})}),e.jsx("div",{className:"h-4 w-px bg-gray-200"}),e.jsxs("span",{className:"text-sm font-semibold text-gray-800 flex items-center gap-1.5",children:[e.jsx("span",{children:"🌱"})," Mini Greenhouse Cover"]}),e.jsx("span",{className:"text-xs text-gray-400 hidden sm:inline",children:"· Garden & Growing · PVC Project Plan"})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(L,{variant:"outline",className:"text-xs font-semibold",children:["Est. $",Y.toFixed(2)]}),e.jsxs(N,{size:"sm",variant:"outline",className:"h-8 gap-1.5 text-xs",onClick:$,children:[e.jsx(X,{className:"w-3.5 h-3.5"}),e.jsx("span",{className:"hidden sm:inline",children:"Download PDF"})]})]})]})}),e.jsxs("main",{className:"container mx-auto px-4 py-6 space-y-6 max-w-5xl",children:[e.jsxs(v,{children:[e.jsx(C,{className:"pb-3",children:e.jsxs(P,{className:"flex items-center gap-2 text-lg",children:[e.jsx(U,{className:"w-5 h-5 text-green-600"}),"Plan Overview"]})}),e.jsxs(w,{children:[e.jsxs("p",{className:"text-sm text-gray-600 mb-4",children:["Build a ",e.jsx("strong",{children:"lightweight, portable mini greenhouse cover"}),' from ½" furniture-grade PVC pipe — the exact design from'," ",e.jsx("a",{href:"https://www.youtube.com/watch?v=4Bn2TGSr1LQ",target:"_blank",rel:"noopener noreferrer",className:"text-green-700 font-semibold hover:underline",children:"Circo's original video"}),"."," ","Arch hoops bend over a frame and snap clamps secure a plastic sheet cover. No glue needed — the whole thing breaks down in minutes for easy storage."]}),e.jsxs("p",{className:"text-sm text-gray-600 mb-4",children:["Perfect for protecting plants from frost, extending your growing season by 6–8 weeks, or creating a seedling nursery. The ",e.jsx("strong",{children:"Snap Clamp Pro Series (#11R)"})," grips the plastic sheeting firmly without damaging it."]}),e.jsxs("div",{className:"flex flex-col gap-3 rounded-lg border border-orange-200 bg-orange-50 p-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-orange-900",children:"Need to size the cover for your frame?"}),e.jsx("p",{className:"text-xs text-orange-800",children:"Estimate tarp, film, or netting with your actual hoop measurements."})]}),e.jsx(z,{href:"/covering-analysis",className:"inline-flex shrink-0 items-center justify-center rounded-md bg-orange-600 px-3 py-2 text-xs font-semibold text-white transition-colors hover:bg-orange-700",children:"Open Covering Analysis →"})]}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-4 gap-3 mt-2",children:[e.jsxs("div",{className:"bg-orange-50 rounded-lg p-3 text-center",children:[e.jsx("p",{className:"text-xs text-orange-600 font-medium uppercase tracking-wide",children:"Pipe Sticks"}),e.jsx("p",{className:"text-2xl font-black text-orange-700",children:l.totalSticks}),e.jsxs("p",{className:"text-xs text-orange-500",children:[h(Math.round(l.totalLength))," total"]})]}),e.jsxs("div",{className:"bg-green-50 rounded-lg p-3 text-center",children:[e.jsx("p",{className:"text-xs text-green-600 font-medium uppercase tracking-wide",children:"Total Parts"}),e.jsx("p",{className:"text-2xl font-black text-green-700",children:r.reduce((s,n)=>s+n.qty,0)}),e.jsx("p",{className:"text-xs text-green-500",children:"fittings & clamps"})]}),e.jsxs("div",{className:"bg-blue-50 rounded-lg p-3 text-center",children:[e.jsx("p",{className:"text-xs text-blue-600 font-medium uppercase tracking-wide",children:"Difficulty"}),e.jsx("p",{className:"text-2xl font-black text-blue-700",children:"Easy"}),e.jsx("p",{className:"text-xs text-blue-500",children:"~1.5 hrs build time"})]}),e.jsxs("div",{className:"bg-purple-50 rounded-lg p-3 text-center",children:[e.jsx("p",{className:"text-xs text-purple-600 font-medium uppercase tracking-wide",children:"Est. Total"}),e.jsxs("p",{className:"text-2xl font-black text-purple-700",children:["$",Y.toFixed(2)]}),e.jsx("p",{className:"text-xs text-purple-500",children:"pipe + fittings"})]})]})]})]}),e.jsxs("div",{className:"rounded-xl overflow-hidden shadow-sm",children:[e.jsx("img",{src:"/images/plans/hoop-house.webp",alt:"Mini PVC greenhouse cover over garden plants",className:"w-full object-cover max-h-72"}),e.jsxs("p",{className:"text-center text-xs text-gray-400 bg-white py-1.5",children:['Mini greenhouse cover using ½" PVC hoops and Circo Snap Clamps —'," ",e.jsx("a",{href:"https://www.youtube.com/watch?v=4Bn2TGSr1LQ",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-gray-600",children:"watch the build video"})]})]}),e.jsxs(v,{children:[e.jsx(C,{className:"pb-3",children:e.jsxs(P,{className:"flex items-center gap-2 text-lg",children:[e.jsx(H,{className:"w-5 h-5 text-green-600"}),"Customize Your Size"]})}),e.jsxs(w,{children:[e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-3 gap-6",children:[e.jsxs("div",{children:[e.jsx(W,{className:"text-sm font-semibold text-gray-700 mb-2 block",children:"Number of Bays"}),e.jsxs("p",{className:"text-xs text-gray-400 mb-3",children:[t," arch hoops · ",h(a*i)," long"]}),e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(N,{variant:"outline",size:"icon",className:"h-9 w-9",onClick:()=>f(s=>
1Math.max(2,s-1)),children:e.jsx(J,{className:"w-4 h-4"})}),e.jsx("span",{className:"text-2xl font-black text-gray-800 w-8 text-center",children:a}),e.jsx(N,{variant:"outline",size:"icon",className:"h-9 w-9",onClick:()=>f(s=>Math.min(8,s+1)),children:e.jsx(Z,{className:"w-4 h-4"})})]})]}),e.jsxs("div",{children:[e.jsx(W,{className:"text-sm font-semibold text-gray-700 mb-2 block",children:"Bay Spacing"}),e.jsx("p",{className:"text-xs text-gray-400 mb-3",children:"Distance between arches"}),e.jsxs(M,{value:String(i),onValueChange:s=>k(Number(s)),children:[e.jsx(B,{className:"w-full",children:e.jsx(E,{})}),e.jsxs(q,{children:[e.jsx(u,{value:"24",children:'2 ft (24")'}),e.jsx(u,{value:"30",children:'2.5 ft (30")'}),e.jsx(u,{value:"36",children:'3 ft (36") — Original'}),e.jsx(u,{value:"48",children:'4 ft (48")'})]})]})]}),e.jsxs("div",{children:[e.jsx(W,{className:"text-sm font-semibold text-gray-700 mb-2 block",children:"Arch Pipe Length"}),e.jsx("p",{className:"text-xs text-gray-400 mb-3",children:"Longer = wider & taller greenhouse"}),e.jsxs(M,{value:String(c),onValueChange:s=>b(Number(s)),children:[e.jsx(B,{className:"w-full",children:e.jsx(E,{})}),e.jsxs(q,{children:[e.jsx(u,{value:"48",children:'4 ft (48") — Compact'}),e.jsx(u,{value:"60",children:'5 ft (60") — Original'}),e.jsx(u,{value:"72",children:'6 ft (72") — Wider'}),e.jsx(u,{value:"84",children:'7 ft (84") — Large'})]})]})]})]}),e.jsxs("div",{className:"mt-5 p-3 bg-green-50 border border-green-200 rounded-lg flex flex-wrap gap-4 text-sm",children:[e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-500",children:"Length:"})," ",e.jsx("strong",{className:"text-green-800",children:h(a*i)})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-500",children:"Arch pipe:"})," ",e.jsxs("strong",{className:"text-green-800",children:[h(c)," each"]})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-500",children:"Arches:"})," ",e.jsx("strong",{className:"text-green-800",children:t})]}),e.jsxs("div",{children:[e.jsx("span",{className:"text-gray-500",children:"Plastic needed:"})," ",e.jsxs("strong",{className:"text-green-800",children:["~",h(c+12)," wide × ",h(a*i+24)," long"]})]})]})]})]}),e.jsxs(v,{children:[e.jsx(C,{className:"pb-2",children:e.jsx(P,{className:"text-base text-gray-700",children:"Diagrams"})}),e.jsx(w,{children:e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"bg-gray-50 rounded-lg p-3",children:[e.jsx("p",{className:"text-xs font-semibold text-gray-500 text-center mb-2 uppercase tracking-wide",children:"End View (Arch Profile)"}),e.jsx(te,{archWidthIn:c}),e.jsxs("div",{className:"flex gap-3 justify-center mt-2 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"w-3 h-1.5 bg-orange-500 rounded"}),e.jsx("span",{className:"text-xs text-gray-500",children:"Arch hoop"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"w-3 h-1.5 bg-slate-500 rounded"}),e.jsx("span",{className:"text-xs text-gray-500",children:"End wall"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"w-2 h-2 rounded-full bg-indigo-500"}),e.jsx("span",{className:"text-xs text-gray-500",children:"Fitting"})]})]})]}),e.jsxs("div",{className:"bg-gray-50 rounded-lg p-3",children:[e.jsx("p",{className:"text-xs font-semibold text-gray-500 text-center mb-2 uppercase tracking-wide",children:"Side View (Full Length)"}),e.jsx(ae,{numBays:a,bayLengthIn:i,archWidthIn:c}),e.jsxs("div",{className:"flex gap-3 justify-center mt-2 flex-wrap",children:[e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"w-3 h-1.5 bg-orange-500 rounded"}),e.jsx("span",{className:"text-xs text-gray-500",children:"Arches"})]}),e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx("div",{className:"w-3 h-1.5 bg-indigo-500 rounded"}),e.jsx("span",{className:"text-xs text-gray-500",children:"Rails"})]})]})]})]})})]}),e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[e.jsxs(v,{className:g?"":"opacity-60",children:[e.jsx(C,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs(P,{className:"flex items-center gap-2 text-lg",children:[e.jsx(H,{className:"w-5 h-5 text-green-600"}),"Pipe Cut List"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"text-xs text-gray-400 font-mono",children:'½" PVC'}
1),e.jsx(W,{htmlFor:"mg-add-pipe",className:"text-xs text-gray-500 cursor-pointer select-none",children:"Add to cart"}),e.jsx(I,{id:"mg-add-pipe",checked:g,onCheckedChange:s=>y(!!s),className:"data-[state=checked]:bg-green-600 data-[state=checked]:border-green-600"})]})]})}),e.jsxs(w,{children:[e.jsx("div",{className:"space-y-1",children:x.map(s=>e.jsxs("div",{className:"flex items-start justify-between py-2 border-b border-gray-100 last:border-0 gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"text-sm font-medium text-gray-800",children:s.label}),e.jsxs("p",{className:"text-xs text-gray-400 font-mono",children:[h(s.lengthInches)," each"]})]}),e.jsxs(L,{variant:"secondary",className:"font-bold text-sm px-3 shrink-0",children:["× ",s.qty]})]},s.label))}),e.jsxs("div",{className:"mt-3 p-3 bg-green-50 rounded-lg flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-semibold text-green-900",children:"Total pipe needed"}),e.jsxs("p",{className:"text-xs text-green-600",children:[h(l.totalLength)," · ",h(Math.round(l.waste))," waste"]})]}),e.jsxs("span",{className:"text-xl font-bold text-green-900",children:[l.totalSticks," stick",l.totalSticks!==1?"s":""]})]}),e.jsx("p",{className:"text-xs text-gray-400 mt-2",children:'10ft sticks. Arch hoops are cut then bent — no heat required for ½" PVC.'})]})]}),e.jsxs(v,{className:o?"":"opacity-60",children:[e.jsx(C,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs(P,{className:"flex items-center gap-2 text-lg",children:[e.jsx(ee,{className:"w-5 h-5 text-green-600"}),"Parts & Fittings"]}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(W,{htmlFor:"mg-add-fittings",className:"text-xs text-gray-500 cursor-pointer select-none",children:"Add to cart"}),e.jsx(I,{id:"mg-add-fittings",checked:o,onCheckedChange:s=>p(!!s),className:"data-[state=checked]:bg-green-600 data-[state=checked]:border-green-600"})]})]})}),e.jsxs(w,{children:[e.jsx("div",{className:"space-y-1",children:r.map(s=>e.jsx("div",{className:"py-2 border-b border-gray-100 last:border-0",children:e.jsxs("div",{className:"flex items-start justify-between gap-2",children:[e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"font-mono text-xs font-bold text-green-700 shrink-0",children:s.sku}),e.jsx("span",{className:"text-sm font-medium text-gray-800 truncate",children:s.name})]}),s.note&&e.jsx("p",{className:"text-xs text-gray-400 mt-0.5",children:s.note})]}),e.jsxs("div",{className:"text-right shrink-0",children:[e.jsxs("p",{className:"text-xs text-gray-500",children:["× ",s.qty]}),e.jsxs("p",{className:"text-sm font-semibold text-gray-700",children:["$",(s.qty*s.unitPrice).toFixed(2)]})]})]})},s.sku))}),e.jsxs("div",{className:"mt-3 p-3 bg-yellow-50 border border-yellow-200 rounded-lg",children:[e.jsx("p",{className:"text-xs font-semibold text-yellow-800",children:"Also needed (not included):"}),e.jsxs("p",{className:"text-xs text-yellow-700 mt-1",children:["Greenhouse plastic film ~",h(c+12)," wide × ",h(a*i+24)," long — not included in this kit."," ",e.jsx("a",{href:"https://www.greenhousemegastore.com/collections/plastic-film",target:"_blank",rel:"noopener noreferrer",className:"underline text-yellow-800 font-medium hover:text-yellow-900",children:"Find greenhouse plastic film at Greenhouse Megastore →"})]})]})]})]})]}),e.jsx(v,{className:"border-green-200 bg-green-50/40",children:e.jsx(w,{className:"pt-5",children:e.jsxs("div",{className:"flex flex-col sm:flex-row items-start sm:items-center justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-baseline gap-2 flex-wrap",children:[e.jsxs("span",{className:"text-3xl font-black text-green-700",children:["$",Y.toFixed(2)]}),e.jsx("span",{className:"text-sm text-gray-500",children:"estimated total"}),e.jsxs("span",{className:"text-sm text-gray-500",children:["(",l.totalSticks," sticks pipe + ",r.reduce((s,n)=>s+n.qty,0)," parts)"]}
1)]}),e.jsxs("p",{className:"text-xs text-gray-400 mt-1",children:['Pipe at $1.02/ft for ½" furniture-grade Sch. 40. Greenhouse plastic film not included — ',e.jsx("a",{href:"https://www.greenhousemegastore.com/collections/plastic-film",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-gray-600",children:"find it at Greenhouse Megastore"}),". Prices are estimates."]})]}),e.jsxs("div",{className:"flex gap-3",children:[e.jsxs(N,{size:"lg",variant:"outline",className:"gap-2",onClick:$,children:[e.jsx(X,{className:"w-4 h-4"}),"Download PDF"]}),e.jsxs(N,{size:"lg",className:"gap-2 bg-green-700 hover:bg-green-800",disabled:!g&&!o,children:[e.jsx(Q,{className:"w-4 h-4"}),G]})]})]})})})]})]}),e.jsx(re,{cuts:x,parts:r,numBays:a,bayLengthIn:i,archWidthIn:c,pipeCalc:l})]})}export{Ne 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.