PageSourceSearch

https://gnature.ru/_next/static/chunks/3hqapjozea55a.js

js gnature.ru collected 2026-10-05 03:41:57 UTC 53,716 bytes, 18 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,117814,e=>{"use strict";var t=e.i(843476);let r={green:"#4EA63D",greenHover:"#3d8f2f",greenTint12:"rgba(78,166,61,0.12)",greenTint10:"rgba(78,166,61,0.10)",bg:"#F7F3EE",bgSection:"#F0ECE6",ink:"#2C3E35",inkDeep:"#253830",inkDarkest:"#141C16",fg:"rgb(20,17,12)",fg55:"rgba(0,0,0,0.62)",fg50:"rgba(0,0,0,0.60)",fg40:"rgba(0,0,0,0.58)",fg30:"rgba(0,0,0,0.30)",fg08:"rgba(0,0,0,0.08)",fg07:"rgba(0,0,0,0.07)",fg06:"rgba(0,0,0,0.06)",onDarkMuted:"rgba(255,255,255,0.65)",onDarkMutedLg:"rgba(255,255,255,0.55)"};e.s(["AccentLine",0,function({width:e=56,color:n=r.green,style:a}){return(0,t.jsx)("div",{style:{width:e,height:2,background:n,...a}})},"C",0,r,"CtaButton",0,function({children:e,variant:n="primary",size:a="md",href:i,onClick:o,style:l}){let u={className:"gn-cta",style:{font:"500 14px/1 Manrope, sans-serif",border:"none",borderRadius:6,cursor:"pointer",textDecoration:"none",display:"inline-flex",alignItems:"center",gap:6,transition:"all 200ms ease",padding:"sm"===a?"8px 14px":"lg"===a?"14px 24px":"11px 20px",fontSize:"lg"===a?15:14,fontWeight:500,whiteSpace:"nowrap",...{primary:{background:r.green,color:"#fff"},secondary:{background:"transparent",border:`1px solid ${r.green}`,color:r.green},onDark:{background:"#fff",color:r.ink},ghostDark:{background:"transparent",color:"#fff",border:"1px solid rgba(255,255,255,0.3)"}}[n],...l??{}},onClick:o};return i?(0,t.jsx)("a",{href:i,...u,children:e}):(0,t.jsx)("button",{...u,children:e})},"GenerativeCover",0,function({colors:e,style:r}){let n=[["18%","22%","58% 48%"],["82%","30%","52% 44%"],["28%","78%","48% 38%"],["72%","82%","60% 50%"],["50%","50%","46% 36%"],["10%","60%","42% 32%"]],a=e.length>=2?e:["#888","#555"],i=a.slice(0,6).map((e,t)=>{let[r,a,i]=n[t]||n[0];return`radial-gradient(${i} at ${r} ${a}, ${e} 0%, transparent 70%)`}).join(", ");return(0,t.jsx)("div",{"aria-hidden":!0,style:{width:"100%",height:"100%",background:`${i}, ${a[0]}`,...r}})},"H2",0,function({children:e,color:n=r.fg,style:a,className:i}){return(0,t.jsx)("h2",{className:i,style:{font:"700 clamp(1.875rem, 3.5vw, 2.25rem)/1.1 Manrope, sans-serif",letterSpacing:"-0.02em",textTransform:"uppercase",color:n,margin:0,...a},children:e})},"Overline",0,function({children:e,color:n=r.fg40,style:a,className:i}){return(0,t.jsx)("div",{className:i,style:{font:"500 11px/1 Manrope, sans-serif",letterSpacing:"0.2em",textTransform:"uppercase",color:n,...a},children:e})},"SOCIAL_SVG",0,{telegram:'<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>',vk:'<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M15.684 0H8.316C1.592 0 0 1.592 0 8.316v7.368C0 22.408 1.592 24 8.316 24h7.368C22.408 24 24 22.408 24 15.684V8.316C24 1.592 22.391 0 15.684 0zm3.692 17.123h-1.744c-.66 0-.862-.523-2.049-1.713-1.033-1-1.49-1.135-1.744-1.135-.356 0-.458.102-.458.593v1.558c0 .424-.135.678-1.253.678-1.846 0-3.896-1.118-5.335-3.202C4.624 10.857 4.03 8.57 4.03 8.096c0-.254.102-.491.593-.491h1.744c.44 0 .61.203.779.678.863 2.49 2.303 4.675 2.896 4.675.22 0 .322-.102.322-.66V9.721c-.068-1.186-.695-1.287-.695-1.71 0-.204.17-.407.44-.407h2.744c.373 0 .508.203.508.643v3.473c0 .372.17.508.271.508.22 0 .407-.136.813-.542 1.254-1.406 2.151-3.574 2.151-3.574.119-.254.322-.491.763-.491h1.744c.525 0 .644.27.525.643-.22 1.017-2.354 4.031-2.354 4.031-.186.305-.254.44 0 .78.186.254.796.779 1.203 1.253.745.847 1.32 1.558 1.473 2.049.17.49-.085.745-.576.745z"/></svg>'}])},818581,(e,t,r)=>{"use strict";
1Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return a}});let n=e.r(271645);function a(e,t){let r=(0,n.useRef)(null),a=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=a.current;t&&(a.current=null,t())}else e&&(r.current=i(e,n)),t&&(a.current=i(t,n))},[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},195057,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return l},formatWithValidation:function(){return s},urlObjectKeys:function(){return u}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(190809)._(e.r(998183)),o=/https?|ftp|gopher|file/;function l(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",l=e.hash||"",u=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:r&&(s=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(s+=":"+e.port)),u&&"object"==typeof u&&(u=String(i.urlQueryToSearchParams(u)));let c=e.search||u&&`?${u}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||o.test(n))&&!1!==s?(s="//"+(s||""),a&&"/"!==a[0]&&(a="/"+a)):s||(s=""),l&&"#"!==l[0]&&(l="#"+l),c&&"?"!==c[0]&&(c="?"+c),a=a.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${s}${a}${c}${l}`}let u=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function s(e){return l(e)}},573668,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return i}});let n=e.r(718967),a=e.r(652817);function i(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,a.hasBasePath)(r.pathname)}catch(e){return!1}}},284508,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},522016,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return y},useLinkStatus:function(){return _}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(190809),o=e.r(843476),l=i._(e.r(271645)),u=e.r(195057),s=e.r(8372),c=e.r(818581),d=e.r(718967),f=e.r(405550);e.r(233525);let p=e.r(388540),m=e.r(91949),g=e.r(573668),h=e.r(509396);function y(t){var r,n;let a,i,y,[_,w]=(0,l.useOptimistic)(m.IDLE_LINK_STATUS),v=(0,l.useRef)(null),{href:C,as:E,children:k,prefetch:j=null,passHref:S,replace:O,shallow:x,scroll:P,onClick:R,onMouseEnter:T,onTouchStart:A,legacyBehavior:I=!1,onNavigate:M,transitionTypes:L,ref:D,unstable_dynamicOnHover:N,...$}=t;a=k,I&&("string"==typeof a||"number"==typeof a)&&(a=(0,o.jsx)("a",{children:a}));let z=l.default.useContext(s.AppRouterContext),q=!1!==j,U=!1!==j?null===(n=j)||"auto"===n?h.FetchStrategy.PPR:h.FetchStrategy.Full:h.FetchStrategy.PPR,F="string"==typeof(r=E||C)?r:(0,u.formatUrl)(r);if(I){if(a?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});i=l.default.Children.only(a)}let B=I?i&&"object"==typeof i&&i.ref:D,G=l.default.useCallback(e=>(null!==z&&(v.current=(0,m.mountLinkInstance)(e,F,z,U,q,w)),()=>{v.current&&((0,m.unmountLinkForCurrentNavigation)(v.current),v.current=null),(0,m.unmountPrefetchableInstance)(e)}),[q,F,z,U,w]),V={ref:(0,c.useMergedRef)(G,B),onClick(t){I||"function"!=typeof R||R(t),I&&i.props&&"function"==typeof i.props.onClick&&i.props.onClick(t),!z||t.defaultPrevented||function(t,r,n,a,i,o,u){if("u">typeof window){let s,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((s=t.currentTarget.getAttribute("target"))&&"_self"!==s||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,g.isLocalURL)(r)){a&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),o){let e=!1;if(o({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:d}=e.r(699781);l.default.startTransition(()=>{d(r,a?"replace":"push",!1===i?p.ScrollBehavior.NoScroll:p.ScrollBehavior.Default,n.current,u)})}}(t,F,v,O,P,M,L)},onMouseEnter(e){I||"function"!=typeof T||T(e),I&&i.props&&"function"==typeof i.props.onMouseEnter&&i.props.onMouseEnter(e),z&&q&&(0,m.onNavigationIntent)(e.currentTarget,!0===N)},onTouchStart:function(e){I||"function"!=typeof A||A(e),I&&i.props&&"function"==typeof i.props.onTouchStart&&i.props.onTouchStart(e),z&&q&&(0,m.onNavigationIntent)(e.currentTarget,!0===N)}};return(0,d.isAbsoluteUrl)(F)?V.href=F:I&&!S&&("a"!==i.type||"href"in i.props)||(V.href=(0,f.addBasePath)(F)),y=I?l.default.cloneElement(i,V):(0,o.jsx)("a",{...$,...V,children:a}),(0,o.jsx)(b.Provider,{value:_,children:y})}e.r(284508);let b=(0,l.createContext)(m.IDLE_LINK_STATUS),_=()=>(0,l.useContext)(b);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esMo
1dule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},506046,e=>{"use strict";var t=e.i(843476),r=e.i(271645);let n=(0,r.createContext)(null);async function a(e,t){try{return(await e.json()).error??t}catch{return t}}async function i(e,t){let r=new AbortController,n=window.setTimeout(()=>r.abort(),15e3);try{return await fetch(e,{...t,signal:r.signal})}finally{window.clearTimeout(n)}}e.s(["AuthProvider",0,function({children:e}){let[o,l]=(0,r.useState)(null),[u,s]=(0,r.useState)(!0),[c,d]=(0,r.useState)(null),[f,p]=(0,r.useState)(null),m=(0,r.useCallback)(async()=>{try{let e=await i("/api/customer/me",{cache:"no-store"});if(e.ok){let{customer:t}=await e.json();l(t),d(null)}else 401===e.status?(l(null),d(null)):d("Не удалось обновить профиль. Повторим автоматически позже.")}catch{d("Не удалось обновить профиль. Проверьте соединение.")}},[]);(0,r.useEffect)(()=>{let e=!0;return(async()=>{await m(),e&&s(!1)})(),()=>{e=!1}},[m]);let g=(0,r.useCallback)(async(e,t)=>{try{let r=await i("/api/customer/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:e,password:t,cart_id:function(){try{return localStorage.getItem("gn-cart-id")}catch{return null}}()})});if(!r.ok)return await a(r,"Не удалось войти — попробуйте ещё раз");let{customer:n}=await r.json();return l(n),d(null),p(null),null}catch{return"Не удалось войти — проверьте соединение"}},[]),h=(0,r.useCallback)(async e=>{try{let t=await i("/api/customer/register",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok)return await a(t,"Не удалось зарегистрироваться — попробуйте ещё раз");let r=await t.json();return r.verification_required?(l(null),p(r.message||"Проверьте почту и подтвердите email.")):r.customer?l(r.customer):await m(),null}catch{return"Не удалось зарегистрироваться — проверьте соединение"}},[m]),y=(0,r.useCallback)(async()=>{try{let e=await i("/api/customer/logout",{method:"POST"});if(!e.ok)return await a(e,"Не удалось выйти — попробуйте ещё раз")}catch{return"Не удалось выйти — проверьте соединение"}l(null),d(null);try{sessionStorage.removeItem("gn-order-email")}catch{}return null},[]),b=(0,r.useCallback)(()=>p(null),[]);return(0,t.jsx)(n.Provider,{value:{customer:o,loading:u,authError:c,registrationMessage:f,login:g,register:h,logout:y,refresh:m,clearRegistrationMessage:b},children:e})},"useAuth",0,function(){let e=(0,r.useContext)(n);if(!e)throw Error("useAuth must be used inside <AuthProvider>");return e}])},684317,e=>{"use strict";let t="Пн–Сб 10:00–20:00, Вс — выходной";e.s(["B2B_SITE_URL",0,"https://b2b.gnature.ru","SITE_CONTACTS",0,{phoneDisplay:"8 800 600 26 99",phoneHref:"tel:+78006002699",phoneHours:t,email:"[email protected]",emailHref:"mailto:[email protected]",telegram:"https://t.me/gnature_russia",vk:"https://vk.com/gnature_rus",showroomCity:"Москва",showroomAddressShort:"БП «Румянцево», Киевское шоссе, 22-й км, корпус Г, офис 507",showroomAddressVisit:"Москва, БП «Румянцево», Киевское шоссе, 22-й км, корпус Г, 5 этаж, офис 507",showroomAddressFull:"108811, Россия, г. Москва, Киевское шоссе, 22-й километр, домовладение 4, строение 2, блок Г, 5 этаж, офис 507. Бизнес-парк «Румянцево».",showroomMapHref:"https://yandex.ru/maps/?text=Москва, Киевское шоссе 22 км, БП Румянцево корпус Г",showroomHours:t,legalName:"ООО «ДС пейнт»",legalInn:"7751179330",legalOgrn:"1207700146873",legalAddress:"108811, Россия, г. Москва, Киевское шоссе, 22-й км (поселение Московский), домовл. 4, строение 2, блок Г, эт. 5, оф. 506Г"}])},618566,(e,t,r)=>{t.exports=e.r(976562)},604673,e=>{"use strict";var t=e.i(843476),r=e.i(618566),n=e.i(271645);function a(){let e=(0,r.usePathname)(),t=(0,r.useSearchParams)(),a=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let e=window.location.href;if(null===a.current){a.current=e;return}a.current!==e&&(a.current=e,"function"==typeof window.ym&&window.ym(0x5e3fb21,"hit",e))},[e,t]),null}e.s(["YandexMetrika",0,function(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("link",{rel:"prec
1onnect",href:"https://mc.yandex.ru",crossOrigin:""}),(0,t.jsx)("script",{id:"yandex-metrika-counter",dangerouslySetInnerHTML:{__html:`
2            (function(m,e,t,r,i,k,a){
3              m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
4              m[i].l=1*new Date();
5              for (var j=0;j<document.scripts.length;j++){if(document.scripts[j].src===r){return;}}
6              k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.fetchPriority="high",k.src=r,a.parentNode.insertBefore(k,a)
7            })(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
8
9            ym(98827041, "init", {
10              clickmap: true,
11              trackLinks: true,
12              accurateTrackBounce: true,
13              webvisor: false,
14              ecommerce: "dataLayer"
15            });
16          `}}),(0,t.jsx)(n.Suspense,{fallback:null,children:(0,t.jsx)(a,{})}),(0,t.jsx)("noscript",{children:(0,t.jsx)("div",{children:(0,t.jsx)("img",{src:"https://mc.yandex.ru/watch/98827041",style:{position:"absolute",left:"-9999px"},alt:""})})})]})},"reachGoal",0,function(e,t){if("function"==typeof window.ym)try{window.ym(0x5e3fb21,"reachGoal",e,t)}catch{return}}])},488143,(e,t,r)=>{"use strict";function n({widthInt:e,heightInt:t,blurWidth:r,blurHeight:a,blurDataURL:i,objectFit:o}){let l=r?40*r:e,u=a?40*a:t,s=l&&u?`viewBox='0 0 ${l} ${u}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${s}%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='${s?"none":"contain"===o?"xMidYMid":"cover"===o?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${i}'/%3E%3C/svg%3E`}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImageBlurSvg",{enumerable:!0,get:function(){return n}})},987690,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={VALID_LOADERS:function(){return i},imageConfigDefault:function(){return o}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=["default","imgix","cloudinary","akamai","custom"],o={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}},908927,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"getImgProps",{enumerable:!0,get:function(){return s}}),e.r(233525);let n=e.r(543369),a=e.r(488143),i=e.r(987690),o=["-moz-initial","fill","none","scale-down",void 0];function l(e){return void 0!==e.default}function u(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 s({src:e,sizes:t,unoptimized:r=!1,priority:c=!1,preload:d=!1,loading:f,className:p,quality:m,width:g,height:h,fill:y=!1,style:b,overrideSrc:_,onLoad:w,onLoadingComplete:v,placeholder:C="empty",blurDataURL:E,fetchPriority:k,decoding:j="async",layout:S,objectFit:O,objectPosition:x,lazyBoundary:P,lazyRoot:R,...T},A){var I;let M,L,D,{imgConf:N,showAltText:$,blurComplete:z,defaultLoader:q}=A,U=N||i.imageConfigDefault;if("allSizes"in U)M=U;else{let e=[...U.deviceSizes,...U.imageSizes].sort((e,t)=>e-t),t=U.deviceSizes.sort((e,t)=>e-t),r=U.qualities?.sort((e,t)=>e-t);M={...U,allSizes:e,deviceSizes:t,qualities:r}}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,
16configurable:!0});let F=T.loader||q;delete T.loader,delete T.srcSet;let B="__next_img_default"in F;if(B){if("custom"===M.loader)throw Object.defineProperty(Error(`Image with src "${e}" is missing "loader" prop.
17Read 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:r,...n}=t;return e(n)}}if(S){"fill"===S&&(y=!0);let e={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[S];e&&(b={...b,...e});let r={responsive:"100vw",fill:"100vw"}[S];r&&!t&&(t=r)}let G="",V=u(g),H=u(h);if((I=e)&&"object"==typeof I&&(l(I)||void 0!==I.src)){let t=l(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,E=E||t.blurDataURL,G=t.src,!y)if(V||H){if(V&&!H){let e=V/t.width;H=Math.round(t.height*e)}else if(!V&&H){let e=H/t.height;V=Math.round(t.width*e)}}else V=t.width,H=t.height}let W=!c&&!d&&("lazy"===f||void 0===f);(!(e="string"==typeof e?e:G)||e.startsWith("data:")||e.startsWith("blob:"))&&(r=!0,W=!1),M.unoptimized&&(r=!0),B&&!M.dangerouslyAllowSVG&&e.split("?",1)[0].endsWith(".svg")&&(r=!0);let J=u(m),K=Object.assign(y?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:O,objectPosition:x}:{},$?{}:{color:"transparent"},b),X=z||"empty"===C?null:"blur"===C?`url("data:image/svg+xml;charset=utf-8,${(0,a.getImageBlurSvg)({widthInt:V,heightInt:H,blurWidth:L,blurHeight:D,blurDataURL:E||"",objectFit:K.objectFit})}")`:`url("${C}")`,Z=o.includes(K.objectFit)?"fill"===K.objectFit?"100% 100%":"cover":K.objectFit,Y=X?{backgroundSize:Z,backgroundPosition:K.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:X}:{},Q=function({config:e,src:t,unoptimized:r,width:a,quality:i,sizes:o,loader:l}){if(r){if(t.startsWith("/")&&!t.startsWith("//")){let e=(0,n.getDeploymentId)();if(e){let r=t.indexOf("?");if(-1!==r){let n=new URLSearchParams(t.slice(r+1));n.get("dpl")||(n.append("dpl",e),t=t.slice(0,r)+"?"+n.toString())}else t+=`?dpl=${e}`}}return{src:t,srcSet:void 0,sizes:void 0}}let{widths:u,kind:s}=function({deviceSizes:e,allSizes:t},r,n){if(n){let r=/(^|\s)(1?\d?\d)vw/g,a=[];for(let e;e=r.exec(n);)a.push(parseInt(e[2]));if(a.length){let r=.01*Math.min(...a);return{widths:t.filter(t=>t>=e[0]*r),kind:"w"}}return{widths:t,kind:"w"}}return"number"!=typeof r?{widths:e,kind:"w"}:{widths:[...new Set([r,2*r].map(e=>t.find(t=>t>=e)||t[t.length-1]))],kind:"x"}}(e,a,o),c=u.length-1;return{sizes:o||"w"!==s?o:"100vw",srcSet:u.map((r,n)=>`${l({config:e,src:t,quality:i,width:r})} ${"w"===s?r:n+1}${s}`).join(", "),src:l({config:e,src:t,quality:i,width:u[c]})}}({config:M,src:e,unoptimized:r,width:V,quality:J,sizes:t,loader:F}),ee=W?"lazy":f;return{props:{...T,loading:ee,fetchPriority:k,width:V,height:H,decoding:j,className:p,style:{...K,...Y},sizes:Q.sizes,srcSet:Q.srcSet,src:_||Q.src},meta:{unoptimized:r,preload:d||c,placeholder:C,fill:y}}}},898879,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return l}});let n=e.r(271645),a="u"<typeof window,i=a?()=>{}:n.useLayoutEffect,o=a?()=>{}:n.useEffect;function l(e){let{headManager:t,reduceComponentsToState:r}=e;function l(){if(t&&t.mountedInstances){let e=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(e))}}return a&&(t?.mountedInstances?.add(e.children),l()),i(()=>(t?.mountedInstances?.add(e.children),()=>{t?.mountedInstances?.delete(e.children)})),i(()=>(t&&(t._pendingUpdate=l),()=>{t&&(t._pendingUpdate=l)})),o(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},325633,(e,t,r)=>{"use strict";
17Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return g},defaultHead:function(){return d}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(555682),o=e.r(190809),l=e.r(843476),u=o._(e.r(271645)),s=i._(e.r(898879)),c=e.r(742732);function d(){return[(0,l.jsx)("meta",{charSet:"utf-8"},"charset"),(0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function f(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===u.default.Fragment?e.concat(u.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}e.r(233525);let p=["name","httpEquiv","charSet","itemProp"];function m(e){let t,r,n,a;return e.reduce(f,[]).reverse().concat(d().reverse()).filter((t=new Set,r=new Set,n=new Set,a={},e=>{let i=!0,o=!1;if(e.key&&"number"!=typeof e.key&&e.key.indexOf("$")>0){o=!0;let r=e.key.slice(e.key.indexOf("$")+1);t.has(r)?i=!1:t.add(r)}switch(e.type){case"title":case"base":r.has(e.type)?i=!1:r.add(e.type);break;case"meta":for(let t=0,r=p.length;t<r;t++){let r=p[t];if(e.props.hasOwnProperty(r))if("charSet"===r)n.has(r)?i=!1:n.add(r);else{let t=e.props[r],n=a[r]||new Set;("name"!==r||!o)&&n.has(t)?i=!1:(n.add(t),a[r]=n)}}}return i})).reverse().map((e,t)=>{let r=e.key||t;return u.default.cloneElement(e,{key:r})})}let g=function({children:e}){let t=(0,u.useContext)(c.HeadManagerContext);return(0,l.jsx)(s.default,{reduceComponentsToState:m,headManager:t,children:e})};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},918556,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"ImageConfigContext",{enumerable:!0,get:function(){return i}});let n=e.r(555682)._(e.r(271645)),a=e.r(987690),i=n.default.createContext(a.imageConfigDefault)},65856,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"RouterContext",{enumerable:!0,get:function(){return n}});let n=e.r(555682)._(e.r(271645)).default.createContext(null)},670965,(e,t,r)=>{"use strict";function n(e,t){let r=e||75;return t?.qualities?.length?t.qualities.reduce((e,t)=>Math.abs(t-r)<Math.abs(e-r)?t:e,t.qualities[0]):r}Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"findClosestQuality",{enumerable:!0,get:function(){return n}})},1948,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"default",{enumerable:!0,get:function(){return o}});let n=e.r(670965),a=e.r(543369);function i({config:e,src:t,width:r,quality:o}){let l=(0,a.getDeploymentId)();if(t.startsWith("/")&&!t.startsWith("//")){let e=t.indexOf("?");if(-1!==e){let r=new URLSearchParams(t.slice(e+1)),n=r.get("dpl");if(n){l=n,r.delete("dpl");let a=r.toString();t=t.slice(0,e)+(a?"?"+a:"")}}}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.
18Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let u=(0,n.findClosestQuality)(o,e);return`${e.path}?url=${encodeURIComponent(t)}&w=${r}&q=${u}${t.startsWith("/")&&l?`&dpl=${l}`:""}`}i.__next_img_default=!0;let o=i},605500,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"Image",{enumerable:!0,get:function(){return w}});let n=e.r(555682),a=e.r(190809),i=e.r(843476),o=a._(e.r(271645)),l=n._(e.r(174080)),u=n._(e.r(325633)),s=e.r(908927),c=e.r(987690),d=e.r(918556);e.r(233525);let f=e.r(65856),p=n._(e.r(1948)),m=e.r(818581),g={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:!1};function h(e,t,r,n,a,i,o){let l=e?.src;e&&e["data-loaded-src"]!==l&&(e["data-loaded-src"]=l,("decode"in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>
18{if(e.parentElement&&e.isConnected){if("empty"!==t&&a(!0),r?.current){let t=new Event("load");Object.defineProperty(t,"target",{writable:!1,value:e});let n=!1,a=!1;r.current({...t,nativeEvent:t,currentTarget:e,target:e,isDefaultPrevented:()=>n,isPropagationStopped:()=>a,persist:()=>{},preventDefault:()=>{n=!0,t.preventDefault()},stopPropagation:()=>{a=!0,t.stopPropagation()}})}n?.current&&n.current(e)}}))}function y(e){return o.use?{fetchPriority:e}:{fetchpriority:e}}"u"<typeof window&&(globalThis.__NEXT_IMAGE_IMPORTED=!0);let b=(0,o.forwardRef)(({src:e,srcSet:t,sizes:r,height:n,width:a,decoding:l,className:u,style:s,fetchPriority:c,placeholder:d,loading:f,unoptimized:p,fill:g,onLoadRef:b,onLoadingCompleteRef:_,setBlurComplete:w,setShowAltText:v,sizesInput:C,onLoad:E,onError:k,...j},S)=>{let O=(0,o.useCallback)(e=>{e&&(k&&(e.src=e.src),e.complete&&h(e,d,b,_,w,p,C))},[e,d,b,_,w,k,p,C]),x=(0,m.useMergedRef)(S,O);return(0,i.jsx)("img",{...j,...y(c),loading:f,width:a,height:n,decoding:l,"data-nimg":g?"fill":"1",className:u,style:s,sizes:r,srcSet:t,src:e,ref:x,onLoad:e=>{h(e.currentTarget,d,b,_,w,p,C)},onError:e=>{v(!0),"empty"!==d&&w(!0),k&&k(e)}})});function _({isAppRouter:e,imgAttributes:t}){let r={as:"image",imageSrcSet:t.srcSet,imageSizes:t.sizes,crossOrigin:t.crossOrigin,referrerPolicy:t.referrerPolicy,...y(t.fetchPriority)};return e&&l.default.preload?(l.default.preload(t.src,r),null):(0,i.jsx)(u.default,{children:(0,i.jsx)("link",{rel:"preload",href:t.srcSet?void 0:t.src,...r},"__nimg-"+t.src+t.srcSet+t.sizes)})}let w=(0,o.forwardRef)((e,t)=>{let r=(0,o.useContext)(f.RouterContext),n=(0,o.useContext)(d.ImageConfigContext),a=(0,o.useMemo)(()=>{let e=g||n||c.imageConfigDefault,t=[...e.deviceSizes,...e.imageSizes].sort((e,t)=>e-t),r=e.deviceSizes.sort((e,t)=>e-t),a=e.qualities?.sort((e,t)=>e-t);return{...e,allSizes:t,deviceSizes:r,qualities:a,localPatterns:"u"<typeof window?n?.localPatterns:e.localPatterns}},[n]),{onLoad:l,onLoadingComplete:u}=e,m=(0,o.useRef)(l);(0,o.useEffect)(()=>{m.current=l},[l]);let h=(0,o.useRef)(u);(0,o.useEffect)(()=>{h.current=u},[u]);let[y,w]=(0,o.useState)(!1),[v,C]=(0,o.useState)(!1),{props:E,meta:k}=(0,s.getImgProps)(e,{defaultLoader:p.default,imgConf:a,blurComplete:y,showAltText:v});return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(b,{...E,unoptimized:k.unoptimized,placeholder:k.placeholder,fill:k.fill,onLoadRef:m,onLoadingCompleteRef:h,setBlurComplete:w,setShowAltText:C,sizesInput:e.sizes,ref:t}),k.preload?(0,i.jsx)(_,{isAppRouter:!r,imgAttributes:E}):null]})});("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},794909,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return c},getImageProps:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(555682),o=e.r(908927),l=e.r(605500),u=i._(e.r(1948));function s(e){let{props:t}=(0,o.getImgProps)(e,{defaultLoader:u.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:!1}});for(let[e,r]of Object.entries(t))void 0===r&&delete t[e];return{props:t}}let c=l.Image},657688,(e,t,r)=>{t.exports=e.r(794909)},475254,e=>{"use strict";var t=e.i(271645);let r=(...e)=>e.filter((e,t,r)=>!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim();var n={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let a=(0,t.forwardRef)(({color:e="currentColor",size:a=24,strokeWidth:i=2,absoluteStrokeWidth:o,className:l="",children:u,iconNode:s,...c},d)=>(0,t.createElement)("svg",{ref:d,...n,width:a,height:a,stroke:e,strokeWidth:o?24*Number(i)/Number(a):i,className:r("lucide",l),...c},[...s.map(([e,r])=>(0,t.createElement)(e,r)),...Array.isArray(u)?u:[u]]));e.s(["default",0,(e,n)=>{let i=(0,t.forwardRef)(({className:i,...o},l)=>(0,t.createElement)(a,{ref:l,iconNode:n,className:r(`lucide-${e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}`,i),...o}));return i.displayName=`${e}`,i}],475254)},972520,e=>{"use strict";let t=(0,e.i(475254).default)("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",0,t],972520)},555436,e=>{"use strict";let t=(0,e.i(475254).default)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);e.s(["Search",0,t],555436)},346255,e=>{"use strict";let t={basketAdd:"basket_add",orderMake:"order_make",b2bClick:"b2b_click",
18scroll50:"scroll_50",time30s:"time_30s",engagedVisitor:"engaged_visitor",multiPage:"multi_page",cartView:"cart_view",orderStart:"order_start",widgetTelegram:"widget_telegram",widgetVk:"widget_vk",widgetMax:"widget_max",widgetOpenline:"widget_openline"};e.s(["GOALS",0,t,"mapWidgetGoal",0,function(e){let r=e.toLowerCase();return r.includes("wz_telegram")||r.includes("telegram")?t.widgetTelegram:r.includes("vkgroup")?t.widgetVk:r.includes("_max")?t.widgetMax:t.widgetOpenline},"orderMakeDedupKey",0,function(e){return`gn-goal-order_make:${e}`}])},16552,91175,e=>{"use strict";var t=e.i(843476),r=e.i(271645);function n(e){let t=window;t.dataLayer=t.dataLayer??[],t.dataLayer.push(e)}function a(e){n({ecommerce:{currencyCode:"RUB",remove:{products:e}}})}function i(e){return{id:e.variant_id,name:e.title,price:e.unit_price,quantity:e.quantity,variant:e.variant_title??"",brand:"Gnature"}}e.s(["cartItemToDLProduct",0,i,"dlAdd",0,function(e){n({ecommerce:{currencyCode:"RUB",add:{products:e}}})},"dlCheckout",0,function(e){n({ecommerce:{currencyCode:"RUB",checkout:{actionField:{step:1},products:e}}})},"dlDetail",0,function(e){n({ecommerce:{currencyCode:"RUB",detail:{products:e}}})},"dlPurchase",0,function(e,t,r){n({ecommerce:{currencyCode:"RUB",purchase:{actionField:{id:e,revenue:t},products:r}}})},"dlRemove",0,a],91175);class o{tail=Promise.resolve();enqueue(e){let t=this.tail.then(e,e);return this.tail=t.then(()=>void 0,()=>void 0),t}}let l="gn-cart-id";class u extends Error{status;code;quote;constructor(e,t,r="CART_API_ERROR",n){super(e),this.status=t,this.code=r,this.quote=n}}function s(e,t,r){return e instanceof u?{ok:!1,code:e.code,message:e.message}:{ok:!1,code:t,message:r}}function c(e){return e instanceof u&&(404===e.status||410===e.status)}function d(){try{return localStorage.getItem(l)}catch{return null}}function f(e){try{e?localStorage.setItem(l,e):localStorage.removeItem(l)}catch{}}async function p(e,t){let r=new AbortController,n=window.setTimeout(()=>r.abort(),15e3);try{return await fetch(e,{...t,signal:r.signal})}catch(e){if(e instanceof DOMException&&"AbortError"===e.name)throw new u("Сервис корзины не ответил вовремя. Попробуйте ещё раз.",504,"CART_CLIENT_TIMEOUT");throw e}finally{window.clearTimeout(n)}}function m(e){let t=Number(e.quantity??1),r=Number(e.unit_price??0);return{id:e.id,variant_id:e.variant_id??e.variant?.id??"",title:e.title??e.product_title??"",variant_title:e.variant_title??e.variant?.title??e.subtitle??null,quantity:t,unit_price:r,total:r*t||Number(e.original_total??e.total??0),thumbnail:e.thumbnail??e.variant?.product?.thumbnail??null,metadata:e.metadata??null}}function g(e){return{subtotal:e.reduce((e,t)=>e+t.total,0),itemCount:e.reduce((e,t)=>e+t.quantity,0)}}function h(e){return(e.promotions??[]).flatMap(e=>{let t=e.code?.trim();return t?[{code:t}]:[]})}function y(e){let t=Number(e.discount_total??0);return Number.isFinite(t)&&t>0?t:0}function b(e,t){let r=Number(e.item_subtotal??e.original_item_subtotal??0);return Number.isFinite(r)&&r>0?r:g(t).subtotal}async function _(){let e=await p("/api/cart",{method:"POST"});if(!e.ok){let t=await e.json().catch(()=>({}));throw new u(t.error??"Не удалось создать корзину",e.status,t.code??"CART_CREATE_FAILED")}return e.json()}async function w(e){let t=await p(`/api/cart?id=${encodeURIComponent(e)}`);
18if(!t.ok){let e=await t.json().catch(()=>({}));throw new u(e.error??"Не удалось загрузить корзину",t.status,e.code??"CART_RETRIEVE_FAILED")}return t.json()}async function v(e,t,r,n){let a=await p("/api/cart/line-items",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cart_id:e,variant_id:t,quantity:r,metadata:n})});if(!a.ok){let e=await a.json().catch(()=>({}));throw new u(e.error??"Не удалось добавить товар в корзину",a.status,e.code??"CART_ADD_FAILED")}return a.json()}async function C(e,t,r){let n=await p("/api/cart/kit",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cart_id:e,quoteToken:t,requestId:r})}),a=await n.json().catch(()=>({}));if(!n.ok||!a.cart)throw new u(a.error??"Не удалось добавить комплект в корзину",n.status,a.code??"KIT_ADD_FAILED",a.quote);return{cart:a.cart,alreadyApplied:a.alreadyApplied,reconciled:a.reconciled}}async function E(e,t,r){let n=await p("/api/cart/line-items",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({cart_id:e,line_item_id:t,quantity:r})});if(!n.ok){let e=await n.json().catch(()=>({}));throw new u(e.error??"Не удалось изменить количество",n.status,e.code??"CART_UPDATE_FAILED")}return n.json()}async function k(e,t){let r=await p("/api/cart/line-items",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({cart_id:e,line_item_id:t})});if(!r.ok){let e=await r.json().catch(()=>({}));throw new u(e.error??"Не удалось удалить товар",r.status,e.code??"CART_REMOVE_FAILED")}return r.json()}async function j(e,t,r){let n=await p("/api/cart/promotions",{method:e,headers:{"Content-Type":"application/json"},body:JSON.stringify({cart_id:t,code:r})});if(!n.ok){let t=await n.json().catch(()=>({}));throw new u(t.error??("POST"===e?"Не удалось применить промокод":"Не удалось снять промокод"),n.status,t.code??("POST"===e?"PROMO_APPLY_FAILED":"PROMO_REMOVE_FAILED"))}return n.json()}let S=(0,r.createContext)(null);e.s(["CartProvider",0,function({children:e}){let[n,p]=(0,r.useState)({cartId:null,items:[],subtotal:0,itemCount:0,discountTotal:0,promotions:[],loading:!1,error:null,initialized:!1}),[O,x]=(0,r.useState)(!1),P=(0,r.useRef)(null),R=(0,r.useRef)(null),T=(0,r.useRef)(new o),A=(0,r.useRef)(0),I=(0,r.useRef)([]);function M(e,t){if(P.current!==t)return;let r=(e?.items??[]).map(m),{itemCount:n}=g(r);p(t=>({...t,items:r,subtotal:e?b(e,r):0,itemCount:n,discountTotal:e?y(e):0,promotions:e?h(e):[]}))}function L(e){p(t=>({...t,error:e}))}(0,r.useEffect)(()=>{I.current=n.items},[n.items]);let D=(0,r.useCallback)((e=!0)=>{A.current+=1,P.current=null,R.current=null,e&&f(null),p(e=>({...e,cartId:null,items:[],subtotal:0,itemCount:0,discountTotal:0,promotions:[],loading:!1,initialized:!0,error:null}))},[]),N=(0,r.useCallback)(async e=>{let t=++A.current;p(e=>({...e,loading:!0,error:null}));try{let{cart:r}=await w(e);if(t!==A.current)return;if(r?.id&&null===r.completed_at){let e=(r.items??[]).map(m),{itemCount:t}=g(e);P.current=r.id,f(r.id),p(n=>({...n,cartId:r.id,items:e,subtotal:b(r,e),itemCount:t,discountTotal:y(r),promotions:h(r),loading:!1,initialized:!0,error:null}));return}D()}catch(e){if(t!==A.current)return;if(c(e))return void D();p(e=>({...e,loading:!1,initialized:!0,error:"Корзина временно недоступна. Проверьте соединение и повторите загрузку."}))}},[D]),$=(0,r.useCallback)(async()=>{let e=d()??P.current;e?await N(e):p(e=>({...e,initialized:!0,error:null}))},[N]),z=(0,r.useCallback)(()=>{if(P.current)return Promise.resolve(P.current);if(R.current)return R.current;let e=(async()=>{let e=d();if(e)try{let{cart:t}=await w(e);if(t?.id&&null===t.completed_at){let e=(t.items??[]).map(m),{itemCount:r}=g(e);return P.current=t.id,p(n=>({...n,cartId:t.id,items:e,subtotal:b(t,e),itemCount:r,discountTotal:y(t),promotions:h(t)})),t.id}f(null)}catch(e){if(c(e))f(null);else throw Error("Корзина временно недоступна — попробуйте ещё раз")}let{cart:t}=await _(),r=t.id;return P.current=r,f(r),p(e=>({...e,cartId:r,items:[],subtotal:0,itemCount:0,discountTotal:0,promotions:[]})),r})().finally(()=>{R.current=null});return R.current=e,e},[]);(0,r.useEffect)(()=>{let e=d();e?N(e):p(e=>({...e,initialized:!0}))}
18,[N]),(0,r.useEffect)(()=>{let e=e=>{if(e.key===l&&e.newValue!==P.current){if(!e.newValue)return void D(!1);N(e.newValue)}};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[D,N]);let q=(0,r.useCallback)(async(e,t,r)=>T.current.enqueue(async()=>{L(null);try{let n,a=await z();try{n=await v(a,e,t,r)}catch(i){if(!c(i))throw i;D(),a=await z(),n=await v(a,e,t,r)}return M(n.cart,a),{ok:!0}}catch(t){let e=s(t,"CART_ADD_FAILED","Не удалось добавить товар в корзину. Попробуйте ещё раз.");return e.ok||L(e.message),e}}),[z,D]),U=(0,r.useCallback)(async(e,t)=>T.current.enqueue(async()=>{L(null);let r=!1;try{let n,a=await z();try{n=await C(a,e,t)}catch(i){if(!c(i))throw i;D(),a=await z(),r=!0,n=await C(a,e,t)}return M(n.cart,a),{ok:!0,...r?{cartRecreated:!0}:{},...n.reconciled?{reconciled:!0}:{}}}catch(t){if(t instanceof u){let e={ok:!1,code:t.code,message:t.message,...void 0!==t.quote?{quote:t.quote}:{}};return L(e.message),e}let e={ok:!1,code:"KIT_ADD_FAILED",message:"Не удалось добавить комплект в корзину. Попробуйте ещё раз."};return L(e.message),e}}),[z,D]),F=(0,r.useCallback)(async(e,t)=>T.current.enqueue(async()=>{let r=P.current;if(!r)return{ok:!1,code:"CART_NOT_INITIALIZED",message:"Корзина не загружена. Обновите страницу и попробуйте ещё раз."};L(null);try{let{cart:n}=await E(r,e,t);return M(n,r),{ok:!0}}catch(t){if(c(t))return D(),await z(),{ok:!1,code:"CART_RECREATED",message:"Корзина уже была оформлена в другой вкладке. Создана новая корзина."};let e=s(t,"CART_UPDATE_FAILED","Не удалось изменить количество. Попробуйте ещё раз.");return e.ok||L(e.message),e}}),[z,D]),B=(0,r.useCallback)(async e=>T.current.enqueue(async()=>{let t=P.current;if(!t)return{ok:!1,code:"CART_NOT_INITIALIZED",message:"Корзина не загружена. Обновите страницу и попробуйте ещё раз."};let r=I.current.find(t=>t.id===e);L(null);try{let{cart:n}=await k(t,e);return M(n,t),r&&a([i(r)]),{ok:!0}}catch(t){if(c(t))return D(),await z(),{ok:!1,code:"CART_RECREATED",message:"Корзина уже была оформлена в другой вкладке. Создана новая корзина."};let e=s(t,"CART_REMOVE_FAILED","Не удалось удалить товар. Попробуйте ещё раз.");return e.ok||L(e.message),e}}),[z,D]),G=(0,r.useCallback)(async e=>T.current.enqueue(async()=>{let t=P.current;if(!t)return{ok:!1,code:"CART_NOT_INITIALIZED",message:"Корзина не загружена. Обновите страницу и попробуйте ещё раз."};try{let{cart:r}=await j("POST",t,e);return M(r,t),{ok:!0}}catch(e){return s(e,"PROMO_APPLY_FAILED","Не удалось применить промокод — попробуйте ещё раз")}}),[]),V=(0,r.useCallback)(async e=>T.current.enqueue(async()=>{let t=P.current;if(!t)return{ok:!1,code:"CART_NOT_INITIALIZED",message:"Корзина не загружена. Обновите страницу и попробуйте ещё раз."};try{let{cart:r}=await j("DELETE",t,e);return M(r,t),{ok:!0}}catch(e){return s(e,"PROMO_REMOVE_FAILED","Не удалось снять промокод — попробуйте ещё раз")}}),[]),H=(0,r.useCallback)(()=>{A.current+=1,P.current=null,R.current=null,f(null),p(e=>({...e,cartId:null,items:[],subtotal:0,itemCount:0,discountTotal:0,promotions:[],error:null}))},[]),W=(0,r.useCallback)(()=>x(!0),[]),J=(0,r.useCallback)(()=>x(!1),[]),K={...n,drawerOpen:O,addItem:q,addKit:U,updateItem:F,removeItem:B,applyPromotion:G,removePromotion:V,retryCart:$,resetCart:H,openDrawer:W,closeDrawer:J};return(0,t.jsx)(S.Provider,{value:K,children:e})},"useCart",0,function(){let e=(0,r.useContext)(S);if(!e)throw Error("useCart must be used inside <CartProvider>");return e}],16552)},896751,e=>{"use strict";e.i(16552),e.s([])},372332,e=>{"use strict";let t=/\d+(?:[.,]\d+)?\s*(?:мл|л|кг|г|мм|см)(?=$|\s|\/)/iu,r=/^(?:GN\s*\d+|RAL\s*\d+|NCS\s+.+)$/i,n=/^\d+(?:[.,]\d+)?$/;e.s(["cartColorName",0,function(e){let t="string"==typeof e?.color_name?e.color_name.trim():"";if(!t)return null;
18let n=t.replace(/^GN\s*\d+\s*/i,"").trim();return n&&!r.test(n)?n:!r.test(t)||/^GN\s*\d+$/i.test(t)?t:"Колерованный оттенок"},"cartVariantDetails",0,function(e,r,a){let i=/кист/i.test(a??""),o="string"==typeof r?.size_label&&r.size_label.trim()?r.size_label.trim():i?"Размер":"Объём";if(!e)return{volume:null,option:null,volumeLabel:o};let l="string"==typeof r?.size_unit&&r.size_unit.trim()?r.size_unit.trim():i?"мм":"л",u=e.split("/").map(e=>e.trim()).filter(Boolean),s=u.find(e=>t.test(e))??null,c=s?null:u.find(e=>n.test(e))??null;return{volume:s??(c&&l?`${c} ${l}`:c),option:u.filter(e=>e!==(s??c)).join(" / ")||null,volumeLabel:o}}])},167253,e=>{"use strict";let t;var r=e.i(271645);e.i(247167);let n="true"===(t="gnature.site".trim().toLowerCase()??"")?"all":""===t||"false"===t?[]:t.split(",").map(e=>e.trim()).filter(Boolean);"all"===n||n.length;let a=()=>()=>{},i=()=>(function(e,t=n){return"all"===t||!!e&&t.includes(e.trim().toLowerCase().replace(/:\d+$/u,""))})(window.location.hostname),o=()=>"all"===n;e.s(["useHomeAssistantEnabled",0,function(){return(0,r.useSyncExternalStore)(a,i,o)}],167253)},201107,e=>{"use strict";let t=(0,e.i(475254).default)("Trees",[["path",{d:"M10 10v.2A3 3 0 0 1 8.9 16H5a3 3 0 0 1-1-5.8V10a3 3 0 0 1 6 0Z",key:"1l6gj6"}],["path",{d:"M7 16v6",key:"1a82de"}],["path",{d:"M13 19v3",key:"13sx9i"}],["path",{d:"M12 19h8.3a1 1 0 0 0 .7-1.7L18 14h.3a1 1 0 0 0 .7-1.7L16 9h.2a1 1 0 0 0 .8-1.7L13 3l-1.4 1.5",key:"1sj9kv"}]]);e.s(["Trees",0,t],201107)},237092,e=>{"use strict";let t=(0,e.i(475254).default)("Wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z",key:"cbrjhi"}]]);e.s(["default",0,t])},358519,958377,e=>{"use strict";var t=e.i(475254);let r=(0,t.default)("Brush",[["path",{d:"m9.06 11.9 8.07-8.06a2.85 2.85 0 1 1 4.03 4.03l-8.06 8.08",key:"1styjt"}],["path",{d:"M7.07 14.94c-1.66 0-3 1.35-3 3.02 0 1.33-2.5 1.52-2 2.02 1.08 1.1 2.49 2.02 4 2.02 2.2 0 4-1.8 4-4.04a3.01 3.01 0 0 0-3-3.02z",key:"z0l1mu"}]]);e.s(["Brush",0,r],358519);let n=(0,t.default)("Flame",[["path",{d:"M8.5 14.5A2.5 2.5 0 0 0 11 12c0-1.38-.5-2-1-3-1.072-2.143-.224-4.054 2-6 .5 2.5 2 4.9 4 6.5 2 1.6 3 3.5 3 5.5a7 7 0 1 1-14 0c0-1.153.433-2.294 1-3a2.5 2.5 0 0 0 2.5 2.5z",key:"96xj49"}]]);e.s(["Flame",0,n],958377)},859648,e=>{"use strict";let t=/^GN\s?(\d{3,5}[A-ZА-Я]?)$/,r=/^RAL\s?(\d{4})$/,n=/^(?:NCS\s?)?S\s?(\d{4})-?([A-Z]\d{0,2}[A-Z]?)$/;function a(e){let a=e.trim().toUpperCase().replace(/\s+/g," ");if(!a)return null;let i=a.match(t);return i?{palette:"gnature",canonical:`GN ${i[1]}`,compact:`GN${i[1]}`}:(i=a.match(r))?{palette:"ral",canonical:`RAL ${i[1]}`,compact:`RAL${i[1]}`}:(i=a.match(n))?{palette:"ncs",canonical:`NCS S ${i[1]}-${i[2]}`,compact:`NCSS${i[1]}${i[2]}`}:null}e.s(["detectPaletteIntent",0,function(e){let t=e.trim().toUpperCase();return/^GN[\s\d]/.test(t)||"GN"===t?"gnature":/^RAL[\s\d]/.test(t)||"RAL"===t?"ral":/^NCS\b/.test(t)?"ncs":null},"isValidUrlPalette",0,function(e){return"ral"===e||"ncs"===e},"parseColorCode",0,a,"resolveRemoteQuery",0,function(e){let t=a(e);return t?t.canonical:e.trim()},"serializeCodeToURL",0,function(e){return encodeURIComponent(e)}])},113625,e=>{"use strict";let t=(0,e.i(475254).default)("Layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]]);e.s(["default",0,t])},852008,e=>{"use strict";var t=e.i(113625);e.s(["Layers",()=>t.default])},321219,e=>{"use strict";async function t(e,t,r){try{let n=await fetch(`/api/colors/search?q=${encodeURIComponent(e)}&palette=${t}`,{signal:r});if(429===n.status)return{status:"rate_limited"};if(!n.ok)return{status:"error"};let a=await n.json();return{status:"ok",data:a}}catch(e){return e instanceof DOMException&&e.name,{status:"error"}}}e.s(["searchPaletteRemote",0,t])},808341,(e,t,r)=>{"use strict";
18Object.defineProperty(r,"__esModule",{value:!0});var n={cancelIdleCallback:function(){return o},requestIdleCallback:function(){return i}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i="u">typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},o="u">typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},519083,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={ESCAPE_REGEX:function(){return o},htmlEscapeAttributeString:function(){return c},htmlEscapeJsonString:function(){return s}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},o=/[&><\u2028\u2029]/g,l={"&":"&amp;",'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;"},u=/[&"'<>]/g;function s(e){return e.replace(o,e=>i[e])}function c(e){return e.replace(u,e=>l[e])}},479520,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return w},handleClientScriptLoad:function(){return y},initScriptLoader:function(){return b}};for(var a in n)Object.defineProperty(r,a,{enumerable:!0,get:n[a]});let i=e.r(555682),o=e.r(190809),l=e.r(843476),u=i._(e.r(174080)),s=o._(e.r(271645)),c=e.r(742732),d=e.r(922737),f=e.r(808341),p=e.r(519083),m=new Map,g=new Set,h=e=>{let{src:t,id:r,onLoad:n=()=>{},onReady:a=null,dangerouslySetInnerHTML:i,children:o="",strategy:l="afterInteractive",onError:s,stylesheets:c}=e,f=r||t;if(f&&g.has(f))return;if(m.has(t)){g.add(f),m.get(t).then(n,s);return}let p=()=>{a&&a(),g.add(f)},h=document.createElement("script"),y=new Promise((e,t)=>{h.addEventListener("load",function(t){e(),n&&n.call(this,t),p()}),h.addEventListener("error",function(e){t(e)})}).catch(function(e){s&&s(e)});i?(h.innerHTML=i.__html||"",p()):o?(h.textContent="string"==typeof o?o:Array.isArray(o)?o.join(""):"",p()):t&&(h.src=t,m.set(t,y)),(0,d.setAttributesFromProps)(h,e),"worker"===l&&h.setAttribute("type","text/partytown"),h.setAttribute("data-nscript",l),c&&(e=>{if(u.default.preinit)return e.forEach(e=>{u.default.preinit(e,{as:"style"})});if("u">typeof window){let t=document.head;e.forEach(e=>{let r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,t.appendChild(r)})}})(c),document.body.appendChild(h)};function y(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>h(e))}):h(e)}function b(e){e.forEach(y),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");g.add(t)})}function _(e){let{id:t,src:r="",onLoad:n=()=>{},onReady:a=null,strategy:i="afterInteractive",onError:o,stylesheets:d,...m}=e,{updateScripts:y,scripts:b,getIsSsr:_,appDir:w,nonce:v}=(0,s.useContext)(c.HeadManagerContext);v=m.nonce||v;let C=(0,s.useRef)(!1);(0,s.useEffect)(()=>{let e=t||r;C.current||(a&&e&&g.has(e)&&a(),C.current=!0)},[a,t,r]);let E=(0,s.useRef)(!1);if((0,s.useEffect)(()=>{if(!E.current){if("afterInteractive"===i)h(e);else"lazyOnload"===i&&("complete"===document.readyState?(0,f.requestIdleCallback)(()=>h(e)):window.addEventListener("load",()=>{(0,f.requestIdleCallback)(()=>h(e))}));E.current=!0}},[e,i]),("beforeInteractive"===i||"worker"===i)&&(y?(b[i]=(b[i]||[]).concat([{id:t,src:r,onLoad:n,onReady:a,onError:o,...m,nonce:v}]),y(b)):_&&_()?g.add(t||r):_&&!_()&&h({...e,nonce:v})),w){if(d&&d.forEach(e=>{u.default.preinit(e,{as:"style"})}),"beforeInteractive"===i)if(!r)return m.dangerouslySetInnerHTML&&(m.children=m.dangerouslySetInnerHTML.__html,delete m.dangerouslySetInnerHTML),(0,l.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${(0,p.htmlEscapeJsonString)(JSON.stringify([0,{...m,id:t}]))})`}});else return u.default.preload(r,m.integrity?{as:"script",integrity:m.integrity,nonce:v,crossOrigin:m.crossOrigin}:{as:"script",nonce:v,crossOrigin:m.crossOrigin}),(0,l.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:`(self.__next_s=self.__next_s||[]).push(${(0,p.htmlEscapeJsonString)(JSON.stringify([r,{...m,id:t}]))})`}});"afterInteractive"===i&&r&&u.default.preload(r,m.integrity?{as:"script",integrity:m.integrity,nonce:v,crossOrigin:m.crossOrigin}:{as:"script",nonce:v,crossOrigin:m.crossOrigin})}return null}Object.defineProperty(_,"__nextScript",{value:!0});let w=_;("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esMo
18dule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.