1import{j as e,L as i,M as c,P as o,T as n,x,J as g}from"./index-BxLXqTQ2.js";import{T as p,S as u,a as h}from"./site-chrome-B4duh7zm.js";import"./useQuery-BDmSQyFx.js";import"./useBaseQuery-DmgI0yD8.js";import"./loader-circle-B8S-YF5f.js";import"./search-NX13Wv6g.js";import"./folder-tree-CSygq7gx.js";import"./carumed-logo-white-UG8ouaAW.js";import"./carumed-logo-BqVy16Ki.js";import"./phone-CP5FB1hg.js";import"./mail-CTHa8-8n.js";import"./chevron-down-BZWfYxm4.js";function T(){const{categories:t,description:s}=n.useLoaderData(),l=x(),m=t.filter(r=>!r.parentId),d=r=>t.filter(a=>a.parentId===r);return e.jsxs("div",{className:"min-h-screen bg-background flex flex-col",children:[e.jsx(p,{}),e.jsx(u,{activePath:"/en/categories"}),e.jsx("main",{className:"flex-1 bg-muted/20",children:e.jsxs("div",{className:"mx-auto max-w-7xl px-4 sm:px-6 py-8 sm:py-12",children:[e.jsxs("nav",{className:"text-xs text-muted-foreground mb-4","aria-label":l.breadcrumb.ariaLabel,children:[e.jsx(i,{to:"/en",className:"hover:text-primary",children:l.breadcrumb.home}),e.jsx("span",{className:"mx-1.5",children:"/"}),e.jsx("span",{className:"text-foreground",children:l.catalog.allProducts})]}),e.jsx("h1",{className:"text-3xl sm:text-4xl font-bold text-primary-dark tracking-tight",children:l.catalog.allProducts}),s&&e.jsx("div",{className:"mt-4 max-w-3xl prose prose-sm sm:prose-base text-muted-foreground",dangerouslySetInnerHTML:{__html:g(s)}}),e.jsx("div",{className:"mt-8 grid gap-5 sm:grid-cols-2 lg:grid-cols-3",children:m.map(r=>e.jsxs("section",{className:"rounded-xl border border-border bg-card p-5",children:[e.jsx("h2",{className:"text-lg font-bold text-primary-dark",children:e.jsx(i,{to:"/en/categories/$slug",params:{slug:r.slug},className:"hover:text-primary",children:r.name})}),e.jsx("ul",{className:"mt-3 space-y-1.5",children:d(r.id).map(a=>e.jsx("li",{children:e.jsxs(i,{to:"/en/categories/$slug",params:{slug:a.slug},className:"flex items-center gap-2 text-sm text-foreground hover:text-primary",children:[e.jsx(o,{className:"h-3.5 w-3.5 text-primary/70","aria-hidden":!0}),a.name]})},a.id))})]},r.id))})]})}),e.jsx(h,{})]})}function z({products:t}){return e.jsx("div",{className:"grid grid-cols-2 lg:grid-cols-4 gap-3 sm:gap-5",children:t.map(s=>e.jsxs(i,{to:"/en/products/$slug",params:{slug:s.slug},className:"group rounded-xl border border-border bg-card overflow-hidden hover:border-primary/40 hover:shadow-md transition-all flex flex-col",children:[e.jsx("div",{className:"aspect-square w-full bg-muted/30 flex items-center justify-center overflow-hidden",children:s.image?e.jsx(c,{src:s.image,alt:s.imageAlt,sizes:"(max-width: 640px) 45vw, 260px",className:"w-full h-full object-contain p-3",loading:"lazy"}):e.jsx(o,{className:"h-8 w-8 text-muted-foreground/40"})}),e.jsx("div",{className:"p-3",children:e.jsx("h3",{className:"text-sm font-semibold text-primary-dark line-clamp-2 group-hover:text-primary transition-colors",children:s.name})})]},s.slug))})}export{z as EnProductGrid,T 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.