PageSourceSearch

https://uhtrading.com/assets/_slug-CmwhTEkE.js

js uhtrading.com collected 2026-10-04 14:04:46 UTC 2,565 bytes, 1 lines download raw bytes

1import{j as e,A as i,E as l,L as t,C as o,a as c,B as m,g as n}from"./main-Cia_-N0f.js";import{F as d}from"./Footer-CLR93VSO.js";import"./whatsapp-3MqLmH4e.js";import"./message-circle-CbR6YF1y.js";import"./building-2-B4v69ggz.js";import"./mail-DVMQKO_3.js";function x({html:s,className:r}){return s?e.jsx("div",{className:i("prose prose-sm max-w-none prose-headings:text-foreground prose-p:text-muted-foreground prose-li:text-muted-foreground prose-a:text-primary prose-a:no-underline hover:prose-a:underline prose-strong:text-foreground",r),dangerouslySetInnerHTML:{__html:s}}):null}function N(){const s=l.useLoaderData();return e.jsxs("main",{className:"min-h-screen",children:[e.jsx("section",{className:"px-4 py-8",children:e.jsxs("div",{className:"mx-auto max-w-4xl space-y-8",children:[e.jsx("nav",{"aria-label":"Breadcrumb",children:e.jsxs("ol",{className:"flex items-center gap-2 text-sm",children:[e.jsx("li",{children:e.jsx(t,{to:"/",className:"text-muted-foreground hover:text-primary",children:"Home"})}),e.jsx("li",{className:"text-muted-foreground",children:"/"}),e.jsx("li",{children:e.jsx(t,{to:"/our-services",className:"text-muted-foreground hover:text-primary",children:"Services"})}),e.jsx("li",{className:"text-muted-foreground",children:"/"}),e.jsx("li",{className:"font-semibold",children:s.name})]})}),e.jsxs(o,{className:"p-6 lg:p-8 space-y-4",children:[e.jsx(c,{variant:"outline",className:"text-xs uppercase tracking-wider",children:"Service"}),e.jsx("h1",{className:"text-2xl font-bold lg:text-3xl",children:s.name}),e.jsx(x,{html:s.description,className:"max-w-2xl"}),e.jsx(m,{asChild:!0,children:e.jsx(t,{to:"/quote",search:{type:"service",id:s.id},children:"Request Quote"})})]}),e.jsxs(o,{className:"p-6 lg:p-8",children:[e.jsx("h2",{className:"text-sm font-semibold uppercase tracking-wider text-muted-foreground mb-4",children:"Gallery"}),s.images&&s.images.length>0?e.jsx("div",{className:"space-y-4",children:s.images.map((r,a)=>e.jsx("a",{href:n(r),target:"_blank",rel:"noopener noreferrer",className:"relative overflow-hidden rounded-lg bg-muted block cursor-pointer hover:opacity-90 transition-opacity",children:e.jsx("img",{src:n(r),alt:`${s.name} ${a+1}`,className:"h-auto w-full object-cover",loading:"lazy"})},a))}):e.jsx("p",{className:"text-muted-foreground text-sm",children:"No images"})]}),e.jsx("div",{className:"flex justify-center",children:e.jsx(t,{to:"/our-services",className:"text-sm font-medium text-primary hover:underline",children:"← Back to all services"})})]})}),e.jsx(d,{})]})}export{N as component};

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.