PageSourceSearch

https://whipslick.ru/_next/static/chunks/0mnrsb2gw3fc9.js

js whipslick.ru collected 2026-10-04 14:08:33 UTC 64,550 bytes, 3 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,53030,e=>{"use strict";var t=e.i(43476),s=e.i(71645),r=e.i(22016),i=e.i(14282);e.s(["default",0,function({productSlug:e,outOfStock:a=!1}){let[l,n]=(0,s.useState)("idle");if(a)return(0,t.jsx)("button",{disabled:!0,className:"w-full rounded-full py-2.5 text-sm font-medium bg-white/5 text-white/30 cursor-not-allowed border border-white/10",children:"Ожидаем поступления"});async function o(){n("loading");let t=await fetch("/api/cart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({productSlug:e,quantity:1})});if(401===t.status){(0,i.addToGuestCart)(e,1),n("added"),window.dispatchEvent(new Event("cart-updated"));return}if(409===t.status){n("limit"),setTimeout(()=>n("idle"),2500);return}n("added"),window.dispatchEvent(new Event("cart-updated"))}return"limit"===l?(0,t.jsx)("button",{disabled:!0,className:"w-full rounded-full py-2.5 text-sm font-medium bg-white/5 text-yellow-400/80 cursor-not-allowed border border-yellow-400/20",children:"Достигнут лимит"}):"added"===l?(0,t.jsxs)("div",{className:"flex gap-2 w-full",children:[(0,t.jsx)("div",{className:"flex-1 rounded-full py-2.5 text-sm font-medium bg-white/10 text-white/70 text-center",children:"✓ Добавлено"}),(0,t.jsx)(r.default,{href:"/cart",className:"flex items-center justify-center w-10 h-10 rounded-full bg-white text-black hover:bg-white/90 transition-colors shrink-0","aria-label":"Перейти в корзину",children:(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.8",children:[(0,t.jsx)("path",{d:"M6 2L3 6v14a2 2 0 002 2h14a2 2 0 002-2V6l-3-4z"}),(0,t.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),(0,t.jsx)("path",{d:"M16 10a4 4 0 01-8 0"})]})})]}):(0,t.jsx)("button",{onClick:o,disabled:"loading"===l,className:"w-full rounded-full py-2.5 text-sm font-medium bg-white text-black hover:bg-white/90 transition-colors disabled:opacity-50",children:"loading"===l?"...":"В корзину"})}])},37654,e=>{"use strict";e.s(["products",0,[{slug:"ws-1",name:"WS-1",style:"Speed",price:2990,image:"/products/ws-1.webp",images:["/products/ws-1.webp","/products/ws-1-2.webp","/products/ws-1-3.webp"],shortDescription:"Быстрая поверхность для динамичного трекинга и резких фликов.",description:"WS-1 — быстрый коврик для игроков, которым нужен лёгкий, отзывчивый и свободный глайд. Подойдёт тем, кто любит активное движение мыши, быстрые поправки в аиме и более живое ощущение скольжения.",size:"490×420 мм",color:"Matcha Green",surface:"Ткань с гладкой текстурой",country:"Китай",suitableFor:"Для динамичной игры, активного трекинга и быстрых микрокоррекций.",ozonUrl:"https://www.ozon.ru/product/whipslick-kovrik-dlya-myshki-zelenyy-5838974429/?at=1hKm1VmiC9TygqU8_LVQc2U2oZ01bdnf&sh=FaMo7Yp5fg"},{slug:"ws-2",name:"WS-2",style:"Balance",price:2990,image:"/products/ws-2.webp",images:["/products/ws-2.webp","/products/ws-2-2.webp","/products/ws-2-3.webp"],shortDescription:"Сбалансированная поверхность с уверенным ощущением контроля и плавным скольжением.",description:"WS-2 — балансный коврик для тех, кто не хочет сильного перекоса ни в скорость, ни в контроль. Он даёт собранное, универсальное ощущение в игре и подходит тем, кто ищет комфортную середину между лёгким ходом и уверенной остановкой.",size:"490×420 мм",color:"Orange",surface:"Ткань типа ZERO",country:"Китай",suitableFor:"Для игроков, которым нужен универсальный баÐ
1»Ð°Ð½Ñ без сильного перекоса в одну сторону.",ozonUrl:"https://www.ozon.ru/product/whipslick-kovrik-dlya-myshki-oranzhevyy-5838974828/?at=1hKm1VmiC9TygqU8_LVQc2U2oZ01bdnf&from_sku=5838974429&oos_search=false&sh=FaMo7Z7V9A"},{slug:"ws-3",name:"WS-3",style:"Control",price:2990,image:"/products/ws-3.webp",images:["/products/ws-3.webp","/products/ws-3-2.webp","/products/ws-3-3.webp"],shortDescription:"Контрольная поверхность для стабильной наводки, уверенной остановки и собранной игры.",description:"WS-3 — контрольный коврик для игроков, которым важны точная посадка, стабильность и предсказуемость в каждом движении. Хороший выбор для тех, кто любит более собранное ощущение под рукой и уверенную остановку в ключевой момент.",size:"490×420 мм",color:"Pink",surface:"Ультра-фибра",country:"Китай",suitableFor:"Для размеренной игры, стабильного контроля и уверенной остановки.",ozonUrl:"https://www.ozon.ru/product/whipslick-kovrik-dlya-myshki-svetlo-rozovyy-5838975162/?at=1hKm1VmiC9TygqU8_LVQc2U2oZ01bdnf&from_sku=5838974429&oos_search=false&sh=FaMo7Yp5fg"},{slug:"ws-classic",name:"WS Classic",style:"Balance",price:2990,image:"/products/ws-classic.webp",images:["/products/ws-classic.webp","/products/ws-classic-2.webp","/products/ws-classic-3.webp"],shortDescription:"Классический балансный коврик с комфортным ощущением и стабильной работой в игре.",description:"WS Classic — классический низкопрофильный коврик с ровным, понятным и комфортным ощущением. Это не толстая и не плотная модель, а такой же тонкий коврик, как и остальная линейка, с упором на универсальность, комфорт и собранную работу в игре.",size:"490×420 мм",color:"Solid Black",surface:"Ультра-прочная микроткань",country:"Китай",suitableFor:"Для игроков, которым нужен классический универсальный коврик с комфортным и стабильным ощущением.",ozonUrl:"https://www.ozon.ru/product/whipslick-kovrik-dlya-myshki-chernyy-5838975072/?at=1hKm1VmiC9TygqU8_LVQc2U2oZ01bdnf&from_sku=5838974429&oos_search=false&sh=FaMo7Yp5fg"}]])},88143,(e,t,s)=>{"use strict";function r({widthInt:e,heightInt:t,blurWidth:s,blurHeight:i,blurDataURL:a,objectFit:l}){let n=s?40*s:e,o=i?40*i:t,c=n&&o?`viewBox='0 0 ${n} ${o}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${c}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${c?"none":"contain"===l?"xMidYMid":"cover"===l?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${a}'/%3E%3C/svg%3E`}Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"getImageBlurSvg",{enumerable:!0,get:function(){return r}})}
1,87690,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r={VALID_LOADERS:function(){return a},imageConfigDefault:function(){return l}};for(var i in r)Object.defineProperty(s,i,{enumerable:!0,get:r[i]});let a=["default","imgix","cloudinary","akamai","custom"],l={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},8927,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"getImgProps",{enumerable:!0,get:function(){return c}}),e.r(33525);let r=e.r(43369),i=e.r(88143),a=e.r(87690),l=["-moz-initial","fill","none","scale-down",void 0];function n(e){return void 0!==e.default}function o(e){return void 0===e?e:"number"==typeof e?Number.isFinite(e)?e:NaN:"string"==typeof e&&/^[0-9]+$/.test(e)?parseInt(e,10):NaN}function c({src:e,sizes:t,unoptimized:s=!1,priority:d=!1,preload:h=!1,loading:u,className:x,quality:m,width:p,height:f,fill:w=!1,style:g,overrideSrc:b,onLoad:j,onLoadingComplete:v,placeholder:y="empty",blurDataURL:N,fetchPriority:k,decoding:S="async",layout:C,objectFit:_,objectPosition:E,lazyBoundary:O,lazyRoot:P,...z},M){var T;let R,L,D,{imgConf:W,showAltText:I,blurComplete:$,defaultLoader:q}=M,A=W||a.imageConfigDefault;if("allSizes"in A)R=A;else{let e=[...A.deviceSizes,...A.imageSizes].sort((e,t)=>e-t),t=A.deviceSizes.sort((e,t)=>e-t),s=A.qualities?.sort((e,t)=>e-t);R={...A,allSizes:e,deviceSizes:t,qualities:s}}if(void 0===q)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let F=z.loader||q;delete z.loader,delete z.srcSet;let G="__next_img_default"in F;if(G){if("custom"===R.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
2Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let e=F;F=t=>{let{config:s,...r}=t;return e(r)}}if(C){"fill"===C&&(w=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[C];e&&(g={...g,...e});let s={responsive:"100vw",fill:"100vw"}[C];s&&!t&&(t=s)}let U="",B=o(p),V=o(f);if((T=e)&&"object"==typeof T&&(n(T)||void 0!==T.src)){let t=n(e)?e.default:e;if(!t.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!t.height||!t.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(t)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(L=t.blurWidth,D=t.blurHeight,N=N||t.blurDataURL,U=t.src,!w)if(B||V){if(B&&!V){let e=B/t.width;V=Math.round(t.height*e)}else if(!B&&V){let e=V/t.height;B=Math.round(t.width*e)}}else B=t.width,V=t.height}let J=!d&&!h&&("lazy"===u||void 0===u);(!(e="string"==typeof e?e:U)||e.startsWith("data:")||e.startsWith("blob:"))&&(s=!0,J=!1),R.unoptimized&&(s=!0),G&&!R.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(s=!0);let H=o(m),Q=Object.assign(w?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:_,objectPosition:E}:{},I?{}:{color:"transparent"},g),X=$||"empty"===y?null:"blur"===y?`url("data:image/svg+xml;charset=utf-8,${(0,i.getImageBlurSvg)({widthInt:B,heightInt:V,blurWidth:L,blurHeight:D,blurDataURL:N||"",objectFit:Q.objectFit})}")`:`url("${y}")`,Y=l.includes(Q.objectFit)?"fill"===Q.objectFit?"100% 100%":"cover":Q.objectFit,K=X?{backgroundSize:Y,backgroundPosition:Q.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},Z=function({config:e,src:t,unoptimized:s,width:i,quality:a,sizes:l,loader:n}){if(s){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,r.getDeploymentId)();if(e){let s=t.indexOf("?");if(-1!==s){let r=new URLSearchParams(t.slice(s+1));r.get("dpl")||(r.append("dpl",e),t=t.slice(0,s)+"?"+r.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:o,kind:c}=function({deviceSizes:e,allSizes:t},s,r){if(r){let s=/(^|\s)(1?\d?\d)vw/g,i=[];for(let e;e=s.exec(r);)i.push(parseInt(e[2]));if(i.length){let s=.01*Math.min(...i);return{widths:t.filter(t=>t>=e[0]*s),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof s?{widths:e,kind:"w"}:{widths:[...new Set([s,2*s].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,i,l),d=o.length-1;return{sizes:l||"w"!==c?l:"100vw",srcSet:o.map((s,r)=>`${n({config:e,src:t,quality:a,width:s})} ${"w"===c?s:r+1}${c}`).join(", "),src:n({config:e,src:t,quality:a,width:o[d]})}}({config:R,src:e,unoptimized:s,width:B,quality:H,sizes:t,loader:F}),ee=J?"lazy":u;return{props:{...z,loading:ee,fetchPriority:k,width:B,height:V,decoding:S,className:x,style:{...Q,...K},sizes:Z.sizes,srcSet:Z.srcSet,src:b||Z.src},meta:{unoptimized:s,preload:h||d,placeholder:y,fill:w}}}},98879,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"default",{enumerable:!0,get:function(){return n}});let r=e.r(71645),i="u"<typeof window,a=i?()=>{}:r.useLayoutEffect,l=i?()=>{}:r.useEffect;function n(e){let{headManager:t,reduceComponentsToState:s}=e;function n(){if(t&&t.mountedInstances){let e=r.Children.toArray(Array.from(t.mountedInstances).filter(
2Boolean));t.updateHead(s(e))}}return i&&(t?.mountedInstances?.add(e.children),n()),a(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),a(()=>(t&&(t._pendingUpdate=n),()=>{t&&(t._pendingUpdate=n)})),l(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},25633,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r={default:function(){return p},defaultHead:function(){return h}};for(var i in r)Object.defineProperty(s,i,{enumerable:!0,get:r[i]});let a=e.r(55682),l=e.r(90809),n=e.r(43476),o=l._(e.r(71645)),c=a._(e.r(98879)),d=e.r(42732);function h(){return[(0,n.jsx)("meta",{charSet:"utf-8"},"charset"),(0,n.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function u(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===o.default.Fragment?e.concat(o.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(33525);let x=["name","httpEquiv","charSet","itemProp"];function m(e){let t,s,r,i;return e.reduce(u,[]).reverse().concat(h().reverse()).filter((t=new Set,s=new Set,r=new Set,i={},e=>{let a=!0,l=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){l=!0;let s=e.key.slice(e.key.indexOf("$")+1);t.has(s)?a=!1:t.add(s)}switch(e.type){case"title":case"base":s.has(e.type)?a=!1:s.add(e.type);break;case"meta":for(let t=0,s=x.length;t<s;t++){let s=x[t];if(e.props.hasOwnProperty(s))if("charSet"===s)r.has(s)?a=!1:r.add(s);else{let t=e.props[s],r=i[s]||new Set;("name"!==s||!l)&&r.has(t)?a=!1:(r.add(t),i[s]=r)}}}return a})).reverse().map((e,t)=>{let s=e.key||t;return o.default.cloneElement(e,{key:s})})}let p=function({children:e}){let t=(0,o.useContext)(d.HeadManagerContext);return(0,n.jsx)(c.default,{reduceComponentsToState:m,headManager:t,children:e})};("function"==typeof s.default||"object"==typeof s.default&&null!==s.default)&&void 0===s.default.__esModule&&(Object.defineProperty(s.default,"__esModule",{value:!0}),Object.assign(s.default,s),t.exports=s.default)},18556,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"ImageConfigContext",{enumerable:!0,get:function(){return a}});let r=e.r(55682)._(e.r(71645)),i=e.r(87690),a=r.default.createContext(i.imageConfigDefault)},65856,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"RouterContext",{enumerable:!0,get:function(){return r}});let r=e.r(55682)._(e.r(71645)).default.createContext(null)},70965,(e,t,s)=>{"use strict";function r(e,t){let s=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-s)<Math.abs(e-s)?t:e,t.qualities[0]):s}Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"findClosestQuality",{enumerable:!0,get:function(){return r}})},1948,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"default",{enumerable:!0,get:function(){return l}});let r=e.r(70965),i=e.r(43369);function a({config:e,src:t,width:s,quality:l}){let n=(0,i.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let s=new URLSearchParams(t.slice(e+1)),r=s.get("dpl");if(r){n=r,s.delete("dpl");let i=s.toString();t=t.slice(0,e)+(i?"?"+i:"")}}}if(t.startsWith("/")&&t.includes("?")&&e.localPatterns?.length===1&&"**"===e.localPatterns[0].pathname&&""===e.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${t}" is using a query string which is not configured in images.localPatterns.
3Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let o=(0,r.findClosestQuality)(l,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${s}&q=${o}${t.startsWith("/")&&n?`&dpl=${n}`:""}`}a.__next_img_default=!0;let l=a},5500,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0}),Object.defineProperty(s,"Image",{enumerable:!0,get:function(){return j}});let r=e.r(55682),i=e.r(90809),a=e.r(43476),l=i._(e.r(71645)),n=r._(e.r(74080)),o=r._(e.r(25633)),c=e.r(8927),d=e.r(87690),h=e.r(18556);e.r(33525);let u=e.r(65856),x=r._(e.r(1948)),m=e.r(18581),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qual
3ities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0};function f(e,t,s,r,i,a,l){let n=e?.src;e&&e["data-loaded-src"]!==n&&(e["data-loaded-src"]=n,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(e.parentElement&&e.isConnected){if("empty"!==t&&i(!0),s?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let r=!1,i=!1;s.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>r,isPropagationStopped:()=>i,persist:()=>{},preventDefault:()=>{r=!0,t.preventDefault()},stopPropagation:()=>{i=!0,t.stopPropagation()}})}r?.current&&r.current(e)}}))}function w(e){return l.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let g=(0,l.forwardRef)(({src:e,srcSet:t,sizes:s,height:r,width:i,decoding:n,className:o,style:c,fetchPriority:d,placeholder:h,loading:u,unoptimized:x,fill:p,onLoadRef:g,onLoadingCompleteRef:b,setBlurComplete:j,setShowAltText:v,sizesInput:y,onLoad:N,onError:k,...S},C)=>{let _=(0,l.useCallback)(e=>{e&&(k&&(e.src=e.src),e.complete&&f(e,h,g,b,j,x,y))},[e,h,g,b,j,k,x,y]),E=(0,m.useMergedRef)(C,_);return(0,a.jsx)("img",{...S,...w(d),loading:u,width:i,height:r,decoding:n,"data-nimg":p?"fill":"1",className:o,style:c,sizes:s,srcSet:t,src:e,ref:E,onLoad:e=>{f(e.currentTarget,h,g,b,j,x,y)},onError:e=>{v(!0),"empty"!==h&&j(!0),k&&k(e)}})});function b({isAppRouter:e,imgAttributes:t}){let s={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...w(t.fetchPriority)};return e&&n.default.preload?(n.default.preload(t.src,s),null):(0,a.jsx)(o.default,{children:(0,a.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...s},"__nimg-"+t.src+t.srcSet+t.sizes)})}let j=(0,l.forwardRef)((e,t)=>{let s=(0,l.useContext)(u.RouterContext),r=(0,l.useContext)(h.ImageConfigContext),i=(0,l.useMemo)(()=>{let e=p||r||d.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),s=e.deviceSizes.sort((e,t)=>e-t),i=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:s,qualities:i,localPatterns:"u"<typeof window?r?.localPatterns:e.localPatterns}},[r]),{onLoad:n,onLoadingComplete:o}=e,m=(0,l.useRef)(n);(0,l.useEffect)(()=>{m.current=n},[n]);let f=(0,l.useRef)(o);(0,l.useEffect)(()=>{f.current=o},[o]);let[w,j]=(0,l.useState)(!1),[v,y]=(0,l.useState)(!1),{props:N,meta:k}=(0,c.getImgProps)(e,{defaultLoader:x.default,imgConf:i,blurComplete:w,showAltText:v});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g,{...N,unoptimized:k.unoptimized,placeholder:k.placeholder,fill:k.fill,onLoadRef:m,onLoadingCompleteRef:f,setBlurComplete:j,setShowAltText:y,sizesInput:e.sizes,ref:t}),k.preload?(0,a.jsx)(b,{isAppRouter:!s,imgAttributes:N}):null]})});("function"==typeof s.default||"object"==typeof s.default&&null!==s.default)&&void 0===s.default.__esModule&&(Object.defineProperty(s.default,"__esModule",{value:!0}),Object.assign(s.default,s),t.exports=s.default)},43366,(e,t,s)=>{"use strict";Object.defineProperty(s,"__esModule",{value:!0});var r={default:function(){return d},getImageProps:function(){return c}};for(var i in r)Object.defineProperty(s,i,{enumerable:!0,get:r[i]});let a=e.r(55682),l=e.r(8927),n=e.r(5500),o=a._(e.r(1948));function c(e){let{props:t}=(0,l.getImgProps)(e,{defaultLoader:o.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0}});for(let[e,s]of Object.entries(t))void 0===s&&delete t[e];return{props:t}}let d=n.Image},57688,(e,t,s)=>{t.exports=e.r(43366)},14282,e=>{"use strict";function t(){try{return JSON.parse(localStorage.getItem("guest_cart")??"[]")}catch{return[]}}e.s(["addToGuestCart",0,function(e,s=1){let r=t(),i=r.find(t=>t.productSlug===e);i?i.quantity=Math.min(i.quantity+s,10):r.push({productSlug:e,quantity:s}),localStorage.setItem("guest_cart",JSON.stringify(r))},"clearGuestCart",0,function(){localStorage.removeItem("guest_cart")},"getGuestCart",0,t,"getGuestCartCount",0,function(){return t().reduce((e,t)=>
3e+t.quantity,0)},"removeFromGuestCart",0,function(e){let s=t().filter(t=>t.productSlug!==e);localStorage.setItem("guest_cart",JSON.stringify(s))},"updateGuestCartItem",0,function(e,s){let r=t(),i=r.findIndex(t=>t.productSlug===e);-1!==i&&(s<1?r.splice(i,1):r[i].quantity=Math.min(s,10),localStorage.setItem("guest_cart",JSON.stringify(r)))}])},69425,35465,e=>{"use strict";e.s(["PAYMENT_METHOD_BADGES",0,["МИР","VISA","Mastercard","T-Pay","СБП","SberPay"]],69425);var t=e.i(43476),s=e.i(71645),r=e.i(74080),i=e.i(22016);e.s(["default",0,function({onClose:e,onSuccess:a}){let[l,n]=(0,s.useState)("email"),[o,c]=(0,s.useState)(""),[d,h]=(0,s.useState)(""),[u,x]=(0,s.useState)(!1),[m,p]=(0,s.useState)(""),[f,w]=(0,s.useState)(!1);async function g(e){e.preventDefault(),p(""),x(!0);try{let e=await fetch("/api/auth/send-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:o})}),t=await e.json();if(!e.ok)return void p(t.error);n("otp")}catch{p("Ошибка сети. Попробуйте ещё раз.")}finally{x(!1)}}async function b(t){t.preventDefault(),p(""),x(!0);try{let t=await fetch("/api/auth/verify-otp",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:o,code:d})}),s=await t.json();if(!t.ok)return void p(s.error);a(s.user),e()}catch{p("Ошибка сети. Попробуйте ещё раз.")}finally{x(!1)}}return(0,r.createPortal)((0,t.jsx)("div",{className:"fixed inset-0 z-[200] flex items-center justify-center bg-black/70 backdrop-blur-sm",children:(0,t.jsxs)("div",{className:"w-full max-w-sm mx-4 bg-[#111] border border-white/10 rounded-2xl p-8",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,t.jsx)("h2",{className:"text-xl font-bold",children:"email"===l?"Войти":"Введите код"}),(0,t.jsx)("button",{onClick:e,className:"text-white/40 hover:text-white transition-colors text-2xl leading-none",children:"×"})]}),"email"===l?(0,t.jsxs)("form",{onSubmit:g,className:"space-y-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-white/60 mb-1.5 block",children:"Email"}),(0,t.jsx)("input",{type:"email",value:o,onChange:e=>c(e.target.value),placeholder:"[email protected]",autoComplete:"email",autoFocus:!0,required:!0,className:"w-full bg-white/5 border border-white/10 rounded-xl px-4 py-3 text-white placeholder-white/25 focus:outline-none focus:border-white/30 transition-colors"})]}),(0,t.jsxs)("label",{className:"flex items-start gap-3 cursor-pointer group",children:[(0,t.jsx)("input",{type:"checkbox",checked:f,onChange:e=>w(e.target.checked),className:"mt-0.5 shrink-0 w-4 h-4 rounded border border-white/20 bg-white/5 accent-white cursor-pointer"}),(0,t.jsxs)("span",{className:"text-xs text-white/50 leading-relaxed group-hover:text-white/70 transition-colors",children:["Я согласен(а) на"," ",(0,t.jsx)(i.default,{href:"/consent",target:"_blank",className:"underline hover:text-white/80 transition-colors",children:"обработку персональных данных"})," ","в соответствии с"," ",(0,t.jsx)(i.default,{href:"/privacy",target:"_blank",className:"underline hover:text-white/80 transition-colors",children:"политикой конфиденциальности"})]})]}),m&&(0,t.jsx)("p",{className:"text-red-400 text-sm",children:m}),(0,t.jsx)("button",{type:"submit",disabled:u||!o.trim()||!f,className:"w-full bg-white text-black font-semibold rounded-xl py-3 hover:bg-white/90 transition-colors disabled:opacity-40",children:u?"Отправка...":"Получить код"}),(0,t.jsx)("p",{className:"text-xs text-white/30 text-center",children:"На указанный email придёт 6-значный код"})]}):(0,t.jsxs)("form",{onSubmit:b,className:"space-y-4",children:[(0,t.jsxs)("p",{className:"text-sm text-white/60",children:["Код отправлен на ",(0,t.jsx)("span",{className:"text-white",children:o})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-white/60 mb-1.5 block",children:"6-значный код"}),(0,t.jsx)("input",{type:"text",inputMode:"numeric",maxLength:6,value:d,onChange:e=>h(e.target.value.replace(/\D/g,"")),placeholder:"• • • • • •",autoFocus:!0,className:"w-full bg-white/5 border border-white/10 rounded-xl px-4 py-3 text-white text-center text-2xl tracking-widest placeholder-white/30 focus:outline-none focus:border-white/30 transition-colors"})]}),m&&(0,t.jsx)("p",{className:"text-red-400 text-sm",children:m}),(0,t.jsx)("button",{type:"submit",disabled:u||d.length<6,className:"w-full bg-white text-black font-semibold rounded-xl py-3 hover:bg-white/90 transition-colors disabled:opacity-40",children:u?"Проверка...":"Войти"}),(0,t.jsx)("button",{type:"button",onClick:()=>{n("email"),h(""),p("")},className:"w-full text-white/40 text-sm hover:text-white/60 transition-colors",children:"Изменить email"})]})]})}),document.body)}],35465)},52683,e=>{"use strict";var t=e.i(43476),s=e.i(57688),r=e.i(22016),i=e.i(71645),a=e.i(37654),l=e.i(69425),n=e.i(35465);function o({items:e,onClose:l}){let n=(0,i.useRef)(null);(0,i.useEffect)(()=>{function e(e){n.current&&!n.current.contains(e.target)&&l()}return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[l]);let c=e.reduce((e,t)=>
3{let s=a.products.find(e=>e.slug===t.productSlug);return e+(s?.price??0)*t.quantity},0);return(0,t.jsxs)("div",{ref:n,className:"absolute right-0 top-full mt-3 w-80 bg-[#111] border border-white/10 rounded-2xl shadow-2xl z-50 overflow-hidden",children:[(0,t.jsx)("div",{className:"p-4 border-b border-white/10",children:(0,t.jsx)("p",{className:"text-sm font-semibold",children:"Корзина"})}),0===e.length?(0,t.jsxs)("div",{className:"p-6 text-center",children:[(0,t.jsx)("p",{className:"text-white/40 text-sm",children:"Корзина пуста"}),(0,t.jsx)(r.default,{href:"/#catalog",onClick:l,className:"inline-block mt-4 text-sm text-white/60 hover:text-white underline transition-colors",children:"Перейти в каталог"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"max-h-64 overflow-y-auto divide-y divide-white/5",children:[e.slice(0,5).map(e=>{let r=a.products.find(t=>t.slug===e.productSlug);return r?(0,t.jsxs)("div",{className:"flex items-center gap-3 p-3",children:[(0,t.jsx)("div",{className:"relative w-11 h-11 rounded-lg overflow-hidden shrink-0 bg-white/5",children:(0,t.jsx)(s.default,{src:r.image,alt:r.name,fill:!0,className:"object-cover"})}),(0,t.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,t.jsx)("p",{className:"text-sm font-medium truncate",children:r.name}),(0,t.jsxs)("p",{className:"text-xs text-white/40",children:[e.quantity," шт. · ",r.price.toLocaleString("ru-RU")," ₽"]})]})]},e.productSlug):null}),e.length>5&&(0,t.jsxs)("p",{className:"text-xs text-white/30 text-center py-2",children:["+",e.length-5," ещё"]})]}),(0,t.jsxs)("div",{className:"p-4 border-t border-white/10 space-y-3",children:[(0,t.jsxs)("div",{className:"flex justify-between text-sm",children:[(0,t.jsx)("span",{className:"text-white/50",children:"Итого"}),(0,t.jsxs)("span",{className:"font-semibold",children:[c.toLocaleString("ru-RU")," ₽"]})]}),(0,t.jsx)(r.default,{href:"/cart",onClick:l,className:"block w-full bg-white text-black text-sm font-semibold rounded-xl py-2.5 text-center hover:bg-white/90 transition-colors",children:"Посмотреть заказ"})]})]})]})}var c=e.i(14282);async function d(){let e=localStorage.getItem("guest_cart");if(!e)return;let t=JSON.parse(e);t.length&&(await fetch("/api/cart/sync",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:t})}),(0,c.clearGuestCart)())}function h(){let[e,s]=(0,i.useState)(null),[a,l]=(0,i.useState)(0),[h,u]=(0,i.useState)([]),[x,m]=(0,i.useState)(null),[p,f]=(0,i.useState)(!1),[w,g]=(0,i.useState)(!1),[b,j]=(0,i.useState)(!1);function v(){fetch("/api/cart").then(e=>e.json()).then(e=>{e.items&&(u(e.items),l(e.items.reduce((e,t)=>e+t.quantity,0)))})}function y(){fetch("/api/orders/count").then(e=>e.json()).then(e=>{"number"==typeof e.total&&m({active:e.active,total:e.total})}).catch(()=>{})}async function N(){await fetch("/api/auth/logout",{method:"POST"}),s(null),m(null),u((0,c.getGuestCart)()),l((0,c.getGuestCartCount)()),g(!1),window.dispatchEvent(new CustomEvent("auth-changed",{detail:null}))}async function k(e){s(e),await d(),v(),y(),window.dispatchEvent(new CustomEvent("auth-changed",{detail:e}))}return((0,i.useEffect)(()=>{function e(){let e=(0,c.getGuestCart)();u(e),l(e.reduce((e,t)=>e+t.quantity,0))}async function t(r){try{let t=await fetch("/api/auth/me");if(!t.ok)throw Error(`auth check failed: ${t.status}`);let r=await t.json();r.user?(s(r.user),v(),y()):e()}catch{if(r>0)return await new Promise(e=>setTimeout(e,800)),t(r-1);e()}}t(1).finally(()=>j(!0))},[]),(0,i.useEffect)(()=>{function t(){if(e)v();else{let e=(0,c.getGuestCart)();u(e),l(e.reduce((e,t)=>e+t.quantity,0))}}return window.addEventListener("cart-updated",t),()=>window.removeEventListener("cart-updated",t)},[e]),(0,i.useEffect)(()=>{function t(){e&&y()}return window.addEventListener("orders-updated",t),()=>window.removeEventListener("orders-updated",t)},[e]),b)?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[e&&"admin"===e.role&&(0,t.jsx)(r.default,{href:"/admin",className:"text-sm text-white/60 hover:text-white transition-colors",children:"Админ"}),e&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)(r.default,{href:"/orders",className:"flex items-center gap-1.5 text-sm text-white/60 hover:text-white transition-colors",children:["Заказ
3ы",x&&x.total>0&&(0,t.jsxs)("span",{className:"flex items-center gap-1",children:[(0,t.jsx)("span",{title:`${x.active} активных`,className:`min-w-[18px] h-[18px] px-1 rounded-full text-[11px] font-bold flex items-center justify-center ${x.active>0?"bg-white text-black":"bg-white/10 text-white/40"}`,children:x.active}),(0,t.jsxs)("span",{className:"text-xs text-white/30",title:`${x.total} всего`,children:["(",x.total,")"]})]})]}),(0,t.jsx)(r.default,{href:"/account",className:"text-sm text-white/60 hover:text-white transition-colors",children:"Аккаунт"})]}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsxs)("button",{onClick:()=>g(e=>!e),className:"relative flex items-center text-white/70 hover:text-white transition-colors","aria-label":"Корзина",children:[(0,t.jsxs)("svg",{width:"22",height:"22",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[(0,t.jsx)("path",{d:"M6 2L3 6v14a2 2 0 002 2h14a2 2 0 002-2V6l-3-4z"}),(0,t.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),(0,t.jsx)("path",{d:"M16 10a4 4 0 01-8 0"})]}),a>0&&(0,t.jsx)("span",{className:"absolute -top-1.5 -right-1.5 bg-white text-black text-[10px] font-bold rounded-full w-4 h-4 flex items-center justify-center",children:a>9?"9+":a})]}),w&&(0,t.jsx)(o,{items:h,onClose:()=>g(!1)})]}),e?(0,t.jsx)("button",{onClick:N,className:"text-sm text-white/40 hover:text-white/70 transition-colors",children:"Выйти"}):(0,t.jsx)("button",{onClick:()=>f(!0),className:"text-sm bg-white/10 hover:bg-white/20 border border-white/10 rounded-full px-4 py-1.5 transition-colors",children:"Войти"})]}),p&&(0,t.jsx)(n.default,{onClose:()=>f(!1),onSuccess:e=>{k(e),f(!1)}})]}):null}var u=e.i(74080);let x=[{href:"/#catalog",label:"Каталог"},{href:"/#about",label:"О бренде"},{href:"/#faq",label:"FAQ"},{href:"/#reviews",label:"Отзывы"},{href:"/#contacts",label:"Контакты"}
3];async function m(){let e=(0,c.getGuestCart)();e.length&&(await fetch("/api/cart/sync",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({items:e})}),(0,c.clearGuestCart)())}function p(){let[e,s]=(0,i.useState)(!1),[a,l]=(0,i.useState)(null),[o,d]=(0,i.useState)(!1),[h,p]=(0,i.useState)(0),[f,w]=(0,i.useState)(null);function g(){fetch("/api/orders/count").then(e=>e.json()).then(e=>{"number"==typeof e.total&&w({active:e.active,total:e.total})}).catch(()=>{})}function b(){fetch("/api/cart").then(e=>e.json()).then(e=>{e.items&&p(e.items.reduce((e,t)=>e+t.quantity,0))})}function j(e){e?b():p((0,c.getGuestCart)().reduce((e,t)=>e+t.quantity,0))}async function v(){await fetch("/api/auth/logout",{method:"POST"}),l(null),j(!1),s(!1),window.dispatchEvent(new CustomEvent("auth-changed",{detail:null})),window.location.reload()}async function y(e){l(e),await m(),b(),d(!1),s(!1),window.dispatchEvent(new CustomEvent("auth-changed",{detail:e}))}return(0,i.useEffect)(()=>{function e(e){let t=e.detail;l(t),j(!!t),t?g():w(null)}function t(){g()}function s(){j(!!a)}return fetch("/api/auth/me").then(e=>e.json()).then(e=>{e.user?(l(e.user),b(),g()):j(!1)}),window.addEventListener("auth-changed",e),window.addEventListener("orders-updated",t),window.addEventListener("cart-updated",s),()=>{window.removeEventListener("auth-changed",e),window.removeEventListener("cart-updated",s),window.removeEventListener("orders-updated",t)}},[]),(0,i.useEffect)(()=>{function e(){j(!!a)}return window.addEventListener("cart-updated",e),()=>window.removeEventListener("cart-updated",e)},[a]),(0,i.useEffect)(()=>(document.body.style.overflow=e?"hidden":"",()=>{document.body.style.overflow=""}),[e]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{onClick:()=>s(!0),className:"flex flex-col gap-1.5 p-2 text-white/70 hover:text-white transition-colors","aria-label":"Меню",children:[(0,t.jsx)("span",{className:"block w-5 h-0.5 bg-current rounded-full"}),(0,t.jsx)("span",{className:"block w-5 h-0.5 bg-current rounded-full"}),(0,t.jsx)("span",{className:"block w-5 h-0.5 bg-current rounded-full"})]}),"u">typeof document&&(0,u.createPortal)((0,t.jsxs)(t.Fragment,{children:[e&&(0,t.jsx)("div",{className:"fixed inset-0 z-[150] bg-black/60 backdrop-blur-sm",onClick:()=>s(!1)}),(0,t.jsxs)("div",{className:`fixed inset-y-0 right-0 z-[160] w-72 bg-[#111] border-l border-white/10 flex flex-col transition-transform duration-300 ${e?"translate-x-0":"translate-x-full"}`,children:[(0,t.jsxs)("div",{className:"flex items-center justify-between px-6 py-5 border-b border-white/10",children:[(0,t.jsx)("img",{src:"/logo/whipslick-logo-white.svg",alt:"WhipSlick",className:"h-7 w-auto"}),(0,t.jsx)("button",{onClick:()=>s(!1),className:"text-white/40 hover:text-white transition-colors text-2xl leading-none",children:"×"})]}),(0,t.jsxs)("nav",{className:"flex-1 px-6 py-6 space-y-1 overflow-y-auto",children:[x.map(e=>(0,t.jsx)("a",{href:e.href,onClick:()=>s(!1),className:"block py-3 text-base text-white/70 hover:text-white border-b border-white/5 transition-colors",children:e.label},e.href)),a&&(0,t.jsxs)("div",{className:"pt-4 space-y-1",children:[(0,t.jsx)(r.default,{href:"/account",onClick:()=>s(!1),className:"block py-3 text-base text-white/70 hover:text-white border-b border-white/5 transition-colors",children:"Аккаунт"}),(0,t.jsxs)(r.default,{href:"/orders",onClick:()=>s(!1),className:"flex items-center justify-between py-3 text-base text-white/70 hover:text-white border-b border-white/5 transition-colors",children:[(0,t.jsx)("span",{children:"Мои заказы"}),f&&f.total>0&&(0,t.jsxs)("span",{className:"flex items-center gap-1.5 shrink-0",children:[(0,t.jsx)("span",{className:`min-w-[20px] h-5 px-1.5 rounded-full text-xs font-bold flex items-center justify-center ${f.active>0?"bg-white text-black":"bg-white/10 text-white/40"}`,children:f.active}),(0,t.jsxs)("span",{className:"text-sm text-white/30",children:["(",f.total,")"]})]})]}),"admin"===a.role&&(0,t.jsx)(r.default,{href:"/admin",onClick:()=>s(!1),className:"block py-3 text-base text-lime-300/70 hover:text-lime-300 border-b border-white/5 transition-colors",children:"Админ панель"})]})]}),(0,t.jsxs)("div",{className:"px-6 py-6 border-t border-white/10 space-y-3",children:[(0,t.jsxs)(r.default,{href:"/cart",onClick:()=>s(!1),className:"flex items-center justify-between w-full bg-white/5 border border-white/10 rounded-xl px-4 py-3 hover:bg-white/10 transition-colors",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsxs)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",children:[(0,t.jsx)("path",{d:"M6 2L3 6v14a2 2 0 002 2h14a2 2 0 002-2V6l-3-4z"}),(0,t.jsx)("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),(0,t.jsx)("path",{d:"M16 10a4 4 0 01-8 0"})]}),(0,t.jsx)("span",{className:"text-sm font-medium",children:"Корзина"})]}),h>0&&(0,t.jsx)("span",{className:"bg-white text-black text-xs font-bold rounded-full w-5 h-5 flex items-center justify-center",children:h>9?"9+":h})]}),a?(0,t.jsxs)("div",{className:"space-y-2",children:[(0,t.jsx)("p",{className:"text-xs text-white/30 truncate px-1",children:a.email}),(0,t.jsx)("button",{onClick:v,className:"w-full text-sm text-red-400/70 hover:text-red-400 border border-red-400/20 rounded-xl py-3 transition-colors",children:"Выйти"})]}):(0,t.jsx)("button",{onClick:()=>{d(!0)},className:"w-full bg-white text-black font-semibold rounded-xl py-3 hover:bg-white/90 transition-colors text-sm",children:"Войти"})]})]})]}),document.body),o&&(0,t.jsx)(n.default,{onClose:()=>d(!1),onSuccess:y}
3)]})}var f=e.i(53030);let w=e=>new Date(e).toLocaleDateString("ru-RU",{day:"2-digit",month:"long",year:"numeric"});function g({value:e,size:s=16}){return(0,t.jsx)("div",{className:"flex items-center gap-0.5","aria-label":`Оценка ${e} из 5`,children:[1,2,3,4,5].map(r=>(0,t.jsx)("svg",{width:s,height:s,viewBox:"0 0 24 24",fill:r<=Math.round(e)?"currentColor":"none",stroke:"currentColor",strokeWidth:"1.5",className:r<=Math.round(e)?"text-amber-400":"text-white/20",children:(0,t.jsx)("path",{d:"M12 2l2.9 6.2 6.6.9-4.8 4.8 1.2 6.7L12 17.4 6.1 20.6l1.2-6.7L2.5 9.1l6.6-.9z"})},r))})}function b({value:e,onChange:s}){let[r,a]=(0,i.useState)(0),l=r||e;return(0,t.jsx)("div",{className:"flex items-center gap-1",onMouseLeave:()=>a(0),children:[1,2,3,4,5].map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>s(e),onMouseEnter:()=>a(e),"aria-label":`${e} из 5`,className:"transition-transform hover:scale-110",children:(0,t.jsx)("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:e<=l?"currentColor":"none",stroke:"currentColor",strokeWidth:"1.5",className:e<=l?"text-amber-400":"text-white/25",children:(0,t.jsx)("path",{d:"M12 2l2.9 6.2 6.6.9-4.8 4.8 1.2 6.7L12 17.4 6.1 20.6l1.2-6.7L2.5 9.1l6.6-.9z"})})},e))})}function j({onCreated:e}){let[s,r]=(0,i.useState)(0),[a,l]=(0,i.useState)(""),[n,o]=(0,i.useState)(""),[c,d]=(0,i.useState)(!1),[h,u]=(0,i.useState)("");async function x(){if(0===s)return void u("Поставьте оценку");d(!0),u("");try{let t=await fetch("/api/reviews",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({rating:s,text:a,authorName:n.trim()||void 0})}),r=await t.json();if(!t.ok)return void u(r.error??"Ошибка");e()}catch{u("Ошибка сети. Попробуйте ещё раз.")}finally{d(!1)}}return(0,t.jsxs)("div",{className:"rounded-3xl border border-white/10 bg-white/[0.03] p-6 space-y-4",children:[(0,t.jsx)("h3",{className:"font-semibold",children:"Оставить отзыв"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-white/60 mb-2 block",children:"Ваша оценка"}),(0,t.jsx)(b,{value:s,onChange:r})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-white/60 mb-1.5 block",children:"Имя"}),(0,t.jsx)("input",{type:"text",value:n,onChange:e=>o(e.target.value),placeholder:"Необязательно — можно анонимно",maxLength:60,className:"w-full bg-white/5 border border-white/10 rounded-xl px-4 py-3 text-white placeholder-white/30 focus:outline-none focus:border-white/30 transition-colors"})]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("label",{className:"text-sm text-white/60 mb-1.5 block",children:"Отзыв"}),(0,t.jsx)("textarea",{value:a,onChange:e=>l(e.target.value),rows:4,maxLength:1e3,placeholder:"Как вам коврик?",className:"w-full bg-white/5 border border-white/10 rounded-xl px-4 py-3 text-white placeholder-white/30 focus:outline-none focus:border-white/30 transition-colors resize-none"})]}),h&&(0,t.jsx)("p",{className:"text-red-400 text-sm",children:h}),(0,t.jsx)("button",{onClick:x,disabled:c,className:"w-full bg-white text-black font-semibold rounded-xl py-3 hover:bg-white/90 transition-colors disabled:opacity-50",children:c?"Отправляем...":"Опубликовать"})]})}function v({review:e,onChanged:s}){let[r,a]=(0,i.useState)(!1),[l,n]=(0,i.useState)(e.addendumText??""),[o,c]=(0,i.useState)(!1),[d,h]=(0,i.useState)(""),[u,x]=(0,i.useState)(!1);async function m(){c(!0),h("");try{let t=await fetch(`/api/reviews/${e.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({addendum:l.trim()})}),r=await t.json();if(!t.ok)return void h(r.error??"Ошибка");a(!1),s()}catch{h("Ошибка сети")}finally{c(!1)}}async function p(){c(!0);try{(await fetch(`/api/reviews/${e.id}`,{method:"DELETE"})).ok&&s()}finally{c(!1)}}return r?(0,t.jsxs)("div",{className:"mt-4 pt-4 border-t border-white/[0.07] space-y-3",children:[(0,t.jsx)("textarea",{value:l,onChange:e=>n(e.target.value),rows:3,maxLength:1e3,placeholder:"Что хотите добавить?",className:"w-full bg-white/5 border border-white/10 rounded-xl px-3 py-2 text-sm text-white placeholder-white/30 focus:outline-none focus:border-white/30 transition-colors resize-none"}),d&&(0,t.jsx)("p",{className:"text-red-400 text-xs",children:d}),(0,t.jsxs)("div",{className:"flex gap-2",children:[(0,t.jsx)("button",{onClick:()=>{a(!1),n(e.addendumText??"")},className:"flex-1 text-white/40 hover:text-white text-xs py-2 transition-colors",children:"Отмена"}),(0,t.jsx)("button",{onClick:m,disabled:o,className:"flex-1 bg-white text-black text-xs font-semibold rounded-lg py-2 hover:bg-white/90 transition-colors disabled:opacity-50",children:o?"...":"Сохранить"})]})]}):(0,t.jsxs)("div",{className:"mt-4 pt-4 border-t border-white/[0.07] flex items-center gap-3",children:[(0,t.jsx)("button",{onClick:()=>a(!0),className:"text-xs text-white/40 hover:text-white transition-colors",children:e.addendumText?"Изменить дополнение":"Дополнить"}),u?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:p,disabled:o,className:"text-xs text-red-400 hover:text-red-300 transition-colors disabled:opacity-50",children:o?"...":"Точно удалить"}),(0,t.jsx)("button",{onClick:()=>x(!1),className:"text-xs text-white/30 hover:text-white/60 transition-colors",children:"Отмена"})]}):(0,t.jsx)("button",{onClick:()=>x(!0),className:"text-xs text-white/30 hover:text-red-400 transition-colors",children:"Удалить"})]})}function y(){let[e,s]=(0,i.useState)(null),[r,a]=(0,i.useState)(!0),l=(0,i.useCallback)(async()=>{try{let e=await fetch("/api/reviews");s(await e.json())}catch{}finally{a(!1)}},[]);(0,i.useEffect)(()=>
3{l()},[l]);let n=e?.reviews??[],o=e?.viewer;return(0,t.jsxs)("section",{id:"reviews",className:"mx-auto max-w-7xl px-6 py-20",children:[(0,t.jsx)("p",{className:"text-sm uppercase tracking-[0.28em] text-white/40",children:"Отзывы"}),(0,t.jsxs)("div",{className:"mt-3 flex flex-wrap items-end justify-between gap-4",children:[(0,t.jsx)("h2",{className:"text-3xl font-semibold md:text-4xl",children:"Что говорят покупатели"}),e?.average!==null&&e?.average!==void 0&&(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("span",{className:"text-3xl font-bold",children:e.average.toFixed(1)}),(0,t.jsxs)("div",{children:[(0,t.jsx)(g,{value:e.average,size:18}),(0,t.jsxs)("p",{className:"text-xs text-white/40 mt-1",children:["по последним ",e.averageCount," ",1===e.averageCount?"отзыву":"отзывам"]})]})]})]}),r?(0,t.jsx)("p",{className:"mt-10 text-white/30",children:"Загрузка..."}):(0,t.jsxs)("div",{className:"mt-10 grid gap-5 lg:grid-cols-3",children:[(0,t.jsx)("div",{className:"lg:col-span-2",children:0===n.length?(0,t.jsxs)("div",{className:"rounded-3xl border border-white/10 bg-white/[0.03] p-8 text-center",children:[(0,t.jsx)("p",{className:"text-white/50",children:"Отзывов пока нет"}),(0,t.jsx)("p",{className:"text-sm text-white/30 mt-2",children:"Станьте первым, кто поделится впечатлением"})]}):(0,t.jsx)("div",{className:"grid gap-4 sm:grid-cols-2",children:n.map(e=>(0,t.jsxs)("article",{className:"rounded-3xl border border-white/10 bg-white/[0.03] p-6",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,t.jsx)("h3",{className:"text-sm font-medium text-white",children:e.authorName||"Анонимно"}),(0,t.jsx)(g,{value:e.rating})]}),(0,t.jsx)("p",{className:"mt-3 text-sm leading-6 text-white/65 whitespace-pre-line",children:e.text}),(0,t.jsx)("p",{className:"mt-3 text-xs text-white/25",children:w(e.createdAt)}),e.addendumText&&(0,t.jsxs)("div",{className:"mt-4 pt-4 border-t border-white/[0.07]",children:[(0,t.jsx)("p",{className:"text-xs text-white/40 uppercase tracking-wide",children:"Дополнение"}),(0,t.jsx)("p",{className:"mt-2 text-sm leading-6 text-white/65 whitespace-pre-line",children:e.addendumText}),e.addendumAt&&(0,t.jsx)("p",{className:"mt-2 text-xs text-white/25",children:w(e.addendumAt)})]}),e.moderatedAt&&(0,t.jsx)("p",{className:"mt-3 text-xs text-white/20 italic",children:"Отредактировано модератором"}),e.id===o?.myReviewId&&(0,t.jsx)(v,{review:e,onChanged:l})]},e.id))})}),(0,t.jsx)("div",{children:o?.canReview?(0,t.jsx)(j,{onCreated:l}):(0,t.jsxs)("div",{className:"rounded-3xl border border-white/10 bg-white/[0.03] p-6",children:[(0,t.jsx)("h3",{className:"font-semibold",children:"Оставить отзыв"}),(0,t.jsx)("p",{className:"mt-3 text-sm leading-6 text-white/50",children:o?.alreadyReviewed?"Вы уже оставили отзыв — спасибо!":o?.authed?"Отзыв можно оставить после получения заказа.":"Отзывы оставляют покупатели, получившие заказ. Войдите, чтобы оставить свой."})]})})]})]})}e.s(["default",0,function(){let e=[{q:"Чем отличаются модели?",a:"WS-1 — Speed, WS-2 — Balance, WS-3 — Control, WS Classic — Balance. Каждая модель отличается характером поверхности и ощущением в игре."},{q:"Какой размер у ковриков?",a:"Все модели выполнены в размере 490×420 мм."},{q:"Какие материалы используются?",a:"В основе каждой модели — качественный полиэстер и премиальный японский порон, обеспечивающие стабильность, комфорт и выверенное ощущение поверхности в игре."},{q:"Есть ли доставка по России?",a:"Да, доставка по всей России. Сроки и стоимость зависят от региона. Подробнее — на странице условий доставки."},{q:"Как оформить заказ?",a:"Войдите через email, добавьте коврик в корзин
3у и оформите заказ на сайте. Оплата картой, через СБП, T-Pay или SberPay принимается через T-Банк."},{q:"Как связаться с вами?",a:(0,t.jsxs)(t.Fragment,{children:["По вопросам заказа и поддержки контакты расположены в самом низу страницы, в блоке «Поддержка». А актуальные новости и обновления по линейке — в"," ",(0,t.jsx)("a",{href:"https://t.me/whiplasssh",target:"_blank",rel:"noopener noreferrer",className:"underline hover:text-white transition-colors",children:"Telegram-канале Whipla$h"}),"."]})}],n=["/hero/hero-1.webp","/hero/hero-2.webp","/hero/hero-3.webp","/hero/hero-4.webp"],[o,c]=(0,i.useState)(0),[d,u]=(0,i.useState)(0),[x,m]=(0,i.useState)({}),[w,g]=(0,i.useState)(null);function b(e){c(e),u(e=>e+1)}return(0,i.useEffect)(()=>{fetch("/api/stock").then(e=>e.json()).then(e=>{e.stock&&m(e.stock)})},[]),(0,i.useEffect)(()=>{let e=setInterval(()=>{c(e=>(e+1)%n.length)},7e3);return()=>clearInterval(e)},[n.length,d]),(0,t.jsxs)("main",{id:"top",className:"min-h-screen bg-neutral-950 text-white",children:[(0,t.jsx)("header",{className:"sticky top-0 z-50 border-b border-white/10 bg-neutral-950/90 backdrop-blur-md",children:(0,t.jsxs)("div",{className:"mx-auto flex max-w-7xl items-center justify-between px-6 py-5",children:[(0,t.jsxs)("a",{href:"#top",className:"flex items-center gap-4",children:[(0,t.jsx)("img",{src:"/logo/whipslick-logo-white.svg",alt:"WhipSlick logo",draggable:!1,onContextMenu:e=>e.preventDefault(),className:"h-8 w-auto md:h-10"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"text-sm font-semibold tracking-[0.3em] text-white/90",children:"WHIPSLICK"}),(0,t.jsx)("div",{className:"text-[10px] uppercase tracking-[0.24em] text-white/45 md:text-xs",children:"PRO Gaming mousepads"})]})]}),(0,t.jsxs)("div",{className:"hidden md:flex items-center gap-8",children:[(0,t.jsxs)("nav",{className:"flex gap-6 text-sm text-white/70",children:[(0,t.jsx)("a",{href:"#catalog",className:"transition hover:text-white",children:"Каталог"}),(0,t.jsx)("a",{href:"#about",className:"transition hover:text-white",children:"О бренде"}),(0,t.jsx)("a",{href:"#faq",className:"transition hover:text-white",children:"FAQ"}),(0,t.jsx)("a",{href:"#reviews",className:"transition hover:text-white",children:"Отзывы"}),(0,t.jsx)("a",{href:"#contacts",className:"transition hover:text-white",children:"Контакты"})]}),(0,t.jsx)(h,{})]}),(0,t.jsx)("div",{className:"md:hidden",children:(0,t.jsx)(p,{})})]})}),(0,t.jsxs)("section",{className:"mx-auto grid max-w-7xl gap-10 px-6 py-12 md:py-20 lg:grid-cols-2 lg:items-center",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("div",{className:"mb-10",children:(0,t.jsx)("img",{src:"/logo/whipslick-logo-white.svg",alt:"WhipSlick",draggable:!1,onContextMenu:e=>e.preventDefault(),className:"h-auto w-[260px] opacity-95 md:w-[420px]"})}),(0,t.jsxs)("h1",{className:"max-w-2xl text-5xl font-bold leading-[0.95] md:text-7xl",children:["Игровые коврики",(0,t.jsx)("br",{}),"c твёрдым характером"]}),(0,t.jsx)("p",{className:"mt-8 max-w-xl text-base leading-8 text-white/68 md:text-lg",children:"Speed, Control и Balance-модели для тех, кому нужен не просто красивый коврик, а стабильное ощущение в игре."}),(0,t.jsxs)("div",{className:"mt-8 flex flex-wrap gap-4",children:[(0,t.jsx)("a",{href:"#catalog",className:"rounded-full bg-white px-6 py-3 text-sm font-medium text-black transition hover:opacity-90",children:"Смотреть каталог"}),(0,t.jsx)("a",{href:"#about",className:"rounded-full border border-white/15 px-6 py-3 text-sm font-medium text-white transition hover:border-white/35 hover:bg-white/5",children:"О бренде"})]})]}),(0,t.jsxs)("div",{className:"overflow-hidden rounded-[32px] border border-white/10 bg-white/5 backdrop-blur",children:[(0,t.jsxs)("div",{className:"relative aspect-[4/5] w-full overflow-hidden bg-neutral-900",onTouchStart:function(e){g(e.touches[0].clientX)},onTouchEnd:function(e){if(null===w)return;let t=w-e.changedTouches[0].clientX;Math.abs(t)>40&&b(t>0?(o+1)%n.length:(o-1+n.length)%n.length),g(null)},children:[(0,t.jsx)("div",{className:"flex h-full transition-transform duration-700 ease-in-out",style:{transform:`translateX(-${100*o}%)`},children:n.map((e,r)=>(0,t.jsx)("div",{className:"relative h-full w-full shrink-0",children:(0,t.jsx)(s.default,{src:e,alt:`WhipSlick hero slide ${r+1}`,fill:!0,sizes:"(max-width: 768px) 100vw, 50vw",draggable:!1,onContextMenu:e=>e.preventDefault(),className:"object-cover",priority:0===r})},e))}),(0,t.jsx)("div",{className:"absolute bottom-4 left-1/2 z-10 flex -translate-x-1/2 gap-2",children:n.map((e,s)=>(0,t.jsx)("button",{type:"button",onClick:()=>b(s),className:`h-2.5 w-2.5 rounded-full transition ${s===o?"bg-white":"bg-white/35"}`,"aria-label":`Go to slide ${s+1}`},s))})]}),(0,t.jsxs)("div",{className:"p-5 md:p-6",children:[(0,t.jsx)("div",{className:"text-sm uppercase tracking-[0.1em] text-white/45",children:"Сквозь призму погружения"}),(0,t.jsx)("div",{className:"mt-2 text-2xl font-medium",children:"Сверхпрочная ткань поверхности WhipSlick"})]})]})]}),(0,t.jsx)("section",{className:"mx-auto text-center font-semibold grid max-w-7xl gap-6 px-6 pb-8 md:grid-cols-4",children:["Премиальные материалы","Японский пороÐ
3½","Размер 490×420 мм","Проверено игроками"].map(e=>(0,t.jsx)("div",{className:"rounded-3xl border border-white/10 bg-white/[0.03] p-6 text-sm text-white/75",children:e},e))}),(0,t.jsx)("section",{id:"about",className:"border-y border-white/10 bg-white/[0.02]",children:(0,t.jsxs)("div",{className:"mx-auto grid max-w-7xl gap-10 px-6 py-20 lg:grid-cols-[1fr_1.2fr]",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm uppercase tracking-[0.28em] text-white/40",children:"О бренде"}),(0,t.jsxs)("div",{className:"mt-6 flex items-center gap-4",children:[(0,t.jsx)("img",{src:"/logo/whipslick-logo-white.svg",alt:"WhipSlick logo",draggable:!1,onContextMenu:e=>e.preventDefault(),className:"h-auto w-[140px] opacity-100 sm:w-[170px] lg:w-[200px]"}),(0,t.jsx)("span",{className:"text-2xl font-light text-white/35 lg:text-4xl",children:"×"}),(0,t.jsx)("img",{src:"/logo/whiplash-logo.svg",alt:"Whipla$h logo",draggable:!1,onContextMenu:e=>e.preventDefault(),className:"h-auto w-[75px] opacity-95 sm:w-[90px] lg:w-[110px]"})]}),(0,t.jsx)("p",{className:"mt-5 max-w-sm text-sm leading-6 text-white/50",children:"Игровые коврики для мыши, созданные на стыке личного киберспортивного опыта и требований к реальному игровому ощущению."})]}),(0,t.jsxs)("div",{className:"space-y-5 text-base leading-7 text-white/70",children:[(0,t.jsxs)("p",{children:[(0,t.jsx)("span",{className:"font-semibold text-white",children:"WhipSlick"})," — молодой бренд игровых ковриков для мыши от киберспортивного комментатора Whipla$h."]}),(0,t.jsx)("p",{children:"Проект родился из реального опыта в киберспорте и требований к идеальному контролю, скольжению и стабильности в игре."}),(0,t.jsx)("p",{children:"В производстве используются материалы высочайшего качества, включая японский порон. По ощущениям и характеристикам коврики WhipSlick не уступают, а по отзывам многих игроков — превосходят такие известные бренды, как Artisan, SteelSeries, Vaxee и другие громкие имена индустрии."}),(0,t.jsx)("div",{className:"pt-3",children:(0,t.jsx)("a",{href:"https://t.me/whiplasssh",target:"_blank",rel:"noreferrer",className:"inline-flex rounded-full border border-white/15 px-6 py-3 text-sm font-medium text-white transition hover:border-white/35 hover:bg-white/5",children:"Перейти в TG-канал"})})]})]})}),(0,t.jsxs)("section",{id:"catalog",className:"mx-auto max-w-7xl px-6 py-20",children:[(0,t.jsxs)("div",{className:"mb-10 flex items-end justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm uppercase tracking-[0.28em] text-white/40",children:"Каталог"}),(0,t.jsx)("h2",{className:"mt-3 text-3xl font-semibold md:text-4xl",children:"Актуальная линейка ковров WhipSlick"})]}),(0,t.jsxs)("p",{className:"max-w-md text-sm leading-6 text-white/55",children:["Модельный ряд будет пополняться.",(0,t.jsx)("br",{}),"Наличие моделей уточняйте."]})]}),(0,t.jsx)("div",{className:"grid gap-6 md:grid-cols-2 xl:grid-cols-4",children:a.products.map(e=>(0,t.jsxs)("article",{className:"overflow-hidden rounded-[28px] border border-white/10 bg-white/[0.03] transition hover:-translate-y-1 hover:border-white/20",children:[(0,t.jsx)(r.default,{href:`/products/${e.slug}`,className:"relative aspect-[4/5] w-full block bg-neutral-900",children:(0,t.jsx)(s.default,{src:e.image,alt:e.name,fill:!0,draggable:!1,onContextMenu:e=>e.preventDefault(),sizes:"(max-width: 768px) 100vw, (max-width: 1280px) 50vw, 25vw",className:"object-cover"})}),(0,t.jsxs)("div",{className:"flex min-h-[250px] flex-col p-5",children:[(0,t.jsx)("div",{className:"text-xs uppercase tracking-[0.22em] text-lime-300/70",children:e.style}),(0,t.jsx)("h3",{className:"mt-2 text-xl font-medium",children:e.name}),(0,t.jsx)("p",{className:"mt-3 text-sm leading-6 text-white/65",children:e.shortDe
3scription}),(0,t.jsxs)("div",{className:"mt-auto pt-6 space-y-3",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)("span",{className:"text-lg font-semibold",children:[e.price.toLocaleString("ru-RU")," ₽"]}),(0,t.jsx)(r.default,{href:`/products/${e.slug}`,className:"rounded-full border border-white/15 px-4 py-2 text-sm transition hover:border-white/30 hover:bg-white/5",children:"Подробнее"})]}),(0,t.jsx)(f.default,{productSlug:e.slug,outOfStock:(x[e.slug]??50)===0})]})]})]},e.slug))})]}),(0,t.jsx)("section",{id:"faq",className:"border-y border-white/10 bg-white/[0.02]",children:(0,t.jsxs)("div",{className:"mx-auto max-w-7xl px-6 py-20",children:[(0,t.jsxs)("div",{className:"mb-10 flex items-end justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-sm uppercase tracking-[0.28em] text-white/40",children:"FAQ"}),(0,t.jsx)("h2",{className:"mt-3 text-3xl font-semibold md:text-4xl",children:"Частые вопросы"})]}),(0,t.jsxs)("p",{className:"max-w-md text-sm leading-6 text-white/55",children:["Всё самое важное о моделях, материалах,",(0,t.jsx)("br",{}),"покупке и связи — в одном месте."]})]}),(0,t.jsx)("div",{className:"grid gap-4 md:grid-cols-2 xl:grid-cols-3",children:e.map(e=>(0,t.jsxs)("article",{className:"rounded-3xl border border-white/10 bg-white/[0.03] p-6",children:[(0,t.jsx)("h3",{className:"text-lg font-medium",children:e.q}),(0,t.jsx)("p",{className:"mt-3 text-sm leading-6 text-white/65",children:e.a})]},e.q))})]})}),(0,t.jsx)(y,{}),(0,t.jsx)("footer",{id:"contacts",className:"border-t border-white/10",children:(0,t.jsxs)("div",{className:"mx-auto max-w-7xl px-6 py-10 space-y-8",children:[(0,t.jsxs)("div",{className:"grid gap-8 md:grid-cols-3",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("img",{src:"/logo/whipslick-logo-white.svg",alt:"WhipSlick logo",draggable:!1,onContextMenu:e=>e.preventDefault(),className:"h-8 w-auto md:h-10"}),(0,t.jsxs)("p",{className:"mt-4 text-sm leading-6 text-white/55",children:["ИП Рощин Артём Александрович",(0,t.jsx)("br",{}),"ИНН 773421717360",(0,t.jsx)("br",{}),"Россия, Москва"]})]}),(0,t.jsxs)("div",{className:"text-sm text-white/60 space-y-1",children:[(0,t.jsx)("p",{className:"text-white/30 uppercase tracking-wider text-xs mb-2",children:"Поддержка"}),(0,t.jsxs)("p",{children:["Telegram: ",(0,t.jsx)("a",{href:"https://t.me/WhipSlickGuy",target:"_blank",rel:"noopener noreferrer",className:"hover:text-white transition-colors",children:"@WhipSlickGuy"})]}),(0,t.jsxs)("p",{children:["Email: ",(0,t.jsx)("a",{href:"mailto:[email protected]",className:"hover:text-white transition-colors",children:"[email protected]"})]}),(0,t.jsxs)("p",{children:["Тел: ",(0,t.jsx)("a",{href:"tel:+79853995052",className:"hover:text-white transition-colors",children:"+7 (985) 399-50-52"})]})]}),(0,t.jsxs)("div",{className:"text-sm text-white/60 space-y-1",children:[(0,t.jsx)("p",{className:"text-white/30 uppercase tracking-wider text-xs mb-2",children:"Информация"}),(0,t.jsx)(r.default,{href:"/oferta",className:"block hover:text-white transition-colors",children:"Публичная оферта"}),(0,t.jsx)(r.default,{href:"/delivery",className:"block hover:text-white transition-colors",children:"Доставка"}),(0,t.jsx)(r.default,{href:"/returns",className:"block hover:text-white transition-colors",children:"Возврат и отмена"}),(0,t.jsx)(r.default,{href:"/privacy",className:"block hover:text-white transition-colors",children:"Политика безопасности"})]})]}),(0,t.jsxs)("div",{className:"border-t border-white/10 pt-6 flex flex-col md:flex-row items-start md:items-center justify-between gap-4",children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("p",{className:"text-xs text-white/30 mb-2",children:"Способы оплаты"}),(0,t.jsxs)("div",{className:"flex items-center gap-3 flex-wrap",children:[l.PAYMENT_METHOD_BADGES.map(e=>(0,t.jsx)("span",{className:"text-xs font-bold bg-white/10 border border-white/10 rounded px-2 py-1",children:e},e)),(0,t.jsx)("a",{href:"https://tbank.ru",target:"_blank",rel:"noopener noreferrer",className:"text-xs text-white/50 hover:text-white transition-colors underline",children:"T-Банк"})]})]}),(0,t.jsxs)("p",{className:"text-xs text-white/30",children:["© ",new Date().getFullYear()," WhipSlick. Все права защищены."]})]})]})})]})}],52683)}]);

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.