PageSourceSearch

https://treningbiegacza.pl/_next/static/chunks/3274663ca272359b.js

js treningbiegacza.pl collected 2026-10-03 23:23:18 UTC 44,289 bytes, 486 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,308921,e=>{"use strict";var t=e.i(843476),r=e.i(618566),a=e.i(271645),s=e.i(37727);let l=(0,e.i(475254).default)("funnel",[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]]);var i=e.i(664659),n=e.i(655900),o=e.i(975157),c=e.i(31531);function d({categories:e,brands:i=[],colors:n=[],currentCategory:d,className:h}){let x=(0,r.useRouter)(),g=(0,r.useSearchParams)(),[m,p]=(0,a.useState)(new Set(["categories"])),b=d||"",f=g.get("marka")||"",y=g.get("kolor")||"",j=e=>{p(t=>{let r=new Set(t);return r.has(e)?r.delete(e):r.add(e),r})},w=(0,a.useCallback)(e=>{e?x.push((0,c.getCategoryUrl)(e)):x.push("/sklep-biegacza")},[x]),v=(0,a.useCallback)((e,t)=>{let r=new URLSearchParams(g.toString());t?r.set(e,t):r.delete(e),r.delete("strona");let a=r.toString(),s=b?`/sklep-biegacza/${b}`:"/sklep-biegacza";x.push(a?`${s}?${a}`:s)},[x,g,b]),N=b||f||y,k=e.filter(e=>!e.parent);return(0,t.jsxs)("aside",{className:(0,o.cn)("space-y-6",h),children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("h2",{className:"font-semibold text-lg flex items-center gap-2",children:[(0,t.jsx)(l,{className:"w-5 h-5"}),"Filtry"]}),N&&(0,t.jsxs)("button",{onClick:()=>{x.push("/sklep-biegacza")},className:"text-sm text-brand-blue hover:text-brand-blueDark flex items-center gap-1",children:[(0,t.jsx)(s.X,{className:"w-4 h-4"}),"Wyczyść"]})]}),(0,t.jsx)(u,{title:"Kategorie produktów",isExpanded:m.has("categories"),onToggle:()=>j("categories"),children:(0,t.jsxs)("ul",{className:"space-y-1",children:[(0,t.jsx)("li",{children:(0,t.jsx)("button",{onClick:()=>w(""),className:(0,o.cn)("w-full text-left px-3 py-2 rounded-lg text-sm transition-colors",b?"hover:bg-gray-100 text-gray-700":"bg-brand-blue/10 text-brand-blue font-medium"),children:"Wszystkie produkty"})}),k.map(r=>{let a,s=(a=r.slug,e.filter(e=>e.parent?.node.slug===a)),l=b===r.slug;return(0,t.jsxs)("li",{children:[(0,t.jsxs)("button",{onClick:()=>w(r.slug),className:(0,o.cn)("w-full text-left px-3 py-2 rounded-lg text-sm transition-colors flex justify-between items-center",l?"bg-brand-blue/10 text-brand-blue font-medium":"hover:bg-gray-100 text-gray-700"),children:[(0,t.jsx)("span",{children:r.name}),void 0!==r.count&&(0,t.jsxs)("span",{className:"text-xs text-gray-400",children:["(",r.count,")"]})]}),s.length>0&&(0,t.jsx)("ul",{className:"ml-4 mt-1 space-y-1",children:s.map(e=>(0,t.jsx)("li",{children:(0,t.jsx)("button",{onClick:()=>w(e.slug),className:(0,o.cn)("w-full text-left px-3 py-1.5 rounded-lg text-sm transition-colors",b===e.slug?"bg-brand-blue/10 text-brand-blue font-medium":"hover:bg-gray-100 text-gray-600"),children:e.name})},e.id))})]},r.id)})]})}),i.length>0&&(0,t.jsx)(u,{title:"Marka",isExpanded:m.has("brands"),onToggle:()=>j("brands"),children:(0,t.jsx)("ul",{className:"space-y-1 max-h-48 overflow-y-auto scrollbar-blue",children:i.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("label",{className:"flex items-center gap-2 px-3 py-2 rounded-lg hover:bg-gray-100 cursor-pointer",children:[(0,t.jsx)("input",{type:"radio",name:"brand",checked:f===e.slug,onChange:()=>v("marka",f===e.slug?"":e.slug),className:"w-4 h-4 text-brand-blue accent-brand-blue"}),(0,t.jsx)("span",{className:"text-sm text-gray-700",children:e.name}),(0,t.jsxs)("span",{className:"text-xs text-gray-400 ml-auto",children:["(",e.count,")"]})]})},e.slug))})}),n.length>0&&(0,t.jsx)(u,{title:"Kolor",isExpanded:m.has("colors"),onToggle:()=>j("colors"),children:(0,t.jsx)("ul",{className:"space-y-1 max-h-48 overflow-y-auto scrollbar-blue",children:n.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)("label",{className:"flex items-center gap-2 px-3 py-2 rounded-lg hover:bg-gray-100 cursor-pointer",children:[(0,t.jsx)("input",{type:"radio",name:"color",checked:y===e.slug,onChange:()=>v("kolor",y===e.slug?"":e.slug),className:"w-4 h-4 text-brand-blue accent-brand-blue"}),(0,t.jsx)("span",{className:"text-sm text-gray-700",children:e.name}),(0,t.jsxs)("span",{className:"text-xs text-gray-400 ml-auto",children:["(",e.count,")"]})]})},e.slug))})})]})}function u({title:e,isExpanded:r,onToggle:a,children:s}){return(0,t.jsxs)("div",{className:"border-b border-gray-200 pb-4",children:[(0,t.jsxs)("button",{onClick:a,className:"w-full flex items-center justify-between py-2 text-left font-medium text-gray-900",children:[e,r?(0,t.jsx)(n.ChevronUp,{className:"w-5 h-5 text-gray-500"}):(0,t.jsx)(i.ChevronDown,{className:"w-5 h-5 text-gray-500"})]}),r&&(0,t.jsx)("div",{className:"mt-2",children:s})]})}e.s(["ProductFilters",()=>d],308921)},954459,e=>{"use strict";var t=e.i(843476),r=e.i(618566),a=e.i(975157),s=e.i(31531);function l({totalProducts:e,basePath:l,className:i}){let n=(0,r.useRouter)(),o=(0,r.useSearchParams)(),c=(0,r.usePathname)(),d=o.get("sortuj")||"popularnosc",u=o.get("na-stronie")||"12",h=l||c,x=(e,t)=>{let r=new URLSearchParams(o.toString());r.set(e,t),r.delete("strona");let a=r.toString();n.push(a?`${h}?${a}`:h)};return(0,t.jsxs)("div",{className:(0,a.cn)("flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 py-4","border-b border-gray-200",i),children:[void 0!==e&&(0,t.jsxs)("p",{className:"text-sm text-gray-600",children:["Znalezi
1ono ",(0,t.jsx)("strong",{children:e})," ",function(e){if(1===e)return"produkt";if(e>=2&&e<=4)return"produkty";if(e>=5&&e<=21)return"produktów";let t=e%10,r=e%100;return r>=12&&r<=14?"produktów":t>=2&&t<=4?"produkty":"produktów"}(e)]}),(0,t.jsxs)("div",{className:"flex items-center gap-4 flex-wrap",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("span",{className:"text-sm text-gray-600 hidden sm:inline",children:"Produkty na stronie:"}),(0,t.jsx)("div",{className:"flex gap-1",children:s.PRODUCTS_PER_PAGE_OPTIONS.map(e=>(0,t.jsx)("button",{onClick:()=>x("na-stronie",e.toString()),className:(0,a.cn)("px-2 py-1 text-sm rounded",u===e.toString()?"bg-brand-blue text-white":"bg-gray-100 text-gray-700 hover:bg-gray-200"),children:e},e))})]}),(0,t.jsx)("select",{value:d,onChange:e=>x("sortuj",e.target.value),className:(0,a.cn)("px-3 py-2 text-sm rounded-lg border border-gray-200","bg-white focus:outline-none focus:ring-2 focus:ring-brand-blue/20 focus:border-brand-blue","cursor-pointer"),children:s.SORT_OPTIONS.map(e=>(0,t.jsx)("option",{value:e.value,children:e.label},e.value))})]})]})}e.s(["ProductSort",()=>l])},143633,59830,e=>{"use strict";var t=e.i(843476),r=e.i(949722),a=e.i(522016),s=e.i(719079),l=e.i(522562),i=e.i(826707),n=e.i(810980),o=e.i(475254);let c=(0,o.default)("coffee",[["path",{d:"M10 2v2",key:"7u0qdc"}],["path",{d:"M14 2v2",key:"6buw04"}],["path",{d:"M16 8a1 1 0 0 1 1 1v8a4 4 0 0 1-4 4H7a4 4 0 0 1-4-4V9a1 1 0 0 1 1-1h14a4 4 0 1 1 0 8h-1",key:"pwadti"}],["path",{d:"M6 2v2",key:"colzsn"}]]);var d=e.i(512475);let u=(0,o.default)("gift",[["rect",{x:"3",y:"8",width:"18",height:"4",rx:"1",key:"bkv52"}],["path",{d:"M12 8v13",key:"1c76mn"}],["path",{d:"M19 12v7a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2v-7",key:"6wjy6b"}],["path",{d:"M7.5 8a2.5 2.5 0 0 1 0-5A4.8 8 0 0 1 12 8a4.8 8 0 0 1 4.5-5 2.5 2.5 0 0 1 0 5",key:"1ihvrl"}]]),h=(0,o.default)("glass-water",[["path",{d:"M5.116 4.104A1 1 0 0 1 6.11 3h11.78a1 1 0 0 1 .994 1.105L17.19 20.21A2 2 0 0 1 15.2 22H8.8a2 2 0 0 1-2-1.79z",key:"p55z4y"}],["path",{d:"M6 12a5 5 0 0 1 6 0 5 5 0 0 0 6 0",key:"mjntcy"}]]),x=(0,o.default)("shirt",[["path",{d:"M20.38 3.46 16 2a4 4 0 0 1-8 0L3.62 3.46a2 2 0 0 0-1.34 2.23l.58 3.47a1 1 0 0 0 .99.84H6v10c0 1.1.9 2 2 2h8a2 2 0 0 0 2-2V10h2.15a1 1 0 0 0 .99-.84l.58-3.47a2 2 0 0 0-1.34-2.23z",key:"1wgbhj"}]]);var g=e.i(488844),m=e.i(75505),p=e.i(975157),b=e.i(31531);let f={"akcesoria-do-biegania":s.Watch,"buty-do-biegania":l.Footprints,elektronika:i.Smartphone,"ksiazki-dla-biegaczy":n.BookOpen,"kubki-biegacza":c,"pasy-biegowe":d.Dumbbell,"prezent-dla-biegacza":u,shakery:h,"odziez-do-biegania":x,zestawy:g.Package,uncategorized:m.FolderOpen};function y({category:e,className:s}){var l;let i=f[e.slug]||m.FolderOpen;return(0,t.jsxs)(a.default,{href:(0,b.getCategoryUrl)(e.slug),className:(0,p.cn)("group relative flex flex-col items-center p-6","bg-white rounded-xl border border-gray-100","hover:shadow-lg hover:border-brand-blue/20 transition-all duration-300",s),children:[(0,t.jsx)("div",{className:"relative w-20 h-20 mb-4 rounded-full bg-brand-light overflow-hidden",children:e.image?.sourceUrl?(0,t.jsx)(r.default,{src:e.image.sourceUrl,alt:e.image.altText||e.name,fill:!0,sizes:"80px",className:"object-cover group-hover:scale-110 transition-transform duration-300"}):(0,t.jsx)("div",{className:"w-full h-full flex items-center justify-center group-hover:scale-110 transition-transform duration-300",children:(0,t.jsx)(i,{className:"w-10 h-10 text-brand-blue"})})}),(0,t.jsx)("h3",{className:"text-sm font-semibold text-gray-900 text-center group-hover:text-brand-blue transition-colors",children:e.name}),void 0!==e.count&&(0,t.jsxs)("span",{className:"text-xs text-gray-500 mt-1",children:[e.count," ",1===(l=e.count)?"produkt":l>=2&&l<=4?"produkty":"produktów"]})]})}e.s(["CategoryCard",()=>y],59830);var j=e.i(58010);function w({categories:e}){let r=(0,j.useArrowCarousel)(e.length);return 0===e.length?null:(0,t.jsxs)("section",{className:"container mx-auto px-4 pt-1 pb-6","aria-label":"Kategorie produktów",children:[(0,t.jsx)("div",{className:"flex justify-end mb-2",children:(0,t.jsx)(j.CarouselArrows,{canScrollLeft:r.canScrollLeft,canScrollRight:r.canScrollRight,onLeft:()=>r.scroll("left"),onRight:()=>r.scroll("right")})}),(0,t.jsx)(j.CarouselTrack,{carouselRef:r.ref,children:e.map(e=>(0,t.jsx)(y,{category:e,className:"w-44 min-w-44 flex-shrink-0"},e.id))}),(0,t.jsx)(j.CarouselDots,{totalPages:r.totalPages,currentPage:r.currentPage,onGoTo:r.scrollToPage})]})}e.s(["CategoryCarousel",()=>w],143633)},827084,e=>{"use strict";e.s(["default",()=>K],827084);var t=e.i(843476),r=e.i(271645),a=e.i(522016),s=e.i(463059),l=e.i(37727),i=e.i(555436),n=e.i(649582),o=e.i(643531),c=e.i(370956),d=e.i(954922),u=e.i(664659),h=e.i(655900),x=e.i(244809),g=e.i(975157),m=e.i(863276),p=e.i(300694);e.s([],413930);var b=e.i(818229);function f({products:e,className:r,viewMode:a="grid"}){return 0===e.length?(0,t.jsxs)("div",{className:"py-16 text-center",children:[(0,t.jsx)("div",{className:"w-24 h-24 mx-auto mb-6 rounded-full bg-gray-100 flex items-center justify-center",children:(0,t.jsx)("svg",{className:"w-12 h-12 text-gray-400",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",children:(0,t.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4"})})}),(0,t.jsx)("h3",{className:"text-xl font-semibold text-gray-900 mb-2",children:"Brak produktów"}),(0,t.jsx)("p",{className:"text-gray-500 max-w-md mx-auto",children:"Nie znaleziono produktów 
1spełniających wybrane kryteria. Spróbuj zmienić filtry lub wyszukaj coś innego."})]}):(0,t.jsx)("div",{className:(0,g.cn)("gap-4 sm:gap-6","grid"===a?"grid grid-cols-2 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4":"flex flex-col",r),children:e.map((e,r)=>(0,t.jsx)(b.ProductCard,{product:e,priority:r<4,viewMode:a},e.id))})}e.i(308921),e.i(954459),e.i(773250),e.i(586260);var y=e.i(949722),j=e.i(150965),w=e.i(25652),v=e.i(31531);function N({products:e,className:r}){return 0===e.length?null:(0,t.jsxs)("aside",{className:(0,g.cn)("bg-white rounded-xl border border-slate-200 shadow-sm overflow-hidden",r),children:[(0,t.jsx)("div",{className:"px-4 py-3.5 border-b border-slate-200 bg-slate-50",children:(0,t.jsxs)("h3",{className:"text-slate-900 font-bold text-sm uppercase tracking-wide flex items-center gap-2",children:[(0,t.jsx)(w.TrendingUp,{className:"w-4 h-4 text-brand-blue"}),"Bestsellery"]})}),(0,t.jsx)("ul",{className:"divide-y divide-slate-100",children:e.map(e=>(0,t.jsx)("li",{children:(0,t.jsxs)(a.default,{href:(0,v.getProductUrl)(e.slug),className:"flex gap-3 p-4 hover:bg-slate-50 transition-all group",children:[(0,t.jsx)("div",{className:"relative w-20 h-20 flex-shrink-0 bg-white rounded-lg overflow-hidden border border-slate-100 group-hover:border-slate-200 transition-all",children:e.image?.sourceUrl?(0,t.jsx)(y.default,{src:e.image.sourceUrl,alt:e.image.altText||e.name,fill:!0,sizes:"80px",className:"object-contain p-2 group-hover:scale-105 transition-transform duration-300"}):(0,t.jsx)("div",{className:"w-full h-full flex items-center justify-center text-slate-300",children:(0,t.jsx)(j.ShoppingBag,{className:"w-6 h-6"})})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col justify-center",children:[(0,t.jsx)("h4",{className:"text-sm font-semibold text-slate-900 line-clamp-2 group-hover:text-brand-blue transition-colors mb-2",children:e.name}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:(0,v.isOnSale)(e)&&e.regularPrice?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-xs text-slate-400 line-through",children:(0,v.formatPrice)(e.regularPrice)}),(0,t.jsx)("span",{className:"text-base font-bold text-brand-green",children:(0,v.formatPrice)(e.salePrice||e.price)})]}):(0,t.jsx)("span",{className:"text-base font-bold text-slate-900",children:(0,v.formatPrice)(e.price)})})]})]})},e.id))}),(0,t.jsx)("div",{className:"p-4 border-t border-slate-200 bg-slate-50",children:(0,t.jsxs)(a.default,{href:"/sklep-biegacza?sortuj=bestseller",className:"flex items-center justify-center gap-1 text-sm text-brand-blue hover:text-brand-blueDark font-semibold transition-colors group",children:[(0,t.jsx)("span",{children:"Zobacz wszystkie bestsellery"}),(0,t.jsx)("span",{className:"transform group-hover:translate-x-1 transition-transform",children:"→"})]})})]})}e.i(59830);var k=e.i(143633);function S({title:e,categorySlug:r,products:s}){if(0===s.length)return null;let l=(0,v.getCategoryUrl)(r);return(0,t.jsxs)("section",{className:"mb-8","aria-labelledby":`featured-${r}`,children:[(0,t.jsxs)("div",{className:"mb-4 flex items-end justify-between gap-4",children:[(0,t.jsx)("h2",{id:`featured-${r}`,className:"text-xl font-bold text-slate-900",children:e}),(0,t.jsx)(a.default,{href:l,className:"flex-shrink-0 text-sm font-semibold text-brand-blue hover:text-brand-blueDark transition-colors",children:"Zobacz wszystkie →"})]}),(0,t.jsx)(f,{products:s})]})}e.i(89248),e.i(841665);var P=e.i(247167);let C=P.default.env.WORDPRESS_GRAPHQL_URL||"https://api.treningbiegacza.pl/graphql",z=Number(P.default.env.WORDPRESS_GRAPHQL_TIMEOUT_MS||2e4),E=()=>"true"===P.default.env.SKIP_BUILD_STATIC_GENERATION;class T extends Error{constructor(e,t){super(e,t),this.name="UpstreamUnavailableError"}}let O=e=>new Promise(t=>setTimeout(t,e));async function A(e,t,r){let a;for(let s=1;s<=3;s++)try{let a,s;try{a=await fetch(C,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({query:e,variables:t}),signal:AbortSignal.timeout(z),...r})}catch(e){throw new T("WordPress GraphQL unreachable",{cause:e})}if(!a.ok)throw new T(`WordPress GraphQL responded ${a.status}`);try{s=await a.json()}catch(e){throw new T("WordPress GraphQL returned a non-JSON body",{cause:e})}if(s.errors)throw console.error("GraphQL Errors:",s.errors),Error(s.errors[0]?.message||"GraphQL Error");return s.data}catch(e){if(a=e,!(e instanceof T)||3===s)throw e;console.warn(`GraphQL upstream unavailable (attempt ${s}/3), retrying in 400ms...`,e instanceof Error?e.message:e),await O(400*s)}throw a}let R=`
2  query GetProducts(
3    $first: Int = 12
4    $after: String
5    $where: RootQueryToProductUnionConnectionWhereArgs
6  ) {
7    products(first: $first, after: $after, where: $where) {
8      pageInfo {
9        hasNextPage
10        hasPreviousPage
11        startCursor
12        endCursor
13      }
14      nodes {
15        id
16        databaseId
17        name
18        slug
19        type
20
21        # Marketplace: agregaty do kart listingu — pola rejestrowane na interfejsie "Product"
22        # (mu-plugins/marketplace-graphql.php), NIE na "ProductUnion" — trzeba je zawinąć
23        # w inline fragment "... on Product", inaczej GraphQL zwraca błąd i cały query pada
24        # (patrz catch w getProducts() -> puste "nodes": [] -> brak produkt\xf3w na /sklep-biegacza).
25        ... on Product {
26          lowestPrice
27          offerCount
28          merchantCount
29          merchantLogos { slug name logoUrl }
30          isAffiliateCard
31          isUnavailable
32          externalImageUrl
33          brandName
34        }
35
36        image {
37          sourceUrl(size: WOOCOMMERCE_THUMBNAIL)
38          altText
39          mediaDetails {
40            width
41            height
42          }
43        }
44        
45        ... on SimpleProduct {
46          price
47          regularPrice
48          salePrice
49          onSale
50          lowestPriceInLast30Days
51          stockStatus
52          status
53          productCategories {
54            nodes {
55              id
56              name
57              slug
58            }
59          }
60        }
61        
62        ... on VariableProduct {
63          price
64          regularPrice
65          onSale
66          lowestPriceInLast30Days
67          stockStatus
68          status
69          productCategories {
70            nodes {
71              id
72              name
73              slug
74            }
75          }
76          # Listing renderuje wyłącznie zakres cen (getPriceRange -> variation.price),
77          # więc pozostałe pola wariantu są tu zbędnym obciążeniem resolvera.
78          variations(first: 100) {
79            nodes {
80              id
81              price
82            }
83          }
84        }
85        
86        ... on ExternalProduct {
87          price
88          regularPrice
89          externalUrl
90          lowestPriceInLast30Days
91          status
92          productCategories {
93            nodes {
94              id
95              name
96              slug
97            }
98          }
99        }
100        
101        ... on GroupProduct {
102          status
103          productCategories {
104            nodes {
105              id
106              name
107              slug
108            }
109          }
110        }
111      }
112    }
113  }
114`,L=`
115  query GetProductBySlug($slug: ID!) {
116    product(id: $slug, idType: SLUG) {
117      id
118      databaseId
119      name
120      slug
121      type
122      status
123      description
124      shortDescription
125      averageRating
126      reviewCount
127
128      # Marketplace: agregaty i oferty sklep\xf3w
129      lowestPrice
130      offerCount
131      merchantCount
132      isAffiliateCard
133      isUnavailable
134      lastKnownPrice
135      externalImageUrl
136      brandName
137      brandSlug
138      genderName
139      genderSlug
140            colorName
141            colorSlug
142            availableSizes
143            isUnavailable
144            gtin
145            mpn
146            originId
147            itemGroupId
148            feedProductId
149            feedSku
150            feedSpecs {
151              label
152              value
153            }
154      offers {
155        id
156        databaseId
157        merchant { databaseId slug name logoUrl websiteUrl deliveryTime isOwnStore }
158        price
159        regularPrice
160        deliveryPrice
161        deliveryTime
162        totalPrice
163        currency
164        affiliateUrl
165        availability
166        sizes
167        condition
168        variantCount
169        isOwnStore
170        lastSyncedAt
171      }
172
173      image {
174        sourceUrl(size: WOOCOMMERCE_SINGLE)
175        altText
176        mediaDetails {
177          width
178          height
179        }
180      }
181      
182      galleryImages {
183        nodes {
184          id
185          sourceUrl(size: WOOCOMMERCE_SINGLE)
186          altText
187          mediaDetails {
188            width
189            height
190          }
191        }
192      }
193      
194      reviews(first: 10) {
195        averageRating
196        edges {
197          rating
198          node {
199            id
200            databaseId
201            content
202            date
203            author {
204              node {
205                name
206              }
207            }
208          }
209        }
210      }
211      
212      ... on SimpleProduct {
213        sku
214        weight
215        height
216        length
217        width
218        price
219        regularPrice
220        salePrice
221        onSale
222        lowestPriceInLast30Days
223        stockStatus
224        stockQuantity
225        totalSales
226        attributes {
227          nodes {
228            name
229            label
230            options
231            variation
232          }
233        }
234        productCategories {
235          nodes {
236            id
237            databaseId
238            name
239            slug
240            parent {
241              node {
242                id
243                slug
244                name
245              }
246            }
247          }
248        }
249        productTags {
250          nodes {
251            id
252            name
253            slug
254          }
255        }
256        related(first: 4) {
257          nodes {
258            id
259            databaseId
260            name
261            slug
262            image {
263              sourceUrl(size: WOOCOMMERCE_THUMBNAIL)
264              altText
265            }
266            ... on SimpleProduct {
267              price
268              regularPrice
269              salePrice
270              onSale
271              stockStatus
272            }
273            ... on VariableProduct {
274              price
275              regularPrice
276              salePrice
277              onSale
278              stockStatus
279            }
280          }
281        }
282      }
283      
284      ... on VariableProduct {
285        sku
286        weight
287        height
288        length
289        width
290        price
291        regularPrice
292        onSale
293        lowestPriceInLast30Days
294        stockStatus
295        totalSales
296        attributes {
297          nodes {
298            name
299            label
300            options
301            variation
302          }
303        }
304        productCategories {
305          nodes {
306            id
307            databaseId
308            name
309            slug
310            parent {
311              node {
312                id
313                slug
314                name
315              }
316            }
317          }
318        }
319        productTags {
320          nodes {
321            id
322            name
323            slug
324          }
325        }
326        variations(first: 100) {
327          nodes {
328            id
329            databaseId
330            name
331            price
332            regularPrice
333            salePrice
334            lowestPriceInLast30Days
335            stockStatus
336            stockQuantity
337            attributes {
338              nodes {
339                name
340                value
341              }
342            }
343          }
344        }
345        defaultAttributes {
346          nodes {
347            name
348            value
349          }
350        }
351        related(first: 4) {
352          nodes {
353            id
354            databaseId
355            name
356            slug
357            image {
358              sourceUrl(size: WOOCOMMERCE_THUMBNAIL)
359              altText
360            }
361            ... on SimpleProduct {
362              price
363              regularPrice
364              salePrice
365              onSale
366              stockStatus
367            }
368            ... on VariableProduct {
369              price
370              regularPrice
371              salePrice
372              onSale
373              stockStatus
374            }
375          }
376        }
377      }
378      
379      ... on ExternalProduct {
380        sku
381        price
382        regularPrice
383        externalUrl
384        lowestPriceInLast30Days
385        productCategories {
386          nodes {
387            id
388            databaseId
389            name
390            slug
391            parent {
392              node {
393                id
394                slug
395                name
396              }
397            }
398          }
399        }
400      }
401    }
402  }
403`,_=`
404  query GetProductCategories($hideEmpty: Boolean = true) {
405    productCategories(first: 50, where: { hideEmpty: $hideEmpty }) {
406      nodes {
407        id
408        databaseId
409        name
410        slug
411        description
412        count
413        image {
414          sourceUrl(size: WOOCOMMERCE_THUMBNAIL)
415          altText
416        }
417        parent {
418          node {
419            id
420            slug
421          }
422        }
423      }
424    }
425  }
426`,D=`
427  query GetBestsellers($first: Int = 4) {
428    products(
429      first: $first
430      # typeNotIn: EXTERNAL — bestsellery mają być produktami, kt\xf3re faktycznie fizycznie
431      # sprzedajemy (SimpleProduct/VariableProduct), nie kartami afiliacyjnymi (ExternalProduct).
432      # Karty afiliacyjne nie mają "price"/"regularPrice" pobieranych w tym zapytaniu (brak
433      # fragmentu "... on ExternalProduct"), stąd renderowały się z "0,00 zł" i bez zdjęcia.
434      where: { orderby: { field: TOTAL_SALES, order: DESC }, typeNotIn: EXTERNAL }
435    ) {
436      nodes {
437        id
438        databaseId
439        name
440        slug
441        image {
442          sourceUrl(size: WOOCOMMERCE_THUMBNAIL)
443          altText
444        }
445        ... on SimpleProduct {
446          price
447          regularPrice
448          salePrice
449          onSale
450          stockStatus
451          productCategories {
452            nodes {
453              id
454              name
455              slug
456            }
457          }
458        }
459        ... on VariableProduct {
460          price
461          regularPrice
462          onSale
463          stockStatus
464          productCategories {
465            nodes {
466              id
467              name
468              slug
469            }
470          }
471        }
472      }
473    }
474  }
475`;(0,r.cache)(async e=>{let t=await A(L,{slug:e},{next:{revalidate:60,tags:["products",`product-${e}`]}});return t.product?{...t.product,name:(0,v.cleanProductTitle)(t.product.name)}:null}),(0,r.cache)(async(e=!0)=>
475{if(E())return[];try{return(await A(_,{hideEmpty:e},{next:{revalidate:3600}})).productCategories.nodes}catch(e){return console.error("Error fetching product categories:",e),[]}}),(0,r.cache)(async(e=4)=>{if(E())return[];try{return(await A(D,{first:e},{next:{revalidate:300}})).products.nodes}catch(e){return console.error("Error fetching bestsellers:",e),[]}}),(0,r.cache)(async e=>{if(E()||0===e.length)return[];try{let t=await A(R,{first:e.length,where:{slugIn:[...e],status:"publish"}},{next:{revalidate:300,tags:["products","shop"]}}),r=(t.products?.nodes??[]).map(e=>({...e,name:(0,v.cleanProductTitle)(e.name)}));return(0,v.orderProductsBySlugs)(r,e)}catch(e){return console.error("Error fetching products by slugs:",e),[]}});let I={freeShipping:{text:"Darmowa dostawa",threshold:150},securePayments:{text:"Bezpieczne płatności",description:"Stripe, BLIK, P24"},returnPolicy:{text:"14 dni na zwrot",description:"bez podania przyczyny"}},U=`
476  query GetProductBenefits {
477    checkoutOptions {
478      benefitFreeShippingText
479      benefitFreeShippingThreshold
480      benefitSecurePaymentsText
481      benefitSecurePaymentsDesc
482      benefitReturnPolicyText
483      benefitReturnPolicyDesc
484    }
485  }
486`;(0,r.cache)(async()=>{if(E())return I;try{let e=(await A(U,{},{next:{revalidate:3600}})).checkoutOptions;if(!e)return I;return{freeShipping:{text:e.benefitFreeShippingText||I.freeShipping.text,threshold:e.benefitFreeShippingThreshold??I.freeShipping.threshold},securePayments:{text:e.benefitSecurePaymentsText||I.securePayments.text,description:e.benefitSecurePaymentsDesc||I.securePayments.description},returnPolicy:{text:e.benefitReturnPolicyText||I.returnPolicy.text,description:e.benefitReturnPolicyDesc||I.returnPolicy.description}}}catch(e){return console.error("Error fetching product benefits:",e),I}}),e.i(413930);var M=e.i(597745);e.i(656910);var B=e.i(390964),H=e.i(777384),$=e.i(375679),G=e.i(28015);function W({title:e,children:a,defaultOpen:s=!0}){let[l,i]=(0,r.useState)(s);return(0,t.jsxs)("div",{className:"border-b border-slate-200",children:[(0,t.jsxs)("button",{onClick:()=>i(!l),className:"w-full px-4 py-3.5 flex items-center justify-between hover:bg-slate-50 transition-colors",children:[(0,t.jsx)("span",{className:"text-sm font-medium text-slate-800",children:e}),l?(0,t.jsx)(h.ChevronUp,{className:"h-5 w-5 text-slate-400"}):(0,t.jsx)(u.ChevronDown,{className:"h-5 w-5 text-slate-400"})]}),l&&(0,t.jsx)("div",{className:"px-4 pb-4 space-y-1",children:a})]})}function F({label:e,checked:r,onChange:a,count:s}){return(0,t.jsxs)("button",{type:"button",onClick:a,className:"w-full flex items-center gap-3 py-2 cursor-pointer group text-left",children:[(0,t.jsx)("div",{className:`w-5 h-5 rounded border-2 flex items-center justify-center transition-colors flex-shrink-0 ${r?"bg-brand-blue border-brand-blue":"border-slate-300 group-hover:border-brand-blue"}`,children:r&&(0,t.jsx)(o.Check,{className:"w-3 h-3 text-white",strokeWidth:3})}),(0,t.jsx)("span",{className:"text-slate-600 text-sm group-hover:text-slate-900 flex-1",children:e}),void 0!==s&&(0,t.jsxs)("span",{className:"text-xs text-slate-400",children:["(",s,")"]})]})}function K({initialProducts:e,categories:u,bestsellers:h,filters:b,currentCategory:y,pageTitle:j="Sklep biegacza",productCount:w,pageDescription:v="Znajdź wszystko, czego potrzebujesz do biegania - od książek i poradników, przez elektronikę, po akcesoria i gadżety dla biegaczy.",showCategoryBoxes:P=!1,featuredBooks:C=[],featuredMugs:z=[],adBanners:E={}}){let[T,O]=(0,r.useState)(!1),A=(0,G.useBottomBarVisibility)(),[R,L]=(0,r.useState)("default"),[_,D]=(0,r.useState)("grid"),[I,U]=(0,r.useState)(!1),[K,Q]=(0,r.useState)(!1),[q,V]=(0,r.useState)(93),Z=(0,r.useRef)(null),X=(0,r.useRef)(null),J=(0,r.useRef)(!1),Y=(0,r.useRef)(""),ee=(0,r.useRef)(""),[et,er]=(0,r.useState)({search:"",category:y||"",brand:"",color:""});(0,r.useEffect)(()=>{let e=parseFloat(getComputedStyle(document.documentElement).getPropertyValue("--layout-header-height"));!Number.isNaN(e)&&e>0&&queueMicrotask(()=>V(e))},[]),(0,r.useEffect)(()=>{let e=X.current;if(!e)return;let t=new IntersectionObserver(([e])=>{let t=!e.isIntersecting;U(t),t&&J.current&&Q(!0)},{threshold:0});return t.observe(e),()=>t.disconnect()},[]),(0,r.useEffect)(()=>{let e=e=>{V(e.detail.headerHeight),J.current=e.detail.isCollapsed,I?Q(e.detail.isCollapsed):Q(!1)};return window.addEventListener("headerCollapsedChange",e),()=>window.removeEventListener("headerCollapsedChange",e)},[I]);let ea=(0,r.useMemo)(()=>{let t=[...e];if(et.search){let e=et.search.toLowerCase();t=t.filter(t=>t.name.toLowerCase().includes(e))}return t.sort((e,t)=>
486{let r=e=>{if(!e)return 0;let t=e.match(/[\d.,]+/);return t&&parseFloat(t[0].replace(",","."))||0};switch(R){case"price-asc":return r(e.price)-r(t.price);case"price-desc":return r(t.price)-r(e.price);case"name":return e.name.localeCompare(t.name);default:return 0}}),t},[e,et,R]);(0,r.useEffect)(()=>{if(0===ea.length)return;let e=ea.map(e=>e.databaseId).join(","),t=`${et.category||"all"}|${et.brand||"all"}|${et.color||"all"}|${R}|${e}`;Y.current!==t&&(Y.current=t,(0,$.trackEcommerce)("view_item_list",ea.slice(0,20).map(e=>({item_id:String(e.databaseId),item_name:e.name,price:0,item_category:e.productCategories?.nodes?.[0]?.name})),{item_list_name:"shop_catalog",item_list_id:et.category||"shop_all"}))},[ea,et.category,et.brand,et.color,R]),(0,r.useEffect)(()=>{let e=et.search.trim();e.length<2||ee.current!==e&&(ee.current=e,(0,$.trackEvent)("search",{search_term:e,source:"shop_filters",results_count:ea.length,category:et.category||"all"}))},[et.search,et.category,ea.length]);let es=u.filter(e=>!e.parent),el=e=>u.filter(t=>t.parent?.node.slug===e),ei=(0,r.useMemo)(()=>u.filter(e=>!e.parent).reduce((e,t)=>{let r=u.filter(e=>e.parent?.node?.slug===t.slug).reduce((e,t)=>e+(t.count??0),0);return e+(t.count??0)+r},0),[u]),en=w??(ei>0?ei:ea.length),eo=et.category||et.brand||et.color,ec=()=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(W,{title:"Kategorie produktów",children:[(0,t.jsxs)(a.default,{href:"/sklep-biegacza",className:"w-full flex items-center gap-3 py-2 cursor-pointer group text-left",children:[(0,t.jsx)("div",{className:`w-5 h-5 rounded border-2 flex items-center justify-center transition-colors flex-shrink-0 ${!et.category?"bg-brand-blue border-brand-blue":"border-slate-300 group-hover:border-brand-blue"}`,children:!et.category&&(0,t.jsx)(o.Check,{className:"w-3 h-3 text-white",strokeWidth:3})}),(0,t.jsx)("span",{className:"text-slate-600 text-sm group-hover:text-slate-900 flex-1",children:"Wszystkie produkty"})]}),es.map(e=>{let r=el(e.slug),s=et.category===e.slug;return(0,t.jsxs)("div",{children:[(0,t.jsxs)(a.default,{href:`/sklep-biegacza/${e.slug}`,className:"w-full flex items-center gap-3 py-2 cursor-pointer group text-left",children:[(0,t.jsx)("div",{className:`w-5 h-5 rounded border-2 flex items-center justify-center transition-colors flex-shrink-0 ${s?"bg-brand-blue border-brand-blue":"border-slate-300 group-hover:border-brand-blue"}`,children:s&&(0,t.jsx)(o.Check,{className:"w-3 h-3 text-white",strokeWidth:3})}),(0,t.jsx)("span",{className:"text-slate-600 text-sm group-hover:text-slate-900 flex-1",children:e.name}),void 0!==e.count&&(0,t.jsxs)("span",{className:"text-xs text-slate-400",children:["(",e.count,")"]})]}),r.length>0&&(0,t.jsx)("div",{className:"ml-8 space-y-1 mt-1",children:r.map(e=>(0,t.jsxs)(a.default,{href:`/sklep-biegacza/${e.slug}`,className:"w-full flex items-center gap-3 py-2 cursor-pointer group text-left",children:[(0,t.jsx)("div",{className:`w-5 h-5 rounded border-2 flex items-center justify-center transition-colors flex-shrink-0 ${et.category===e.slug?"bg-brand-blue border-brand-blue":"border-slate-300 group-hover:border-brand-blue"}`,children:et.category===e.slug&&(0,t.jsx)(o.Check,{className:"w-3 h-3 text-white",strokeWidth:3})}),(0,t.jsx)("span",{className:"text-slate-600 text-sm group-hover:text-slate-900 flex-1",children:e.name}),void 0!==e.count&&(0,t.jsxs)("span",{className:"text-xs text-slate-400",children:["(",e.count,")"]})]},e.id))})]},e.id)})]}),b.brands.length>0&&(0,t.jsxs)(W,{title:"Marka",children:[(0,t.jsx)(F,{label:"Wszystkie marki",checked:!et.brand,onChange:()=>er({...et,brand:""})}),b.brands.map(e=>(0,t.jsx)(F,{label:e.name,checked:et.brand===e.slug,onChange:()=>er({...et,brand:et.brand===e.slug?"":e.slug}),count:e.count},e.slug))]}),b.colors.length>0&&(0,t.jsxs)(W,{title:"Kolor",children:[(0,t.jsx)(F,{label:"Wszystkie kolory",checked:!et.color,onChange:()=>er({...et,color:""})}),b.colors.map(e=>(0,t.jsx)(F,{label:e.name,checked:et.color===e.slug,onChange:()=>er({...et,color:et.color===e.slug?"":e.slug}),count:e.count},e.slug))]})]});return(0,t.jsxs)("div",{className:"min-h-screen bg-brand-light/80",children:[(0,t.jsx)("div",{className:"relative bg-chevron-pattern pt-[30px] pb-3 overflow-hidden",children:(0,t.jsxs)("div",{className:"wrapper relative z-10",children:[(0,t.jsxs)(m.ScrollHintContainer,{as:"nav",settle:"end","aria-label":"Breadcrumb",className:"flex items-center justify-start md:justify-center gap-1 text-[13px] text-slate-500 mb-4 font-medium",children:[(0,t.jsxs)(a.default,{href:"/",className:"flex items-center gap-1 flex-shrink-0 whitespace-nowrap hover:text-brand-blue transition-colors",children:[(0,t.jsx)(x.House,{className:"h-3.5 w-3.5 flex-shrink-0","aria-hidden":"true"}),"TreningBiegacza.pl"]}),(0,t.jsx)(s.ChevronRight,{className:"h-3 w-3 mx-1 text-slate-400 flex-shrink-0"}),y?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(a.default,{href:"/sklep-biegacza",className:"flex-shrink-0 whitespace-nowrap hover:text-brand-blue transition-colors",children:"Sklep biegacza"}),(0,t.jsx)(s.ChevronRight,{className:"h-3 w-3 mx-1 text-slate-400 flex-shrink-0"}),(0,t.jsx)("span",{className:"flex-shrink-0 whitespace-nowrap text-slate-900",children:j})]}):(0,t.jsx)("span",{className:"flex-shrink-0 whitespace-nowrap text-slate-900",children:"Sklep biegacza"})]}),(0,t.jsx)(B.AdSlot,{slot:H.AD_SLOTS.SHOP_HEADER_LEADERBOARD.slot,format:H.AD_SLOTS.SHOP_HEADER_LEADERBOARD.format,width:H.AD_SLOTS.SHOP_HEADER_LEADERBOARD.width,height:H.AD_SLOTS.SHOP_HEADER_LEADERBOARD.height,banners:[...E[H.AD_SLOTS.SHOP_HEADER_LEADERBOARD.slot]??[],...E[H.AD_SLOTS.GLOBAL_TOP_LEADERBOARD.slot]??[]],closeable:!0,className:"flex w-full justify-center mb-6"}),(0,t.jsx)(p.PageHeading,{count:en,children:j}),(0,t.jsx)("p",{className:"text-text-secondary text-base text-center max-w-3xl mx-auto leading-relaxed",children:v})]})}),P&&u.length>0&&(0,t.jsx)(k.CategoryCarousel,{categories:es.map(e=>{let t=el(e.slug).reduce((e,t)=>
486e+(t.count??0),0);return{...e,count:(e.count??0)+t}})}),(0,t.jsxs)("div",{className:"container mx-auto px-4 py-8",children:[(0,t.jsxs)("div",{className:"flex flex-col lg:flex-row gap-8",children:[(0,t.jsxs)("aside",{className:"hidden lg:block w-80 flex-shrink-0",children:[(0,t.jsxs)("div",{className:"bg-white rounded-xl border border-slate-200 sticky top-4 overflow-hidden z-10",children:[(0,t.jsxs)("div",{className:"px-4 py-3 border-b border-slate-200 flex items-center justify-between gap-3",children:[(0,t.jsxs)("select",{value:R,onChange:e=>L(e.target.value),className:"flex-1 px-3 py-2 text-sm border border-slate-300 rounded-lg bg-white focus:outline-none focus:ring-2 focus:ring-brand-blue",children:[(0,t.jsx)("option",{value:"default",children:"Domyślnie"}),(0,t.jsx)("option",{value:"price-asc",children:"Cena: rosnąco"}),(0,t.jsx)("option",{value:"price-desc",children:"Cena: malejąco"}),(0,t.jsx)("option",{value:"name",children:"Nazwa A-Z"})]}),(0,t.jsxs)("div",{className:"flex items-center border border-slate-300 rounded-lg overflow-hidden",children:[(0,t.jsx)("button",{onClick:()=>D("list"),className:(0,g.cn)("p-2 transition-colors","list"===_?"bg-brand-blue text-white":"bg-white text-slate-600 hover:bg-slate-50"),children:(0,t.jsx)(c.List,{className:"h-4 w-4"})}),(0,t.jsx)("button",{onClick:()=>D("grid"),className:(0,g.cn)("p-2 transition-colors","grid"===_?"bg-brand-blue text-white":"bg-white text-slate-600 hover:bg-slate-50"),children:(0,t.jsx)(d.Grid,{className:"h-4 w-4"})})]})]}),(0,t.jsx)("div",{className:"p-4 border-b border-slate-200",children:(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(i.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-400"}),(0,t.jsx)("input",{type:"text",placeholder:"Szukaj produktu...",value:et.search,onChange:e=>er({...et,search:e.target.value}),className:"w-full pl-10 pr-4 py-2.5 text-sm border border-slate-200 rounded-full bg-brand-light focus:outline-none focus:ring-2 focus:ring-brand-blue focus:border-transparent placeholder:text-slate-400"})]})}),(0,t.jsxs)("div",{className:"px-4 py-3 border-b border-slate-200 flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(n.SlidersHorizontal,{className:"w-4 h-4 text-brand-blue"}),(0,t.jsx)("span",{className:"font-bold text-sm text-slate-800 uppercase tracking-wide",children:"Filtry"})]}),eo&&(0,t.jsx)("button",{onClick:()=>{er({search:"",category:y||"",brand:"",color:""})},className:"text-xs text-brand-blue hover:text-brand-blueDark font-medium",children:"Wyczyść"})]}),(0,t.jsx)("div",{children:ec()})]}),(0,t.jsx)("div",{className:"mt-6 overflow-hidden",children:(0,t.jsx)(B.AdSlot,{slot:H.AD_SLOTS.SHOP_SIDEBAR_RECTANGLE.slot,format:H.AD_SLOTS.SHOP_SIDEBAR_RECTANGLE.format,width:H.AD_SLOTS.SHOP_SIDEBAR_RECTANGLE.width,height:H.AD_SLOTS.SHOP_SIDEBAR_RECTANGLE.height,banners:E[H.AD_SLOTS.SHOP_SIDEBAR_RECTANGLE.slot]??[]})}),h.length>0&&(0,t.jsx)("div",{className:"mt-6",children:(0,t.jsx)(N,{products:h})})]}),T&&(0,t.jsxs)("div",{className:"fixed inset-x-0 top-0 z-[80] lg:hidden",style:{bottom:A?"calc(56px + env(safe-area-inset-bottom, 0px))":0},children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-black/50",onClick:()=>O(!1)}),(0,t.jsxs)("div",{className:"absolute left-0 top-0 bottom-0 w-80 max-w-full bg-white shadow-xl flex flex-col",children:[(0,t.jsx)("div",{className:"flex-shrink-0 p-4 bg-white border-b border-slate-200",children:(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)(i.Search,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-slate-400"}),(0,t.jsx)("input",{type:"text",placeholder:"Szukaj produktu...",value:et.search,onChange:e=>er({...et,search:e.target.value}),className:"w-full pl-10 pr-4 py-2.5 text-sm border border-slate-200 rounded-full bg-brand-light focus:outline-none focus:ring-2 focus:ring-brand-blue focus:border-transparent placeholder:text-slate-400"})]})}),(0,t.jsxs)("div",{className:"flex-shrink-0 bg-white border-b border-slate-200 px-4 py-3 flex items-center justify-between",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)(n.SlidersHorizontal,{className:"w-4 h-4 text-brand-blue"}),(0,t.jsx)("span",{className:"font-bold text-sm text-slate-800 uppercase tracking-wide",children:"Filtry"})]}),(0,t.jsx)("button",{onClick:()=>O(!1),children:(0,t.jsx)(l.X,{className:"w-5 h-5 text-slate-400"})})]}),(0,t.jsx)("div",{className:"flex-1 overflow-y-auto scrollbar-blue",children:ec()}),(0,t.jsx)("div",{className:"flex-shrink-0 bg-white border-t border-slate-200 p-4",children:(0,t.jsxs)("button",{onClick:()=>O(!1),className:"w-full bg-brand-blue hover:bg-brand-blueDark text-white font-bold py-3 rounded-full transition-colors",children:["Pokaż ",en," produktów"]})})]})]}),(0,t.jsxs)("main",{className:"flex-1",children:[(0,t.jsx)("div",{ref:X,className:"lg:hidden","aria-hidden":"true",style:{height:`${q}px`,marginTop:`-${q}px`}}),(0,t.jsx)("div",{ref:Z,className:(0,g.cn)("lg:hidden transition-all duration-300 ease-out",I&&"fixed left-0 right-0 z-20 bg-white shadow-sm",K&&"-translate-y-full"),style:I?{top:K?0:`${q}px`}:void 0,children:(0,t.jsxs)("div",{className:(0,g.cn)("flex flex-nowrap items-center justify-between gap-2 py-2.5",I&&"px-4"),children:[(0,t.jsxs)("button",{onClick:()=>O(!0),className:"flex h-9 flex-shrink-0 items-center gap-1.5 px-2.5 border border-slate-300 rounded-lg bg-white text-slate-600 hover:bg-slate-50 text-sm font-medium whitespace-nowrap",children:[(0,t.jsx)(n.SlidersHorizontal,{className:"h-4 w-4 flex-shrink-0"}),"Filtry"]}),(0,t.jsxs)("div",{className:"flex flex-1 items-center justify-end gap-2 min-w-0",children:[(0,t.jsxs)("select",{value:R,onChange:e=>L(e.target.value),className:"h-9 min-w-0 flex-1 px-2.5 text-sm border border-slate-300 rounded-lg bg-white focus:outline-none focus:ring-2 focus:ring-brand-blue",children:[(0,t.jsx)("option",{value:"default",children:"Domyślnie"}),(0,t.jsx)("option",{value:"price-asc",children:"Cena: rosnąco"}),(0,t.jsx)("option",{value:"price-desc",children:"Cena: malejąco"}),(0,t.jsx)("option",{value:"name",children:"Nazwa A-Z"})]}),(0,t.jsxs)("div",{className:"flex h-9 flex-shrink-0 items-center border border-slate-300 rounded-lg overflow-hidden",children:[(0,t.jsx)("button",{onClick:()=>D("list"),className:(0,g.cn)("flex h-full w-9 items-center justify-center transition-colors","list"===_?"bg-brand-blue text-white":"bg-white text-slate-600 hover:bg-slate-50"),"aria-label":"Widok listy",children:(0,t.jsx)(c.List,{className:"h-4 w-4"})}),(0,t.jsx)("button",{onClick:()=>D("grid"),className:(0,g.cn)("flex h-full w-9 items-center justify-center transition-colors","grid"===_?"bg-brand-blue text-white":"bg-white text-slate-600 hover:bg-slate-50"),"aria-label":"Widok siatki",children:(0,t.jsx)(d.Grid,{className:"h-4 w-4"})})]})]})]})}),P&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(S,{title:"Książki dla biegaczy",categorySlug:M.FEATURED_BOOKS_CATEGORY_SLUG,products:C}),(0,t.jsx)(S,{title:"Kubki na prezent dla biegacza",categorySlug:M.FEATURED_MUGS_CATEGORY_SLUG,products:z})]}),P&&(C.length>0||z.length>0)&&(0,t.jsx)("h2",{className:"text-xl font-bold text-slate-900 mb-4 mt-2 lg:mt-0",children:"Wszystkie produkty"}),ea.length>0?(0,t.jsx)(f,{products:ea,viewMode:_}):(0,t.jsxs)("div",{className:"text-center py-16 bg-white rounded-xl border border-slate-200",children:[(0,t.jsx)("div",{className:"text-6xl mb-4",children:"🔍"}),(0,t.jsx)("h3",{className:"text-xl font-bold text-slate-800 mb-2",children:"Nie znaleziono produktów"}),(0,t.jsx)("p",{className:"text-slate-500 mb-4",children:"Spróbuj zmienić kryteria filtrowania"}),(0,t.jsx)(a.default,{href:"/sklep-biegacza",className:"text-brand-blue font-medium hover:underline",children:"Pokaż wszystkie produkty"})]})]})]}),h.length>0&&(0,t.jsx)("section",{className:"mt-8 lg:hidden",children:(0,t.jsx)(N,{products:h})})]})]})}}]);

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.