1var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t,n)=>()=>{if(n)throw n[0];try{return e&&(t=e(e=0)),t}catch(e){throw n=[e],e}},s=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),c=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},l=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},u=(n,r,o)=>(o=n==null?{}:e(i(n)),l(r||!n||!n.__esModule||!a.call(n,`default`)?t(o,`default`,{value:n,enumerable:!0}):o,n)),d=e=>a.call(e,`module.exports`)?e[`module.exports`]:l(t({},`__esModule`,{value:!0}),e);(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var f=`phc_V7JMHB0fVJGRu8UHyrsj6pSL1BS76P5zD8qCi7lrTTV`,p=`https://cdn.jsdelivr.net/npm/[email protected]/dist/array.full.min.js`,m=null,h=()=>window.posthog;function g(){let e=h();return e?Promise.resolve(e):m||(m=new Promise(e=>{let t=document.createElement(`script`);t.src=p,t.async=!0,t.onload=()=>{let t=h();if(!t){e(null);return}t.init(f,{api_host:`https://us.i.posthog.com`,autocapture:!1,capture_pageview:!1,capture_pageleave:!1,disable_session_recording:!0,disable_scroll_properties:!0,capture_performance:{web_vitals:!1},rageclick:!1,loaded(e){e.sessionRecording?.stopRecording()}}),e(t)},t.onerror=()=>e(null),document.head.appendChild(t)}),m)}function _(e,t={},n){h()?.capture(e,{...t,version:n})}var v=`__READDY_PUBLIC_PROJECT_CONFIG_REQUESTS__`;function y(){let e=globalThis;return e[v]||(e[v]=new Map),e[v]}function b(e){let t=`https://readdy.ai/api/public/user/is_free?projectId=${encodeURIComponent(e)}`,n=y(),r=n.get(t);if(r)return r;let i=fetch(t).then(async e=>{if(!e.ok)return null;let t=await e.json();return t.code===`OK`?t.data:null}).catch(()=>null);return n.set(t,i),i}var x={colors:{text:`#5D5D5D`,white:`#FFFFFF`,border:`rgba(0, 10, 36, 0.08)`},font:{family:`"Geist"`,weight:`600`,size:{normal:`14px`,button:`14px`},lineHeight:`20px`},button:{gradient:`linear-gradient(180deg, #A797FF 0%, #7057FF 100%)`},shadow:`0px 8px 12px 0px rgba(9, 10, 20, 0.06)`,zIndex:`${2**53-1}`},ee={close:`data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%232D303D%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cline%20x1%3D%2218%22%20y1%3D%226%22%20x2%3D%226%22%20y2%3D%2218%22%2F%3E%3Cline%20x1%3D%226%22%20y1%3D%226%22%20x2%3D%2218%22%20y2%3D%2218%22%2F%3E%3C%2Fsvg%3E`,generate:`data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20fill%3D%22none%22%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M4.87%204.94c.227-.71%201.21-.723%201.456-.02l1.177%203.378%203.101%201.013c.708.231.714%201.216.01%201.455l-3.183%201.082-1.105%203.17c-.245.704-1.23.69-1.455-.02l-.989-3.107-3.367-1.203c-.702-.25-.68-1.234.04-1.455l3.282-1.016%201.043-3.277Z%22%20fill%3D%22%23FFF%22%2F%3E%3Cpath%20fill-rule%3D%22evenodd%22%20d%3D%22M12.238%201.3c.167-.667%201.1-.667%201.266%200l.388%201.551%201.55.388c.666.166.667%201.1%200%201.266l-1.55.388-.388%201.55c-.167.666-1.1.667-1.266%200l-.388-1.55-1.55-.388c-.667-.166-.667-1.1%200-1.266l1.55-.388.388-1.551Z%22%20fill%3D%22%23FFF%22%2F%3E%3C%2Fsvg%3E`},te={readdyLogo:`https://public.readdy.ai/gen_page/readdy-logo.png`,watermarkLogo:`https://public.readdy.ai/gen_page/watermark.png`,readdyLink:`https://readdy.ai?ref=b`,fontStylesheet:`https://fonts.googleapis.com/css2?family=Geist:wght@600&display=swap`},S={en:{prefix:`This Website is Made with`,suffix:`. You can also get one like this in minutes`,button:`Get one for FREE`},zh:{prefix:`æ¬ç½ç«æ¥èª`,suffix:`ä½ ä¹å¯ä»¥å¨å åéå
æ
1¥æåæ ·ç页é¢`,button:`ç«å³å
è´¹æ¥æ`}},C=()=>navigator.language?.toLowerCase().startsWith(`zh`)??!1,ne=()=>C()?S.zh:S.en,re=()=>window.innerWidth>768&&!(`ontouchstart`in window),ie=()=>{let e=window.location.hostname;return[`readdy.ai`,`dev.readdy.ai`,`localhost`].some(t=>e===t||e.endsWith(`.${t}`))};function ae(e,t){_(e,t,2)}function oe(e,t){Object.assign(e.style,t)}function se(e,t=`0`){oe(e,{color:x.colors.text,fontFamily:x.font.family,fontSize:x.font.size.normal,lineHeight:x.font.lineHeight,fontWeight:x.font.weight,whiteSpace:`nowrap`,marginRight:t})}function ce(e,t=`row`){oe(e,{display:`flex`,flexDirection:t,alignItems:`center`,justifyContent:`center`})}function le(){if(ie())return;async function e(e){let t=await b(e);return!t||!t.is_free}function t(){document.querySelector(`link[rel="icon"]`)?.remove();let e=document.createElement(`link`);e.type=`image/png`,e.rel=`icon`,e.href=te.readdyLogo,document.head.appendChild(e);let t=document.createElement(`link`);t.rel=`stylesheet`,t.href=te.fontStylesheet,document.head.appendChild(t)}function n(e){ae(e),window.open(te.readdyLink,`_blank`)}function r(){let e=document.createElement(`div`);e.id=`close-button`,oe(e,{position:`absolute`,top:`-12px`,right:`-12px`,width:`32px`,height:`32px`,backgroundColor:x.colors.white,borderRadius:`50%`,borderStyle:`solid`,borderWidth:`1px`,borderColor:x.colors.border,cursor:`pointer`,boxShadow:x.shadow}),ce(e);let t=document.createElement(`img`);return t.src=ee.close,oe(t,{width:`24px`,height:`24px`}),e.appendChild(t),e.addEventListener(`click`,e=>{e.stopPropagation(),ae(`watermark_close_button_click`),document.getElementById(`watermark`)?.remove()}),e}function i(e){let t=document.createElement(`div`);t.id=`generate-button`,oe(t,{padding:e?`8px 16px`:`10px 20px`,background:x.button.gradient,borderRadius:`999px`,border:`none`,gap:`6px`,cursor:`pointer`,marginLeft:e?`12px`:`0`,whiteSpace:`nowrap`,width:e?`auto`:`100%`}),ce(t);let r=document.createElement(`img`);r.src=ee.generate,oe(r,{width:`16px`,height:`16px`,flexShrink:`0`});let i=document.createElement(`span`);return i.textContent=ne().button,oe(i,{color:x.colors.white,fontFamily:x.font.family,fontSize:x.font.size.button,fontWeight:x.font.weight,lineHeight:x.font.lineHeight}),t.append(r,i),t.addEventListener(`click`,e=>{e.stopPropagation(),n(`watermark_create_button_click`)}),t}function a(){let e=document.createElement(`img`);return e.src=te.watermarkLogo,oe(e,{width:`92px`,height:`auto`,margin:`0 8px`,flexShrink:`0`,display:`block`}),e}function o(e){let t=ne(),n=document.createElement(`div`);n.textContent=t.prefix,se(n);let r=a(),o=document.createElement(`div`);o.textContent=t.suffix,se(o,`12px`),e.append(n,r,o,i(!0))}function s(e,t){let n=document.createElement(`div`);return n.textContent=e,se(n),t&&oe(n,t),n}function c(e){let{prefix:t,suffix:n}=ne(),[r,o]=n.startsWith(`.`)?[`.`,n.slice(1).trim()]:[``,n],c=document.createElement(`div`);ce(c),c.style.marginBottom=`4px`,c.append(s(t),a(),...r?[s(r)]:[]),e.append(c,s(o,{textAlign:`center`,marginBottom:`12px`}),i(!1))}function l(){let e=re(),t=document.createElement(`div`);return t.id=`watermark`,oe(t,{zIndex:x.zIndex,position:`fixed`,bottom:`24px`,left:`50%`,transform:`translateX(-50%)`,width:e?`fit-content`:`calc(100% - 32px)`,maxWidth:e?`none`:`100%`,backgroundColor:x.colors.white,borderStyle:`solid`,borderWidth:`1px`,borderRadius:e?`999px`:`36px`,borderColor:x.colors.border,padding:e?`12px 20px`:`16px`,boxShadow:x.shadow,cursor:`pointer`}),ce(t,e?`row`:`column`),t.appendChild(r()),e?o(t):c(t),t.addEventListener(`click`,e=>{e.target.closest(`#generate-button, #close-button`)||n(`watermark_create_button_click`)}),t}function u(e){let n=document.getElementById(`watermark`);!n&&!e?(document.body.appendChild(l()),t(),g()):e&&n&&n.remove()}e(`8d055a10-2980-4e8d-9b9e-e81fa42dca9b`).then(u)}le();var ue=`published_web_ad`,de=`readdy-affiliate-ad`,fe=`https://public.readdy.ai/gen_page/readdy-logo.png`;function pe(e,t){_(e,t,1)}function me(e,t){if(!e.affiliate_link)return null;let n=new URL(e.affiliate_link);return n.searchParams.set(`channel`,ue),n.searchParams.set(`source_project_id`,t),n.toString()}function he(e,t){return{project_id:e,source_project_id:e,channel:ue,affiliate_link:t,domain:window.location.hostname,path:window.location.pathname}}function ge(e,t){Object.assign(e.style,t)}var _e=()=>window.innerWidth>768&&!(`ontouchstart`in window);function ve(){let e=document.createElement(`div`),t=!_e();return e.id=de,ge(e,{zIndex:`${2**53-1}`,position:`fixed`,left:t?`12px`:`32px`,bottom:t?`12px`:`32px`,display:`inline-flex`,alignItems:`center`,height:`30px`,maxWidth:t?`calc(100% - 24px)`:`none`,padding:`0 10px`,border:`1px solid rgba(255, 255, 255, 0.12)`,borderRadius:`6px`,backgroundColor:`#2D2D2D`,boxShadow:`0 2px 8px rgba(0, 0, 0, 0.2)`,color:`#FFFFFF`,fontFamily:`Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,fontSize:`12px`,lineHeight:`1`,whiteSpace:`nowrap`,curs
vendor: 8,881 bytes, line 1
1or:`pointer`}),e}function ye(){let e=document.createElement(`span`);return e.textContent=`Built with`,ge(e,{color:`rgba(255, 255, 255, 0.82)`,fontWeight:`500`}),e}function be(){let e=document.createElement(`img`);return e.src=fe,e.alt=`Readdy`,ge(e,{width:`16px`,height:`16px`,marginLeft:`6px`,flex:`0 0 auto`,display:`block`}),e}function xe(){let e=document.createElement(`span`);return e.textContent=`Readdy`,ge(e,{marginLeft:`4px`,fontWeight:`650`,letterSpacing:`-0.01em`}),e}function Se(e,t,n){return()=>{pe(`site_readdy_ad_click`,he(t,n)),window.open(e,`_blank`,`noopener,noreferrer`)}}function Ce(e,t){let n=me(e,t);if(!n)return null;let r=ve();return r.append(ye(),be(),xe()),r.addEventListener(`click`,Se(n,t,e.affiliate_link)),r}async function w(){let e=`8d055a10-2980-4e8d-9b9e-e81fa42dca9b`,t=await b(e);if(document.getElementById(de)?.remove(),!t||t.is_free||!t.affiliate_enabled)return;let n=Ce(t,e);n&&(document.body.appendChild(n),await g()&&pe(`site_readdy_ad_impression`,he(e,t.affiliate_link)))}w().catch(()=>{document.getElementById(de)?.remove()});var T=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.for(`react.view_transition`),m=Symbol.iterator;function h(e){return typeof e!=`object`||!e?null:(e=m&&e[m]||e[`@@iterator`],typeof e==`function`?e:null)}var g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},_=Object.assign,v={};function y(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}y.prototype.isReactComponent={},y.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function b(){}b.prototype=y.prototype;function x(e,t,n){this.props=e,this.context=t,this.refs=v,this.updater=n||g}var ee=x.prototype=new b;ee.constructor=x,_(ee,y.prototype),ee.isPureReactComponent=!0;var te=Array.isArray;function S(){}var C={H:null,A:null,T:null,S:null},ne=Object.prototype.hasOwnProperty;function re(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function ie(e,t){return re(e.type,t,e.props)}function ae(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function oe(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var se=/\/+/g;function ce(e,t){return typeof e==`object`&&e&&e.key!=null?oe(``+e.key):t.toString(36)}function le(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(S,S):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function ue(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,ue(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+ce(e,0):a,te(o)?(i=``,c!=null&&(i=c.replace(se,`$&/`)+`/`),ue(o,r,i,``,function(e){return e})):o!=null&&(ae(o)&&(o=ie(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(se,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(te(e))for(var u=0;u<e.length;u++)a=e[u],s=l+ce(a,u),c+=ue(a,r,i,s,o);else if(u=h(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+ce(a,u++),c+=ue(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return ue(le(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function de(e,t,n){if(e==null)return e;var r=[],i=0;return ue(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function fe(e){if(e._status===-1){var t=e._result,n=t();n.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t,n.status===void 0&&(n.status=`fulfilled`,n.value=t))},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t,n.status===void 0&&(n.status=`rejected`,n.reason=t))}),e._status===-1&&(e._status=0,e._result=n)}if(e._status===1)return e._result.default;throw e._result}var pe=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)};function me(e){var t=C.T,n={};n.types=t===null?null:t.types,C.T=n;try{var r=e(),i=C.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(S,pe)}catch(e){pe(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),C.T=t}}function he(e){var t=C.T;if(t!==null){var n=t.types;n===null?t.types=[e]:n.indexOf(e)===-1&&n.push(e)}else me(he.bind(null,e))}var ge={map:de,forEach:function(e,t,n){de(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return de(e,function(){t++}),t},toArray:function(e){return de(e,function(e){return e})||[]},only:function(e){if(!ae(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=ge,e.Component=y,e.Fragment=r,e.Profiler=a,e.PureComponent=x,e.StrictMode=i,e.Suspense=l,e.ViewTransition=p,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=C,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return C.H.useMemoCache(e)}},e.addTransitionType=he,e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=_({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!ne.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return re(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)ne.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return re(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=ae,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:fe}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=me,e.unstable_useCacheRefresh=function(){return C.H.useCacheRefresh()},e.use=function(e){return C.H.use(e)},e.useActionState=function(e,t,n){return C.H.useActionState(e,t,n)},e.useCallback=function(e,t){return C.H.useCallback(e,t)},e.useContext=function(e){return C.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return C.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return C.H.useEffect(e,t)},e.useEffectEvent=function(e){return C.H.useEffectEvent(e)},e.useId=function(){return C.H.useId()},e.useImperativeHandle=function(e,t,n){return C.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return C.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return C.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return C.H.useMemo(e,t)},e.useOptimistic=function(e,t){return C.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return C.H.useReducer(e,t,n)},e.useRef=function(e){return C.H.useRef(e)},e.useState=function(e){return C.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return C.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return C.H.useTransition()}
1,e.version=`19.3.0`})),we=s(((e,t)=>{t.exports=T()})),E=u(we()),D=e=>typeof e==`string`,Te=()=>{let e,t,n=new Promise((n,r)=>{e=n,t=r});return n.resolve=e,n.reject=t,n},Ee=e=>e==null?``:``+e,De=(e,t,n)=>{e.forEach(e=>{t[e]&&(n[e]=t[e])})},O=/###/g,Oe=e=>e&&e.indexOf(`###`)>-1?e.replace(O,`.`):e,ke=e=>!e||D(e),Ae=(e,t,n)=>{let r=D(t)?t.split(`.`):t,i=0;for(;i<r.length-1;){if(ke(e))return{};let t=Oe(r[i]);!e[t]&&n&&(e[t]=new n),e=Object.prototype.hasOwnProperty.call(e,t)?e[t]:{},++i}return ke(e)?{}:{obj:e,k:Oe(r[i])}},je=(e,t,n)=>{let{obj:r,k:i}=Ae(e,t,Object);if(r!==void 0||t.length===1){r[i]=n;return}let a=t[t.length-1],o=t.slice(0,t.length-1),s=Ae(e,o,Object);for(;s.obj===void 0&&o.length;)a=`${o[o.length-1]}.${a}`,o=o.slice(0,o.length-1),s=Ae(e,o,Object),s?.obj&&s.obj[`${s.k}.${a}`]!==void 0&&(s.obj=void 0);s.obj[`${s.k}.${a}`]=n},Me=(e,t,n,r)=>{let{obj:i,k:a}=Ae(e,t,Object);i[a]=i[a]||[],i[a].push(n)},Ne=(e,t)=>{let{obj:n,k:r}=Ae(e,t);if(n&&Object.prototype.hasOwnProperty.call(n,r))return n[r]},Pe=(e,t,n)=>{let r=Ne(e,n);return r===void 0?Ne(t,n):r},Fe=(e,t,n)=>{for(let r in t)r!==`__proto__`&&r!==`constructor`&&(r in e?D(e[r])||e[r]instanceof String||D(t[r])||t[r]instanceof String?n&&(e[r]=t[r]):Fe(e[r],t[r],n):e[r]=t[r]);return e},Ie=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,`\\$&`),Le={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`,"/":`/`},Re=e=>D(e)?e.replace(/[&<>"'\/]/g,e=>Le[e]):e,ze=class{constructor(e){this.capacity=e,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(e){let t=this.regExpMap.get(e);if(t!==void 0)return t;let n=new RegExp(e);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(e,n),this.regExpQueue.push(e),n}},Be=[` `,`,`,`?`,`!`,`;`],Ve=new ze(20),He=(e,t,n)=>{t||=``,n||=``;let r=Be.filter(e=>t.indexOf(e)<0&&n.indexOf(e)<0);if(r.length===0)return!0;let i=Ve.getRegExp(`(${r.map(e=>e===`?`?`\\?`:e).join(`|`)})`),a=!i.test(e);if(!a){let t=e.indexOf(n);t>0&&!i.test(e.substring(0,t))&&(a=!0)}return a},Ue=(e,t,n=`.`)=>{if(!e)return;if(e[t])return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0;let r=t.split(n),i=e;for(let e=0;e<r.length;){if(!i||typeof i!=`object`)return;let t,a=``;for(let o=e;o<r.length;++o)if(o!==e&&(a+=n),a+=r[o],t=i[a],t!==void 0){if([`string`,`number`,`boolean`].indexOf(typeof t)>-1&&o<r.length-1)continue;e+=o-e+1;break}i=t}return i},We=e=>e?.replace(`_`,`-`),Ge={type:`logger`,log(e){this.output(`log`,e)},warn(e){this.output(`warn`,e)},error(e){this.output(`error`,e)},output(e,t){console?.[e]?.apply?.(console,t)}},Ke=new class e{constructor(e,t={}){this.init(e,t)}init(e,t={}){this.prefix=t.prefix||`i18next:`,this.logger=e||Ge,this.options=t,this.debug=t.debug}log(...e){return this.forward(e,`log`,``,!0)}warn(...e){return this.forward(e,`warn`,``,!0)}error(...e){return this.forward(e,`error`,``)}deprecate(...e){return this.forward(e,`warn`,`WARNING DEPRECATED: `,!0)}forward(e,t,n,r){return r&&!this.debug?null:(D(e[0])&&(e[0]=`${n}${this.prefix} ${e[0]}`),this.logger[t](e))}create(t){return new e(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t||=this.options,t.prefix=t.prefix||this.prefix,new e(this.logger,t)}},qe=class{constructor(){this.observers={}}on(e,t){return e.split(` `).forEach(e=>{this.observers[e]||(this.observers[e]=new Map);let n=this.observers[e].get(t)||0;this.observers[e].set(t,n+1)}),this}off(e,t){if(this.observers[e]){if(!t){delete this.observers[e];return}this.observers[e].delete(t)}}emit(e,...t){this.observers[e]&&Array.from(this.observers[e].entries()).forEach(([e,n])=>{for(let r=0;r<n;r++)e(...t)}),this.observers[`*`]&&Array.from(this.observers[`*`].entries()).forEach(([n,r])=>{for(let i=0;i<r;i++)n.apply(n,[e,...t])})}},Je=class extends qe{constructor(e,t={ns:[`translation`],defaultNS:`translation`}){super(),this.data=e||{},this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(e){this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}removeNamespaces(e){let t=this.options.ns.indexOf(e);t>-1&&this.options.ns.splice(t,1)}getResource(e,t,n,r={}){let i=r.keySeparator===void 0?this.options.keySeparator:r.keySeparator,a=r.ignoreJSONStructure===void 0?this.options.ignoreJSONStructure:r.ignoreJSONStructure,o;e.indexOf(`.`)>-1?o=e.split(`.`):(o=[e,t],n&&(Array.isArray(n)?o.push(...n):D(n)&&i?o.push(...n.split(i)):o.push(n)));let s=Ne(this.data,o);return!s&&!t&&!n&&e.indexOf(`.`)>-1&&(e=o[0],t=o[1],n=o.slice(2).join(`.`)),s||!a||!D(n)?s:Ue(this.data?.[e]?.[t],n,i)}addResource(e,t,n,r,i={silent:!1}){let a=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,o=[e,t];
vendor: 11,758 bytes, line 1
1n&&(o=o.concat(a?n.split(a):n)),e.indexOf(`.`)>-1&&(o=e.split(`.`),r=t,t=o[1]),this.addNamespaces(t),je(this.data,o,r),i.silent||this.emit(`added`,e,t,n,r)}addResources(e,t,n,r={silent:!1}){for(let r in n)(D(n[r])||Array.isArray(n[r]))&&this.addResource(e,t,r,n[r],{silent:!0});r.silent||this.emit(`added`,e,t,n)}addResourceBundle(e,t,n,r,i,a={silent:!1,skipCopy:!1}){let o=[e,t];e.indexOf(`.`)>-1&&(o=e.split(`.`),r=n,n=t,t=o[1]),this.addNamespaces(t);let s=Ne(this.data,o)||{};a.skipCopy||(n=JSON.parse(JSON.stringify(n))),r?Fe(s,n,i):s={...s,...n},je(this.data,o,s),a.silent||this.emit(`added`,e,t,n)}removeResourceBundle(e,t){this.hasResourceBundle(e,t)&&delete this.data[e][t],this.removeNamespaces(t),this.emit(`removed`,e,t)}hasResourceBundle(e,t){return this.getResource(e,t)!==void 0}getResourceBundle(e,t){return t||=this.options.defaultNS,this.getResource(e,t)}getDataByLanguage(e){return this.data[e]}hasLanguageSomeTranslations(e){let t=this.getDataByLanguage(e);return!!(t&&Object.keys(t)||[]).find(e=>t[e]&&Object.keys(t[e]).length>0)}toJSON(){return this.data}},Ye={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,n,r,i){return e.forEach(e=>{t=this.processors[e]?.process(t,n,r,i)??t}),t}},Xe=Symbol(`i18next/PATH_KEY`);function Ze(){let e=[],t=Object.create(null),n;return t.get=(r,i)=>(n?.revoke?.(),i===Xe?e:(e.push(i),n=Proxy.revocable(r,t),n.proxy)),Proxy.revocable(Object.create(null),t).proxy}function Qe(e,t){let{[Xe]:n}=e(Ze());return n.join(t?.keySeparator??`.`)}var $e={},et=e=>!D(e)&&typeof e!=`boolean`&&typeof e!=`number`,tt=class e extends qe{constructor(e,t={}){super(),De([`resourceStore`,`languageUtils`,`pluralResolver`,`interpolator`,`backendConnector`,`i18nFormat`,`utils`],e,this),this.options=t,this.options.keySeparator===void 0&&(this.options.keySeparator=`.`),this.logger=Ke.create(`translator`)}changeLanguage(e){e&&(this.language=e)}exists(e,t={interpolation:{}}){let n={...t};return e!=null&&this.resolve(e,n)?.res!==void 0}extractFromKey(e,t){let n=t.nsSeparator===void 0?this.options.nsSeparator:t.nsSeparator;n===void 0&&(n=`:`);let r=t.keySeparator===void 0?this.options.keySeparator:t.keySeparator,i=t.ns||this.options.defaultNS||[],a=n&&e.indexOf(n)>-1,o=!this.options.userDefinedKeySeparator&&!t.keySeparator&&!this.options.userDefinedNsSeparator&&!t.nsSeparator&&!He(e,n,r);if(a&&!o){let t=e.match(this.interpolator.nestingRegexp);if(t&&t.length>0)return{key:e,namespaces:D(i)?[i]:i};let a=e.split(n);(n!==r||n===r&&this.options.ns.indexOf(a[0])>-1)&&(i=a.shift()),e=a.join(r)}return{key:e,namespaces:D(i)?[i]:i}}translate(t,n,r){let i=typeof n==`object`?{...n}:n;if(typeof i!=`object`&&this.options.overloadTranslationOptionHandler&&(i=this.options.overloadTranslationOptionHandler(arguments)),typeof options==`object`&&(i={...i}),i||={},t==null)return``;typeof t==`function`&&(t=Qe(t,i)),Array.isArray(t)||(t=[String(t)]);let a=i.returnDetails===void 0?this.options.returnDetails:i.returnDetails,o=i.keySeparator===void 0?this.options.keySeparator:i.keySeparator,{key:s,namespaces:c}=this.extractFromKey(t[t.length-1],i),l=c[c.length-1],u=i.nsSeparator===void 0?this.options.nsSeparator:i.nsSeparator;u===void 0&&(u=`:`);let d=i.lng||this.language,f=i.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(d?.toLowerCase()===`cimode`)return f?a?{res:`${l}${u}${s}`,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:`${l}${u}${s}`:a?{res:s,usedKey:s,exactUsedKey:s,usedLng:d,usedNS:l,usedParams:this.getUsedParamsDetails(i)}:s;let p=this.resolve(t,i),m=p?.res,h=p?.usedKey||s,g=p?.exactUsedKey||s,_=[`[object Number]`,`[object Function]`,`[object RegExp]`],v=i.joinArrays===void 0?this.options.joinArrays:i.joinArrays,y=!this.i18nFormat||this.i18nFormat.handleAsObject,b=i.count!==void 0&&!D(i.count),x=e.hasDefaultValue(i),ee=b?this.pluralResolver.getSuffix(d,i.count,i):``,te=i.ordinal&&b?this.pluralResolver.getSuffix(d,i.count,{ordinal:!1}):``,S=b&&!i.ordinal&&i.count===0,C=S&&i[`defaultValue${this.options.pluralSeparator}zero`]||i[`defaultValue${ee}`]||i[`defaultValue${te}`]||i.defaultValue,ne=m;y&&!m&&x&&(ne=C);let re=et(ne),ie=Object.prototype.toString.apply(ne);if(y&&ne&&re&&_.indexOf(ie)<0&&!(D(v)&&Array.isArray(ne))){if(!i.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn(`accessing an object - but returnObjects options is not enabled!`);let e=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,ne,{...i,ns:c}):`key '${s} (${this.language})' returned an object instead of string.`;return a?(p.res=e,p.usedParams=this.getUsedParamsDetails(i),p):e}if(o){let e=Array.isArray(ne),t=e?[]:{},n=e?g:h;for(let e in ne)if(Object.prototype.hasOwnProperty.call(ne,e)){let r=`${n}${o}${e}`;t[e]=x&&!m?this.translate(r,{...i,defaultValue:et(C)?C[e]:void 0,joinArrays:!1,ns:c}):this.translate(r,{...i,joinArrays:!1,ns:c}),t[e]===r&&(t[e]=ne[e])}m=t}}else if(y&&D(v)&&Array.isArray(m))m=m.join(v),m&&=this.extendTranslation(m,t,i,r);else{let e=!1,n=!1;!this.isValidLookup(m)&&x&&(e=!0,m=C),this.isValidLookup(m)||(n=!0,m=s);let a=(i.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&n?void 0:m,c=x&&C!==m&&this.options.updateMissing;if(n||e||c){if(this.logger.log(c?`updateKey`:`missingKey`,d,l,s,c?C:m),o){let e=this.resolve(s,{...i,keySeparator:!1});e&&e.res&&this.logger.warn(`Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.`)}let e=[],t=this.languageUtils.getFallbackCodes(this.options.fallbackLng,i.lng||this.language);if(this.options.saveMissingTo===`fallback`&&t&&t[0])for(let n=0;n<t.length;n++)e.push(t[n]);else this.options.saveMissingTo===`all`?e=this.languageUtils.toResolveHierarchy(i.lng||this.language):e.push(i.lng||this.language);let n=(e,t,n)=>{let r=x&&n!==m?n:a;this.options.missingKeyHandler?this.options.missingKeyHandler(e,l,t,r,c,i):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(e,l,t,r,c,i),this.emit(`missingKey`,e,l,t,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&b?e.forEach(e=>{let t=this.pluralResolver.getSuffixes(e,i);S&&i[`defaultValue${this.options.pluralSeparator}zero`]&&t.indexOf(`${this.options.pluralSeparator}zero`)<0&&t.push(`${this.options.pluralSeparator}zero`),t.forEach(t=>{n([e],s+t,i[`defaultValue${t}`]||C)})}):n(e,s,C))}m=this.extendTranslation(m,t,i,p,r),n&&m===s&&this.options.appendNamespaceToMissingKey&&(m=`${l}${u}${s}`),(n||e)&&this.options.parseMissingKeyHandler&&(m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}${u}${s}`:s,e?m:void 0,i))}return a?(p.res=m,p.usedParams=this.getUsedParamsDetails(i),p):m}extendTranslation(e,t,n,r,i){if(this.i18nFormat?.parse)e=this.i18nFormat.parse(e,{...this.options.interpolation.defaultVariables,...n},n.lng||this.language||r.usedLng,r.usedNS,r.usedKey,{resolved:r});else if(!n.skipInterpolation){n.interpolation&&this.interpolator.init({...n,interpolation:{...this.options.interpolation,...n.interpolation}});let a=D(e)&&(n?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:n.interpolation.skipOnVariables),o;if(a){let t=e.match(this.interpolator.nestingRegexp);o=t&&t.length}let s=n.replace&&!D(n.replace)?n.replace:n;if(this.options.interpolation.defaultVariables&&(s={...this.options.interpolation.defaultVariables,...s}),e=this.interpolator.interpolate(e,s,n.lng||this.language||r.usedLng,n),a){let t=e.match(this.interpolator.nestingRegexp),r=t&&t.length;o<r&&(n.nest=!1)}!n.lng&&r&&r.res&&(n.lng=this.language||r.usedLng),n.nest!==!1&&(e=this.interpolator.nest(e,(...e)=>i?.[0]===e[0]&&!n.context?(this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`),null):this.translate(...e,t),n)),n.interpolation&&this.interpolator.reset()}let a=n.postProcess||this.options.postProcess,o=D(a)?[a]:a;return e!=null&&o?.length&&n.applyPostProcessor!==!1&&(e=Ye.handle(o,e,t,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...r,usedParams:this.getUsedParamsDetails(n)},...n}:n,this)),e}resolve(e,t={}){let n,r,i,a,o;return D(e)&&(e=[e]),e.forEach(e=>{if(this.isValidLookup(n))return;let s=this.extractFromKey(e,t),c=s.key;r=c;let l=s.namespaces;this.options.fallbackNS&&(l=l.concat(this.options.fallbackNS));let u=t.count!==void 0&&!D(t.count),d=u&&!t.ordinal&&t.count===0,f=t.context!==void 0&&(D(t.context)||typeof t.context==`number`)&&t.context!==``,p=t.lngs?t.lngs:this.languageUtils.toResolveHierarchy(t.lng||this.language,t.fallbackLng);l.forEach(e=>{this.isValidLookup(n)||(o=e,!$e[`${p[0]}-${e}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(o)&&($e[`${p[0]}-${e}`]=!0,this.logger.warn(`key "${r}" for languages "${p.join(`, `)}" won't get resolved as namespace "${o}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`)),p.forEach(r=>{if(this.isValidLookup(n))return;a=r;let o=[c];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(o,c,r,e,t);else{let e;u&&(e=this.pluralResolver.getSuffix(r,t.count,t));let n=`${this.options.pluralSeparator}zero`,i=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(u&&(t.ordinal&&e.indexOf(i)===0&&o.push(c+e.replace(i,this.options.pluralSeparator)),o.push(c+e),d&&o.push(c+n)),f){let r=`${c}${this.options.contextSeparator||`_`}${t.context}`;o.push(r),u&&(t.ordinal&&e.indexOf(i)===0&&o.push(r+e.replace(i,this.options.pluralSeparator)),o.push(r+e),d&&o.push(r+n))}}let s;for(;s=o.pop();)this.isValidLookup(n)||(i=s,n=this.getResource(r,e,s,t))}))})}),{res:n,usedKey:r,exactUsedKey:i,usedLng:a,usedNS:o}}isValidLookup(e){return e!==void 0&&!(!this.options.returnNull&&e===null)&&!(!this.options.returnEmptyString&&e===``)}getResource(e,t,n,r={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(e,t,n,r):this.resourceStore.getResource(e,t,n,r)}getUsedParamsDetails(e={}){let t=[`defaultValue`,`ordinal`,`context`,`replace`,`lng`,`lngs`,`fallbackLng`,`ns`,`keySeparator`,`nsSeparator`,`returnObjects`,`returnDetails`,`joinArrays`,`postProcess`,`interpolation`],n=e.replace&&!D(e.replace),r=n?e.replace:e;if(n&&e.count!==void 0&&(r.count=e.count),this.options.interpolation.defaultVariables&&(r={...this.options.interpolation.defaultVariables,...r}),!n){r={...r};for(let e of t)delete r[e]}return r}static hasDefaultValue(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)&&t.substring(0,12)===`defaultValue`&&e[t]!==void 0)return!0;return!1}},nt=class{constructor(e){this.options=e,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ke.create(`languageUtils`)}getScriptPartFromCode(e){if(e=We(e),!e||e.indexOf(`-`)<0)return null;let t=e.split(`-`);return t.length===2||(t.pop(),t[t.length-1].toLowerCase()===`x`)?null:this.formatLanguageCode(t.join(`-`))}getLanguagePartFromCode(e){if(e=We(e),!e||e.indexOf(`-`)<0)return e;let t=e.split(`-`);return this.formatLanguageCode(t[0])}formatLanguageCode(e){if(D(e)&&e.indexOf(`-`)>-1){let t;try{t=Intl.getCanonicalLocales(e)[0]}catch{}return t&&this.options.lowerCaseLng&&(t=t.toLowerCase()),t||(this.options.lowerCaseLng?e.toLowerCase():e)}return this.options.cleanCode||this.options.lowerCaseLng?e.toLowerCase():e}isSupportedCode(e){return(this.options.load===`languageOnly`||this.options.nonExplicitSupportedLngs)&&(e=this.getLanguagePartFromCode(e)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(e)>-1}getBestMatchFromCodes(e){if(!e)return null;let t;
vendor: 1,448 bytes, line 1
1return e.forEach(e=>{if(t)return;let n=this.formatLanguageCode(e);(!this.options.supportedLngs||this.isSupportedCode(n))&&(t=n)}),!t&&this.options.supportedLngs&&e.forEach(e=>{if(t)return;let n=this.getScriptPartFromCode(e);if(this.isSupportedCode(n))return t=n;let r=this.getLanguagePartFromCode(e);if(this.isSupportedCode(r))return t=r;t=this.options.supportedLngs.find(e=>{if(e===r||!(e.indexOf(`-`)<0&&r.indexOf(`-`)<0)&&(e.indexOf(`-`)>0&&r.indexOf(`-`)<0&&e.substring(0,e.indexOf(`-`))===r||e.indexOf(r)===0&&r.length>1))return e})}),t||=this.getFallbackCodes(this.options.fallbackLng)[0],t}getFallbackCodes(e,t){if(!e)return[];if(typeof e==`function`&&(e=e(t)),D(e)&&(e=[e]),Array.isArray(e))return e;if(!t)return e.default||[];let n=e[t];return n||=e[this.getScriptPartFromCode(t)],n||=e[this.formatLanguageCode(t)],n||=e[this.getLanguagePartFromCode(t)],n||=e.default,n||[]}toResolveHierarchy(e,t){let n=this.getFallbackCodes((t===!1?[]:t)||this.options.fallbackLng||[],e),r=[],i=e=>{e&&(this.isSupportedCode(e)?r.push(e):this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`))};return D(e)&&(e.indexOf(`-`)>-1||e.indexOf(`_`)>-1)?(this.options.load!==`languageOnly`&&i(this.formatLanguageCode(e)),this.options.load!==`languageOnly`&&this.options.load!==`currentOnly`&&i(this.getScriptPartFromCode(e)),this.options.load!==`currentOnly`&&i(this.getLanguagePartFromCode(e))):D(e)&&i(this.formatLanguageCode(e)),n.forEac
1h(e=>{r.indexOf(e)<0&&i(this.formatLanguageCode(e))}),r}},rt={zero:0,one:1,two:2,few:3,many:4,other:5},it={select:e=>e===1?`one`:`other`,resolvedOptions:()=>({pluralCategories:[`one`,`other`]})},at=class{constructor(e,t={}){this.languageUtils=e,this.options=t,this.logger=Ke.create(`pluralResolver`),this.pluralRulesCache={}}addRule(e,t){this.rules[e]=t}clearCache(){this.pluralRulesCache={}}getRule(e,t={}){let n=We(e===`dev`?`en`:e),r=t.ordinal?`ordinal`:`cardinal`,i=JSON.stringify({cleanedCode:n,type:r});if(i in this.pluralRulesCache)return this.pluralRulesCache[i];let a;try{a=new Intl.PluralRules(n,{type:r})}catch{if(!Intl)return this.logger.error(`No Intl support, please use an Intl polyfill!`),it;if(!e.match(/-|_/))return it;let n=this.languageUtils.getLanguagePartFromCode(e);a=this.getRule(n,t)}return this.pluralRulesCache[i]=a,a}needsPlural(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(e,t,n={}){return this.getSuffixes(e,n).map(e=>`${t}${e}`)}getSuffixes(e,t={}){let n=this.getRule(e,t);return n||=this.getRule(`dev`,t),n?n.resolvedOptions().pluralCategories.sort((e,t)=>rt[e]-rt[t]).map(e=>`${this.options.prepend}${t.ordinal?`ordinal${this.options.prepend}`:``}${e}`):[]}getSuffix(e,t,n={}){let r=this.getRule(e,n);return r?`${this.options.prepend}${n.ordinal?`ordinal${this.options.prepend}`:``}${r.select(t)}`:(this.logger.warn(`no plural rule found for: ${e}`),this.getSuffix(`dev`,t,n))}},ot=(e,t,n,r=`.`,i=!0)=>{let a=Pe(e,t,n);return!a&&i&&D(n)&&(a=Ue(e,n,r),a===void 0&&(a=Ue(t,n,r))),a},st=e=>e.replace(/\$/g,`$$$$`),ct=class{constructor(e={}){this.logger=Ke.create(`interpolator`),this.options=e,this.format=e?.interpolation?.format||(e=>e),this.init(e)}init(e={}){e.interpolation||={escapeValue:!0};let{escape:t,escapeValue:n,useRawValueToEscape:r,prefix:i,prefixEscaped:a,suffix:o,suffixEscaped:s,formatSeparator:c,unescapeSuffix:l,unescapePrefix:u,nestingPrefix:d,nestingPrefixEscaped:f,nestingSuffix:p,nestingSuffixEscaped:m,nestingOptionsSeparator:h,maxReplaces:g,alwaysFormat:_}=e.interpolation;this.escape=t===void 0?Re:t,this.escapeValue=n===void 0||n,this.useRawValueToEscape=r!==void 0&&r,this.prefix=i?Ie(i):a||`{{`,this.suffix=o?Ie(o):s||`}}`,this.formatSeparator=c||`,`,this.unescapePrefix=l?``:u||`-`,this.unescapeSuffix=this.unescapePrefix?``:l||``,this.nestingPrefix=d?Ie(d):f||Ie(`$t(`),this.nestingSuffix=p?Ie(p):m||Ie(`)`),this.nestingOptionsSeparator=h||`,`,this.maxReplaces=g||1e3,this.alwaysFormat=_!==void 0&&_,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){let e=(e,t)=>e?.source===t?(e.lastIndex=0,e):new RegExp(t,`g`);this.regexp=e(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=e(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=e(this.nestingRegexp,`${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`)}interpolate(e,t,n,r){let i,a,o,s=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},c=e=>{if(e.indexOf(this.formatSeparator)<0){let i=ot(t,s,e,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(i,void 0,n,{...r,...t,interpolationkey:e}):i}let i=e.split(this.formatSeparator),a=i.shift().trim(),o=i.join(this.formatSeparator).trim();return this.format(ot(t,s,a,this.options.keySeparator,this.options.ignoreJSONStructure),o,n,{...r,...t,interpolationkey:a})};this.resetRegExp();let l=r?.missingInterpolationHandler||this.options.missingInterpolationHandler,u=r?.interpolation?.skipOnVariables===void 0?this.options.interpolation.skipOnVariables:r.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:e=>st(e)},{regex:this.regexp,safeValue:e=>this.escapeValue?st(this.escape(e)):st(e)}].forEach(t=>{for(o=0;i=t.regex.exec(e);){let n=i[1].trim();if(a=c(n),a===void 0){if(typeof l==`function`){let t=l(e,i,r);a=D(t)?t:``}else if(r&&Object.prototype.hasOwnProperty.call(r,n))a=``;else if(u){a=i[0];continue}else this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`),a=``}else!D(a)&&!this.useRawValueToEscape&&(a=Ee(a));let s=t.safeValue(a);if(e=e.replace(i[0],s),u?(t.regex.lastIndex+=a.length,t.regex.lastIndex-=i[0].length):t.regex.lastIndex=0,o++,o>=this.maxReplaces)break}}),e}nest(e,t,n={}){let r,i,a,o=(e,t)=>{let n=this.nestingOptionsSeparator;if(e.indexOf(n)<0)return e;let r=e.split(RegExp(`${n}[ ]*{`)),i=`{${r[1]}`;e=r[0],i=this.interpolate(i,a);let o=i.match(/'/g),s=i.match(/"/g);((o?.length??0)%2==0&&!s||s.length%2!=0)&&(i=i.replace(/'/g,`"`));try{a=JSON.parse(i),t&&(a={...t,...a})}catch(t){return this.logger.warn(`failed parsing options string in nesting for key ${e}`,t),`${e}${n}${i}`}return a.defaultValue&&a.defaultValue.indexOf(this.prefix)>-1&&delete a.defaultValue,e};for(;r=this.nestingRegexp.exec(e);){let s=[];a={...n},a=a.replace&&!D(a.replace)?a.replace:a,a.applyPostProcessor=!1,delete a.defaultValue;
vendor: 8,681 bytes, line 1
1let c=/{.*}/.test(r[1])?r[1].lastIndexOf(`}`)+1:r[1].indexOf(this.formatSeparator);if(c!==-1&&(s=r[1].slice(c).split(this.formatSeparator).map(e=>e.trim()).filter(Boolean),r[1]=r[1].slice(0,c)),i=t(o.call(this,r[1].trim(),a),a),i&&r[0]===e&&!D(i))return i;D(i)||(i=Ee(i)),i||=(this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`),``),s.length&&(i=s.reduce((e,t)=>this.format(e,t,n.lng,{...n,interpolationkey:r[1].trim()}),i.trim())),e=e.replace(r[0],i),this.regexp.lastIndex=0}return e}},lt=e=>{let t=e.toLowerCase().trim(),n={};if(e.indexOf(`(`)>-1){let r=e.split(`(`);t=r[0].toLowerCase().trim();let i=r[1].substring(0,r[1].length-1);t===`currency`&&i.indexOf(`:`)<0?n.currency||=i.trim():t===`relativetime`&&i.indexOf(`:`)<0?n.range||=i.trim():i.split(`;`).forEach(e=>{if(e){let[t,...r]=e.split(`:`),i=r.join(`:`).trim().replace(/^'+|'+$/g,``),a=t.trim();n[a]||(n[a]=i),i===`false`&&(n[a]=!1),i===`true`&&(n[a]=!0),isNaN(i)||(n[a]=parseInt(i,10))}})}return{formatName:t,formatOptions:n}},ut=e=>{let t={};return(n,r,i)=>{let a=i;i&&i.interpolationkey&&i.formatParams&&i.formatParams[i.interpolationkey]&&i[i.interpolationkey]&&(a={...a,[i.interpolationkey]:void 0});let o=r+JSON.stringify(a),s=t[o];return s||(s=e(We(r),i),t[o]=s),s(n)}},dt=e=>(t,n,r)=>e(We(n),r)(t),ft=class{constructor(e={}){this.logger=Ke.create(`formatter`),this.options=e,this.init(e)}init(e,t={interpolation:{}}){this.formatSeparator=t.interpolation.formatSeparator||`,`;let n=t.cacheInBuiltFormats?ut:dt;this.formats={number:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t});return e=>n.format(e)}),currency:n((e,t)=>{let n=new Intl.NumberFormat(e,{...t,style:`currency`});return e=>n.format(e)}),datetime:n((e,t)=>{let n=new Intl.DateTimeFormat(e,{...t});return e=>n.format(e)}),relativetime:n((e,t)=>{let n=new Intl.RelativeTimeFormat(e,{...t});return e=>n.format(e,t.range||`day`)}),list:n((e,t)=>{let n=new Intl.ListFormat(e,{...t});return e=>n.format(e)})}}add(e,t){this.formats[e.toLowerCase().trim()]=t}addCached(e,t){this.formats[e.toLowerCase().trim()]=ut(t)}format(e,t,n,r={}){let i=t.split(this.formatSeparator);if(i.length>1&&i[0].indexOf(`(`)>1&&i[0].indexOf(`)`)<0&&i.find(e=>e.indexOf(`)`)>-1)){let e=i.findIndex(e=>e.indexOf(`)`)>-1);i[0]=[i[0],...i.splice(1,e)].join(this.formatSeparator)}return i.reduce((e,t)=>{let{formatName:i,formatOptions:a}=lt(t);if(this.formats[i]){let t=e;try{let o=r?.formatParams?.[r.interpolationkey]||{},s=o.locale||o.lng||r.locale||r.lng||n;t=this.formats[i](e,s,{...a,...r,...o})}catch(e){this.logger.warn(e)}return t}return this.logger.warn(`there was no format function for ${i}`),e},e)}},pt=(e,t)=>{e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)},mt=class extends qe{constructor(e,t,n,r={}){super(),this.backend=e,this.store=t,this.services=n,this.languageUtils=n.languageUtils,this.options=r,this.logger=Ke.create(`backendConnector`),this.waitingReads=[],this.maxParallelReads=r.maxParallelReads||10,this.readingCalls=0,this.maxRetries=r.maxRetries>=0?r.maxRetries:5,this.retryTimeout=r.retryTimeout>=1?r.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(n,r.backend,r)}queueLoad(e,t,n,r){let i={},a={},o={},s={};return e.forEach(e=>{let r=!0;t.forEach(t=>{let o=`${e}|${t}`;!n.reload&&this.store.hasResourceBundle(e,t)?this.state[o]=2:this.state[o]<0||(this.state[o]===1?a[o]===void 0&&(a[o]=!0):(this.state[o]=1,r=!1,a[o]===void 0&&(a[o]=!0),i[o]===void 0&&(i[o]=!0),s[t]===void 0&&(s[t]=!0)))}),r||(o[e]=!0)}),(Object.keys(i).length||Object.keys(a).length)&&this.queue.push({pending:a,pendingCount:Object.keys(a).length,loaded:{},errors:[],callback:r}),{toLoad:Object.keys(i),pending:Object.keys(a),toLoadLanguages:Object.keys(o),toLoadNamespaces:Object.keys(s)}}loaded(e,t,n){let r=e.split(`|`),i=r[0],a=r[1];t&&this.emit(`failedLoading`,i,a,t),!t&&n&&this.store.addResourceBundle(i,a,n,void 0,void 0,{skipCopy:!0}),this.state[e]=t?-1:2,t&&n&&(this.state[e]=0);let o={};this.queue.forEach(n=>{Me(n.loaded,[i],a),pt(n,e),t&&n.errors.push(t),n.pendingCount===0&&!n.done&&(Object.keys(n.loaded).forEach(e=>{o[e]||(o[e]={});let t=n.loaded[e];t.length&&t.forEach(t=>{o[e][t]===void 0&&(o[e][t]=!0)})}),n.done=!0,n.errors.length?n.callback(n.errors):n.callback())}),this.emit(`loaded`,o),this.queue=this.queue.filter(e=>!e.done)}read(e,t,n,r=0,i=this.retryTimeout,a){if(!e.length)return a(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:e,ns:t,fcName:n,tried:r,wait:i,callback:a});return}this.readingCalls++;let o=(o,s)=>{if(this.readingCalls--,this.waitingReads.length>0){let e=this.waitingReads.shift();this.read(e.lng,e.ns,e.fcName,e.tried,e.wait,e.callback)}if(o&&s&&r<this.maxRetries){setTimeout(()=>{this.read.call(this,e,t,n,r+1,i*2,a)},i);return}a(o,s)},s=this.backend[n].bind(this.backend);if(s.length===2){try{let n=s(e,t);n&&typeof n.then==`function`?n.then(e=>o(null,e)).catch(o):o(null,n)}catch(e){o(e)}return}return s(e,t,o)}prepareLoading(e,t,n={},r){if(!this.backend)return this.logger.warn(`No backend was added via i18next.use. Will not load resources.`),r&&r();D(e)&&(e=this.languageUtils.toResolveHierarchy(e)),D(t)&&(t=[t]);let i=this.queueLoad(e,t,n,r);if(!i.toLoad.length)return i.pending.length||r(),null;i.toLoad.forEach(e=>{this.loadOne(e)})}load(e,t,n){this.prepareLoading(e,t,{},n)}reload(e,t,n){this.prepareLoading(e,t,{reload:!0},n)}loadOne(e,t=``){let n=e.split(`|`),r=n[0],i=n[1];this.read(r,i,`read`,void 0,void 0,(n,a)=>{n&&this.logger.warn(`${t}loading namespace ${i} for language ${r} failed`,n),!n&&a&&this.logger.log(`${t}loaded namespace ${i} for language ${r}`,a),this.loaded(e,n,a)})}saveMissing(e,t,n,r,i,a={},o=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(t)){this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`,`This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!`);return}if(n!=null&&n!==``){if(this.backend?.create){let s={...a,isUpdate:i},c=this.backend.create.bind(this.backend);if(c.length<6)try{let i;i=c.length===5?c(e,t,n,r,s):c(e,t,n,r),i&&typeof i.then==`function`?i.then(e=>o(null,e)).catch(o):o(null,i)}catch(e){o(e)}else c(e,t,n,r,o,s)}e&&e[0]&&this.store.addResource(e[0],t,n,r)}}},ht=()=>({debug:!1,initAsync:!0,ns:[`translation`],defaultNS:[`translation`],fallbackLng:[`dev`],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:`all`,preload:!1,simplifyPluralSuffix:!0,keySeparator:`.`,nsSeparator:`:`,pluralSeparator:`_`,contextSeparator:`_`,partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:`fallback`,saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let t={};if(typeof e[1]==`object`&&(t=e[1]),D(e[1])&&(t.defaultValue=e[1]),D(e[2])&&(t.tDescription=e[2]),typeof e[2]==`object`||typeof e[3]==`object`){let n=e[3]||e[2];Object.keys(n).forEach(e=>{t[e]=n[e]})}return t},interpolation:{escapeValue:!0,format:e=>e,prefix:`{{`,suffix:`}}`,formatSeparator:`,`,unescapePrefix:`-`,nestingPrefix:`$t(`,nestingSuffix:`)`,nestingOptionsSeparator:`,`,maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),gt=e=>(D(e.ns)&&(e.ns=[e.ns]),D(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),D(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.(`cimode`)<0&&(e.supportedLngs=e.supportedLngs.concat([`cimode`])),typeof e.initImmediate==`boolean`&&(e.initAsync=e.initImmediate),e),_t=()=>{},vt=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(t=>{typeof e[t]==`function`&&(e[t]=e[t].bind(e))})},yt=class e extends qe{constructor(e={},t){if(super(),this.options=gt(e),this.services={},this.logger=Ke,this.modules={external:[]},vt(this),t&&!this.isInitialized&&!e.isClone){if(!this.options.initAsync)return this.init(e,t),this;setTimeout(()=>{this.init(e,t)},0)}}init(e={},t){this.isInitializing=!0,typeof e==`function`&&(t=e,e={}),e.defaultNS==null&&e.ns&&(D(e.ns)?e.defaultNS=e.ns:e.ns.indexOf(`translation`)<0&&(e.defaultNS=e.ns[0]));let n=ht();this.options={...n,...this.options,...gt(e)},this.options.interpolation={...n.interpolation,...this.options.interpolation},e.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=e.keySeparator),e.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=e.nsSeparator);let r=e=>
1e?typeof e==`function`?new e:e:null;if(!this.options.isClone){this.modules.logger?Ke.init(r(this.modules.logger),this.options):Ke.init(null,this.options);let e;e=this.modules.formatter?this.modules.formatter:ft;let t=new nt(this.options);this.store=new Je(this.options.resources,this.options);let i=this.services;i.logger=Ke,i.resourceStore=this.store,i.languageUtils=t,i.pluralResolver=new at(t,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==n.interpolation.format&&this.logger.deprecate(`init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting`),e&&(!this.options.interpolation.format||this.options.interpolation.format===n.interpolation.format)&&(i.formatter=r(e),i.formatter.init&&i.formatter.init(i,this.options),this.options.interpolation.format=i.formatter.format.bind(i.formatter)),i.interpolator=new ct(this.options),i.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},i.backendConnector=new mt(r(this.modules.backend),i.resourceStore,i,this.options),i.backendConnector.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.languageDetector&&(i.languageDetector=r(this.modules.languageDetector),i.languageDetector.init&&i.languageDetector.init(i,this.options.detection,this.options)),this.modules.i18nFormat&&(i.i18nFormat=r(this.modules.i18nFormat),i.i18nFormat.init&&i.i18nFormat.init(this)),this.translator=new tt(this.services,this.options),this.translator.on(`*`,(e,...t)=>{this.emit(e,...t)}),this.modules.external.forEach(e=>{e.init&&e.init(this)})}if(this.format=this.options.interpolation.format,t||=_t,this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){let e=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);e.length>0&&e[0]!==`dev`&&(this.options.lng=e[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn(`init: no languageDetector is used and no lng is defined`),[`getResource`,`hasResourceBundle`,`getResourceBundle`,`getDataByLanguage`].forEach(e=>{this[e]=(...t)=>this.store[e](...t)}),[`addResource`,`addResources`,`addResourceBundle`,`removeResourceBundle`].forEach(e=>{this[e]=(...t)=>(this.store[e](...t),this)});let i=Te(),a=()=>{let e=(e,n)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn(`init: i18next is already initialized. You should call init just once!`),this.isInitialized=!0,this.options.isClone||this.logger.log(`initialized`,this.options),this.emit(`initialized`,this.options),i.resolve(n),t(e,n)};if(this.languages&&!this.isInitialized)return e(null,this.t.bind(this));this.changeLanguage(this.options.lng,e)};return this.options.resources||!this.options.initAsync?a():setTimeout(a,0),i}loadResources(e,t=_t){let n=t,r=D(e)?e:this.language;if(typeof e==`function`&&(n=e),!this.options.resources||this.options.partialBundledLanguages){if(r?.toLowerCase()===`cimode`&&(!this.options.preload||this.options.preload.length===0))return n();let e=[],t=t=>{t&&t!==`cimode`&&this.services.languageUtils.toResolveHierarchy(t).forEach(t=>{t!==`cimode`&&e.indexOf(t)<0&&e.push(t)})};r?t(r):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(e=>t(e)),this.options.preload?.forEach?.(e=>t(e)),this.services.backendConnector.load(e,this.options.ns,e=>{!e&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),n(e)})}else n(null)}reloadResources(e,t,n){let r=Te();return typeof e==`function`&&(n=e,e=void 0),typeof t==`function`&&(n=t,t=void 0),e||=this.languages,t||=this.options.ns,n||=_t,this.services.backendConnector.reload(e,t,e=>{r.resolve(),n(e)}),r}use(e){if(!e)throw Error(`You are passing an undefined module! Please check the object you are passing to i18next.use()`);if(!e.type)throw Error(`You are passing a wrong module! Please check the object you are passing to i18next.use()`);return e.type===`backend`&&(this.modules.backend=e),(e.type===`logger`||e.log&&e.warn&&e.error)&&(this.modules.logger=e),e.type===`languageDetector`&&(this.modules.languageDetector=e),e.type===`i18nFormat`&&(this.modules.i18nFormat=e),e.type===`postProcessor`&&Ye.addPostProcessor(e),e.type===`formatter`&&(this.modules.formatter=e),e.type===`3rdParty`&&this.modules.external.push(e),this}setResolvedLanguage(e){if(e&&this.languages&&!([`cimode`,`dev`].indexOf(e)>-1)){for(let e=0;e<this.languages.length;e++){let t=this.languages[e];if(!([`cimode`,`dev`].indexOf(t)>-1)&&this.store.hasLanguageSomeTranslations(t)){this.resolvedLanguage=t;break}}!this.resolvedLanguage&&this.languages.indexOf(e)<0&&this.store.hasLanguageSomeTranslations(e)&&(this.resolvedLanguage=e,this.languages.unshift(e))}}changeLanguage(e,t){this.isLanguageChangingTo=e;let n=Te();
vendor: 1,989 bytes, line 1
1this.emit(`languageChanging`,e);let r=e=>{this.language=e,this.languages=this.services.languageUtils.toResolveHierarchy(e),this.resolvedLanguage=void 0,this.setResolvedLanguage(e)},i=(i,a)=>{a?this.isLanguageChangingTo===e&&(r(a),this.translator.changeLanguage(a),this.isLanguageChangingTo=void 0,this.emit(`languageChanged`,a),this.logger.log(`languageChanged`,a)):this.isLanguageChangingTo=void 0,n.resolve((...e)=>this.t(...e)),t&&t(i,(...e)=>this.t(...e))},a=t=>{!e&&!t&&this.services.languageDetector&&(t=[]);let n=D(t)?t:t&&t[0],a=this.store.hasLanguageSomeTranslations(n)?n:this.services.languageUtils.getBestMatchFromCodes(D(t)?[t]:t);a&&(this.language||r(a),this.translator.language||this.translator.changeLanguage(a),this.services.languageDetector?.cacheUserLanguage?.(a)),this.loadResources(a,e=>{i(e,a)})};return!e&&this.services.languageDetector&&!this.services.languageDetector.async?a(this.services.languageDetector.detect()):!e&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(a):this.services.languageDetector.detect(a):a(e),n}getFixedT(e,t,n){let r=(e,t,...i)=>{let a;a=typeof t==`object`?{...t}:this.options.overloadTranslationOptionHandler([e,t].concat(i)),a.lng=a.lng||r.lng,a.lngs=a.lngs||r.lngs,a.ns=a.ns||r.ns,a.keyPrefix!==``&&(a.keyPrefix=a.keyPrefix||n||r.keyPrefix);let o=this.options.keySeparator||`.`,s;return a.keyPrefix&&Array.isArray(e)?s=e.map(e=>(typeof e==`function`&&(e=Qe(e,t)),`${a.keyPrefix}${o}${e}`)):(typeof e==`function`&&(e=Qe(e,t)),s=a.keyPrefix?`${a.keyPrefix}${o}${e}`:e),this.t(s,a)};return D(e)?r.lng=e:r.lngs=e,r.ns=t,r.keyPrefix=n,r}t(...e){return this.translator?.translate(...e)}exists(...e){return this.translator?.exists(...e)}setDefaultNamespace(e){this.options.defaultNS=e}hasLoadedNamespace(e,t={}){if(!this.isInitialized)return this.logger.warn(`hasLoadedNamespace: i18next was not initialized`,this.languages),!1;
1if(!this.languages||!this.languages.length)return this.logger.warn(`hasLoadedNamespace: i18n.languages were undefined or empty`,this.languages),!1;let n=t.lng||this.resolvedLanguage||this.languages[0],r=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(n.toLowerCase()===`cimode`)return!0;let a=(e,t)=>{let n=this.services.backendConnector.state[`${e}|${t}`];return n===-1||n===0||n===2};if(t.precheck){let e=t.precheck(this,a);if(e!==void 0)return e}return!!(this.hasResourceBundle(n,e)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||a(n,e)&&(!r||a(i,e)))}loadNamespaces(e,t){let n=Te();return this.options.ns?(D(e)&&(e=[e]),e.forEach(e=>{this.options.ns.indexOf(e)<0&&this.options.ns.push(e)}),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}loadLanguages(e,t){let n=Te();D(e)&&(e=[e]);let r=this.options.preload||[],i=e.filter(e=>r.indexOf(e)<0&&this.services.languageUtils.isSupportedCode(e));return i.length?(this.options.preload=r.concat(i),this.loadResources(e=>{n.resolve(),t&&t(e)}),n):(t&&t(),Promise.resolve())}dir(e){if(e||=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language),!e)return`rtl`;try{let t=new Intl.Locale(e);if(t&&t.getTextInfo){let e=t.getTextInfo();if(e&&e.direction)return e.direction}}catch{}let t=`ar.shu.sqr.ssh.xaa.yhd.yud.aao.abh.abv.acm.acq.acw.acx.acy.adf.ads.aeb.aec.afb.ajp.apc.apd.arb.arq.ars.ary.arz.auz.avl.ayh.ayl.ayn.ayp.bbz.pga.he.iw.ps.pbt.pbu.pst.prp.prd.ug.ur.ydd.yds.yih.ji.yi.hbo.men.xmn.fa.jpr.peo.pes.prs.dv.sam.ckb`.split(`.`),n=this.services?.languageUtils||new nt(ht());return e.toLowerCase().indexOf(`-latn`)>1?`ltr`:t.indexOf(n.getLanguagePartFromCode(e))>-1||e.toLowerCase().indexOf(`-arab`)>1?`rtl`:`ltr`}static createInstance(t={},n){return new e(t,n)}cloneInstance(t={},n=_t){let r=t.forkResourceStore;r&&delete t.forkResourceStore;let i={...this.options,...t,isClone:!0},a=new e(i);return(t.debug!==void 0||t.prefix!==void 0)&&(a.logger=a.logger.clone(t)),[`store`,`services`,`language`].forEach(e=>{a[e]=this[e]}),a.services={...this.services},a.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},r&&(a.store=new Je(Object.keys(this.store.data).reduce((e,t)=>(e[t]={...this.store.data[t]},e[t]=Object.keys(e[t]).reduce((n,r)=>(n[r]={...e[t][r]},n),e[t]),e),{}),i),a.services.resourceStore=a.store),a.translator=new tt(a.services,i),a.translator.on(`*`,(e,...t)=>{a.emit(e,...t)}),a.init(i,n),a.translator.options=i,a.translator.backendConnector.services.utils={hasLoadedNamespace:a.hasLoadedNamespace.bind(a)},a}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}},bt=yt.createInstance();bt.createInstance=yt.createInstance,bt.createInstance,bt.dir,bt.init,bt.loadResources,bt.reloadResources,bt.use,bt.changeLanguage,bt.getFixedT,bt.t,bt.exists,bt.setDefaultNamespace,bt.hasLoadedNamespace,bt.loadNamespaces,bt.loadLanguages;var xt=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,St={"&":`&`,"&":`&`,"<":`<`,"<":`<`,">":`>`,">":`>`,"'":`'`,"'":`'`,""":`"`,""":`"`," ":` `," ":` `,"©":`©`,"©":`©`,"®":`®`,"®":`®`,"…":`â¦`,"…":`â¦`,"/":`/`,"/":`/`},Ct=e=>St[e],wt={bindI18n:`languageChanged`,bindI18nStore:``,transEmptyNodeValue:``,transSupportBasicHtmlNodes:!0,transWrapTextNodes:``,transKeepBasicHtmlNodesFor:[`br`,`strong`,`i`,`p`],useSuspense:!0,unescape:e=>e.replace(xt,Ct)},Tt=(e={})=>{wt={...wt,...e}},Et={type:`3rdParty`,init(e){Tt(e.options.react)}},Dt=(0,E.createContext)();function Ot({i18n:e,defaultNS:t,children:n}){let r=(0,E.useMemo)(()=>({i18n:e,defaultNS:t}),[e,t]);return(0,E.createElement)(Dt.Provider,{value:r},n)}var{slice:kt,forEach:At}=[];function jt(e){return At.call(kt.call(arguments,1),t=>{if(t)for(let n in t)e[n]===void 0&&(e[n]=t[n])}),e}function Mt(e){return typeof e==`string`&&[/<\s*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(t=>t.test(e))}var Nt=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Pt=function(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:`/`},r=`${e}=${encodeURIComponent(t)}`;if(n.maxAge>0){let e=n.maxAge-0;if(Number.isNaN(e))throw Error(`maxAge should be a Number`);r+=`; Max-Age=${Math.floor(e)}`}if(n.domain){if(!Nt.test(n.domain))throw TypeError(`option domain is invali
1d`);r+=`; Domain=${n.domain}`}if(n.path){if(!Nt.test(n.path))throw TypeError(`option path is invalid`);r+=`; Path=${n.path}`}if(n.expires){if(typeof n.expires.toUTCString!=`function`)throw TypeError(`option expires is invalid`);r+=`; Expires=${n.expires.toUTCString()}`}if(n.httpOnly&&(r+=`; HttpOnly`),n.secure&&(r+=`; Secure`),n.sameSite)switch(typeof n.sameSite==`string`?n.sameSite.toLowerCase():n.sameSite){case!0:r+=`; SameSite=Strict`;break;case`lax`:r+=`; SameSite=Lax`;break;case`strict`:r+=`; SameSite=Strict`;break;case`none`:r+=`; SameSite=None`;break;default:throw TypeError(`option sameSite is invalid`)}return n.partitioned&&(r+=`; Partitioned`),r},Ft={create(e,t,n,r){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:`/`,sameSite:`strict`};n&&(i.expires=new Date,i.expires.setTime(i.expires.getTime()+n*60*1e3)),r&&(i.domain=r),document.cookie=Pt(e,t,i)},read(e){let t=`${e}=`,n=document.cookie.split(`;`);for(let e=0;e<n.length;e++){let r=n[e];for(;r.charAt(0)===` `;)r=r.substring(1,r.length);if(r.indexOf(t)===0)return r.substring(t.length,r.length)}return null},remove(e,t){this.create(e,``,-1,t)}},It={name:`cookie`,lookup(e){let{lookupCookie:t}=e;if(t&&typeof document<`u`)return Ft.read(t)||void 0},cacheUserLanguage(e,t){let{lookupCookie:n,cookieMinutes:r,cookieDomain:i,cookieOptions:a}=t;n&&typeof document<`u`&&Ft.create(n,e,r,i,a)}},Lt={name:`querystring`,lookup(e){let{lookupQuerystring:t}=e,n;if(typeof window<`u`){let{search:e}=window.location;!window.location.search&&window.location.hash?.indexOf(`?`)>-1&&(e=window.location.hash.substring(window.location.hash.indexOf(`?`)));let r=e.substring(1).split(`&`);for(let e=0;e<r.length;e++){let i=r[e].indexOf(`=`);i>0&&r[e].substring(0,i)===t&&(n=r[e].substring(i+1))}}return n}},Rt={name:`hash`,lookup(e){let{lookupHash:t,lookupFromHashIndex:n}=e,r;if(typeof window<`u`){let{hash:e}=window.location;if(e&&e.length>2){let i=e.substring(1);if(t){let e=i.split(`&`);for(let n=0;n<e.length;n++){let i=e[n].indexOf(`=`);i>0&&e[n].substring(0,i)===t&&(r=e[n].substring(i+1))}}if(r)return r;if(!r&&n>-1){let t=e.match(/\/([a-zA-Z-]*)/g);
1return Array.isArray(t)?t[typeof n==`number`?n:0]?.replace(`/`,``):void 0}}}return r}},zt=null,Bt=()=>{if(zt!==null)return zt;try{if(zt=typeof window<`u`&&window.localStorage!==null,!zt)return!1;let e=`i18next.translate.boo`;window.localStorage.setItem(e,`foo`),window.localStorage.removeItem(e)}catch{zt=!1}return zt},Vt={name:`localStorage`,lookup(e){let{lookupLocalStorage:t}=e;if(t&&Bt())return window.localStorage.getItem(t)||void 0},cacheUserLanguage(e,t){let{lookupLocalStorage:n}=t;n&&Bt()&&window.localStorage.setItem(n,e)}},Ht=null,Ut=()=>{if(Ht!==null)return Ht;try{if(Ht=typeof window<`u`&&window.sessionStorage!==null,!Ht)return!1;let e=`i18next.translate.boo`;window.sessionStorage.setItem(e,`foo`),window.sessionStorage.removeItem(e)}catch{Ht=!1}return Ht},Wt={name:`sessionStorage`,lookup(e){let{lookupSessionStorage:t}=e;if(t&&Ut())return window.sessionStorage.getItem(t)||void 0},cacheUserLanguage(e,t){let{lookupSessionStorage:n}=t;n&&Ut()&&window.sessionStorage.setItem(n,e)}},Gt={name:`navigator`,lookup(e){let t=[];if(typeof navigator<`u`){let{languages:e,userLanguage:n,language:r}=navigator;if(e)for(let n=0;n<e.length;n++)t.push(e[n]);n&&t.push(n),r&&t.push(r)}return t.length>0?t:void 0}},Kt={name:`htmlTag`,lookup(e){let{htmlTag:t}=e,n,r=t||(typeof document<`u`?document.documentElement:null);return r&&typeof r.getAttribute==`function`&&(n=r.getAttribute(`lang`)),n}},qt={name:`path`,lookup(e){let{lookupFromPathIndex:t}=e;if(typeof window>`u`)return;let n=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(Array.isArray(n))return n[typeof t==`number`?t:0]?.replace(`/`,``)}},Jt={name:`subdomain`,lookup(e){let{lookupFromSubdomainIndex:t}=e,n=typeof t==`number`?t+1:1,r=typeof window<`u`&&window.location?.hostname?.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(r)return r[n]}},Yt=!1;try{document.cookie,Yt=!0}catch{}var Xt=[`querystring`,`cookie`,`localStorage`,`sessionStorage`,`navigator`,`htmlTag`];Yt||Xt.splice(1,1);var Zt=()=>({order:Xt,lookupQuerystring:`lng`,lookupCookie:`i18next`,lookupLocalStorage:`i18nextLng`,lookupSessionStorage:`i18nextLng`,caches:[`localStorage`],excludeCacheFor:[`cimode`],convertDetectedLanguage:e=>e}),Qt=class{constructor(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type=`languageDetector`,this.detectors={},this.init(e,t)}init(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=e,this.options=jt(t,this.options||{},Zt()),typeof this.options.convertDetectedLanguage==`string`&&this.options.convertDetectedLanguage.indexOf(`15897`)>-1&&(this.options.convertDetectedLanguage=e=>e.replace(`-`,`_`)),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=n,this.addDetector(It),this.addDetector(Lt),this.addDetector(Vt),this.addDetector(Wt),this.addDetector(Gt),this.addDetector(Kt),this.addDetector(qt),this.addDetector(Jt),this.addDetector(Rt)}addDetector(e){return this.detectors[e.name]=e,this}detect(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,t=[];return e.forEach(e=>{if(this.detectors[e]){let n=this.detectors[e].lookup(this.options);n&&typeof n==`string`&&(n=[n]),n&&(t=t.concat(n))}}),t=t.filter(e=>e!=null&&!Mt(e)).map(e=>this.options.convertDetectedLanguage(e)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?t:t.length>0?t[0]:null}cacheUserLanguage(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;t&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(e)>-1||t.forEach(t=>{this.detectors[t]&&this.detectors[t].cacheUserLanguage(e,this.options)}))}};Qt.type=`languageDetector`;var $t=Object.assign({}),k={};Object.keys($t).forEach(e=>{let t=e.match(/\.\/([^/]+)\/([^/]+)\.ts$/);if(t){let[,n]=t,r=$t[e];k[n]||(k[n]={translation:{}}),r.default&&(k[n].translation={...k[n].translation,...r.default})}}),bt.use(Qt).use(Et).init({lng:`en`,fallbackLng:`en`,debug:!1,resources:k,interpolation:{escapeValue:!1}});var en=bt,tn=s((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0<n;){var r=n-1>>>1,a=e[r];if(0<i(a,t))e[r]=t,e[n]=a,n=r;else break a}}function n(e){return e.length===0?null:e[0]}function r(e){if(e.length===0)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;a:for(var r=0,a=e.length,o=a>>>1;r<o;){var s=2*(r+1)-1,c=e[s],l=s+1,u=e[l];if(0>i(c,n))l<a&&0>i(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(l<a&&0>i(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m){if(n(c)!==null)m=!0,ee||(ee=!0,ie());else{var t=n(l);t!==null&&se(x,t.startTime-e)}}}
vendor: 5,873 bytes, line 1
1var ee=!1,te=-1,S=5,C=-1;function ne(){return g?!0:!(e.unstable_now()-C<S)}function re(){if(g=!1,ee){var t=e.unstable_now();C=t;var i=!0;try{a:{m=!1,h&&(h=!1,v(te),te=-1),p=!0;var a=f;try{b:{for(b(t),d=n(c);d!==null&&!(d.expirationTime>t&&ne());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&se(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}i=void 0}}finally{i?ie():ee=!1}}}var ie;if(typeof y==`function`)ie=function(){y(re)};else if(typeof MessageChannel<`u`){var ae=new MessageChannel,oe=ae.port2;ae.port1.onmessage=re,ie=function(){oe.postMessage(null)}}else ie=function(){_(re,0)};function se(t,n){te=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error(`forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported`):S=0<e?Math.floor(1e3/e):5},e.unstable_getCurrentPriorityLevel=function(){return f},e.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},e.unstable_requestPaint=function(){g=!0},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},e.unstable_scheduleCallback=function(r,i,a){var o=e.unstable_now();switch(typeof a==`object`&&a?(a=a.delay,a=typeof a==`number`&&0<a?o+a:o):a=o,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return s=a+s,r={id:u++,callback:i,priorityLevel:r,startTime:a,expirationTime:s,sortIndex:-1},a>o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(te),te=-1):h=!0,se(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,ee||(ee=!0,ie()))),r},e.unstable_shouldYield=ne,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),nn=s(((e,t)=>{t.exports=tn()})),rn=s((e=>{var t=we();function n(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function r(){}var i={d:{f:r,r:function(){throw Error(n(522))},D:r,C:r,L:r,m:r,X:r,S:r,M:r},p:0,findDOMNode:null},a=Symbol.for(`react.portal`),o=Symbol.for(`react.recoverable`),s=Symbol.for(`react.optimistic_key`);function c(e,t,n){var r=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:a,key:r==null?null:r===s?s:``+r,children:e,containerInfo:t,implementation:n}}var l=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function u(e,t){if(e===`font`)return``;if(typeof t==`string`)return t===`use-credentials`?t:``}e.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,e.browser=function(e){return{$$typeof:o,_reason:e}},e.createPortal=function(e,t){var r=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)throw Error(n(299));return c(e,t,null,r)},e.flushSync=function(e){var t=l.T,n=i.p;try{if(l.T=null,i.p=2,e)return e()}finally{l.T=t,i.p=n,i.d.f()}},e.preconnect=function(e,t){typeof e==`string`&&(t?(t=t.crossOrigin,t=typeof t==`string`?t===`use-credentials`?t:``:void 0):t=null,i.d.C(e,t))},e.prefetchDNS=function(e){typeof e==`string`&&i.d.D(e)},e.preinit=function(e,t){if(typeof e==`string`&&t&&typeof t.as==`string`){var n=t.as,r=u(n,t.crossOrigin),a=typeof t.integrity==`string`?t.integrity:void 0,o=typeof t.fetchPriority==`string`?t.fetchPriority:void 0;n===`style`?i.d.S(e,typeof t.precedence==`string`?t.precedence:void 0,{crossOrigin:r,integrity:a,fetchPriority:o}):n===`script`&&i.d.X(e,{crossOrigin:r,integrity:a,fetchPriority:o,nonce:typeof t.nonce==`string`?t.nonce:void 0})}},e.preinitModule=function(e,t){if(typeof e==`string`){if(typeof t==`object`&&t){if(t.as==null||t.as===`script`){var n=u(t.as,t.crossOrigin);i.d.M(e,{crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}}else t??i.d.M(e)}},e.preload=function(e,t){if(typeof e==`string`&&typeof t==`object`&&t&&typeof t.as==`string`){var n=t.as,r=u(n,t.crossOrigin);i.d.L(e,n,{crossOrigin:r,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,type:typeof t.type==`string`?t.type:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0,referrerPolicy:typeof t.referrerPolicy==`string`?t.referrerPolicy:void 0,imageSrcSet:typeof t.imageSrcSet==`string`?t.imageSrcSet:void 0,imageSizes:typeof t.imageSizes==`string`?t.imageSizes:void 0,media:typeof t.media==`string`?t.media:void 0})}},e.preloadModule=function(e,t){if(typeof e==`string`){if(t){var n=u(t.as,t.crossOrigin);i.d.m(e,{as:typeof t.as==`string`&&t.as!==`script`?t.as:void 0,crossOrigin:n,integrity:typeof t.integrity==`string`?t.integrity:void 0,nonce:typeof t.nonce==`string`?t.nonce:void 0,fetchPriority:typeof t.fetchPriority==`string`?t.fetchPriority:void 0})}else i.d.m(e)}},e.requestFormReset=function(e){i.d.r(e)},e.unstable_batchedUpdates=function(e,t){return e(t)},e.useFormState=function(e,t,n){return l.H.useFormState(e,t,n)},e.useFormStatus=function(){return l.H.useHostTransitionStatus()}
1,e.version=`19.3.0`})),an=s(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=rn()})),on=s((e=>{var t=nn(),n=we(),r=an();function i(e){var t=`https://react.dev/errors/`+e;if(1<arguments.length){t+=`?args[]=`+encodeURIComponent(arguments[1]);for(var n=2;n<arguments.length;n++)t+=`&args[]=`+encodeURIComponent(arguments[n])}return`Minified React error #`+e+`; visit `+t+` for the full message or use the non-minified dev environment for full errors and additional helpful warnings.`}function a(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function o(e){for(var t=e,n=t;n&&!n.alternate;)t=n,t.flags&4098&&(e=t.return),n=t.return;for(;t.return;)t=t.return;return t.tag===3?e:null}function s(e){if(e.tag===13){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function c(e){if(e.tag===31){var t=e.memoizedState;if(t===null&&(e=e.alternate,e!==null&&(t=e.memoizedState)),t!==null)return t.dehydrated}return null}function l(e){if(o(e)!==e)throw Error(i(188))}function u(e){var t=e.alternate;if(!t){if(t=o(e),t===null)throw Error(i(188));return t===e?e:null}for(var n=e,r=t;;){var a=n.return;if(a===null)break;var s=a.alternate;if(s===null){if(r=a.return,r!==null){n=r;continue}break}if(a.child===s.child){for(s=a.child;s;){if(s===n)return l(a),e;if(s===r)return l(a),t;s=s.sibling}throw Error(i(188))}if(n.return!==r.return)n=a,r=s;else{for(var c=!1,u=a.child;u;){if(u===n){c=!0,n=a,r=s;break}if(u===r){c=!0,r=a,n=s;break}u=u.sibling}if(!c){for(u=s.child;u;){if(u===n){c=!0,n=s,r=a;break}if(u===r){c=!0,r=s,n=a;break}u=u.sibling}if(!c)throw Error(i(189))}}if(n.alternate!==r)throw Error(i(190))}if(n.tag!==3)throw Error(i(188));return n.stateNode.current===n?e:t}function d(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e;for(e=e.child;e!==null;){if(t=d(e),t!==null)return t;e=e.sibling}return null}function f(e,t,n,r,i,a){for(;e!==null;){if((e.tag===5||e.tag===27||e.tag===6)&&n(e,r,i,a)||(e.tag!==22||e.memoizedState===null)&&(t||e.tag!==5&&e.tag!==27)&&f(e.child,t,n,r,i,a))return!0;e=e.sibling}return!1}function p(e){for(e=e.return;e!==null;){if(e.tag===3||e.tag===5||e.tag===27)return e;e=e.return}return null}function m(e){var t=!1;for(e=e.return;e!==null&&(e.tag===4&&(t=!0),e.tag!==3&&e.tag!==5&&e.tag!==27);)e=e.return;return t}function h(e){var t=[null,null],n=p(e);return n===null||g(t,e,n.child,{foundSelf:!1}),t}function g(e,t,n,r){for(;n!==null;){if(n===t)r.foundSelf=!0;else if(n.tag===5||n.tag===27||n.tag===6){if(r.foundSelf)return e[1]=n,!0;e[0]=n}else if((n.tag!==22||n.memoizedState===null)&&g(e,t,n.child,r))return!0;n=n.sibling}return!1}function _(e){switch(e.tag){case 5:case 27:case 6:return e.stateNode;case 3:return e.stateNode.containerInfo;default:throw Error(i(559))}}var v=null,y=null;function b(e,t,n){return e===n||e===t&&(v=e,!0)}function x(e,t,n){return e===n?(y=e,!1):e===t&&(y!==null&&(v=e),!0)}function ee(e){if(e===null)return null;do e=e===null?null:e.return;while(e&&e.tag!==5&&e.tag!==27&&e.tag!==3);return e||null}function te(e,t,n){for(var r=0,i=e;i;i=n(i))r++;i=0;for(var a=t;a;a=n(a))i++;for(;0<r-i;)e=n(e),r--;for(;0<i-r;)t=n(t),i--;for(;r--;){if(e===t||t!==null&&e===t.alternate)return e;e=n(e),t=n(t)}return null}var S=Object.assign,C=Symbol.for(`react.element`),ne=Symbol.for(`react.transitional.element`),re=Symbol.for(`react.portal`),ie=Symbol.for(`react.fragment`),ae=Symbol.for(`react.strict_mode`),oe=Symbol.for(`react.profiler`),se=Symbol.for(`react.consumer`),ce=Symbol.for(`react.context`),le=Symbol.for(`react.forward_ref`),ue=Symbol.for(`react.suspense`),de=Symbol.for(`react.suspense_list`),fe=Symbol.for(`react.memo`),pe=Symbol.for(`react.lazy`),me=Symbol.for(`react.activity`),he=Symbol.for(`react.legacy_hidden`),ge=Symbol.for(`react.memo_cache_sentinel`),_e=Symbol.for(`react.view_transition`),ve=Symbol.for(`react.recoverable`),ye=Symbol.iterator;function be(e){return typeof e!=`object`||!e?null:(e=ye&&e[ye]||e[`@@iterator`],typeof e==`function`?e:null)}var xe=Symbol.for(`react.client.reference`);function Se(e){if(e==null)return null;if(typeof e==`function`)return e.$$typeof===xe?null:e.displayName||e.name||null;if(typeof e==`string`)return e;switch(e){case ie:return`Fragment`;case oe:return`Profiler`;case ae:return`StrictMode`;case ue:return`Suspense`;case de:return`SuspenseList`;case me:return`Activity`;case _e:return`ViewTransition`}if(typeof e==`object`)switch(e.$$typeof){case re:return`Portal`;case ce:return e.displayName||`Context`;case se:return(e._context.displayName||`Context`)+`.Consumer`;case le:var t=e.render;return e=e.displayName,e||=(e=t.displayName||t.name||``,e===``?`ForwardRef`:`ForwardRef(`+e+`)`),e;case fe:return t=e.displayName||null,t===null?Se(e.type)||`Memo`:t;case pe:t=e._payload,e=e._init;try{return Se(e(t))}catch{}}return null}var Ce=Array.isArray,w=n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,T=r.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,E={pending:!1,data:null,method:null,action:null},D=[],Te=-1;function Ee(e){return{current:e}}function De(e){0>Te||(e.current=D[Te],D[Te]=null,Te--)}function O(e,t){Te++,D[Te]=e.current,e.current=t}var Oe=Ee(null),ke=Ee(null),Ae=Ee(null),je=Ee(null);function Me(e,t){switch(O(Ae,t),O(ke,e),O(Oe,null),t.nodeType){case 9:case 11:e=(e
vendor: 1,103 bytes, lines 1-3
1=t.documentElement)&&(e=e.namespaceURI)?up(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=up(t),e=dp(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}De(Oe),O(Oe,e)}function Ne(){De(Oe),De(ke),De(Ae)}function Pe(e){var t=e.memoizedState;t!==null&&(sh._currentValue=t.memoizedState,O(je,e)),t=Oe.current;var n=dp(t,e.type);t!==n&&(O(ke,e),O(Oe,n))}function Fe(e){ke.current===e&&(De(Oe),De(ke)),je.current===e&&(De(je),sh._currentValue=E)}var Ie,Le;function Re(e){if(Ie===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);Ie=t&&t[1]||``,Le=-1<e.stack.indexOf(` 2 at`)?` (<anonymous>)`:-1<e.stack.indexOf(`@`)?`@unknown:0:0`:``}return` 3`+Ie+e+Le}var ze=!1;function Be(e,t){if(!e||ze)return``;ze=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var r={DetermineComponentFrameRoot:function(){try{if(t){var n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){var r=e}Reflect.construct(e,[],n)}
3else{try{n.call()}catch(e){r=e}n=!1;try{var i=Object.getOwnPropertyDescriptor(e.prototype,`props`);Object.defineProperty(e.prototype,"props",{configurable:!0,set:function(){throw Error()}}),n=!0,new e}finally{n&&(i===void 0?delete e.prototype.props:Object.defineProperty(e.prototype,"props",i))}}}else{try{throw Error()}catch(e){r=e}(n=e())&&typeof n.catch==`function`&&n.catch(function(){})}}catch(e){if(e&&r&&typeof e.stack==`string`)return[e.stack,r.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`;var i=Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`);i&&i.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});var a=r.DetermineComponentFrameRoot(),o=a[0],s=a[1];if(o&&s){var c=o.split(` 4`),l=s.split(` 5`);for(i=r=0;r<c.length&&!c[r].includes(`DetermineComponentFrameRoot`);)r++;for(;i<l.length&&!l[i].includes(`DetermineComponentFrameRoot`);)i++;if(r===c.length||i===l.length)for(r=c.length-1,i=l.length-1;1<=r&&0<=i&&c[r]!==l[i];)i--;for(;1<=r&&0<=i;r--,i--)if(c[r]!==l[i]){if(r!==1||i!==1)do if(r--,i--,0>i||c[r]!==l[i]){var u=` 6`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(`<anonymous>`)&&(u=u.replace(`<anonymous>`,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ze=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?Re(n):``}function Ve(e,t){switch(e.tag){case 26:case 27:case 5:return Re(e.type);case 16:return Re(`Lazy`);case 13:return e.child!==t&&t!==null?Re(`Suspense Fallback`):Re(`Suspense`);case 19:return Re(`SuspenseList`);case 0:case 15:return Be(e.type,!1);case 11:return Be(e.type.render,!1);case 1:return Be(e.type,!0);case 31:return Re(`Activity`);case 30:return Re(`ViewTransition`);default:return``}}function He(e){try{var t=``,n=null;do t+=Ve(e,n),n=e,e=e.return;while(e);return t}catch(e){return` 7Error generating stack: `+e.message+` 8`+e.stack}}var Ue=Object.prototype.hasOwnProperty,We=t.unstable_scheduleCallback,Ge=t.unstable_cancelCallback,Ke=t.unstable_shouldYield,qe=t.unstable_requestPaint,Je=t.unstable_now,Ye=t.unstable_getCurrentPriorityLevel,Xe=t.unstable_ImmediatePriority,Ze=t.unstable_UserBlockingPriority,Qe=t.unstable_NormalPriority,$e=t.unstable_LowPriority,et=t.unstable_IdlePriority,tt=t.log,nt=t.unstable_setDisableYieldValue,rt=null,it=null;function at(e){if(typeof tt==`function`&&nt(e),it&&typeof it.setStrictMode==`function`)try{it.setStrictMode(rt,e)}catch{}}var ot=Math.clz32?Math.clz32:lt,st=Math.log,ct=Math.LN2;function lt(e){return e>>>=0,e===0?32:31-(st(e)/ct|0)|0}var ut=256,dt=262144,ft=4194304;function pt(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&-e;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function mt(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=pt(n))):i=pt(o):i=pt(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=pt(n))):i=pt(o)):i=pt(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function ht(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function gt(e,t){t&8&&(t|=t&32);var n=e.entangledLanes;if(n!==0)for(e=e.entanglements,n&=t;0<n;){var r=31-ot(n),i=1<<r;t|=e[r],n&=~i}return t}function _t(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function vt(){var e=ft;return ft<<=1,!(ft&62914560)&&(ft=4194304),e}function yt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}
vendor: 6,483 bytes, line 8
8function bt(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function xt(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0<n;){var u=31-ot(n),d=1<<u;s[u]=0,c[u]=-1;var f=l[u];if(f!==null)for(l[u]=null,u=0;u<f.length;u++){var p=f[u];p!==null&&(p.lane&=-536870913)}n&=~d}r!==0&&St(e,r,0),a!==0&&i===0&&e.tag!==0&&(e.suspendedLanes|=a&~(o&~t))}function St(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-ot(t);e.entangledLanes|=t,e.entanglements[r]=e.entanglements[r]|1073741824|n&261930}function Ct(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-ot(n),i=1<<r;i&t|e[r]&t&&(e[r]|=t),n&=~i}}function wt(e,t){var n=t&-t;return n=n&42?1:Tt(n),(n&(e.suspendedLanes|t))===0?n:0}function Tt(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function Et(e){return e&=-e,2<e?8<e?e&134217727?32:268435456:8:2}function Dt(){var e=T.p;return e===0?(e=window.event,e===void 0?32:Ch(e.type)):e}function Ot(e,t){var n=T.p;try{return T.p=e,t()}finally{T.p=n}}var kt=Math.random().toString(36).slice(2),At=`__reactFiber$`+kt,jt=`__reactProps$`+kt,Mt=`__reactContainer$`+kt,Nt=`__reactEvents$`+kt,Pt=`__reactListeners$`+kt,Ft=`__reactHandles$`+kt,It=`__reactResources$`+kt,Lt=`__reactMarker$`+kt,Rt=`__reactLoad$`+kt;function zt(e){delete e[At],delete e[jt],delete e[Pt],delete e[Ft]}function Bt(e){var t;if(t=e[At])return t;for(var n=e.parentNode;n;){if(t=n[Mt]||n[At]){if(n=t.alternate,t.child!==null||n!==null&&n.child!==null)for(e=fm(e);e!==null;){if(n=e[At])return n;e=fm(e)}return t}e=n,n=e.parentNode}return null}function Vt(e){if(e=e[At]||e[Mt]){var t=e.tag;if(t===5||t===6||t===13||t===31||t===26||t===27||t===3)return e}return null}function Ht(e){var t=e.tag;if(t===5||t===26||t===27||t===6)return e.stateNode;throw Error(i(33))}function Ut(e){var t=e[It];return t||=e[It]={hoistableStyles:new Map,hoistableScripts:new Map},t}function Wt(e){e[Lt]=!0}function Gt(e){e[Rt]=void 0}var Kt=new Set,qt={};function Jt(e,t){Yt(e,t),Yt(e+`Capture`,t)}function Yt(e,t){for(qt[e]=t,e=0;e<t.length;e++)Kt.add(t[e])}var Xt=RegExp(`^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$`),Zt={},Qt={};function $t(e){return Ue.call(Qt,e)?!0:Ue.call(Zt,e)?!1:Xt.test(e)?Qt[e]=!0:(Zt[e]=!0,!1)}var k=!1;function en(){var e=k;return k=!1,e}function tn(e,t,n){if($t(t)){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:e.removeAttribute(t);return;case`boolean`:var r=t.toLowerCase().slice(0,5);if(r!==`data-`&&r!==`aria-`){e.removeAttribute(t);return}}e.setAttribute(t,n)}}}function rn(e,t,n){if(n===null)e.removeAttribute(t);else{switch(typeof n){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(t);return}e.setAttribute(t,n)}}function on(e,t,n,r){if(r===null)e.removeAttribute(n);else{switch(typeof r){case`undefined`:case`function`:case`symbol`:case`boolean`:e.removeAttribute(n);return}e.setAttributeNS(t,n,r)}}function sn(e){switch(typeof e){case`bigint`:case`boolean`:case`number`:case`string`:case`undefined`:return e;case`object`:return e;default:return``}}function cn(e){var t=e.type;return(e=e.nodeName)&&e.toLowerCase()===`input`&&(t===`checkbox`||t===`radio`)}function ln(e,t,n){var r=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);if(!e.hasOwnProperty(t)&&r!==void 0&&typeof r.get==`function`&&typeof r.set==`function`){var i=r.get,a=r.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return i.call(this)},set:function(e){n=``+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:r.enumerable}),{getValue:function(){return n},setValue:function(e){n=``+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}function un(e){if(!e._valueTracker){var t=cn(e)?`checked`:`value`;e._valueTracker=ln(e,t,``+e[t])}}function dn(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r=``;return e&&(r=cn(e)?e.checked?`true`:`false`:e.value),e=r,e!==n&&(t.setValue(e),!0)}var fn=/[\n"\\]/g;function pn(e){return e.replace(fn,function(e){return`\\`+e.charCodeAt(0).toString(16)+` `})}function mn(e,t,n,r,i,a,o,s){e.name=``,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`?e.type=o:e.removeAttribute(`type`),t==null?o!==`submit`&&o!==`reset`||e.removeAttribute(`value`):o===`number`?(t===0&&e.value===``||e.value!=t)&&(e.value=``+sn(t)):e.value!==``+sn(t)&&(e.value=``+sn(t)),t==null?n==null?r!=null&&e.removeAttribute(`value`):gn(e,sn(n)):o===`number`&&e.value==t?gn(e,sn(e.value)):gn(e,sn(t)),i==null&&a!=null&&(e.defaultChecked=!!a),i!=null&&(e.checked=i&&typeof i!=`function`&&typeof i!=`symbol`),s!=null&&typeof s!=`function`&&typeof s!=`symbol`&&typeof s!=`boolean`?e.name=``+sn(s):e.removeAttribute(`name`)}function hn(e,t,n,r,i,a,o,s){if(a!=null&&typeof a!=`function`&&typeof a!=`symbol`&&typeof a!=`boolean`&&(e.type=a),t!=null||n!=null){if(!(a!==`submit`&&a!==`reset`||t!=null)){un(e);return}n=n==null?``:``+sn(n),t=t==null?n:``+sn(t),s||t===e.value||(e.value=t),e.defaultValue=t}r??=i,r=typeof r!=`function`&&typeof r!=`symbol`&&!!r,e.checked=s?e.checked:!!r,e.defaultChecked=!!r,o!=null&&typeof o!=`function`&&typeof o!=`symbol`&&typeof o!=`boolean`&&(e.name=o),un(e)}function gn(e,t){e.defaultValue!==``+t&&(e.defaultValue=``+t)}function _n(e,t,n,r){if(e=e.options,t){t={};for(var i=0;i<n.length;i++)t[`$`+n[i]]=!0;for(n=0;n<e.length;n++)i=t.hasOwnProperty(`$`+e[n].value),e[n].selected!==i&&(e[n].selected=i),i&&r&&(e[n].defaultSelected=!0)}else{for(n=``+sn(n),t=null,i=0;i<e.length;i++){if(e[i].value===n){e[i].selected=!0,r&&(e[i].defaultSelected=!0);return}t!==null||e[i].disabled||(t=e[i])}t!==null&&(t.selected=!0)}}
vendor: 7,179 bytes, line 8
8function vn(e,t,n){if(t!=null&&(t=``+sn(t),t!==e.value&&(e.value=t),n==null)){e.defaultValue!==t&&(e.defaultValue=t);return}e.defaultValue=n==null?``:``+sn(n)}function yn(e,t,n,r){if(t==null){if(r!=null){if(n!=null)throw Error(i(92));if(Ce(r)){if(1<r.length)throw Error(i(93));r=r[0]}n=r}n??=``,t=n}n=sn(t),e.defaultValue=n,r=e.textContent,r===n&&r!==``&&r!==null&&(e.value=r),un(e)}function bn(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&n.nodeType===3){n.nodeValue=t;return}}e.textContent=t}var xn=new Set(`animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp`.split(` `));function Sn(e,t,n){var r=t.indexOf(`--`)===0;n==null||typeof n==`boolean`||n===``?r?e.setProperty(t,``):t===`float`?e.cssFloat=``:e[t]=``:r?e.setProperty(t,n):typeof n!=`number`||n===0||xn.has(t)?t===`float`?e.cssFloat=n:e[t]=(``+n).trim():e[t]=n+`px`}function Cn(e,t,n){if(t!=null&&typeof t!=`object`)throw Error(i(62));if(e=e.style,n!=null){for(var r in n)!n.hasOwnProperty(r)||t!=null&&t.hasOwnProperty(r)||(r.indexOf(`--`)===0?e.setProperty(r,``):r===`float`?e.cssFloat=``:e[r]=``,k=!0);for(var a in t)r=t[a],t.hasOwnProperty(a)&&n[a]!==r&&(Sn(e,a,r),k=!0)}else for(var o in t)t.hasOwnProperty(o)&&Sn(e,o,t[o])}function wn(e){if(e.indexOf(`-`)===-1)return!1;switch(e){case`annotation-xml`:case`color-profile`:case`font-face`:case`font-face-src`:case`font-face-uri`:case`font-face-format`:case`font-face-name`:case`missing-glyph`:return!1;default:return!0}}var Tn=new Map([[`acceptCharset`,`accept-charset`],[`htmlFor`,`for`],[`httpEquiv`,`http-equiv`],[`crossOrigin`,`crossorigin`],[`accentHeight`,`accent-height`],[`alignmentBaseline`,`alignment-baseline`],[`arabicForm`,`arabic-form`],[`baselineShift`,`baseline-shift`],[`capHeight`,`cap-height`],[`clipPath`,`clip-path`],[`clipRule`,`clip-rule`],[`colorInterpolation`,`color-interpolation`],[`colorInterpolationFilters`,`color-interpolation-filters`],[`colorProfile`,`color-profile`],[`colorRendering`,`color-rendering`],[`dominantBaseline`,`dominant-baseline`],[`enableBackground`,`enable-background`],[`fillOpacity`,`fill-opacity`],[`fillRule`,`fill-rule`],[`floodColor`,`flood-color`],[`floodOpacity`,`flood-opacity`],[`fontFamily`,`font-family`],[`fontSize`,`font-size`],[`fontSizeAdjust`,`font-size-adjust`],[`fontStretch`,`font-stretch`],[`fontStyle`,`font-style`],[`fontVariant`,`font-variant`],[`fontWeight`,`font-weight`],[`glyphName`,`glyph-name`],[`glyphOrientationHorizontal`,`glyph-orientation-horizontal`],[`glyphOrientationVertical`,`glyph-orientation-vertical`],[`horizAdvX`,`horiz-adv-x`],[`horizOriginX`,`horiz-origin-x`],[`imageRendering`,`image-rendering`],[`letterSpacing`,`letter-spacing`],[`lightingColor`,`lighting-color`],[`markerEnd`,`marker-end`],[`markerMid`,`marker-mid`],[`markerStart`,`marker-start`],[`maskType`,`mask-type`],[`overlinePosition`,`overline-position`],[`overlineThickness`,`overline-thickness`],[`paintOrder`,`paint-order`],[`panose-1`,`panose-1`],[`pointerEvents`,`pointer-events`],[`renderingIntent`,`rendering-intent`],[`shapeRendering`,`shape-rendering`],[`stopColor`,`stop-color`],[`stopOpacity`,`stop-opacity`],[`strikethroughPosition`,`strikethrough-position`],[`strikethroughThickness`,`strikethrough-thickness`],[`strokeDasharray`,`stroke-dasharray`],[`strokeDashoffset`,`stroke-dashoffset`],[`strokeLinecap`,`stroke-linecap`],[`strokeLinejoin`,`stroke-linejoin`],[`strokeMiterlimit`,`stroke-miterlimit`],[`strokeOpacity`,`stroke-opacity`],[`strokeWidth`,`stroke-width`],[`textAnchor`,`text-anchor`],[`textDecoration`,`text-decoration`],[`textRendering`,`text-rendering`],[`transformOrigin`,`transform-origin`],[`underlinePosition`,`underline-position`],[`underlineThickness`,`underline-thickness`],[`unicodeBidi`,`unicode-bidi`],[`unicodeRange`,`unicode-range`],[`unitsPerEm`,`units-per-em`],[`vAlphabetic`,`v-alphabetic`],[`vHanging`,`v-hanging`],[`vIdeographic`,`v-ideographic`],[`vMathematical`,`v-mathematical`],[`vectorEffect`,`vector-effect`],[`vertAdvY`,`vert-adv-y`],[`vertOriginX`,`vert-origin-x`],[`vertOriginY`,`vert-origin-y`],[`wordSpacing`,`word-spacing`],[`writingMode`,`writing-mode`],[`xmlnsXlink`,`xmlns:xlink`],[`xHeight`,`x-height`]]),En=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function Dn(e){return En.test(``+e)?`javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')`:e}function On(){}var kn=null;function An(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var jn=null,Mn=null;function Nn(e){var t=Vt(e);if(t&&(e=t.stateNode)){var n=e[jt]||null;a:switch(e=t.stateNode,t.type){case`input`:if(mn(e,n.value,n.defaultValue,n.defaultValue,n.checked,n.defaultChecked,n.type,n.name),t=n.name,n.type===`radio`&&t!=null){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll(`input[name="`+pn(``+t)+`"][type="radio"]`),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=r[jt]||null;if(!a)throw Error(i(90));mn(r,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name)}}for(t=0;t<n.length;t++)r=n[t],r.form===e.form&&dn(r)}break a;case`textarea`:vn(e,n.value,n.defaultValue);break a;case`select`:t=n.value,t!=null&&_n(e,!!n.multiple,t,!1)}}}var Pn=!1;function Fn(e,t,n){if(Pn)return e(t,n);Pn=!0;try{return e(t)}finally{if(Pn=!1,(jn!==null||Mn!==null)&&(zd(),jn&&(t=jn,e=Mn,Mn=jn=null,Nn(t),e)))for(t=0;t<e.length;t++)Nn(e[t])}}function In(e,t){var n=e.stateNode;if(n===null)return null;var r=n[jt]||null;if(r===null)return null;n=r[t];a:switch(t){case`onClick`:case`onClickCapture`:case`onDoubleClick`:case`onDoubleClickCapture`:case`onMouseDown`:case`onMouseDownCapture`:case`onMouseMove`:case`onMouseMoveCapture`:case`onMouseUp`:case`onMouseUpCapture`:case`onMouseEnter`:(r=!r.disabled)||(e=e.type,r=e!==`button`&&e!==`input`&&e!==`select`&&e!==`textarea`),e=!r;break a;default:e=!1}if(e)return null;if(n&&typeof n!=`function`)throw Error(i(231,t,typeof n));return n}var Ln=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0,Rn=!1;if(Ln)try{var zn={};Object.defineProperty(zn,"passive",{get:function(){Rn=!0}}),window.addEventListener(`test`,zn,zn),window.removeEventListener(`test`,zn,zn)}catch{Rn=!1}
vendor: 8,354 bytes, line 8
8var Bn=null,Vn=null,Hn=null;function Un(){if(Hn)return Hn;var e,t=Vn,n=t.length,r,i=`value`in Bn?Bn.value:Bn.textContent,a=i.length;for(e=0;e<n&&t[e]===i[e];e++);var o=n-e;for(r=1;r<=o&&t[n-r]===i[a-r];r++);return Hn=i.slice(e,1<r?1-r:void 0)}function Wn(e){var t=e.keyCode;return`charCode`in e?(e=e.charCode,e===0&&t===13&&(e=13)):e=t,e===10&&(e=13),32<=e||e===13?e:0}function Gn(){return!0}function Kn(){return!1}function A(e){function t(t,n,r,i,a){for(var o in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=i,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(o)&&(t=e[o],this[o]=t?t(i):i[o]);return this.isDefaultPrevented=(i.defaultPrevented==null?!1===i.returnValue:i.defaultPrevented)?Gn:Kn,this.isPropagationStopped=Kn,this}return S(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():typeof e.returnValue!=`unknown`&&(e.returnValue=!1),this.isDefaultPrevented=Gn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():typeof e.cancelBubble!=`unknown`&&(e.cancelBubble=!0),this.isPropagationStopped=Gn)},persist:function(){},isPersistent:Gn}),t}var qn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Jn=A(qn),Yn=S({},qn,{view:0,detail:0}),Xn=A(Yn),Zn,Qn,$n,er=S({},Yn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:dr,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return`movementX`in e?e.movementX:(e!==$n&&($n&&e.type===`mousemove`?(Zn=e.screenX-$n.screenX,Qn=e.screenY-$n.screenY):Qn=Zn=0,$n=e),Zn)},movementY:function(e){return`movementY`in e?e.movementY:Qn}}),tr=A(er),nr=A(S({},er,{dataTransfer:0})),rr=A(S({},Yn,{relatedTarget:0})),ir=A(S({},qn,{animationName:0,elapsedTime:0,pseudoElement:0})),ar=A(S({},qn,{clipboardData:function(e){return`clipboardData`in e?e.clipboardData:window.clipboardData}})),or=A(S({},qn,{data:0})),sr={Esc:`Escape`,Spacebar:` `,Left:`ArrowLeft`,Up:`ArrowUp`,Right:`ArrowRight`,Down:`ArrowDown`,Del:`Delete`,Win:`OS`,Menu:`ContextMenu`,Apps:`ContextMenu`,Scroll:`ScrollLock`,MozPrintableKey:`Unidentified`},cr={8:`Backspace`,9:`Tab`,12:`Clear`,13:`Enter`,16:`Shift`,17:`Control`,18:`Alt`,19:`Pause`,20:`CapsLock`,27:`Escape`,32:` `,33:`PageUp`,34:`PageDown`,35:`End`,36:`Home`,37:`ArrowLeft`,38:`ArrowUp`,39:`ArrowRight`,40:`ArrowDown`,45:`Insert`,46:`Delete`,112:`F1`,113:`F2`,114:`F3`,115:`F4`,116:`F5`,117:`F6`,118:`F7`,119:`F8`,120:`F9`,121:`F10`,122:`F11`,123:`F12`,144:`NumLock`,145:`ScrollLock`,224:`Meta`},lr={Alt:`altKey`,Control:`ctrlKey`,Meta:`metaKey`,Shift:`shiftKey`};function ur(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):(e=lr[e])?!!t[e]:!1}function dr(){return ur}var fr=A(S({},Yn,{key:function(e){if(e.key){var t=sr[e.key]||e.key;if(t!==`Unidentified`)return t}return e.type===`keypress`?(e=Wn(e),e===13?`Enter`:String.fromCharCode(e)):e.type===`keydown`||e.type===`keyup`?cr[e.keyCode]||`Unidentified`:``},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:dr,charCode:function(e){return e.type===`keypress`?Wn(e):0},keyCode:function(e){return e.type===`keydown`||e.type===`keyup`?e.keyCode:0},which:function(e){return e.type===`keypress`?Wn(e):e.type===`keydown`||e.type===`keyup`?e.keyCode:0}})),pr=A(S({},er,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),mr=A(S({},qn,{submitter:0})),hr=A(S({},Yn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:dr})),gr=A(S({},qn,{propertyName:0,elapsedTime:0,pseudoElement:0})),_r=A(S({},er,{deltaX:function(e){return`deltaX`in e?e.deltaX:`wheelDeltaX`in e?-e.wheelDeltaX:0},deltaY:function(e){return`deltaY`in e?e.deltaY:`wheelDeltaY`in e?-e.wheelDeltaY:`wheelDelta`in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0})),vr=A(S({},qn,{newState:0,oldState:0,source:0})),yr=[9,13,27,32],br=Ln&&`CompositionEvent`in window,xr=null;Ln&&`documentMode`in document&&(xr=document.documentMode);var Sr=Ln&&`TextEvent`in window&&!xr,Cr=Ln&&(!br||xr&&8<xr&&11>=xr),wr=` `,Tr=!1;function Er(e,t){switch(e){case`keyup`:return yr.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Dr(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Or=!1;function kr(e,t){switch(e){case`compositionend`:return Dr(t);case`keypress`:return t.which===32?(Tr=!0,wr):null;case`textInput`:return e=t.data,e===wr&&Tr?null:e;default:return null}}function Ar(e,t){if(Or)return e===`compositionend`||!br&&Er(e,t)?(e=Un(),Hn=Vn=Bn=null,Or=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case`compositionend`:return Cr&&t.locale!==`ko`?null:t.data;default:return null}}var jr={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Mr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t===`input`?!!jr[e.type]:t===`textarea`}function Nr(e,t,n,r){jn?Mn?Mn.push(r):Mn=[r]:jn=r,t=Jf(t,`onChange`),0<t.length&&(n=new Jn(`onChange`,`change`,null,n,r),e.push({event:n,listeners:t}))}var Pr=null,Fr=null;function Ir(e){Vf(e,0)}function Lr(e){if(dn(Ht(e)))return e}function Rr(e,t){if(e===`change`)return t}var zr=!1;if(Ln){var Br;if(Ln){var Vr=`oninput`in document;if(!Vr){var Hr=document.createElement(`div`);Hr.setAttribute(`oninput`,`return;`),Vr=typeof Hr.oninput==`function`}Br=Vr}else Br=!1;zr=Br&&(!document.documentMode||9<document.documentMode)}function Ur(){Pr&&(Pr.detachEvent(`onpropertychange`,Wr),Fr=Pr=null)}function Wr(e){if(e.propertyName===`value`&&Lr(Fr)){var t=[];Nr(t,Fr,e,An(e)),Fn(Ir,t)}}function Gr(e,t,n){e===`focusin`?(Ur(),Pr=t,Fr=n,Pr.attachEvent(`onpropertychange`,Wr)):e===`focusout`&&Ur()}function Kr(e){if(e===`selectionchange`||e===`keyup`||e===`keydown`)return Lr(Fr)}function qr(e,t){if(e===`click`)return Lr(t)}function Jr(e,t){if(e===`input`||e===`change`)return Lr(t)}function Yr(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var Xr=typeof Object.is==`function`?Object.is:Yr;function Zr(e,t){if(Xr(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var i=n[r];if(!Ue.call(t,i)||!Xr(e[i],t[i]))return!1}return!0}function Qr(e){if(e||=typeof document<`u`?document:void 0,e===void 0)return null;try{return e.activeElement||e.body}catch{return e.body}}function $r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ei(e,t){var n=$r(e);e=0;for(var r;n;){if(n.nodeType===3){if(r=e+n.textContent.length,e<=t&&r>=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=$r(n)}}function ti(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?ti(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function ni(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Qr(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Qr(e.document)}return t}function ri(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var ii=Ln&&`documentMode`in document&&11>=document.documentMode,ai=null,oi=null,si=null,ci=!1;function li(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ci||ai==null||ai!==Qr(r)||(r=ai,`selectionStart`in r&&ri(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focu
vendor: 4,639 bytes, line 8
8sNode:r.focusNode,focusOffset:r.focusOffset}),si&&Zr(si,r)||(si=r,r=Jf(oi,`onSelect`),0<r.length&&(t=new Jn(`onSelect`,`select`,null,t,n),e.push({event:t,listeners:r}),t.target=ai)))}function ui(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n[`Webkit`+e]=`webkit`+t,n[`Moz`+e]=`moz`+t,n}var di={animationend:ui(`Animation`,`AnimationEnd`),animationiteration:ui(`Animation`,`AnimationIteration`),animationstart:ui(`Animation`,`AnimationStart`),transitionrun:ui(`Transition`,`TransitionRun`),transitionstart:ui(`Transition`,`TransitionStart`),transitioncancel:ui(`Transition`,`TransitionCancel`),transitionend:ui(`Transition`,`TransitionEnd`)},fi={},pi={};Ln&&(pi=document.createElement(`div`).style,`AnimationEvent`in window||(delete di.animationend.animation,delete di.animationiteration.animation,delete di.animationstart.animation),`TransitionEvent`in window||delete di.transitionend.transition);function mi(e){if(fi[e])return fi[e];if(!di[e])return e;var t=di[e],n;for(n in t)if(t.hasOwnProperty(n)&&n in pi)return fi[e]=t[n];return e}var hi=mi(`animationend`),gi=mi(`animationiteration`),_i=mi(`animationstart`),vi=mi(`transitionrun`),yi=mi(`transitionstart`),bi=mi(`transitioncancel`),xi=mi(`transitionend`),Si=new Map,Ci=`abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error fullscreenChange fullscreenError gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel`.split(` `);Ci.push(`scrollEnd`);function wi(e,t){Si.set(e,t),Jt(t,[e])}var Ti=0;function Ei(e,t){if(e.name!=null&&e.name!==`auto`)return e.name;if(t.autoName!==null)return t.autoName;e=bd.identifierPrefix;var n=Ti++;return e=`_`+e+`t_`+n.toString(32)+`_`,t.autoName=e}function Di(e){if(e==null||typeof e==`string`)return e;var t=null,n=Od;if(n!==null)for(var r=0;r<n.length;r++){var i=e[n[r]];if(i!=null){if(i===`none`)return`none`;t=t==null?i:t+(` `+i)}}return t??e.default}function Oi(e,t){return e=Di(e),t=Di(t),t==null?e===`auto`?null:e:t===`auto`?null:t}var ki=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},Ai=[],ji=0,Mi=0;function Ni(){for(var e=ji,t=Mi=ji=0;t<e;){var n=Ai[t];Ai[t++]=null;var r=Ai[t];Ai[t++]=null;var i=Ai[t];Ai[t++]=null;var a=Ai[t];if(Ai[t++]=null,r!==null&&i!==null){var o=r.pending;o===null?i.next=i:(i.next=o.next,o.next=i),r.pending=i}a!==0&&Li(n,i,a)}}function Pi(e,t,n,r){Ai[ji++]=e,Ai[ji++]=t,Ai[ji++]=n,Ai[ji++]=r,Mi|=r,e.lanes|=r,e=e.alternate,e!==null&&(e.lanes|=r)}function Fi(e,t,n,r){return Pi(e,t,n,r),Ri(e)}function Ii(e,t){return Pi(e,null,null,t),Ri(e)}function Li(e,t,n){e.lanes|=n;var r=e.alternate;r!==null&&(r.lanes|=n);for(var i=!1,a=e.return;a!==null;)a.childLanes|=n,r=a.alternate,r!==null&&(r.childLanes|=n),a.tag===22&&(e=a.stateNode,e===null||e._visibility&1||(i=!0)),e=a,a=a.return;return e.tag===3?(a=e.stateNode,i&&t!==null&&(i=31-ot(n),e=a.hiddenUpdates,r=e[i],r===null?e[i]=[t]:r.push(t),t.lane=n|536870912),a):null}function Ri(e){if(50<kd)throw kd=0,Ad=null,Error(i(185));for(var t=e.return;t!==null;)e=t,t=e.return;return e.tag===3?e.stateNode:null}var zi={};function Bi(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Vi(e,t,n,r){return new Bi(e,t,n,r)}function Hi(e){return e=e.prototype,!(!e||!e.isReactComponent)}function Ui(e,t){var n=e.alternate;return n===null?(n=Vi(e.tag,t,e.key,e.mode),n.elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deleti
vendor: 6,547 bytes, line 8
8ons=null),n.flags=e.flags&1206910976,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n.refCleanup=e.refCleanup,n}function Wi(e,t){e.flags&=1206910978;var n=e.alternate;return n===null?(e.childLanes=0,e.lanes=t,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=n.childLanes,e.lanes=n.lanes,e.child=n.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=n.memoizedProps,e.memoizedState=n.memoizedState,e.updateQueue=n.updateQueue,e.type=n.type,t=n.dependencies,e.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),e}function Gi(e,t,n,r,a,o){var s=0;if(r=e,typeof r==`function`)Hi(r)&&(s=1);else if(typeof r==`string`)s=qm(e,n,Oe.current)?26:e===`html`||e===`head`||e===`body`?27:5;else a:switch(r){case me:return e=Vi(31,n,t,a),e.elementType=me,e.lanes=o,e;case ie:return Ki(n.children,a,o,t);case ae:s=8,a|=24;break;case oe:return e=Vi(12,n,t,a|2),e.elementType=oe,e.lanes=o,e;case ue:return e=Vi(13,n,t,a),e.elementType=ue,e.lanes=o,e;case de:return e=Vi(19,n,t,a),e.elementType=de,e.lanes=o,e;case he:case _e:return e=a|32,e=Vi(30,n,t,e),e.elementType=_e,e.lanes=o,e.stateNode={autoName:null,paired:null,clones:null,ref:null},e;default:if(typeof r==`object`&&r)switch(r.$$typeof){case ce:s=10;break a;case se:s=9;break a;case le:s=11;break a;case fe:s=14;break a;case pe:s=16,r=null;break a}s=29,n=Error(i(130,e===null?`null`:typeof e,``)),r=null}return t=Vi(s,n,t,a),t.elementType=e,t.type=r,t.lanes=o,t}function Ki(e,t,n,r){return e=Vi(7,e,r,t),e.lanes=n,e}function qi(e,t,n){return e=Vi(6,e,null,t),e.lanes=n,e}function Ji(e){var t=Vi(18,null,null,0);return t.stateNode=e,t}function Yi(e,t,n){return t=Vi(4,e.children===null?[]:e.children,e.key,t),t.lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}var j=new WeakMap;function Xi(e,t){if(typeof e==`object`&&e){var n=j.get(e);return n===void 0?(t={value:e,source:t,stack:He(t)},j.set(e,t),t):n}return{value:e,source:t,stack:He(t)}}var Zi=[],Qi=0,$i=null,ea=0,ta=[],na=0,ra=null,ia=1,aa=``;function oa(e,t){Zi[Qi++]=ea,Zi[Qi++]=$i,$i=e,ea=t}function sa(e,t,n){ta[na++]=ia,ta[na++]=aa,ta[na++]=ra,ra=e;var r=ia;e=aa;var i=32-ot(r)-1;r&=~(1<<i),n+=1;var a=32-ot(t)+i;if(30<a){var o=i-i%5;a=(r&(1<<o)-1).toString(32),r>>=o,i-=o,ia=1<<32-ot(t)+i|n<<i|r,aa=a+e}else ia=1<<a|n<<i|r,aa=e}function ca(e){e.return!==null&&(oa(e,1),sa(e,1,0))}function la(e){for(;e===$i;)$i=Zi[--Qi],Zi[Qi]=null,ea=Zi[--Qi],Zi[Qi]=null;for(;e===ra;)ra=ta[--na],ta[na]=null,aa=ta[--na],ta[na]=null,ia=ta[--na],ta[na]=null}function M(e,t){ta[na++]=ia,ta[na++]=aa,ta[na++]=ra,ia=t.id,aa=t.overflow,ra=e}var ua=null,N=null,P=!1,F=null,da=!1,fa=Error(i(519));function pa(e){throw ya(Xi(Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?`text`:`HTML`,``)),e)),fa}function ma(e){var t=e.stateNode,n=e.type,r=e.memoizedProps;switch(t[At]=e,t[jt]=r,n){case`dialog`:Q(`cancel`,t),Q(`close`,t);break;case`iframe`:case`object`:case`embed`:Q(`load`,t);break;case`video`:case`audio`:for(n=0;n<zf.length;n++)Q(zf[n],t);break;case`source`:Q(`error`,t);break;case`img`:case`image`:case`link`:Q(`error`,t),Q(`load`,t);break;case`details`:Q(`toggle`,t);break;case`input`:Q(`invalid`,t),hn(t,r.value,r.defaultValue,r.checked,r.defaultChecked,r.type,r.name,!0);break;case`select`:Q(`invalid`,t);break;case`textarea`:Q(`invalid`,t),yn(t,r.value,r.defaultValue,r.children)}n=r.children,typeof n!=`string`&&typeof n!=`number`&&typeof n!=`bigint`||t.textContent===``+n||!0===r.suppressHydrationWarning||ep(t.textContent,n)?(r.popover!=null&&(Q(`beforetoggle`,t),Q(`toggle`,t)),r.onScroll!=null&&Q(`scroll`,t),r.onScrollEnd!=null&&Q(`scrollend`,t),r.onClick!=null&&(t.onclick=On),t=!0):t=!1,t||pa(e,!0)}function ha(e){for(ua=e.return;ua;)switch(ua.tag){case 5:case 31:case 13:da=!1;return;case 27:case 3:da=!0;return;default:ua=ua.return}}function ga(e){if(e!==ua)return!1;if(!P)return ha(e),P=!0,!1;var t=e.tag,n;if((n=t!==3&&t!==27)&&((n=t===5)&&(n=e.type,n=n===`form`||n===`button`||pp(e.type,e.memoizedProps)),n=!n),n&&N&&pa(e),ha(e),t===13){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));N=dm(e)}else if(t===31){if(e=e.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(317));N=dm(e)}else t===27?(t=N,Sp(e.type)?(e=um,um=null,N=e):N=t):N=ua?lm(e.stateNode.nextSibling):null;return!0}function _a(){N=ua=null,P=!1}function va(){var e=F;return e!==null&&(fd===null?fd=e:fd.push.apply(fd,e),F=null),e}function ya(e){F===null?F=[e]:F.push(e)}var ba=Ee(null),xa=null,Sa=null;function Ca(e,t,n){O(ba,t._currentValue),t._currentValue=n}function wa(e){e._currentValue=ba.current,De(ba)}function Ta(e,t,n){for(;e!==null;){var r=e.alternate;if((e.childLanes&t)===t?r!==null&&(r.childLanes&t)!==t&&(r.childLanes|=t):(e.childLanes|=t,r!==null&&(r.childLanes|=t)),e===n)break;e=e.return}}function Ea(e,t,n,r){var a=e.child;for(a!==null&&(a.return=e);a!==null;){var o=a.dependencies;if(o!==null){var s=a.child;o=o.firstContext;a:for(;o!==null;){var c=o;o=a;for(var l=0;l<t.length;l++)if(c.context===t[l]){o.lanes|=n,c=o.alternate,c!==null&&(c.lanes|=n),Ta(o.return,n,e),r||(s=null);break a}o=c.next}}else if(a.tag===18){if(s=a.return,s===null)throw Error(i(341));s.lanes|=n,o=s.alternate,o!==null&&(o.lanes|=n),Ta(s,n,e),s=null}else a.tag===13&&a.memoizedState!==null&&a.memoizedState.dehydrated===null?(a.lanes|=n,s=a.alternate,s!==null&&(s.lanes|=n),Ta(a.return,n,e),s=a.child,s=s===null?null:s.sibling):s=a.child;if(s!==null)s.return=a;else for(s=a;s!==null;){if(s===e){s=null;break}if(a=s.sibling,a!==null){a.return=s.return,s=a;break}s=s.return}a=s}}function Da(e,t,n,r){e=null;for(var a=t,o=!1;a!==null;){if(!o){if(a.flags&524288)o=!0;else if(a.flags&262144)break}if(a.tag===10){var s=a.alternate;if(s===null)throw Error(i(387));if(s=s.memoizedProps,s!==null){var c=a.type;Xr(a.pendingProps.value,s.value)||(e===null?e=[c]:e.push(c))}}else if(a===je.current){if(s=a.alternate,s===null)throw Error(i(387));s.memoizedState.memoizedState!==a.memoizedState.memoizedState&&(e===null?e=[sh]:e.push(sh))}a=a.return}return e!==null&&Ea(t,e,n,r),t.flags|=262144,e!==null}function Oa(e){for(e=e.firstContext;e!==null;){if(!Xr(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}
vendor: 5,443 bytes, line 8
8function ka(e){xa=e,Sa=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function Aa(e){return Ma(xa,e)}function ja(e,t){return xa===null&&ka(e),Ma(e,t)}function Ma(e,t){var n=t._currentValue;if(t={context:t,memoizedValue:n,next:null},Sa===null){if(e===null)throw Error(i(308));Sa=t,e.dependencies={lanes:0,firstContext:t},e.flags|=524288}else Sa=Sa.next=t;return n}var Na=typeof AbortController<`u`?AbortController:function(){var e=[],t=this.signal={aborted:!1,addEventListener:function(t,n){e.push(n)}};this.abort=function(){t.aborted=!0,e.forEach(function(e){return e()})}},Pa=t.unstable_scheduleCallback,Fa=t.unstable_NormalPriority,Ia={$$typeof:ce,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function La(){return{controller:new Na,data:new Map,refCount:0}}function Ra(e){e.refCount--,e.refCount===0&&Pa(Fa,function(){e.controller.abort()})}function za(e,t){if(e.pendingLanes&4194048){var n=e.transitionTypes;for(n===null&&(n=e.transitionTypes=[]),e=0;e<t.length;e++){var r=t[e];n.indexOf(r)===-1&&n.push(r)}}}var Ba=null;function Va(e){var t=e.transitionTypes;return e.transitionTypes=null,t}var Ha=null,Ua=0,Wa=0,Ga=null;function Ka(e,t){if(Ha===null){var n=Ha=[];Ua=0,Wa=Pf(),Ga={status:`pending`,value:void 0,then:function(e){n.push(e)}}}return Ua++,t.then(qa,qa),t}function qa(){if(--Ua===0&&(Ba=null,Ha!==null)){Ga!==null&&(Ga.status=`fulfilled`);var e=Ha;Ha=null,Wa=0,Ga=null;for(var t=0;t<e.length;t++)(0,e[t])()}}function Ja(e,t){var n=[],r={status:`pending`,value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status=`fulfilled`,r.value=t;for(var e=0;e<n.length;e++)(0,n[e])(t)},function(e){for(r.status=`rejected`,r.reason=e,e=0;e<n.length;e++)(0,n[e])(void 0)}),r}var Ya=w.S;w.S=function(e,t){if(hd=Je(),typeof t==`object`&&t&&typeof t.then==`function`&&Ka(e,t),Ba!==null)for(var n=bf;n!==null;)za(n,Ba),n=n.next;if(n=e.types,n!==null){for(var r=bf;r!==null;)za(r,n),r=r.next;if(Wa!==0){r=Ba,r===null&&(r=Ba=[]);for(var i=0;i<n.length;i++){var a=n[i];r.indexOf(a)===-1&&r.push(a)}}}Ya!==null&&Ya(e,t)};var Xa=Ee(null);function Za(){var e=Xa.current;return e===null?q.pooledCache:e}function Qa(e,t){t===null?O(Xa,Xa.current):O(Xa,t.pool)}function $a(){var e=Za();return e===null?null:{parent:Ia._currentValue,pool:e}}var eo=Error(i(460)),to=Error(i(474)),no=Error(i(542)),ro={then:function(){}};function io(e){return e=e.status,e===`fulfilled`||e===`rejected`}function ao(e,t,n){switch(n=e[n],n===void 0?e.push(t):n!==t&&(t.then(On,On),t=n),t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,lo(e),e===void 0&&!(`reason`in t)?Error(i(600)):e;default:if(typeof t.status==`string`)t.then(On,On);else{if(e=q,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=t,e.status=`pending`,e.then(function(e){if(t.status===`pending`){var n=t;n.status=`fulfilled`,n.value=e}},function(e){if(t.status===`pending`){var n=t;n.status=`rejected`,n.reason=e}})}switch(t.status){case`fulfilled`:return t.value;case`rejected`:throw e=t.reason,lo(e),e}throw so=t,eo}}function oo(e){try{var t=e._init;return t(e._payload)}catch(e){throw typeof e==`object`&&e&&typeof e.then==`function`?(so=e,eo):e}}var so=null;function co(){if(so===null)throw Error(i(459));var e=so;return so=null,e}function lo(e){if(e===eo||e===no)throw Error(i(483))}var uo=null,fo=0;function po(e){var t=fo;return fo+=1,uo===null&&(uo=[]),ao(uo,e,t)}function mo(e,t){t=t.props.ref,e.ref=t===void 0?null:t}function ho(e,t){throw t.$$typeof===C?Error(i(525)):(e=Object.prototype.toString.call(t),Error(i(31,e===`[object Object]`?`object with keys {`+Object.keys(t).join(`, `)+`}`:e)))}function go(e){function t(t,n){if(e){var r=t.deletions;r===null?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;r!==null;)t(n,r),r=r.sibling;return null}function r(e){for(var t=new Map;e!==null;)e.key===null?t.set(e.index,e):t.set(e.key,e),e=e.sibling;return t}function a(e,t){return e=Ui(e,t),e.index=0,e.sibling=null,e}function o(t,n,r){return t.index=r,e?(r=t.alternate,r===null?(t.flags|=134217730,n):(r=r.index,r<n?(t.flags|=2,n):r)):(t.flags|=1048576,n)}function s(t){return e&&t.alternate===null&&(t.flags|=134217730),t}function c(e,t,n,r){return t===null||t.tag!==6?(t=qi(n,e.mode,r),t.return=e,t):(t=a(t,n),t.return=e,t)}function l(e,t,n,r){var i=n.type;return i===ie?(e=d(e,t,n.props.children,r,n.key),mo(e,n),e):t!==null&&(t.elementType===i||typeof i==`object`&&i&&i.$$typeof===pe&&oo(i)===t.type)?(t=a(t,n.props),mo(t,n),t.return=e,t):(t=Gi(n.type,n.key,n.props,null,e.mode,r),mo(t,n),t.return=e,t)}function u(e,t,n,r){return t===null||t.tag!==4||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?(t=Yi(n,e.mode,r),t.return=e,t):(t=a(t,n.children||[]),t.return=e,t)}function d(e,t,n,r,i){return t===null||t.tag!==7?(t=Ki(n,e.mode,r,i),t.return=e,t):(t=a(t,n),t.return=e,t)}function f(e,t,n){if(typeof t==`string`&&t!==``||typeof t==`number`||typeof t==`bigint`)return t=qi(``+t,e.mode,n),t.return=e,t;if(typeof t==`object`&&t){switch(t.$$typeof){case ne:return n=Gi(t.type,t.key,t.props,null,e.mode,n),mo(n,t),n.return=e,n;case re:return t=Yi(t,e.mode,n),t.return=e,t;case pe:return t=oo(t),f(e,t,n)}if(Ce(t)||be(t))return t=Ki(t,e.mode,n,null),t.return=e,t;if(typeof t.then==`function`)return f(e,po(t),n);if(t.$$typeof===ce)return f(e,ja(e,t),n);ho(e,t)}return null}function p(e,t,n,r){var i=t===null?null:t.key;
vendor: 10,947 bytes, line 8
8if(typeof n==`string`&&n!==``||typeof n==`number`||typeof n==`bigint`)return i===null?c(e,t,``+n,r):null;if(typeof n==`object`&&n){switch(n.$$typeof){case ne:return n.key===i?l(e,t,n,r):null;case re:return n.key===i?u(e,t,n,r):null;case pe:return n=oo(n),p(e,t,n,r)}if(Ce(n)||be(n))return i===null?d(e,t,n,r,null):null;if(typeof n.then==`function`)return p(e,t,po(n),r);if(n.$$typeof===ce)return p(e,t,ja(e,n),r);ho(e,n)}return null}function m(e,t,n,r,i){if(typeof r==`string`&&r!==``||typeof r==`number`||typeof r==`bigint`)return e=e.get(n)||null,c(t,e,``+r,i);if(typeof r==`object`&&r){switch(r.$$typeof){case ne:return e=e.get(r.key===null?n:r.key)||null,l(t,e,r,i);case re:return e=e.get(r.key===null?n:r.key)||null,u(t,e,r,i);case pe:return r=oo(r),m(e,t,n,r,i)}if(Ce(r)||be(r))return e=e.get(n)||null,d(t,e,r,i,null);if(typeof r.then==`function`)return m(e,t,n,po(r),i);if(r.$$typeof===ce)return m(e,t,n,ja(t,r),i);ho(t,r)}return null}function h(i,a,s,c){for(var l=null,u=null,d=a,h=a=0,g=null;d!==null&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),P&&oa(i,h),l;if(d===null){for(;h<s.length;h++)d=f(i,s[h],c),d!==null&&(a=o(d,a,h),u===null?l=d:u.sibling=d,u=d);return P&&oa(i,h),l}for(d=r(d);h<s.length;h++)g=m(d,i,h,s[h],c),g!==null&&(e&&(_=g.alternate,_!==null&&d.delete(_.key===null?h:_.key)),a=o(g,a,h),u===null?l=g:u.sibling=g,u=g);return e&&d.forEach(function(e){return t(i,e)}),P&&oa(i,h),l}function g(a,s,c,l){if(c==null)throw Error(i(151));for(var u=null,d=null,h=s,g=s=0,_=null,v=c.next();h!==null&&!v.done;g++,v=c.next()){h.index>g?(_=h,h=null):_=h.sibling;var y=p(a,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(a,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(a,h),P&&oa(a,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(a,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return P&&oa(a,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,a,g,v.value,l),v!==null&&(e&&(_=v.alternate,_!==null&&h.delete(_.key===null?g:_.key)),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(a,e)}),P&&oa(a,g),u}function _(e,r,o,c){if(typeof o==`object`&&o&&o.type===ie&&o.key===null&&o.props.ref===void 0&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case ne:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===ie){if(r.tag===7){n(e,r.sibling),c=a(r,o.props.children),mo(c,o),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===pe&&oo(l)===r.type){n(e,r.sibling),c=a(r,o.props),mo(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===ie?(c=Ki(o.props.children,e.mode,c,o.key),mo(c,o),c.return=e,e=c):(c=Gi(o.type,o.key,o.props,null,e.mode,c),mo(c,o),c.return=e,e=c)}return s(e);case re:a:{for(l=o.key;r!==null;){if(r.key===l){if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=a(r,o.children||[]),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}c=Yi(o,e.mode,c),c.return=e,e=c}return s(e);case pe:return o=oo(o),_(e,r,o,c)}if(Ce(o))return h(e,r,o,c);if(be(o)){if(l=be(o),typeof l!=`function`)throw Error(i(150));return o=l.call(o),g(e,r,o,c)}if(typeof o.then==`function`)return _(e,r,po(o),c);if(o.$$typeof===ce)return _(e,r,ja(e,o),c);ho(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=a(r,o),c.return=e,e=c):(n(e,r),c=qi(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{fo=0;var i=_(e,t,n,r);return uo=null,i}catch(t){if(t===eo||t===no)throw t;var a=Vi(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var _o=go(!0),vo=go(!1),I=!1;function yo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function bo(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function xo(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function So(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,K&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Ri(e),Li(e,null,n),t}return Pi(e,r,t,n),Ri(e)}function Co(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ct(e,n)}}function wo(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var To=!1;function Eo(){if(To){var e=Ga;if(e!==null)throw e}}function Do(e,t,n,r){To=!1;var i=e.updateQueue;I=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,p=f!==s.lane;if(p?(Y&f)===f:(r&f)===f){f!==0&&f===Wa&&(To=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var m=e,h=s;f=t;var g=n;switch(h.tag){case 1:if(m=h.payload,typeof m==`function`){d=m.call(g,d,f);break a}d=m;break a;case 3:m.flags=m.flags&-65537|128;case 0:if(m=h.payload,f=typeof m==`function`?m.call(g,d,f):m,f==null)break a;d=S({},d,f);break a;case 2:I=!0}}f=s.callback,f!==null&&(e.flags|=64,p&&(e.flags|=8192),p=i.callbacks,p===null?i.callbacks=[f]:p.push(f))}else p={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=p,c=d):u=u.next=p,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;p=s,s=p.next,p.next=null,i.lastBaseUpdate=p,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),od|=o,e.lanes=o,e.memoizedState=d}}function Oo(e,t){if(typeof e!=`function`)throw Error(i(191,e));e.call(t)}function ko(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;e<n.length;e++)Oo(n[e],t)}var Ao=Ee(null),jo=Ee(0);function Mo(e,t){e=id,O(jo,e),O(Ao,t),id=e|t.baseLanes}function No(){O(jo,id),O(Ao,Ao.current)}function Po(){id=jo.current,De(Ao),De(jo)}var L=Ee(null),Fo=null;function Io(e){var t=e.alternate;O(Vo,Vo.current&1),O(L,e),Fo===null&&(t===null||Ao.current!==null||t.memoizedState!==null)&&(Fo=e)}function Lo(e){O(Vo,Vo.current),O(L,e),Fo===null&&(Fo=e)}function Ro(e){e.tag===22?(O(Vo,Vo.current),O(L,e),Fo===null&&(Fo=e)):zo()}function zo(){O(Vo,Vo.current),O(L,L.current)}function Bo(e){De(L),Fo===e&&(Fo=null),De(Vo)}var Vo=Ee(0);function Ho(e,t){O(L,L.current),O(Vo,t)}function Uo(e){De(Vo),De(L),Fo===e&&(Fo=null)}function Wo(e){for(var t=e;t!==null;){if(t.tag===13){var n=t.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||om(n)||sm(n)))return t}else if(t.tag===19&&t.memoizedProps.revealOrder!==`independent`){if(t.flags&128)return t}else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Go=0,R=null,z=null,Ko=null,qo=!1,Jo=!1,Yo=!1,Xo=0,Zo=0,Qo=null,$o=0;function es(){throw Error(i(321))}function ts(e,t){if(t===null)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!Xr(e[n],t[n]))return!1;return!0}function B(e,t,n,r,i,a){return Go=a,R=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,w.H=e===null||e.memoizedState===null?vc:yc,Yo=!1,a=n(r,i),Yo=!1,Jo&&(a=rs(t,n,r,i)),ns(e),a}function ns(e){w.H=_c;var t=z!==null&&z.next!==null;if(Go=0,Ko=z=R=null,qo=!1,Zo=0,Qo=null,t)throw Error(i(300));e===null||Fc||(e=e.dependencies,e!==null&&Oa(e)&&(Fc=!0))}function rs(e,t,n,r){R=e;var a=0;do{if(Jo&&(Qo=null),Zo=0,Jo=!1,25<=a)throw Error(i(301));if(a+=1,Ko=z=null,e.updateQueue!=null){var o=e.updateQueue;o.lastEffect=null,o.events=null,o.stores=null,o.memoCache!=null&&(o.memoCache.index=0)}w.H=bc,o=t(n,r)}while(Jo);return o}function is(){var e=w.H,t=e.useState()[0];return t=typeof t.then==`function`?ds(t):t,e=e.useState()[0],(z===null?null:z.memoizedState)!==e&&(R.flags|=1024),t}function as(){var e=Xo!==0;return Xo=0,e}function os(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~n}function ss(e){if(qo){for(e=e.memoizedState;e!==null;){var t=e.queue;t!==null&&(t.pending=null),e=e.next}qo=!1}Go=0,Ko=z=R=null,Jo=!1,Zo=Xo=0,Qo=null}function cs(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ko===null?R.memoizedState=Ko=e:Ko=Ko.next=e,Ko}function ls(){if(z===null){var e=R.alternate;e=e===null?null:e.memoizedState}else e=z.next;var t=Ko===null?R.memoizedState:Ko.next;if(t!==null)Ko=t,z=e;else{if(e===null)throw R.alternate===null?Error(i(467)):Error(i(310));z=e,e={memoizedState:z.memoizedState,baseState:z.baseState,baseQueue:z.baseQueue,queue:z.queue,next:null},Ko===null?R.memoizedState=Ko=e:Ko=Ko.next=e}return Ko}function us(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function ds(e){var t=Zo;return Zo+=1,Qo===null&&(Qo=[]),e=ao(Qo,e,t),t=R,(Ko===null?t.memoizedState:Ko.next)===null&&(t=t.alternate,w.H=t===null||t.memoizedState===null?vc:yc),e}function fs(e){if(typeof e==`object`&&e){if(typeof e.then==`function`)return ds(e);if(e.$$typeof===ve)return;if(e.$$typeof===ce)return Aa(e)}throw Error(i(438,String(e)))}function ps(e){var t=null,n=R.updateQueue;if(n!==null&&(t=n.memoCache),t==null){var r=R.alternate;r!==null&&(r=r.updateQueue,r!==null&&(r=r.memoCache,r!=null&&(t={data:r.data.map(function(e){return e.slice()}),index:0})))}if(t??={data:[],index:0},n===null&&(n=us(),R.updateQueue=n),n.memoCache=t,n=t.data[t.index],n===void 0)for(n=t.data[t.index]=Array(e),r=0;r<e;r++)n[r]=ge;return t.index++,n}function ms(e,t){return typeof t==`function`?t(e):t}function hs(e){return gs(ls(),z,e)}function gs(e,t,n){var r=e.queue;if(r===null)throw Error(i(311));r.lastRenderedReducer=n;var a=e.baseQueue,o=r.pending;if(o!==null){if(a!==null){var s=a.next;a.next=o.next,o.next=s}t.baseQueue=a=o,r.pending=null}if(o=e.baseState,a===null)e.memoizedState=o;else{t=a.next;var c=s=null,l=null,u=t,d=!1;do{var f=u.lane&-536870913;if(f===u.lane?(Go&f)===f:(Y&f)===f){var p=u.revertLane;if(p===0)l!==null&&(l=l.next={lane:0,revertLane:0,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}
vendor: 5,665 bytes, line 8
8),f===Wa&&(d=!0);else if((Go&p)===p){u=u.next,p===Wa&&(d=!0);continue}else f={lane:0,revertLane:u.revertLane,gesture:null,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=f,s=o):l=l.next=f,R.lanes|=p,od|=p;f=u.action,Yo&&n(o,f),o=u.hasEagerState?u.eagerState:n(o,f)}else p={lane:f,revertLane:u.revertLane,gesture:u.gesture,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null},l===null?(c=l=p,s=o):l=l.next=p,R.lanes|=f,od|=f;u=u.next}while(u!==null&&u!==t);if(l===null?s=o:l.next=c,!Xr(o,e.memoizedState)&&(Fc=!0,d&&(n=Ga,n!==null)))throw n;e.memoizedState=o,e.baseState=s,e.baseQueue=l,r.lastRenderedState=o}return a===null&&(r.lanes=0),[e.memoizedState,r.dispatch]}function _s(e){var t=ls(),n=t.queue;if(n===null)throw Error(i(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,o=t.memoizedState;if(a!==null){n.pending=null;var s=a=a.next;do o=e(o,s.action),s=s.next;while(s!==a);Xr(o,t.memoizedState)||(Fc=!0),t.memoizedState=o,t.baseQueue===null&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function vs(e,t,n){var r=R,a=ls(),o=P;if(o){if(n===void 0)throw Error(i(407));n=n()}else n=t();var s=!Xr((z||a).memoizedState,n);if(s&&(a.memoizedState=n,Fc=!0),a=a.queue,Us(xs.bind(null,r,a,e),[e]),e=a.getSnapshot!==t||s||Ko!==null&&!!(Ko.memoizedState.tag&1),Rs(e?9:8,{destroy:void 0},bs.bind(null,r,a,n,t),null),e){if(r.flags|=2048,q===null)throw Error(i(349));o||Go&127||ys(r,t,n)}return n}function ys(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},t=R.updateQueue,t===null?(t=us(),R.updateQueue=t,t.stores=[e]):(n=t.stores,n===null?t.stores=[e]:n.push(e))}function bs(e,t,n,r){t.value=n,t.getSnapshot=r,Ss(t)&&Cs(e)}function xs(e,t,n){return n(function(){Ss(t)&&Cs(e)})}function Ss(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!Xr(e,n)}catch{return!0}}function Cs(e){var t=Ii(e,2);t!==null&&Pd(t,e,2)}function ws(e){var t=cs();if(typeof e==`function`){var n=e;if(e=n(),Yo){at(!0);try{n()}finally{at(!1)}}}return t.memoizedState=t.baseState=e,t.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:ms,lastRenderedState:e},t}function Ts(e,t,n,r){return e.baseState=n,gs(e,z,typeof r==`function`?r:ms)}function Es(e,t,n,r,a){if(mc(e))throw Error(i(485));if(e=t.action,e!==null){var o={payload:a,action:e,next:null,isTransition:!0,status:`pending`,value:null,reason:null,listeners:[],then:function(e){o.listeners.push(e)}};w.T===null?o.isTransition=!1:n(!0),r(o),n=t.pending,n===null?(o.next=t.pending=o,Ds(t,o)):(o.next=n.next,t.pending=n.next=o)}}function Ds(e,t){var n=t.action,r=t.payload,i=e.state;if(t.isTransition){var a=w.T,o={};o.types=a===null?null:a.types,w.T=o;try{var s=n(i,r),c=w.S;c!==null&&c(o,s),Os(e,t,s)}catch(n){As(e,t,n)}finally{a!==null&&o.types!==null&&(a.types=o.types),w.T=a}}else try{a=n(i,r),Os(e,t,a)}catch(n){As(e,t,n)}}function Os(e,t,n){typeof n==`object`&&n&&typeof n.then==`function`?n.then(function(n){ks(e,t,n)},function(n){return As(e,t,n)}):ks(e,t,n)}function ks(e,t,n){t.status=`fulfilled`,t.value=n,js(t),e.state=n,t=e.pending,t!==null&&(n=t.next,n===t?e.pending=null:(n=n.next,t.next=n,Ds(e,n)))}function As(e,t,n){var r=e.pending;if(e.pending=null,r!==null){r=r.next;do t.status=`rejected`,t.reason=n,js(t),t=t.next;while(t!==r)}e.action=null}function js(e){e=e.listeners;for(var t=0;t<e.length;t++)(0,e[t])()}function Ms(e,t){return t}function Ns(e,t){if(P){var n=q.formState;if(n!==null){a:{var r=R;if(P){if(N){b:{for(var i=N,a=da;i.nodeType!==8;){if(!a){i=null;break b}if(i=lm(i.nextSibling),i===null){i=null;break b}}a=i.data,i=a===`F!`||a===`F`?i:null}if(i){N=lm(i.nextSibling),r=i.data===`F!`;break a}}pa(r)}r=!1}r&&(t=n[0])}}return n=cs(),n.memoizedState=n.baseState=t,r={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Ms,lastRenderedState:t},n.queue=r,n=dc.bind(null,R,r),r.dispatch=n,r=ws(!1),a=pc.bind(null,R,!1,r.queue),r=cs(),i={state:t,dispatch:null,action:e,pending:null},r.queue=i,n=Es.bind(null,R,i,a,n),i.dispatch=n,r.memoizedState=e,[t,n,!1]}function Ps(e){return Fs(ls(),z,e)}function Fs(e,t,n){if(t=gs(e,t,Ms)[0],e=hs(ms)[0],typeof t==`object`&&t&&typeof t.then==`function`)try{var r=ds(t)}catch(e){throw e===eo?no:e}else r=t;t=ls();var i=t.queue,a=i.dispatch;return n!==t.memoizedState&&(R.flags|=2048,Rs(9,{destroy:void 0},Is.bind(null,i,n),null)),[r,a,e]}function Is(e,t){e.action=t}function Ls(e){var t=ls(),n=z;if(n!==null)return Fs(t,n,e);ls(),t=t.memoizedState,n=ls();var r=n.queue.dispatch;return n.memoizedState=e,[t,r,!1]}function Rs(e,t,n,r){return e={tag:e,create:n,deps:r,inst:t,next:null},t=R.updateQueue,t===null&&(t=us(),R.updateQueue=t),n=t.lastEffect,n===null?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function zs(){return ls().memoizedState}function Bs(e,t,n,r){var i=cs();R.flags|=e,i.memoizedState=Rs(1|t,{destroy:void 0},n,r===void 0?null:r)}function Vs(e,t,n,r){var i=ls();r=r===void 0?null:r;var a=i.memoizedState.inst;z!==null&&r!==null&&ts(r,z.memoizedState.deps)?i.memoizedState=Rs(t,a,n,r):(R.flags|=e,i.memoizedState=Rs(1|t,a,n,r))}function Hs(e,t){Bs(8390656,8,e,t)}function Us(e,t){Vs(2048,8,e,t)}function Ws(e){R.flags|=4;var t=R.updateQueue;if(t===null)t=us(),R.updateQueue=t,t.events=[e];else{var n=t.events;n===null?t.events=[e]:n.push(e)}}function Gs(e){var t=ls().memoizedState;return Ws({ref:t,nextImpl:e}),function(){if(K&2)throw Error(i(440));return t.impl.apply(void 0,arguments)}}function Ks(e,t){return Vs(4,2,e,t)}function qs(e,t){return Vs(4,4,e,t)}function Js(e,t){if(typeof t==`function`){e=e();var n=t(e);return function(){typeof n==`function`?n():t(null)}}if(t!=null)return e=e(),t.current=e,function(){t.current=null}}
vendor: 18,449 bytes, line 8
8function Ys(e,t,n){n=n==null?null:n.concat([e]),Vs(4,4,Js.bind(null,t,e),n)}function Xs(){}function Zs(e,t){var n=ls();t=t===void 0?null:t;var r=n.memoizedState;return t!==null&&ts(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Qs(e,t){var n=ls();t=t===void 0?null:t;var r=n.memoizedState;if(t!==null&&ts(t,r[1]))return r[0];if(r=e(),Yo){at(!0);try{e()}finally{at(!1)}}return n.memoizedState=[r,t],r}function $s(e,t,n){return n===void 0||Go&1073741824&&!(Y&261930)?e.memoizedState=t:(e.memoizedState=n,e=Md(),R.lanes|=e,od|=e,n)}function ec(e,t,n,r){return Xr(n,t)?n:Ao.current===null?!(Go&106)||Go&1073741824&&!(Y&261930)?(Fc=!0,e.memoizedState=n):(e=Md(),R.lanes|=e,od|=e,t):(e=$s(e,n,r),Xr(e,t)||(Fc=!0),e)}function tc(e,t,n,r,i){var a=T.p;T.p=a!==0&&8>a?a:8;var o=w.T,s={};s.types=o===null?null:o.types,w.T=s,pc(e,!1,t,n);try{var c=i(),l=w.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?fc(e,t,Ja(c,r),jd(e)):fc(e,t,r,jd(e))}catch(n){fc(e,t,{then:function(){},status:`rejected`,reason:n},jd())}finally{T.p=a,o!==null&&s.types!==null&&(o.types=s.types),w.T=o}}function nc(){}function rc(e,t,n,r){if(e.tag!==5)throw Error(i(476));var a=ic(e).queue;tc(e,a,t,E,n===null?nc:function(){return ac(e),n(r)})}function ic(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:E,baseState:E,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ms,lastRenderedState:E},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:ms,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ac(e){var t=ic(e);t.next===null&&(t=e.alternate.memoizedState),fc(e,t.next.queue,{},jd())}function oc(){return Aa(sh)}function sc(){return ls().memoizedState}function cc(){return ls().memoizedState}function lc(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=jd();e=xo(n);var r=So(t,e,n);r!==null&&(Pd(r,t,n),Co(r,t,n)),t={cache:La()},e.payload=t;return}t=t.return}}function uc(e,t,n){var r=jd();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},mc(e)?hc(t,n):(n=Fi(e,t,n,r),n!==null&&(Pd(n,e,r),gc(n,t,r)))}function dc(e,t,n){fc(e,t,n,jd())}function fc(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(mc(e))hc(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,Xr(s,o))return Pi(e,t,i,0),q===null&&Ni(),!1}catch{}if(n=Fi(e,t,i,r),n!==null)return Pd(n,e,r),gc(n,t,r),!0}return!1}function pc(e,t,n,r){if(r={lane:2,revertLane:Pf(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},mc(e)){if(t)throw Error(i(479))}else t=Fi(e,n,r,2),t!==null&&Pd(t,e,2)}function mc(e){var t=e.alternate;return e===R||t!==null&&t===R}function hc(e,t){Jo=qo=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function gc(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ct(e,n)}}var _c={readContext:Aa,use:fs,useCallback:es,useContext:es,useEffect:es,useImperativeHandle:es,useLayoutEffect:es,useInsertionEffect:es,useMemo:es,useReducer:es,useRef:es,useState:es,useDebugValue:es,useDeferredValue:es,useTransition:es,useSyncExternalStore:es,useId:es,useHostTransitionStatus:es,useFormState:es,useActionState:es,useOptimistic:es,useMemoCache:es,useCacheRefresh:es,useEffectEvent:es},vc={readContext:Aa,use:fs,useCallback:function(e,t){return cs().memoizedState=[e,t===void 0?null:t],e},useContext:Aa,useEffect:Hs,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),Bs(4194308,4,Js.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Bs(4194308,4,e,t)},useInsertionEffect:function(e,t){Bs(4,2,e,t)},useMemo:function(e,t){var n=cs();t=t===void 0?null:t;var r=e();if(Yo){at(!0);try{e()}finally{at(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=cs();if(n!==void 0){var i=n(t);if(Yo){at(!0);try{n(t)}finally{at(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=uc.bind(null,R,e),[r.memoizedState,e]},useRef:function(e){var t=cs();return e={current:e},t.memoizedState=e},useState:function(e){e=ws(e);var t=e.queue,n=dc.bind(null,R,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:Xs,useDeferredValue:function(e,t){return $s(cs(),e,t)},useTransition:function(){var e=ws(!1);return e=tc.bind(null,R,e.queue,!0,!1),cs().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=R,a=cs();if(P){if(n===void 0)throw Error(i(407));n=n()}else{if(n=t(),q===null)throw Error(i(349));Y&127||ys(r,t,n)}a.memoizedState=n;var o={value:n,getSnapshot:t};return a.queue=o,Hs(xs.bind(null,r,o,e),[e]),r.flags|=2048,Rs(9,{destroy:void 0},bs.bind(null,r,o,n,t),null),n},useId:function(){var e=cs(),t=q.identifierPrefix;if(P){var n=aa,r=ia;n=(r&~(1<<32-ot(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=Xo++,0<n&&(t+=`H`+n.toString(32)),t+=`_`}else n=$o++,t=`_`+t+`r_`+n.toString(32)+`_`;return e.memoizedState=t},useHostTransitionStatus:oc,useFormState:Ns,useActionState:Ns,useOptimistic:function(e){var t=cs();t.memoizedState=t.baseState=e;var n={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return t.queue=n,t=pc.bind(null,R,!0,n),n.dispatch=t,[e,t]},useMemoCache:ps,useCacheRefresh:function(){return cs().memoizedState=lc.bind(null,R)},useEffectEvent:function(e){var t=cs(),n={impl:e};return t.memoizedState=n,function(){if(K&2)throw Error(i(440));return n.impl.apply(void 0,arguments)}}},yc={readContext:Aa,use:fs,useCallback:Zs,useContext:Aa,useEffect:Us,useImperativeHandle:Ys,useInsertionEffect:Ks,useLayoutEffect:qs,useMemo:Qs,useReducer:hs,useRef:zs,useState:function(){return hs(ms)},useDebugValue:Xs,useDeferredValue:function(e,t){return ec(ls(),z.memoizedState,e,t)},useTransition:function(){var e=hs(ms)[0],t=ls().memoizedState;return[typeof e==`boolean`?e:ds(e),t]},useSyncExternalStore:vs,useId:sc,useHostTransitionStatus:oc,useFormState:Ps,useActionState:Ps,useOptimistic:function(e,t){return Ts(ls(),z,e,t)},useMemoCache:ps,useCacheRefresh:cc,useEffectEvent:Gs},bc={readContext:Aa,use:fs,useCallback:Zs,useContext:Aa,useEffect:Us,useImperativeHandle:Ys,useInsertionEffect:Ks,useLayoutEffect:qs,useMemo:Qs,useReducer:_s,useRef:zs,useState:function(){return _s(ms)},useDebugValue:Xs,useDeferredValue:function(e,t){var n=ls();return z===null?$s(n,e,t):ec(n,z.memoizedState,e,t)},useTransition:function(){var e=_s(ms)[0],t=ls().memoizedState;return[typeof e==`boolean`?e:ds(e),t]},useSyncExternalStore:vs,useId:sc,useHostTransitionStatus:oc,useFormState:Ls,useActionState:Ls,useOptimistic:function(e,t){var n=ls();return z===null?(n.baseState=e,[e,n.queue.dispatch]):Ts(n,z,e,t)},useMemoCache:ps,useCacheRefresh:cc,useEffectEvent:Gs};function xc(e,t,n,r){t=e.memoizedState,n=n(r,t),n=n==null?t:S({},t,n),e.memoizedState=n,e.lanes===0&&(e.updateQueue.baseState=n)}var V={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=jd(),i=xo(r);i.payload=t,n!=null&&(i.callback=n),t=So(e,i,r),t!==null&&(Pd(t,e,r),Co(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=jd(),i=xo(r);i.tag=1,i.payload=t,n!=null&&(i.callback=n),t=So(e,i,r),t!==null&&(Pd(t,e,r),Co(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=jd(),r=xo(n);r.tag=2,t!=null&&(r.callback=t),t=So(e,r,n),t!==null&&(Pd(t,e,n),Co(t,e,n))}};function Sc(e,t,n,r,i,a,o){return e=e.stateNode,typeof e.shouldComponentUpdate==`function`?e.shouldComponentUpdate(r,a,o):t.prototype&&t.prototype.isPureReactComponent?!Zr(n,r)||!Zr(i,a):!0}function Cc(e,t,n,r){e=t.state,typeof t.componentWillReceiveProps==`function`&&t.componentWillReceiveProps(n,r),typeof t.UNSAFE_componentWillReceiveProps==`function`&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&V.enqueueReplaceState(t,t.state,null)}function wc(e,t){var n=t;if(`ref`in t)for(var r in n={},t)r!==`ref`&&(n[r]=t[r]);if(e=e.defaultProps)for(var i in n===t&&(n=S({},n)),e)n[i]===void 0&&(n[i]=e[i]);return n}function Tc(e){ki(e)}function Ec(e){console.error(e)}function Dc(e){ki(e)}function Oc(e,t){try{var n=e.onUncaughtError;n(t.value,{componentStack:t.stack})}catch(e){setTimeout(function(){throw e})}}function kc(e,t,n){try{var r=e.onCaughtError;r(n.value,{componentStack:n.stack,errorBoundary:t.tag===1?t.stateNode:null})}catch(e){setTimeout(function(){throw e})}}function Ac(e,t,n){return n=xo(n),n.tag=3,n.payload={element:null},n.callback=function(){Oc(e,t)},n}function jc(e){return e=xo(e),e.tag=3,e}function Mc(e,t,n,r){var i=n.type.getDerivedStateFromError;if(typeof i==`function`){var a=r.value;e.payload=function(){return i(a)},e.callback=function(){kc(t,n,r)}}var o=n.stateNode;o!==null&&typeof o.componentDidCatch==`function`&&(e.callback=function(){kc(t,n,r),typeof i!=`function`&&(vd===null?vd=new Set([this]):vd.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:e===null?``:e})})}function Nc(e,t,n,r,a){if(n.flags|=32768,typeof r==`object`&&r&&typeof r.then==`function`){if(t=n.alternate,t!==null&&Da(t,n,a,!0),n=L.current,n!==null){switch(n.tag){case 31:case 13:case 19:return Fo===null?Kd():n.alternate===null&&ad===0&&(ad=3),n.flags&=-257,n.flags|=65536,n.lanes=a,r===ro?n.flags|=16384:(t=n.updateQueue,t===null?n.updateQueue=new Set([r]):t.add(r),mf(e,r,a)),!1;case 22:return n.flags|=65536,r===ro?n.flags|=16384:(t=n.updateQueue,t===null?(t={transitions:null,markerInstances:null,retryQueue:new Set([r])},n.updateQueue=t):(n=t.retryQueue,n===null?t.retryQueue=new Set([r]):n.add(r)),mf(e,r,a)),!1}throw Error(i(435,n.tag))}return mf(e,r,a),Kd(),!1}if(P)return t=L.current,t===null?(r!==fa&&(t=Error(i(423),{cause:r}),ya(Xi(t,n))),e=e.current.alternate,e.flags|=65536,a&=-a,e.lanes|=a,r=Xi(r,n),a=Ac(e.stateNode,r,a),wo(e,a),ad!==4&&(ad=2)):(!(t.flags&65536)&&(t.flags|=256),t.flags|=65536,t.lanes=a,r!==fa&&(e=Error(i(422),{cause:r}),ya(Xi(e,n)))),!1;var o=Error(i(520),{cause:r});if(o=Xi(o,n),dd===null?dd=[o]:dd.push(o),ad!==4&&(ad=2),t===null)return!0;r=Xi(r,n),n=t;do{switch(n.tag){case 3:return n.flags|=65536,e=a&-a,n.lanes|=e,e=Ac(n.stateNode,r,e),wo(n,e),!1;case 1:if(t=n.type,o=n.stateNode,!(n.flags&128)&&(typeof t.getDerivedStateFromError==`function`||o!==null&&typeof o.componentDidCatch==`function`&&(vd===null||!vd.has(o))))return n.flags|=65536,a&=-a,n.lanes|=a,a=jc(a),Mc(a,e,n,r),wo(n,a),!1;break;case 22:if(n.memoizedState!==null)return n.flags|=65536,!1}n=n.return}while(n!==null);return!1}var Pc=Error(i(461)),Fc=!1;function Ic(e,t,n,r){t.child=e===null?vo(t,null,n,r):_o(t,e.child,n,r)}function Lc(e,t,n,r,i){n=n.render;var a=t.ref;if(`ref`in r){var o={};for(var s in r)s!==`ref`&&(o[s]=r[s])}else o=r;return ka(t),r=B(e,t,n,o,a,i),s=as(),e!==null&&!Fc?(os(e,t,i),dl(e,t,i)):(P&&s&&ca(t),t.flags|=1,Ic(e,t,r,i),t.child)}function Rc(e,t,n,r,i){if(e===null){var a=n.type;return typeof a==`function`&&!Hi(a)&&a.defaultProps===void 0&&n.compare===null?(t.tag=15,t.type=a,zc(e,t,a,r,i)):(e=Gi(n.type,null,r,t,t.mode,i),e.ref=t.ref,e.return=t,t.child=e)}if(a=e.child,!fl(e,i)){var o=a.memoizedProps;if(n=n.compare,n=n===null?Zr:n,n(o,r)&&e.ref===t.ref)return dl(e,t,i)}return t.flags|=1,e=Ui(a,r),e.ref=t.ref,e.return=t,t.child=e}function zc(e,t,n,r,i){if(e!==null){var a=e.memoizedProps;if(Zr(a,r)&&e.ref===t.ref){if(Fc=!1,t.pendingProps=r=a,fl(e,i))e.flags&131072&&(Fc=!0);else return t.lanes=e.lanes,dl(e,t,i)}}return qc(e,t,n,r,i)}function Bc(e,t,n,r){var i=r.children,a=e===null?null:e.memoizedState;if(e===null&&t.stateNode===null&&(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),r.mode===`hidden`){if(t.flags&128){if(a=a===null?n:a.baseLanes|n,e!==null){for(r=t.child=e.child,i=0;r!==null;)i=i|r.lanes|r.childLanes,r=r.sibling;r=i&~a}else r=0,t.child=null;return Hc(e,t,a,n,r)}if(n&536870912)t.memoizedState={baseLanes:0,cachePool:null},e!==null&&Qa(t,a===null?null:a.cachePool),a===null?No():Mo(t,a),Ro(t);else return r=t.lanes=536870912,Hc(e,t,a===null?n:a.baseLanes|n,n,r)}else a===null?(e!==null&&Qa(t,null),No(),zo()):(Qa(t,a.cachePool),Mo(t,a),zo(),t.memoizedState=null);return Ic(e,t,i,n),t.child}function Vc(e,t){return e!==null&&e.tag===22||t.stateNode!==null||(t.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),t.sibling}function Hc(e,t,n,r,i){var a=Za();return a=a===null?null:{parent:Ia._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},e!==null&&Qa(t,null),No(),Ro(t),e!==null&&Da(e,t,r,!0),t.childLanes=i,null}function Uc(e,t){return t=nl({mode:t.mode,children:t.children},e.mode),t.ref=e.ref,e.child=t,t.return=e,t}function Wc(e,t,n){return _o(t,e.child,null,n),e=Uc(t,t.pendingProps),e.flags|=2,Bo(t),t.memoizedState=null,e}function Gc(e,t,n){var r=t.pendingProps,a=!!(t.flags&128);if(t.flags&=-129,e===null){if(P){if(r.mode===`hidden`)return e=Uc(t,r),t.lanes=536870912,e.memoizedState={baseLanes:0,cachePool:null},Vc(null,e);if(Lo(t),(e=N)?(e=am(e,da),e=e!==null&&e.data===`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ra===null?null:{id:ia,overflow:aa},retryLane:536870912,hydrationErrors:null},n=Ji(e),n.return=t,t.child=n,ua=t,N=null)):e=null,e===null)throw pa(t);return t.lanes=536870912,null}return Uc(t,r)}var o=e.memoizedState;if(o!==null){var s=o.dehydrated;if(Lo(t),a){if(t.flags&256)t.flags&=-257,t=Wc(e,t,n);else if(t.memoizedState!==null)t.child=e.child,t.flags|=128,t=null;else throw Error(i(558))}else if(Fc||Da(e,t,n,!1),a=(n&e.childLanes)!==0,Fc||a){if(Ao.current===null){if(r=q,r!==null&&(s=wt(r,n),s!==0&&s!==o.retryLane))throw o.retryLane=s,Ii(e,s),Pd(r,e,s),Pc;Kd()}t=Wc(e,t,n)}else e=o.treeContext,N=lm(s.nextSibling),ua=t,P=!0,F=null,da=!1,e!==null&&M(t,e),t=Uc(t,r),t.flags|=134221824;return t}return e=Ui(e.child,{mode:r.mode,children:r.children}),e.ref=t.ref,t.child=e,e.return=t,e}function Kc(e,t){var n=t.ref;if(n===null)e!==null&&e.ref!==null&&(t.flags|=4194816);else{if(typeof n!=`function`&&typeof n!=`object`)throw Error(i(284));(e===null||e.ref!==n)&&(t.flags|=4194816)}}function qc(e,t,n,r,i){return ka(t),n=B(e,t,n,r,void 0,i),r=as(),e!==null&&!Fc?(os(e,t,i),dl(e,t,i)):(P&&r&&ca(t),t.flags|=1,Ic(e,t,n,i),t.child)}function Jc(e,t,n,r,i,a){return ka(t),t.updateQueue=null,n=rs(t,r,n,i),ns(e),r=as(),e!==null&&!Fc?(os(e,t,a),dl(e,t,a)):(P&&r&&ca(t),t.flags|=1,Ic(e,t,n,a),t.child)}function Yc(e,t,n,r,i){if(ka(t),t.stateNode===null){var a=zi,o=n.contextType;typeof o==`object`&&o&&(a=Aa(o)),a=new n(r,a),t.memoizedState=a.state!==null&&a.state!==void 0?a.state:null,a.updater=V,t.stateNode=a,a._reactInternals=t,a=t.stateNode,a.props=r,a.state=t.memoizedState,a.refs={},yo(t),o=n.contextType,a.context=typeof o==`object`&&o?Aa(o):zi,a.state=t.memoizedState,o=n.getDerivedStateFromProps,typeof o==`function`&&(xc(t,n,o,r),a.state=t.memoizedState),typeof n.getDerivedStateFromProps==`function`||typeof a.getSnapshotBeforeUpdate==`function`||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(o=a.state,typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount(),o!==a.state&&V.enqueueReplaceState(a,a.state,null),Do(t,r,a,i),Eo(),a.state=t.memoizedState),typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!0}else if(e===null){a=t.stateNode;var s=t.memoizedProps,c=wc(n,s);a.props=c;var l=a.context,u=n.contextType;o=zi,typeof u==`object`&&u&&(o=Aa(u));var d=n.getDerivedStateFromProps;u=typeof d==`function`||typeof a.getSnapshotBeforeUpdate==`function`,s=t.pendingProps!==s,u||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(s||l!==o)&&Cc(t,a,r,o),I=!1;var f=t.memoizedState;a.state=f,Do(t,r,a,i),Eo(),l=t.memoizedState,s||f!==l||I?(typeof d==`function`&&(xc(t,n,d,r),l=t.memoizedState),(c=I||Sc(t,n,c,r,f,l,o))?(u||typeof a.UNSAFE_componentWillMount!=`function`&&typeof a.componentWillMount!=`function`||(typeof a.componentWillMount==`function`&&a.componentWillMount(),typeof a.UNSAFE_componentWillMount==`function`&&a.UNSAFE_componentWillMount()),typeof a.componentDidMount==`function`&&(t.flags|=4194308)):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),a.props=r,a.state=l,a.context=o,r=c):(typeof a.componentDidMount==`function`&&(t.flags|=4194308),r=!1)}else{a=t.stateNode,bo(e,t),o=t.memoizedProps,u=wc(n,o),a.props=u,d=t.pendingProps,f=a.context,l=n.contextType,c=zi,typeof l==`object`&&l&&(c=Aa(l)),s=n.getDerivedStateFromProps,(l=typeof s==`function`||typeof a.getSnapshotBeforeUpdate==`function`)||typeof a.UNSAFE_componentWillReceiveProps!=`function`&&typeof a.componentWillReceiveProps!=`function`||(o!==d||f!==c)&&Cc(t,a,r,c),I=!1,f=t.memoizedState,a.state=f,Do(t,r,a,i),Eo();var p=t.memoizedState;o!==d||f!==p||I||e!==null&&e.dependencies!==null&&Oa(e.dependencies)?(typeof s==`function`&&(xc(t,n,s,r),p=t.memoizedState),(u=I||Sc(t,n,u,r,f,p,c)||e!==null&&e.dependencies!==null&&Oa(e.dependencies))?(l||typeof a.UNSAFE_componentWillUpdate!=`function`&&typeof a.componentWillUpdate!=`function`||(typeof a.componentWillUpdate==`function`&&a.componentWillUpdate(r,p,c),typeof a.UNSAFE_componentWillUpdate==`function`&&a.UNSAFE_componentWillUpdate(r,p,c)),typeof a.componentDidUpdate==`function`&&(t.flags|=4),typeof a.getSnapshotBeforeUpdate==`function`&&(t.flags|=1024)):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),a.props=r,a.state=p,a.context=c,r=u):(typeof a.componentDidUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=4),typeof a.getSnapshotBeforeUpdate!=`function`||o===e.memoizedProps&&f===e.memoizedState||(t.flags|=1024),r=!1)}return a=r,Kc(e,t),r=!!(t.flags&128),a||r?(a=t.stateNode,n=r&&typeof n.getDerivedStateFromError!=`function`?null:a.render(),t.flags|=1,e!==null&&r?(t.child=_o(t,e.child,null,i),t.child=_o(t,null,n,i)):Ic(e,t,n,i),t.memoizedState=a.state,e=t.child):e=dl(e,t,i),e}function Xc(e,t,n,r){return _a(),t.flags|=256,Ic(e,t,n,r),t.child}var Zc={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Qc(e){return{baseLanes:e,cachePool:$a()}}
8function $c(e,t,n){return e=e===null?0:e.childLanes&~n,t&&(e|=ld),e}function el(e,t,n){var r=t.pendingProps,i=!1,a=!!(t.flags&128),o;if((o=a)||(o=e!==null&&e.memoizedState===null?!1:!!(Vo.current&2)),o&&(i=!0,t.flags&=-129),o=!!(t.flags&32),t.flags&=-33,e===null){if(P){if(i?Io(t):zo(),(e=N)?(e=am(e,da),e=e!==null&&e.data!==`&`?e:null,e!==null&&(t.memoizedState={dehydrated:e,treeContext:ra===null?null:{id:ia,overflow:aa},retryLane:536870912,hydrationErrors:null},n=Ji(e),n.return=t,t.child=n,ua=t,N=null)):e=null,e===null)throw pa(t);return t.lanes=sm(e)?32:536870912,null}return a=r.children,r=r.fallback,i?(zo(),i=t.mode,a=nl({mode:`hidden`,children:a},i),r=Ki(r,i,n,null),a.return=t,r.return=t,a.sibling=r,t.child=a,r=t.child,r.memoizedState=Qc(n),r.childLanes=$c(e,o,n),t.memoizedState=Zc,Vc(null,r)):(Io(t),tl(t,a))}var s=e.memoizedState;if(s!==null){var c=s.dehydrated;if(c!==null)return il(e,t,a,o,r,c,s,n)}return i?(zo(),i=r.fallback,a=t.mode,s=e.child,c=s.sibling,r=Ui(s,{mode:`hidden`,children:r.children}),r.subtreeFlags=s.subtreeFlags&1206910976,c===null?(i=Ki(i,a,n,null),i.flags|=2):i=Ui(c,i),i.return=t,r.return=t,r.sibling=i,t.child=r,Vc(null,r),r=t.child,i=e.child.memoizedState,i===null?i=Qc(n):(a=i.cachePool,a===null?a=$a():(s=Ia._currentValue,a=a.parent===s?a:{parent:s,pool:s}),i={baseLanes:i.baseLanes|n,cachePool:a}),r.memoizedState=i,r.childLanes=$c(e,o,n),t.memoizedState=Zc,Vc(e.child,r)):(Io(t),n=e.child,e=n.sibling,n=Ui(n,{mode:`visible`,children:r.children}),n.return=t,n.sibling=null,e!==null&&(o=t.deletions,o===null?(t.deletions=[e],t.flags|=16):o.push(e)),t.child=n,t.memoizedState=null,n)}function tl(e,t){return t=nl({mode:`visible`,children:t},e.mode),t.return=e,e.child=t}function nl(e,t){return e=Vi(22,e,null,t),e.lanes=0,e}function rl(e,t,n){return _o(t,e.child,null,n),e=tl(t,t.pendingProps.children),e.flags|=2,t.memoizedState=null,e}function il(e,t,n,r,a,o,s,c){if(n)return t.flags&256?(Io(t),t.flags&=-257,rl(e,t,c)):t.memoizedState===null?(zo(),o=a.fallback,s=t.mode,a=nl({mode:`visible`,children:a.children},s),o=Ki(o,s,c,null),o.flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,_o(t,e.child,null,c),a=t.child,a.memoizedState=Qc(c),a.childLanes=$c(e,r,c),t.memoizedState=Zc,Vc(null,a)):(zo(),t.child=e.child,t.flags|=128,null);if(Io(t),sm(o)){if(r=o.nextSibling&&o.nextSibling.dataset,r)var l=r.dgst;return r=l,r!==``&&(a=Error(i(419)),a.stack=``,a.digest=r,ya({value:a,source:null,stack:null})),rl(e,t,c)}if(Fc||Da(e,t,c,!1),r=(c&e.childLanes)!==0,Fc||r){if(Ao.current!==null)return rl(e,t,c);if(r=q,r!==null&&(a=wt(r,c),a!==0&&a!==s.retryLane))throw s.retryLane=a,Ii(e,a),Pd(r,e,a),Pc;return om(o)||Kd(),rl(e,t,c)}return om(o)?(t.flags|=192,t.child=e.child,null):(e=s.treeContext,N=lm(o.nextSibling),ua=t,P=!0,F=null,da=!1,e!==null&&M(t,e),t=tl(t,a.children),t.flags|=134221824,t)}function al(e,t,n){e.lanes|=t;var r=e.alternate;r!==null&&(r.lanes|=t),Ta(e.return,t,n)}function ol(e){for(var t=null;e!==null;){var n=e.alternate;n!==null&&Wo(n)===null&&(t=e),e=e.sibling}return t}function sl(e,t,n,r,i,a){var o=e.memoizedState;o===null?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:i,treeForkCount:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=i,o.treeForkCount=a)}function cl(e){var t=e.child;for(e.child=null;t!==null;){var n=t.sibling;t.sibling=e.child,e.child=t,t=n}}function ll(e,t,n){var r=t.pendingProps,i=r.revealOrder,a=r.tail;r=r.children;var o=Vo.current;if(t.flags&128)return Ho(t,o),null;var s=!!(o&2);if(s?(o=o&1|2,t.flags|=128):o&=1,Ho(t,o),i===`backwards`&&e!==null?(cl(e),Ic(e,t,r,n),cl(e)):Ic(e,t,r,n),r=P?ea:0,!s&&e!==null&&e.flags&128)a:for(e=t.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&al(e,n,t);else if(e.tag===19)al(e,n,t);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break a;for(;e.sibling===null;){if(e.return===null||e.return===t)break a;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(i){case`backwards`:n=ol(t.child),n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null,cl(t)),sl(t,!0,i,null,a,r);break;case`unstable_legacy-backwards`:for(n=null,i=t.child,t.child=null;i!==null;){if(e=i.alternate,e!==null&&Wo(e)===null){t.child=i;break}e=i.sibling,i.sibling=n,n=i,i=e}sl(t,!0,n,null,a,r);break;case`together`:sl(t,!1,null,null,void 0,r);break;case`independent`:t.memoizedState=null;break;default:n=ol(t.child),n===null?(i=t.child,t.child=null):(i=n.sibling,n.sibling=null),sl(t,!1,i,n,a,r)}return t.child}function ul(e,t,n){var r=t.pendingProps;return Ca(t,t.type,r.value),Ic(e,t,r.children,n),t.child}function dl(e,t,n){if(e!==null&&(t.dependencies=e.dependencies),od|=t.lanes,(n&t.childLanes)===0){if(e!==null){if(Da(e,t,n,!1),(n&t.childLanes)===0)return null}else return null}if(e!==null&&t.child!==e.child)throw Error(i(153));if(t.child!==null){for(e=t.child,n=Ui(e,e.pendingProps),t.child=n,n.return=t;e.sibling!==null;)e=e.sibling,n=n.sibling=Ui(e,e.pendingProps),n.return=t;n.sibling=null}return t.child}
vendor: 3,222 bytes, line 8
8function fl(e,t){return(e.lanes&t)!==0||(e=e.dependencies,!!(e!==null&&Oa(e)))}function pl(e,t,n){switch(t.tag){case 3:Me(t,t.stateNode.containerInfo),Ca(t,Ia,e.memoizedState.cache),_a();break;case 27:case 5:Pe(t);break;case 4:Me(t,t.stateNode.containerInfo);break;case 10:Ca(t,t.type,t.memoizedProps.value);break;case 31:if(t.memoizedState!==null)return t.flags|=128,Lo(t),null;break;case 13:var r=t.memoizedState;if(r!==null){if(r.dehydrated!==null)return Io(t),t.flags|=128,null;r=Da(e,t,n,!1);var i=t.child.childLanes;return r||(n&i)!==0?el(e,t,n):(Io(t),e=dl(e,t,n),e===null?null:e.sibling)}Io(t);break;case 19:if(t.flags&128)return ll(e,t,n);if(i=!!(e.flags&128),r=(n&t.childLanes)!==0,r||=(Da(e,t,n,!1),(n&t.childLanes)!==0),i){if(r)return ll(e,t,n);t.flags|=128}if(i=t.memoizedState,i!==null&&(i.rendering=null,i.tail=null,i.lastEffect=null),Ho(t,Vo.current),r)break;return null;case 22:return t.lanes=0,Bc(e,t,n,t.pendingProps);case 24:Ca(t,Ia,e.memoizedState.cache)}return dl(e,t,n)}function ml(e,t,n){if(e!==null){if(e.memoizedProps!==t.pendingProps)Fc=!0;else{if(!fl(e,n)&&!(t.flags&128))return Fc=!1,pl(e,t,n);Fc=!!(e.flags&131072)}}else Fc=!1,P&&t.flags&1048576&&sa(t,ea,t.index);switch(t.lanes=0,t.tag){case 16:a:{var r=t.pendingProps;if(e=oo(t.elementType),t.type=e,typeof e==`function`)Hi(e)?(r=wc(e,r),t.tag=1,t=Yc(null,t,e,r,n)):(t.tag=0,t=qc(null,t,e,r,n));else{if(e!=null){var a=e.$$typeof;if(a===le){t.tag=11,t=Lc(null,t,e,r,n);break a}if(a===fe){t.tag=14,t=Rc(null,t,e,r,n);break a}if(a===ce){t.tag=10,t.type=e,t=ul(null,t,n);break a}}throw t=Se(e)||e,Error(i(306,t,``))}}return t;case 0:return qc(e,t,t.type,t.pendingProps,n);case 1:return r=t.type,a=wc(r,t.pendingProps),Yc(e,t,r,a,n);case 3:a:{if(Me(t,t.stateNode.containerInfo),e===null)throw Error(i(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,bo(e,t),Do(t,r,null,n);var s=t.memoizedState;if(r=s.cache,Ca(t,Ia,r),r!==o.cache&&Ea(t,[Ia],n,!0),Eo(),r=s.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:s.cache},t.updateQueue.baseState=o,t.memoizedState=o,t.flags&256){t=Xc(e,t,r,n);break a}if(r!==a){a=Xi(Error(i(424)),t),ya(a),t=Xc(e,t,r,n);break a}switch(e=t.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName===`HTML`?e.ownerDocument.body:e}for(N=lm(e.firstChild),ua=t,P=!0,F=null,da=!0,n=vo(t,null,r,n),t.child=n;n;)n.flags=n.flags&-3|134221824,n=n.sibling}else{if(_a(),r===a){t=dl(e,t,n);break a}Ic(e,t,r,n)}t=t.child}return t;case 26:return Kc(e,t),e===null?(n=Nm(t.type,null,t.pendingProps,null))?t.memoizedState=n:P||(t.stateNode=fp(t.type,t.pendingProps,Ae.current,t)):t.memoizedState=Nm(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return Pe(t),e===null&&P&&(r=t.stateNode=hm(t.type,t.pendingProps,Ae.current),ua=t,da=!0,a=N,Sp(t.type)?(um=a,N=lm(r.firstChild)):N=a),Ic(e,t,t.pendingProps.children,n),Kc(e,t),e===null&&(t.flags|=4194304),t.child;case 5:return e===null&&P&&((a=r=N)&&(r=rm(r,t.type,t.pendingProps,da),r===null?a=!1:(t.stateNode=r,ua=t,N=lm(r.firstChild),da=!1,a=!0)),a||pa(t)),Pe(t),a=t.type,o=t.pendingProps,s=e===null?null:e.memoizedProps,r=o.children,pp(a,o)?r=null:s!==null&&pp(a,s)&&(t.flags|=32),t.memoizedState!==null&&(a=B(e,t,is,null,
8null,n),sh._currentValue=a),Kc(e,t),Ic(e,t,r,n),t.child;case 6:return e===null&&P&&((e=n=N)&&(n=im(n,t.pendingProps,da),n===null?e=!1:(t.stateNode=n,ua=t,N=null,e=!0)),e||pa(t)),null;case 13:return el(e,t,n);case 4:return Me(t,t.stateNode.containerInfo),r=t.pendingProps,e===null?t.child=_o(t,null,r,n):Ic(e,t,r,n),t.child;case 11:return Lc(e,t,t.type,t.pendingProps,n);case 7:return r=t.pendingProps,Kc(e,t),Ic(e,t,r,n),t.child;case 8:return Ic(e,t,t.pendingProps.children,n),t.child;case 12:return Ic(e,t,t.pendingProps.children,n),t.child;case 10:return ul(e,t,n);case 9:return a=t.type._context,r=t.pendingProps.children,ka(t),a=Aa(a),r=r(a),t.flags|=1,Ic(e,t,r,n),t.child;case 14:return Rc(e,t,t.type,t.pendingProps,n);case 15:return zc(e,t,t.type,t.pendingProps,n);case 19:return ll(e,t,n);case 31:return Gc(e,t,n);case 22:return Bc(e,t,n,t.pendingProps);case 24:return ka(t),r=Aa(Ia),e===null?(a=Za(),a===null&&(a=q,o=La(),a.pooledCache=o,o.refCount++,o!==null&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},yo(t),Ca(t,Ia,a)):((e.lanes&n)!==0&&(bo(e,t),Do(t,null,null,n),Eo()),a=e.memoizedState,o=t.memoizedState,a.parent===r?(r=o.cache,Ca(t,Ia,r),r!==a.cache&&Ea(t,[Ia],n,!0)):(a={parent:r,cache:r},t.memoizedState=a,t.lanes===0&&(t.memoizedState=t.updateQueue.baseState=a),Ca(t,Ia,r))),Ic(e,t,t.pendingProps.children,n),t.child;case 30:return t.stateNode===null&&(t.stateNode={autoName:null,paired:null,clones:null,ref:null}),r=t.pendingProps,r.name!=null&&r.name!==`auto`?t.flags|=e===null?18882560:18874368:P&&ca(t),e!==null&&e.memoizedProps.name!==r.name?t.flags|=4194816:Kc(e,t),Ic(e,t,r.children,n),t.child;case 29:throw t.pendingProps}throw Error(i(156,t.tag))}function hl(e){e.flags|=4}function gl(e,t,n,r,i){var a;if((a=!!(e.mode&32))&&(a=n===null?Jm(t,r):Jm(t,r)&&(r.src!==n.src||r.srcSet!==n.srcSet)),a){if(e.flags|=16777216,(i&335544128)===i){if(e.stateNode.complete)e.flags|=8192;else if(Ud())e.flags|=8192;else throw so=ro,to}}else e.flags&=-16777217}function _l(e,t){if(t.type!==`stylesheet`||t.state.loading&4)e.flags&=-16777217;else if(e.flags|=16777216,!Ym(t)){if(Ud())e.flags|=8192;else throw so=ro,to}}function vl(e,t){t!==null&&(e.flags|=4),e.flags&16384&&(t=e.tag===22?536870912:vt(),e.lanes|=t,ud|=t)}function yl(e,t){if(!P)switch(e.tailMode){case`visible`:break;case`collapsed`:for(var n=e.tail,r=null;n!==null;)n.alternate!==null&&(r=n),n=n.sibling;r===null?t||e.tail===null?e.tail=null:e.tail.sibling=null:r.sibling=null;break;default:for(t=e.tail,n=null;t!==null;)t.alternate!==null&&(n=t),t=t.sibling;n===null?e.tail=null:n.sibling=null}}function H(e){var t=e.alternate!==null&&e.alternate.child===e.child,n=0,r=0;if(t)for(var i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags&1206910976,r|=i.flags&1206910976,i.return=e,i=i.sibling;else for(i=e.child;i!==null;)n|=i.lanes|i.childLanes,r|=i.subtreeFlags,r|=i.flags,i.return=e,i=i.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function bl(e,t,n){var r=t.pendingProps;switch(la(t),t.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return H(t),null;case 1:return H(t),null;case 3:return n=t.stateNode,r=null,e!==null&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),wa(Ia),Ne(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),(e===null||e.child===null)&&(ga(t)?hl(t):e===null||e.memoizedState.isDehydrated&&!(t.flags&256)||(t.flags|=1024,va())),H(t),null;case 26:var a=t.type,o=t.memoizedState;return e===null?(hl(t),o===null?(H(t),gl(t,a,null,r,n)):(H(t),_l(t,o))):o?o===e.memoizedState?(H(t),t.flags&=-16777217):(hl(t),H(t),_l(t,o)):(e=e.memoizedProps,e!==r&&hl(t),H(t),gl(t,a,e,r,n)),null;case 27:if(Fe(t),n=Ae.current,a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&hl(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return H(t),t.subtreeFlags&=-33554433,null}e=Oe.current,ga(t)?ma(t,e):(e=hm(a,r,n),t.stateNode=e,hl(t))}return H(t),t.subtreeFlags&=-33554433,null;case 5:if(Fe(t),a=t.type,e!==null&&t.stateNode!=null)e.memoizedProps!==r&&hl(t);else{if(!r){if(t.stateNode===null)throw Error(i(166));return H(t),t.subtreeFlags&=-33554433,null}if(o=Oe.current,ga(t))ma(t,o);else{var s=lp(Ae.current);switch(o){case 1:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;
vendor: 5,096 bytes, line 8
8case 2:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;default:switch(a){case`svg`:o=s.createElementNS(`http://www.w3.org/2000/svg`,a);break;case`math`:o=s.createElementNS(`http://www.w3.org/1998/Math/MathML`,a);break;case`script`:o=s.createElement(`div`),o.innerHTML=`<script><\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(a,{is:r.is}):s.createElement(a)}}o[At]=t,o[jt]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(np(o,a,r),a){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&hl(t)}}return H(t),t.subtreeFlags&=-33554433,gl(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&hl(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(i(166));if(e=Ae.current,ga(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,a=ua,a!==null)switch(a.tag){case 27:case 5:r=a.memoizedProps}e[At]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||ep(e.nodeValue,n)),e||pa(t,!0)}else e=lp(e).createTextNode(r),e[At]=t,t.stateNode=e}return H(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=ga(t),n!==null){if(e===null){if(!r)throw Error(i(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(i(557));e[At]=t}else _a(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;H(t),e=!1}else n=va(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Bo(t),t):(Bo(t),null);if(t.flags&128)throw Error(i(558))}return H(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(a=ga(t),r!==null&&r.dehydrated!==null){if(e===null){if(!a)throw Error(i(318));if(a=t.memoizedState,a=a===null?null:a.dehydrated,!a)throw Error(i(317));a[At]=t}else _a(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;H(t),a=!1}else a=va(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),a=!0;if(!a)return t.flags&256?(Bo(t),t):(Bo(t),null)}return Bo(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,a=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(a=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==a&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),vl(t,t.updateQueue),H(t),null);case 4:return Ne(),e===null&&Wf(t.stateNode.containerInfo),t.flags|=67108864,H(t),null;case 10:return wa(t.type),H(t),null;case 19:if(Uo(t),r=t.memoizedState,r===null)return H(t),null;if(a=!!(t.flags&128),o=r.rendering,o===null){if(a)yl(r,!1);else{if(ad!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=Wo(e),o!==null){for(t.flags|=128,yl(r,!1),e=o.updateQueue,t.updateQueue=e,vl(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)Wi(n,e),n=n.sibling;return Ho(t,Vo.current&1|2),P&&oa(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Je()>gd&&(t.flags|=128,a=!0,yl(r,!1),t.lanes=4194304)}}else{if(!a){if(e=Wo(o),e!==null){if(t.flags|=128,a=!0,e=e.updateQueue,t.updateQueue=e,vl(t,e),yl(r,!0),r.tail===null&&r.tailMode!==`collapsed`&&r.tailMode!==`visible`&&!o.alternate&&!P)return H(t),null}else 2*Je()-r.renderingStartTime>gd&&n!==536870912&&(t.flags|=128,a=!0,yl(r,!1),t.lanes=4194304)}r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}if(r.tail!==null){e=r.tail;a:{for(n=e;n!==null;){if(n.alternate!==null){n=!1;break a}n=n.sibling}n=!0}return r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Je(),e.sibling=null,o=Vo.current,o=a?o&1|2:o&1,r.tailMode===`visible`||r.tailMode===`collapsed`||!n||P?Ho(t,o):(n=o,O(L,t),O(Vo,n),Fo===null&&(Fo=t)),P&&oa(t,r.treeForkCount),e}return H(t),null;case 22:case 23:return Bo(t),Po(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(H(t),t.subtreeFlags&6&&(t.flags|=8192)):H(t),n=t.updateQueue,n!==null&&vl(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&De(Xa),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),wa(Ia),H(t),null;case 25:return null;case 30:return t.flags|=33554432,H(t),null}throw Error(i(156,t.tag))}function xl(e,t){switch(la(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;
vendor: 4,828 bytes, line 8
8case 3:return wa(Ia),Ne(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return Fe(t),null;case 31:if(t.memoizedState!==null){if(Bo(t),t.alternate===null)throw Error(i(340));_a()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Bo(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(i(340));_a()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return Uo(t),e=t.flags,e&65536?(t.flags=e&-65537|128,e=t.memoizedState,e!==null&&(e.rendering=null,e.tail=null),t.flags|=4,t):null;case 4:return Ne(),null;case 10:return wa(t.type),null;case 22:case 23:return Bo(t),Po(),e!==null&&De(Xa),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return wa(Ia),null;case 25:return null;default:return null}}function Sl(e,t){switch(la(t),t.tag){case 3:wa(Ia),Ne();break;case 26:case 27:case 5:Fe(t);break;case 4:Ne();break;case 31:t.memoizedState!==null&&Bo(t);break;case 13:Bo(t);break;case 19:Uo(t);break;case 10:wa(t.type);break;case 22:case 23:Bo(t),Po(),e!==null&&De(Xa);break;case 24:wa(Ia)}}function Cl(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Z(t,t.return,e)}}function wl(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Z(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Z(t,t.return,e)}}function Tl(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{ko(t,n)}catch(t){Z(e,e.return,t)}}}function El(e,t,n){n.props=wc(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Z(e,t,n)}}function U(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:var i=e.stateNode,a=Ei(e.memoizedProps,i);(i.ref===null||i.ref.name!==a)&&(i.ref=Pp(a)),r=i.ref;break;case 7:if(e.stateNode===null){var o=new Fp(e);f(e.child,!1,Qp,o,void 0,void 0),e.stateNode=o}r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Z(e,t,n)}}function Dl(e,t){var n=e.ref,r=e.refCleanup;if(n!==null){if(typeof r==`function`)try{r()}catch(n){Z(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Z(e,t,n)}else n.current=null}}function Ol(e,t){if((e.tag===5||e.tag===27||e.tag===6)&&e.alternate===null&&t!==null)for(var n=0;n<t.length;n++)em(e.stateNode,t[n])}function kl(e){for(var t=e.return;t!==null&&(Ml(t)&&em(e.stateNode,t.stateNode),!jl(t));)t=t.return}function Al(e){for(var t=e.return;t!==null&&(Ml(t)&&tm(e.stateNode,t.stateNode),!jl(t));)t=t.return}function jl(e){return e.tag===5||e.tag===3||e.tag===27}function Ml(e){return e&&e.tag===7&&e.stateNode!==null}function Nl(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Z(e,e.return,t)}}function Pl(e,t,n){try{var r=e.stateNode;ip(r,e.type,n,t),r[jt]=t}catch(t){Z(e,e.return,t)}}function Fl(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Sp(e.type)||e.tag===4}function Il(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Fl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Sp(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Ll(e,t,n,r){var i=e.tag;if(i===5||i===6)i=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(i,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(i),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=On)),Ol(e,r),k=!0;else if(i!==4&&(i===27&&(Ol(e,r),r=null,Sp(e.type)&&(n=e.stateNode,t=null)),e=e.child,e!==null))for(Ll(e,t,n,r),e=e.sibling;e!==null;)Ll(e,t,n,r),e=e.sibling}function Rl(e,t,n,r){var i=e.tag;if(i===5||i===6)i=e.stateNode,t?n.insertBefore(i,t):n.appendChild(i),Ol(e,r),k=!0;else if(i!==4&&(i===27&&(Ol(e,r),r=null,Sp(e.type)&&(n=e.stateNode)),e=e.child,e!==null))for(Rl(e,t,n,r),e=e.sibling;e!==null;)Rl(e,t,n,r),e=e.sibling}function zl(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);np(t,r,n),t[At]=e,t[jt]=n}catch(t){Z(e,e.return,t)}}var Bl=!1,Vl=null;function Hl(e){(e.tag===30||e.subtreeFlags&33554432)&&(Bl=!0)}var Ul=null;function Wl(){var e=Ul;return Ul=null,e}var Gl=0;function Kl(e,t,n,r,i){return Gl=0,ql(e.child,t,n,r,i)}function ql(e,t,n,r,i){for(var a=!1;
8e!==null;){if(e.tag===5){var o=e.stateNode;if(r!==null){var s=Op(o);r.push(s),s.view&&(a=!0)}else a||Op(o).view&&(a=!0);Bl=!0,Tp(o,Gl===0?t:t+`_`+Gl,n),Gl++}else(e.tag!==22||e.memoizedState===null)&&(e.tag===30&&i||ql(e.child,t,n,r,i)&&(a=!0));e=e.sibling}return a}function Jl(e,t){for(;e!==null;)e.tag===5?Ep(e.stateNode,e.memoizedProps):(e.tag!==22||e.memoizedState===null)&&(e.tag===30&&t||Jl(e.child,t)),e=e.sibling}function Yl(e){if(e.subtreeFlags&18874368)for(e=e.child;e!==null;){if((e.tag!==22||e.memoizedState===null)&&(Yl(e),e.tag===30&&e.flags&18874368&&e.stateNode.paired)){var t=e.memoizedProps;if(t.name==null||t.name===`auto`)throw Error(i(544));var n=t.name;t=Oi(t.default,t.share),t!==`none`&&(Kl(e,n,t,null,!1)||Jl(e.child,!1))}e=e.sibling}}function Xl(e,t){if(e.tag===30){var n=e.stateNode,r=e.memoizedProps,i=Ei(r,n),a=Oi(r.default,n.paired?r.share:r.enter);a===`none`?Yl(e):Kl(e,i,a,null,!1)?(Yl(e),n.paired||t||Nd(e,r.onEnter)):Jl(e.child,!1)}else if(e.subtreeFlags&33554432)for(e=e.child;e!==null;)Xl(e,t),e=e.sibling;else Yl(e)}function Zl(e){if(Vl!==null&&Vl.size!==0){var t=Vl;if(e.subtreeFlags&18874368)for(e=e.child;e!==null;){if(e.tag!==22||e.memoizedState===null){if(e.tag===30&&e.flags&18874368){var n=e.memoizedProps,r=n.name;if(r!=null&&r!==`auto`){var i=t.get(r);if(i!==void 0){var a=Oi(n.default,n.share);if(a!==`none`&&(Kl(e,r,a,null,!1)?(a=e.stateNode,i.paired=a,a.paired=i,Nd(e,n.onShare)):Jl(e.child,!1)),t.delete(r),t.size===0)break}}}Zl(e)}e=e.sibling}}}function Ql(e){if(e.tag===30){var t=e.memoizedProps,n=Ei(t,e.stateNode),r=Vl===null?void 0:Vl.get(n),i=Oi(t.default,r===void 0?t.exit:t.share);i!==`none`&&(Kl(e,n,i,null,!1)?r===void 0?Nd(e,t.onExit):(i=e.stateNode,r.paired=i,i.paired=r,Vl.delete(n),Nd(e,t.onShare)):Jl(e.child,!1)),Vl!==null&&Zl(e)}else if(e.subtreeFlags&33554432)for(e=e.child;e!==null;)Ql(e),e=e.sibling;else Vl!==null&&Zl(e)}function $l(e){for(e=e.child;e!==null;){if(e.tag===30){var t=e.memoizedProps,n=Ei(t,e.stateNode);t=Oi(t.default,t.update),e.flags&=-5,t!==`none`&&Kl(e,n,t,e.memoizedState=[],!1)}else e.subtreeFlags&33554432&&$l(e);e=e.sibling}}function eu(e){if(e.subtreeFlags&18874368)for(e=e.child;e!==null;){if(e.tag!==22||e.memoizedState===null){if(e.tag===30&&e.flags&18874368){var t=e.stateNode;t.paired!==null&&(t.paired=null,Jl(e.child,!1))}eu(e)}e=e.sibling}}function tu(e){if(e.tag===30)e.stateNode.paired=null,Jl(e.child,!1),eu(e);else if(e.subtreeFlags&33554432)for(e=e.child;e!==null;)tu(e),e=e.sibling;else eu(e)}function nu(e){for(e=e.child;e!==null;)e.tag===30?Jl(e.child,!1):e.subtreeFlags&33554432&&nu(e),e=e.sibling}function ru(e,t,n,r,i,a,o){for(var s=!1;t!==null;){if(t.tag===5){var c=t.stateNode;if(a!==null&&Gl<a.length){var l=a[Gl],u=Op(c);(l.view||u.view)&&(s=!0);var d;if(d=!(e.flags&4)){if(u.clip)d=!0;else{d=l.rect;var f=u.rect;d=d.y!==f.y||d.x!==f.x||d.height!==f.height||d.width!==f.width}}d&&(e.flags|=4),u.abs?u=!l.abs:(l=l.rect,u=u.rect,u=l.height!==u.height||l.width!==u.width),u&&(e.flags|=32)}else e.flags|=32;e.flags&4&&Tp(c,Gl===0?n:n+`_`+Gl,i),s&&e.flags&4||(Ul===null&&(Ul=[]),Ul.push(c,Gl===0?r:r+`_`+Gl,t.memoizedProps)),Gl++}else(t.tag!==22||t.memoizedState===null)&&(t.tag===30&&o?e.flags|=t.flags&32:ru(e,t.child,n,r,i,a,o)&&(s=!0));t=t.sibling}return s}function iu(e,t){for(e=e.child;e!==null;){if(e.tag===30){var n=e.memoizedProps,r=e.stateNode,i=Ei(n,r),a=Oi(n.default,n.update);if(t){r=r.clones;var o=r===null?null:r.map(kp)}else o=e.memoizedState,e.memoizedState=null;r=e;var s=e.child;Gl=0,i=ru(r,s,i,i,a,o,!1),e.flags&4&&i&&(t||Nd(e,n.onUpdate))}else e.subtreeFlags&33554432&&iu(e,t);e=e.sibling}}var au=!1,W=!1,ou=!1,su=!1,cu=typeof WeakSet==`function`?WeakSet:Set,lu=null,uu=!1,du=!1,fu=!1,pu=!1;function mu(e,t,n){if(e=e.containerInfo,sp=gh,e=ni(e),ri(e)){if(`selectionStart`in e)var r={start:e.selectionStart,end:e.selectionEnd};else a:{r=(r=e.ownerDocument)&&r.defaultView||window;var i=r.getSelection&&r.getSelection();if(i&&i.rangeCount!==0){r=i.anchorNode;var a=i.anchorOffset,o=i.focusNode;i=i.focusOffset;try{r.nodeType,o.nodeType}catch{r=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==r||a!==0&&f.nodeType!==3||(c=s+a),f!==o||i!==0&&f.nodeType!==3||(l=s+i),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===r&&++u===a&&(c=s),p===o&&++d===i&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}r=c===-1||l===-1?null:{start:c,end:l}}else r=null}r||={start:0,end:0}}else r=null;for(cp={focusedElem:e,selectionRange:r},gh=!1,n=(n&335544064)===n,lu=t,t=n?9270:1024;lu!==null;){if(e=lu,n&&(r=e.deletions,r!==null))for(a=0;a<r.length;a++)n&&Ql(r[a]);if(e.alternate===null&&e.flags&2)n&&Hl(e),hu(n);else{if(e.tag===22){if(r=e.alternate,e.memoizedState!==null){r!==null&&r.memoizedState===null&&n&&Ql(r),hu(n);continue}if(r!==null&&r.memoizedState!==null){n&&Hl(e),hu(n);continue}}r=e.child,(e.subtreeFlags&t)!==0&&r!==null?(r.return=e,lu=r):(n&&$l(e),hu(n))}}Vl=null}function hu(e){for(;lu!==null;){var t=lu,n=e,r=t.alternate,a=t.flags;switch(t.tag){case 0:case 11:case 15:break;case 1:if(a&1024&&r!==null){n=void 0,a=r.memoizedProps,r=r.memoizedState;var o=t.stateNode;try{var s=wc(t.type,a);n=o.getSnapshotBeforeUpdate(s,r),o.__reactInternalSnapshotBeforeUpdate=n}catch(e){Z(t,t.return,e)}}break;
vendor: 18,717 bytes, line 8
8case 3:if(a&1024){if(r=t.stateNode.containerInfo,n=r.nodeType,n===9)nm(r);else if(n===1)switch(r.nodeName){case`HEAD`:case`HTML`:case`BODY`:nm(r);break;default:r.textContent=``}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;case 30:n&&r!==null&&(n=Ei(r.memoizedProps,r.stateNode),a=t.memoizedProps,a=Oi(a.default,a.update),a!==`none`&&Kl(r,n,a,r.memoizedState=[],!0));break;default:if(a&1024)throw Error(i(163))}if(r=t.sibling,r!==null){r.return=t.return,lu=r;break}lu=t.return}}function gu(e,t,n){var r=n.flags;switch(n.tag){case 0:case 11:case 15:Fu(e,n),r&4&&Cl(5,n);break;case 1:if(Fu(e,n),r&4){if(e=n.stateNode,t===null)try{e.componentDidMount()}catch(e){Z(n,n.return,e)}else{var i=wc(n.type,t.memoizedProps);t=t.memoizedState;try{e.componentDidUpdate(i,t,e.__reactInternalSnapshotBeforeUpdate)}catch(e){Z(n,n.return,e)}}}r&64&&Tl(n),r&512&&U(n,n.return);break;case 3:if(Fu(e,n),r&64&&(e=n.updateQueue,e!==null)){if(t=null,n.child!==null)switch(n.child.tag){case 27:case 5:t=n.child.stateNode;break;case 1:t=n.child.stateNode}try{ko(e,t)}catch(e){Z(n,n.return,e)}}break;case 27:t===null&&r&4&&zl(n);case 26:case 5:Fu(e,n),t===null&&r&4&&Nl(n),r&512&&U(n,n.return);break;case 12:Fu(e,n);break;case 31:Fu(e,n),r&4&&wu(e,n);break;case 13:Fu(e,n),r&4&&Tu(e,n),r&64&&(e=n.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(n=_f.bind(null,n),cm(e,n))));break;case 22:if(r=n.memoizedState!==null||au,!r){var a=t!==null&&t.memoizedState!==null||W;t=au,i=W,au=r,(W=a)&&!i?(r=2,n.subtreeFlags&8772&&(r|=1),Lu(e,n,r)):Fu(e,n),au=t,W=i}break;case 30:Fu(e,n),r&512&&U(n,n.return);break;case 7:r&512&&U(n,n.return);default:Fu(e,n)}}function _u(e,t){for(e=e.child;e!==null;)vu(e,t),e=e.sibling}function vu(e,t){switch(e.tag){case 5:case 26:try{var n=e.stateNode;if(t){var r=n.style;typeof r.setProperty==`function`?r.setProperty(`display`,`none`,`important`):r.display=`none`}else{var i=e.stateNode,a=e.memoizedProps.style,o=a!=null&&a.hasOwnProperty(`display`)?a.display:null;i.style.display=o==null||typeof o==`boolean`?``:(``+o).trim()}}catch(t){Z(e,e.return,t)}yu(e,t);break;case 6:try{e.stateNode.nodeValue=t?``:e.memoizedProps,k=!0}catch(t){Z(e,e.return,t)}break;case 18:try{var s=e.stateNode;t?wp(s,!0):wp(e.stateNode,!1)}catch(t){Z(e,e.return,t)}break;case 22:case 23:e.memoizedState===null&&_u(e,t);break;default:_u(e,t)}}function yu(e,t){if(e.subtreeFlags&67108864)for(e=e.child;e!==null;){a:{var n=e,r=t;switch(n.tag){case 4:vu(n,r);break a;case 22:n.memoizedState===null&&yu(n,r);break a;default:yu(n,r)}}e=e.sibling}}function bu(e){var t=e.alternate;t!==null&&(e.alternate=null,bu(t)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(t=e.stateNode,t!==null&&zt(t)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var G=null,xu=!1;function Su(e,t,n){for(n=n.child;n!==null;)Cu(e,t,n),n=n.sibling}function Cu(e,t,n){if(it&&typeof it.onCommitFiberUnmount==`function`)try{it.onCommitFiberUnmount(rt,n)}catch{}switch(n.tag){case 26:W||Dl(n,t),Su(e,t,n),n.memoizedState?n.memoizedState.count--:n.stateNode&&!W&&(n=n.stateNode,n.parentNode.removeChild(n));break;case 27:W||Dl(n,t),Al(n);var r=G,i=xu;Sp(n.type)&&(G=n.stateNode,xu=!1),Su(e,t,n),gm(n.stateNode,n.type,n.memoizedProps),G=r,xu=i;break;case 5:W||Dl(n,t),Al(n);case 6:if(n.tag===6&&Al(n),r=G,i=xu,G=null,Su(e,t,n),G=r,xu=i,G!==null){if(xu)try{(G.nodeType===9?G.body:G.nodeName===`HTML`?G.ownerDocument.body:G).removeChild(n.stateNode),k=!0}catch(e){Z(n,t,e)}else try{G.removeChild(n.stateNode),k=!0}catch(e){Z(n,t,e)}}break;case 18:G!==null&&(xu?(e=G,Cp(e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,n.stateNode),Hh(e)):Cp(G,n.stateNode));break;case 4:r=G,i=xu,G=n.stateNode.containerInfo,xu=!0,Su(e,t,n),G=r,xu=i;break;case 0:case 11:case 14:case 15:wl(2,n,t),W||wl(4,n,t),Su(e,t,n);break;case 1:W||(Dl(n,t),r=n.stateNode,typeof r.componentWillUnmount==`function`&&El(n,t,r)),Su(e,t,n);break;case 21:Su(e,t,n);break;case 22:W=(r=W)||n.memoizedState!==null,Su(e,t,n),W=r;break;case 30:Dl(n,t),Su(e,t,n);break;case 7:W||Dl(n,t),Su(e,t,n);break;default:Su(e,t,n)}}function wu(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Hh(e)}catch(e){Z(t,t.return,e)}}}function Tu(e,t){if(t.memoizedState===null&&(e=t.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Hh(e)}catch(e){Z(t,t.return,e)}}function Eu(e){switch(e.tag){case 31:case 13:case 19:var t=e.stateNode;return t===null&&(t=e.stateNode=new cu),t;case 22:return e=e.stateNode,t=e._retryCache,t===null&&(t=e._retryCache=new cu),t;default:throw Error(i(435,e.tag))}}function Du(e,t){var n=Eu(e);t.forEach(function(t){if(!n.has(t)){n.add(t);var r=vf.bind(null,e,t);t.then(r,r)}})}function Ou(e,t,n){var r=t.deletions;if(r!==null)for(var a=0;a<r.length;a++){var o=r[a],s=e,c=t,l=c;a:for(;l!==null;){switch(l.tag){case 27:if(Sp(l.type)){G=l.stateNode,xu=!1;break a}break;case 5:G=l.stateNode,xu=!1;break a;case 3:case 4:G=l.stateNode.containerInfo,xu=!0;break a}l=l.return}if(G===null)throw Error(i(160));Cu(s,c,o),G=null,xu=!1,s=o.alternate,s!==null&&(s.return=null),o.return=null}if(t.subtreeFlags&13886)for(t=t.child;t!==null;)Au(t,e,n),t=t.sibling}var ku=null;function Au(e,t,n){var r=e.alternate,a=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(a&4&&(r=e.updateQueue,r=r===null?null:r.events,r!==null))for(var o=0;o<r.length;o++){var s=r[o];s.ref.impl=s.nextImpl}Ou(t,e,n),ju(e),a&4&&(wl(3,e,e.return),Cl(3,e),wl(5,e,e.return));break;case 1:Ou(t,e,n),ju(e),a&512&&(W||r===null||Dl(r,r.return)),a&64&&au&&(e=e.updateQueue,e!==null&&(t=e.callbacks,t!==null&&(n=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=n===null?t:n.concat(t))));break;case 26:if(o=ku,Ou(t,e,n),ju(e),a&512&&(W||r===null||Dl(r,r.return)),a&4){if(a=r===null?null:r.memoizedState,n=e.memoizedState,r===null){if(n===null){if(e.stateNode===null){if(au)e.stateNode=fp(e.type,e.memoizedProps,t.containerInfo,e);else{a:{t=e.type,n=e.memoizedProps,a=o.ownerDocument||o;b:switch(t){case`title`:r=a.getElementsByTagName(`title`)[0],(!r||r[Lt]||r[At]||r.namespaceURI===`http://www.w3.org/2000/svg`||r.hasAttribute(`itemprop`))&&(r=a.createElement(t),a.head.insertBefore(r,a.querySelector(`head > title`))),np(r,t,n),r[At]=e,Wt(r),t=r;break a;case`link`:if(o=Gm(`link`,`href`,a).get(t+(n.href||``))){for(s=0;s<o.length;s++)if(r=o[s],r.getAttribute(`href`)===(n.href==null||n.href===``?null:n.href)&&r.getAttribute(`rel`)===(n.rel==null?null:n.rel)&&r.getAttribute(`title`)===(n.title==null?null:n.title)&&r.getAttribute(`crossorigin`)===(n.crossOrigin==null?null:n.crossOrigin)){o.splice(s,1);break b}}r=a.createElement(t),np(r,t,n),a.head.appendChild(r);break;case`meta`:if(o=Gm(`meta`,`content`,a).get(t+(n.content||``))){for(s=0;s<o.length;s++)if(r=o[s],r.getAttribute(`content`)===(n.content==null?null:``+n.content)&&r.getAttribute(`name`)===(n.name==null?null:n.name)&&r.getAttribute(`property`)===(n.property==null?null:n.property)&&r.getAttribute(`http-equiv`)===(n.httpEquiv==null?null:n.httpEquiv)&&r.getAttribute(`charset`)===(n.charSet==null?null:n.charSet)){o.splice(s,1);break b}}r=a.createElement(t),np(r,t,n),a.head.appendChild(r);break;default:throw Error(i(468,t))}r[At]=e,Wt(r),t=r}e.stateNode=t}}else au||Km(o,e.type,e.stateNode)}else e.stateNode=Bm(o,n,e.memoizedProps)}else a===n?n===null&&e.stateNode!==null&&Pl(e,e.memoizedProps,r.memoizedProps):(a===null?(t=r.stateNode,t===null||W||t.parentNode.removeChild(t)):a.count--,n===null?au||Km(o,e.type,e.stateNode):Bm(o,n,e.memoizedProps))}break;case 27:Ou(t,e,n),ju(e),a&512&&(W||r===null||Dl(r,r.return)),r!==null&&a&4&&Pl(e,e.memoizedProps,r.memoizedProps);break;case 5:if(o=ou,ou=!1,Ou(t,e,n),ou=o,ju(e),a&512&&(W||r===null||Dl(r,r.return)),e.flags&32){t=e.stateNode;try{bn(t,``),k=!0}catch(t){Z(e,e.return,t)}}a&4&&e.stateNode!=null&&(t=e.memoizedProps,Pl(e,t,r===null?t:r.memoizedProps)),a&1024&&(su=!0);break;case 6:if(Ou(t,e,n),ju(e),a&4){if(e.stateNode===null)throw Error(i(162));t=e.memoizedProps,n=e.stateNode;try{n.nodeValue=t,k=!0}catch(t){Z(e,e.return,t)}}break;case 3:if(k=!1,Wm=null,o=ku,ku=bm(t.containerInfo),Ou(t,e,n),ku=o,ju(e),a&4&&r!==null&&r.memoizedState.isDehydrated)try{Hh(t.containerInfo)}catch(t){Z(e,e.return,t)}su&&(su=!1,Mu(e)),k=!1;break;case 4:a=ou,ou=au,r=en(),o=ku,ku=bm(e.stateNode.containerInfo),Ou(t,e,n),ju(e),ku=o,k&&du&&(fu=!0),k=r,ou=a;break;case 12:Ou(t,e,n),ju(e);break;case 31:Ou(t,e,n),ju(e),a&4&&(t=e.updateQueue,t!==null&&(e.updateQueue=null,Du(e,t)));break;case 13:Ou(t,e,n),ju(e),e.child.flags&8192&&e.memoizedState!==null!=(r!==null&&r.memoizedState!==null)&&(md=Je()),a&4&&(t=e.updateQueue,t!==null&&(e.updateQueue=null,Du(e,t)));break;case 22:o=e.memoizedState!==null,s=r!==null&&r.memoizedState!==null;var c=au,l=W,u=ou;au=c||o,ou=u||o,W=l||s,Ou(t,e,n),W=l,ou=u,au=c,ju(e),a&8192&&(t=e.stateNode,t._visibility=o?t._visibility&-2:t._visibility|1,!o||r===null||s||au||W||(t=s||W,n=au,r=W,au=o||au,W=t,Iu(e,2),au=n,W=r),!o&&ou||_u(e,o)),a&4&&(t=e.updateQueue,t!==null&&(n=t.retryQueue,n!==null&&(t.retryQueue=null,Du(e,n))));break;case 19:Ou(t,e,n),ju(e),a&4&&(t=e.updateQueue,t!==null&&(e.updateQueue=null,Du(e,t)));break;case 30:a&512&&(W||r===null||Dl(r,r.return)),a=en(),o=du,s=(n&335544064)===n,c=e.memoizedProps,du=s&&Oi(c.default,c.update)!==`none`,Ou(t,e,n),ju(e),s&&r!==null&&k&&(e.flags|=4),du=o,k=a;break;case 21:break;case 7:a&512&&(W||r===null||Dl(r,r.return)),r&&r.stateNode!==null&&(r.stateNode._fragmentFiber=e);default:Ou(t,e,n),ju(e)}}function ju(e){var t=e.flags;if(t&2){try{for(var n,r=e.return;r!==null;){if(Fl(r)){n=r;break}r=r.return}r=null;for(var a=e.return;a!==null;){if(Ml(a)){var o=a.stateNode;r===null?r=[o]:r.push(o)}if(jl(a))break;a=a.return}var s=r;if(n==null)throw Error(i(160));switch(n.tag){case 27:var c=n.stateNode;Rl(e,Il(e),c,s);break;case 5:var l=n.stateNode;n.flags&32&&(bn(l,``),n.flags&=-33),Rl(e,Il(e),l,s);break;case 3:case 4:var u=n.stateNode.containerInfo;Ll(e,Il(e),u,s);break;default:throw Error(i(161))}}catch(t){Z(e,e.return,t)}e.flags&=-3}t&4096&&(e.flags&=-4097)}function Mu(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var t=e;Mu(t),t.tag===5&&t.flags&1024&&(t=t.stateNode,gh=!0,t.reset(),gh=!1),e=e.sibling}}function Nu(e,t){if(t.subtreeFlags&9270)for(t=t.child;t!==null;)Pu(t,e),t=t.sibling;else iu(t,!1)}function Pu(e,t){var n=e.alternate;if(n===null)Xl(e,!1);else switch(e.tag){case 3:if(pu=uu=!1,Wl(),Nu(t,e),!uu&&!fu){if(e=Ul,e!==null)for(var r=0;r<e.length;r+=3){n=e[r];var i=e[r+1];Ep(n,e[r+2]),n=n.ownerDocument.documentElement,n!==null&&n.animate({opacity:[0,0],pointerEvents:[`none`,`none`]},{duration:0,fill:`forwards`,pseudoElement:`::view-transition-group(`+i+`)`})}e=t.containerInfo,e=e.nodeType===9?e.documentElement:e.ownerDocument.documentElement,e!==null&&e.style.viewTransitionName===``&&(e.style.viewTransitionName=`none`,e.animate({opacity:[0,0],pointerEvents:[`none`,`none`]},{duration:0,fill:`forwards`,pseudoElement:`::view-transition-group(root)`}),e.animate({width:[0,0],height:[0,0]},{duration:0,fill:`forwards`,pseudoElement:`::view-transition`})),pu=!0}Ul=null;break;case 5:Nu(t,e);break;case 4:r=uu,uu=!1,Nu(t,e),uu&&(fu=!0),uu=r;break;case 22:e.memoizedState===null&&(n.memoizedState===null?Nu(t,e):Xl(e,!1));break;case 30:r=uu,i=Wl(),uu=!1,Nu(t,e),uu&&(e.flags|=4);var a=e.memoizedProps,o=e.stateNode;t=Ei(a,o),o=Ei(n.memoizedProps,o);var s=Oi(a.default,a.update);s===`none`?t=!1:(a=n.memoizedState,n.memoizedState=null,n=e.child,Gl=0,t=ru(e,n,t,o,s,a,!0),Gl!==(a===null?0:a.length)&&(e.flags|=32)),e.flags&4&&t?(Nd(e,e.memoizedProps.onUpdate),Ul=i):i!==null&&(i.push.apply(i,Ul),Ul=i),uu=e.flags&32?!0:r;break;default:Nu(t,e)}}function Fu(e,t){if(t.subtreeFlags&8772)for(t=t.child;t!==null;)gu(e,t.alternate,t),t=t.sibling}function Iu(e,t){for(e=e.child;e!==null;){var n=e,r=t;switch(n.tag){case 0:case 11:case 14:case 15:wl(4,n,n.return),Iu(n,r);break;case 1:Dl(n,n.return);var i=n.stateNode;typeof i.componentWillUnmount==`function`&&El(n,n.return,i),Iu(n,r);break;case 27:r&2&&gm(n.stateNode,n.type,n.memoizedProps);case 5:Dl(n,n.return),n.tag!==5&&n.tag!==27||Al(n),Iu(n,r);break;case 6:Al(n);break;case 26:Dl(n,n.return),i=n.stateNode,n.memoizedState!==null||i===null||W||i.parentNode.removeChild(i),Iu(n,r);break;case 22:n.memoizedState===null&&Iu(n,r);break;case 30:Dl(n,n.return),Iu(n,r);break;case 7:Dl(n,n.return);default:Iu(n,r)}e=e.sibling}}function Lu(e,t,n){for(n=t.subtreeFlags&8772?n:n&-2,t=t.child;t!==null;){var r=t.alternate,i=e,a=t,o=a.flags,s=!!(n&1);switch(a.tag){case 0:case 11:case 15:Lu(i,a,n),Cl(4,a);break;case 1:if(Lu(i,a,n),r=a,i=r.stateNode,typeof i.componentDidMount==`function`)try{i.componentDidMount()}catch(e){Z(r,r.return,e)}if(r=a,i=r.updateQueue,i!==null){var c=r.stateNode;try{var l=i.shared.hiddenCallbacks;if(l!==null)for(i.shared.hiddenCallbacks=null,i=0;i<l.length;i++)Oo(l[i],c)}catch(e){Z(r,r.return,e)}}s&&o&64&&Tl(a),U(a,a.return);break;case 27:n&2&&zl(a);case 5:a.tag!==5&&a.tag!==27||kl(a),Lu(i,a,n),s&&r===null&&o&4&&Nl(a),U(a,a.return);break;case 6:kl(a);break;case 26:c=a.stateNode,a.memoizedState!==null||c===null||au||Km(bm(c.ownerDocument),a.type,c),Lu(i,a,n),s&&r===null&&o&4&&Nl(a),U(a,a.return);break;case 12:Lu(i,a,n);break;case 31:Lu(i,a,n),s&&o&4&&wu(i,a);break;case 13:Lu(i,a,n),s&&o&4&&Tu(i,a);break;case 22:a.memoizedState===null&&Lu(i,a,n),U(a,a.return);break;case 30:Lu(i,a,n),U(a,a.return);break;case 7:U(a,a.return);default:Lu(i,a,n)}t=t.sibling}}function Ru(e,t){var n=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),e=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(e=t.memoizedState.cachePool.pool),e!==n&&(e!=null&&e.refCount++,n!=null&&Ra(n))}function zu(e,t){e=null,t.alternate!==null&&(e=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==e&&(t.refCount++,e!=null&&Ra(e))}function Bu(e,t,n,r){var i=(n&335544064)===n;if(t.subtreeFlags&(i?10262:10256))for(t=t.child;t!==null;)Vu(e,t,n,r),t=t.sibling;else i&&nu(t)}function Vu(e,t,n,r){var i=(n&335544064)===n;i&&t.alternate===null&&t.return!==null&&t.return.alternate!==null&&tu(t);var a=t.flags;switch(t.tag){case 0:case 11:case 15:Bu(e,t,n,r),a&2048&&Cl(9,t);break;case 1:Bu(e,t,n,r);break;case 3:Bu(e,t,n,r),i&&pu&&(e=e.containerInfo,e=e.nodeType===9?e.body:e.nodeName===`HTML`?e.ownerDocument.body:e,e.style.viewTransitionName===`root`&&(e.style.viewTransitionName=``),e=e.ownerDocument.documentElement,e!==null&&e.style.viewTransitionName===`none`&&(e.style.viewTransitionName=``)),a&2048&&(a=null,t.alternate!==null&&(a=t.alternate.memoizedState.cache),t=t.memoizedState.cache,t!==a&&(t.refCount++,a!=null&&Ra(a)));break;case 12:if(a&2048){Bu(e,t,n,r),a=t.stateNode;try{var o=t.memoizedProps,s=o.id,c=o.onPostCommit;typeof c==`function`&&c(s,t.alternate===null?`mount`:`update`,a.passiveEffectDuration,-0)}catch(e){Z(t,t.return,e)}}else Bu(e,t,n,r);break;case 31:Bu(e,t,n,r);break;case 13:Bu(e,t,n,r);break;case 23:break;case 22:o=t.stateNode,s=t.alternate,t.memoizedState===null?(i&&s!==null&&s.memoizedState!==null&&tu(t),o._visibility&2?Bu(e,t,n,r):(o._visibility|=2,Hu(e,t,n,r,!!(t.subtreeFlags&10256)||!1))):(i&&s!==null&&s.memoizedState===null&&tu(s),o._visibility&2?Bu(e,t,n,r):Uu(e,t)),a&2048&&Ru(s,t);break;case 24:Bu(e,t,n,r),a&2048&&zu(t.alternate,t);break;case 30:i&&(a=t.alternate,a!==null&&(Jl(a.child,!0),Jl(t.child,!0))),Bu(e,t,n,r);break;default:Bu(e,t,n,r)}}function Hu(e,t,n,r,i){for(i&&=!!(t.subtreeFlags&10256)||!1,t=t.child;t!==null;){var a=e,o=t,s=n,c=r,l=o.flags;switch(o.tag){case 0:case 11:case 15:Hu(a,o,s,c,i),Cl(8,o);break;case 23:break;case 22:var u=o.stateNode;o.memoizedState===null?(u._visibility|=2,Hu(a,o,s,c,i)):u._visibility&2?Hu(a,o,s,c,i):Uu(a,o),i&&l&2048&&Ru(o.alternate,o);break;case 24:Hu(a,o,s,c,i),i&&l&2048&&zu(o.alternate,o);break;default:Hu(a,o,s,c,i)}t=t.sibling}}function Uu(e,t){if(t.subtreeFlags&10256)for(t=t.child;t!==null;){var n=e,r=t,i=r.flags;switch(r.tag){case 22:Uu(n,r),i&2048&&Ru(r.alternate,r);break;case 24:Uu(n,r),i&2048&&zu(r.alternate,r);break;default:Uu(n,r)}t=t.sibling}}var Wu=8192;function Gu(e,t,n){if(e.subtreeFlags&Wu)for(e=e.child;e!==null;)Ku(e,t,n),e=e.sibling}function Ku(e,t,n){switch(e.tag){case 26:Gu(e,t,n),e.flags&Wu&&(e.memoizedState===null?(e=e.stateNode,(t&335544128)===t&&Zm(n,e)):Qm(n,ku,e.memoizedState,e.memoizedProps));break;case 5:Gu(e,t,n),e.flags&Wu&&(e=e.stateNode,(t&335544128)===t&&Zm(n,e));break;case 3:case 4:var r=ku;ku=bm(e.stateNode.containerInfo),Gu(e,t,n),ku=r;break;case 22:e.memoizedState===null&&(r=e.alternate,r!==null&&r.memoizedState!==null?(r=Wu,Wu=16777216,Gu(e,t,n),Wu=r):Gu(e,t,n));break;case 30:if((e.flags&Wu)!==0&&(r=e.memoizedProps.name,r!=null&&r!==`auto`)){var i=e.stateNode;i.paired=null,Vl===null&&(Vl=new Map),Vl.set(r,i)}Gu(e,t,n);break;default:Gu(e,t,n)}}function qu(e){var t=e.alternate;if(t!==null&&(e=t.child,e!==null)){t.child=null;do t=e.sibling,e.sibling=null,e=t;while(e!==null)}}function Ju(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];lu=r,Zu(r,e)}qu(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Yu(e),e=e.sibling}function Yu(e){switch(e.tag){case 0:case 11:case 15:Ju(e),e.flags&2048&&wl(9,e,e.return);break;case 3:Ju(e);break;case 12:Ju(e);break;case 22:var t=e.stateNode;e.memoizedState!==null&&t._visibility&2&&(e.return===null||e.return.tag!==13)?(t._visibility&=-3,Xu(e)):Ju(e);break;default:Ju(e)}}function Xu(e){var t=e.deletions;if(e.flags&16){if(t!==null)for(var n=0;n<t.length;n++){var r=t[n];lu=r,Zu(r,e)}qu(e)}for(e=e.child;e!==null;){switch(t=e,t.tag){case 0:case 11:case 15:wl(8,t,t.return),Xu(t);break;case 22:n=t.stateNode,n._visibility&2&&(n._visibility&=-3,Xu(t));break;default:Xu(t)}e=e.sibling}}function Zu(e,t){for(;lu!==null;){var n=lu;switch(n.tag){case 0:case 11:case 15:wl(8,n,t);break;case 23:case 22:if(n.memoizedState!==null&&n.memoizedState.cachePool!==null){var r=n.memoizedState.cachePool.pool;r!=null&&r.refCount++}break;case 24:Ra(n.memoizedState.cache)}if(r=n.child,r!==null)r.return=n,lu=r;else a:for(n=e;lu!==null;){r=lu;var i=r.sibling,a=r.return;if(bu(r),r===n){lu=null;break a}if(i!==null){i.return=a,lu=i;break a}lu=a}}}var Qu={getCacheForType:function(e){var t=Aa(Ia),n=t.data.get(e);return n===void 0&&(n=e(),t.data.set(e,n)),n},cacheSignal:function(){return Aa(Ia).controller.signal}},$u=typeof WeakMap==`function`?WeakMap:Map,K=0,q=null,J=null,Y=0,X=0,ed=null,td=!1,nd=!1,rd=!1,id=0,ad=0,od=0,sd=0,cd=0,ld=0,ud=0,dd=null,fd=null,pd=!1,md=0,hd=0,gd=1/0,_d=null,vd=null,yd=0,bd=null,xd=null,Sd=0,Cd=0,wd=null,Td=null,Ed=null,Dd=null,Od=null,kd=0,Ad=null;
8function jd(){return K&2&&Y!==0?Y&-Y:w.T===null?Dt():Pf()}function Md(){if(ld===0){if(!(Y&536870912)||P){var e=dt;dt<<=1,!(dt&3932160)&&(dt=262144),ld=e}else ld=536870912}return e=L.current,e!==null&&(e.flags|=32),ld}function Nd(e,t){if(t!=null){var n=e.stateNode,r=n.ref;r===null&&(r=n.ref=Pp(Ei(e.memoizedProps,n))),Dd===null&&(Dd=[]),Dd.push(t.bind(null,r))}}function Pd(e,t,n){(e===q&&(X===2||X===9)||e.cancelPendingCommit!==null)&&(Vd(e,0),Rd(e,Y,ld,!1)),bt(e,n),(!(K&2)||e!==q)&&(e===q&&(!(K&2)&&(sd|=n),ad===4&&Rd(e,Y,ld,!1)),Ef(e))}function Fd(e,t,n){if(K&6)throw Error(i(327));var r=!n&&!(t&127)&&(t&e.expiredLanes)===0||ht(e,t),a=r?Yd(e,t):qd(e,t,!0),o=r;do{if(a===0){nd&&!r&&Rd(e,t,0,!1);break}if(n=e.current.alternate,o&&!Ld(n)){a=qd(e,t,!1),o=!1;continue}if(a===2){if(o=t,e.errorRecoveryDisabledLanes&o)var s=0;else s=e.pendingLanes&-536870913,s=s===0?s&536870912?536870912:0:s;if(s!==0){t=s;a:{var c=e;a=dd;var l=c.current.memoizedState.isDehydrated;if(l&&(Vd(c,s).flags|=256),s=qd(c,s,!1),s!==2&&s!==6){if(rd&&!l){c.errorRecoveryDisabledLanes|=o,sd|=o,a=4;break a}o=fd,fd=a,o!==null&&(fd===null?fd=o:fd.push.apply(fd,o))}a=s}if(o=!1,a!==2)continue}}if(a===1){Vd(e,0),Rd(e,t,0,!0);break}a:{switch(r=e,o=a,o){case 0:case 1:throw Error(i(345));case 4:if((t&4194048)!==t&&(t&62914560)!==t)break;case 6:Rd(r,t,ld,!td);break a;case 2:fd=null;break;case 3:case 5:break;default:throw Error(i(329))}if((t&62914560)===t&&(a=md+300-Je(),10<a)){if(Rd(r,t,ld,!td),mt(r,0,!0)!==0)break a;Sd=t,r.timeoutHandle=gp(Id.bind(null,r,n,fd,_d,pd,t,ld,sd,ud,td,o,`Throttled`,-0,0),a);break a}Id(r,n,fd,_d,pd,t,ld,sd,ud,td,o,null,-0,0)}break}while(1);Ef(e)}function Id(e,t,n,r,i,a,o,s,c,l,u,d,f,p){e.timeoutHandle=-1;var m=t.subtreeFlags,h=(a&335544064)===a;if(d=null,(h||m&8192||(m&16785408)==16785408)&&(d={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:On},Vl=null,Ku(t,a,d),h&&(m=d,h=e.containerInfo,h=(h.nodeType===9?h:h.ownerDocument).__reactViewTransition,h!=null&&(m.count++,m.waitingForViewTransition=!0,m=nh.bind(m),h.finished.then(m,m))),m=(a&62914560)===a?md-Je():(a&4194048)===a?hd-Je():0,m=eh(d,m),m!==null)){Sd=a,e.cancelPendingCommit=m(nf.bind(null,e,t,a,n,r,i,o,s,c,l,u,d,null,f,p)),Rd(e,a,o,!l);return}nf(e,t,a,n,r,i,o,s,c,l,u,d)}function Ld(e){for(var t=e;;){var n=t.tag;if((n===0||n===11||n===15)&&t.flags&16384&&(n=t.updateQueue,n!==null&&(n=n.stores,n!==null)))for(var r=0;r<n.length;r++){var i=n[r],a=i.getSnapshot;i=i.value;try{if(!Xr(a(),i))return!1}catch{return!1}}if(n=t.child,t.subtreeFlags&16384&&n!==null)n.return=t,t=n;else{if(t===e)break;for(;t.sibling===null;){if(t.return===null||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}function Rd(e,t,n,r){t=gt(e,t),t&=~cd,t&=~sd,e.suspendedLanes|=t,e.pingedLanes&=~t,r&&(e.warmLanes|=t),r=e.expirationTimes;for(var i=t;0<i;){var a=31-ot(i),o=1<<a;r[a]=-1,i&=~o}
vendor: 4,257 bytes, line 8
8n!==0&&St(e,n,t)}function zd(){return K&6?!0:(Df(0,!1),!1)}function Bd(){if(J!==null){if(X===0)var e=J.return;else e=J,Sa=xa=null,ss(e),uo=null,fo=0,e=J;for(;e!==null;)Sl(e.alternate,e),e=e.return;J=null}}function Vd(e,t){var n=e.timeoutHandle;return n!==-1&&(e.timeoutHandle=-1,_p(n)),n=e.cancelPendingCommit,n!==null&&(e.cancelPendingCommit=null,n()),Sd=0,Bd(),q=e,J=n=Ui(e.current,null),Y=t,X=0,ed=null,td=!1,nd=ht(e,t),rd=!1,ud=ld=cd=sd=od=ad=0,fd=dd=null,pd=!1,id=gt(e,t),Ni(),n}function Hd(e,t){R=null,w.H=_c,t===eo||t===no?(t=co(),X=3):t===to?(t=co(),X=4):X=t===Pc?8:typeof t==`object`&&t&&typeof t.then==`function`?6:1,ed=t,J===null&&(ad=1,Oc(e,Xi(t,e.current)))}function Ud(){var e=L.current;return e===null?!0:(Y&4194048)===Y?Fo===null:(Y&62914560)===Y||Y&536870912?e===Fo:!1}function Wd(){var e=w.H;return w.H=_c,e===null?_c:e}function Gd(){var e=w.A;return w.A=Qu,e}function Kd(){ad=4,td||(Y&4194048)!==Y&&L.current!==null||(nd=!0),!(od&134217727)&&!(sd&134217727)||q===null||Rd(q,Y,ld,!1)}function qd(e,t,n){var r=K;K|=2;var i=Wd(),a=Gd();(q!==e||Y!==t)&&(_d=null,Vd(e,t)),t=!1;var o=ad;a:do try{if(X!==0&&J!==null){var s=J,c=ed;switch(X){case 8:Bd(),o=6;break a;case 3:case 2:case 9:case 6:L.current===null&&(t=!0);var l=X;if(X=0,ed=null,$d(e,s,c,l),n&&nd){o=0;break a}break;default:l=X,X=0,ed=null,$d(e,s,c,l)}}Jd(),o=ad;break}catch(t){Hd(e,t)}while(1);return t&&e.shellSuspendCounter++,Sa=xa=null,K=r,w.H=i,w.A=a,J===null&&(q=null,Y=0,Ni()),o}function Jd(){for(;J!==null;)Zd(J)}function Yd(e,t){var n=K;K|=2;var r=Wd(),a=Gd();q!==e||Y!==t?(_d=null,gd=Je()+500,Vd(e,t)):nd=ht(e,t);a:do try{if(X!==0&&J!==null){t=J;var o=ed;b:switch(X){case 1:X=0,ed=null,$d(e,t,o,1);break;case 2:case 9:if(io(o)){X=0,ed=null,Qd(t);break}t=function(){X!==2&&X!==9||q!==e||(X=7),Ef(e)},o.then(t,t);break a;case 3:X=7;break a;case 4:X=5;break a;case 7:io(o)?(X=0,ed=null,Qd(t)):(X=0,ed=null,$d(e,t,o,7));break;case 5:var s=null;switch(J.tag){case 26:s=J.memoizedState;case 5:case 27:var c=J;if(s?Ym(s):c.stateNode.complete){X=0,ed=null;var l=c.sibling;if(l!==null)J=l;else{var u=c.return;u===null?J=null:(J=u,ef(u))}break b}}X=0,ed=null,$d(e,t,o,5);break;case 6:X=0,ed=null,$d(e,t,o,6);break;case 8:Bd(),ad=6;break a;default:throw Error(i(462))}}Xd();break}catch(t){Hd(e,t)}while(1);return Sa=xa=null,w.H=r,w.A=a,K=n,J===null?(q=null,Y=0,Ni(),ad):0}function Xd(){for(;J!==null&&!Ke();)Zd(J)}function Zd(e){var t=ml(e.alternate,e,id);e.memoizedProps=e.pendingProps,t===null?ef(e):J=t}function Qd(e){var t=e,n=t.alternate;switch(t.tag){case 15:case 0:t=Jc(n,t,t.pendingProps,t.type,void 0,Y);break;case 11:t=Jc(n,t,t.pendingProps,t.type.render,t.ref,Y);break;case 5:ss(t);var r=t;r===ua&&(P?(ha(r),r.tag===5&&r.stateNode!=null&&(N=r.stateNode)):(ha(r),P=!0));default:Sl(n,t),t=J=Wi(t,id),t=ml(n,t,id)}e.memoizedProps=e.pendingProps,t===null?ef(e):J=t}function $d(e,t,n,r){Sa=xa=null,ss(t),uo=null,fo=0;var i=t.return;try{if(Nc(e,i,t,n,Y)){ad=1,Oc(e,Xi(n,e.current)),J=null;return}}catch(t){if(i!==null)throw J=i,t;ad=1,Oc(e,Xi(n,e.current)),J=null;return}t.flags&32768?(P||r===1?e=!0:nd||Y&536870912?e=!1:(td=e=!0,(r===2||r===9||r===3||r===6)&&(r=L.current,r!==null&&r.tag===13&&(r.flags|=16384))),tf(t,e)):ef(t)}function ef(e){var t=e;do{if(t.flags&32768){tf(t,td);return}e=t.return;var n=bl(t.alternate,t,id);if(n!==null){J=n;return}if(t=t.sibling,t!==null){J=t;return}J=t=e}while(t!==null);ad===0&&(ad=5)}function tf(e,t){do{var n=xl(e.alternate,e);if(n!==null){n.flags&=32767,J=n;return}if(n=e.return,n!==null&&(n.flags|=32768,n.subtreeFlags=0,n.deletions=null),!t&&(e=e.sibling,e!==null)){J=e;return}J=e=n}while(e!==null);ad=6,J=null}function nf(e,t,n,r,a,o,s,c,l,u,d,f){e.cancelPendingCommit=null;do df();while(yd!==0);if(K&6)throw Error(i(327));if(t!==null){if(t===e.current)throw Error(i(177));e===q&&(J=q=null,Y=0),xd=t,bd=e,Sd=n,wd=a,Td=r,rf(e,t,n,s,c,l,f)}}function rf(e,t,n,r,i,a,o){var s=t.lanes|t.childLanes;if(Cd=s,s|=Mi,xt(e,n,s,r,i,a),Dd=null,(n&335544064)===n?(Od=Va(e),r=10262):(Od=null,r=10256),(t.subtreeFlags&r)!==0||(t.flags&r)!==0?(e.callbackNode=null,e.callbackPriority=0,yf(Qe,function(){return ff(),null})):(e.callbackNode=null,e.callbackPriority=0),Bl=!1,r=!!(t.flags&13878),t.subtreeFlags&13878||r){r=w.T,w.T=null,i=T.p,T.p=2,a=K,K|=4;
vendor: 4,812 bytes, line 8
8try{mu(e,t,n)}finally{K=a,T.p=i,w.T=r}}yd=1,Bl?Ed=Mp(o,e.containerInfo,Od,sf,cf,of,lf,ff,af,null,null):(sf(),cf(),lf())}function af(e){if(yd!==0){var t=bd.onRecoverableError;t(e,{componentStack:null})}}function of(){yd===3&&(yd=0,Pu(xd,bd),yd=4)}function sf(){if(yd===1){yd=0;var e=bd,t=xd,n=Sd,r=!!(t.flags&13878);if(t.subtreeFlags&13878||r){r=w.T,w.T=null;var i=T.p;T.p=2;var a=K;K|=4;try{du=fu=!1,Au(t,e,n),n=cp;var o=ni(e.containerInfo),s=n.focusedElem,c=n.selectionRange;if(o!==s&&s&&s.ownerDocument&&ti(s.ownerDocument.documentElement,s)){if(c!==null&&ri(s)){var l=c.start,u=c.end;if(u===void 0&&(u=l),`selectionStart`in s)s.selectionStart=l,s.selectionEnd=Math.min(u,s.value.length);else{var d=s.ownerDocument||document,f=d&&d.defaultView||window;if(f.getSelection){var p=f.getSelection(),m=s.textContent.length,h=Math.min(c.start,m),g=c.end===void 0?h:Math.min(c.end,m);!p.extend&&h>g&&(o=g,g=h,h=o);var _=ei(s,h),v=ei(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;s<d.length;s++){var b=d[s];b.element.scrollLeft=b.left,b.element.scrollTop=b.top}}gh=!!sp,cp=sp=null}finally{K=a,T.p=i,w.T=r}}e.current=t,yd=2}}function cf(){if(yd===2){yd=0;var e=bd,t=xd,n=!!(t.flags&8772);if(t.subtreeFlags&8772||n){n=w.T,w.T=null;var r=T.p;T.p=2;var i=K;K|=4;try{gu(e,t.alternate,t)}finally{K=i,T.p=r,w.T=n}}yd=3}}function lf(){if(yd===4||yd===3){yd=0;var e=Ed;Ed=null,qe();var t=bd,n=xd,r=Sd,i=Td,a=(r&335544064)===r?10262:10256;if((n.subtreeFlags&a)!==0||(n.flags&a)!==0?yd=5:(yd=0,xd=bd=null,uf(t,t.pendingLanes)),a=t.pendingLanes,a===0&&(vd=null),Et(r),n=n.stateNode,it&&typeof it.onCommitFiberRoot==`function`)try{it.onCommitFiberRoot(rt,n,void 0,(n.current.flags&128)==128)}catch{}if(i!==null){n=w.T,a=T.p,T.p=2,w.T=null;try{for(var o=t.onRecoverableError,s=0;s<i.length;s++){var c=i[s];o(c.value,{componentStack:c.stack})}}finally{w.T=n,T.p=a}}if(i=Dd,o=Od,Od=null,i!==null&&(Dd=null,o===null&&(o=[]),e!==null))for(c=0;c<i.length;c++)n=(0,i[c])(o),n!==void 0&&e.finished.finally(n);Sd&3&&df(),Ef(t),a=t.pendingLanes,r&261930&&a&42?t===Ad?kd++:(kd=0,Ad=t):(kd=0,Ad=null),Df(0,!1)}}function uf(e,t){(e.pooledCacheLanes&=t)===0&&(t=e.pooledCache,t!=null&&(e.pooledCache=null,Ra(t)))}function df(){return Ed!==null&&(Ed.skipTransition(),Ed=null),sf(),cf(),lf(),ff()}function ff(){if(yd!==5)return!1;var e=bd,t=Cd;Cd=0;var n=Et(Sd),r=w.T,a=T.p;try{T.p=32>n?32:n,w.T=null,n=wd,wd=null;var o=bd,s=Sd;if(yd=0,xd=bd=null,Sd=0,K&6)throw Error(i(331));var c=K;if(K|=4,Yu(o.current),Vu(o,o.current,s,n),K=c,Df(0,!1),it&&typeof it.onPostCommitFiberRoot==`function`)try{it.onPostCommitFiberRoot(rt,o)}catch{}return!0}finally{T.p=a,w.T=r,uf(e,t)}}function pf(e,t,n){t=Xi(n,t),t=Ac(e.stateNode,t,2),e=So(e,t,2),e!==null&&(bt(e,2),Ef(e))}function Z(e,t,n){if(e.tag===3)pf(e,e,n);else for(;t!==null;){if(t.tag===3){pf(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(vd===null||!vd.has(r))){e=Xi(n,e),n=jc(2),r=So(t,n,2),r!==null&&(Mc(n,r,t,e),bt(r,2),Ef(r));break}}t=t.return}}function mf(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new $u;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(rd=!0,i.add(n),e=hf.bind(null,e,t,n),t.then(e,e))}function hf(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,q===e&&(Y&n)===n&&(ad===4||ad===3&&(Y&62914560)===Y&&300>Je()-md?K&2?cd|=n:Vd(e,0):cd|=n,ud===Y&&(ud=0)),Ef(e)}function gf(e,t){t===0&&(t=vt()),e=Ii(e,t),e!==null&&(bt(e,t),Ef(e))}function _f(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),gf(e,n)}function vf(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,a=e.memoizedState;a!==null&&(n=a.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(i(314))}r!==null&&r.delete(t),gf(e,n)}function yf(e,t){return We(e,t)}var bf=null,xf=null,Sf=!1,Cf=!1,wf=!1,Tf=0;function Ef(e){e!==xf&&e.next===null&&(xf===null?bf=xf=e:xf=xf.next=e),Cf=!0,Sf||(Sf=!0,Nf())}function Df(e,t){if(!wf&&Cf){wf=!0;do for(var n=!1,r=bf;r!==null;){if(!t){if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-ot(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,Mf(r,a))}else a=Y,a=mt(r,r===q?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||ht(r,a)||(n=!0,Mf(r,a))}r=r.next}
vendor: 5,134 bytes, line 8
8while(n);wf=!1}}function Of(){kf()}function kf(){Cf=Sf=!1;var e=0;Tf!==0&&hp()&&(e=Tf);for(var t=Je(),n=null,r=bf;r!==null;){var i=r.next,a=Af(r,t);a===0?(r.next=null,n===null?bf=i:n.next=i,i===null&&(xf=n)):(n=r,(e!==0||a&3)&&(Cf=!0)),r=i}yd!==0&&yd!==5||Df(e,!1),Tf!==0&&(Tf=0)}function Af(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0<a;){var o=31-ot(a),s=1<<o,c=i[o];c===-1?((s&n)===0||(s&r)!==0)&&(i[o]=_t(s,t)):c<=t&&(e.expiredLanes|=s),a&=~s}if(t=q,n=Y,n=mt(e,e===t?n:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r=e.callbackNode,n===0||e===t&&(X===2||X===9)||e.cancelPendingCommit!==null)return r!==null&&r!==null&&Ge(r),e.callbackNode=null,e.callbackPriority=0;if(!(n&3)||ht(e,n)){if(t=n&-n,t===e.callbackPriority)return t;switch(r!==null&&Ge(r),Et(n)){case 2:case 8:n=Ze;break;case 32:n=Qe;break;case 268435456:n=et;break;default:n=Qe}return r=jf.bind(null,e),n=We(n,r),e.callbackPriority=t,e.callbackNode=n,t}return r!==null&&r!==null&&Ge(r),e.callbackPriority=2,e.callbackNode=null,2}function jf(e,t){if(yd!==0&&yd!==5)return e.callbackNode=null,e.callbackPriority=0,null;var n=e.callbackNode;if(df()&&e.callbackNode!==n)return null;var r=Y;return r=mt(e,e===q?r:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),r===0?null:(Fd(e,r,t),Af(e,Je()),e.callbackNode!=null&&e.callbackNode===n?jf.bind(null,e):null)}function Mf(e,t){if(df())return null;Fd(e,t,!0)}function Nf(){bp(function(){K&6?We(Xe,Of):kf()})}function Pf(){if(Tf===0){var e=Wa;e===0&&(e=ut,ut<<=1,!(ut&261888)&&(ut=256)),Tf=e}return Tf}function Ff(e){return e==null||typeof e==`symbol`||typeof e==`boolean`?null:typeof e==`function`?e:Dn(e)}function If(e,t,n,r,i){if(t===`submit`&&n&&n.stateNode===i){var a=Ff((i[jt]||null).action),o=r.submitter;o&&(t=(t=o[jt]||null)?Ff(t.formAction):o.getAttribute(`formAction`),t!==null&&(a=t,o=null));var s=new Jn(`action`,`action`,null,r,i);e.push({event:s,listeners:[{instance:null,listener:function(){if(r.defaultPrevented){if(Tf!==0){var e=new FormData(i,o);rc(n,{pending:!0,data:e,method:i.method,action:a},null,e)}}else typeof a==`function`&&(s.preventDefault(),e=new FormData(i,o),rc(n,{pending:!0,data:e,method:i.method,action:a},a,e))},currentTarget:i}]})}}for(var Lf=0;Lf<Ci.length;Lf++){var Rf=Ci[Lf];wi(Rf.toLowerCase(),`on`+(Rf[0].toUpperCase()+Rf.slice(1)))}wi(hi,`onAnimationEnd`),wi(gi,`onAnimationIteration`),wi(_i,`onAnimationStart`),wi(`dblclick`,`onDoubleClick`),wi(`focusin`,`onFocus`),wi(`focusout`,`onBlur`),wi(vi,`onTransitionRun`),wi(yi,`onTransitionStart`),wi(bi,`onTransitionCancel`),wi(xi,`onTransitionEnd`),Yt(`onMouseEnter`,[`mouseout`,`mouseover`]),Yt(`onMouseLeave`,[`mouseout`,`mouseover`]),Yt(`onPointerEnter`,[`pointerout`,`pointerover`]),Yt(`onPointerLeave`,[`pointerout`,`pointerover`]),Jt(`onChange`,`change click focusin focusout input keydown keyup selectionchange`.split(` `)),Jt(`onSelect`,`focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange`.split(` `)),Jt(`onBeforeInput`,[`compositionend`,`keypress`,`textInput`,`paste`]),Jt(`onCompositionEnd`,`compositionend focusout keydown keypress keyup mousedown`.split(` `)),Jt(`onCompositionStart`,`compositionstart focusout keydown keypress keyup mousedown`.split(` `)),Jt(`onCompositionUpdate`,`compositionupdate focusout keydown keypress keyup mousedown`.split(` `));var zf=`abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting`.split(` `),Bf=new Set(`beforetoggle cancel close invalid load scroll scrollend toggle`.split(` `).concat(zf));function Vf(e,t){t=!!(t&4);for(var n=0;n<e.length;n++){var r=e[n],i=r.event;r=r.listeners;a:{var a=void 0;if(t)for(var o=r.length-1;0<=o;o--){var s=r[o],c=s.instance,l=s.currentTarget;if(s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ki(e)}i.currentTarget=null,a=c}else for(o=0;o<r.length;o++){if(s=r[o],c=s.instance,l=s.currentTarget,s=s.listener,c!==a&&i.isPropagationStopped())break a;a=s,i.currentTarget=l;try{a(i)}catch(e){ki(e)}i.currentTarget=null,a=c}}}}function Q(e,t){var n=t[Nt];n===void 0&&(n=t[Nt]=new Set);var r=e+`__bubble`;n.has(r)||(Gf(t,e,2,!1),n.add(r))}function Hf(e,t,n){var r=0;t&&(r|=4),Gf(n,e,r,t)}var Uf=`_reactListening`+Math.random().toString(36).slice(2);function Wf(e){if(!e[Uf]){e[Uf]=!0,Kt.forEach(function(t){t!==`selectionchange`&&(Bf.has(t)||Hf(t,!1,e),Hf(t,!0,e))});var t=e.nodeType===9?e:e.ownerDocument;t===null||t[Uf]||(t[Uf]=!0,Hf(`selectionchange`,!1,t))}}function Gf(e,t,n,r){switch(Ch(t)){case 2:var i=_h;break;case 8:i=vh;break;default:i=yh}n=i.bind(null,t,n,e),i=void 0,!Rn||t!==`touchstart`&&t!==`touchmove`&&t!==`wheel`||(i=!0),r?i===void 0?e.addEventListener(t,n,!0):e.addEventListener(t,n,{capture:!0,passive:i}):i===void 0?e.addEventListener(t,n,!1):e.addEventListener(t,n,{passive:i})}function Kf(e,t,n,r,i){var a=r;if(!(t&1)&&!(t&2)&&r!==null)a:for(;;){if(r===null)return;var s=r.tag;if(s===3||s===4){var c=r.stateNode.containerInfo;
vendor: 10,166 bytes, lines 8-9
8if(c===i)break;if(s===4)for(s=r.return;s!==null;){var l=s.tag;if((l===3||l===4)&&s.stateNode.containerInfo===i)return;s=s.return}for(;c!==null;){if(s=Bt(c),s===null)return;if(l=s.tag,l===5||l===6||l===26||l===27){r=a=s;continue a}c=c.parentNode}}r=r.return}Fn(function(){var r=a,i=An(n),s=[];a:{var c=Si.get(e);if(c!==void 0){var l=Jn,u=e;switch(e){case`keypress`:if(Wn(n)===0)break a;case`keydown`:case`keyup`:l=fr;break;case`focusin`:u=`focus`,l=rr;break;case`focusout`:u=`blur`,l=rr;break;case`beforeblur`:case`afterblur`:l=rr;break;case`click`:if(n.button===2)break a;case`auxclick`:case`dblclick`:case`mousedown`:case`mousemove`:case`mouseup`:case`mouseout`:case`mouseover`:case`contextmenu`:l=tr;break;case`drag`:case`dragend`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`dragstart`:case`drop`:l=nr;break;case`touchcancel`:case`touchend`:case`touchmove`:case`touchstart`:l=hr;break;case hi:case gi:case _i:l=ir;break;case xi:l=gr;break;case`scroll`:case`scrollend`:l=Xn;break;case`wheel`:l=_r;break;case`copy`:case`cut`:case`paste`:l=ar;break;case`gotpointercapture`:case`lostpointercapture`:case`pointercancel`:case`pointerdown`:case`pointermove`:case`pointerout`:case`pointerover`:case`pointerup`:l=pr;break;case`submit`:l=mr;break;case`toggle`:case`beforetoggle`:l=vr}var d=!!(t&4),f=!d&&(e===`scroll`||e===`scrollend`),p=d?c===null?null:c+`Capture`:c;d=[];for(var m=r,h;m!==null;){var g=m;if(h=g.stateNode,g=g.tag,g!==5&&g!==26&&g!==27||h===null||p===null||(g=In(m,p),g!=null&&d.push(qf(m,g,h))),f)break;m=m.return}0<d.length&&(c=new l(c,u,null,n,i),s.push({event:c,listeners:d}))}}if(!(t&7)){a:{if(l=e===`mouseover`||e===`pointerover`,c=e===`mouseout`||e===`pointerout`,l&&n!==kn&&(u=n.relatedTarget||n.fromElement)&&(Bt(u)||u[Mt]))break a;(c||l)&&(u=i.window===i?i:(l=i.ownerDocument)?l.defaultView||l.parentWindow:window,c?(l=n.relatedTarget||n.toElement,c=r,l=l?Bt(l):null,l!==null&&(f=o(l),d=l.tag,l!==f||d!==5&&d!==27&&d!==6)&&(l=null)):(c=null,l=r),c!==l&&(d=tr,g=`onMouseLeave`,p=`onMouseEnter`,m=`mouse`,(e===`pointerout`||e===`pointerover`)&&(d=pr,g=`onPointerLeave`,p=`onPointerEnter`,m=`pointer`),f=c==null?u:Ht(c),h=l==null?u:Ht(l),u=new d(g,m+`leave`,c,n,i),u.target=f,u.relatedTarget=h,g=null,Bt(i)===r&&(d=new d(p,m+`enter`,l,n,i),d.target=h,d.relatedTarget=f,g=d),f=g,d=c&&l?te(c,l,Yf):null,c!==null&&Xf(s,u,c,d,!1),l!==null&&f!==null&&Xf(s,f,l,d,!0)))}a:{if(c=r?Ht(r):window,l=c.nodeName&&c.nodeName.toLowerCase(),l===`select`||l===`input`&&c.type===`file`)var _=Rr;else if(Mr(c)){if(zr)_=Jr;else{_=Kr;var v=Gr}}else l=c.nodeName,!l||l.toLowerCase()!==`input`||c.type!==`checkbox`&&c.type!==`radio`?r&&wn(r.elementType)&&(_=Rr):_=qr;if(_&&=_(e,r)){Nr(s,_,n,i);break a}v&&v(e,c,r)}switch(v=r?Ht(r):window,e){case`focusin`:(Mr(v)||v.contentEditable===`true`)&&(ai=v,oi=r,si=null);break;case`focusout`:si=oi=ai=null;break;case`mousedown`:ci=!0;break;case`contextmenu`:case`mouseup`:case`dragend`:ci=!1,li(s,n,i);break;case`selectionchange`:if(ii)break;case`keydown`:case`keyup`:li(s,n,i)}var y;if(br)b:{switch(e){case`compositionstart`:var b=`onCompositionStart`;break b;case`compositionend`:b=`onCompositionEnd`;break b;case`compositionupdate`:b=`onCompositionUpdate`;break b}b=void 0}else Or?Er(e,n)&&(b=`onCompositionEnd`):e===`keydown`&&n.keyCode===229&&(b=`onCompositionStart`);b&&(Cr&&n.locale!==`ko`&&(Or||b!==`onCompositionStart`?b===`onCompositionEnd`&&Or&&(y=Un()):(Bn=i,Vn=`value`in Bn?Bn.value:Bn.textContent,Or=!0)),v=Jf(r,b),0<v.length&&(b=new or(b,e,null,n,i),s.push({event:b,listeners:v}),y?b.data=y:(y=Dr(n),y!==null&&(b.data=y)))),(y=Sr?kr(e,n):Ar(e,n))&&(b=Jf(r,`onBeforeInput`),0<b.length&&(v=new or(`onBeforeInput`,`beforeinput`,null,n,i),s.push({event:v,listeners:b}),v.data=y)),If(s,e,r,n,i)}Vf(s,t)})}function qf(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Jf(e,t){for(var n=t+`Capture`,r=[];e!==null;){var i=e,a=i.stateNode;if(i=i.tag,i!==5&&i!==26&&i!==27||a===null||(i=In(e,n),i!=null&&r.unshift(qf(e,i,a)),i=In(e,t),i!=null&&r.push(qf(e,i,a))),e.tag===3)return r;e=e.return}return[]}function Yf(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function Xf(e,t,n,r,i){for(var a=t._reactName,o=[];n!==null&&n!==r;){var s=n,c=s.alternate,l=s.stateNode;if(s=s.tag,c!==null&&c===r)break;s!==5&&s!==26&&s!==27||l===null||(c=l,i?(l=In(n,a),l!=null&&o.unshift(qf(n,l,c))):i||(l=In(n,a),l!=null&&o.push(qf(n,l,c)))),n=n.return}o.length!==0&&e.push({event:t,listeners:o})}var Zf=/\r\n?/g,Qf=/\u0000|\uFFFD/g;function $f(e){return(typeof e==`string`?e:``+e).replace(Zf,` 9`).replace(Qf,``)}function ep(e,t){return t=$f(t),$f(e)===t}function $(e,t,n,r,a,o){switch(n){case`children`:if(typeof r==`string`)t===`body`||t===`textarea`&&r===``||bn(e,r);else if(typeof r==`number`||typeof r==`bigint`)t!==`body`&&bn(e,``+r);else return;break;case`className`:rn(e,`class`,r);break;case`tabIndex`:rn(e,`tabindex`,r);break;case`dir`:case`role`:case`viewBox`:case`width`:case`height`:rn(e,n,r);break;case`style`:Cn(e,r,o);return;case`data`:if(t!==`object`){rn(e,`data`,r);break}case`src`:case`href`:if(r===``&&(t!==`a`||n!==`href`)){e.removeAttribute(n);break}if(r==null||typeof r==`function`||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Dn(r),e.setAttribute(n,r);break;case`action`:case`formAction`:if(typeof r==`function`){e.setAttribute(n,`javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')`);break}if(typeof o==`function`&&(n===`formAction`?(t!==`input`&&$(e,t,`name`,a.name,a,null),$(e,t,`formEncType`,a.formEncType,a,null),$(e,t,`formMethod`,a.formMethod,a,null),$(e,t,`formTarget`,a.formTarget,a,null)):($(e,t,`encType`,a.encType,a,null),$(e,t,`method`,a.method,a,null),$(e,t,`target`,a.target,a,null))),r==null||typeof r==`symbol`||typeof r==`boolean`){e.removeAttribute(n);break}r=Dn(r),e.setAttribute(n,r);break;case`onClick`:r!=null&&(e.onclick=On);return;case`onScroll`:r!=null&&Q(`scroll`,e);return;case`onScrollEnd`:r!=null&&Q(`scrollend`,e);return;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));o?.__html!==n&&(e.innerHTML=n)}}break;case`multiple`:e.multiple=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`muted`:e.muted=r&&typeof r!=`function`&&typeof r!=`symbol`;break;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`defaultValue`:case`defaultChecked`:case`innerHTML`:case`ref`:break;case`autoFocus`:break;case`xlinkHref`:if(r==null||typeof r==`function`||typeof r==`boolean`||typeof r==`symbol`){e.removeAttribute(`xlink:href`);break}n=Dn(r),e.setAttributeNS(`http://www.w3.org/1999/xlink`,`xlink:href`,n);break;case`contentEditable`:case`spellCheck`:case`draggable`:case`value`:case`autoReverse`:case`externalResourcesRequired`:case`focusable`:case`preserveAlpha`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`inert`:case`allowFullScreen`:case`async`:case`autoPlay`:case`controls`:case`credentialless`:case`default`:case`defer`:case`disabled`:case`disablePictureInPicture`:case`disableRemotePlayback`:case`formNoValidate`:case`hidden`:case`loop`:case`noModule`:case`noValidate`:case`open`:case`playsInline`:case`readOnly`:case`required`:case`reversed`:case`scoped`:case`seamless`:case`itemScope`:r&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,``):e.removeAttribute(n);break;case`capture`:case`download`:!0===r?e.setAttribute(n,``):!1!==r&&r!=null&&typeof r!=`function`&&typeof r!=`symbol`?e.setAttribute(n,r):e.removeAttribute(n);break;case`cols`:case`rows`:case`size`:case`span`:r!=null&&typeof r!=`function`&&typeof r!=`symbol`&&!isNaN(r)&&1<=r?e.setAttribute(n,r):e.removeAttribute(n);break;case`rowSpan`:case`start`:r==null||typeof r==`function`||typeof r==`symbol`||isNaN(r)?e.removeAttribute(n):e.setAttribute(n,r);break;case`popover`:Q(`beforetoggle`,e),Q(`toggle`,e),tn(e,`popover`,r);break;case`xlinkActuate`:on(e,`http://www.w3.org/1999/xlink`,`xlink:actuate`,r);break;case`xlinkArcrole`:on(e,`http://www.w3.org/1999/xlink`,`xlink:arcrole`,r);break;case`xlinkRole`:on(e,`http://www.w3.org/1999/xlink`,`xlink:role`,r);break;case`xlinkShow`:on(e,`http://www.w3.org/1999/xlink`,`xlink:show`,r);break;case`xlinkTitle`:on(e,`http://www.w3.org/1999/xlink`,`xlink:title`,r);break;case`xlinkType`:on(e,`http://www.w3.org/1999/xlink`,`xlink:type`,r);break;case`xmlBase`:on(e,`http://www.w3.org/XML/1998/namespace`,`xml:base`,r);break;case`xmlLang`:on(e,`http://www.w3.org/XML/1998/namespace`,`xml:lang`,r);break;case`xmlSpace`:on(e,`http://www.w3.org/XML/1998/namespace`,`xml:space`,r);break;case`is`:tn(e,`is`,r);break;case`innerText`:case`textContent`:return;default:if(!(2<n.length)||n[0]!==`o`&&n[0]!==`O`||n[1]!==`n`&&n[1]!==`N`)n=Tn.get(n)||n,tn(e,n,r);else return}k=!0}function tp(e,t,n,r,a,o){switch(n){case`style`:Cn(e,r,o);return;case`dangerouslySetInnerHTML`:if(r!=null){if(typeof r!=`object`||!(`__html`in r))throw Error(i(61));if(n=r.__html,n!=null){if(a.children!=null)throw Error(i(60));o?.__html!==n&&(e.innerHTML=n)}}break;case`children`:if(typeof r==`string`)bn(e,r);else if(typeof r==`number`||typeof r==`bigint`)bn(e,``+r);else return;break;case`onScroll`:r!=null&&Q(`scroll`,e);return;case`onScrollEnd`:r!=null&&Q(`scrollend`,e);return;case`onClick`:r!=null&&(e.onclick=On);return;case`suppressContentEditableWarning`:case`suppressHydrationWarning`:case`innerHTML`:case`ref`:return;case`innerText`:case`textContent`:return;default:if(!qt.hasOwnProperty(n))a:{if(n[0]===`o`&&n[1]===`n`&&(a=n.endsWith(`Capture`),o=n.slice(2,a?n.length-7:void 0),t=e[jt]||null,t=t==null?null:t[n],typeof t==`function`&&e.removeEventListener(o,t,a),typeof r==`function`)){typeof t!=`function`&&t!==null&&(n in e?e[n]=null:e.hasAttribute(n)&&e.removeAttribute(n)),e.addEventListener(o,r,a);break a}k=!0,n in e?e[n]=r:!0===r?e.setAttribute(n,``):tn(e,n,r)}return}k=!0}
vendor: 5,091 bytes, line 9
9function np(e,t,n){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`img`:Q(`error`,e),Q(`load`,e);var r=!1,a=!1,o;for(o in n)if(n.hasOwnProperty(o)){var s=n[o];if(s!=null)switch(o){case`src`:r=!0;break;case`srcSet`:a=!0;break;case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:$(e,t,o,s,n,null)}}a&&$(e,t,`srcSet`,n.srcSet,n,null),r&&$(e,t,`src`,n.src,n,null);return;case`input`:Q(`invalid`,e);var c=o=s=a=null,l=null,u=null;for(r in n)if(n.hasOwnProperty(r)){var d=n[r];if(d!=null)switch(r){case`name`:a=d;break;case`type`:s=d;break;case`checked`:l=d;break;case`defaultChecked`:u=d;break;case`value`:o=d;break;case`defaultValue`:c=d;break;case`children`:case`dangerouslySetInnerHTML`:if(d!=null)throw Error(i(137,t));break;default:$(e,t,r,d,n,null)}}hn(e,o,c,l,u,s,a,!1);return;case`select`:for(a in Q(`invalid`,e),r=s=o=null,n)if(n.hasOwnProperty(a)&&(c=n[a],c!=null))switch(a){case`value`:o=c;break;case`defaultValue`:s=c;break;case`multiple`:r=c;default:$(e,t,a,c,n,null)}t=o,n=s,e.multiple=!!r,t==null?n!=null&&_n(e,!!r,n,!0):_n(e,!!r,t,!1);return;case`textarea`:for(s in Q(`invalid`,e),o=a=r=null,n)if(n.hasOwnProperty(s)&&(c=n[s],c!=null))switch(s){case`value`:r=c;break;case`defaultValue`:a=c;break;case`children`:o=c;break;case`dangerouslySetInnerHTML`:if(c!=null)throw Error(i(91));break;default:$(e,t,s,c,n,null)}yn(e,r,a,o);return;case`option`:for(l in n)if(n.hasOwnProperty(l)&&(r=n[l],r!=null))switch(l){case`selected`:e.selected=r&&typeof r!=`function`&&typeof r!=`symbol`;break;default:$(e,t,l,r,n,null)}return;case`dialog`:Q(`beforetoggle`,e),Q(`toggle`,e),Q(`cancel`,e),Q(`close`,e);break;case`iframe`:case`object`:Q(`load`,e);break;case`video`:case`audio`:for(r=0;r<zf.length;r++)Q(zf[r],e);break;case`image`:Q(`error`,e),Q(`load`,e);break;case`details`:Q(`toggle`,e);break;case`embed`:case`source`:case`link`:Q(`error`,e),Q(`load`,e);case`area`:case`base`:case`br`:case`col`:case`hr`:case`keygen`:case`meta`:case`param`:case`track`:case`wbr`:case`menuitem`:for(u in n)if(n.hasOwnProperty(u)&&(r=n[u],r!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:throw Error(i(137,t));default:$(e,t,u,r,n,null)}return;default:if(wn(t)){for(d in n)n.hasOwnProperty(d)&&(r=n[d],r!==void 0&&tp(e,t,d,r,n,void 0));return}}for(c in n)n.hasOwnProperty(c)&&(r=n[c],r!=null&&$(e,t,c,r,n,null))}var rp={};function ip(e,t,n,r){switch(t){case`div`:case`span`:case`svg`:case`path`:case`a`:case`g`:case`p`:case`li`:break;case`input`:var a=null,o=null,s=null,c=null,l=null,u=null,d=null;for(m in n){var f=n[m];if(n.hasOwnProperty(m)&&f!=null)switch(m){case`checked`:break;case`value`:break;case`defaultValue`:l=f;default:r.hasOwnProperty(m)||$(e,t,m,null,r,f)}}for(var p in r){var m=r[p];if(f=n[p],r.hasOwnProperty(p)&&(m!=null||f!=null))switch(p){case`type`:m!==f&&(k=!0),o=m;break;case`name`:m!==f&&(k=!0),a=m;break;case`checked`:m!==f&&(k=!0),u=m;break;case`defaultChecked`:m!==f&&(k=!0),d=m;break;case`value`:m!==f&&(k=!0),s=m;break;case`defaultValue`:m!==f&&(k=!0),c=m;break;case`children`:case`dangerouslySetInnerHTML`:if(m!=null)throw Error(i(137,t));break;default:m!==f&&$(e,t,p,m,r,f)}}mn(e,s,c,l,u,d,o,a);return;case`select`:for(o in m=s=c=p=null,n)if(l=n[o],n.hasOwnProperty(o)&&l!=null)switch(o){case`value`:break;case`multiple`:m=l;default:r.hasOwnProperty(o)||$(e,t,o,null,r,l)}for(a in r)if(o=r[a],l=n[a],r.hasOwnProperty(a)&&(o!=null||l!=null))switch(a){case`value`:o!==l&&(k=!0),p=o;break;case`defaultValue`:o!==l&&(k=!0),c=o;break;case`multiple`:o!==l&&(k=!0),s=o;default:o!==l&&$(e,t,a,o,r,l)}t=c,n=s,r=m,p==null?!!r!=!!n&&(t==null?_n(e,!!n,n?[]:``,!1):_n(e,!!n,t,!0)):_n(e,!!n,p,!1);return;case`textarea`:for(c in m=p=null,n)if(a=n[c],n.hasOwnProperty(c)&&a!=null&&!r.hasOwnProperty(c))switch(c){case`value`:break;case`children`:break;default:$(e,t,c,null,r,a)}for(s in r)if(a=r[s],o=n[s],r.hasOwnProperty(s)&&(a!=null||o!=null))switch(s){case`value`:a!==o&&(k=!0),p=a;break;case`defaultValue`:a!==o&&(k=!0),m=a;break;case`children`:break;case`dangerouslySetInnerHTML`:if(a!=null)throw Error(i(91));break;default:a!==o&&$(e,t,s,a,r,o)}vn(e,p,m);return;case`option`:for(var h in n)if(p=n[h],n.hasOwnProperty(h)&&p!=null&&!r.hasOwnProperty(h))switch(h){case`selected`:e.selected=!1;break;default:$(e,t,h,null,r,p)}for(l in r)if(p=r[l],m=n[l],r.hasOwnProperty(l)&&p!==m&&(p!=null||m!=null))switch(l){case`selected`:p!==m&&(k=!0),e.selected=p&&typeof p!=`function`&&typeof p!=`symbol`;break;default:$(e,t,l,p,r,m)}return;case`img`:case`link`:case`area`:case`base`:case`br`:case`col`:case`embed`:case`hr`:case`keygen`:case`meta`:case`param`:case`source`:case`track`:case`wbr`:case`menuitem`:for(var g in n)p=n[g],n.hasOwnProperty(g)&&p!=null&&!r.hasOwnProperty(g)&&$(e,t,g,null,r,p);for(u in r)if(p=r[u],m=n[u],r.hasOwnProperty(u)&&p!==m&&(p!=null||m!=null))switch(u){case`children`:case`dangerouslySetInnerHTML`:if(p!=null)throw Error(i(137,t));break;default:$(e,t,u,p,r,m)}return;default:if(wn(t)){for(var _ in n)p=n[_],n.hasOwnProperty(_)&&p!==void 0&&!r.hasOwnProperty(_)&&tp(e,t,_,void 0,r,p);
9for(d in r)p=r[d],m=n[d],!r.hasOwnProperty(d)||p===m||p===void 0&&m===void 0||tp(e,t,d,p,r,m);return}}for(var v in n)p=n[v],n.hasOwnProperty(v)&&p!=null&&!r.hasOwnProperty(v)&&$(e,t,v,null,r,p);for(f in r)p=r[f],m=n[f],!r.hasOwnProperty(f)||p===m||p==null&&m==null||$(e,t,f,p,r,m)}function ap(e){switch(e){case`css`:case`script`:case`font`:case`img`:case`image`:case`input`:case`link`:return!0;default:return!1}}function op(){if(typeof performance.getEntriesByType==`function`){for(var e=0,t=0,n=performance.getEntriesByType(`resource`),r=0;r<n.length;r++){var i=n[r],a=i.transferSize,o=i.initiatorType,s=i.duration;if(a&&s&&ap(o)){for(o=0,s=i.responseEnd,r+=1;r<n.length;r++){var c=n[r],l=c.startTime;if(l>s)break;var u=c.transferSize,d=c.initiatorType;u&&ap(d)&&(c=c.responseEnd,o+=u*(c<s?1:(s-l)/(c-l)))}if(--r,t+=8*(a+o)/(i.duration/1e3),e++,10<e)break}}if(0<e)return t/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e==`number`)?e:5}var sp=null,cp=null;function lp(e){return e.nodeType===9?e:e.ownerDocument}function up(e){switch(e){case`http://www.w3.org/2000/svg`:return 1;case`http://www.w3.org/1998/Math/MathML`:return 2;default:return 0}}function dp(e,t){if(e===0)switch(t){case`svg`:return 1;case`math`:return 2;default:return 0}return e===1&&t===`foreignObject`?0:e}function fp(e,t,n,r){return n=lp(n).createElement(e),n[At]=r,n[jt]=t,np(n,e,t),Wt(n),n}function pp(e,t){return e===`textarea`||e===`noscript`||typeof t.children==`string`||typeof t.children==`number`||typeof t.children==`bigint`||typeof t.dangerouslySetInnerHTML==`object`&&t.dangerouslySetInnerHTML!==null&&t.dangerouslySetInnerHTML.__html!=null}var mp=null;function hp(){var e=window.event;return e&&e.type===`popstate`?e!==mp&&(mp=e,!0):(mp=null,!1)}var gp=typeof setTimeout==`function`?setTimeout:void 0,_p=typeof clearTimeout==`function`?clearTimeout:void 0,vp=typeof Promise==`function`?Promise:void 0,yp=typeof requestAnimationFrame==`function`?requestAnimationFrame:gp,bp=typeof queueMicrotask==`function`?queueMicrotask:vp===void 0?gp:function(e){return vp.resolve(null).then(e).catch(xp)};function xp(e){setTimeout(function(){throw e})}function Sp(e){return e===`head`}function Cp(e,t){var n=t,r=0;do{var i=n.nextSibling;if(e.removeChild(n),i&&i.nodeType===8){if(n=i.data,n===`/$`||n===`/&`){if(r===0){e.removeChild(i),Hh(t);return}r--}else if(n===`$`||n===`$?`||n===`$~`||n===`$!`||n===`&`)r++;else if(n===`html`)_m(e.ownerDocument.documentElement);else if(n===`head`){n=e.ownerDocument.head,_m(n);for(var a=n.firstChild;a;){var o=a.nextSibling,s=a.nodeName;a[Lt]||s===`SCRIPT`||s===`STYLE`||s===`LINK`&&a.rel.toLowerCase()===`stylesheet`||n.removeChild(a),a=o}}else n===`body`&&_m(e.ownerDocument.body)}n=i}while(n);Hh(t)}function wp(e,t){var n=e;e=0;do{var r=n.nextSibling;if(n.nodeType===1?t?(n._stashedDisplay=n.style.display,n.style.display=`none`):(n.style.display=n._stashedDisplay||``,n.getAttribute(`style`)===``&&n.removeAttribute(`style`)):n.nodeType===3&&(t?(n._stashedText=n.nodeValue,n.nodeValue=``):n.nodeValue=n._stashedText||``),r&&r.nodeType===8){if(n=r.data,n===`/$`){if(e===0)break;e--}else n!==`$`&&n!==`$?`&&n!==`$~`&&n!==`$!`||e++}n=r}while(n)}function Tp(e,t,n){if(t=CSS.escape(t)===t?t:`r-`+btoa(t).replace(/=/g,``),e.style.viewTransitionName=t,n!=null&&(e.style.viewTransitionClass=n),n=getComputedStyle(e),n.display===`inline`){if(t=e.getClientRects(),t.length===1)var r=1;else for(var i=r=0;i<t.length;i++){var a=t[i];0<a.width&&0<a.height&&r++}r===1&&(e=e.style,e.display=t.length===1?`inline-block`:`block`,e.marginTop=`-`+n.paddingTop,e.marginBottom=`-`+n.paddingBottom)}}function Ep(e,t){e=e.style,t=t.style;var n=t==null?null:t.hasOwnProperty(`viewTransitionName`)?t.viewTransitionName:t.hasOwnProperty(`view-transition-name`)?t[`view-transition-name`]:null;e.viewTransitionName=n==null||typeof n==`boolean`?``:(``+n).trim(),n=t==null?null:t.hasOwnProperty(`viewTransitionClass`)?t.viewTransitionClass:t.hasOwnProperty(`view-transition-class`)?t[`view-transition-class`]:null,e.viewTransitionClass=n==null||typeof n==`boolean`?``:(``+n).trim(),e.display===`inline-block`&&(t==null?e.display=e.margin=``:(n=t.display,e.display=n==null||typeof n==`boolean`?``:n,n=t.margin,n==null?(n=t.hasOwnProperty(`marginTop`)?t.marginTop:t[`margin-top`],e.marginTop=n==null||typeof n==`boolean`?``:n,t=t.hasOwnProperty(`marginBottom`)?t.marginBottom:t[`margin-bottom`],e.marginBottom=t==null||typeof t==`boolean`?``:t):e.margin=n))}function Dp(e,t,n){return n=n.ownerDocument.defaultView,{rect:e,abs:t.position===`absolute`||t.position===`fixed`,clip:t.clipPath!==`none`||t.overflow!==`visible`||t.filter!==`none`||t.mask!==`none`||t.mask!==`none`||t.borderRadius!==`0px`,view:0<=e.bottom&&0<=e.right&&e.top<=n.innerHeight&&e.left<=n.innerWidth}}function Op(e){return Dp(e.getBoundingClientRect(),getComputedStyle(e),e)}function kp(e){var t=e.getBoundingClientRect();t=new DOMRect(t.x+2e4,t.y+2e4,t.width,t.height);var n=getComputedStyle(e);return Dp(t,n,e)}function Ap(e){return e.documentElement.clientHeight}function jp(e){this.addEventListener(`load`,e),this.addEventListener(`error`,e)}function Mp(e,t,n,r,i,a,o,s,c){var l=t.nodeType===9?t:t.ownerDocument;try{var u=l.startViewTransition({update:function(){var t=l.defaultView,n=t.navigation&&t.navigation.transition,o=l.fonts.status;r();var s=[];if(o===`loaded`&&(Ap(l),l.fonts.status===`loading`&&s.push(l.fonts.ready)),o=s.length,e!==null)for(var c=e.suspenseyImages,u=0,d=0;d<c.length;d++){var f=c[d];if(!f.complete){var p=f.getBoundingClientRect();
vendor: 18,624 bytes, line 9
9if(0<p.bottom&&0<p.right&&p.top<t.innerHeight&&p.left<t.innerWidth){if(u+=Xm(f),u>$m){s.length=o;break}f=new Promise(jp.bind(f)),s.push(f)}}}if(0<s.length)return t=Promise.race([Promise.all(s),new Promise(function(e){return setTimeout(e,500)})]).then(i,i),(n?Promise.allSettled([n.finished,t]):t).then(a,a);if(i(),n)return n.finished.then(a,a);a()},types:n});l.__reactViewTransition=u;var d=[];return u.ready.then(function(){for(var e=l.documentElement.getAnimations({subtree:!0}),t=0;t<e.length;t++){var n=e[t],r=n.effect,i=r.pseudoElement;if(i!=null&&i.startsWith(`::view-transition`)){d.push(n),n=r.getKeyframes();for(var a=i=void 0,s=!0,c=0;c<n.length;c++){var u=n[c],f=u.width;if(i===void 0)i=f;else if(i!==f){s=!1;break}if(f=u.height,a===void 0)a=f;else if(a!==f){s=!1;break}delete u.width,delete u.height,u.transform===`none`&&delete u.transform}s&&i!==void 0&&a!==void 0&&(r.setKeyframes(n),s=getComputedStyle(r.target,r.pseudoElement),s.width!==i||s.height!==a)&&(s=n[0],s.width=i,s.height=a,s=n[n.length-1],s.width=i,s.height=a,r.setKeyframes(n))}}o()},function(e){l.__reactViewTransition===u&&(l.__reactViewTransition=null);try{if(typeof e==`object`&&e)switch(e.name){case`InvalidStateError`:(e.message===`View transition was skipped because document visibility state is hidden.`||e.message===`Skipping view transition because document visibility state has become hidden.`||e.message===`Skipping view transition because viewport size changed.`||e.message===`Transition was aborted because of invalid state`)&&(e=null)}e!==null&&c(e)}finally{r(),i(),o()}}),u.finished.finally(function(){for(var e=0;e<d.length;e++)d[e].cancel();l.__reactViewTransition===u&&(l.__reactViewTransition=null),s()}),u}catch{return r(),i(),o(),null}}function Np(e,t){this._scope=document.documentElement,this._selector=`::view-transition-`+e+`(`+t+`)`}Np.prototype.animate=function(e,t){return t=typeof t==`number`?{duration:t}:S({},t),t.pseudoElement=this._selector,this._scope.animate(e,t)},Np.prototype.getAnimations=function(){for(var e=this._scope,t=this._selector,n=e.getAnimations({subtree:!0}),r=[],i=0;i<n.length;i++){var a=n[i].effect;a!==null&&a.target===e&&a.pseudoElement===t&&r.push(n[i])}return r},Np.prototype.getComputedStyle=function(){return getComputedStyle(this._scope,this._selector)};function Pp(e){return{name:e,group:new Np(`group`,e),imagePair:new Np(`image-pair`,e),old:new Np(`old`,e),new:new Np(`new`,e)}}function Fp(e){this._fragmentFiber=e,this._observers=this._eventListeners=null}Fp.prototype.addEventListener=function(e,t,n){var r=null,i=null;if(!(n!=null&&typeof n!=`boolean`&&(r=n.signal||null,r!==null&&r.aborted))){this._eventListeners===null&&(this._eventListeners=[]);var a=this._eventListeners;if(Bp(a,e,t,n)===-1){var o=this,s=t;n!=null&&typeof n!=`boolean`&&!0===n.once&&(s=function(r){o.removeEventListener(e,t,n),typeof t==`function`?t.call(this,r):t.handleEvent(r)}),r!==null&&(i=o.removeEventListener.bind(o,e,t,n),r.addEventListener(`abort`,i,{once:!0}),i=r.removeEventListener.bind(r,`abort`,i)),r=Rp(n),a.push({type:e,listener:t,optionsOrUseCapture:n,attachedListener:s,cleanup:i}),f(this._fragmentFiber.child,!1,Ip,e,s,r)}this._eventListeners=a}};function Ip(e,t,n,r){return _(e).addEventListener(t,n,r),!1}Fp.prototype.removeEventListener=function(e,t,n){var r=this._eventListeners;if(r!==null&&(t=Bp(r,e,t,n),t!==-1)){var i=r[t];n=i.attachedListener;var a=i.cleanup;i=Rp(i.optionsOrUseCapture),f(this._fragmentFiber.child,!1,Lp,e,n,i),r.splice(t,1),a!==null&&a()}};function Lp(e,t,n,r){return _(e).removeEventListener(t,n,r),!1}function Rp(e){return e!=null&&typeof e!=`boolean`&&(!0===e.once||e.signal instanceof AbortSignal)?{capture:e.capture,passive:e.passive}:e}function zp(e){return e==null?`c=0`:typeof e==`boolean`?`c=`+(e?`1`:`0`):`c=`+(e.capture?`1`:`0`)}function Bp(e,t,n,r){if(e.length===0)return-1;r=zp(r);for(var i=0;i<e.length;i++){var a=e[i];if(a.type===t&&a.listener===n&&zp(a.optionsOrUseCapture)===r)return i}return-1}Fp.prototype.dispatchEvent=function(e){var t=p(this._fragmentFiber);if(t===null)return!0;t=_(t);var n=this._eventListeners;if(n!==null&&0<n.length||!e.bubbles){var r=t.nodeType===9?t.createComment(``):document.createTextNode(``);if(n)for(var i=0;i<n.length;i++){var a=n[i];r.addEventListener(a.type,a.attachedListener,Rp(a.optionsOrUseCapture))}if(t.appendChild(r),e=r.dispatchEvent(e),n)for(i=0;i<n.length;i++)a=n[i],r.removeEventListener(a.type,a.attachedListener,Rp(a.optionsOrUseCapture));return t.removeChild(r),e}return t.dispatchEvent(e)},Fp.prototype.focus=function(e){f(this._fragmentFiber.child,!0,Vp,e,void 0,void 0)};function Vp(e,t){return e.tag!==6&&(e=_(e),pm(e,t))}Fp.prototype.focusLast=function(e){var t=[];f(this._fragmentFiber.child,!0,Hp,t,void 0,void 0);for(var n=t.length-1;0<=n&&!Vp(t[n],e);n--);};function Hp(e,t){return t.push(e),!1}Fp.prototype.blur=function(){var e=p(this._fragmentFiber);e!==null&&(e=_(e),e=lp(e).activeElement,e!==null&&f(this._fragmentFiber.child,!1,Up,e,void 0,void 0))};function Up(e,t){return e.tag!==6&&(e=_(e),e===t||e.contains(t)?(t.blur(),!0):!1)}Fp.prototype.observeUsing=function(e){this._observers===null&&(this._observers=new Set),this._observers.add(e),f(this._fragmentFiber.child,!1,Wp,e,void 0,void 0)};function Wp(e,t){return e.tag!==6&&(e=_(e),t.observe(e),!1)}Fp.prototype.unobserveUsing=function(e){var t=this._observers;if(t!==null&&t.has(e)){t.delete(e),f(this._fragmentFiber.child,!1,Gp,e,void 0,void 0);for(var n=t=0;n<Kp.length;n++){var r=Kp[n];r.fragmentInstance===this&&r.observer===e?e.unobserve(r.instance):Kp[t++]=r}Kp.length=t}};function Gp(e,t){return e.tag!==6&&(e=_(e),t.unobserve(e),!1)}var Kp=[],qp=!1;function Jp(e,t,n){Kp.push({fragmentInstance:e,observer:t,instance:n}),qp||(qp=!0,mm(function(){qp=!1;var e=Kp;Kp=[];for(var t=0;t<e.length;t++){var n=e[t];n.observer.unobserve(n.instance)}}))}Fp.prototype.getClientRects=function(){var e=[];return f(this._fragmentFiber.child,!1,Yp,e,void 0,void 0),e};function Yp(e,t){if(e.tag===6){e=e.stateNode;var n=e.ownerDocument.createRange();n.selectNodeContents(e),t.push.apply(t,n.getClientRects())}else e=_(e),t.push.apply(t,e.getClientRects());return!1}Fp.prototype.getRootNode=function(e){var t=p(this._fragmentFiber);return t===null?this:_(t).getRootNode(e)},Fp.prototype.compareDocumentPosition=function(e){var t=p(this._fragmentFiber);if(t===null)return Node.DOCUMENT_POSITION_DISCONNECTED;var n=[];f(this._fragmentFiber.child,!1,Hp,n,void 0,void 0);var r=_(t);if(n.length===0){if(n=r,m(this._fragmentFiber)){a:{for(t=this._fragmentFiber.return;t!==null;){if(t.tag===4){t=t.stateNode.containerInfo;break a}if(t.tag===3||t.tag===5||t.tag===27)break;t=t.return}t=null}t!=null&&(n=t)}t=this._fragmentFiber;var i=r=n.compareDocumentPosition(e);return n===e?i=Node.DOCUMENT_POSITION_CONTAINS:r&Node.DOCUMENT_POSITION_CONTAINED_BY&&(n=h(t)[1],n===null?i=Node.DOCUMENT_POSITION_PRECEDING:(e=_(n).compareDocumentPosition(e),i=e===0||e&Node.DOCUMENT_POSITION_FOLLOWING?Node.DOCUMENT_POSITION_FOLLOWING:Node.DOCUMENT_POSITION_PRECEDING)),i|=Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC}t=_(n[0]),i=_(n[n.length-1]);var a=m(this._fragmentFiber)?t.parentElement:r;if(a==null)return Node.DOCUMENT_POSITION_DISCONNECTED;r=a.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY,a=a.compareDocumentPosition(i)&Node.DOCUMENT_POSITION_CONTAINED_BY;var o=t.compareDocumentPosition(e),s=i.compareDocumentPosition(e),c=o&Node.DOCUMENT_POSITION_CONTAINED_BY||s&Node.DOCUMENT_POSITION_CONTAINED_BY;return s=r&&a&&o&Node.DOCUMENT_POSITION_FOLLOWING&&s&Node.DOCUMENT_POSITION_PRECEDING,t=r&&t===e||a&&i===e||c||s?Node.DOCUMENT_POSITION_CONTAINED_BY:!r&&t===e||!a&&i===e?Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC:o,t&Node.DOCUMENT_POSITION_DISCONNECTED||t&Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC||Xp(t,this._fragmentFiber,n[0],n[n.length-1],e)?t:Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC};function Xp(e,t,n,r,i){var a=Bt(i);if(e&Node.DOCUMENT_POSITION_CONTAINED_BY){if(n=!!a)a:{for(;a!==null;){if(a.tag===7&&(a===t||a.alternate===t)){n=!0;break a}a=a.return}n=!1}return n}if(e&Node.DOCUMENT_POSITION_CONTAINS){if(a===null)return a=i.ownerDocument,i===a||i===a.documentElement||i===a.body;a:{for(a=t,t=p(t);a!==null;){if(!(a.tag!==5&&a.tag!==3&&a.tag!==27||a!==t&&a.alternate!==t)){a=!0;break a}a=a.return}a=!1}return a}return e&Node.DOCUMENT_POSITION_PRECEDING?((t=!!a)&&!(t=a===n)&&(t=te(n,a,ee),t===null?t=!1:(f(t,!0,b,a,n),a=v,v=null,t=a!==null)),t):e&Node.DOCUMENT_POSITION_FOLLOWING?((t=!!a)&&!(t=a===r)&&(t=te(r,a,ee),t===null?t=!1:(f(t,!0,x,a,r),a=v,y=v=null,t=a!==null)),t):!1}function Zp(e,t){var n=e.ownerDocument.createRange();n.selectNodeContents(e),e=n.getBoundingClientRect(),window.scrollTo(window.scrollX+e.left,t?window.scrollY+e.top:window.scrollY+e.bottom-window.innerHeight)}Fp.prototype.scrollIntoView=function(e){if(typeof e==`object`)throw Error(i(566));var t=[];f(this._fragmentFiber.child,!1,Hp,t,void 0,void 0);var n=!1!==e;if(t.length===0){var r=h(this._fragmentFiber);if(r=n?r[1]||r[0]||p(this._fragmentFiber):r[0]||r[1],r===null)return;if(r.tag===6){e=_(r),Zp(e,n);return}if(r=_(r),r.nodeType!==9){if(r.nodeType===11){n=`host`in r?r.host:null,n!==null&&n.scrollIntoView(e);return}r.scrollIntoView(e)}}for(r=n?t.length-1:0;r!==(n?-1:t.length);){var a=t[r];a.tag===6?(a=_(a),Zp(a,n)):_(a).scrollIntoView(e),r+=n?-1:1}};function Qp(e,t){return e=_(e),$p(e,t),!1}function $p(e,t){e.reactFragments??=new Set,e.reactFragments.add(t)}function em(e,t){var n=t._eventListeners;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r];e.addEventListener(i.type,i.attachedListener,Rp(i.optionsOrUseCapture))}e.nodeType!==3&&(n=t._observers,n!==null&&n.forEach(function(n){for(var r=0,i=0;i<Kp.length;i++){var a=Kp[i];(a.fragmentInstance!==t||a.observer!==n||a.instance!==e)&&(Kp[r++]=a)}Kp.length=r,n.observe(e)}),$p(e,t))}function tm(e,t){var n=t._eventListeners;if(n!==null)for(var r=0;r<n.length;r++){var i=n[r];e.removeEventListener(i.type,i.attachedListener,Rp(i.optionsOrUseCapture))}e.nodeType!==3&&(n=t._observers,n!==null&&n.forEach(function(n){typeof n.rootMargin==`string`?Jp(t,n,e):n.unobserve(e)}),e.reactFragments!=null&&e.reactFragments.delete(t))}function nm(e){var t=e.firstChild;for(t&&t.nodeType===10&&(t=t.nextSibling);t;){var n=t;switch(t=t.nextSibling,n.nodeName){case`HTML`:case`HEAD`:case`BODY`:nm(n),zt(n);continue;case`SCRIPT`:case`STYLE`:continue;case`LINK`:if(n.rel.toLowerCase()===`stylesheet`)continue}e.removeChild(n)}}function rm(e,t,n,r){for(;e.nodeType===1;){var i=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&(e.nodeName!==`INPUT`||e.type!==`hidden`))break}else if(!r){if(t===`input`&&e.type===`hidden`){var a=i.name==null?null:``+i.name;if(i.type===`hidden`&&e.getAttribute(`name`)===a)return e}else return e}else if(!e[Lt])switch(t){case`meta`:if(!e.hasAttribute(`itemprop`))break;return e;case`link`:if(a=e.getAttribute(`rel`),a===`stylesheet`&&e.hasAttribute(`data-precedence`)||a!==i.rel||e.getAttribute(`href`)!==(i.href==null||i.href===``?null:i.href)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin)||e.getAttribute(`title`)!==(i.title==null?null:i.title))break;return e;case`style`:if(e.hasAttribute(`data-precedence`))break;return e;case`script`:if(a=e.getAttribute(`src`),(a!==(i.src==null?null:i.src)||e.getAttribute(`type`)!==(i.type==null?null:i.type)||e.getAttribute(`crossorigin`)!==(i.crossOrigin==null?null:i.crossOrigin))&&a&&e.hasAttribute(`async`)&&!e.hasAttribute(`itemprop`))break;return e;default:return e}if(e=lm(e.nextSibling),e===null)break}return null}function im(e,t,n){if(t===``)return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!n||(e=lm(e.nextSibling),e===null))return null;return e}function am(e,t){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!==`INPUT`||e.type!==`hidden`)&&!t||(e=lm(e.nextSibling),e===null))return null;return e}function om(e){return e.data===`$?`||e.data===`$~`}function sm(e){return e.data===`$!`||e.data===`$?`&&e.ownerDocument.readyState!==`loading`}function cm(e,t){var n=e.ownerDocument;if(e.data===`$~`)e._reactRetry=t;else if(e.data!==`$?`||n.readyState!==`loading`)t();else{var r=function(){t(),n.removeEventListener(`DOMContentLoaded`,r)};n.addEventListener(`DOMContentLoaded`,r),e._reactRetry=r}}function lm(e){for(;e!=null;e=e.nextSibling){var t=e.nodeType;if(t===1||t===3)break;if(t===8){if(t=e.data,t===`$`||t===`$!`||t===`$?`||t===`$~`||t===`&`||t===`F!`||t===`F`)break;if(t===`/$`||t===`/&`)return null}}return e}var um=null;function dm(e){e=e.nextSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`/$`||n===`/&`){if(t===0)return lm(e.nextSibling);t--}else n!==`$`&&n!==`$!`&&n!==`$?`&&n!==`$~`&&n!==`&`||t++}e=e.nextSibling}return null}function fm(e){e=e.previousSibling;for(var t=0;e;){if(e.nodeType===8){var n=e.data;if(n===`$`||n===`$!`||n===`$?`||n===`$~`||n===`&`){if(t===0)return e;t--}else n!==`/$`&&n!==`/&`||t++}e=e.previousSibling}return null}function pm(e,t){function n(){r=!0}if(e.ownerDocument.activeElement===e)return!0;var r=!1;try{e.ownerDocument.addEventListener(`focus`,n,!0),(e.focus||HTMLElement.prototype.focus).call(e,t)}finally{e.ownerDocument.removeEventListener(`focus`,n,!0)}return r}function mm(e){yp(function(){yp(function(t){return e(t)})})}function hm(e,t,n){switch(t=lp(n),e){case`html`:if(e=t.documentElement,!e)throw Error(i(452));return e;case`head`:if(e=t.head,!e)throw Error(i(453));return e;case`body`:if(e=t.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function gm(e,t,n){for(var r in n){var i=n[r];n.hasOwnProperty(r)&&i!=null&&$(e,t,r,null,rp,i)}n.dangerouslySetInnerHTML!=null&&(e.textContent=``),e.onclick===On&&(e.onclick=null),zt(e)}function _m(e){for(var t=e.attributes;t.length;)e.removeAttributeNode(t[0]);zt(e)}var vm=new Map,ym=new Set;function bm(e){if(typeof e.getRootNode==`function`){var t=e.getRootNode();if(t.nodeType===9||t.nodeType===11)return t}return e.nodeType===9?e:e.ownerDocument}var xm=T.d;T.d={f:Sm,r:Cm,D:Em,C:Dm,L:Om,m:km,X:jm,S:Am,M:Mm};function Sm(){var e=xm.f(),t=zd();return e||t}function Cm(e){var t=Vt(e);t!==null&&t.tag===5&&t.type===`form`?ac(t):xm.r(e)}var wm=typeof document>`u`?null:document;function Tm(e,t,n){var r=wm;if(r&&typeof t==`string`&&t){var i=pn(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),ym.has(i)||(ym.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),np(t,`link`,e),Wt(t),r.head.appendChild(t)))}}function Em(e){xm.D(e),Tm(`dns-prefetch`,e,null)}function Dm(e,t){xm.C(e,t),Tm(`preconnect`,e,t)}function Om(e,t,n){xm.L(e,t,n);var r=wm;if(r&&e&&t){var i=`link[rel="preload"][as="`+pn(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+pn(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+pn(n.imageSizes)+`"]`)):i+=`[href="`+pn(e)+`"]`;var a=i;switch(t){case`style`:a=Pm(e);break;case`script`:a=Rm(e)}if(!(vm.has(a)||(e=S({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),vm.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Fm(a))||t===`script`&&r.querySelector(zm(a))))){var o=r.createElement(`link`);np(o,`link`,e),t===`style`&&(o[Rt]=!0,o.onload=o.onerror=function(){Gt(o)}),Wt(o),r.head.appendChild(o)}}}function km(e,t){xm.m(e,t);var n=wm;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+pn(r)+`"][href="`+pn(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Rm(e)}if(!vm.has(a)&&(e=S({rel:`modulepreload`,href:e},t),vm.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(zm(a)))return}r=n.createElement(`link`),np(r,`link`,e),Wt(r),n.head.appendChild(r)}}}function Am(e,t,n){xm.S(e,t,n);var r=wm;if(r&&e){var i=Ut(r).hoistableStyles,a=Pm(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Fm(a)))s.loading=5;else{e=S({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=vm.get(a))&&Hm(e,n);var c=o=r.createElement(`link`);Wt(c),np(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Vm(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function jm(e,t){xm.X(e,t);var n=wm;if(n&&e){var r=Ut(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=S({src:e,async:!0},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Wt(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Mm(e,t){xm.M(e,t);var n=wm;if(n&&e){var r=Ut(n).hoistableScripts,i=Rm(e),a=r.get(i);a||(a=n.querySelector(zm(i)),a||(e=S({src:e,async:!0,type:`module`},t),(t=vm.get(i))&&Um(e,t),a=n.createElement(`script`),Wt(a),np(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Nm(e,t,n,r){var a=(a=Ae.current)?bm(a):null;if(!a)throw Error(i(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(n=Pm(n.href),t=Ut(a).hoistableStyles,r=t.get(n),r||(r={type:`style`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=Pm(n.href);var o=Ut(a).hoistableStyles,s=o.get(e);if(s||(a=a.ownerDocument||a,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=a.querySelector(Fm(e)))?o._p||(s.instance=o,s.state.loading=5):(o=vm.get(e),o||(o={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},vm.set(e,o)),Lm(a,e,o,s.state))),t&&r===null)throw Error(i(528,``));return s}if(t&&r!==null)throw Error(i(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(n=Rm(n),t=Ut(a).hoistableScripts,r=t.get(n),r||(r={type:`script`,instance:null,count:0,state:null},t.set(n,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Pm(e){return`href="`+pn(e)+`"`}function Fm(e){return`link[rel="stylesheet"][`+e+`]`}function Im(e){return S({},e,{"data-precedence":e.precedence,precedence:null})}function Lm(e,t,n,r){if(t=e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)){
9if(!0!==t[Rt]){r.loading=1;return}}else t=e.createElement(`link`),t[Rt]=!0,t.onload=t.onerror=Gt.bind(null,t),np(t,`link`,n),Wt(t),e.head.appendChild(t);r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2})}function Rm(e){return`[src="`+pn(e)+`"]`}function zm(e){return`script[async]`+e}function Bm(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+pn(n.href)+`"]`);if(r)return t.instance=r,Wt(r),r;var a=S({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),Wt(r),np(r,`style`,a),Vm(r,n.precedence,e),t.instance=r;case`stylesheet`:a=Pm(n.href);var o=e.querySelector(Fm(a));if(o)return t.state.loading|=4,t.instance=o,Wt(o),o;r=Im(n),(a=vm.get(a))&&Hm(r,a),o=(e.ownerDocument||e).createElement(`link`),Wt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),np(o,`link`,r),t.state.loading|=4,Vm(o,n.precedence,e),t.instance=o;case`script`:return o=Rm(n.src),(a=e.querySelector(zm(o)))?(t.instance=a,Wt(a),a):(r=n,(a=vm.get(o))&&(r=S({},n),Um(r,a)),e=e.ownerDocument||e,a=e.createElement(`script`),Wt(a),np(a,`link`,r),e.head.appendChild(a),t.instance=a);case`void`:return null;default:throw Error(i(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Vm(r,n.precedence,e));return t.instance}function Vm(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o<r.length;o++){var s=r[o];if(s.dataset.precedence===t)a=s;else if(a!==i)break}a?a.parentNode.insertBefore(e,a.nextSibling):(t=n.nodeType===9?n.head:n,t.insertBefore(e,t.firstChild))}function Hm(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.title??=t.title}function Um(e,t){e.crossOrigin??=t.crossOrigin,e.referrerPolicy??=t.referrerPolicy,e.integrity??=t.integrity}var Wm=null;function Gm(e,t,n){if(Wm===null){var r=new Map,i=Wm=new Map;i.set(n,r)}else i=Wm,r=i.get(n),r||(r=new Map,i.set(n,r));if(r.has(e))return r;for(r.set(e,null),n=n.getElementsByTagName(e),i=0;i<n.length;i++){var a=n[i];if(!(a[Lt]||a[At]||e===`link`&&a.getAttribute(`rel`)===`stylesheet`)&&a.namespaceURI!==`http://www.w3.org/2000/svg`){var o=a.getAttribute(t)||``;o=e+o;var s=r.get(o);s?s.push(a):r.set(o,[a])}}return r}function Km(e,t,n){e=e.ownerDocument||e,e.head.insertBefore(n,t===`title`?e.querySelector(`head > title`):null)}function qm(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Jm(e,t){return e===`img`&&t.src!=null&&t.src!==``&&t.onLoad==null&&t.loading!==`lazy`}function Ym(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Xm(e){return(e.width||100)*(e.height||100)*(typeof devicePixelRatio==`number`?devicePixelRatio:1)*.25}function Zm(e,t){typeof t.decode==`function`&&(e.imgCount++,t.complete||(e.imgBytes+=Xm(t),e.suspenseyImages.push(t)),e=rh.bind(e),t.decode().then(e,e))}function Qm(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=Pm(r.href),a=t.querySelector(Fm(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=nh.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,Wt(a);return}a=t.ownerDocument||t,r=Im(r),(i=vm.get(i))&&Hm(r,i),a=a.createElement(`link`),Wt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),np(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),
vendor: 4,918 bytes, line 9
9(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=nh.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var $m=0;function eh(e,t){return e.stylesheets&&e.count===0&&ah(e,e.stylesheets),0<e.count||0<e.imgCount?function(n){var r=setTimeout(function(){if(e.stylesheets&&ah(e,e.stylesheets),e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}},6e4+t);0<e.imgBytes&&$m===0&&($m=62500*op());var i=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&ah(e,e.stylesheets),e.unsuspend)){var t=e.unsuspend;e.unsuspend=null,t()}},(e.imgBytes>$m?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function th(e){if(e.count===0&&(e.imgCount===0||!e.waitingForImages)){if(e.stylesheets)ah(e,e.stylesheets);else if(e.unsuspend){var t=e.unsuspend;e.unsuspend=null,t()}}}function nh(){this.count--,th(this)}function rh(){this.imgCount--,th(this)}var ih=null;function ah(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,ih=new Map,t.forEach(oh,e),ih=null,nh.call(e))}function oh(e,t){if(!(t.state.loading&4)){var n=ih.get(e);if(n)var r=n.get(null);else{n=new Map,ih.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a<i.length;a++){var o=i[a];(o.nodeName===`LINK`||o.getAttribute(`media`)!==`not all`)&&(n.set(o.dataset.precedence,o),r=o)}r&&n.set(null,r)}i=t.instance,o=i.getAttribute(`data-precedence`),a=n.get(o)||r,a===r&&n.set(null,i),n.set(o,i),this.count++,r=nh.bind(this),i.addEventListener(`load`,r),i.addEventListener(`error`,r),a?a.parentNode.insertBefore(i,a.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(i,e.firstChild)),t.state.loading|=4}}var sh={$$typeof:ce,Provider:null,Consumer:null,_currentValue:E,_currentValue2:E,_threadCount:0};function ch(e,t,n,r,i,a,o,s,c){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=yt(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=yt(0),this.hiddenUpdates=yt(null),this.identifierPrefix=r,this.onUncaughtError=i,this.onCaughtError=a,this.onRecoverableError=o,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=c,this.transitionTypes=null,this.incompleteTransitions=new Map}function lh(e,t,n,r,i,a,o,s,c,l,u,d){return e=new ch(e,t,n,o,c,l,u,d,s),t=1,!0===a&&(t|=24),a=Vi(3,null,null,t),e.current=a,a.stateNode=e,t=La(),t.refCount++,e.pooledCache=t,t.refCount++,a.memoizedState={element:r,isDehydrated:n,cache:t},yo(a),e}function uh(e){return e?(e=zi,e):zi}function dh(e,t,n,r,i,a){i=uh(i),r.context===null?r.context=i:r.pendingContext=i,r=xo(t),r.payload={element:n},a=a===void 0?null:a,a!==null&&(r.callback=a),n=So(e,r,t),n!==null&&(Pd(n,e,t),Co(n,e,t))}function fh(e,t){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var n=e.retryLane;e.retryLane=n!==0&&n<t?n:t}}function ph(e,t){fh(e,t),(e=e.alternate)&&fh(e,t)}function mh(e){if(e.tag===13||e.tag===31){var t=Ii(e,67108864);t!==null&&Pd(t,e,67108864),ph(e,67108864)}}function hh(e){if(e.tag===13||e.tag===31){var t=jd();t=Tt(t);var n=Ii(e,t);n!==null&&Pd(n,e,t),ph(e,t)}}var gh=!0;function _h(e,t,n,r){var i=w.T;w.T=null;var a=T.p;try{T.p=2,yh(e,t,n,r)}finally{T.p=a,w.T=i}}function vh(e,t,n,r){var i=w.T;w.T=null;var a=T.p;try{T.p=8,yh(e,t,n,r)}finally{T.p=a,w.T=i}}function yh(e,t,n,r){if(gh){var i=bh(r);if(i===null)Kf(e,t,r,xh,n),Mh(e,r);else if(Ph(i,e,t,n,r))r.stopPropagation();else if(Mh(e,r),t&4&&-1<jh.indexOf(e)){for(;i!==null;){var a=Vt(i);if(a!==null)switch(a.tag){case 3:if(a=a.stateNode,a.current.memoizedState.isDehydrated){var o=pt(a.pendingLanes);if(o!==0){var s=a;for(s.pendingLanes|=2,s.entangledLanes|=2;o;){var c=1<<31-ot(o);s.entanglements[1]|=c,o&=~c}Ef(a),!(K&6)&&(gd=Je()+500,Df(0,!1))}}break;case 31:case 13:s=Ii(a,2),s!==null&&Pd(s,a,2),zd(),ph(a,2)}if(a=bh(r),a===null&&Kf(e,t,r,xh,n),a===i)break;i=a}i!==null&&r.stopPropagation()}else Kf(e,t,r,null,n)}}function bh(e){return e=An(e),Sh(e)}var xh=null;function Sh(e){if(xh=null,e=Bt(e),e!==null){var t=o(e);if(t===null)e=null;else{var n=t.tag;if(n===13){if(e=s(t),e!==null)return e;e=null}else if(n===31){if(e=c(t),e!==null)return e;e=null}else if(n===3){if(t.stateNode.current.memoizedState.isDehydrated)return t.tag===3?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null)}}return xh=e,null}function Ch(e){switch(e){case`beforetoggle`:case`cancel`:case`click`:case`close`:case`contextmenu`:case`copy`:case`cut`:case`auxclick`:case`dblclick`:case`dragend`:case`dragstart`:case`drop`:case`focusin`:case`focusout`:case`input`:case`invalid`:case`keydown`:case`keypress`:case`keyup`:case`mousedown`:case`mouseup`:case`paste`:case`pause`:case`play`
vendor: 6,003 bytes, line 9
9:case`pointercancel`:case`pointerdown`:case`pointerup`:case`ratechange`:case`reset`:case`seeked`:case`submit`:case`toggle`:case`touchcancel`:case`touchend`:case`touchstart`:case`volumechange`:case`change`:case`selectionchange`:case`textInput`:case`compositionstart`:case`compositionend`:case`compositionupdate`:case`beforeblur`:case`afterblur`:case`beforeinput`:case`blur`:case`fullscreenchange`:case`fullscreenerror`:case`focus`:case`hashchange`:case`popstate`:case`select`:case`selectstart`:return 2;case`drag`:case`dragenter`:case`dragexit`:case`dragleave`:case`dragover`:case`mousemove`:case`mouseout`:case`mouseover`:case`pointermove`:case`pointerout`:case`pointerover`:case`resize`:case`scroll`:case`touchmove`:case`wheel`:case`mouseenter`:case`mouseleave`:case`pointerenter`:case`pointerleave`:return 8;case`message`:switch(Ye()){case Xe:return 2;case Ze:return 8;case Qe:case $e:return 32;case et:return 268435456;default:return 32}default:return 32}}var wh=!1,Th=null,Eh=null,Dh=null,Oh=new Map,kh=new Map,Ah=[],jh=`mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset`.split(` `);function Mh(e,t){switch(e){case`focusin`:case`focusout`:Th=null;break;case`dragenter`:case`dragleave`:Eh=null;break;case`mouseover`:case`mouseout`:Dh=null;break;case`pointerover`:case`pointerout`:Oh.delete(t.pointerId);break;case`gotpointercapture`:case`lostpointercapture`:kh.delete(t.pointerId)}}function Nh(e,t,n,r,i,a){return e===null||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[i]},t!==null&&(t=Vt(t),t!==null&&mh(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,i!==null&&t.indexOf(i)===-1&&t.push(i),e)}function Ph(e,t,n,r,i){switch(t){case`focusin`:return Th=Nh(Th,e,t,n,r,i),!0;case`dragenter`:return Eh=Nh(Eh,e,t,n,r,i),!0;case`mouseover`:return Dh=Nh(Dh,e,t,n,r,i),!0;case`pointerover`:var a=i.pointerId;return Oh.set(a,Nh(Oh.get(a)||null,e,t,n,r,i)),!0;case`gotpointercapture`:return a=i.pointerId,kh.set(a,Nh(kh.get(a)||null,e,t,n,r,i)),!0}return!1}function Fh(e){var t=Bt(e.target);if(t!==null){var n=o(t);if(n!==null){if(t=n.tag,t===13){if(t=s(n),t!==null){e.blockedOn=t,Ot(e.priority,function(){hh(n)});return}}else if(t===31){if(t=c(n),t!==null){e.blockedOn=t,Ot(e.priority,function(){hh(n)});return}}else if(t===3&&n.stateNode.current.memoizedState.isDehydrated){e.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Ih(e){if(e.blockedOn!==null)return!1;for(var t=e.targetContainers;0<t.length;){var n=bh(e.nativeEvent);if(n===null){n=e.nativeEvent;var r=new n.constructor(n.type,n);kn=r,n.target.dispatchEvent(r),kn=null}else return t=Vt(n),t!==null&&mh(t),e.blockedOn=n,!1;t.shift()}return!0}function Lh(e,t,n){Ih(e)&&n.delete(t)}function Rh(){wh=!1,Th!==null&&Ih(Th)&&(Th=null),Eh!==null&&Ih(Eh)&&(Eh=null),Dh!==null&&Ih(Dh)&&(Dh=null),Oh.forEach(Lh),kh.forEach(Lh)}function zh(e,n){e.blockedOn===n&&(e.blockedOn=null,wh||(wh=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Rh)))}var Bh=null;function Vh(e){Bh!==e&&(Bh=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){Bh===e&&(Bh=null);for(var t=0;t<e.length;t+=3){var n=e[t],r=e[t+1],i=e[t+2];if(typeof r!=`function`){if(Sh(r||n)===null)continue;break}var a=Vt(n);a!==null&&(e.splice(t,3),t-=3,rc(a,{pending:!0,data:i,method:n.method,action:r},r,i))}}))}function Hh(e){function t(t){return zh(t,e)}Th!==null&&zh(Th,e),Eh!==null&&zh(Eh,e),Dh!==null&&zh(Dh,e),Oh.forEach(t),kh.forEach(t);for(var n=0;n<Ah.length;n++){var r=Ah[n];r.blockedOn===e&&(r.blockedOn=null)}for(;0<Ah.length&&(n=Ah[0],n.blockedOn===null);)Fh(n),n.blockedOn===null&&Ah.shift();if(n=(e.ownerDocument||e).$$reactFormReplay,n!=null)for(r=0;r<n.length;r+=3){var i=n[r],a=n[r+1],o=i[jt]||null;if(typeof a==`function`)o||Vh(n);else if(o){var s=null;if(a&&a.hasAttribute(`formAction`)){if(i=a,o=a[jt]||null)s=o.formAction;else if(Sh(i)!==null)continue}else s=o.action;typeof s==`function`?n[r+1]=s:(n.splice(r,3),r-=3),Vh(n)}}}function Uh(){function e(e){e.canIntercept&&e.info===`react-transition`&&e.intercept({handler:function(){return new Promise(function(e){return i=e})},focusReset:`manual`,scroll:`manual`})}function t(){i!==null&&(i(),i=null),r||setTimeout(n,20)}function n(){if(!r&&!navigation.transition){var e=navigation.currentEntry;e&&e.url!=null&&navigation.navigate(e.url,{state:e.getState(),info:`react-transition`,history:`replace`})}}if(typeof navigation==`object`){var r=!1,i=null;return navigation.addEventListener(`navigate`,e),navigation.addEventListener(`navigatesuccess`,t),navigation.addEventListener(`navigateerror`,t),setTimeout(n,100),function(){r=!0,navigation.removeEventListener(`navigate`,e),navigation.removeEventListener(`navigatesuccess`,t),navigation.removeEventListener(`navigateerror`,t),i!==null&&(i(),i=null)}}}function Wh(e){this._internalRoot=e}Gh.prototype.render=Wh.prototype.render=function(e){var t=this._internalRoot;if(t===null)throw Error(i(409));var n=t.current;dh(n,jd(),e,t,null,null)},Gh.prototype.unmount=Wh.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var t=e.containerInfo;dh(e.current,2,null,e,null,null),zd(),t[Mt]=null}};function Gh(e){this._internalRoot=e}Gh.prototype.unstable_scheduleHydration=function(e){if(e){var t=Dt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Ah.length&&t!==0&&t<Ah[n].priority;n++);Ah.splice(n,0,e),n===0&&Fh(e)}};var Kh=n.version;if(Kh!==`19.3.0`)throw Error(i(527,Kh,`19.3.0`));T.findDOMNode=function(e){var t=e._reactInternals;if(t===void 0)throw typeof e.render==`function`?Error(i(188)):(e=Object.keys(e).join(`,`),Error(i(268,e)));return e=u(t),e=e===null?null:d(e),e=e===null?null:e.stateNode,e};var qh={bundleType:0,version:`19.3.0`,rendererPackageName:`react-dom`,currentDispatcherRef:w,reconcilerVersion:`19.3.0`};
9if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`){var Jh=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Jh.isDisabled&&Jh.supportsFiber)try{rt=Jh.inject(qh),it=Jh}catch{}}e.createRoot=function(e,t){if(!a(e))throw Error(i(299));var n=!1,r=``,o=Tc,s=Ec,c=Dc;return t!=null&&(!0===t.unstable_strictMode&&(n=!0),t.identifierPrefix!==void 0&&(r=t.identifierPrefix),t.onUncaughtError!==void 0&&(o=t.onUncaughtError),t.onCaughtError!==void 0&&(s=t.onCaughtError),t.onRecoverableError!==void 0&&(c=t.onRecoverableError)),t=lh(e,1,!1,null,null,n,r,null,o,s,c,Uh),e[Mt]=t.current,Wf(e),new Wh(t)}})),sn=s(((e,t)=>{function n(){if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<`u`&&typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE==`function`)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=on()}))(),cn=`modulepreload`,ln=function(e){return`/`+e},un={},dn=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e=document.getElementsByTagName(`link`),i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?import.meta.resolve(e):new URL(e,import.meta.url).href}r=o(t.map(t=>{if(t=ln(t,n),t=s(t),t in un)return;un[t]=!0;let r=t.endsWith(`.css`);for(let n=e.length-1;n>=0;n--){let i=e[n];if(i.href===t&&(!r||i.rel===`stylesheet`))return}let i=document.createElement(`link`);if(i.rel=r?`stylesheet`:cn,r||(i.as=`script`),i.crossOrigin=``,i.href=t,a&&i.setAttribute(`nonce`,a),document.head.appendChild(i),r)return new Promise((e,n)=>{i.addEventListener(`load`,e),i.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${t}`)))})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},fn=/^(?:[a-z][a-z0-9+.-]*:|[\\/]{2})/i,pn=/^[\\/]{2}/;function mn(e,t){return t+e.replace(/\\/g,`/`)}var hn=`popstate`;function gn(e){return typeof e==`object`&&!!e&&`pathname`in e&&`search`in e&&`hash`in e&&`state`in e&&`key`in e}function _n(e={}){function t(e,t){let n=t.state?.masked,{pathname:r,search:i,hash:a}=n||e.location;return Sn(``,{pathname:r,search:i,hash:a},t.state&&t.state.usr||null,t.state&&t.state.key||`default`,n?{pathname:e.location.pathname,search:e.location.search,hash:e.location.hash}:void 0)}function n(e,t){return typeof t==`string`?t:Cn(t)}return Tn(t,n,null,e)}function vn(e,t){if(e===!1||e==null)throw Error(t)}function yn(e,t){if(!e){typeof console<`u`&&console.warn(t);try{throw Error(t)}catch{}}}function bn(){return Math.random().toString(36).substring(2,10)}function xn(e,t){return{usr:e.state,key:e.key,idx:t,masked:e.mask?{pathname:e.pathname,search:e.search,hash:e.hash}:void 0}}function Sn(e,t,n=null,r,i){return{pathname:typeof e==`string`?e:e.pathname,search:``,hash:``,...typeof t==`string`?wn(t):t,state:n,key:t&&t.key||r||bn(),mask:i}}function Cn({pathname:e=`/`,search:t=``,hash:n=``}){return t&&t!==`?`&&(e+=t.charAt(0)===`?`?t:`?`+t),n&&n!==`#`&&(e+=n.charAt(0)===`#`?n:`#`+n),e}function wn(e){let t={};if(e){let n=e.indexOf(`#`);n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf(`?`);r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function Tn(e,t,n,r={}){let{window:i=document.defaultView,v5Compat:a=!1}=r,o=i.history,s=`POP`,c=null,l=u();l??(l=0,o.replaceState({...o.state,idx:l},``));function u(){return(o.state||{idx:null}).idx}function d(){s=`POP`;let e=u(),t=e==null?null:e-l;l=e,c&&c({action:s,location:h.location,delta:t})}function f(e,t){s=`PUSH`;let r=gn(e)?e:Sn(h.location,e,t);n&&n(r,e),l=u()+1;let d=xn(r,l),f=h.createHref(r.mask||r);try{o.pushState(d,``,f)}catch(e){if(e instanceof DOMException&&e.name===`DataCloneError`)throw e;i.location.assign(f)}a&&c&&c({action:s,location:h.location,delta:1})}function p(e,t){s=`REPLACE`;let r=gn(e)?e:Sn(h.location,e,t);n&&n(r,e),l=u();let i=xn(r,l),d=h.createHref(r.mask||r);o.replaceState(i,``,d),a&&c&&c({action:s,location:h.location,delta:0})}function m(e){return En(i,e)}let h={get action(){return s},get location(){return e(i,o)},listen(e){if(c)throw Error(`A history only accepts one active listener`);return i.addEventListener(hn,d),c=e,()=>{i.removeEventListener(hn,d),c=null}},createHref(e){return t(i,e)},createURL:m,encodeLocation(e){let t=m(e);return{pathname:t.pathname,search:t.search,hash:t.hash}},push:f,replace:p,go(e){return o.go(e)}};return h}function En(e,t,n=!1){let r=`http://localhost`;e&&(r=e.location.origin===`null`?e.location.href:e.location.origin),vn(r,`No window.location.(origin|href) available to create URL`);let i=typeof t==`string`?t:Cn(t);return i=i.replace(/ $/,`%20`),!n&&pn.test(i)&&(i=r+i),new URL(i,r)}function Dn(e,t,n=`/`){return On(e,t,n,!1)}function On(e,t,n,r,i){let a=A((typeof t==`string`?wn(t):t).pathname||`/`,n);if(a==null)return null;let o=i??kn(e),s=null,c=Kn(a);for(let e=0;s==null&&e<o.length;++e)s=Hn(o[e],c,r);return s}function kn(e){let t=An(e);return Mn(t),t}function An(e,t=[],n=[],r=``,i=!1){let a=(e,a,o=i,s)=>{let c={relativePath:s===void 0?e.path||``:s,caseSensitive:e.caseSensitive===!0,childrenIndex:a,route:e};if(c.relativePath.startsWith(`/`)){if(!c.relativePath.startsWith(r)&&o)return;vn(c.relativePath.startsWith(r),`Absolute route path "${c.relativePath}" nested under path "${r}
9" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),c.relativePath=c.relativePath.slice(r.length)}let l=er([r,c.relativePath]),u=n.concat(c);e.children&&e.children.length>0&&(vn(e.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${l}".`),An(e.children,t,u,l,o)),(e.path!=null||e.index)&&t.push({path:l,score:Bn(l,e.index),routesMeta:u.map((e,t)=>{let[n,r]=Gn(e.relativePath,e.caseSensitive,t===u.length-1);return{...e,matcher:n,compiledParams:r}})})};return e.forEach((e,t)=>{if(e.path===``||!e.path?.includes(`?`))a(e,t);else for(let n of jn(e.path))a(e,t,!0,n)}),t}function jn(e){let t=e.split(`/`);if(t.length===0)return[];let[n,...r]=t,i=n.endsWith(`?`),a=n.replace(/\?$/,``);if(r.length===0)return i?[a,``]:[a];let o=jn(r.join(`/`)),s=[];return s.push(...o.map(e=>e===``?a:[a,e].join(`/`))),i&&s.push(...o),s.map(t=>e.startsWith(`/`)&&t===``?`/`:t)}function Mn(e){e.sort((e,t)=>e.score===t.score?Vn(e.routesMeta.map(e=>e.childrenIndex),t.routesMeta.map(e=>e.childrenIndex)):t.score-e.score)}var Nn=/^:[\w-]+$/,Pn=3,Fn=2,In=1,Ln=10,Rn=-2,zn=e=>e===`*`;function Bn(e,t){let n=e.split(`/`),r=n.length;return n.some(zn)&&(r+=Rn),t&&(r+=Fn),n.filter(e=>!zn(e)).reduce((e,t)=>e+(Nn.test(t)?Pn:t===``?In:Ln),r)}function Vn(e,t){return e.length===t.length&&e.slice(0,-1).every((e,n)=>e===t[n])?e[e.length-1]-t[t.length-1]:0}function Hn(e,t,n=!1){let{routesMeta:r}=e,i={},a=`/`,o=[];for(let e=0;e<r.length;++e){let s=r[e],c=e===r.length-1,l=a===`/`?t:t.slice(a.length)||`/`,u={path:s.relativePath,caseSensitive:s.caseSensitive,end:c},d=s.matcher&&s.compiledParams?Wn(u,l,s.matcher,s.compiledParams):Un(u,l),f=s.route;if(!d&&c&&n&&!r[r.length-1].route.index&&(d=Un({path:s.relativePath,caseSensitive:s.caseSensitive,end:!1},l)),!d)return null;
9Object.assign(i,d.params),o.push({params:i,pathname:er([a,d.pathname]),pathnameBase:nr(er([a,d.pathnameBase])),route:f}),d.pathnameBase!==`/`&&(a=er([a,d.pathnameBase]))}return o}function Un(e,t){typeof e==`string`&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=Gn(e.path,e.caseSensitive,e.end);return Wn(e,t,n,r)}function Wn(e,t,n,r){let i=t.match(n);if(!i)return null;let a=i[0],o=tr(a,1),s=i.slice(1);return{params:r.reduce((e,{paramName:t,isOptional:n},r)=>{if(t===`*`){let e=s[r]||``;o=tr(a.slice(0,a.length-e.length),1)}let i=s[r];return e[t]=n&&!i?void 0:(i||``).replace(/%2F/g,`/`),e},{}),pathname:a,pathnameBase:o,pattern:e}}function Gn(e,t=!1,n=!0){yn(e===`*`||!e.endsWith(`*`)||e.endsWith(`/*`),`Route path "${e}" will be treated as if it were "${e.replace(/\*$/,`/*`)}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${e.replace(/\*$/,`/*`)}".`);let r=[],i=`^`+e.replace(/\/*\*?$/,``).replace(/^\/*/,`/`).replace(/[\\.*+^${}|()[\]]/g,`\\$&`).replace(/\/:([\w-]+)(\?)?/g,(e,t,n,i,a)=>{if(r.push({paramName:t,isOptional:n!=null}),n){let t=a.charAt(i+e.length);return t&&t!==`/`?`/([^\\/]*)`:`(?:/([^\\/]*))?`}return`/([^\\/]+)`}).replace(/\/([\w-]+)\?(\/|$)/g,`(/$1)?$2`);return e.endsWith(`*`)?(r.push({paramName:`*`}),i+=e===`*`||e===`/*`?`(.*)$`:`(?:\\/(.+)|\\/*)$`):n?i+=`\\/*$`:e!==``&&e!==`/`&&(i+=`(?:(?=\\/|$))`),[new RegExp(i,t?void 0:`i`),r]}function Kn(e){try{return e.split(`/`).map(e=>decodeURIComponent(e).replace(/\//g,`%2F`)).join(`/`)}catch(t){return yn(!1,`The URL path "${e}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${t}).`),e}}function A(e,t){if(t===`/`)return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith(`/`)?t.length-1:t.length,r=e.charAt(n);return r&&r!==`/`?null:e.slice(n)||`/`}function qn(e,t=`/`){let{pathname:n,search:r=``,hash:i=``}=typeof e==`string`?wn(e):e,a;return n?(n=$n(n),a=n.startsWith(`/`)||n.startsWith(`\\`)?Jn(n.substring(1),`/`):Jn(n,t)):a=t,{pathname:a,search:rr(r),hash:ir(i)}}function Jn(e,t){let n=tr(t).split(`/`);return e.split(`/`).forEach(e=>{e===`..`?n.length>1&&n.pop():e!==`.`&&n.push(e)}),n.length>1?n.join(`/`):`/`}function Yn(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in <Link to="..."> and the router will parse it for you.`}function Xn(e){return e.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function Zn(e){let t=Xn(e);return t.map((e,n)=>n===t.length-1?e.pathname:e.pathnameBase)}function Qn(e,t,n,r=!1){let i;typeof e==`string`?i=wn(e):(i={...e},vn(!i.pathname||!i.pathname.includes(`?`),Yn(`?`,`pathname`,`search`,i)),vn(!i.pathname||!i.pathname.includes(`#`),Yn(`#`,`pathname`,`hash`,i)),vn(!i.search||!i.search.includes(`#`),Yn(`#`,`search`,`hash`,i)));let a=e===``||i.pathname===``,o=a?`/`:i.pathname,s;if(o==null)s=n;else{let e=t.length-1;if(!r&&o.startsWith(`..`)){let t=o.split(`/`);for(;t[0]===`..`;)t.shift(),--e;i.pathname=t.join(`/`)}s=e>=0?t[e]:`/`}let c=qn(i,s),l=o&&o!==`/`&&o.endsWith(`/`),u=(a||o===`.`)&&n.endsWith(`/`);return!c.pathname.endsWith(`/`)&&(l||u)&&(c.pathname+=`/`),c}var $n=e=>e.replace(/[\\/]{2,}/g,`/`),er=e=>$n(e.join(`/`));function tr(e,t=0){let n=e.length;for(;n>t&&e.charCodeAt(n-1)===47;)n--;return n===e.length?e:e.slice(0,n)}var nr=e=>tr(e).replace(/^\/*/,`/`),rr=e=>!e||e===`?`?``:e.startsWith(`?`)?e:`?`+e,ir=e=>!e||e===`#`?``:e.startsWith(`#`)?e:`#`+e,ar=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||``,this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function or(e){return e!=null&&typeof e.status==`number`&&typeof e.statusText==`string`&&typeof e.internal==`boolean`&&`data`in e}function sr(e){return er(e.map(e=>e.route.path).filter(Boolean))||`/`}var cr=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function lr(e,t){let n=e;if(typeof n!=`string`||!fn.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,i=!1;if(cr)try{let e=new URL(window.location.href),r=pn.test(n)?new URL(mn(n,e.protocol)):new URL(n),a=A(r.pathname,t);r.origin===e.origin&&a!=null?n=a+r.search+r.hash:i=!0}catch{yn(!1,`<Link to="${n}">
9 contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:i,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);var ur=new URL(`http://localhost`);function dr(e){if(e.createURL)return e.createURL(`/`);try{return new URL(e.createHref(`/`),ur)}catch{return ur}}function fr(e,t){return e.origin===t.origin&&(e.origin!==`null`||e.protocol===t.protocol&&e.host===t.host)}function pr(e,t){if(e.startsWith(`//`))return!0;let n=t.protocol.toLowerCase();return e.toLowerCase().startsWith(n)?t.host===``||e.slice(n.length).startsWith(`//`):!1}function mr(e,t,n,r){let i=null;try{i=e==null?null:new URL(e,n)}catch{}let a=new URL(t,n),o=i!=null&&!fr(i,n),s=!fr(a,n);if(r===`reject`){if(o||s)throw Error(`External navigation is not allowed`)}else if(s&&(i==null||!pr(e,i)||!fr(i,a)))throw Error(`External navigation is not allowed`)}var hr=[`POST`,`PUT`,`PATCH`,`DELETE`];new Set(hr);var gr=[`GET`,...hr];new Set(gr);var _r=[`about:`,`blob:`,`chrome:`,`chrome-untrusted:`,`content:`,`data:`,`devtools:`,`file:`,`filesystem:`,`javascript:`];function vr(e){try{return _r.includes(new URL(e).protocol)}catch{return!1}}var yr=E.createContext(null);yr.displayName=`DataRouter`;var br=E.createContext(null);br.displayName=`DataRouterState`;var xr=E.createContext(!1);function Sr(){return E.useContext(xr)}var Cr=E.createContext({isTransitioning:!1});Cr.displayName=`ViewTransition`;var wr=E.createContext(new Map);wr.displayName=`Fetchers`;var Tr=E.createContext(null);Tr.displayName=`Await`;var Er=E.createContext(null);Er.displayName=`Navigation`;var Dr=E.createContext(null);Dr.displayName=`Location`;var Or=E.createContext({outlet:null,matches:[],isDataRoute:!1});Or.displayName=`Route`;var kr=E.createContext(null);kr.displayName=`RouteError`;var Ar=`REACT_ROUTER_ERROR`,jr=`REDIRECT`,Mr=`ROUTE_ERROR_RESPONSE`;function Nr(e){if(e.startsWith(`${Ar}:${jr}:{`))try{let t=JSON.parse(e.slice(28));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`&&typeof t.location==`string`&&typeof t.reloadDocument==`boolean`&&typeof t.replace==`boolean`)return t}catch{}}function Pr(e){if(e.startsWith(`${Ar}:${Mr}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t==`object`&&t&&typeof t.status==`number`&&typeof t.statusText==`string`)return new ar(t.status,t.statusText,t.data)}catch{}}function Fr(e,{relative:t}={}){vn(Ir(),`useHref() may be used only in the context of a <Router> component.`);let{basename:n,navigator:r}=E.useContext(Er),{hash:i,pathname:a,search:o}=Ur(e,{relative:t}),s=a;return n!==`/`&&(s=a===`/`?n:er([n,a])),r.createHref({pathname:s,search:o,hash:i})}function Ir(){return E.useContext(Dr)!=null}function Lr(){return vn(Ir(),`useLocation() may be used only in the context of a <Router> component.`),E.useContext(Dr).location}var Rr=`You should call navigate() in a React.useEffect(), not when your component is first rendered.`;function zr(e){E.useContext(Er).static||E.useLayoutEffect(e)}function Br(){let{isDataRoute:e}=E.useContext(Or);return e?oi():Vr()}function Vr(){vn(Ir(),`useNavigate() may be used only in the context of a <Router> component.`);let e=E.useContext(yr),{basename:t,navigator:n}=E.useContext(Er),{matches:r}=E.useContext(Or),{pathname:i}=Lr(),a=JSON.stringify(Zn(r)),o=E.useRef(!1);return zr(()=>{o.current=!0}),E.useCallback((r,s={})=>{if(yn(o.current,Rr),!o.current)return;if(typeof r==`number`){n.go(r);return}let c=Qn(r,JSON.parse(a),i,s.relative===`path`);e==null&&t!==`/`&&(c.pathname=c.pathname===`/`?t:er([t,c.pathname])),mr(typeof r==`string`?r:Cn(r),n.createHref(c),dr(n),`reject`),(s.replace?n.replace:n.push)(c,s.state,s)},[t,n,a,i,e])}E.createContext(null);function Hr(){let{matches:e}=E.useContext(Or);return e[e.length-1]?.params??{}}function Ur(e,{relative:t}={}){let{matches:n}=E.useContext(Or),{pathname:r}=Lr(),i=JSON.stringify(Zn(n));return E.useMemo(()=>Qn(e,JSON.parse(i),r,t===`path`),[e,i,r,t])}function Wr(e,t){return Gr(e,t)}function Gr(e,t,n){vn(Ir(),`useRoutes() may be used only in the context of a <Router> component.`);let{navigator:r}=E.useContext(Er),{matches:i}=E.useContext(Or),a=i[i.length-1],o=a?a.params:{},s=a?a.pathname:`/`,c=a?a.pathnameBase:`/`,l=a&&a.route;{let e=l&&l.path||``;ci(s,!l||e.endsWith(`*`)||e.endsWith(`*?`),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${s}" (under <Route path="${e}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. 10 11Please change the parent <Route path="${e}"> to <Route path="${e===`/`?`*`:`${e}/*`}">.`)}let u=Lr(),d;if(t){let e=typeof t==`string`?wn(t):t;vn(c===`/`||e.pathname?.startsWith(c),`When overriding the location using \`<Routes location>\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${c}" but pathname "${e.pathname}" was given in the \`location\` prop.`),d=e}else d=u;let f=d.pathname||`/`,p=f;if(c!==`/`){let e=c.replace(/^\//,``).split(`/`);p=`/`+f.replace(/^\//,``).split(`/`).slice(e.length).join(`/`)}let m=n&&n.state.matches.length?n.state.matches.map(e=>Object.assign(e,{route:n.manifest[e.route.id]||e.route})):Dn(e,{pathname:p});yn(l||m!=null,`No routes matched location "${d.pathname}${d.search}${d.hash}" `),yn(m==null||m[m.length-1].route.element!==void 0||m[m.length-1].route.Component!==void 0||m[m.length-1].route.lazy!==void 0,`Matched leaf route at location "${d.pathname}${d.search}${d.hash}" does not have an element or Component. This means it will render an <Outlet /> with a null value by default resulting in an "empty" page.`);let h=Qr(m&&m.map(e=>Object.assign({},e,{params:Object.assign({},o,e.params),pathname:er([c,r.encodeLocation?r.encodeLocation(e.pathname.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathname]),pathnameBase:e.pathnameBase===`/`?c:er([c,r.encodeLocation?r.encodeLocation(e.pathnameBase.replace(/%/g,`%25`).replace(/\?/g,`%3F`).replace(/#/g,`%23`)).pathname:e.pathnameBase])})),i,n);return t&&h?E.createElement(Dr.Provider,{value:{location:{pathname:`/`,search:``,hash:``,state:null,key:`default`,mask:void 0,...d},navigationType:`POP`}},h):h}function Kr(){let e=ai(),t=or(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r=`rgba(200,200,200, 0.5)`,i={padding:`0.5rem`,backgroundColor:r},a={padding:`2px 4px`,backgroundColor:r},o=null;return console.error(`Error handled by React Router default ErrorBoundary:`,e),o=E.createElement(E.Fragment,null,E.createElement(`p`,null,`ð¿ Hey developer ð`),E.createElement(`p`,null,`You can provide a way better UX than this when your app throws errors by providing your own `,E.createElement(`code`,{style:a},`ErrorBoundary`),` or`,` `,E.createElement(`code`,{style:a},`errorElement`),` prop on your route.`)),E.createElement(E.Fragment,null,E.createElement(`h2`,null,`Unexpected Application
11Error!`),E.createElement(`h3`,{style:{fontStyle:`italic`}},t),n?E.createElement(`pre`,{style:i},n):null,o)}var qr=E.createElement(Kr,null),Jr=class extends E.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,t){return t.location!==e.location||t.revalidation!==`idle`&&e.revalidation===`idle`?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error===void 0?t.error:e.error,location:t.location,revalidation:e.revalidation||t.revalidation}}componentDidCatch(e,t){this.props.onError?this.props.onError(e,t):console.error(`React Router caught the following error during render`,e)}render(){let e=this.state.error;if(this.context&&typeof e==`object`&&e&&`digest`in e&&typeof e.digest==`string`){let t=Pr(e.digest);t&&(e=t)}let t=e===void 0?this.props.children:E.createElement(Or.Provider,{value:this.props.routeContext},E.createElement(kr.Provider,{value:e,children:this.props.component}));return this.context?E.createElement(Xr,{error:e},t):t}};Jr.contextType=xr;var Yr=new WeakMap;function Xr({children:e,error:t}){let{basename:n,navigator:r}=E.useContext(Er);if(typeof t==`object`&&t&&`digest`in t&&typeof t.digest==`string`){let e=Nr(t.digest);if(e){let i=Yr.get(t);if(i)throw i;let a=lr(e.location,n),o=a.absoluteURL||a.to;if(mr(e.location,o,dr(r),`allow-explicit`),vr(o))throw Error(`Invalid redirect location`);if(cr&&!Yr.get(t)){if(a.isExternal||e.reloadDocument)window.location.href=o;else{let n=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(a.to,{replace:e.replace}));throw Yr.set(t,n),n}}return E.createElement(`meta`,{httpEquiv:`refresh`,content:`0;url=${o}`})}}return e}function Zr({routeContext:e,match:t,children:n}){let r=E.useContext(yr);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),E.createElement(Or.Provider,{value:e},n)}function Qr(e,t=[],n){let r=n?.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let i=e,a=r?.errors;if(a!=null){let e=i.findIndex(e=>e.route.id&&a?.[e.route.id]!==void 0);vn(e>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(a).join(`,`)}`),i=i.slice(0,Math.min(i.length,e+1))}let o=!1,s=-1;if(n&&r){o=r.renderFallback;for(let e=0;e<i.length;e++){let t=i[e];if((t.route.HydrateFallback||t.route.hydrateFallbackElement)&&(s=e),t.route.id){let{loaderData:e,errors:a}=r,c=t.route.loader&&!e.hasOwnProperty(t.route.id)&&(!a||a[t.route.id]===void 0);if(t.route.lazy||c){n.isStatic&&(o=!0),i=s>=0?i.slice(0,s+1):[i[0]];break}}}}let c=n?.onError,l=r&&c?(e,t)=>{c(e,{location:r.location,params:r.matches?.[0]?.params??{},pattern:sr(r.matches),errorInfo:t})}:void 0;return i.reduceRight((e,n,c)=>{let u,d=!1,f=null,p=null;r&&(u=a&&n.route.id?a[n.route.id]:void 0,f=n.route.errorElement||qr,o&&(s<0&&c===0?(ci(`route-fallback`,!1,"No `HydrateFallback` element provided to render during initial hydration"),d=!0,p=null):s===c&&(d=!0,p=n.route.hydrateFallbackElement||null)));let m=t.concat(i.slice(0,c+1)),h=()=>{let t;return t=u?f:d?p:n.route.Component?E.createElement(n.route.Component,null):n.route.element?n.route.element:e,E.createElement(Zr,{match:n,routeContext:{outlet:e,matches:m,isDataRoute:r!=null},children:t})};return r&&(n.route.ErrorBoundary||n.route.errorElement||c===0)?E.createElement(Jr,{location:r.location,revalidation:r.revalidation,component:f,error:u,children:h(),routeContext:{outlet:null,matches:m,isDataRoute:!0},onError:l}):h()},null)}function $r(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function ei(e){let t=E.useContext(yr);return vn(t,$r(e)),t}function ti(e){let t=E.useContext(br);return vn(t,$r(e)),t}function ni(e){let t=E.useContext(Or);return vn(t,$r(e)),t}function ri(e){let t=ni(e),n=t.matches[t.matches.length-1];return vn(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function ii(){return ri(`useRouteId`)}function ai(){let e=E.useContext(kr),t=ti(`useRouteError`),n=ri(`useRouteError`);return e===void 0?t.errors?.[n]:e}function oi(){let{router:e}=ei(`useNavigate`),t=ri(`useNavigate`),n=E.useRef(!1);return zr(()=>{n.current=!0}),E.useCallback(async(r,i={})=>{yn(n.current,Rr),n.current&&(typeof r==`number`?await e.navigate(r):await e.navigate(r,{fromRouteId:t,...i}))},[e,t])}var si={};function ci(e,t,n){!t&&!si[e]&&(si[e]=!0,yn(!1,n))}E.memo(li);function li({routes:e,manifest:t,future:n,state:r,isStatic:i,onError:a}){return Gr(e,void 0,{manifest:t,state:r,isStatic:i,onError:a,future:n})}function ui({basename:e=`/`,children:t=null,location:n,navigationType:r=`POP`,navigator:i,static:a=!1,useTransitions:o}){vn(!Ir(),`You cannot render a <Router> inside another <Router>. You should never have more than one in your app.`);let s=e.replace(/^\/*/,`/`),c=E.useMemo(()=>({basename:s,navigator:i,static:a,useTransitions:o,future:{}}),[s,i,a,o]);typeof n==`string`&&(n=wn(n));let{pathname:l=`/`,search:u=``,hash:d=``,state:f=null,key:p=`default`,mask:m}=n,h=E.useMemo(()=>{let e=A(l,s);return e==null?null:{location:{pathname:e,search:u,hash:d,state:f,key:p,mask:m},navigationType:r}},[s,l,u,d,f,p,r,m]);
11return yn(h!=null,`<Router basename="${s}"> is not able to match the URL "${l}${u}${d}" because it does not start with the basename, so the <Router> won't render anything.`),h==null?null:E.createElement(Er.Provider,{value:c},E.createElement(Dr.Provider,{children:t,value:h}))}E.Component;var di=`get`,fi=`application/x-www-form-urlencoded`;function pi(e){return typeof HTMLElement<`u`&&e instanceof HTMLElement}function mi(e){return pi(e)&&e.tagName.toLowerCase()===`button`}function hi(e){return pi(e)&&e.tagName.toLowerCase()===`form`}function gi(e){return pi(e)&&e.tagName.toLowerCase()===`input`}function _i(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function vi(e,t){return e.button===0&&(!t||t===`_self`)&&!_i(e)}function yi(e=``){return new URLSearchParams(typeof e==`string`||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(e=>[n,e]):[[n,r]])},[]))}function bi(e,t){let n=yi(e);return t&&t.forEach((e,r)=>{n.has(r)||t.getAll(r).forEach(e=>{n.append(r,e)})}),n}var xi=null;function Si(){if(xi===null)try{new FormData(document.createElement(`form`),0),xi=!1}catch{xi=!0}return xi}var Ci=new Set([`application/x-www-form-urlencoded`,`multipart/form-data`,`text/plain`]);function wi(e){return e!=null&&!Ci.has(e)?(yn(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${fi}"`),null):e}function Ti(e,t){let n,r,i,a,o;if(hi(e)){let o=e.getAttribute(`action`);r=o?A(o,t):null,n=e.getAttribute(`method`)||di,i=wi(e.getAttribute(`enctype`))||fi,a=new FormData(e)}else if(mi(e)||gi(e)&&(e.type===`submit`||e.type===`image`)){let o=e.form;if(o==null)throw Error(`Cannot submit a <button> or <input type="submit"> without a <form>`);let s=e.getAttribute(`formaction`)||o.getAttribute(`action`);if(r=s?A(s,t):null,n=e.getAttribute(`formmethod`)||o.getAttribute(`method`)||di,i=wi(e.getAttribute(`formenctype`))||wi(o.getAttribute(`enctype`))||fi,a=new FormData(o,e),!Si()){let{name:t,type:n,value:r}=e;if(n===`image`){let e=t?`${t}.`:``;a.append(`${e}x`,`0`),a.append(`${e}y`,`0`)}else t&&a.append(t,r)}}else if(pi(e))throw Error(`Cannot submit element that is not <form>, <button>, or <input type="submit|image">`);else n=di,r=null,i=fi,o=e;return a&&i===`text/plain`&&(o=a,a=void 0),{action:r,method:n.toLowerCase(),encType:i,formData:a,body:o}}Object.getOwnPropertyNames(Object.prototype).sort().join(`\0`);function Ei(e,t){if(e===!1||e==null)throw Error(t)}function Di(e,t,n,r){let i=typeof e==`string`?new URL(e,typeof window>`u`?`server://singlefetch/`:window.location.origin):e;return i.pathname=n?i.pathname.endsWith(`/`)?`${i.pathname}_.${r}`:`${i.pathname}.${r}`:i.pathname===`/`?`_root.${r}`:t&&A(i.pathname,t)===`/`?`${tr(t)}/_root.${r}`:`${tr(i.pathname)}.${r}`,i}async function Oi(e,t){if(e.id in t)return t[e.id];try{let n=await dn(()=>import(e.module),[]);return t[e.id]=n,n}catch(t){return console.error(`Error loading route module \`${e.module}\`, reloading page...`),console.error(t),window.__reactRouterContext&&window.__reactRouterContext.isSpaMode,window.location.reload(),new Promise(()=>{})}}function ki(e){return e!=null&&typeof e.page==`string`}function Ai(e){return e==null?!1:e.href==null?e.rel===`preload`&&typeof e.imageSrcSet==`string`&&typeof e.imageSizes==`string`:typeof e.rel==`string`&&typeof e.href==`string`}async function ji(e,t,n){return Ii((await Promise.all(e.map(async e=>{let r=t.routes[e.route.id];if(r){let e=await Oi(r,n);return e.links?e.links():[]}return[]}))).flat(1).filter(Ai).filter(e=>e.rel===`stylesheet`||e.rel===`preload`).map(e=>e.rel===`stylesheet`?{...e,rel:`prefetch`,as:`style`}:{...e,rel:`prefetch`}))}function Mi(e,t,n,r,i,a){let o=(e,t)=>!n[t]||e.route.id!==n[t].route.id,s=(e,t)=>n[t].pathname!==e.pathname||n[t].route.path?.endsWith(`*`)&&n[t].params[`*`]!==e.params[`*`];return a===`assets`?t.filter((e,t)=>o(e,t)||s(e,t)):a===`data`?t.filter((t,a)=>{let c=r.routes[t.route.id];if(!c||!c.hasLoader)return!1;if(o(t,a)||s(t,a))return!0;if(t.route.shouldRevalidate){let r=t.route.shouldRevalidate({currentUrl:new URL(i.pathname+i.search+i.hash,window.origin),currentParam
11s:n[0]?.params||{},nextUrl:new URL(e,window.origin),nextParams:t.params,defaultShouldRevalidate:!0});if(typeof r==`boolean`)return r}return!0}):[]}function Ni(e,t,{includeHydrateFallback:n}={}){return Pi(e.map(e=>{let r=t.routes[e.route.id];if(!r)return[];let i=[r.module];return r.clientActionModule&&(i=i.concat(r.clientActionModule)),r.clientLoaderModule&&(i=i.concat(r.clientLoaderModule)),n&&r.hydrateFallbackModule&&(i=i.concat(r.hydrateFallbackModule)),r.imports&&(i=i.concat(r.imports)),i}).flat(1))}function Pi(e){return[...new Set(e)]}function Fi(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function Ii(e,t){let n=new Set,r=new Set(t);return e.reduce((e,i)=>{if(t&&!ki(i)&&i.as===`script`&&i.href&&r.has(i.href))return e;let a=JSON.stringify(Fi(i));return n.has(a)||(n.add(a),e.push({key:a,link:i})),e},[])}function Li(){let e=E.useContext(yr);return Ei(e,`You must render this element inside a <DataRouterContext.Provider> element`),e}function Ri(){let e=E.useContext(br);return Ei(e,`You must render this element inside a <DataRouterStateContext.Provider> element`),e}var zi=E.createContext(void 0);zi.displayName=`FrameworkContext`;function Bi(){let e=E.useContext(zi);return Ei(e,`You must render this element inside a <HydratedRouter> element`),e}function Vi(e,t){let n=E.useContext(zi),[r,i]=E.useState(!1),[a,o]=E.useState(!1),{onFocus:s,onBlur:c,onMouseEnter:l,onMouseLeave:u,onTouchStart:d}=t,f=E.useRef(null);E.useEffect(()=>{if(e===`render`&&o(!0),e===`viewport`){let e=new IntersectionObserver(e=>{e.forEach(e=>{o(e.isIntersecting)})},{threshold:.5});return f.current&&e.observe(f.current),()=>{e.disconnect()}}},[e]),E.useEffect(()=>{if(r){let e=setTimeout(()=>{o(!0)},100);return()=>{clearTimeout(e)}}},[r]);let p=()=>{i(!0)},m=()=>{i(!1),o(!1)};return n?e===`intent`?[a,f,{onFocus:Hi(s,p),onBlur:Hi(c,m),onMouseEnter:Hi(l,p),onMouseLeave:Hi(u,m),onTouchStart:Hi(d,p)}]:[a,f,{}]:[!1,f,{}]}function Hi(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function Ui({page:e,...t}){let n=Sr(),{nonce:r}=Bi(),{router:i}=Li(),a=E.useMemo(()=>Dn(i.routes,e,i.basename),[i.routes,e,i.basename]);return a?(t.nonce==null&&r&&(t={...t,nonce:r}),n?E.createElement(Gi,{page:e,matches:a,...t}):E.createElement(Ki,{page:e,matches:a,...t})):null}function Wi(e){let{manifest:t,routeModules:n}=Bi(),[r,i]=E.useState([]);return E.useEffect(()=>{let r=!1;return ji(e,t,n).then(e=>{r||i(e)}),()=>{r=!0}},[e,t,n]),r}function Gi({page:e,matches:t,...n}){let r=Lr(),{future:i}=Bi(),{basename:a}=Li(),o=E.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=Di(e,a,i.v8_trailingSlashAwareDataRequests,`rsc`),o=!1,s=[];for(let e of t)typeof e.route.shouldRevalidate==`function`?o=!0:s.push(e.route.id);return o&&s.length>0&&n.searchParams.set(`_routes`,s.join(`,`)),[n.pathname+n.search]},[a,i.v8_trailingSlashAwareDataRequests,e,r,t]);return E.createElement(E.Fragment,null,o.map(e=>E.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})))}function Ki({page:e,matches:t,...n}){let r=Lr(),{future:i,manifest:a,routeModules:o}=Bi(),{basename:s}=Li(),{loaderData:c,matches:l}=Ri(),u=E.useMemo(()=>Mi(e,t,l,a,r,`data`),[e,t,l,a,r]),d=E.useMemo(()=>Mi(e,t,l,a,r,`assets`),[e,t,l,a,r]),f=E.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let n=new Set,l=!1;if(t.forEach(e=>{let t=a.routes[e.route.id];t&&t.hasLoader&&(!u.some(t=>t.route.id===e.route.id)&&e.route.id in c&&o[e.route.id]?.shouldRevalidate||t.hasClientLoader?l=!0:n.add(e.route.id))}),n.size===0)return[];let d=Di(e,s,i.v8_trailingSlashAwareDataRequests,`data`);return l&&n.size>0&&d.searchParams.set(`_routes`,t.filter(e=>n.has(e.route.id)).map(e=>e.route.id).join(`,`)),[d.pathname+d.search]},[s,i.v8_trailingSlashAwareDataRequests,c,r,a,u,t,e,o]),p=E.useMemo(()=>Ni(d,a),[d,a]),m=Wi(d);return E.createElement(E.Fragment,null,f.map(e=>E.createElement(`link`,{key:e,rel:`prefetch`,as:`fetch`,href:e,...n})),p.map(e=>E.createElement(`link`,{key:e,rel:`modulepreload`,href:e,...n})),m.map(({key:e,link:t})=>E.createElement(`link`,{key:e,nonce:n.nonce,...t,crossOrigin:t.crossOrigin??n.crossOrigin})))}function qi(...e){return t=>
11{e.forEach(e=>{typeof e==`function`?e(t):e!=null&&(e.current=t)})}}E.Component;var Ji=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;try{Ji&&(window.__reactRouterVersion=`7.18.4`)}catch{}function Yi({basename:e,children:t,useTransitions:n,window:r}){let i=E.useRef();i.current??=_n({window:r,v5Compat:!0});let a=i.current,[o,s]=E.useState({action:a.action,location:a.location}),c=E.useCallback(e=>{n===!1?s(e):E.startTransition(()=>s(e))},[n]);return E.useLayoutEffect(()=>a.listen(c),[a,c]),E.createElement(ui,{basename:e,children:t,location:o.location,navigationType:o.action,navigator:a,useTransitions:n})}var j=E.forwardRef(function({onClick:e,discover:t=`render`,prefetch:n=`none`,relative:r,reloadDocument:i,replace:a,mask:o,state:s,target:c,to:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m){let{basename:h,navigator:g,useTransitions:_}=E.useContext(Er),v=typeof l==`string`&&fn.test(l),y=lr(l,h);l=y.to;let b=Fr(l,{relative:r}),x=Lr(),ee=null;if(o){let e=Qn(o,[],x.mask?x.mask.pathname:`/`,!0);h!==`/`&&(e.pathname=e.pathname===`/`?h:er([h,e.pathname])),ee=g.createHref(e)}let[te,S,C]=Vi(n,p),ne=ea(l,{replace:a,mask:o,state:s,target:c,preventScrollReset:u,relative:r,viewTransition:d,defaultShouldRevalidate:f,useTransitions:_});function re(t){e&&e(t),t.defaultPrevented||ne(t)}let ie=!(y.isExternal||i),ae=E.createElement(`a`,{...p,...C,href:(ie?ee:void 0)||y.absoluteURL||b,onClick:ie?re:e,ref:qi(m,S),target:c,"data-discover":!v&&t===`render`?`true`:void 0});return te&&!v?E.createElement(E.Fragment,null,ae,E.createElement(Ui,{page:b})):ae});j.displayName=`Link`;var Xi=E.forwardRef(function({"aria-current":e=`page`,caseSensitive:t=!1,className:n=``,end:r=!1,style:i,to:a,viewTransition:o,children:s,...c},l){let u=Ur(a,{relative:c.relative}),d=Lr(),f=E.useContext(br),{navigator:p,basename:m}=E.useContext(Er),h=f!=null&&oa(u)&&o===!0,g=p.encodeLocation?p.encodeLocation(u).pathname:u.pathname,_=d.pathname,v=f&&f.navigation&&f.navigation.location?f.navigation.location.pathname:null;t||(_=_.toLowerCase(),v=v?v.toLowerCase():null,g=g.toLowerCase()),v&&m&&(v=A(v,m)||v);let y=g!==`/`&&g.endsWith(`/`)?g.length-1:g.length,b=_===g||!r&&_.startsWith(g)&&_.charAt(y)===`/`,x=v!=null&&(v===g||!r&&v.startsWith(g)&&v.charAt(g.length)===`/`),ee={isActive:b,isPending:x,isTransitioning:h},te=b?e:void 0,S;S=typeof n==`function`?n(ee):[n,b?`active`:null,x?`pending`:null,h?`transitioning`:null].filter(Boolean).join(` `);let C=typeof i==`function`?i(ee):i;return E.createElement(j,{...c,"aria-current":te,className:S,ref:l,style:C,to:a,viewTransition:o},typeof s==`function`?s(ee):s)});Xi.displayName=`NavLink`;var Zi=E.forwardRef(({discover:e=`render`,fetcherKey:t,navigate:n,reloadDocument:r,replace:i,state:a,method:o=di,action:s,onSubmit:c,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f,...p},m)=>{let{useTransitions:h}=E.useContext(Er),g=ia(),_=aa(s,{relative:l}),v=o.toLowerCase()===`get`?`get`:`post`,y=typeof s==`string`&&fn.test(s);return E.createElement(`form`,{ref:m,method:v,action:_,onSubmit:r?c:e=>{if(c&&c(e),e.defaultPrevented)return;e.preventDefault();let r=e.nativeEvent.submitter,s=r?.getAttribute(`formmethod`)||o,p=()=>g(r||e.currentTarget,{fetcherKey:t,method:s,navigate:n,replace:i,state:a,relative:l,preventScrollReset:u,viewTransition:d,defaultShouldRevalidate:f});h&&n!==!1?E.startTransition(()=>p()):p()},...p,"data-discover":!y&&e===`render`?`true`:void 0})});Zi.displayName=`Form`;function Qi(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function $i(e){let t=E.useContext(yr);return vn(t,Qi(e)),t}function ea(e,{target:t,replace:n,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c,useTransitions:l}={}){let u=Br(),d=Lr(),f=Ur(e,{relative:o});return E.useCallback(p=>{if(vi(p,t)){p.preventDefault();let t=n===void 0?Cn(d)===Cn(f):n,m=()=>u(e,{replace:t,mask:r,state:i,preventScrollReset:a,relative:o,viewTransition:s,defaultShouldRevalidate:c});l?E.startTransition(()=>m()):m()}},[d,u,f,n,r,i,t,e,a,o,s,c,l])}function ta(e){yn(typeof URLSearchParams<`u`,"You cannot use the `useSearchParams` hook in a browser that does not support the URLSearchParams API. If you need to support Internet Explorer 11, we recommend you load a polyfill such as https://github.com/ungap/url-search-params.");let t=E.useRef(yi(e)),n=E.useRef(!1),r=Lr(),i=E.useMemo(()=>bi(r.search,n.current?null:t.current),[r.search]),a=Br();return[i,E.useCallback((e,t)=>{let r=yi(typeof e==`function`?e(new URLSearchParams(i)):e);n.current=!0,a(`?`+r,t)},[a,i])]}var na=0,ra=()=>`__${String(++na)}__`;function ia(){let{router:e}
11=$i(`useSubmit`),{basename:t}=E.useContext(Er),n=ii(),r=e.fetch,i=e.navigate;return E.useCallback(async(e,a={})=>{let{action:o,method:s,encType:c,formData:l,body:u}=Ti(e,t);if(a.navigate===!1){let e=a.fetcherKey||ra();await r(e,n,a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,flushSync:a.flushSync})}else await i(a.action||o,{defaultShouldRevalidate:a.defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:l,body:u,formMethod:a.method||s,formEncType:a.encType||c,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,i,t,n])}function aa(e,{relative:t}={}){let{basename:n}=E.useContext(Er),r=E.useContext(Or);vn(r,`useFormAction must be used inside a RouteContext`);let[i]=r.matches.slice(-1),a={...Ur(e||`.`,{relative:t})},o=Lr();if(e==null){a.search=o.search;let e=new URLSearchParams(a.search),t=e.getAll(`index`);if(t.some(e=>e===``)){e.delete(`index`),t.filter(e=>e).forEach(t=>e.append(`index`,t));let n=e.toString();a.search=n?`?${n}`:``}}return(!e||e===`.`)&&i.route.index&&(a.search=a.search?a.search.replace(/^\?/,`?index&`):`?index`),n!==`/`&&(a.pathname=a.pathname===`/`?n:er([n,a.pathname])),Cn(a)}function oa(e,{relative:t}={}){let n=E.useContext(Cr);vn(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=$i(`useViewTransitionState`),i=Ur(e,{relative:t});if(!n.isTransitioning)return!1;let a=A(n.currentLocation.pathname,r)||n.currentLocation.pathname,o=A(n.nextLocation.pathname,r)||n.nextLocation.pathname;return Un(i.pathname,o)!=null||Un(i.pathname,a)!=null}var sa=`https://www.electriciansinleamingtonspa.co.uk`;function ca({title:e,description:t,ogTitle:n,ogDescription:r,ogImage:i,canonicalPath:a,jsonLd:o,noindex:s=!1}){let c=Lr(),l=e.includes(`IntoLec`)||e.includes(`Intolec`)?e:`${e} - Intolec Ltd`,u=a?`${sa}${a}`:`${sa}${c.pathname}`;(0,E.useEffect)(()=>{document.title=l;let e=document.querySelector(`meta[name="description"]`);e||(e=document.createElement(`meta`),e.name=`description`,document.head.appendChild(e)),e.content=t;let a=document.querySelector(`meta[name="robots"]`);if(s){let e=a;e||(e=document.createElement(`meta`),e.name=`robots`,document.head.appendChild(e)),e.content=`noindex, follow`}else a&&a.remove();let c=document.querySelector(`link[rel="canonical"]`);if(s)c&&c.remove();else{let e=c;e||(e=document.createElement(`link`),e.rel=`canonical`,document.head.appendChild(e)),e.href=u}let d=document.querySelector(`meta[property="og:title"]`);d||(d=document.createElement(`meta`),d.setAttribute(`property`,`og:title`),document.head.appendChild(d)),d.content=n||l;let f=document.querySelector(`meta[property="og:description"]`);f||(f=document.createElement(`meta`),f.setAttribute(`property`,`og:description`),document.head.appendChild(f)),f.content=r||t;let p=document.querySelector(`meta[property="og:url"]`);if(p||(p=document.createElement(`meta`),p.setAttribute(`property`,`og:url`),document.head.appendChild(p)),p.content=u,i){let e=document.querySelector(`meta[property="og:image"]`);e||(e=document.createElement(`meta`),e.setAttribute(`property`,`og:image`),document.head.appendChild(e)),e.content=i}let m=document.querySelector(`meta[name="twitter:title"]`);m||(m=document.createElement(`meta`),m.name=`twitter:title`,document.head.appendChild(m)),m.content=n||l;let h=document.querySelector(`meta[name="twitter:description"]`);if(h||(h=document.createElement(`meta`),h.name=`twitter:description`,document.head.appendChild(h)),h.content=r||t,o){let e=document.getElementById(`page-schema-jsonld`);e||(e=document.createElement(`script`),e.id=`page-schema-jsonld`,e.type=`application/ld+json`,document.head.appendChild(e)),e.textContent=JSON.stringify(o)}return()=>{let e=document.getElementById(`page-schema-jsonld`);e&&e.remove()}},[l,t,u,n,r,i,o,s])}var la=s((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),M=s(((e,t)=>{t.exports=la()}))();function ua(){let e=Lr();return ca({title:`Page Not Found - IntoLec Ltd`,description:`Sorry, this page does not exist. Browse our electrical services in Leamington Spa and Warwickshire or call 01926 768080.`,noindex:!0}),(0,M.jsxs)(`div`,{className:`relative flex flex-col items-center justify-center h-screen text-center px-4`,children:[(0,M.jsx)(`h1`,{className:`absolute bottom-0 text-9xl md:text-[12rem] font-black text-gray-50 select-none pointer-events-none z-0`,children:`404`}),(0,M.jsxs)(`div`,{className:`relative z-10`,children:[(0,M.jsx)(`h1`,{className:`text-xl md:text-2xl font-semibold mt-6`,children:`This page has not been generated`}),(0,M.jsx)(`p`,{className:`mt-2 text-base text-gray-400 font-mono`,children:e.pathname}),(0,M.jsx)(`p`,{className:`mt-4 text-lg md:text-xl text-gray-500`,children:`Tell me more about this page, so I can generate it`})]})]})}function N(){return(0,M.jsx)(`div`,{className:`w-full bg-[#14532D] text-white text-sm`,children:(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6 flex items-center justify-between h-10`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,M.jsx)(`a`,{href:`https://www.facebook.com/electricianinleamington`,target:`_blank`,rel:`noopener noreferrer nofollow`,"aria-label":`Facebook`,className:`w-6 h-6 flex items-center justify-center text-white hover:text-[#22C55E] transition-colors`,children:(0,M.jsx)(`i`,{className:`ri-facebook-fill text-base`})}),(0,M.jsx)(`a`,{href:`https://www.instagram.com/intolec_1td/`,target:`_blank`,rel:`noopener noreferrer nofollow`,"aria-label":`Instagram`,className:`w-6 h-6 flex items-center justify-center text-white hover:text-[#22C55E] transition-colors`,children:(0,M.jsx)(`i`,{className:`ri-instagram-line text-base`})})]}),(0,M.jsx)(`span`,{className:`hidden sm:block font-medium tracking-wide text-xs text-gray-300 whitespace-nowrap`,children:`Your Local Electrician & Renewable Energy Specialist`}),(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`flex items-center gap-2 font-bold text-white hover:text-[#22C55E] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-sm`}),`01926 768080`]})]})})}var P=[{title:`Installation & Upgrades`,icon:`ri-plug-line`,items:[{label:`Electrical Installations`,slug:`electrical-installations-electrician-leamington-spa`},{label:`Rewiring`,slug:`rewiring-electrician-leamington-spa`},{label:`Consumer Unit Upgrades`,slug:`consumer-unit-upgrades-electrician-leamington-spa`},{label:`Lighting Installation`,slug:`lighting-installation-electrician-leamington-spa`},{label:`LED Upgrades`,slug:`led-upgrades-electrician-leamington-spa`},{label:`Electric Showers`,slug:`electric-shower-installations-electrician-leamington-spa`}
11,{label:`Kitchen Electrics`,slug:`kitchen-electrics-electrician-leamington-spa`},{label:`Extra Sockets & Lights`,slug:`extra-sockets-and-lights-electrician-leamington-spa`},{label:`Light Fitting Replacements`,slug:`light-fitting-replacements-electrician-leamington-spa`}]},{title:`Lighting & Security`,icon:`ri-lightbulb-flash-line`,items:[{label:`Outdoor Garden Lighting`,slug:`outdoor-garden-lighting-electrician-leamington-spa`},{label:`Security Lighting`,slug:`outdoor-security-lighting-electrician-leamington-spa`},{label:`Lighting Design`,slug:`lighting-design-and-installation-electrician-leamington-spa`},{label:`Socket & Switch Installation`,slug:`socket-and-switch-installation-electrician-leamington-spa`}]},{title:`EV & Renewables`,icon:`ri-charging-pile-line`,items:[{label:`EV Charger Installation`,slug:`ev-charger-installer-electrician-leamington-spa`},{label:`OZEV Registered`,slug:`ozev-registered-electrician-leamington-spa`},{label:`Solar Panels`,slug:`solar-and-battery-storage-system-electrician-leamington-spa`},{label:`Battery Storage Systems`,slug:`battery-storage-systems-electrician-leamington-spa`}]},{title:`Repairs & Maintenance`,icon:`ri-tools-line`,items:[{label:`Electrical Repairs`,slug:`electrical-repairs-electrician-leamington-spa`},{label:`Fault Finding`,slug:`testing-and-fault-finding-electrician-leamington-spa`},{label:`Tripping Circuits`,slug:`tripping-circuits-electrician-leamington-spa`},{label:`Lighting Repairs`,slug:`lighting-repairs-electrician-leamington-spa`},{label:`Emergency Call-Outs`,slug:`emergency-call-outs-electrician-leamington-spa`},{label:`Maintenance Contracts`,slug:`maintenance-contracts-electrician-leamington-spa`}]},{title:`Safety & Compliance`,icon:`ri-shield-check-line`,items:[{label:`EICRs`,slug:`eicrs-electrician-leamington-spa`},{label:`Landlord Certificates`,slug:`landlord-certificates-electrician-leamington-spa`},{label:`Smoke & Heat Alarms`,slug:`smoke-and-heat-alarms-electrician-leamington-spa`},{label:`Surge Protection`,slug:`surge-protection-electrician-leamington-spa`},{label:`Earthing & Bonding`,slug:`earthing-and-bonding-electrician-leamington-spa`},{label:`RCD Testing`,slug:`rcd-testing-electrician-leamington-spa`}]}];function F({onQuote:e,onSolar:t,onEV:n,activePage:r=`home`}){let[i,a]=(0,E.useState)(!1),[o,s]=(0,E.useState)(!1),[c,l]=(0,E.useState)(!1),[u,d]=(0,E.useState)(!1),[f,p]=(0,E.useState)([]),m=(0,E.useRef)(null),h=(0,E.useRef)(null);(0,E.useEffect)(()=>{let e=()=>a(window.scrollY>40);return window.addEventListener(`scroll`,e),()=>window.removeEventListener(`scroll`,e)},[]),(0,E.useEffect)(()=>{let e=e=>{m.current&&!m.current.contains(e.target)&&h.current&&!h.current.contains(e.target)&&l(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]),(0,E.useEffect)(()=>(document.body.style.overflow=o?`hidden`:``,()=>{document.body.style.overflow=``}),[o]);let g=e=>{p(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},_=e=>r===e;return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(N,{}),(0,M.jsxs)(`header`,{className:`fixed left-0 right-0 z-50 transition-all duration-300 bg-white shadow-md ${i?`top-0`:`top-10`}`,children:[(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6 flex items-center justify-between h-20`,children:[(0,M.jsx)(`a`,{href:`/`,className:`flex items-center gap-2 cursor-pointer flex-shrink-0`,children:(0,M.jsx)(`img`,{src:`https://static.readdy.ai/image/4a891bf01ca77aa59d4e684a3f5f885b/b89155a3a628b11dd6196f25facf2ad9.png`,alt:`Intolec Ltd Logo`,className:`h-12 w-auto object-contain`})}),(0,M.jsxs)(`nav`,{className:`hidden md:flex items-center gap-1`,children:[(0,M.jsx)(`a`,{href:`/`,className:`px-3 py-2 rounded-md text-sm font-semibold whitespace-nowrap transition-colors ${_(`home`)?`text-[#16A34A]`:`text-[#111827] hover:text-[#16A34A] hover:bg-[#F0FDF4]`}`,children:`Home`}),(0,M.jsx)(`div`,{className:`relative`,children:(0,M.jsxs)(`button`,{ref:h,onClick:()=>l(e=>!e),className:`flex items-center gap-1 px-3 py-2 rounded-md text-sm font-semibold whitespace-nowrap transition-colors cursor-pointer ${_(`services`)||_(`service`)?`text-[#16A34A]`:`text-[#111827] hover:text-[#16A34A] hover:bg-[#F0FDF4]`}`,children:[`Services`,(0,M.jsx)(`i`,{className:`ri-arrow-down-s-line text-base transition-transform duration-200 ${c?`rotate-180`:``}`})]})}),(0,M.jsx)(`a`,{href:`/areas`,className:`px-3 py-2 rounded-md text-sm font-semibold whitespace-nowrap transition-colors ${_(`areas`)?`text-[#16A34A]`:`text-[#111827] hover:text-[#16A34A] hover:bg-[#F0FDF4]`}`,children:`Areas`}),(0,M.jsx)(`a`,{href:`/frequently-asked-questions`,className:`px-3 py-2 rounded-md text-sm font-semibold whitespace-nowrap transition-colors ${_(`faq`)?`text-[#16A34A]`:`text-[#111827] hover:text-[#16A34A] hover:bg-[#F0FDF4]`}`,children:`FAQs`}),(0,M.jsx)(`a`,{href:`/blog`,className:`px-3 py-2 rounded-md text-sm font-semibold whitespace-nowrap transition-colors ${_(`blog`)?`text-[#16A34A]`:`text-[#111827] hover:text-[#16A34A] hover:bg-[#F0FDF4]`}`,children:`Blog`}),(0,M.jsx)(`a`,{href:`/testimonials`,className:`px-3 py-2 rounded-md text-sm font-semibold whitespace-nowrap transition-colors ${_(`testimonials`)?`text-[#16A34A]`:`text-[#111827] hover:text-[#16A34A] hover:bg-[#F0FDF4]`}`,children:`Testimonials`}),(0,M.jsx)(`a`,{href:`/contact`,className:`px-3 py-2 rounded-md text-sm font-semibold whitespace-nowrap transition-colors ${_(`contact`)?`text-[#16A34A]`:`text-[#111827] hover:text-[#16A34A] hover:bg-[#F0FDF4]`}`,children:`Contact`})]}),(0,M.jsxs)(`div`,{className:`hidden md:flex items-center gap-2`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`flex items-center gap-2 px-4 py-2 rounded-md border-2 text-sm font-bold whitespace-nowrap transition-all border-[#14532D] text-[#14532D] hover:bg-[#14532D] hover:text-white`,children:[(0,M.jsx)(`i`,{className:`ri-phone-line`}),`01926 768080`]}),t&&(0,M.jsx)(`button`,{onClick:t,className:`px-4 py-2 rounded-md bg-white border-2 border-[#14532D] text-[#14532D] text-sm font-bold whitespace-nowrap cursor-pointer hover:bg-[#14532D] hover:text-white transition-colors`,children:`Solar Enquiry`}),n&&(0,M.jsx)(`button`,{onClick:n,className:`px-4 py-2 rounded-md bg-white border-2 border-[#14532D] text-[#14532D] text-sm font-bold whitespace-nowrap cursor-pointer hover:bg-[#14532D] hover:text-white transition-colors`,children:`EV Enquiry`}),(0,M.jsx)(`button`,{onClick:e,className:`px-4 py-2 rounded-md bg-[#22C55E] text-white text-sm font-bold whitespace-nowrap cursor-pointer hover:bg-[#16A34A] transition-colors`,children:`Get Quote`})]}),(0,M.jsx)(`button`,{className:`md:hidden w-10 h-10 flex items-center justify-center rounded-md text-[#14532D]`,onClick:()=>s(!0),"aria-label":`Open menu`,children:(0,M.jsx)(`i`,{className:`ri-menu-line text-2xl`})})]}),c&&(0,M.jsx)(`div`,{ref:m,className:`hidden md:block absolute left-0 right-0 top-full bg-white border-t-2 border-[#22C55E] shadow-xl z-50 max-h-[80vh] overflow-y-auto`,children:(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-6 py-8`,children:[(0,M.jsx)(`div`,{className:`grid grid-cols-3 gap-8`,children:P.map(e=>(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,M.jsx)(`div`,{className:`w-7 h-7 flex items-center justify-center rounded-lg bg-[#14532D]`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-white text-sm`})}),(0,M.jsx)(`span`,{className:`text-xs font-extrabold uppercase tracking-widest text-[#14532D]`,children:e.title})]}),(0,M.jsx)(`ul`,{className:`flex flex-col gap-0.5`,children:e.items.map(e=>(0,M.jsx)(`li`,{children:(0,M.jsxs)(`a`,{href:`/service/${e.slug}`,onClick:()=>l(!1),className:`flex items-center gap-2 px-2 py-1.5 rounded-lg text-sm text-[#374151] hover:bg-[#F0FDF4] hover:text-[#14532D] transition-colors font-medium`,children:[(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-[#22C55E] text-base flex-shrink-0`}),e.label]})},e.slug))})]},e.title))}),(0,M.jsxs)(`div`,{className:`mt-6 pt-5 border-t border-gray-100 flex items-center justify-between`,children:[(0,M.jsx)(`p`,{className:`text-sm text-[#6B7280]`,children:`Not sure what you need? We'll advise you for free.`}),(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsxs)(`a`,{href:`/services`,onClick:()=>l(!1),className:`flex items-center gap-2 text-sm font-bold text-[#14532D] hover:text-[#16A34A] transition-colors`,children:[(0,M.jsx)(`i`,{className:`ri-grid-line`}),`View All Services`,(0,M.jsx)(`i`,{className:`ri-arrow-right-line`})]}),(0,M.jsxs)(`button`,{onClick:()=>{l(!1),e()},className:`flex items-center gap-2 px-5 py-2.5 rounded-lg bg-[#22C55E] text-white text-sm font-bold hover:bg-[#16A34A] transition-colors cursor-pointer whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]})]})})]}),(0,M.jsx)(`div`,{className:`md:hidden fixed inset-0 z-[60] bg-black/50 transition-opacity duration-300 ${o?`op
11acity-100 pointer-events-auto`:`opacity-0 pointer-events-none`}`,onClick:()=>s(!1)}),(0,M.jsxs)(`div`,{className:`md:hidden fixed top-0 right-0 bottom-0 z-[70] w-[88vw] max-w-sm bg-white flex flex-col transition-transform duration-300 ease-in-out ${o?`translate-x-0`:`translate-x-full`}`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between px-5 py-4 bg-[#14532D] flex-shrink-0`,children:[(0,M.jsx)(`img`,{src:`https://static.readdy.ai/image/4a891bf01ca77aa59d4e684a3f5f885b/b89155a3a628b11dd6196f25facf2ad9.png`,alt:`Intolec Ltd`,className:`h-10 w-auto object-contain brightness-0 invert`}),(0,M.jsx)(`button`,{onClick:()=>s(!1),className:`w-9 h-9 flex items-center justify-center rounded-full bg-white/10 text-white hover:bg-white/20 transition-colors cursor-pointer`,"aria-label":`Close menu`,children:(0,M.jsx)(`i`,{className:`ri-close-line text-xl`})})]}),(0,M.jsxs)(`div`,{className:`flex-1 overflow-y-auto`,children:[(0,M.jsxs)(`nav`,{className:`px-4 py-3 flex flex-col gap-1`,children:[(0,M.jsxs)(`a`,{href:`/`,onClick:()=>s(!1),className:`flex items-center gap-3 px-4 py-3 rounded-xl font-semibold text-sm transition-colors ${_(`home`)?`bg-[#F0FDF4] text-[#14532D]`:`text-[#111827] hover:bg-[#F9FAFB]`}`,children:[(0,M.jsx)(`i`,{className:`ri-home-4-line text-[#16A34A] text-base w-5 text-center`}),`Home`]}),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`button`,{onClick:()=>d(e=>!e),className:`w-full flex items-center justify-between gap-3 px-4 py-3 rounded-xl font-semibold text-sm transition-colors cursor-pointer ${_(`services`)||_(`service`)||u?`bg-[#F0FDF4] text-[#14532D]`:`text-[#111827] hover:bg-[#F9FAFB]`}`,children:[(0,M.jsxs)(`span`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`i`,{className:`ri-flashlight-line text-[#16A34A] text-base w-5 text-center`}),`Services`]}),(0,M.jsx)(`i`,{className:`ri-arrow-down-s-line text-lg text-[#6B7280] transition-transform duration-200 ${u?`rotate-180`:``}`})]}),u&&(0,M.jsxs)(`div`,{className:`mt-1 ml-3 pl-3 border-l-2 border-[#BBF7D0] flex flex-col gap-1`,children:[P.map(e=>(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`button`,{onClick:()=>g(e.title),className:`w-full flex items-center justify-between gap-2 px-3 py-2.5 rounded-lg cursor-pointer hover:bg-[#F0FDF4] transition-colors`,children:[(0,M.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(`div`,{className:`w-6 h-6 flex items-center justify-center rounded-md bg-[#14532D] flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-white text-xs`})}),(0,M.jsx)(`span`,{className:`text-xs font-extrabold uppercase tracking-wide text-[#14532D]`,children:e.title})]}),(0,M.jsx)(`i`,{className:`ri-arrow-down-s-line text-base text-[#6B7280] transition-transform duration-200 ${f.includes(e.title)?`rotate-180`:``}`})]}),f.includes(e.title)&&(0,M.jsx)(`div`,{className:`ml-3 pl-3 border-l border-[#D1FAE5] flex flex-col gap-0.5 mb-1`,children:e.items.map(e=>(0,M.jsxs)(`a`,{href:`/service/${e.slug}`,onClick:()=>s(!1),className:`flex items-center gap-2 px-2 py-2 rounded-lg text-sm text-[#374151] hover:bg-[#F0FDF4] hover:text-[#14532D] transition-colors font-medium`,children:[(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-[#22C55E] text-sm flex-shrink-0`}),e.label]},e.slug))})]},e.title)),(0,M.jsxs)(`a`,{href:`/services`,onClick:()=>s(!1),className:`flex items-center gap-2 px-3 py-2.5 rounded-lg text-sm font-bold text-[#16A34A] hover:bg-[#F0FDF4] transition-colors mt-1`,children:[(0,M.jsx)(`i`,{className:`ri-grid-line text-sm`}),`View All Services`]})]})]}),(0,M.jsxs)(`a`,{href:`/areas`,onClick:()=>s(!1),className:`flex items-center gap-3 px-4 py-3 rounded-xl font-semibold text-sm transition-colors ${_(`areas`)?`bg-[#F0FDF4] text-[#14532D]`:`text-[#111827] hover:bg-[#F9FAFB]`}`,children:[(0,M.jsx)(`i`,{className:`ri-map-pin-2-line text-[#16A34A] text-base w-5 text-center`}),`Areas We Cover`]}),(0,M.jsxs)(`a`,{href:`/frequently-asked-questions`,onClick:()=>s(!1),className:`flex items-center gap-3 px-4 py-3 rounded-xl font-semibold text-sm transition-colors ${_(`faq`)?`bg-[#F0FDF4] text-[#14532D]`:`text-[#111827] hover:bg-[#F9FAFB]`}`,children:[(0,M.jsx)(`i`,{className:`ri-question-answer-line text-[#16A34A] text-base w-5 text-center`}),`FAQs`]}),(0,M.jsxs)(`a`,{href:`/blog`,onClick:()=>s(!1),className:`flex items-center gap-3 px-4 py-3 rounded-xl font-semibold text-sm transition-colors ${_(`blog`)?`bg-[#F0FDF4] text-[#14532D]`:`text-[#111827] hover:bg-[#F9FAFB]`}`,children:[(0,M.jsx)(`i`,{className:`ri-article-line text-[#16A34A] text-base w-5 text-center`}),`Blog`]}),(0,M.jsxs)(`a`,{href:`/testimonials`,onClick:()=>s(!1),className:`flex items-center gap-3 px-4 py-3 rounded-xl font-semibold text-sm transition-colors ${_(`testimonials`)?`bg-[#F0FDF4] text-[#14532D]`:`text-[#111827] hover:bg-[#F9FAFB]`}`,children:[(0,M.jsx)(`i`,{className:`ri-star-line text-[#16A34A] text-base w-5 text-center`}),`Testimonials`]}),(0,M.jsxs)(`a`,{href:`/contact`,onClick:()=>s(!1),className:`flex items-center gap-3 px-4 py-3 rounded-xl font-semibold text-sm transition-colors ${_(`contact`)?`bg-[#F0FDF4] text-[#14532D]`:`text-[#111827] hover:bg-[#F9FAFB]`}`,children:[(0,M.jsx)(`i`,{className:`ri-phone-line text-[#16A34A] text-base w-5 text-center`}),`Contact`]})]}),(0,M.jsx)(`div`,{className:`mx-4 border-t border-gray-100`}),(0,M.jsxs)(`div`,{className:`px-4 py-4 flex flex-col gap-3`,children:[(0,M.jsx)(`p`,{className:`text-xs font-bold uppercase tracking-widest text-[#9CA3AF] px-1`,children:`Contact`}),(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`flex items-center gap-3 px-4 py-3 rounded-xl bg-[#14532D] text-white font-bold text-sm`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-[#86EFAC] text-base`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:()=>{s(!1),e()},className:`flex items-center justify-center gap-2 px-4 py-3 rounded-xl bg-[#22C55E] text-white font-bold text-sm cursor-pointer hover:bg-[#16A34A] transition-colors`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line text-base`}),`Get a Free Quote`]}),t&&(0,M.jsxs)(`button`,{onClick:()=>{s(!1),t()},className:`flex items-center justify-center gap-2 px-4 py-3 rounded-xl border-2 border-[#14532D] text-[#14532D] font-bold text-sm cursor-pointer hover:bg-[#14532D] hover:text-white transition-colors`,children:[(0,M.jsx)(`i`,{className:`ri-sun-line text-base`}),`Solar Enquiry`]}),n&&(0,M.jsxs)(`button`,{onClick:()=>{s(!1),n()},className:`flex items-center justify-center gap-2 px-4 py-3 rounded-xl border-2 border-[#14532D] text-[#14532D] font-bold text-sm cursor-pointer hover:bg-[#14532D] hover:text-white transition-colors`,children:[(0,M.jsx)(`i`,{className:`ri-charging-pile-2-line text-base`}),`EV Enquiry`]})]})]}),(0,M.jsx)(`div`,{className:`px-5 py-4 bg-[#F9FAFB] border-t border-gray-100 flex-shrink-0`,children:(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`a`,{href:`https://www.facebook.com/electricianinleamington`,target:`_blank`,rel:`noopener noreferrer nofollow`,className:`w-9 h-9 flex items-center justify-center rounded-full bg-[#14532D] text-white hover:bg-[#16A34A] transition-colors`,children:(0,M.jsx)(`i`,{className:`ri-facebook-fill text-sm`})}),(0,M.jsx)(`a`,{href:`https://www.instagram.com/intolec_1td/`,target:`_blank`,rel:`noopener noreferrer nofollow`,className:`w-9 h-9 flex items-center justify-center rounded-full bg-[#14532D] text-white hover:bg-[#16A34A] transition-colors`,children:(0,M.jsx)(`i`,{className:`ri-instagram-line text-sm`})}),(0,M.jsx)(`span`,{className:`text-xs text-[#9CA3AF] ml-1`,children:`Leamington Spa & Warwickshire`})]})})]})]})}function da({onQuote:e,onSolar:t,onEV:n}){return(0,M.jsx)(F,{onQuote:e,onSolar:t,onEV:n,activePage:`home`,useScrollLinks:!0})}function fa(e,t={}){typeof window<`u`&&(window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:e,...t}))}var pa=`quote-request-form`,ma=`Quote Request Form`,ha=`https://readdy.ai/api/form/daugvopggrtvtk1bgb8g`,ga=[{value:`General Electrical Work`,label:`General Electrical Work`},{value:`Solar Panels & Battery Storage`,label:`Solar Panels & Battery Storage`},{value:`EV Charger Installation`,label:`EV Charger Installation`},{value:`Emergency Call-Out`,label:`Emergency Call-Out`},{value:`EICR / Landlord Certificate`,label:`EICR / Landlord Certificate`},{value:`Rewiring / Consumer Unit`,label:`Rewiring / Consumer Unit`},{value:`Other / Not Sure`,label:`Other / Not Sure`}],_a={general:`General Electrical Work`,solar:`Solar Panels & Battery Storage`,ev:`EV Charger Installation`,emergency:`Emergency Call-Out`,eicr:`EICR / Landlord Certificate`};function va(){let[e,t]=(0,E.useState)(`idle`),[n,r]=(0,E.useState)(``);return{status:e,errorMsg:n,submit:(0,E.useCallback)(async({form:e,serviceType:n=``})=>{let i=new FormData(e);if(String(i.get(`website_alt`)||``).trim())return t(`success`),!0;i.delete(`website_alt`);let a=new URLSearchParams;
11i.forEach((e,t)=>{typeof e==`string`&&e.trim()!==``&&a.append(t,e)});let o=String(i.get(`service_type`)||n||``);t(`submitting`),r(``);try{let e=await fetch(ha,{method:`POST`,headers:{"Content-Type":`application/x-www-form-urlencoded`},body:a.toString()}),n=await e.text(),i=null;try{i=JSON.parse(n)}catch{i=null}let s=i?.meta?.message||i?.message||i?.meta?.detail||n,c=i?.code===`OK`,l=typeof s==`string`&&s.toLowerCase().includes(`spam`);return e.ok&&c&&!l?(fa(`generate_lead`,{form_name:ma,form_id:pa,service_type:o||`Not specified`,currency:`GBP`}),t(`success`),!0):(fa(`form_submit_error`,{form_name:ma,reason:typeof s==`string`&&s?s.slice(0,100):`server_error`}),t(`error`),r(s||`Sorry, something went wrong sending your request. Please try again or call us on 01926 768080.`),!1)}catch{return fa(`form_submit_error`,{form_name:ma,reason:`network_error`}),t(`error`),r(`Sorry, we could not send your request right now. Please try again or call us on 01926 768080.`),!1}},[]),reset:(0,E.useCallback)(()=>{t(`idle`),r(``)},[])}}function ya(){let e=Math.floor(Math.random()*8)+2,t=Math.floor(Math.random()*9)+1;return{a:e,b:t,answer:e+t}}function ba({className:e=``}){let[t]=ta(),[n,r]=(0,E.useState)(``),[i,a]=(0,E.useState)(ya),[o,s]=(0,E.useState)(``),c=(0,E.useRef)(!1),{status:l,errorMsg:u,submit:d,reset:f}=va(),p=()=>a(ya());return(0,E.useEffect)(()=>{let e=t.get(`service`);e&&_a[e]&&r(_a[e])},[t]),l===`success`?(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl p-8 md:p-9 text-center ${e}`,children:[(0,M.jsx)(`div`,{className:`w-14 h-14 flex items-center justify-center rounded-full bg-[#F0FDF4] mx-auto mb-4`,children:(0,M.jsx)(`i`,{className:`ri-check-line text-[#16A34A] text-3xl`})}),(0,M.jsx)(`h3`,{className:`text-lg font-extrabold text-[#14532D] mb-2`,children:`Thank you â your request is in!`}),(0,M.jsxs)(`p`,{className:`text-[#6B7280] text-sm mb-6 leading-relaxed`,children:[`One of our team will be in touch shortly with your free, no-obligation quote. Need us sooner? Call`,` `,(0,M.jsx)(`a`,{href:`tel:01926768080`,className:`text-[#16A34A] font-semibold hover:underline whitespace-nowrap`,children:`01926 768080`}),`.`]}),(0,M.jsxs)(`button`,{type:`button`,onClick:f,className:`inline-flex items-center gap-2 px-5 py-2.5 rounded-lg border-2 border-[#14532D] text-[#14532D] font-bold text-sm hover:bg-[#14532D] hover:text-white transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-add-line`}),`Send another enquiry`]})]}):(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl p-6 md:p-8 ${e}`,children:[(0,M.jsx)(`h3`,{className:`text-lg md:text-xl font-extrabold text-[#14532D] mb-1`,children:`Request a quote`}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-xs md:text-sm mb-5`,children:`Tell us a little about the job and we will come back with advice and a price.`}),(0,M.jsxs)(`form`,{id:`quote-request-form`,"data-readdy-form":`true`,onSubmit:async e=>{e.preventDefault();let t=e.currentTarget,a=new FormData(t);if(String(a.get(`captcha_answer`)||``).trim()!==String(i.answer)){s(`That answer does not look right â please try again.`),p();return}s(``),await d({form:t,serviceType:n})&&(t.reset(),r(``),p())},onFocus:()=>{c.current||(c.current=!0,fa(`form_start`,{form_name:`Quote Request Form`,form_id:`quote-request-form`}))},className:`flex flex-col gap-3.5`,children:[(0,M.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-3.5`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`label`,{htmlFor:`hero-quote-name`,className:`block uppercase tracking-wider text-[11px] font-bold text-[#6B7280] mb-1.5`,children:[`Full Name `,(0,M.jsx)(`span`,{className:`text-red-500`,children:`*`})]}),(0,M.jsx)(`input`,{id:`hero-quote-name`,type:`text`,name:`name`,required:!0,placeholder:`Your name`,className:`w-full px-3.5 py-3 rounded-lg bg-[#F9FAFB] border border-gray-200 text-sm focus:outline-none focus:border-[#16A34A] focus:ring-1 focus:ring-[#16A34A] transition-colors`})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`label`,{htmlFor:`hero-quote-phone`,className:`block uppercase tracking-wider text-[11px] font-bold text-[#6B7280] mb-1.5`,children:[`Phone `,(0,M.jsx)(`span`,{className:`text-red-500`,children:`*`})]}),(0,M.jsx)(`input`,{id:`hero-quote-phone`,type:`tel`,name:`phone`,required:!0,placeholder:`07123 456789`,className:`w-full px-3.5 py-3 rounded-lg bg-[#F9FAFB] border border-gray-200 text-sm focus:outline-none focus:border-[#16A34A] focus:ring-1 focus:ring-[#16A34A] transition-colors`})]})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`label`,{htmlFor:`hero-quote-email`,className:`block uppercase tracking-wider text-[11px] font-bold text-[#6B7280] mb-1.5`,children:[`Email `,(0,M.jsx)(`span`,{className:`text-red-500`,children:`*`})]}),(0,M.jsx)(`input`,{id:`hero-quote-email`,type:`email`,name:`email`,required:!0,placeholder:`[email protected]`,className:`w-full px-3.5 py-3 rounded-lg bg-[#F9FAFB] border border-gray-200 text-sm focus:outline-none focus:border-[#16A34A] focus:ring-1 focus:ring-[#16A34A] transition-colors`})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`label`,{htmlFor:`hero-quote-service`,className:`block uppercase tracking-wider text-[11px] font-bold text-[#6B7280] mb-1.5`,children:`Service Needed`}),(0,M.jsxs)(`select`,{id:`hero-quote-service`,name:`service_type`,value:n,onChange:e=>r(e.target.value),className:`w-full px-3.5 py-3 rounded-lg bg-[#F9FAFB] border border-gray-200 text-sm focus:outline-none focus:border-[#16A34A] focus:ring-1 focus:ring-[#16A34A] transition-colors cursor-pointer`,children:[(0,M.jsx)(`option`,{value:``,children:`Select a service...`}),ga.map(e=>(0,M.jsx)(`option`,{value:e.value,children:e.label},e.value))]})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`label`,{htmlFor:`hero-quote-description`,className:`block uppercase tracking-wider text-[11px] font-bold text-[#6B7280] mb-1.5`,children:[`Description `,(0,M.jsx)(`span`,{className:`text-[#9CA3AF] normal-case`,children:`(optional)`})]}),(0,M.jsx)(`textarea`,{id:`hero-quote-description`,name:`description`,rows:3,maxLength:500,placeholder:`Tell us about the property, the work needed and the best time to reach you...`,className:`w-full px-3.5 py-3 rounded-lg bg-[#F9FAFB] border border-gray-200 text-sm focus:outline-none focus:border-[#16A34A] focus:ring-1 focus:ring-[#16A34A] transition-colors resize-none`})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`label`,{htmlFor:`hero-quote-captcha`,className:`block uppercase tracking-wider text-[11px] font-bold text-[#6B7280] mb-1.5`,children:[`Anti-spam check: what is `,
11i.a,` + `,i.b,`?`]}),(0,M.jsxs)(`div`,{className:`relative`,children:[(0,M.jsx)(`i`,{className:`ri-shield-check-line absolute left-3.5 top-1/2 -translate-y-1/2 text-[#9CA3AF] text-base`}),(0,M.jsx)(`input`,{id:`hero-quote-captcha`,type:`text`,name:`captcha_answer`,inputMode:`numeric`,required:!0,placeholder:`Your answer`,className:`w-full pl-10 pr-3.5 py-3 rounded-lg bg-[#F9FAFB] border border-gray-200 text-sm focus:outline-none focus:border-[#16A34A] focus:ring-1 focus:ring-[#16A34A] transition-colors`})]})]}),(0,M.jsx)(`input`,{type:`text`,name:`website_alt`,tabIndex:-1,autoComplete:`off`,"aria-hidden":`true`,readOnly:!0,className:`quote-hp-field`}),(o||l===`error`)&&(0,M.jsxs)(`div`,{className:`flex items-start gap-2 text-sm text-red-700 bg-red-50 border border-red-200 rounded-lg px-3.5 py-3`,children:[(0,M.jsx)(`i`,{className:`ri-error-warning-line text-base mt-0.5 flex-shrink-0`}),(0,M.jsx)(`span`,{children:o||u})]}),(0,M.jsx)(`button`,{type:`submit`,disabled:l===`submitting`,className:`w-full inline-flex items-center justify-center gap-2 px-6 py-3.5 rounded-xl bg-[#22C55E] text-white font-extrabold text-base hover:bg-[#16A34A] transition-colors whitespace-nowrap cursor-pointer disabled:opacity-60`,children:l===`submitting`?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`i`,{className:`ri-loader-4-line animate-spin text-lg`}),`Sending...`]}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`i`,{className:`ri-send-plane-fill text-lg`}),`Send Enquiry`]})}),(0,M.jsx)(`p`,{className:`text-[11px] text-[#9CA3AF] text-center`,children:`We only use your details to respond to your enquiry.`})]})]})}var xa=[{icon:`ri-time-line`,text:`We turn up on time`},{icon:`ri-file-text-line`,text:`Clear written quotes`},{icon:`ri-lightbulb-line`,text:`Honest advice`},{icon:`ri-home-heart-line`,text:`Respect your home`}];function Sa({onQuote:e,onSolar:t,onEV:n}){let[r,i]=(0,E.useState)(!1),a=(0,E.useRef)(null);return(0,E.useEffect)(()=>{let e=setTimeout(()=>i(!0),100);return()=>clearTimeout(e)},[]),(0,M.jsxs)(`section`,{id:`home`,ref:a,className:`relative min-h-screen flex items-center overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,M.jsx)(`img`,{src:`https://static.readdy.ai/image/4a891bf01ca77aa59d4e684a3f5f885b/fd6de040d5f65ca05ed6a52e6344de6d.png`,alt:`Solar panel installation by Intolec Ltd Leamington Spa`,className:`w-full h-full object-cover object-top`}),(0,M.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-r from-[#14532D]/95 via-[#14532D]/80 to-[#14532D]/40`})]}),(0,M.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`absolute bottom-0 left-0 w-full h-0.5 bg-gradient-to-r from-[#22C55E] via-[#86EFAC] to-transparent animate-pulse`}),(0,M.jsx)(`div`,{className:`absolute top-1/3 left-0 w-1/3 h-px bg-gradient-to-r from-transparent to-[#22C55E]/30`}),(0,M.jsx)(`div`,{className:`absolute top-2/3 left-0 w-1/4 h-px bg-gradient-to-r from-transparent to-[#86EFAC]/20`}),(0,M.jsx)(`div`,{className:`absolute bottom-1/4 right-0 w-1/3 h-px bg-gradient-to-l from-transparent to-[#22C55E]/20`}),(0,M.jsx)(`div`,{className:`absolute top-1/2 right-10 w-32 h-32 rounded-full border border-[#22C55E]/15 animate-spin`,style:{animationDuration:`18s`}}),(0,M.jsx)(`div`,{className:`absolute top-1/4 right-1/4 w-20 h-20 rounded-full border border-[#86EFAC]/10 animate-spin`,style:{animationDuration:`12s`,animationDirection:`reverse`}})]}),(0,M.jsx)(`div`,{className:`relative z-10 w-full max-w-7xl mx-auto px-4 md:px-6 py-24 md:py-32`,children:(0,M.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-10 lg:gap-14 items-center`,children:[(0,M.jsxs)(`div`,{className:`transition-all duration-1000 ${r?`opacity-100 translate-y-0`:`opacity-0 translate-y-8`}`,children:[(0,M.jsxs)(`div`,{className:`inline-flex items-center gap-2 bg-white/15 backdrop-blur-sm border border-white/30 rounded-full px-4 py-2 mb-6`,children:[(0,M.jsx)(`div`,{className:`flex gap-0.5`,children:[...[,,,,,]].map((e,t)=>(0,M.jsx)(`i`,{className:`ri-star-fill text-[#FACC15] text-sm`},t))}),(0,M.jsx)(`span`,{className:`text-white text-sm font-semibold`,children:`5â
Rated Local Electricians`})]}),(0,M.jsxs)(`h1`,{className:`text-4xl md:text-6xl font-extrabold text-white leading-tight mb-4`,children:[`Electricians in`,(0,M.jsx)(`br`,{}),(0,M.jsx)(`span`,{className:`text-[#86EFAC]`,children:`Leamington Spa`})]}),(0,M.jsx)(`p`,{className:`text-lg md:text-xl text-white/90 mb-5 leading-relaxed`,children:`Reliable electricians & renewable energy specialists covering Leamington Spa & Warwickshire. From small repairs to full solar installations.`}),(0,M.jsxs)(`div`,{className:`flex flex-wrap gap-2 mb-7`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2 bg-[#22C55E]/25 border border-[#22C55E]/50 rounded-lg px-3 py-2`,children:[(0,M.jsx)(`i`,{className:`ri-sun-line text-[#86EFAC] text-base`}),(0,M.jsx)(`span`,{className:`text-white font-bold text-sm`,children:`Solar Panels`})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-2 bg-[#22C55E]/25 border border-[#22C55E]/50 rounded-lg px-3 py-2`,children:[(0,M.jsx)(`i`,{className:`ri-battery-charge-line text-[#86EFAC] text-base`}),(0,M.jsx)(`span`,{className:`text-white font-bold text-sm`,children:`Battery Storage`})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-2 bg-[#22C55E]/25 border border-[#22C55E]/50 rounded-lg px-3 py-2`,children:[(0,M.jsx)(`i`,{className:`ri-charging-pile-2-line text-[#86EFAC] text-base`}),(0,M.jsx)(`span`,{className:`text-white font-bold text-sm`,children:`EV Chargers`})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-2 bg-white/10 border border-white/20 rounded-lg px-3 py-2`,children:[(0,M.jsx)(`i`,{className:`ri-plug-line text-white/70 text-base`}),(0,M.jsx)(`span`,{className:`text-white/80 font-semibold text-sm`,children:`All Electrical Works`})]})]}),(0,M.jsx)(`div`,{className:`hidden sm:grid grid-cols-2 gap-3 mb-9`,children:xa.map((e,t)=>(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,style:{transitionDelay:`${200+t*100}ms`},children:[(0,M.jsx)(`div`,{className:`w-8 h-8 flex items-center justify-center rounded-full bg-[#22C55E]/20 border border-[#22C55E]/40 flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-[#86EFAC] text-sm`})}),(0,M.jsx)(`span`,{className:`text-white font-medium text-sm`,children:e.text})]},t))}),(0,M.jsx)(`div`,{className:`flex sm:hidden flex-wrap gap-2 mb-6`,children:[`Turns up on time`,`Clear quotes`,`NAPIT Registered`,`5â
Google`].map(e=>(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 px-3 py-1 rounded-full bg-white/15 border border-white/30 text-white text-xs font-semibold`,children:[(0,M.jsx)(`i`,{className:`ri-checkbox-circle-fill text-[#22C55E] text-xs`}),e]},e))}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`flex items-center justify-center gap-2 px-6 py-4 rounded-lg bg-[#22C55E] text-white font-bold text-base whitespace-nowrap hover:bg-[#16A34A] transition-all duration-200`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Call 01926 768080`]}),(0,M.jsxs)(`button`,{onClick:e,className:`flex items-center justify-center gap-2 px-6 py-4 rounded-lg border-2 border-white text-white font-bold text-base whitespace-nowrap hover:bg-white hover:text-[#14532D] transition-all duration-200 cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Free Quote`]})]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3 mt-3`,children:[(0,M.jsxs)(`button`,{onClick:t,className:`flex items-center justify-center gap-2 px-6 py-3 rounded-lg bg-white/10 backdrop-blur-sm border border-white/30 text-white font-bold text-sm whitespace-nowrap hover:bg-white/20 transition-all duration-200 cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-sun-line`}),`Solar Enquiry`]}),(0,M.jsxs)(`button`,{onClick:n,className:`flex items-center justify-center gap-2 px-6 py-3 rounded-lg bg-white/10 backdrop-blur-sm border border-white/30 text-white font-bold text-sm whitespace-nowrap hover:bg-white/20 transition-all duration-200 cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-charging-pile-2-line`}),`EV Enquiry`]})]})]}),(0,M.jsx)(`div`,{className:`w-full max-w-xl mx-auto lg:mx-0 lg:ml-auto transition-all duration-1000 delay-200 ${r?`opacity-100 translate-y-0`:`opacity-0 translate-y-8`}`,children:(0,M.jsx)(ba,{})})]})}),(0,M.jsxs)(`div`,{className:`absolute bottom-8 left-1/2 -translate-x-1/2 hidden lg:flex flex-col items-center gap-2 animate-bounce`,children:[(0,M.jsx)(`span`,{className:`text-white/60 text-xs font-medium`,children:`Scroll down`}),(0,M.jsx)(`i`,{className:`ri-arrow-down-line text-white/60 text-lg`})]})]})}
11var Ca=[{name:`NAPIT`,shortDesc:`Approved Electrician`,logo:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/845af0ef-e284-4040-9d15-223747bbf48c_NAPIT-approved-electrician-JW.png?v=4961e5aeb5ff6d1a936eb371b395fafd`,icon:null,color:null,popupTitle:`NAPIT Registered Electrician`,popupSubtitle:`Government Approved Contractor`,popupBody:`As a NAPIT registered contractor, all our notifiable electrical work is self-certified and registered directly with building control. We undergo rigorous annual assessments to verify our qualifications, insurance, and technical competence.`,popupPoints:[`No separate building control applications needed`,`Annual reassessment of qualifications & insurance`,`Part P compliant on all domestic work`,`Work is traceable and warranty-backed`]},{name:`MCS`,shortDesc:`Certified Installer`,logo:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/ae94b5a2-5633-4226-88c3-354ae15d985a_mcs.png?v=d95a56a746f72fc633c1f08567b625a1`,icon:null,color:null,popupTitle:`MCS Certified Installer`,popupSubtitle:`Microgeneration Certification Scheme`,popupBody:`MCS certification is the UK gold standard for solar panel and battery storage installations. It is mandatory to access the Smart Export Guarantee (SEG) payments from energy suppliers, and ensures your system meets strict quality and safety benchmarks.`,popupPoints:[`Required for Smart Export Guarantee payments`,`Independent verification of every installation`,`Covers solar PV, battery storage & heat pumps`,`Certificate issued on every installation`]},{name:`HIES`,shortDesc:`Accredited Member`,logo:`https://static.readdy.ai/image/4a891bf01ca77aa59d4e684a3f5f885b/20f2981acc918e5d33f3665b2433e795.png`,icon:null,color:null,popupTitle:`HIES Accredited Member`,popupSubtitle:`Home Insulation & Energy Systems`,popupBody:`HIES is a government-backed consumer protection organisation for renewable energy installations. Membership gives you insurance-backed guarantees and deposit protection, plus access to an independent dispute resolution process.`,popupPoints:[`Insurance-backed guarantees on all renewable work`,`Deposit protection for your peace of mind`,`Independent dispute resolution if needed`,`Covers solar, battery storage & EV charging`]},{name:`Which?`,shortDesc:`Trusted Trader`,logo:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/52ec570c-92e0-4efa-bc0c-cc7af47013a7_Which-Trusted-Trader-logo.png?v=b3b2858da1c53de268c3f760a7d3490c`,icon:null,color:null,popupTitle:`Which? Trusted Trader`,popupSubtitle:`Endorsed by the UK's Consumer Champion`,popupBody:`Which? Trusted Traders undergo one of the most rigorous endorsement processes in the industry. We are assessed on customer service, complaints handling, trading practices, and financial stability. Fewer than 1 in 4 traders who apply are accepted.`,popupPoints:[`Rigorous assessment of customer service standards`,`Ongoing monitoring of trading practices`,`Access to Dispute Resolution Ombudsman`,`Less than 25% of applicants earn endorsement`]},{name:`5â
Google`,shortDesc:`Rated Reviews`,logo:null,icon:`ri-star-fill`,color:`#FACC15`,popupTitle:`5-Star Google Rating`,popupSubtitle:`Verified Customer Reviews`,popupBody:`Our customers consistently rate us 5 stars on Google for professionalism, punctuality, quality of workmanship, and clear communication. Every review is from a verified customer in Leamington Spa and the surrounding Warwickshire area.`,popupPoints:[`All reviews from genuine local customers`,`Rated on professionalism & quality of work`,`Consistently praised for punctuality`,`No fake or incentivised reviews`]},{name:`Fully Insured`,shortDesc:`Public Liability`,logo:null,icon:`ri-shield-star-fill`,color:`#22C55E`,popupTitle:`Fully Insured`,popupSubtitle:`Comprehensive Public Liability Cover`,popupBody:`We carry full public liability insurance covering all electrical and renewable energy work carried out in your home or business. This protects you against any unforeseen issues during installation. Insurance certificates are available on request.`,popupPoints:[`Full cover for domestic & commercial work`,`Covers electrical & renewable installations`,`Insurance certificates available on request`,`Protection for you, your property & your family`]}];function wa({item:e,index:t,visible:n}){let[r,i]=(0,E.useState)(!1),[a,o]=(0,E.useState)(!1),s=(0,E.useRef)(null),c=(0,E.useRef)(null);(0,E.useEffect)(()=>{let e=()=>
11o(window.innerWidth<768);return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),(0,E.useEffect)(()=>{if(!r)return;function e(e){let t=e.target;s.current&&!s.current.contains(t)&&c.current&&!c.current.contains(t)&&i(!1)}return document.addEventListener(`click`,e),()=>document.removeEventListener(`click`,e)},[r]);let l=(0,E.useCallback)(()=>{a||i(!0)},[a]),u=(0,E.useCallback)(()=>{a||i(!1)},[a]),d=(0,E.useCallback)(()=>{a&&i(e=>!e)},[a]);return(0,M.jsxs)(`div`,{ref:s,onMouseEnter:l,onMouseLeave:u,onClick:d,className:`relative flex flex-col items-center justify-center gap-2 px-4 md:px-6 py-3 md:py-4 bg-white rounded-xl border border-gray-200 flex-shrink-0 transition-all duration-500 hover:border-[#22C55E] hover:-translate-y-1 cursor-pointer md:cursor-default ${n?`opacity-100 translate-y-0`:`opacity-0 translate-y-4`} ${r?`border-[#22C55E] z-30`:``}`,style:{transitionDelay:`${t*80}ms`,minWidth:e.logo?`120px`:`100px`},children:[e.logo?(0,M.jsx)(`div`,{className:`w-full h-12 flex items-center justify-center`,children:(0,M.jsx)(`img`,{src:e.logo,alt:`${e.name} ${e.shortDesc}`,className:`max-h-12 max-w-[100px] md:max-w-[120px] w-auto object-contain`,loading:`lazy`})}):(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-full`,style:{backgroundColor:`${e.color}20`},children:(0,M.jsx)(`i`,{className:`${e.icon} text-xl`,style:{color:e.color}})}),(0,M.jsxs)(`div`,{className:`text-center`,children:[(0,M.jsx)(`p`,{className:`text-xs font-bold text-[#111827] leading-tight whitespace-nowrap`,children:e.name}),(0,M.jsx)(`p`,{className:`text-xs text-[#6B7280] whitespace-nowrap`,children:e.shortDesc})]}),a&&(0,M.jsx)(`div`,{className:`absolute top-2 right-2 w-4 h-4 rounded-full bg-[#22C55E]/20 flex items-center justify-center`,children:(0,M.jsx)(`i`,{className:`ri-information-line text-[10px] text-[#22C55E]`})}),r&&(0,M.jsxs)(`div`,{ref:c,className:`absolute bottom-full mb-3 left-1/2 -translate-x-1/2 w-[280px] md:w-[320px] bg-white border border-[#22C55E] rounded-2xl shadow-xl z-40 overflow-hidden`,role:`dialog`,"aria-label":`${e.name} accreditation details`,children:[(0,M.jsx)(`div`,{className:`absolute left-1/2 -translate-x-1/2 -bottom-1.5 w-3 h-3 bg-white border-r border-b border-[#22C55E] rotate-45`}),(0,M.jsxs)(`div`,{className:`bg-[#F0FDF4] px-4 py-3 border-b border-[#BBF7D0]`,children:[(0,M.jsx)(`p`,{className:`text-sm font-extrabold text-[#14532D] leading-tight`,children:e.popupTitle}),(0,M.jsx)(`p`,{className:`text-xs text-[#16A34A] font-semibold mt-0.5`,children:e.popupSubtitle})]}),(0,M.jsxs)(`div`,{className:`px-4 py-3`,children:[(0,M.jsx)(`p`,{className:`text-xs text-[#374151] leading-relaxed mb-3`,children:e.popupBody}),(0,M.jsx)(`ul`,{className:`space-y-1.5`,children:e.popupPoints.map((e,t)=>(0,M.jsxs)(`li`,{className:`flex items-start gap-2 text-xs text-[#374151]`,children:[(0,M.jsx)(`i`,{className:`ri-checkbox-circle-fill text-[#22C55E] mt-0.5 flex-shrink-0 text-xs`}),(0,M.jsx)(`span`,{className:`leading-relaxed`,children:e})]},t))})]}),(0,M.jsxs)(`div`,{className:`px-4 py-2 bg-[#F9FAFB] border-t border-gray-100 flex items-center justify-between`,children:[(0,M.jsx)(`span`,{className:`text-[10px] text-[#9CA3AF] font-medium`,children:`Intolec Ltd`}),(0,M.jsx)(`span`,{className:`text-[10px] text-[#22C55E] font-semibold`,children:`Verified`})]})]})]})}function Ta(){let e=(0,E.useRef)(null),[t,n]=(0,E.useState)(!1);return(0,E.useEffect)(()=>{let t=new IntersectionObserver(([e])=>{e.isIntersecting&&n(!0)},{threshold:.1});return e.current&&t.observe(e.current),()=>t.disconnect()},[]),(0,M.jsx)(`section`,{className:`w-full bg-[#F9FAFB] border-y border-gray-200 py-8 md:py-10`,children:(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6`,children:[(0,M.jsx)(`p`,{className:`text-center text-xs font-bold uppercase tracking-widest text-[#6B7280] mb-6`,children:`Accredited & Trusted`}),(0,M.jsx)(`div`,{ref:e,className:`flex items-start gap-4 md:gap-6 overflow-x-auto md:overflow-visible md:flex-wrap md:justify-center pb-2 md:pb-0`,style:{scrollbarWidth:`none`,msOverflowStyle:`none`},children:Ca.map((e,n)=>(0,M.jsx)(wa,{item:e,index:n,visible:t},e.name))})]})})}var Ea=`https://static.readdy.ai/image/4a891bf01ca77aa59d4e684a3f5f885b/f659cf6fed330c7185a4b317a70f2a73.png`;function Da(){let e=(0,E.useRef)(null),[t,n]=(0,E.useState)(!1);return(0,E.useEffect)(()=>{let t=new IntersectionObserver(([e])=>{e.isIntersecting&&n(!0)},{threshold:.1});return e.current&&t.observe(e.current),()=>t.disconnect()},[]),{ref:e,visible:t}}function Oa({tag:e,heading:t,body:n,reverse:r=!1,image:i,imageAlt:a,children:o}){let{ref:s,visible:c}=Da();return(0,M.jsxs)(`div`,{ref:s,className:`flex flex-col ${r?`lg:flex-row-reverse`:`lg:flex-row`} gap-6 lg:gap-16 items-center transition-all duration-700 ${c?`opacity-100 translate-y-0`:`opacity-0 translate-y-8`}
11`,children:[i&&(0,M.jsx)(`div`,{className:`flex-1 min-w-0 w-full ${r?`lg:order-none order-first`:`order-first lg:order-none`}`,children:(0,M.jsx)(`div`,{className:`w-full h-52 md:h-80 lg:h-96 rounded-2xl overflow-hidden`,children:(0,M.jsx)(`img`,{src:i,alt:a||t,className:`w-full h-full object-cover object-center`,loading:`lazy`})})}),(0,M.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#16A34A] font-semibold text-xs uppercase tracking-widest mb-2`,children:e}),(0,M.jsx)(`h3`,{className:`text-xl md:text-3xl font-extrabold text-[#14532D] mb-3 leading-tight`,children:t}),(0,M.jsx)(`p`,{className:`text-[#4B5563] text-sm md:text-base leading-relaxed mb-5`,children:n}),o]})]})}function ka({onQuote:e,onSolar:t}){let{ref:n,visible:r}=Da();return(0,M.jsxs)(`section`,{className:`py-14 md:py-28 bg-white relative overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`absolute top-1/4 -left-10 w-40 h-40 rounded-full border border-[#22C55E]/15 animate-spin`,style:{animationDuration:`22s`}}),(0,M.jsx)(`div`,{className:`absolute top-3/4 -right-10 w-32 h-32 rounded-full border border-[#16A34A]/15 animate-spin`,style:{animationDuration:`16s`,animationDirection:`reverse`}}),(0,M.jsx)(`div`,{className:`absolute left-0 top-0 h-full w-px bg-gradient-to-b from-transparent via-[#22C55E]/10 to-transparent`}),(0,M.jsx)(`div`,{className:`absolute right-0 top-0 h-full w-px bg-gradient-to-b from-transparent via-[#22C55E]/10 to-transparent`})]}),(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6 flex flex-col gap-14 md:gap-28 relative z-10`,children:[(0,M.jsxs)(`div`,{ref:n,className:`text-center transition-all duration-700 ${r?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#16A34A] font-semibold text-sm uppercase tracking-widest mb-3`,children:`About Intolec Ltd`}),(0,M.jsx)(`h2`,{className:`text-2xl md:text-5xl font-extrabold text-[#14532D] mb-3`,children:`Your Trusted Local Electricians in Leamington Spa`}),(0,M.jsxs)(`p`,{className:`text-[#6B7280] text-base md:text-lg max-w-3xl mx-auto`,children:[`At Intolec Ltd, we combine years of hands-on experience with a genuine commitment to quality, reliability and honest advice â for every job, big or small. `,(0,M.jsx)(`strong`,{children:`Searching for an electrician near you in Leamington Spa, Warwick or across Warwickshire?`}),` Weâre NAPIT registered, MCS certified for solar, OZEV approved for EV chargers, and a Which? Trusted Trader â so you know your home and family are in safe hands.`]})]}),(0,M.jsx)(Oa,{tag:`Reliable & Local`,heading:`Struggling to Find a Reliable Electrician Near You in Leamington Spa?`,body:`Have you been left waiting by electricians who don't show up, or hit with unexpected costs after the job? At Intolec Ltd, we understand how frustrating that can be when you just need a dependable local tradesperson. We're accountable, professional and approachable â whether you need a light fitting replaced, a consumer unit upgrade, or impartial advice on the latest renewable energy solutions. We turn up when we say we will, give you a clear written quote upfront, and treat your home with the respect it deserves. That's why we're the go-to electrician for so many homeowners and landlords across Leamington Spa and Warwickshire.`,image:Ea,imageAlt:`Intolec Ltd electrician and branded van in Leamington Spa`,children:(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center justify-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Call 01926 768080`]}),(0,M.jsxs)(`button`,{onClick:e,className:`inline-flex items-center justify-center gap-2 px-6 py-3 rounded-lg border-2 border-[#14532D] text-[#14532D] font-bold text-sm hover:bg-[#14532D] hover:text-white transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Request a Quote`]})]})}),(0,M.jsxs)(Oa,{tag:`Solar & EV Specialists`,heading:`Thinking About Solar Panels, Battery Storage or an EV Charger Near You?`,body:`With rising energy costs and growing environmental awareness, there's never been a better time to invest in renewable energy for your home. At Intolec Ltd, we specialise in solar panel installations, battery storage systems, and EV charging solutions for homes across Leamington Spa, Warwick, Kenilworth and beyond. As an OZEV-approved installer and MCS-certified solar specialist, we can guide you through all the options, handle the paperwork including Smart Export Guarantee applications, and deliver a clean, professional installation that starts saving you money from day one.`,reverse:!0,image:`https://static.readdy.ai/image/4a891bf01ca77aa59d4e684a3f5f885b/2525374cb58bb0c84d50cb339ce61d9e.png`,imageAlt:`Solar panels and EV charger installation Leamington Spa`,children:[(0,M.jsx)(`ul`,{className:`flex flex-col gap-2 mb-6`,children:[`Solar Panel Installation`,`Battery Storage Systems`,`EV Charger Installation (OZEV Approved)`,`Smart Energy Monitoring`].map(e=>(0,M.jsxs)(`li`,{className:`flex items-center gap-2 text-sm text-[#374151]`,children:[(0,M.jsx)(`i`,{className:`ri-checkbox-circle-fill text-[#22C55E] text-base flex-shrink-0`}),e]},e))}),(0,M.jsxs)(`button`,{onClick:t,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#14532D] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-sun-line`}),`Solar Enquiry`]})]}),(0,M.jsxs)(Oa,{tag:`Trusted Tradespeople`,heading:`Need a Qualified Electrician Near You That You Can Actually Trust?`,body:`Whether it's a small repair, a full house rewire, or an emergency call-out, you deserve an electrician who shows up when they say they will, provides a clear and honest quote, and gets the job done right the first time. Based in Warwick and serving the whole of Leamington Spa, Coventry, Stratford-upon-Avon, Southam and all surrounding Warwickshire towns, we've built our reputation on reliability and meticulous attention to detail. From adding extra sockets to designing bespoke lighting solutions, we're here to make your life easier and your home safer.`,image:`/ai/img_res/7fab8ba8572d4d0768a74b1b2e9dd958.webp`,imageAlt:`Black electric car charging with EV charger installed by Intolec Ltd Leamington Spa`,children:[(0,M.jsx)(`div`,{className:`grid grid-cols-2 gap-3 mb-6`,children:[{icon:`ri-map-pin-2-line`,label:`Leamington Spa & Warwickshire`},{icon:`ri-award-line`,label:`NAPIT Registered`},{icon:`ri-shield-check-line`,label:`Fully Insured`},{icon:`ri-star-fill`,label:`5â
Google Rated`}].map(e=>(0,M.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-[#374151]`,children:[(0,M.jsx)(`i`,{className:`${e.icon} text-[#22C55E] text-base flex-shrink-0`}),(0,M.jsx)(`span`,{children:e.label})]},e.label))}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Call Now â Free Advice`]}),(0,M.jsxs)(`button`,{onClick:e,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg border-2 border-[#14532D] text-[#14532D] font-bold text-sm hover:bg-[#14532D] hover:text-white transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]}),(0,M.jsx)(Aa,{onSolar:t})]})]})}function Aa({onSolar:e}){let{ref:t,visible:n}=Da();return(0,M.jsx)(`div`,{ref:t,className:`rounded-2xl overflow-hidden transition-all duration-700 ${n?`opacity-100 translate-y-0`:`opacity-0 translate-y-8`}`,children:(0,M.jsxs)(`div`,{className:`flex flex-col lg:flex-row`,children:[(0,M.jsxs)(`div`,{className:`flex-1 bg-[#14532D] p-10 md:p-14 flex flex-col justify-center`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#86EFAC] font-semibold text-xs uppercase tracking-widest mb-3`,children:`Renewable Energy`}),(0,M.jsxs)(`h3`,{className:`text-2xl md:text-3xl font-extrabold text-white mb-4 leading-tight`,children:[`Leading the Way in`,(0,M.jsx)(`br`,{}),`Renewable Energy`]}),(0,M.jsx)(`p`,{className:`text-[#86EFAC]/80 text-base leading-relaxed mb-6`,children:`As the world moves towards sustainable energy, weâre proud to offer a comprehensive range of renewable energy solutions tailored to the needs of homeowners and businesses across Leamington Spa, Warwick, Kenilworth and the wider Warwickshire area. From solar panels to battery storage and EV charging, we make green energy simple and affordable.`}),(0,M.jsx)(`div`,{className:`flex flex-col gap-3 mb-8`,children:[`Reduce your carbon footprint`,`Save money on energy bills`,`Government incentives available`,`Expert installation & aftercare`].map(e=>(0,M.jsxs)(`div`,{className:`flex items-center gap-2 text-[#86EFAC] text-sm`,children:[(0,M.jsx)(`i`,{className:`ri-checkbox-circle-fill text-[#22C55E] flex-shrink-0`}),e]},e))}),(0,M.jsxs)(`button`,{onClick:e,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap cursor-pointer w-fit`,children:[(0,M.jsx)(`i`,{className:`ri-sun-line`}),`Get a Renewable Energy Quote`]})]}),(0,M.jsx)(`div`,{className:`flex-1 min-h-72 lg:min-h-0`,children:(0,M.jsx)(`img`,{src:`https://static.readdy.ai/image/4a891bf01ca77aa59d4e684a3f5f885b/39ff6683af7b0151b8a59457b4f464a3.png`,alt:`Renewable energy installation Leamington Spa â solar panels and EV charger`,className:`w-full h-full object-cover object-top`,loading:`lazy`})})]})})}function ja(e,t,n=50){let r=(0,E.useRef)(0);return{onTouchStart:(0,E.useCallback)(e=>{r.current=e.touches[0].clientX},[]),onTouchEnd:(0,E.useCallback)(i=>{let a=r.current-i.changedTouches[0].clientX;Math.abs(a)<n||(a>0?e():t())},[e,t,n])}}var Ma=[{icon:`ri-plug-line`,title:`Installation & Upgrades`,color:`from-[#14532D]/10 to-[#22C55E]/5`,iconBg:`bg-[#14532D]`,items:[{label:`Electrical Installations`,slug:`electrical-installations-electrician-leamington-spa`},{label:`Rewiring`,slug:`rewiring-electrician-leamington-spa`},{label:`Consumer Unit Upgrades`,slug:`consumer-unit-upgrades-electrician-leamington-spa`},{label:`Lighting Installation`,slug:`lighting-installation-electrician-leamington-spa`},{label:`LED Upgrades`,slug:`led-upgrades-electrician-leamington-spa`},{label:`Electric Showers`,slug:`electric-shower-installations-electrician-leamington-spa`}
11,{label:`Kitchen Electrics`,slug:`kitchen-electrics-electrician-leamington-spa`},{label:`Extra Sockets`,slug:`extra-sockets-and-lights-electrician-leamington-spa`},{label:`Light Fitting Replacements`,slug:`light-fitting-replacements-electrician-leamington-spa`}]},{icon:`ri-lightbulb-flash-line`,title:`Lighting & Security`,color:`from-[#16A34A]/10 to-[#22C55E]/5`,iconBg:`bg-[#16A34A]`,items:[{label:`Outdoor & Garden Lighting`,slug:`outdoor-garden-lighting-electrician-leamington-spa`},{label:`Security Lighting`,slug:`outdoor-security-lighting-electrician-leamington-spa`},{label:`Socket & Switch Installation`,slug:`socket-and-switch-installation-electrician-leamington-spa`}]},{icon:`ri-charging-pile-line`,title:`EV & Renewables`,color:`from-[#22C55E]/10 to-[#86EFAC]/10`,iconBg:`bg-[#22C55E]`,items:[{label:`EV Charger Installation`,slug:`ev-charger-installer-electrician-leamington-spa`},{label:`OZEV Installer`,slug:`ozev-registered-electrician-leamington-spa`},{label:`Solar Panels`,slug:`solar-and-battery-storage-system-electrician-leamington-spa`},{label:`Battery Storage Systems`,slug:`battery-storage-systems-electrician-leamington-spa`}]},{icon:`ri-tools-line`,title:`Repairs & Maintenance`,color:`from-[#16A34A]/10 to-[#22C55E]/5`,iconBg:`bg-[#16A34A]`,items:[{label:`Electrical Repairs`,slug:`electrical-repairs-electrician-leamington-spa`},{label:`Fault Finding`,slug:`testing-and-fault-finding-electrician-leamington-spa`},{label:`Tripping Circuits`,slug:`tripping-circuits-electrician-leamington-spa`},{label:`Fuse Box Repairs`,slug:`consumer-unit-upgrades-electrician-leamington-spa`},{label:`Lighting Repairs`,slug:`lighting-repairs-electrician-leamington-spa`},{label:`Emergency Call-Outs`,slug:`emergency-call-outs-electrician-leamington-spa`},{label:`Maintenance Contracts`,slug:`maintenance-contracts-electrician-leamington-spa`}]},{icon:`ri-shield-check-line`,title:`Safety & Compliance`,color:`from-[#22C55E]/10 to-[#86EFAC]/10`,iconBg:`bg-[#22C55E]`,items:[{label:`EICRs`,slug:`eicrs-electrician-leamington-spa`},{label:`Landlord Certificates`,slug:`landlord-certificates-electrician-leamington-spa`},{label:`Smoke & Heat Alarms`,slug:`smoke-and-heat-alarms-electrician-leamington-spa`},{label:`Surge Protection`,slug:`surge-protection-electrician-leamington-spa`},{label:`Earthing & Bonding`,slug:`earthing-and-bonding-electrician-leamington-spa`},{label:`RCD Testing`,slug:`rcd-testing-electrician-leamington-spa`}]}];function Na({cat:e}){return(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl overflow-hidden border border-gray-100 h-full flex flex-col`,children:[(0,M.jsxs)(`div`,{className:`bg-gradient-to-br ${e.color} p-5 pb-4`,children:[(0,M.jsx)(`div`,{className:`w-12 h-12 flex items-center justify-center rounded-xl ${e.iconBg} mb-3`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-white text-xl`})}),(0,M.jsx)(`h3`,{className:`text-base font-bold text-[#14532D]`,children:e.title})]}),(0,M.jsx)(`div`,{className:`p-5 pt-4 flex-1`,children:(0,M.jsx)(`ul`,{className:`space-y-2`,children:e.items.map(e=>(0,M.jsx)(`li`,{children:(0,M.jsxs)(`a`,{href:`/service/${e.slug}`,className:`flex items-center gap-2 text-sm text-[#374151] hover:text-[#14532D] group transition-colors`,children:[(0,M.jsx)(`i`,{className:`ri-checkbox-circle-fill text-[#22C55E] text-base flex-shrink-0`}),(0,M.jsx)(`span`,{className:`group-hover:underline underline-offset-2`,children:e.label})]})},e.slug))})}),(0,M.jsx)(`div`,{className:`px-5 pb-5`,children:(0,M.jsxs)(`a`,{href:`/services`,className:`inline-flex items-center gap-1 text-xs font-bold text-[#16A34A] hover:text-[#14532D] transition-colors`,children:[`View all `,(0,M.jsx)(`i`,{className:`ri-arrow-right-line`})]})})]})}function Pa({current:e,total:t,onPrev:n,onNext:r,onDot:i,swipeHandlers:a,children:o}){return(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`div`,{className:`overflow-hidden rounded-2xl`,...a,children:(0,M.jsx)(`div`,{className:`flex transition-transform duration-500 ease-in-out`,style:{transform:`translateX(-${e*100}%)`},children:o})}),(0,M.jsxs)(`div`,{className:`flex items-center justify-center gap-3 mt-5`,children:[(0,M.jsx)(`button`,{onClick:n,className:`w-9 h-9 flex items-center justify-center rounded-full border-2 border-[#14532D] text-[#14532D] hover:bg-[#14532D] hover:text-white transition-all cursor-pointer`,"aria-label":`Previous`,children:(0,M.jsx)(`i`,{className:`ri-arrow-left-s-line text-lg`})}),(0,M.jsx)(`div`,{className:`flex gap-1.5`,children:Array.from({length:t}).map((t,n)=>(0,M.jsx)(`button`,{onClick:()=>i(n),className:`h-2 rounded-full transition-all duration-300 cursor-pointer ${n===e?`bg-[#16A34A] w-6`:`bg-gray-300 w-2`}`,"aria-label":`Slide ${n+1}`},n))}),(0,M.jsx)(`button`,{onClick:r,className:`w-9 h-9 flex items-center justify-center rounded-full border-2 border-[#14532D] text-[#14532D] hover:bg-[#14532D] hover:text-white transition-all cursor-pointer`,"aria-label":`Next`,children:(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-lg`})})]}),(0,M.jsxs)(`p`,{className:`text-center text-xs text-[#9CA3AF] mt-1`,children:[e
11+1,` / `,t,` â swipe to browse`]})]})}function Fa(){let e=(0,E.useRef)(null),[t,n]=(0,E.useState)(!1),[r,i]=(0,E.useState)(0),a=(0,E.useRef)(null),o=Ma.length,s=(0,E.useCallback)(()=>i(e=>(e+1)%o),[o]),c=(0,E.useCallback)(()=>i(e=>(e-1+o)%o),[o]),l=(0,E.useCallback)(()=>{a.current&&clearInterval(a.current),a.current=setInterval(s,4e3)},[s]);(0,E.useEffect)(()=>(a.current=setInterval(s,4e3),()=>{a.current&&clearInterval(a.current)}),[s]),(0,E.useEffect)(()=>{let t=new IntersectionObserver(([e])=>{e.isIntersecting&&n(!0)},{threshold:.1});return e.current&&t.observe(e.current),()=>t.disconnect()},[]);let u=ja(()=>{s(),l()},()=>{c(),l()});return(0,M.jsxs)(`section`,{id:`services`,className:`py-16 md:py-28 bg-[#F3F4F6] relative overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 left-0 w-full h-1 bg-gradient-to-r from-transparent via-[#22C55E] to-transparent animate-pulse`}),(0,M.jsx)(`div`,{className:`absolute bottom-0 left-0 w-full h-1 bg-gradient-to-r from-transparent via-[#16A34A] to-transparent animate-pulse`,style:{animationDelay:`1s`}}),(0,M.jsx)(`div`,{className:`absolute top-1/3 -left-20 w-64 h-64 rounded-full border border-[#22C55E]/10 animate-spin`,style:{animationDuration:`20s`}}),(0,M.jsx)(`div`,{className:`absolute bottom-1/4 -right-20 w-48 h-48 rounded-full border border-[#16A34A]/10 animate-spin`,style:{animationDuration:`15s`,animationDirection:`reverse`}})]}),(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6 relative z-10`,children:[(0,M.jsxs)(`div`,{ref:e,className:`text-center mb-10 md:mb-14 transition-all duration-700 ${t?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#16A34A] font-semibold text-sm uppercase tracking-widest mb-3`,children:`What We Do`}),(0,M.jsx)(`h2`,{className:`text-2xl md:text-5xl font-extrabold text-[#14532D] mb-3`,children:`Our Electrical Services`}),(0,M.jsxs)(`p`,{className:`text-[#6B7280] text-base md:text-lg max-w-2xl mx-auto`,children:[`Looking for a `,(0,M.jsx)(`strong`,{className:`text-[#14532D]`,children:`trusted local electrician near you in Leamington Spa`}),`? We cover everything from small repairs to full solar panel and EV charger installations across Warwickshire.`]})]}),(0,M.jsx)(`div`,{className:`md:hidden`,children:(0,M.jsx)(Pa,{current:r,total:o,onPrev:()=>{c(),l()},onNext:()=>{s(),l()},onDot:e=>{i(e),l()},swipeHandlers:u,children:Ma.map(e=>(0,M.jsx)(`div`,{className:`w-full flex-shrink-0 px-1`,children:(0,M.jsx)(Na,{cat:e})},e.title))})}),(0,M.jsx)(`div`,{className:`hidden md:grid grid-cols-2 lg:grid-cols-3 gap-6`,children:Ma.map((e,n)=>(0,M.jsx)(`div`,{className:`transition-all duration-500 ${t?`opacity-100 translate-y-0`:`opacity-0 translate-y-8`}`,style:{transitionDelay:`${n*80}ms`},children:(0,M.jsx)(Na,{cat:e})},e.title))}),(0,M.jsxs)(`div`,{className:`mt-10 md:mt-12 text-center`,children:[(0,M.jsx)(`p`,{className:`text-[#6B7280] mb-4 text-sm md:text-base`,children:`Not sure which service you need? Call us for free, no-obligation advice from a qualified local electrician.`}),(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-6 md:px-8 py-3 md:py-4 rounded-lg bg-[#14532D] text-white font-bold text-sm md:text-base hover:bg-[#16A34A] transition-colors duration-200 whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Call 01926 768080`]})]})]})]})}var Ia=[{name:`John Carson`,rating:5,date:`April 2026`,text:`Absolutely brilliant service from Intolec. They installed our EV charger and sorted out some additional sockets in the garage. Turned up on time, clean and tidy, and the price was exactly as quoted. Highly recommend!`,initials:`JC`},{name:`Jenny Smedley`,rating:5,date:`March 2026`,text:`Used Intolec for a full consumer unit upgrade and new lighting throughout the house. Fantastic job â professional, friendly and very knowledgeable. Will definitely use again and have already recommended to neighbours.`,initials:`JS`},{name:`Sam Armistead`,rating:5,date:`February 2026`,text:`Had solar panels and battery storage installed by Intolec. The whole process was seamless from the initial survey to the final installation. Already seeing great savings on our energy bills. Couldn't be happier!`,initials:`SA`},{name:`Rachel Thompson`,rating:5,date:`January 2026`,text:`Called Intolec for an emergency fault â they came out the same day and fixed the issue quickly. Very reassuring to have a reliable local electrician you can count on. Excellent service, fair pricing.`,
11initials:`RT`},{name:`David Patel`,rating:5,date:`December 2025`,text:`Intolec carried out our EICR and landlord certificate. Very thorough, professional report provided promptly. Great communication throughout. Will be using them for all our rental properties going forward.`,initials:`DP`},{name:`Claire Whitfield`,rating:5,date:`November 2025`,text:`Had smart home controls and new LED lighting installed throughout. The team were brilliant â tidy, efficient and explained everything clearly. The house looks amazing and the energy savings are already noticeable.`,initials:`CW`}];function La({review:e}){return(0,M.jsxs)(`div`,{className:`bg-[#F3F4F6] rounded-2xl p-5 md:p-6 flex flex-col gap-4 h-full`,children:[(0,M.jsx)(`div`,{className:`flex gap-1`,children:[...Array(e.rating)].map((e,t)=>(0,M.jsx)(`i`,{className:`ri-star-fill text-[#FACC15] text-lg`},t))}),(0,M.jsxs)(`p`,{className:`text-[#374151] text-sm leading-relaxed flex-1`,children:[`â`,e.text,`â`]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-3 pt-2 border-t border-gray-200`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-full bg-[#14532D] text-white font-bold text-sm flex-shrink-0`,children:e.initials}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`font-bold text-[#111827] text-sm`,children:e.name}),(0,M.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,M.jsx)(`i`,{className:`ri-google-line text-xs text-[#6B7280]`}),(0,M.jsxs)(`span`,{className:`text-xs text-[#6B7280]`,children:[`Google · `,e.date]})]})]})]})]})}function Ra(){let[e,t]=(0,E.useState)(0),[n,r]=(0,E.useState)(!1),[i,a]=(0,E.useState)(!1),o=(0,E.useRef)(null),s=(0,E.useRef)(null);(0,E.useEffect)(()=>{let e=()=>a(window.innerWidth<768);return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]);let c=i?1:3,l=Math.ceil(Ia.length/c),u=(0,E.useCallback)(()=>t(e=>(e+1)%l),[l]),d=(0,E.useCallback)(()=>t(e=>(e-1+l)%l),[l]),f=(0,E.useCallback)(()=>{s.current&&clearInterval(s.current),s.current=setInterval(u,5e3)},[u]);(0,E.useEffect)(()=>(s.current=setInterval(u,5e3),()=>{s.current&&clearInterval(s.current)}),[u]),(0,E.useEffect)(()=>{let e=new IntersectionObserver(([e])=>{e.isIntersecting&&r(!0)},{threshold:.1});return o.current&&e.observe(o.current),()=>e.disconnect()},[]),(0,E.useEffect)(()=>{t(0)},[c]);let p=ja(()=>{u(),f()},()=>{d(),f()});return(0,M.jsxs)(`section`,{id:`reviews`,ref:o,className:`py-16 md:py-28 bg-white relative overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 left-0 w-full h-0.5 bg-gradient-to-r from-[#22C55E] via-transparent to-[#16A34A] opacity-40`}),(0,M.jsx)(`div`,{className:`absolute left-0 top-0 h-full w-0.5 bg-gradient-to-b from-transparent via-[#22C55E]/20 to-transparent`}),(0,M.jsx)(`div`,{className:`absolute right-0 top-0 h-full w-0.5 bg-gradient-to-b from-transparent via-[#22C55E]/20 to-transparent`})]}),(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6 relative z-10`,children:[(0,M.jsxs)(`div`,{className:`text-center mb-10 md:mb-14 transition-all duration-700 ${n?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#16A34A] font-semibold text-sm uppercase tracking-widest mb-3`,children:`Customer Reviews`}),(0,M.jsx)(`h2`,{className:`text-2xl md:text-5xl font-extrabold text-[#14532D] mb-3`,children:`Our 5 Star Reviews on Google`}),(0,M.jsxs)(`div`,{className:`flex items-center justify-center gap-1 mb-3`,children:[[...[,,,,,]].map((e,t)=>(0,M.jsx)(`i`,{className:`ri-star-fill text-[#FACC15] text-xl md:text-2xl`},t)),(0,M.jsx)(`span`,{className:`text-[#374151] font-semibold ml-2 text-sm md:text-base`,children:`5.0 / 5.0`})]}),(0,M.jsxs)(`a`,{href:`https://share.google/2Yng4OLhAoqcj1SZ5`,target:`_blank`,rel:`nofollow noopener noreferrer`,className:`inline-flex items-center gap-2 text-[#16A34A] font-semibold hover:text-[#14532D] transition-colors text-sm`,children:[(0,M.jsx)(`i`,{className:`ri-google-line`}),`Read all our Google Reviews`,(0,M.jsx)(`i`,{className:`ri-external-link-line text-sm`})]})]}),(0,M.jsxs)(`div`,{className:`relative`,children:[(0,M.jsx)(`div`,{className:`overflow-hidden`,...p,children:(0,M.jsx)(`div`,{className:`flex transition-transform duration-500 ease-in-out`,style:{transform:`translateX(-${e*100}%)`},children:Array.from({length:l}).map((e,t)=>{let n=Ia.slice(t*c,t*c+c);return(0,M.jsx)(`div`,{className:`w-full flex-shrink-0 grid grid-cols-1 md:grid-cols-3 gap-4 md:gap-6`,children:n.map((e,t)=>(0,M.jsx)(La,{review:e},t))},t)})})}),(0,M.jsxs)(`div`,{className:`flex items-center justify-center gap-4 mt-6 md:mt-8`,children:[(0,M.jsx)(`button`,{onClick:()=>{d(),f()},className:`w-9 h-9 md:w-10 md:h-10 flex items-center justify-center rounded-full border-2 border-[#14532D] text-[#14532D] hover:bg-[#14532D] hover:text-white transition-all duration-200 cursor-pointer`,"aria-label":`Previous reviews`,children:(0,M.jsx)(`i`,{className:`ri-arrow-left-s-line text-xl`})}),(0,M.jsx)(`div`,{className:`flex gap-2`,children:[...Array(l)].map((n,r)=>(0,M.jsx)(`button`,{onClick:()=>{t(r),f()},className:`h-2.5 rounded-full transition-all duration-300 cursor-pointer ${r===e?`bg-[#16A34A] w-6`:`bg-gray-300 w-2.5`}`,"aria-label":`Go to slide ${r+1}`},r))}),(0,M.jsx)(`button`,{onClick:()=>{u(),f()},className:`w-9 h-9 md:w-10 md:h-10 flex items-center justify-center rounded-full border-2 border-[#14532D] text-[#14532D] hover:bg-[#14532D] hover:text-white transition-all duration-200 cursor-pointer`,"aria-label":`Next reviews`,children:(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-xl`})})]}),i&&(0,M.jsx)(`p`,{className:`text-center text-xs text-[#9CA3AF] mt-1`,children:`Swipe to browse`})]})]})]})}var za=[{title:`Solar & EV Installation`,location:`Southam, Warwickshire`,description:`Full solar panel array with battery storage and EV charger installation for a residential property.`,tags:[`Solar Panels`,`Battery Storage`,`EV Charger`],image:`/ai/img_res/beb38ca9db2a7317cedbe760628111fb.webp`},{title:`Solar Installation`,location:`Leamington Spa`,description:`Residential solar panel installation with smart monitoring system, reducing energy bills by over 60%.`,tags:[`Solar Panels`,`Smart Monitoring`],image:`/ai/img_res/ca5ee2ffa94943366608d0c31bcac106.webp`},{title:`Fuseboard Upgrade`,location:`Leamington Spa`,description:`Full consumer unit upgrade to modern RCD-protected board, ensuring full compliance and safety.`,tags:[`Consumer Unit`,`RCD Protection`,`Compliance`],image:`/ai/img_res/86f3e8802e353b79d0398f6994b03af8.webp`}];function Ba({project:e}){return(0,M.jsxs)(`div`,{className:`group bg-white rounded-2xl overflow-hidden border border-gray-100 h-full flex flex-col`,children:[(0,M.jsxs)(`div`,{className:`relative h-48 md:h-56 overflow-hidden flex-shrink-0`,children:[(0,M.jsx)(`img`,{src:e.image,alt:`${e.title} ${e.location}`,className:`w-full h-full object-cover object-top group-hover:scale-105 transition-transform duration-500`,loading:`lazy`}),(0,M.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-t from-[#14532D]/60 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300`})]}),(0,M.jsxs)(`div`,{className:`p-5 md:p-6 flex flex-col flex-1`,children:[(0,M.jsx)(`div`,{className:`flex flex-wrap gap-2 mb-3`,children:e.tags.map((e,t)=>(0,M.jsx)(`span`,{className:`text-xs font-semibold px-2 py-1 rounded-full bg-[#22C55E]/10 text-[#16A34A]`,children:e},t))}),(0,M.jsx)(`h3`,{className:`text-base md:text-lg font-bold text-[#14532D] mb-1`,children:e.title}),(0,M.jsxs)(`div`,{className:`flex items-center gap-1 text-[#6B7280] text-sm mb-3`,children:[(0,M.jsx)(`i`,{className:`ri-map-pin-line text-[#22C55E]`}),e.location]}),(0,M.jsx)(`p`,{className:`text-[#374151] text-sm leading-relaxed`,children:e.description})]})]})}function Va(){let[e,t]=(0,E.useState)(!1),[n,r]=(0,E.useState)(0),i=(0,E.useRef)(null),a=(0,E.useRef)(null),o=za.length,s=(0,E.useCallback)(()=>r(e=>(e+1)%o),[o]),c=(0,E.useCallback)(()=>r(e=>(e-1+o)%o),[o]),l=(0,E.useCallback)(()=>{a.current&&clearInterval(a.current),a.current=setInterval(s,4500)},[s]);(0,E.useEffect)(()=>(a.current=setInterval(s,4500),()=>{a.current&&clearInterval(a.current)}),[s]),(0,E.useEffect)(()=>{let e=new IntersectionObserver(([e])=>{e.isIntersecting&&t(!0)},{threshold:.1});return i.current&&e.observe(i.current),()=>e.disconnect()},[]);let u=ja(()=>{s(),l()},()=>{c(),l()});return(0,M.jsxs)(`section`,{id:`portfolio`,ref:i,className:`py-16 md:py-28 bg-[#F3F4F6] relative overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 right-0 w-72 h-72 rounded-full border-2 border-[#22C55E]/10 -translate-y-1/2 translate-x-1/2 animate-spin`,style:{animationDuration:`25s`}}
11),(0,M.jsx)(`div`,{className:`absolute bottom-0 left-0 w-56 h-56 rounded-full border-2 border-[#16A34A]/10 translate-y-1/2 -translate-x-1/2 animate-spin`,style:{animationDuration:`18s`,animationDirection:`reverse`}}),(0,M.jsx)(`div`,{className:`absolute top-1/2 left-0 w-full h-px bg-gradient-to-r from-[#22C55E]/20 via-transparent to-[#22C55E]/20`})]}),(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6 relative z-10`,children:[(0,M.jsxs)(`div`,{className:`text-center mb-10 md:mb-14 transition-all duration-700 ${e?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#16A34A] font-semibold text-sm uppercase tracking-widest mb-3`,children:`Our Work`}),(0,M.jsx)(`h2`,{className:`text-2xl md:text-5xl font-extrabold text-[#14532D] mb-3`,children:`Recent Electrical Projects`}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-base md:text-lg max-w-2xl mx-auto`,children:`A selection of our recent electrical and renewable energy installations across Leamington Spa, Warwick, Southam and the wider Warwickshire area â showing the quality you can expect from your local electrician.`})]}),(0,M.jsxs)(`div`,{className:`md:hidden`,children:[(0,M.jsx)(`div`,{className:`overflow-hidden rounded-2xl`,...u,children:(0,M.jsx)(`div`,{className:`flex transition-transform duration-500 ease-in-out`,style:{transform:`translateX(-${n*100}%)`},children:za.map((e,t)=>(0,M.jsx)(`div`,{className:`w-full flex-shrink-0 px-1`,children:(0,M.jsx)(Ba,{project:e})},t))})}),(0,M.jsxs)(`div`,{className:`flex items-center justify-center gap-3 mt-5`,children:[(0,M.jsx)(`button`,{onClick:()=>{c(),l()},className:`w-9 h-9 flex items-center justify-center rounded-full border-2 border-[#14532D] text-[#14532D] hover:bg-[#14532D] hover:text-white transition-all cursor-pointer`,"aria-label":`Previous`,children:(0,M.jsx)(`i`,{className:`ri-arrow-left-s-line text-lg`})}),(0,M.jsx)(`div`,{className:`flex gap-1.5`,children:za.map((e,t)=>(0,M.jsx)(`button`,{onClick:()=>{r(t),l()},className:`h-2 rounded-full transition-all duration-300 cursor-pointer ${t===n?`bg-[#16A34A] w-6`:`bg-gray-300 w-2`}`,"aria-label":`Project ${t+1}`},t))}),(0,M.jsx)(`button`,{onClick:()=>{s(),l()},className:`w-9 h-9 flex items-center justify-center rounded-full border-2 border-[#14532D] text-[#14532D] hover:bg-[#14532D] hover:text-white transition-all cursor-pointer`,"aria-label":`Next`,children:(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-lg`})})]}),(0,M.jsx)(`p`,{className:`text-center text-xs text-[#9CA3AF] mt-1`,children:`Swipe to browse`})]}),(0,M.jsx)(`div`,{className:`hidden md:grid grid-cols-3 gap-6`,children:za.map((t,n)=>(0,M.jsx)(`div`,{className:`transition-all duration-500 ${e?`opacity-100 translate-y-0`:`opacity-0 translate-y-8`}`,style:{transitionDelay:`${n*120}ms`},children:(0,M.jsx)(Ba,{project:t})},n))}),(0,M.jsxs)(`div`,{className:`mt-10 md:mt-12 text-center`,children:[(0,M.jsx)(`p`,{className:`text-[#6B7280] mb-4 text-sm md:text-base`,children:`Want to see more of our work or discuss a similar project for your home?`}),(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-6 md:px-8 py-3 md:py-4 rounded-lg bg-[#14532D] text-white font-bold text-sm md:text-base hover:bg-[#16A34A] transition-colors duration-200 whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Discuss Your Project`]})]})]})]})}var Ha=[{icon:`ri-map-pin-2-line`,title:`Local Electricians Near You`,desc:`Based in Warwick, we serve Leamington Spa and all of Warwickshire. We know the local area inside out and can reach you fast â often the same day for urgent call-outs.`},{icon:`ri-calendar-check-line`,title:`Reliable Appointments`,desc:`We turn up when we say we will â no waiting around, no chasing. Your time is valuable and we treat it that way across every job in Leamington Spa and Warwickshire.`},{icon:`ri-price-tag-3-line`,title:`Clear Pricing â No Surprises`,desc:`Written quotes before we start. No hidden costs, no unexpected extras. Just honest, transparent pricing from a local electrician you can trust.`},{icon:`ri-award-line`,title:`Fully Qualified & Accredited`,desc:`NAPIT registered, MCS certified solar installer
11s, OZEV approved EV charger installers, Which? Trusted Trader. Fully insured. All work certified to 18th Edition standards.`},{icon:`ri-sun-line`,title:`Renewable Energy Specialists`,desc:`Solar panels, battery storage and EV chargers â all installed by MCS certified professionals. Future-proof your home while saving on energy bills. Smart Export Guarantee eligible.`},{icon:`ri-alarm-warning-line`,title:`Emergency Electrician â 24/7`,desc:`Electrical emergencies don't wait. We offer emergency call-out services across Leamington Spa, Warwick, Kenilworth and all of Warwickshire. Call 01926 768080 anytime.`}];function Ua({reason:e}){return(0,M.jsxs)(`div`,{className:`bg-white/10 backdrop-blur-sm border border-white/20 rounded-2xl p-5 md:p-6 hover:bg-white/15 transition-all duration-300 h-full`,children:[(0,M.jsx)(`div`,{className:`w-11 h-11 flex items-center justify-center rounded-xl bg-[#22C55E]/20 border border-[#22C55E]/30 mb-4`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-[#86EFAC] text-xl`})}),(0,M.jsx)(`h3`,{className:`text-white font-bold text-base mb-2`,children:e.title}),(0,M.jsx)(`p`,{className:`text-[#86EFAC]/80 text-sm leading-relaxed`,children:e.desc})]})}function Wa(){let[e,t]=(0,E.useState)(!1),[n,r]=(0,E.useState)(0),i=(0,E.useRef)(null),a=(0,E.useRef)(null),o=Ha.length,s=(0,E.useCallback)(()=>r(e=>(e+1)%o),[o]),c=(0,E.useCallback)(()=>r(e=>(e-1+o)%o),[o]),l=(0,E.useCallback)(()=>{a.current&&clearInterval(a.current),a.current=setInterval(s,4e3)},[s]),u=ja(()=>{s(),l()},()=>{c(),l()});return(0,E.useEffect)(()=>(a.current=setInterval(s,4e3),()=>{a.current&&clearInterval(a.current)}),[s]),(0,E.useEffect)(()=>{let e=new IntersectionObserver(([e])=>{e.isIntersecting&&t(!0)},{threshold:.1});return i.current&&e.observe(i.current),()=>e.disconnect()},[]),(0,M.jsxs)(`section`,{id:`why-us`,ref:i,className:`py-16 md:py-28 bg-[#14532D] relative overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 left-0 w-full h-px bg-gradient-to-r from-transparent via-[#22C55E]/40 to-transparent animate-pulse`}),(0,M.jsx)(`div`,{className:`absolute bottom-0 left-0 w-full h-px bg-gradient-to-r from-transparent via-[#22C55E]/40 to-transparent animate-pulse`,style:{animationDelay:`1.5s`}}),(0,M.jsx)(`div`,{className:`absolute top-0 left-0 w-px h-full bg-gradient-to-b from-transparent via-[#22C55E]/20 to-transparent`}),(0,M.jsx)(`div`,{className:`absolute top-0 right-0 w-px h-full bg-gradient-to-b from-transparent via-[#22C55E]/20 to-transparent`}),(0,M.jsx)(`div`,{className:`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[600px] h-[600px] rounded-full border border-[#22C55E]/5 animate-spin`,style:{animationDuration:`30s`}}),(0,M.jsx)(`div`,{className:`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[400px] h-[400px] rounded-full border border-[#22C55E]/8 animate-spin`,style:{animationDuration:`20s`,animationDirection:`reverse`}}),(0,M.jsx)(`div`,{className:`absolute top-0 left-0 w-72 h-72 rounded-full bg-[#22C55E] opacity-5 -translate-x-1/2 -translate-y-1/2`}),(0,M.jsx)(`div`,{className:`absolute bottom-0 right-0 w-72 h-72 rounded-full bg-[#22C55E] opacity-5 translate-x-1/2 translate-y-1/2`})]}),(0,M.jsxs)(`div`,{className:`relative z-10 max-w-7xl mx-auto px-4 md:px-6`,children:[(0,M.jsxs)(`div`,{className:`text-center mb-10 md:mb-14 transition-all duration-700 ${e?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#86EFAC] font-semibold text-sm uppercase tracking-widest mb-3`,children:`Why Intolec`}),(0,M.jsx)(`h2`,{className:`text-2xl md:text-5xl font-extrabold text-white mb-3`,children:`Why Choose Our Electricians?`}),(0,M.jsxs)(`p`,{className:`text-[#86EFAC] text-base md:text-lg max-w-2xl mx-auto`,children:[`Searching for a `,(0,M.jsx)(`strong`,{className:`text-white`,children:`reliable electrician near you in Leamington Spa`}),`? At Intolec Ltd, we combine years of hands-on experience with a genuine commitment to quality, reliability and honest advice â for every job, big or small.`]})]}),(0,M.jsxs)(`div`,{className:`md:hidden`,children:[(0,M.jsx)(`div`,{className:`overflow-hidden rounded-2xl`,...u,children:(0,M.jsx)(`div`,{className:`flex transition-transform duration-500 ease-in-out`,style:{transform:`translateX(-${n*100}
11%)`},children:Ha.map(e=>(0,M.jsx)(`div`,{className:`w-full flex-shrink-0 px-1`,children:(0,M.jsx)(Ua,{reason:e})},e.title))})}),(0,M.jsxs)(`div`,{className:`flex items-center justify-center gap-3 mt-5`,children:[(0,M.jsx)(`button`,{onClick:()=>{c(),l()},className:`w-9 h-9 flex items-center justify-center rounded-full border-2 border-[#86EFAC] text-[#86EFAC] hover:bg-[#22C55E] hover:border-[#22C55E] hover:text-white transition-all cursor-pointer`,"aria-label":`Previous`,children:(0,M.jsx)(`i`,{className:`ri-arrow-left-s-line text-lg`})}),(0,M.jsx)(`div`,{className:`flex gap-1.5`,children:Ha.map((e,t)=>(0,M.jsx)(`button`,{onClick:()=>{r(t),l()},className:`h-2 rounded-full transition-all duration-300 cursor-pointer ${t===n?`bg-[#22C55E] w-6`:`bg-white/30 w-2`}`,"aria-label":`Go to slide ${t+1}`},t))}),(0,M.jsx)(`button`,{onClick:()=>{s(),l()},className:`w-9 h-9 flex items-center justify-center rounded-full border-2 border-[#86EFAC] text-[#86EFAC] hover:bg-[#22C55E] hover:border-[#22C55E] hover:text-white transition-all cursor-pointer`,"aria-label":`Next`,children:(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-lg`})})]}),(0,M.jsxs)(`p`,{className:`text-center text-xs text-[#86EFAC]/60 mt-2`,children:[n+1,` of `,o]})]}),(0,M.jsx)(`div`,{className:`hidden md:block`,children:(0,M.jsx)(`div`,{className:`grid grid-cols-2 lg:grid-cols-3 gap-5 max-w-5xl mx-auto`,children:Ha.map((t,n)=>(0,M.jsx)(`div`,{className:`transition-all duration-500 ${e?`opacity-100 translate-y-0`:`opacity-0 translate-y-8`}`,style:{transitionDelay:`${100+n*80}ms`},children:(0,M.jsx)(Ua,{reason:t})},t.title))})}),(0,M.jsx)(`div`,{className:`mt-12 md:mt-16 grid grid-cols-2 md:grid-cols-4 gap-4 md:gap-6 transition-all duration-700 delay-500 ${e?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[{value:`500+`,label:`Projects Completed`},{value:`5â
`,label:`Google Rating`},{value:`25+`,label:`Years Experience`},{value:`100%`,label:`Satisfaction Rate`}].map((e,t)=>(0,M.jsxs)(`div`,{className:`text-center bg-white/5 rounded-xl py-4 px-2 border border-white/10`,children:[(0,M.jsx)(`div`,{className:`text-2xl md:text-4xl font-extrabold text-[#22C55E] mb-1`,children:e.value}),(0,M.jsx)(`div`,{className:`text-[#86EFAC] text-xs md:text-sm font-medium`,children:e.label})]},t))})]})]})}function Ga({className:e=``}){let[t]=ta(),[n,r]=(0,E.useState)(``),i=(0,E.useRef)(!1),{status:a,errorMsg:o,submit:s,reset:c}=va();return(0,E.useEffect)(()=>{let e=t.get(`service`);e&&_a[e]&&r(_a[e])},[t]),a===`success`?(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-[#BBF7D0] p-8 md:p-10 text-center ${e}`,children:[(0,M.jsx)(`div`,{className:`w-16 h-16 flex items-center justify-center rounded-full bg-[#F0FDF4] mx-auto mb-5`,children:(0,M.jsx)(`i`,{className:`ri-check-line text-[#16A34A] text-3xl`})}),(0,M.jsx)(`h3`,{className:`text-xl font-extrabold text-[#14532D] mb-3`,children:`Thank you â your quote request is in!`}),(0,M.jsxs)(`p`,{className:`text-[#374151] text-sm mb-6 leading-relaxed`,children:[`One of our team will be in touch shortly with your free, no-obligation quote. Need to speak to someone sooner? Call us on`,` `,(0,M.jsx)(`a`,{href:`tel:01926768080`,className:`text-[#16A34A] font-semibold hover:underline`,children:`01926 768080`}),`.`]}),(0,M.jsxs)(`button`,{type:`button`,onClick:c,className:`inline-flex items-center gap-2 px-5 py-2.5 rounded-lg border-2 border-[#14532D] text-[#14532D] font-bold text-sm hover:bg-[#14532D] hover:text-white transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-add-line`}),`Submit another request`]})]}):(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6 md:p-8 ${e}`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3 mb-6`,children:[(0,M.jsx)(`div`,{className:`w-11 h-11 flex items-center justify-center rounded-xl bg-[#14532D] flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`ri-file-list-3-line text-[#86EFAC] text-xl`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h3`,{className:`text-lg md:text-xl font-extrabold text-[#14532D] leading-tight`,children:`Request a Free Quote`}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-xs`,children:`We respond to every enquiry â usually within 2 hours.`})]})]}),(0,M.jsxs)(`form`,{id:`quote-request-form`,"data-readdy-form":`true`,onSubmit:async e=>{e.preventDefault();let t=e.currentTarget;await s({form:t,serviceType:n})&&(t.reset(),r(``))},onFocus:()=>{i.current||(i.current=!0,fa(`form_start`,{form_name:`Quote Request Form`,form_id:`quote-request-form`}))},className:`flex flex-col gap-4`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`label`,{htmlFor:`quote-name`,className:`block text-sm font-semibold text-[#111827] mb-1.5`,children:[`Full Name `,(0,M.jsx)(`span`,{className:`text-red-500`,children:`*`})]}),(0,M.jsx)(`input`,{id:`quote-name`,type:`text`,name:`name`,required:!0,placeholder:`Your full name`,className:`w-full px-4 py-3 rounded-lg border border-gray-200 text-sm focus:outline-none focus:border-[#16A34A] focus:ring-1 focus:ring-[#16A34A] transition-colors`})]}),(0,M.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`label`,{htmlFor:`quote-email`,className:`block text-sm font-semibold text-[#111827] mb-1.5`,children:[`Email `,(0,M.jsx)(`span`,{className:`text-red-500`,children:`*`})]}),(0,M.jsx)(`input`,{id:`quote-email`,type:`email`,name:`email`,required:!0,placeholder:`[email protected]`,className:`w-full px-4 py-3 rounded-lg border border-gray-200 text-sm focus:outline-none focus:border-[#16A34A] focus:ring-1 focus:ring-[#16A34A] transition-colors`})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`label`,{htmlFor:`quote-phone`,className:`block text-sm font-semibold text-[#111827] mb-1.5`,children:[`Phone `,(0,M.jsx)(`span`,{className:`text-red-500`,children:`*`})]}),(0,M.jsx)(`input`,{id:`quote-phone`,type:`tel`,name:`phone`,required:!0,placeholder:`Your phone number`,className:`w-full px-4 py-3 rounded-lg border border-gray-200 text-sm focus:outline-none focus:border-[#16A34A] focus:ring-1 focus:ring-[#16A34A] transition-colors`})]})]}),(0,M.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`label`,{htmlFor:`quote-service`,className:`block text-sm font-semibold text-[#111827] mb-1.5`,children:[`Service Type `,(0,M.jsx)(`span`,{className:`text-red-500`,children:`*`})]}),(0,M.jsxs)(`select`,{id:`quote-service`,name:`service_type`,required:!0,value:n,onChange:e=>r(e.target.value),className:`w-full px-4 py-3 rounded-lg border border-gray-200 text-sm bg-white focus:outline-none focus:border-[#16A34A] focus:ring-1 focus:ring-[#16A34A] transition-colors cursor-pointer`,children:[(0,M.jsx)(`option`,{value:``,children:`Please select...`}),ga.map(e=>(0,M.jsx)(`option`,{value:e.value,children:e.label},e.value))]})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`label`,{htmlFor:`quote-postcode`,className:`block text-sm font-semibold text-[#111827] mb-1.5`,children:`Postcode`}),(0,M.jsx)(`input`,{id:`quote-postcode`,type:`text`,name:`postcode`,placeholder:`CV31 1AA`,className:`w-full px-4 py-3 rounded-lg border border-gray-200 text-sm focus:outline-none focus:border-[#16A34A] focus:ring-1 focus:ring-[#16A34A] transition-colors`})]})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`label`,{htmlFor:`quote-description`,className:`block text-sm font-semibold text-[#111827] mb-1.5`,children:`Description`}),(0,M.jsx)(`textarea`,{id:`quote-description`,name:`description`,rows:4,maxLength:500,placeholder:`Tell us what you need and we'll prepare your free quote...`,className:`w-full px-4 py-3 rounded-lg border border-gray-200 text-sm focus:outline-none focus:border-[#16A34A] focus:ring-1 focus:ring-[#16A34A] transition-colors resize-none`})]}),(0,M.jsx)(`input`,{type:`text`,name:`website_alt`,tabIndex:-1,autoComplete:`off`,"aria-hidden":`true`,readOnly:!0,className:`quote-hp-field`}),a===`error`&&(0,M.jsxs)(`div`,{className:`flex items-start gap-2 text-sm text-red-700 bg-red-50 border border-red-200 rounded-lg px-4 py-3`,children:[(0,M.jsx)(`i`,{className:`ri-error-warning-line text-base mt-0.5 flex-shrink-0`}),(0,M.jsx)(`span`,{children:o})]}),(0,M.jsx)(`button`,{type:`submit`,disabled:a===`submitting`,className:`w-full inline-flex items-center justify-center gap-2 px-6 py-4 rounded-xl bg-[#22C55E] text-white font-extrabold text-base hover:bg-[#16A34A] transition-colors whitespace-nowrap cursor-pointer disabled:opacity-60`,children:a===`submitting`?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`i`,{className:`ri-loader-4-line animate-spin text-lg`}),`Sending...`]}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`i`,{className:`ri-send-plane-line text-lg`}),`Get My Free Quote`]})}),(0,M.jsx)(`p`,{className:`text-xs text-[#9CA3AF] text-center`,children:`Free, no-obligation quote. We never share your details.`})]})]})}function Ka(){let[e,t]=(0,E.useState)(!1),n=(0,E.useRef)(null);return(0,E.useEffect)(()=>{let e=new IntersectionObserver(([e])=>{e.isIntersecting&&t(!0)},{threshold:.1});return n.current&&e.observe(n.current),()=>e.disconnect()},[]),(0,M.jsx)(`section`,{id:`contact`,ref:n,className:`py-14 md:py-28 bg-white`,children:(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6`,children:[(0,M.jsxs)(`div`,{className:`text-center mb-14 transition-all duration-700 ${e?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#16A34A] font-semibold text-sm uppercase tracking-widest mb-3`,children:`Get In Touch`}),(0,M.jsx)(`h2`,{className:`text-2xl md:text-5xl font-extrabold text-[#14532D] mb-3`,children:`Get a Free Quote â Electrician Leamington Spa`}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-base md:text-lg max-w-2xl mx-auto`,children:`Tell us about your project and we'll get back to you with a clear, written quote â usually within 2 hours. No obligation, no pressure, no pushy sales tactics. Just honest advice from a qualified local electrician.`})]}),(0,M.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-5 ga
11p-10`,children:[(0,M.jsx)(`div`,{className:`lg:col-span-2 transition-all duration-700 delay-100 ${e?`opacity-100 translate-x-0`:`opacity-0 -translate-x-8`}`,children:(0,M.jsxs)(`div`,{className:`bg-[#14532D] rounded-2xl p-8 text-white h-full flex flex-col gap-8`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h3`,{className:`text-2xl font-bold mb-2`,children:`Contact Intolec Ltd`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-sm leading-relaxed`,children:`We're here to help with all your electrical needs across Leamington Spa, Warwick, Kenilworth and the wider Warwickshire area. Give us a call or request a free quote and we'll be in touch shortly.`})]}),(0,M.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`flex items-start gap-4 group cursor-pointer`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-lg bg-[#22C55E]/20 border border-[#22C55E]/30 flex-shrink-0 group-hover:bg-[#22C55E]/30 transition-colors`,children:(0,M.jsx)(`i`,{className:`ri-phone-fill text-[#86EFAC]`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-xs font-semibold uppercase tracking-wide mb-0.5`,children:`Phone`}),(0,M.jsx)(`p`,{className:`text-white font-bold text-lg`,children:`01926 768080`})]})]}),(0,M.jsxs)(`div`,{className:`flex items-start gap-4`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-lg bg-[#22C55E]/20 border border-[#22C55E]/30 flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`ri-map-pin-2-fill text-[#86EFAC]`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-xs font-semibold uppercase tracking-wide mb-0.5`,children:`Address`}),(0,M.jsxs)(`p`,{className:`text-white text-sm leading-relaxed`,children:[`Warwick Business Centre`,(0,M.jsx)(`br`,{}),`Hawkes Drive, Heathcote Ind Estate`,(0,M.jsx)(`br`,{}),`Warwick, CV34 6LX`]})]})]}),(0,M.jsxs)(`div`,{className:`flex items-start gap-4`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-lg bg-[#22C55E]/20 border border-[#22C55E]/30 flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`ri-time-fill text-[#86EFAC]`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-xs font-semibold uppercase tracking-wide mb-0.5`,children:`Hours`}),(0,M.jsx)(`p`,{className:`text-white text-sm`,children:`MonâFri: 8am â 5pm`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-xs mt-1`,children:`24/7 emergency call-outs available`})]})]})]}),(0,M.jsxs)(`div`,{className:`mt-auto pt-6 border-t border-white/20`,children:[(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-xs mb-3`,children:`Read our Google Reviews`}),(0,M.jsxs)(`a`,{href:`https://share.google/2Yng4OLhAoqcj1SZ5`,target:`_blank`,rel:`nofollow noopener noreferrer`,className:`inline-flex items-center gap-2 px-4 py-2 rounded-lg bg-white/10 border border-white/20 text-white text-sm font-semibold hover:bg-white/20 transition-colors`,children:[(0,M.jsx)(`i`,{className:`ri-google-line`}),`View Google Reviews`,(0,M.jsx)(`div`,{className:`flex gap-0.5 ml-1`,children:[...[,,,,,]].map((e,t)=>(0,M.jsx)(`i`,{className:`ri-star-fill text-[#FACC15] text-xs`},t))})]})]})]})}),(0,M.jsx)(`div`,{className:`lg:col-span-3 transition-all duration-700 delay-200 ${e?`opacity-100 translate-x-0`:`opacity-0 translate-x-8`}`,children:(0,M.jsx)(Ga,{})})]})]})})}var qa=[{label:`Electrical Installations`,slug:`electrical-installations-electrician-leamington-spa`},{label:`Consumer Unit Upgrades`,slug:`consumer-unit-upgrades-electrician-leamington-spa`},{label:`EV Charger Installation`,slug:`ev-charger-installer-electrician-leamington-spa`},{label:`Solar Panels`,slug:`solar-and-battery-storage-system-electrician-leamington-spa`},{label:`Battery Storage`,slug:`battery-storage-systems-electrician-leamington-spa`},{label:`EICRs`,slug:`eicrs-electrician-leamington-spa`},{label:`Landlord Certificates`,slug:`landlord-certificates-electrician-leamington-spa`},{label:`Heating Controls`,slug:`heating-controls-electrician-leamington-spa`},{label:`Emergency Call-Outs`,slug:`emergency-call-outs-electrician-leamington-spa`}],Ja=[{label:`Home`,href:`/`},{label:`All Services`,href:`/services`},{label:`Areas We Cover`,href:`/areas`},{label:`FAQs`,href:`/frequently-asked-questions`},{label:`Blog`,href:`/blog`},{label:`Testimonials`,href:`/testimonials`},{label:`Contact Us`,href:`/contact`},{label:`Complaints Policy`,href:`/complaints-policy`}];function Ya({onQuote:e}){return(0,M.jsxs)(`footer`,{className:`bg-black text-white`,children:[(0,M.jsx)(`div`,{className:`bg-[#16A34A] py-14 px-4 md:px-6`,children:(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto text-center`,children:[(0,M.jsx)(`h2`,{className:`text-2xl md:text-4xl font-extrabold text-white mb-3`,children:`Need a Reliable Electrician in Leamington Spa?`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-lg mb-8`,children:`Call us today for a free, no-obligation quote. We'll respond promptly.`}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`flex items-center gap-3 px-8 py-4 rounded-lg bg-white text-[#14532D] font-extrabold text-xl hover:bg-[#F3F4F6] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-[#22C55E]`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:e,className:`flex items-center gap-2 px-8 py-4 rounded-lg border-2 border-white text-white font-bold text-base hover:bg-white/10 transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Request a Quote`]})]})]})}),(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6 py-14 border-t-4 border-[#22C55E]`,children:[(0,M.jsx)(`div`,{className:`bg-[#14532D]/40 rounded-2xl p-6 md:p-8 mb-10 border border-[#22C55E]/20`,children:(0,M.jsxs)(`div`,{className:`flex flex-col md:flex-row items-start md:items-center justify-between gap-5`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h4`,{className:`text-white font-bold text-lg mb-1`,children:`Ready for Your Free Quote?`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC]/70 text-sm`,children:`Tell us about your project and we'll get back to you with a clear, written quote â usually within 2 hours.`})]}),(0,M.jsxs)(j,{to:`/contact`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})}),(0,M.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-10`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`div`,{className:`text-white font-extrabold text-2xl tracking-tight mb-4`,children:`INTOLEC`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC]/70 text-sm leading-relaxed mb-5`,children:`Electricians & Renewable Energy Specialists serving Leamington Spa and Warwickshire. NAPIT registered, fully insured.`}),(0,M.jsx)(`div`,{className:`mb-5`,children:(0,M.jsx)(`img`,{src:`https://static.readdy.ai/image/4a891bf01ca77aa59d4e684a3f5f885b/20f2981acc918e5d33f3665b2433e795.png`,alt:`HIES Accredited Member & tsi Approved Code`,className:`h-20 w-auto object-contain bg-white rounded-lg p-1`,loading:`lazy`})}),(0,M.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`flex items-center gap-2 text-[#86EFAC] font-semibold hover:text-[#22C55E] transition-colors text-sm`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`01926 768080`]}),(0,M.jsxs)(`div`,{className:`flex items-start gap-2 text-[#86EFAC]/70 text-sm`,children:[(0,M.jsx)(`i`,{className:`ri-map-pin-2-fill text-[#86EFAC] mt-0.5 flex-shrink-0`}),(0,M.jsx)(`span`,{children:`Warwick Business Centre, Hawkes Drive, Heathcote Ind Estate, Warwick, CV34 6LX`})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-3 mt-1`,children:[(0,M.jsx)(`a`,{href:`https://www.instagram.com/intolec_1td/`,target:`_blank`,rel:`nofollow noopener noreferrer`,className:`w-9 h-9 flex items-center justify-center rounded-full bg-[#14532D]/50 border border-[#22C55E]/30 text-[#86EFAC] hover:bg-[#22C55E] hover:text-white transition-colors cursor-pointer`,"aria-label":`Instagram`,children:(0,M.jsx)(`i`,{className:`ri-instagram-line text-base`})}),(0,M.jsx)(`a`,{href:`https://www.facebook.com/electricianinleamington`,target:`_blank`,rel:`nofollow noopener noreferrer`,className:`w-9 h-9 flex items-center justify-center rounded-full bg-[#14532D]/50 border border-[#22C55E]/30 text-[#86EFAC] hover:bg-[#22C55E] hover:text-white transition-colors cursor-pointer`,"aria-label":`Facebook`,children:(0,M.jsx)(`i`,{className:`ri-facebook-fill text-base`})})]})]})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h4`,{className:`text-white font-bold text-base mb-5`,children:(0,M.jsx)(`a`,{href:`/services`,className:`hover:text-[#86EFAC] transition-colors`,children:`Our Services`})}),(0,M.jsx)(`ul`,{className:`flex flex-col gap-2`,children:qa.map(e=>(0,M.jsx)(`li`,{children:(0,M.jsxs)(`a`,{href:`/service/${e.slug}`,className:`text-[#86EFAC]/70 text-sm hover:text-[#22C55E] transition-colors flex items-center gap-2`,children:[(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-[#22C55E]`}),e.label]})},e.slug))})]}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h4`,{className:`text-white font-bold text-base mb-5`,children:`Quick Links`}),(0,M.jsx)(`ul`,{className:`flex flex-col gap-2 mb-8`,children:Ja.map(e=>(0,M.jsx)(`li`,{children:(0,M.jsxs)(`a`,{href:e.href,className:`text-[#86EFAC]/70 text-sm hover:text-[#22C55E] transition-colors flex items-center gap-2`,children:[(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-[#22C55E]`}),e.label]})},e.href))}),(0,M.jsxs)(`div`,{className:`bg-[#14532D]/30 rounded-xl p-4 border border-[#22C55E]/20`,children:[(0,M.jsx)(`div`,{className:`flex gap-1 mb-2`,children:[...[,,,,,]].map((e,t)=>(0,M.jsx)(`i`,{className:`ri-star-fill text-[#FACC15] text-sm`},t))}),(0,M.jsx)(`p`,{className:`text-[#86EFAC]/80 text-xs mb-3`,children:`5-star rated on Google. Read what our customers say.`}),(0,M.jsxs)(`a`,{href:`https://share.google/2Yng4OLhAoqcj1SZ5`,target:`_blank`,rel:`nofollow noopener noreferrer`,className:`inline-flex items-center gap-2 text-[#86EFAC] text-xs font-semibold hover:text-[#22C55E] transition-colors`,children:[(0,M.jsx)(`i`,{className:`ri-google-line`}),`Read Google Reviews`,(0,M.jsx)(`i`,{className:`ri-external-link-line`})]})]})]})]})]}),(0,M.jsx)(`div`,{className:`border-t border-[#22C55E]/30 bg-[#14532D]/20 py-5 px-4 md:px-6`,children:(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto flex flex-col sm:flex-row items-center justify-between gap-3 text-xs text-[#86EFAC]/60`,children:[(0,M.jsxs)(`p`,{children:[`© `,new Date().getFullYear(),` Intolec Ltd. All rights reserved. Company No. 13660690. Registered in England & Wales.`]}),(0,M.jsx)(`p`,{children:`Electricians in Leamington Spa & Warwickshire`})]})})]})}function Xa({onQuote:e}){let[t,n]=(0,E.useState)(!1);return(0,E.useEffect)(()=>{let e=()=>n(window.scrollY>300);return window.addEventListener(`scroll`,e),()=>window.removeEventListener(`scroll`,e)},[]),(0,M.jsxs)(`div`,{className:`hidden md:flex fixed bottom-8 right-6 z-50 flex-col gap-2 transition-all duration-300 ${t?`opacity-100 translate-y-0`:`opacity-0 translate-y-4 pointer-events-none`}`,children:[(0,M.jsxs)(`button`,{onClick:e,className:`hidden md:flex items-center gap-2 px-4 py-2.5 rounded-full bg-[#14532D] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap cursor-pointer`,"aria-label":`Get a free quote`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line text-base`}),`Free Quote`]}),(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`hidden md:flex items-center gap-2 px-4 py-2.5 rounded-full bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap`,"aria-label":`Call Intolec Ltd`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-base animate-pulse`}),`01926 768080`]})]})}function Za({onQuote:e}){return(0,M.jsx)(`section`,{className:`w-full bg-black py-10 md:py-16`,children:(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center`,children:[(0,M.jsxs)(`p`,{className:`text-white text-base md:text-2xl font-extrabold uppercase tracking-wide leading-snug mb-6 md:mb-8`,children:[`CALL US TODAY ON`,` `,(0,M.jsx)(`a`,{href:`tel:01926768080`,className:`text-[#22C55E] hover:text-[#86EFAC] transition-colors underline underline-offset-4`,children:`01926 768080`}),` `,`FOR A FREE, NO OBLIGATION, QUOTATION FOR YOUR PROJECT.`,` `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`YOUR CALL MATTERS TO US, AND WE WILL RESPOND.`})]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md bg-[#22C55E] text-white font-bold text-base hover:bg-[#16A34A] transition-colors whitespace-nowrap w-full sm:w-auto`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-lg`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:e,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md border-2 border-white text-white font-bold text-base hover:bg-white hover:text-black transition-colors whitespace-nowrap cursor-pointer w-full sm:w-auto`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line text-lg`}),`GET A FREE QUOTE`]})]})]})})}var Qa=s(((e,t)=>{var n=`Expected a function`,r=NaN,i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,s=/^0o[0-7]+$/i,c=parseInt,l=typeof global==`object`&&global&&global.Object===Object&&global,u=typeof self==`object`&&self&&self.Object===Object&&self,d=l||u||Function(`return this`)(),f=Object.prototype.toString,p=Math.max,m=Math.min,h=function(){return d.Date.now()};function g(e,t,r){var i,a,o,s,c,l,u=0,d=!1,f=!1,g=!0;if(typeof e!=`function`)throw TypeError(n);t=x(t)||0,v(r)&&(d=!!r.leading,f=`maxWait`in r,o=f?p(x(r.maxWait)||0,t):o,g=`trailing`in r?!!r.trailing:g);function _(t){var n=i,r=a;return i=a=void 0,u=t,s=e.apply(r,n),s}function y(e){return u=e,c=setTimeout(te,t),d?_(e):s}function b(e){var n=e-l,r=e-u,i=t-n;return f?m(i,o-r):i}function ee(e){var n=e-l,r=e-u;return l===void 0||n>=t||n<0||f&&r>=o}function te(){var e=h();if(ee(e))return S(e);c=setTimeout(te,b(e))}function S(e){return c=void 0,g&&i?_(e):(i=a=void 0,s)}function C(){c!==void 0&&clearTimeout(c),u=0,i=l=a=c=void 0}function ne(){return c===void 0?s:S(h())}function re(){var e=h(),n=ee(e);
11if(i=arguments,a=this,l=e,n){if(c===void 0)return y(l);if(f)return c=setTimeout(te,t),_(l)}return c===void 0&&(c=setTimeout(te,t)),s}return re.cancel=C,re.flush=ne,re}function _(e,t,r){var i=!0,a=!0;if(typeof e!=`function`)throw TypeError(n);return v(r)&&(i=`leading`in r?!!r.leading:i,a=`trailing`in r?!!r.trailing:a),g(e,t,{leading:i,maxWait:t,trailing:a})}function v(e){var t=typeof e;return!!e&&(t==`object`||t==`function`)}function y(e){return!!e&&typeof e==`object`}function b(e){return typeof e==`symbol`||y(e)&&f.call(e)==`[object Symbol]`}function x(e){if(typeof e==`number`)return e;if(b(e))return r;if(v(e)){var t=typeof e.valueOf==`function`?e.valueOf():e;e=v(t)?t+``:t}if(typeof e!=`string`)return e===0?e:+e;e=e.replace(i,``);var n=o.test(e);return n||s.test(e)?c(e.slice(2),n?2:8):a.test(e)?r:+e}t.exports=_})),$a=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.addPassiveEventListener=function(e,n,r){var i=r.name;i||(i=n,console.warn(`Listener must be a named function.`)),t.has(n)||t.set(n,new Set);var a=t.get(n);if(!a.has(i)){var o=function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener(`test`,null,t)}catch{}return e}();e.addEventListener(n,r,o?{passive:!0}:!1),a.add(i)}},e.removePassiveEventListener=function(e,n,r){e.removeEventListener(n,r),t.get(n).delete(r.name||n)};var t=new Map})),eo=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=r(Qa()),n=$a();function r(e){return e&&e.__esModule?e:{default:e}}var i=function(e){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:66;return(0,t.default)(e,n)},a={spyCallbacks:[],spySetState:[],scrollSpyContainers:[],mount:function(e,t){if(e){var r=i(function(t){a.scrollHandler(e)},t);return a.scrollSpyContainers.push(e),(0,n.addPassiveEventListener)(e,`scroll`,r),function(){(0,n.removePassiveEventListener)(e,`scroll`,r),a.scrollSpyContainers.splice(a.scrollSpyContainers.indexOf(e),1)}}return function(){}},isMounted:function(e){return a.scrollSpyContainers.indexOf(e)!==-1},currentPositionX:function(e){if(e===document){var t=window.scrollY!==void 0,n=(document.compatMode||``)===`CSS1Compat`;return t?window.scrollX:n?document.documentElement.scrollLeft:document.body.scrollLeft}return e.scrollLeft},currentPositionY:function(e){if(e===document){var t=window.scrollX!==void 0,n=(document.compatMode||``)===`CSS1Compat`;return t?window.scrollY:n?document.documentElement.scrollTop:document.body.scrollTop}return e.scrollTop},scrollHandler:function(e){(a.scrollSpyContainers[a.scrollSpyContainers.indexOf(e)].spyCallbacks||[]).forEach(function(t){return t(a.currentPositionX(e),a.currentPositionY(e))})},addStateHandler:function(e){a.spySetState.push(e)},addSpyHandler:function(e,t){var n=a.scrollSpyContainers[a.scrollSpyContainers.indexOf(t)];n.spyCallbacks||=[],n.spyCallbacks.push(e)},updateStates:function(){a.spySetState.forEach(function(e){return e()})},unmount:function(e,t){a.scrollSpyContainers.forEach(function(e){return e.spyCallbacks&&e.spyCallbacks.length&&e.spyCallbacks.indexOf(t)>-1&&e.spyCallbacks.splice(e.spyCallbacks.indexOf(t),1)}),a.spySetState&&a.spySetState.length&&a.spySetState.indexOf(e)>-1&&a.spySetState.splice(a.spySetState.indexOf(e),1),document.removeEventListener(`scroll`,a.scrollHandler)},update:function(){return a.scrollSpyContainers.forEach(function(e){return a.scrollHandler(e)})}};e.default=a})),to=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});
11var t=function(e,t){var n=e.indexOf(`#`)===0?e.substring(1):e,r=n?`#`+n:``,i=window&&window.location,a=r?i.pathname+i.search+r:i.pathname+i.search;t?history.pushState(history.state,``,a):history.replaceState(history.state,``,a)},n=function(){return window.location.hash.replace(/^#/,``)},r=function(e){return function(t){return e.contains?e!=t&&e.contains(t):!!(e.compareDocumentPosition(t)&16)}},i=function(e){return getComputedStyle(e).position!==`static`},a=function(e,t){for(var n=e.offsetTop,r=e.offsetParent;r&&!t(r);)n+=r.offsetTop,r=r.offsetParent;return{offsetTop:n,offsetParent:r}};e.default={updateHash:t,getHash:n,filterElementInContainer:r,scrollOffset:function(e,t,n){if(n)return e===document?t.getBoundingClientRect().left+(window.scrollX||window.pageXOffset):getComputedStyle(e).position===`static`?t.offsetLeft-e.offsetLeft:t.offsetLeft;if(e===document)return t.getBoundingClientRect().top+(window.scrollY||window.pageYOffset);if(i(e)){if(t.offsetParent!==e){var r=a(t,function(t){return t===e||t===document}),o=r.offsetTop;if(r.offsetParent!==e)throw Error(`Seems containerElement is not an ancestor of the Element`);return o}return t.offsetTop}if(t.offsetParent===e.offsetParent)return t.offsetTop-e.offsetTop;var s=function(e){return e===document};return a(t,s).offsetTop-a(e,s).offsetTop}}})),no=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default={defaultEasing:function(e){return e<.5?(e*2)**2/2:1-((1-e)*2)**2/2},linear:function(e){return e},easeInQuad:function(e){return e*e},easeOutQuad:function(e){return e*(2-e)},easeInOutQuad:function(e){return e<.5?2*e*e:-1+(4-2*e)*e},easeInCubic:function(e){return e*e*e},easeOutCubic:function(e){return--e*e*e+1},easeInOutCubic:function(e){return e<.5?4*e*e*e:(e-1)*(2*e-2)*(2*e-2)+1},easeInQuart:function(e){return e*e*e*e},easeOutQuart:function(e){return 1- --e*e*e*e},easeInOutQuart:function(e){return e<.5?8*e*e*e*e:1-8*--e*e*e*e},easeInQuint:function(e){return e*e*e*e*e},easeOutQuint:function(e){return 1+--e*e*e*e*e},easeInOutQuint:function(e){return e<.5?16*e*e*e*e*e:1+16*--e*e*e*e*e}}})),ro=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=$a(),n=[`mousedown`,`wheel`,`touchmove`,`keydown`];e.default={subscribe:function(e){return typeof document<`u`&&n.forEach(function(n){return(0,t.addPassiveEventListener)(document,n,e)})}}})),io=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t={registered:{},scrollEvent:{register:function(e,n){t.registered[e]=n},remove:function(e){t.registered[e]=null}}};e.default=t})),ao=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};a(to());var n=a(no()),r=a(ro()),i=a(io());function a(e){return e&&e.__esModule?e:{default:e}}var o=function(e){return n.default[e.smooth]||n.default.defaultEasing},s=function(e){return typeof e==`function`?e:function(){return e}},c=function(){if(typeof window<`u`)return window.requestAnimationFrame||window.webkitRequestAnimationFrame},l=function(){return c()||function(e,t,n){window.setTimeout(e,n||1e3/60,new Date().getTime())}}(),u=function(){return{currentPosition:0,startPosition:0,targetPosition:0,progress:0,duration:0,cancel:!1,target:null,containerElement:null,to:null,start:null,delta:null,percent:null,delayTimeout:null}},d=function(e){var t=e.data.containerElement;if(t&&t!==document&&t!==document.body)return t.scrollLeft;var n=window.pageXOffset!==void 0,r=(document.compatMode||``)===`CSS1Compat`;return n?window.pageXOffset:r?document.documentElement.scrollLeft:document.body.scrollLeft},f=function(e){var t=e.data.containerElement;if(t&&t!==document&&t!==document.body)return t.scrollTop;var n=window.pageXOffset!==void 0,r=(document.compatMode||``)===`CSS1Compat`;return n?window.pageYOffset:r?document.documentElement.scrollTop:document.body.scrollTop},p=function(e){var t=e.data.containerElement;if(t&&t!==document&&t!==document.body)return t.scrollWidth-t.offsetWidth;var n=document.body,r=document.documentElement;return Math.max(n.scrollWidth,n.offsetWidth,r.clientWidth,r.scrollWidth,r.offsetWidth)},m=function(e){var t=e.data.containerElement;if(t&&t!==document&&t!==document.body)return t.scrollHeight-t.offsetHeight;var n=document.body,r=document.documentElement;return Math.max(n.scrollHeight,n.offsetHeight,r.clientHeight,r.scrollHeight,r.offsetHeight)},h=function e(t,n,r){var a=n.data;if(!n.ignoreCancelEvents&&a.cancel){i.default.registered.end&&i.default.registered.end(a.to,a.target,a.
11currentPositionY);return}if(a.delta=Math.round(a.targetPosition-a.startPosition),a.start===null&&(a.start=r),a.progress=r-a.start,a.percent=a.progress>=a.duration?1:t(a.progress/a.duration),a.currentPosition=a.startPosition+Math.ceil(a.delta*a.percent),a.containerElement&&a.containerElement!==document&&a.containerElement!==document.body?n.horizontal?a.containerElement.scrollLeft=a.currentPosition:a.containerElement.scrollTop=a.currentPosition:n.horizontal?window.scrollTo(a.currentPosition,0):window.scrollTo(0,a.currentPosition),a.percent<1){var o=e.bind(null,t,n);l.call(window,o);return}i.default.registered.end&&i.default.registered.end(a.to,a.target,a.currentPosition)},g=function(e){e.data.containerElement=e?e.containerId?document.getElementById(e.containerId):e.container&&e.container.nodeType?e.container:document:null},_=function(e,t,n,a){if(t.data=t.data||u(),window.clearTimeout(t.data.delayTimeout),r.default.subscribe(function(){t.data.cancel=!0}),g(t),t.data.start=null,t.data.cancel=!1,t.data.startPosition=t.horizontal?d(t):f(t),t.data.targetPosition=t.absolute?e:e+t.data.startPosition,t.data.startPosition===t.data.targetPosition){i.default.registered.end&&i.default.registered.end(t.data.to,t.data.target,t.data.currentPosition);return}t.data.delta=Math.round(t.data.targetPosition-t.data.startPosition),t.data.duration=s(t.duration)(t.data.delta),t.data.duration=isNaN(parseFloat(t.data.duration))?1e3:parseFloat(t.data.duration),t.data.to=n,t.data.target=a;var c=o(t),p=h.bind(null,c,t);if(t&&t.delay>0){t.data.delayTimeout=window.setTimeout(function(){i.default.registered.begin&&i.default.registered.begin(t.data.to,t.data.target),l.call(window,p)},t.delay);return}i.default.registered.begin&&i.default.registered.begin(t.data.to,t.data.target),l.call(window,p)},v=function(e){return e=t({},e),e.data=e.data||u(),e.absolute=!0,e};e.default={animateTopScroll:_,getAnimationType:o,scrollToTop:function(e){_(0,v(e))},scrollToBottom:function(e){e=v(e),g(e),_(e.horizontal?p(e):m(e),e)},scrollTo:function(e,t){_(e,v(t))},scrollMore:function(e,t){t=v(t),g(t),_(e+(t.horizontal?d(t):f(t)),t)}}})),oo=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n=a(to()),r=a(ao()),i=a(io());function a(e){return e&&e.__esModule?e:{default:e}}var o={},s=void 0;e.default={unmount:function(){o={}},register:function(e,t){o[e]=t},unregister:function(e){delete o[e]},get:function(e){return o[e]||document.getElementById(e)||document.getElementsByName(e)[0]||document.getElementsByClassName(e)[0]},setActiveLink:function(e){return s=e},getActiveLink:function(){return s},scrollTo:function(e,a){var o=this.get(e);if(!o){console.warn(`target Element not found`);return}a=t({},a,{absolute:!1});var s=a.containerId,c=a.container,l=void 0;l=s?document.getElementById(s):c&&c.nodeType?c:document,a.absolute=!0;var u=a.horizontal,d=n.default.scrollOffset(l,o,u)+(a.offset||0);if(!a.smooth){i.default.registered.begin&&i.default.registered.begin(e,o),l===document?a.horizontal?window.scrollTo(d,0):window.scrollTo(0,d):l.scrollTop=d,i.default.registered.end&&i.default.registered.end(e,o);return}r.default.animateTopScroll(d,a,e,o)}}})),so=s(((e,t)=>{t.exports=`SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED`})),co=s(((e,t)=>{var n=so();function r(){}function i(){}i.resetWarningCache=r,t.exports=function(){function e(e,t,r,i,a,o){if(o!==n){var s=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name=`Invariant Violation`,s}}e.isRequired=e;function t(){return e}var a={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return a.PropTypes=a,a}})),lo=s(((e,t)=>{t.exports=co()()})),uo=s((e=>
11{Object.defineProperty(e,"__esModule",{value:!0}),$a();var t=n(to());function n(e){return e&&e.__esModule?e:{default:e}}e.default={mountFlag:!1,initialized:!1,scroller:null,containers:{},mount:function(e){this.scroller=e,this.handleHashChange=this.handleHashChange.bind(this),window.addEventListener(`hashchange`,this.handleHashChange),this.initStateFromHash(),this.mountFlag=!0},mapContainer:function(e,t){this.containers[e]=t},isMounted:function(){return this.mountFlag},isInitialized:function(){return this.initialized},initStateFromHash:function(){var e=this,t=this.getHash();t?window.setTimeout(function(){e.scrollTo(t,!0),e.initialized=!0},10):this.initialized=!0},scrollTo:function(e,t){var n=this.scroller;if(n.get(e)&&(t||e!==n.getActiveLink())){var r=this.containers[e]||document;n.scrollTo(e,{container:r})}},getHash:function(){return t.default.getHash()},changeHash:function(e,n){this.isInitialized()&&t.default.getHash()!==e&&t.default.updateHash(e,n)},handleHashChange:function(){this.scrollTo(this.getHash())},unmount:function(){this.scroller=null,this.containers=null,window.removeEventListener(`hashchange`,this.handleHashChange)}}})),fo=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),r=c(we()),i=c(eo()),a=c(oo()),o=c(lo()),s=c(uo());function c(e){return e&&e.__esModule?e:{default:e}}function l(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function u(e,t){if(!e)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return t&&(typeof t==`object`||typeof t==`function`)?t:e}function d(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function, not `+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var f={to:o.default.string.isRequired,containerId:o.default.string,container:o.default.object,activeClass:o.default.string,activeStyle:o.default.object,spy:o.default.bool,horizontal:o.default.bool,smooth:o.default.oneOfType([o.default.bool,o.default.string]),offset:o.default.number,delay:o.default.number,isDynamic:o.default.bool,onClick:o.default.func,duration:o.default.oneOfType([o.default.number,o.default.func]),absolute:o.default.bool,onSetActive:o.default.func,onSetInactive:o.default.func,ignoreCancelEvents:o.default.bool,hashSpy:o.default.bool,saveHashHistory:o.default.bool,spyThrottle:o.default.number};e.default=function(e,o){var c=o||a.default,p=function(a){d(o,a);function o(e){l(this,o);var t=u(this,(o.__proto__||Object.getPrototypeOf(o)).call(this,e));return m.call(t),t.state={active:!1},t.beforeUnmountCallbacks=[],t}return n(o,[{key:`getScrollSpyContainer`,value:function(){var e=this.props.containerId,t=this.props.container;return e&&!t?document.getElementById(e):t&&t.nodeType?t:document}},{key:`componentDidMount`,value:function(){if(this.props.spy||this.props.hashSpy){var e=this.getScrollSpyContainer();if(!i.default.isMounted(e)){var t=i.default.mount(e,this.props.spyThrottle);this.beforeUnmountCallbacks.push(t)}this.props.hashSpy&&(s.default.isMounted()||s.default.mount(c),s.default.mapContainer(this.props.to,e)),i.default.addSpyHandler(this.spyHandler,e),this.setState({container:e})}}},{key:`componentWillUnmount`,value:function(){i.default.unmount(this.stateHandler,this.spyHandler),this.beforeUnmountCallbacks.forEach(function(e){return e()})}},{key:`render`,value:function(){var n=``;n=this.state&&this.state.active?((this.props.className||``)+` `+(this.props.activeClass||`active`)).trim():this.props.className;var i={};i=this.state&&this.state.active?t({},this.props.style,this.props.activeStyle):t({},this.props.style);var a=t({},this.props);for(var o in f)a.hasOwnProperty(o)&&delete a[o];return a.className=n,a.style=i,a.onClick=this.handleClick,r.default.createElement(e,a)}}]),o}(r.default.PureComponent),m=function(){var e=this;this.scrollTo=function(n,r){c.scrollTo(n,t({},e.state,r))},this.handleClick=function(t){e.props.onClick&&e.props.onClick(t),t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),e.scrollTo(e.props.to,e.props)},this.spyHandler=function(t,n){var r=e.getScrollSpyContainer();if(!s.default.isMounted()||s.default.isInitialized()){var i=e.props.horizontal,a=e.props.to,o=null,l=void 0,u=void 0;if(i){var d=0,f=0,p=0;if(r.getBoundingClientRect&&(p=r.getBoundingClientRect().left),!o||e.props.isDynamic){if(o=c.get(a),!o)return;var m=o.getBoundingClientRect();d=m.left-p+t,f=d+m.width}var h=t-e.props.offset;l=h>=Math.floor(d)&&h<Math.floor(f),u=h<Math.floor(d)||h>=Math.floor(f)}else{var g=0,_=0,v=0;if(r.getBoundingClientRect&&(v=r.getBoundingClientRect().top),!o||e.props.isDynamic){if(o=c.get(a),!o)return;var y=o.getBoundingClientRect();g=y.top-v+n,_=g+y.height}var b=n-e.props.offset;l=b>=Math.floor(g)&&b<Math.floor(_),u=b<Math.floor(g)||b>=Math.floor(_)}var x=c.getActiveLink();
11if(u){if(a===x&&c.setActiveLink(void 0),e.props.hashSpy&&s.default.getHash()===a){var ee=e.props.saveHashHistory,te=ee!==void 0&ⅇs.default.changeHash(``,te)}e.props.spy&&e.state.active&&(e.setState({active:!1}),e.props.onSetInactive&&e.props.onSetInactive(a,o))}if(l&&(x!==a||e.state.active===!1)){c.setActiveLink(a);var S=e.props.saveHashHistory,C=S!==void 0&&S;e.props.hashSpy&&s.default.changeHash(a,C),e.props.spy&&(e.setState({active:!0}),e.props.onSetActive&&e.props.onSetActive(a,o))}}}};return p.propTypes=f,p.defaultProps={offset:0},p}})),po=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=r(we()),n=r(fo());function r(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function a(e,t){if(!e)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return t&&(typeof t==`object`||typeof t==`function`)?t:e}function o(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function, not `+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(e){o(n,e);function n(){var e,r,o,s;i(this,n);var c=[...arguments];return s=(r=(o=a(this,(e=n.__proto__||Object.getPrototypeOf(n)).call.apply(e,[this].concat(c))),o),o.render=function(){return t.default.createElement(`a`,o.props,o.props.children)},r),a(o,s)}return n}(t.default.Component);e.default=(0,n.default)(s)})),mo=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),n=i(we()),r=i(fo());function i(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function o(e,t){if(!e)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return t&&(typeof t==`object`||typeof t==`function`)?t:e}function s(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function, not `+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var c=function(e){s(r,e);function r(){return a(this,r),o(this,(r.__proto__||Object.getPrototypeOf(r)).apply(this,arguments))}return t(r,[{key:`render`,value:function(){return n.default.createElement(`button`,this.props,this.props.children)}}]),r}(n.default.Component);e.default=(0,r.default)(c)})),ho=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),r=o(we());o(an());var i=o(oo()),a=o(lo());function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function c(e,t){if(!e)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return t&&(typeof t==`object`||typeof t==`function`)?t:e}function l(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function, not `+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}e.default=function(e){var o=function(a){l(o,a);function o(e){s(this,o);var t=c(this,(o.__proto__||Object.getPrototypeOf(o)).call(this,e));return t.childBindings={domNode:null},t}return n(o,[{key:`componentDidMount`,value:function(){if(typeof window>`u`)return!1;this.registerElems(this.props.name)}},{key:`componentDidUpdate`,value:function(e){this.props.name!==e.name&&this.registerElems(this.props.name)}},{key:`componentWillUnmount`,value:function(){if(typeof window>`u`)return!1;i.default.unregister(this.props.name)}},{key:`registerElems`,value:function(e){i.default.register(e,this.childBindings.domNo
11de)}},{key:`render`,value:function(){return r.default.createElement(e,t({},this.props,{parentBindings:this.childBindings}))}}]),o}(r.default.Component);return o.propTypes={name:a.default.string,id:a.default.string},o}})),go=s((e=>{Object.defineProperty(e,"__esModule",{value:!0});var t=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},n=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),r=o(we()),i=o(ho()),a=o(lo());function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function c(e,t){if(!e)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return t&&(typeof t==`object`||typeof t==`function`)?t:e}function l(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function, not `+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(e){l(i,e);function i(){return s(this,i),c(this,(i.__proto__||Object.getPrototypeOf(i)).apply(this,arguments))}return n(i,[{key:`render`,value:function(){var e=this,n=t({},this.props);return delete n.name,n.parentBindings&&delete n.parentBindings,r.default.createElement(`div`,t({},n,{ref:function(t){e.props.parentBindings.domNode=t}}),this.props.children)}}]),i}(r.default.Component);u.propTypes={name:a.default.string,id:a.default.string},e.default=(0,i.default)(u)})),_o=s(((e,t)=>{var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();function i(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function a(e,t){if(!e)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return t&&(typeof t==`object`||typeof t==`function`)?t:e}function o(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function, not `+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=we();an(),to();var c=eo(),l=oo(),u=lo(),d=uo(),f={to:u.string.isRequired,containerId:u.string,container:u.object,activeClass:u.string,spy:u.bool,smooth:u.oneOfType([u.bool,u.string]),offset:u.number,delay:u.number,isDynamic:u.bool,onClick:u.func,duration:u.oneOfType([u.number,u.func]),absolute:u.bool,onSetActive:u.func,onSetInactive:u.func,ignoreCancelEvents:u.bool,hashSpy:u.bool,spyThrottle:u.number};t.exports={Scroll:function(e,t){console.warn(`Helpers.Scroll is deprecated since v1.7.0`);var u=t||l,p=function(t){o(l,t);function l(e){i(this,l);var t=a(this,(l.__proto__||Object.getPrototypeOf(l)).call(this,e));return m.call(t),t.state={active:!1},t}return r(l,[{key:`getScrollSpyContainer`,value:function(){var e=this.props.containerId,t=this.props.container;return e?document.getElementById(e):t&&t.nodeType?t:document}},{key:`componentDidMount`,value:function(){if(this.props.spy||this.props.hashSpy){var e=this.getScrollSpyContainer();c.isMounted(e)||c.mount(e,this.props.spyThrottle),this.props.hashSpy&&(d.isMounted()||d.mount(u),d.mapContainer(this.props.to,e)),this.props.spy&&c.addStateHandler(this.stateHandler),c.addSpyHandler(this.spyHandler,e),this.setState({container:e})}}},{key:`componentWillUnmount`,value:function(){c.unmount(this.stateHandler,this.spyHandler)}},{key:`render`,value:function(){var t=``;t=this.state&&this.state.active?((this.props.className||``)+` `+(this.props.activeClass||`active`)).trim():this.props.className;var r=n({},this.props);for(var i in f)r.hasOwnProperty(i)&&delete r[i];return r.className=t,r.onClick=this.handleClick,s.createElement(e,r)}}]),l}(s.Component),m=function(){var e=this;this.scrollTo=function(t,r){u.scrollTo(t,n({},e.state,r))},this.handleClick=function(t){e.props.onClick&&e.props.onClick(t),t.stopPropagation&&t.stopPropagation(),t.preventDefault&&t.preventDefault(),e.scrollTo(e.props.to,e.props)},this.stateHandler=function(){u.getActiveLink()!==e.props.to&&(e.state!==null&&e.state.active&&e.props.onSetInactive&&e.props.onSetInactive(),e.setState({active:!1}))},this.spyHandler=function(t){var n=e.getScrollSpyContainer();if(!d.isMounted()||d.isInitialized()){var r=e.props.to,i=null,a=0,o=0,s=0;if(n.getBoundingClientRect&&(s=n.getBoundingClientRect().top),!i||e.props.isDynamic){if(i=u.get(r),!i)return;var l=i.getBoundingClientRect();a=l.top-s+t,o=a+l.height}var f=t-e.props.offset,p=f>=Math.floor(a)&&f<Math.floor(o),m=f<Math.floor(a)||f>=Math.floor(o),h=u.getActiveLink();if(m)return r===h&&u.setActiveLink(void 0),e.props.hashSpy&&d.getHash()===r&&d.changeHash(),e.props.spy&&e.state.active&&(e.setState({active:!1}),e.props.onSetInactive&&e.props.onSetInactive()),c.updateStates();if(p&&h!==r)return u.setActiveLink(r),e.props.hashSpy&&d.changeHash(r),e.props.spy&&(e.setState({active:!0}),e.props.onSetActive&&e.props.onSetActive(r)),c.updateStates()}}};return p.propTypes=f,p.defaultProps={offset:0},p},Element:function(e){console.warn(`Helpers.Element is deprecated since v1.7.0`);var t=function(t){o(c,t);function c(e){i(this,c);var t=a(this,(c.__proto__||Object.getPrototypeOf(c)).call(this,e));return t.childBindings={domNode:null},t}return r(c,[{key:`componentDidMount`,value:function(){if(typeof window>`u`)return!1;this.registerElems(this.props.name)}},{key:`componentDidUpdate`,value:function(e){this.props.name!==e.name&&this.registerElems(this.props.name)}},{key:`componentWillUnmount`,value:function(){if(typeof window>`u`)return!1;l.unregister(this.props.name)}},{key:`registerElems`,value:function(e){l.register(e,this.childBindings.domNo
11de)}},{key:`render`,value:function(){return s.createElement(e,n({},this.props,{parentBindings:this.childBindings}))}}]),c}(s.Component);return t.propTypes={name:u.string,id:u.string},t}}})),vo=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.Helpers=e.ScrollElement=e.ScrollLink=e.animateScroll=e.scrollSpy=e.Events=e.scroller=e.Element=e.Button=e.Link=void 0;var t=d(po()),n=d(mo()),r=d(go()),i=d(oo()),a=d(io()),o=d(eo()),s=d(ao()),c=d(fo()),l=d(ho()),u=d(_o());function d(e){return e&&e.__esModule?e:{default:e}}e.Link=t.default,e.Button=n.default,e.Element=r.default,e.scroller=i.default,e.Events=a.default,e.scrollSpy=o.default,e.animateScroll=s.default,e.ScrollLink=c.default,e.ScrollElement=l.default,e.Helpers=u.default,e.default={Link:t.default,Button:n.default,Element:r.default,scroller:i.default,Events:a.default,scrollSpy:o.default,animateScroll:s.default,ScrollLink:c.default,ScrollElement:l.default,Helpers:u.default}}))();function I({onQuote:e,onSolar:t}){return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(`a`,{href:`https://wa.me/447507643069`,target:`_blank`,rel:`noopener noreferrer nofollow`,className:`md:hidden fixed bottom-[72px] left-4 z-50 flex items-center gap-2 bg-[#25D366] text-white px-4 py-2.5 rounded-full font-bold text-sm whitespace-nowrap hover:bg-[#128C7E] transition-colors shadow-lg`,"aria-label":`Chat on WhatsApp`,children:[(0,M.jsx)(`i`,{className:`ri-whatsapp-line text-lg`}),`WhatsApp Live`]}),(0,M.jsxs)(`div`,{className:`md:hidden fixed bottom-0 left-0 right-0 z-50 bg-[#14532D] border-t-2 border-[#22C55E] flex items-stretch h-16 safe-area-pb`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`flex-1 flex flex-col items-center justify-center gap-0.5 text-white active:bg-[#16A34A] transition-colors`,children:[(0,M.jsx)(`div`,{className:`w-6 h-6 flex items-center justify-center`,children:(0,M.jsx)(`i`,{className:`ri-phone-fill text-[#22C55E] text-xl`})}),(0,M.jsx)(`span`,{className:`text-xs font-bold whitespace-nowrap`,children:`Call Now`})]}),(0,M.jsx)(`div`,{className:`w-px bg-white/20 my-3`}),(0,M.jsxs)(`button`,{onClick:e,className:`flex-1 flex flex-col items-center justify-center gap-0.5 text-white active:bg-[#16A34A] transition-colors cursor-pointer`,children:[(0,M.jsx)(`div`,{className:`w-6 h-6 flex items-center justify-center`,children:(0,M.jsx)(`i`,{className:`ri-file-list-3-line text-[#22C55E] text-xl`})}),(0,M.jsx)(`span`,{className:`text-xs font-bold whitespace-nowrap`,children:`Get Quote`})]}),(0,M.jsx)(`div`,{className:`w-px bg-white/20 my-3`}),(0,M.jsxs)(`button`,{onClick:t,className:`flex-1 flex flex-col items-center justify-center gap-0.5 text-white active:bg-[#16A34A] transition-colors cursor-pointer`,children:[(0,M.jsx)(`div`,{className:`w-6 h-6 flex items-center justify-center`,children:(0,M.jsx)(`i`,{className:`ri-sun-line text-[#22C55E] text-xl`})}),(0,M.jsx)(`span`,{className:`text-xs font-bold whitespace-nowrap`,children:`Solar`})]}),(0,M.jsx)(`div`,{className:`w-px bg-white/20 my-3`}),(0,M.jsxs)(vo.Link,{to:`reviews`,smooth:!0,duration:500,offset:-80,className:`flex-1 flex flex-col items-center justify-center gap-0.5 text-white active:bg-[#16A34A] transition-colors cursor-pointer`,children:[(0,M.jsx)(`div`,{className:`w-6 h-6 flex items-center justify-center`,children:(0,M.jsx)(`i`,{className:`ri-star-fill text-[#FACC15] text-xl`})}),(0,M.jsx)(`span`,{className:`text-xs font-bold whitespace-nowrap`,children:`Reviews`})]})]})]})}var yo=e=>{let t;return t=e||(typeof fetch>`u`?(...e)=>dn(async()=>{let{default:e}=await Promise.resolve().then(()=>(L(),Do));return{default:e}},void 0).then(({default:t})=>t(...e)):fetch),(...e)=>t(...e)},bo=class extends Error{constructor(e,t=`FunctionsError`,n){super(e),this.name=t,this.context=n}},xo=class extends bo{constructor(e){super(`Failed to send a request to the Edge Function`,`FunctionsFetchError`,e)}},So=class extends bo{constructor(e){super(`Relay Error invoking the Edge Function`,`FunctionsRelayError`,e)}},Co=class extends bo{constructor(e){super(`Edge Function returned a non-2xx status code`,`FunctionsHttpError`,e)}},wo;(function(e){e.Any=`any`,e.ApNortheast1=`ap-northeast-1`,e.ApNortheast2=`ap-northeast-2`,e.ApSouth1=`ap-south-1`,e.ApSoutheast1=`ap-southeast-1`,e.ApSoutheast2=`ap-southeast-2`,e.CaCentral1=`ca-central-1`,e.EuCentral1=`eu-central-1`,e.EuWest1=`eu-west-1`,e.EuWest2=`eu-west-2`,e.EuWest3=`eu-west-3`,e.SaEast1=`sa-east-1`,e.UsEast1=`us-east-1`,e.UsWest1=`us-west-1`,e.UsWest2=`us-west-2`})(wo||={});var To=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Eo=class{constructor(e,{headers:t={},customFetch:n,region:r=wo.Any}={}){this.url=e,this.headers=t,this.region=r,this.fetch=yo(n)}setAuth(e){this.headers.Authorization=`Bearer ${e}`}invoke(e,t={}){return To(this,void 0,void 0,function*(){try{let{headers:n,method:r,body:i}=t,a={},{region:o}=t;o||=this.region;let s=new URL(`${this.url}/${e}`);o&&o!==`any`&&(a[`x-region`]=o,s.searchParams.set(`forceFunctionRegion`,o));let c;i&&(n&&!Object.prototype.hasOwnProperty.call(n,`Content-Type`)||!n)&&(typeof Blob<`u`&&i instanceof Blob||i instanceof ArrayBuffer?(a[`Content-Type`]=`application/octet-stream`,c=i):typeof i==`string`?(a[`Content-Type`]=`text/plain`,c=i):typeof FormData<`u`&&i instanceof FormData?c=i:(a[`Content-Type`]=`application/json`,c=JSON.stringify(i)));let l=yield this.fetch(s.toString(),{method:r||`POST`,headers:Object.assign(Object.assign(Object.assign({},a),this.headers),n),body:c}
11).catch(e=>{throw new xo(e)}),u=l.headers.get(`x-relay-error`);if(u&&u===`true`)throw new So(l);if(!l.ok)throw new Co(l);let d=(l.headers.get(`Content-Type`)??`text/plain`).split(`;`)[0].trim(),f;return f=d===`application/json`?yield l.json():d===`application/octet-stream`?yield l.blob():d===`text/event-stream`?l:d===`multipart/form-data`?yield l.formData():yield l.text(),{data:f,error:null,response:l}}catch(e){return{data:null,error:e,response:e instanceof Co||e instanceof So?e.context:void 0}}})}},Do=c({Headers:()=>Mo,Request:()=>No,Response:()=>Po,default:()=>jo,fetch:()=>Ao}),Oo,ko,Ao,jo,Mo,No,Po,L=o((()=>{Oo=function(){if(typeof self<`u`)return self;if(typeof window<`u`)return window;if(typeof global<`u`)return global;throw Error(`unable to locate global object`)},ko=Oo(),Ao=ko.fetch,jo=ko.fetch.bind(ko),Mo=ko.Headers,No=ko.Request,Po=ko.Response})),Fo=s((e=>{Object.defineProperty(e,"__esModule",{value:!0}),e.default=class extends Error{constructor(e){super(e.message),this.name=`PostgrestError`,this.details=e.details,this.hint=e.hint,this.co
11de=e.code}}})),Io=s((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});var n=t((L(),d(Do))),r=t(Fo());e.default=class{constructor(e){this.shouldThrowOnError=!1,this.method=e.method,this.url=e.url,this.headers=new Headers(e.headers),this.schema=e.schema,this.body=e.body,this.shouldThrowOnError=e.shouldThrowOnError??!1,this.signal=e.signal,this.isMaybeSingle=e.isMaybeSingle??!1,this.fetch=e.fetch?e.fetch:typeof fetch>`u`?n.default:fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(e,t){return this.headers=new Headers(this.headers),this.headers.set(e,t),this}then(e,t){this.schema===void 0||([`GET`,`HEAD`].includes(this.method)?this.headers.set(`Accept-Profile`,this.schema):this.headers.set(`Content-Profile`,this.schema)),this.method!==`GET`&&this.method!==`HEAD`&&this.headers.set(`Content-Type`,`application/json`);let n=this.fetch,i=n(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async e=>{let t=null,n=null,i=null,a=e.status,o=e.statusText;if(e.ok){if(this.method!==`HEAD`){let t=await e.text();t===``||(n=this.headers.get(`Accept`)===`text/csv`||this.headers.get(`Accept`)&&this.headers.get(`Accept`)?.includes(`application/vnd.pgrst.plan+text`)?t:JSON.parse(t))}let r=this.headers.get(`Prefer`)?.match(/count=(exact|planned|estimated)/),s=e.headers.get(`content-range`)?.split(`/`);r&&s&&s.length>1&&(i=parseInt(s[1])),this.isMaybeSingle&&this.method===`GET`&&Array.isArray(n)&&(n.length>1?(t={code:`PGRST116`,details:`Results contain ${n.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:`JSON object requested, multiple (or no) rows returned`},n=null,i=null,a=406,o=`Not Acceptable`):n=n.length===1?n[0]:null)}else{let i=await e.text();try{t=JSON.parse(i),Array.isArray(t)&&e.status===404&&(n=[],t=null,a=200,o=`OK`)}
11catch{e.status===404&&i===``?(a=204,o=`No Content`):t={message:i}}if(t&&this.isMaybeSingle&&(t?.details)?.includes(`0 rows`)&&(t=null,a=200,o=`OK`),t&&this.shouldThrowOnError)throw new r.default(t)}return{error:t,data:n,count:i,status:a,statusText:o}});return this.shouldThrowOnError||(i=i.catch(e=>({error:{message:`${e?.name??`FetchError`}: ${e?.message}`,details:`${e?.stack??``}`,hint:``,code:`${e?.code??``}`},data:null,count:null,status:0,statusText:``}))),i.then(e,t)}returns(){return this}overrideTypes(){return this}}})),Lo=s((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});var n=t(Io());e.default=class extends n.default{select(e){let t=!1,n=(e??`*`).split(``).map(e=>/\s/.test(e)&&!t?``:(e===`"`&&(t=!t),e)).join(``);return this.url.searchParams.set(`select`,n),this.headers.append(`Prefer`,`return=representation`),this}order(e,{ascending:t=!0,nullsFirst:n,foreignTable:r,referencedTable:i=r}={}){let a=i?`${i}.order`:`order`,o=this.url.searchParams.get(a);return this.url.searchParams.set(a,`${o?`${o},`:``}${e}.${t?`asc`:`desc`}${n===void 0?``:n?`.nullsfirst`:`.nullslast`}`),this}limit(e,{foreignTable:t,referencedTable:n=t}={}){let r=n===void 0?`limit`:`${n}.limit`;return this.url.searchParams.set(r,`${e}`),this}range(e,t,{foreignTable:n,referencedTable:r=n}={}){let i=r===void 0?`offset`:`${r}.offset`,a=r===void 0?`limit`:`${r}.limit`;return this.url.searchParams.set(i,`${e}`),this.url.searchParams.set(a,`${t-e+1}`),this}abortSignal(e){return this.signal=e,this}single(){return this.headers.set(`Accept`,`application/vnd.pgrst.object+json`),this}maybeSingle(){return this.method===`GET`?this.headers.set(`Accept`,`application/json`):this.headers.set(`Accept`,`application/vnd.pgrst.object+json`),this.isMaybeSingle=!0,this}csv(){return this.headers.set(`Accept`,`text/csv`),this}geojson(){return this.headers.set(`Accept`,`application/geo+json`),this}explain({analyze:e=!1,verbose:t=!1,settings:n=!1,buffers:r=!1,wal:i=!1,format:a=`text`}={}){let o=[e?`analyze`:null,t?`verbose`:null,n?`settings`:null,r?`buffers`:null,i?`wal`:null].filter(Boolean).join(`|`),s=this.headers.get(`Accept`)??`application/json`;return this.headers.set(`Accept`,`application/vnd.pgrst.plan+${a}; for="${s}"; options=${o};`),this}rollback(){return this.headers.append(`Prefer`,`tx=rollback`),this}returns(){return this}maxAffected(e){return this.headers.append(`Prefer`,`handling=strict`),this.headers.append(`Prefer`,`max-affected=${e}`),this}}})),Ro=s((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});var n=t(Lo());e.default=class extends n.default{eq(e,t){return this.url.searchParams.append(e,`eq.${t}`),this}neq(e,t){return this.url.searchParams.append(e,`neq.${t}`),this}gt(e,t){return this.url.searchParams.append(e,`gt.${t}`),this}gte(e,t){return this.url.searchParams.append(e,`gte.${t}`),this}lt(e,t){return this.url.searchParams.append(e,`lt.${t}`),this}lte(e,t){return this.url.searchParams.append(e,`lte.${t}`),this}like(e,t){return this.url.searchParams.append(e,`like.${t}`),this}likeAllOf(e,t){return this.url.searchParams.append(e,`like(all).{${t.join(`,`)}}`),this}likeAnyOf(e,t){return this.url.searchParams.append(e,`like(any).{${t.join(`,`)}}`),this}ilike(e,t){return this.url.searchParams.append(e,`ilike.${t}`),this}ilikeAllOf(e,t){return this.url.searchParams.append(e,`ilike(all).{${t.join(`,`)}}`),this}ilikeAnyOf(e,t){return this.url.searchParams.append(e,`ilike(any).{${t.join(`,`)}}`),this}is(e,t){return this.url.searchParams.append(e,`is.${t}`),this}in(e,t){let n=Array.from(new Set(t)).map(e=>typeof e==`string`&&RegExp(`[,()]`).test(e)?`"${e}"`:`${e}`).join(`,`);return this.url.searchParams.append(e,`in.(${n})`),this}contains(e,t){return typeof t==`string`?this.url.searchParams.append(e,`cs.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cs.{${t.join(`,`)}}`):this.url.searchParams.append(e,`cs.${JSON.stringify(t)}`),this}containedBy(e,t){return typeof t==`string`?this.url.searchParams.append(e,`cd.${t}`):Array.isArray(t)?this.url.searchParams.append(e,`cd.{${t.join(`,`)}}`):this.url.searchParams.append(e,`cd.${JSON.stringify(t)}`),this}rangeGt(e,t){return this.url.searchParams.append(e,`sr.${t}`),this}rangeGte(e,t){return this.url.searchParams.append(e,`nxl.${t}`),this}rangeLt(e,t){return this.url.searchParams.append(e,`sl.${t}`),this}rangeLte(e,t){return this.url.searchParams.append(e,`nxr.${t}`),this}rangeAdjacent(e,t){return this.url.searchParams.append(e,`adj.${t}`),this}overlaps(e,t){return typeof t==`string`?this.url.searchParams.append(e,`ov.${t}`):this.url.searchParams.append(e,`ov.{${t.join(`,`)}}`),this}textSearch(e,t,{config:n,type:r}={}){let i=``;
11r===`plain`?i=`pl`:r===`phrase`?i=`ph`:r===`websearch`&&(i=`w`);let a=n===void 0?``:`(${n})`;return this.url.searchParams.append(e,`${i}fts${a}.${t}`),this}match(e){return Object.entries(e).forEach(([e,t])=>{this.url.searchParams.append(e,`eq.${t}`)}),this}not(e,t,n){return this.url.searchParams.append(e,`not.${t}.${n}`),this}or(e,{foreignTable:t,referencedTable:n=t}={}){let r=n?`${n}.or`:`or`;return this.url.searchParams.append(r,`(${e})`),this}filter(e,t,n){return this.url.searchParams.append(e,`${t}.${n}`),this}}})),zo=s((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});var n=t(Ro());e.default=class{constructor(e,{headers:t={},schema:n,fetch:r}){this.url=e,this.headers=new Headers(t),this.schema=n,this.fetch=r}select(e,{head:t=!1,count:r}={}){let i=t?`HEAD`:`GET`,a=!1,o=(e??`*`).split(``).map(e=>/\s/.test(e)&&!a?``:(e===`"`&&(a=!a),e)).join(``);return this.url.searchParams.set(`select`,o),r&&this.headers.append(`Prefer`,`count=${r}`),new n.default({method:i,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch})}insert(e,{count:t,defaultToNull:r=!0}={}){if(t&&this.headers.append(`Prefer`,`count=${t}`),r||this.headers.append(`Prefer`,`missing=default`),Array.isArray(e)){let t=e.reduce((e,t)=>e.concat(Object.keys(t)),[]);if(t.length>0){let e=[...new Set(t)].map(e=>`"${e}"`);this.url.searchParams.set(`columns`,e.join(`,`))}}return new n.default({method:`POST`,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch??fetch})}upsert(e,{onConflict:t,ignoreDuplicates:r=!1,count:i,defaultToNull:a=!0}={}){if(this.headers.append(`Prefer`,`resolution=${r?`ignore`:`merge`}-duplicates`),t!==void 0&&this.url.searchParams.set(`on_conflict`,t),i&&this.headers.append(`Prefer`,`count=${i}`),a||this.headers.append(`Prefer`,`missing=default`),Array.isArray(e)){let t=e.reduce((e,t)=>e.concat(Object.keys(t)),[]);if(t.length>0){let e=[...new Set(t)].map(e=>`"${e}"`);this.url.searchParams.set(`columns`,e.join(`,`))}}return new n.default({method:`POST`,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch??fetch})}update(e,{count:t}={}){return t&&this.headers.append(`Prefer`,`count=${t}`),new n.default({method:`PATCH`,url:this.url,headers:this.headers,schema:this.schema,body:e,fetch:this.fetch??fetch})}delete({count:e}={}){return e&&this.headers.append(`Prefer`,`count=${e}`),new n.default({method:`DELETE`,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch??fetch})}}})),Bo=s((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});var n=t(zo()),r=t(Ro());e.default=class e{constructor(e,{headers:t={},schema:n,fetch:r}={}){this.url=e,this.headers=new Headers(t),this.schemaName=n,this.fetch=r}from(e){let t=new URL(`${this.url}/${e}`);return new n.default(t,{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch})}schema(t){return new e(this.url,{headers:this.headers,schema:t,fetch:this.fetch})}rpc(e,t={},{head:n=!1,get:i=!1,count:a}={}){let o,s=new URL(`${this.url}/rpc/${e}`),c;n||i?(o=n?`HEAD`:`GET`,Object.entries(t).filter(([e,t])=>t!==void 0).map(([e,t])=>[e,Array.isArray(t)?`{${t.join(`,`)}}`:`${t}`]).forEach(([e,t])=>{s.searchParams.append(e,t)})):(o=`POST`,c=t);let l=new Headers(this.headers);return a&&l.set(`Prefer`,`count=${a}`),new r.default({method:o,url:s,headers:l,schema:this.schemaName,body:c,fetch:this.fetch??fetch})}}})),{PostgrestClient:Vo,PostgrestQueryBuilder:Ho,PostgrestFilterBuilder:Uo,PostgrestTransformBuilder:Wo,PostgrestBuilder:Go,PostgrestError:R}=u(s((e=>{var t=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.PostgrestError=e.PostgrestBuilder=e.PostgrestTransformBuilder=e.PostgrestFilterBuilder=e.PostgrestQueryBuilder=e.PostgrestClient=void 0;var n=t(Bo());e.PostgrestClient=n.default;var r=t(zo());e.PostgrestQueryBuilder=r.default;var i=t(Ro());e.PostgrestFilterBuilder=i.default;var a=t(Lo());e.PostgrestTransformBuilder=a.default;var o=t(Io());e.PostgrestBuilder=o.default;var s=t(Fo());e.PostgrestError=s.default,e.default={PostgrestClient:n.default,PostgrestQueryBuilder:r.default,PostgrestFilterBuilder:i.default,PostgrestTransformBuilder:
11a.default,PostgrestBuilder:o.default,PostgrestError:s.default}}))(),1).default,z=class{static detectEnvironment(){if(typeof WebSocket<`u`)return{type:`native`,constructor:WebSocket};if(typeof globalThis<`u`&&globalThis.WebSocket!==void 0)return{type:`native`,constructor:globalThis.WebSocket};if(typeof global<`u`&&global.WebSocket!==void 0)return{type:`native`,constructor:global.WebSocket};if(typeof globalThis<`u`&&globalThis.WebSocketPair!==void 0&&globalThis.WebSocket===void 0)return{type:`cloudflare`,error:`Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.`,workaround:`Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime.`};if(typeof globalThis<`u`&&globalThis.EdgeRuntime||typeof navigator<`u`&&navigator.userAgent?.includes(`Vercel-Edge`))return{type:`unsupported`,error:`Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.`,workaround:`Use serverless functions or a different deployment target for WebSocket functionality.`};if(typeof process<`u`){let e=process.versions;if(e&&e.node){let t=e.node,n=parseInt(t.replace(/^v/,``).split(`.`)[0]);return n>=22?globalThis.WebSocket===void 0?{type:`unsupported`,error:`Node.js ${n} detected but native WebSocket not found.`,workaround:`Provide a WebSocket implementation via the transport option.`}:{type:`native`,constructor:globalThis.WebSocket}:{type:`unsupported`,error:`Node.js ${n} detected without native WebSocket support.`,workaround:`For Node.js < 22, install "ws" package and provide it via the transport option: 12import ws from "ws" 13new RealtimeClient(url, { transport: ws })`}}}return{type:`unsupported`,error:`Unknown JavaScript runtime without WebSocket support.`,workaround:`Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation.`}}static getWebSocketConstructor(){let e=this.detectEnvironment();if(e.constructor)return e.constructor;let t=e.error||`WebSocket not supported in this environment.`;throw e.workaround&&(t+=`\n\nSuggested solution: ${e.workaround}`),Error(t)}static createWebSocket(e,t){return new(this.getWebSocketConstructor())(e,t)}static isWebSocketSupported(){try{let e=this.detectEnvironment();return e.type===`native`||e.type===`ws`}catch{return!1}}},Ko=`realtime-js/2.15.5`,qo=`1.0.0`,Jo=1e4,Yo;(function(e){e[e.connecting=0]=`connecting`,e[e.open=1]=`open`,e[e.closing=2]=`closing`,e[e.closed=3]=`closed`})(Yo||={});var Xo;(function(e){e.closed=`closed`,e.errored=`errored`,e.joined=`joined`,e.joining=`joining`,e.leaving=`leaving`})(Xo||={});var Zo;(function(e){e.close=`phx_close`,e.error=`phx_error`,e.join=`phx_join`,e.reply=`phx_reply`,e.leave=`phx_leave`,e.access_token=`access_token`})(Zo||={});var Qo;(function(e){e.websocket=`websocket`})(Qo||={});var $o;(function(e){e.Connecting=`connecting`,e.Open=`open`,e.Closing=`closing`,e.Closed=`closed`})($o||={});var es=class{constructor(){this.HEADER_LENGTH=1}decode(e,t){return e.constructor===ArrayBuffer?t(this._binaryDecode(e)):t(typeof e==`string`?JSON.parse(e):{})}_binaryDecode(e){let t=new DataView(e),n=new TextDecoder;return this._decodeBroadcast(e,t,n)}_decodeBroadcast(e,t,n){let r=t.getUint8(1),i=t.getUint8(2),a=this.HEADER_LENGTH+2,o=n.decode(e.slice(a,a+r));a+=r;let s=n.decode(e.slice(a,a+i));return a+=i,{ref:null,topic:o,event:s,payload:JSON.parse(n.decode(e.slice(a,e.byteLength)))}}},ts=class{constructor(e,t){this.callback=e,this.timerCalc=t,this.timer=void 0,this.tries=0,this.callback=e,this.timerCalc=t}reset(){this.tries=0,clearTimeout(this.timer),this.timer=void 0}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries+=1,this.callback()},this.timerCalc(this.tries+1))}},B;(function(e){e.abstime=`abstime`,e.bool=`bool`,e.date=`date`,e.daterange=`daterange`,e.float4=`float4`,e.float8=`float8`,e.int2=`int2`,e.int4=`int4`,e.int4range=`int4range`,e.int8=`int8`,e.int8range=`int8range`,e.json=`json`,e.jsonb=`jsonb`,e.money=`money`,e.numeric=`numeric`,e.oid=`oid`,e.reltime=`reltime`,e.text=`text`,e.time=`time`,e.timestamp=`timestamp`,e.timestamptz=`timestamptz`,e.timetz=`timetz`,e.tsrange=`tsrange`,e.tstzrange=`tstzrange`})(B||={});var ns=(e,t,n={})=>{let r=n.skipTypes??[];return Object.keys(t).reduce((n,i)=>(n[i]=rs(i,e,t,r),n),{})},rs=(e,t,n,r)=>{let i=t.find(t=>t.name===e)?.type,a=n[e];return i&&!r.includes(i)?is(i,a):as(a)},is=(e,t)=>{if(e.charAt(0)===`_`)return ls(t,e.slice(1,e.length));switch(e){case B.bool:return os(t);case B.float4:case B.float8:case B.int2:case B.int4:case B.int8:case B.numeric:case B.oid:return ss(t);case B.json:case B.jsonb:return cs(t);case B.timestamp:return us(t);case B.abstime:case B.date:case B.daterange:case B.int4range:case B.int8range:case B.money:case B.reltime:case B.text:case B.time:case B.timestamptz:case B.timetz:case B.tsrange:case B.tstzrange:return as(t);default:return as(t)}},as=e=>e,os=e=>{switch(e){case`t`:return!0;case`f`:return!1;default:return e}},ss=e=>{if(typeof e==`string`){let t=parseFloat(e);
13if(!Number.isNaN(t))return t}return e},cs=e=>{if(typeof e==`string`)try{return JSON.parse(e)}catch(t){return console.log(`JSON parse error: ${t}`),e}return e},ls=(e,t)=>{if(typeof e!=`string`)return e;let n=e.length-1,r=e[n];if(e[0]===`{`&&r===`}`){let r,i=e.slice(1,n);try{r=JSON.parse(`[`+i+`]`)}catch{r=i?i.split(`,`):[]}return r.map(e=>is(t,e))}return e},us=e=>typeof e==`string`?e.replace(` `,`T`):e,ds=e=>{let t=e;return t=t.replace(/^ws/i,`http`),t=t.replace(/(\/socket\/websocket|\/socket|\/websocket)\/?$/i,``),t.replace(/\/+$/,``)+`/api/broadcast`},fs=class{constructor(e,t,n={},r=Jo){this.channel=e,this.event=t,this.payload=n,this.timeout=r,this.sent=!1,this.timeoutTimer=void 0,this.ref=``,this.receivedResp=null,this.recHooks=[],this.refEvent=null}resend(e){this.timeout=e,this._cancelRefEvent(),this.ref=``,this.refEvent=null,this.receivedResp=null,this.sent=!1,this.send()}send(){this._hasReceived(`timeout`)||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref,join_ref:this.channel._joinRef()}))}updatePayload(e){this.payload=Object.assign(Object.assign({},this.payload),e)}receive(e,t){return this._hasReceived(e)&&t(this.receivedResp?.response),this.recHooks.push({status:e,callback:t}),this}startTimeout(){this.timeoutTimer||=(this.ref=this.channel.socket._makeRef(),this.refEvent=this.channel._replyEventName(this.ref),this.channel._on(this.refEvent,{},e=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=e,this._matchReceive(e)}),setTimeout(()=>{this.trigger(`timeout`,{})},this.timeout))}trigger(e,t){this.refEvent&&this.channel._trigger(this.refEvent,{status:e,response:t})}destroy(){this._cancelRefEvent(),this._cancelTimeout()}_cancelRefEvent(){this.refEvent&&this.channel._off(this.refEvent,{})}_cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=void 0}_matchReceive({status:e,response:t}){this.recHooks.filter(t=>t.status===e).forEach(e=>e.callback(t))}_hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}},ps;(function(e){e.SYNC=`sync`,e.JOIN=`join`,e.LEAVE=`leave`})(ps||={});var ms=class e{constructor(t,n){this.channel=t,this.state={},this.pendingDiffs=[],this.joinRef=null,this.enabled=!1,this.caller={onJoin:()=>{},onLeave:()=>{},onSync:()=>{}};let r=n?.events||{state:`presence_state`,diff:`presence_diff`};this.channel._on(r.state,{},t=>{let{onJoin:n,onLeave:r,onSync:i}=this.caller;this.joinRef=this.channel._joinRef(),this.state=e.syncState(this.state,t,n,r),this.pendingDiffs.forEach(t=>{this.state=e.syncDiff(this.state,t,n,r)}),this.pendingDiffs=[],i()}),this.channel._on(r.diff,{},t=>{let{onJoin:n,onLeave:r,onSync:i}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(t):(this.state=e.syncDiff(this.state,t,n,r),i())}),this.onJoin((e,t,n)=>{this.channel._trigger(`presence`,{event:`join`,key:e,currentPresences:t,newPresences:n})}),this.onLeave((e,t,n)=>{this.channel._trigger(`presence`,{event:`leave`,key:e,currentPresences:t,leftPresences:n})}),this.onSync(()=>{this.channel._trigger(`presence`,{event:`sync`})})}static syncState(e,t,n,r){let i=this.cloneDeep(e),a=this.transformState(t),o={},s={};return this.map(i,(e,t)=>{a[e]||(s[e]=t)}),this.map(a,(e,t)=>{let n=i[e];if(n){let r=t.map(e=>e.presence_ref),i=n.map(e=>e.presence_ref),a=t.filter(e=>i.indexOf(e.presence_ref)<0),c=n.filter(e=>r.indexOf(e.presence_ref)<0);a.length>0&&(o[e]=a),c.length>0&&(s[e]=c)}else o[e]=t}),this.syncDiff(i,{joins:o,leaves:s},n,r)}static syncDiff(e,t,n,r){let{joins:i,leaves:a}={joins:this.transformState(t.joins),leaves:this.transformState(t.leaves)};return n||=()=>{},r||=()=>{},this.map(i,(t,r)=>{let i=e[t]??[];if(e[t]=this.cloneDeep(r),i.length>0){let n=e[t].map(e=>e.presence_ref),r=i.filter(e=>n.indexOf(e.presence_ref)<0);e[t].unshift(...r)}n(t,i,r)}),this.map(a,(t,n)=>{let i=e[t];if(!i)return;let a=n.map(e=>e.presence_ref);i=i.filter(e=>a.indexOf(e.presence_ref)<0),e[t]=i,r(t,i,n),i.length===0&&delete e[t]}),e}static map(e,t){return Object.getOwnPropertyNames(e).map(n=>t(n,e[n]))}static transformState(e){return e=this.cloneDeep(e),Object.getOwnPropertyNames(e).reduce((t,n)=>{let r=e[n];return t[n]=`metas`in r?r.metas.map(e=>(e.presence_ref=e.phx_ref,delete e.phx_ref,delete e.phx_ref_prev,e)):r,t},{})}static cloneDeep(e){return JSON.parse(JSON.stringify(e))}onJoin(e){this.caller.onJoin=e}onLeave(e){this.caller.onLeave=e}onSync(e){this.caller.onSync=e}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel._joinRef()}},hs;(function(e){e.ALL=`*`,e.INSERT=`INSERT`,e.UPDATE=`UPDATE`,e.DELETE=`DELETE`})(hs||={});var gs;(function(e){e.BROADCAST=`broadcast`,e.PRESENCE=`presence`,e.POSTGRES_CHANGES=`postgres_changes`,e.SYSTEM=`system`})(gs||={});var _s;(function(e){e.SUBSCRIBED=`SUBSCRIBED`,e.TIMED_OUT=`TIMED_OUT`,e.CLOSED=`CLOSED`,e.CHANNEL_ERROR=`CHANNEL_ERROR`})(_s||={});var vs=class e{constructor(e,t={config:{}},n){this.topic=e,this.params=t,this.socket=n,this.bindings={},this.state=Xo.closed,this.joinedOnce=!1,this.pushBuffer=[],this.subTopic=e.replace(/^realtime:/i,``),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:``,enabled:!1},private:!1},t.config),this.timeout=this.socket.timeout,this.joinPush=new fs(this,Zo.join,this.params,this.timeout),this.rejoinTimer=new ts(()=>this._rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive(`ok`,()=>{this.state=Xo.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(e
13=>e.send()),this.pushBuffer=[]}),this._onClose(()=>{this.rejoinTimer.reset(),this.socket.log(`channel`,`close ${this.topic} ${this._joinRef()}`),this.state=Xo.closed,this.socket._remove(this)}),this._onError(e=>{this._isLeaving()||this._isClosed()||(this.socket.log(`channel`,`error ${this.topic}`,e),this.state=Xo.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive(`timeout`,()=>{this._isJoining()&&(this.socket.log(`channel`,`timeout ${this.topic}`,this.joinPush.timeout),this.state=Xo.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive(`error`,e=>{this._isLeaving()||this._isClosed()||(this.socket.log(`channel`,`error ${this.topic}`,e),this.state=Xo.errored,this.rejoinTimer.scheduleTimeout())}),this._on(Zo.reply,{},(e,t)=>{this._trigger(this._replyEventName(t),e)}),this.presence=new ms(this),this.broadcastEndpointURL=ds(this.socket.endPoint),this.private=this.params.config.private||!1}subscribe(e,t=this.timeout){if(this.socket.isConnected()||this.socket.connect(),this.state==Xo.closed){let{config:{broadcast:n,presence:r,private:i}}=this.params,a=this.bindings.postgres_changes?.map(e=>e.filter)??[],o=!!this.bindings[gs.PRESENCE]&&this.bindings[gs.PRESENCE].length>0||this.params.config.presence?.enabled===!0,s={},c={broadcast:n,presence:Object.assign(Object.assign({},r),{enabled:o}),postgres_changes:a,private:i};this.socket.accessTokenValue&&(s.access_token=this.socket.accessTokenValue),this._onError(t=>e?.(_s.CHANNEL_ERROR,t)),this._onClose(()=>e?.(_s.CLOSED)),this.updateJoinPayload(Object.assign({config:c},s)),this.joinedOnce=!0,this._rejoin(t),this.joinPush.receive(`ok`,async({postgres_changes:t})=>{if(this.socket.setAuth(),t===void 0){e?.(_s.SUBSCRIBED);return}{let n=this.bindings.postgres_changes,r=n?.length??0,i=[];for(let a=0;a<r;a++){let r=n[a],{filter:{event:o,schema:s,table:c,filter:l}}=r,u=t&&t[a];if(u&&u.event===o&&u.schema===s&&u.table===c&&u.filter===l)i.push(Object.assign(Object.assign({},r),{id:u.id}));else{this.unsubscribe(),this.state=Xo.errored,e?.(_s.CHANNEL_ERROR,Error(`mismatch between server and client bindings for postgres changes`));return}}this.bindings.postgres_changes=i,e&&e(_s.SUBSCRIBED);return}}).receive(`error`,t=>{this.state=Xo.errored,e?.(_s.CHANNEL_ERROR,Error(JSON.stringify(Object.values(t).join(`, `)||`error`)))}).receive(`timeout`,()=>{e?.(_s.TIMED_OUT)})}return this}presenceState(){return this.presence.state}async track(e,t={}){return await this.send({type:`presence`,event:`track`,payload:e},t.timeout||this.timeout)}async untrack(e={}){return await this.send({type:`presence`,event:`untrack`},e)}on(e,t,n){return this.state===Xo.joined&&e===gs.PRESENCE&&(this.socket.log(`channel`,`resubscribe to ${this.topic} due to change in presence callbacks on joined channel`),this.unsubscribe().then(()=>this.subscribe())),this._on(e,t,n)}async send(e,t={}){if(!this._canPush()&&e.type===`broadcast`){let{event:n,payload:r}=e,i={method:`POST`,headers:{Authorization:this.socket.accessTokenValue?`Bearer ${this.socket.accessTokenValue}`:``,apikey:this.socket.apiKey?this.socket.apiKey:``,"Content-Type":`application/json`},body:JSON.stringify({messages:[{topic:this.subTopic,event:n,payload:r,private:this.private}]})};try{let e=await this._fetchWithTimeout(this.broadcastEndpointURL,i,t.timeout??this.timeout);return await e.body?.cancel(),e.ok?`ok`:`error`}catch(e){return e.name===`AbortError`?`timed out`:`error`}}return new Promise(n=>{let r=this._push(e.type,e,t.timeout||this.timeout);e.type===`broadcast`&&!this.params?.config?.broadcast?.ack&&n(`ok`),r.receive(`ok`,()=>n(`ok`)),r.receive(`error`,()=>n(`error`)),r.receive(`timeout`,()=>n(`timed out`))})}updateJoinPayload(e){this.joinPush.updatePayload(e)}unsubscribe(e=this.timeout){this.state=Xo.leaving;let t=()=>{this.socket.log(`channel`,`leave ${this.topic}`),this._trigger(Zo.close,`leave`,this._joinRef())};this.joinPush.destroy();let n=null;return new Promise(r=>{n=new fs(this,Zo.leave,{},e),n.receive(`ok`,()=>{t(),r(`ok`)}).receive(`timeout`,()=>{t(),r(`timed out`)}).receive(`error`,()=>{r(`error`)}),n.send(),this._canPush()||n.trigger(`ok`,{})}).finally(()=>{n?.destroy()})}
13teardown(){this.pushBuffer.forEach(e=>e.destroy()),this.pushBuffer=[],this.rejoinTimer.reset(),this.joinPush.destroy(),this.state=Xo.closed,this.bindings={}}async _fetchWithTimeout(e,t,n){let r=new AbortController,i=setTimeout(()=>r.abort(),n),a=await this.socket.fetch(e,Object.assign(Object.assign({},t),{signal:r.signal}));return clearTimeout(i),a}_push(e,t,n=this.timeout){if(!this.joinedOnce)throw`tried to push '${e}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let r=new fs(this,e,t,n);return this._canPush()?r.send():this._addToPushBuffer(r),r}_addToPushBuffer(e){if(e.startTimeout(),this.pushBuffer.push(e),this.pushBuffer.length>100){let e=this.pushBuffer.shift();e&&(e.destroy(),this.socket.log(`channel`,`discarded push due to buffer overflow: ${e.event}`,e.payload))}}_onMessage(e,t,n){return t}_isMember(e){return this.topic===e}_joinRef(){return this.joinPush.ref}_trigger(e,t,n){var r,i;let a=e.toLocaleLowerCase(),{close:o,error:s,leave:c,join:l}=Zo;if(n&&[o,s,c,l].indexOf(a)>=0&&n!==this._joinRef())return;let u=this._onMessage(a,t,n);if(t&&!u)throw`channel onMessage callbacks must return the payload, modified or unmodified`;[`insert`,`update`,`delete`].includes(a)?(r=this.bindings.postgres_changes)==null||r.filter(e=>e.filter?.event===`*`||(e.filter?.event)?.toLocaleLowerCase()===a).map(e=>e.callback(u,n)):(i=this.bindings[a])==null||i.filter(e=>{if([`broadcast`,`presence`,`postgres_changes`].includes(a)){if(`id`in e){let n=e.id,r=e.filter?.event;return n&&t.ids?.includes(n)&&(r===`*`||r?.toLocaleLowerCase()===t.data?.type.toLocaleLowerCase())}{let n=(e?.filter?.event)?.toLocaleLowerCase();return n===`*`||n===(t?.event)?.toLocaleLowerCase()}}return e.type.toLocaleLowerCase()===a}).map(e=>{if(typeof u==`object`&&`ids`in u){let e=u.data,{schema:t,table:n,commit_timestamp:r,type:i,errors:a}=e;u=Object.assign(Object.assign({},{schema:t,table:n,commit_timestamp:r,eventType:i,new:{},old:{},errors:a}),this._getPayloadRecords(e))}e.callback(u,n)})}_isClosed(){return this.state===Xo.closed}_isJoined(){return this.state===Xo.joined}_isJoining(){return this.state===Xo.joining}_isLeaving(){return this.state===Xo.leaving}_replyEventName(e){return`chan_reply_${e}`}_on(e,t,n){let r=e.toLocaleLowerCase(),i={type:r,filter:t,callback:n};return this.bindings[r]?this.bindings[r].push(i):this.bindings[r]=[i],this}_off(t,n){let r=t.toLocaleLowerCase();return this.bindings[r]&&(this.bindings[r]=this.bindings[r].filter(t=>!(t.type?.toLocaleLowerCase()===r&&e.isEqual(t.filter,n)))),this}static isEqual(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}_rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this._rejoin()}_onClose(e){this._on(Zo.close,{},e)}_onError(e){this._on(Zo.error,{},t=>e(t))}_canPush(){return this.socket.isConnected()&&this._isJoined()}_rejoin(e=this.timeout){this._isLeaving()||(this.socket._leaveOpenTopic(this.topic),this.state=Xo.joining,this.joinPush.resend(e))}_getPayloadRecords(e){let t={new:{},old:{}};return(e.type===`INSERT`||e.type===`UPDATE`)&&(t.new=ns(e.columns,e.record)),(e.type===`UPDATE`||e.type===`DELETE`)&&(t.old=ns(e.columns,e.old_record)),t}},ys=()=>{},bs={HEARTBEAT_INTERVAL:25e3,RECONNECT_DELAY:10,HEARTBEAT_TIMEOUT_FALLBACK:100},xs=[1e3,2e3,5e3,1e4],Ss=1e4,Cs=` 14 addEventListener("message", (e) => { 15 if (e.data.event === "start") { 16 setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval); 17 } 18 });`,ws=class{constructor(e,t){if(this.accessTokenValue=null,this.apiKey=null,this.channels=[],this.endPoint=``,this.httpEndpoint=``,this.headers={},this.params={},this.timeout=Jo,this.transport=null,this.heartbeatIntervalMs=bs.HEARTBEAT_INTERVAL,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.heartbeatCallback=ys,this.ref=0,this.reconnectTimer=null,this.logger=ys,this.conn=null,this.sendBuffer=[],this.serializer=new es,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.accessToken=null,this._connectionState=`disconnected`,this._wasManualDisconnect=!1,this._authPromise=null,this._resolveFetch=e=>{let t;return t=e||(typeof fetch>`u`?(...e)=>dn(async()=>{let{default:e}=await Promise.resolve().then(()=>(L(),Do));return{default:e}},void 0).then(({default:t})=>t(...e)).catch(e=>{throw Error(`Failed to load @supabase/node-fetch: ${e.message}. This is required for HTTP requests in Node.js environments without native fetch.`)}):fetch),(...e)=>t(...e)},!t?.params?.apikey)throw Error(`API key is required to connect to Realtime`);this.apiKey=t.params.apikey,this.endPoint=`${e}/${Qo.websocket}`,this.httpEndpoint=ds(e),this._initializeOptions(t),this._setupReconnectionTimer(),this.fetch=this._resolveFetch(t?.fetch)}connect(){if(!(this.isConnecting()||this.isDisconnecting()||this.conn!==null&&this.isConnected())){if(this._setConnectionState(`connecting`),this._setAuthSafely(`connect`),this.transport)this.conn=new this.transport(this.endpointURL());else try{this.conn=z.createWebSocket(this.endpointURL())}catch(e){this._setConnectionState(`disconnected`);let t=e.message;throw t.includes(`Node.js`)?Error(`${t}\n\nTo use Realtime in Node.js, you need to provide a WebSocket implementation: 19 20Option 1: Use Node.js 22+ which has native WebSocket support 21Option 2: Install and provide the "ws" package: 22 23 npm install ws 24 25 import ws from "ws" 26 const client = new RealtimeClient(url, { 27 ...options, 28 transport: ws 29 })`):Error(`WebSocket not available: ${t}`)}this._setupConnectionHandlers()}}endpointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:qo}))}disconnect(e,t){if(!this.isDisconnecting()){if(this._setConnectionState(`disconnecting`,!0),this.conn){let n=setTimeout(()=>{this._setConnectionState(`disconnected`)},100);
29this.conn.onclose=()=>{clearTimeout(n),this._setConnectionState(`disconnected`)},e?this.conn.close(e,t??``):this.conn.close(),this._teardownConnection()}else this._setConnectionState(`disconnected`)}}getChannels(){return this.channels}async removeChannel(e){let t=await e.unsubscribe();return this.channels.length===0&&this.disconnect(),t}async removeAllChannels(){let e=await Promise.all(this.channels.map(e=>e.unsubscribe()));return this.channels=[],this.disconnect(),e}log(e,t,n){this.logger(e,t,n)}connectionState(){switch(this.conn&&this.conn.readyState){case Yo.connecting:return $o.Connecting;case Yo.open:return $o.Open;case Yo.closing:return $o.Closing;default:return $o.Closed}}isConnected(){return this.connectionState()===$o.Open}isConnecting(){return this._connectionState===`connecting`}isDisconnecting(){return this._connectionState===`disconnecting`}channel(e,t={config:{}}){let n=`realtime:${e}`,r=this.getChannels().find(e=>e.topic===n);if(r)return r;{let n=new vs(`realtime:${e}`,t,this);return this.channels.push(n),n}}push(e){let{topic:t,event:n,payload:r,ref:i}=e,a=()=>{this.encode(e,e=>{var t;(t=this.conn)==null||t.send(e)})};this.log(`push`,`${t} ${n} (${i})`,r),this.isConnected()?a():this.sendBuffer.push(a)}async setAuth(e=null){this._authPromise=this._performAuth(e);try{await this._authPromise}finally{this._authPromise=null}}async sendHeartbeat(){var e;if(!this.isConnected()){try{this.heartbeatCallback(`disconnected`)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}return}if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.log(`transport`,`heartbeat timeout. Attempting to re-establish connection`);try{this.heartbeatCallback(`timeout`)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}this._wasManualDisconnect=!1,(e=this.conn)==null||e.close(1e3,`heartbeat timeout`),setTimeout(()=>{var e;this.isConnected()||(e=this.reconnectTimer)==null||e.scheduleTimeout()},bs.HEARTBEAT_TIMEOUT_FALLBACK);return}this.pendingHeartbeatRef=this._makeRef(),this.push({topic:`phoenix`,event:`heartbeat`,payload:{},ref:this.pendingHeartbeatRef});try{this.heartbeatCallback(`sent`)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}this._setAuthSafely(`heartbeat`)}onHeartbeat(e){this.heartbeatCallback=e}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}_makeRef(){let e=this.ref+1;return this.ref=e===this.ref?0:e,this.ref.toString()}_leaveOpenTopic(e){let t=this.channels.find(t=>t.topic===e&&(t._isJoined()||t._isJoining()));t&&(this.log(`transport`,`leaving duplicate topic "${e}"`),t.unsubscribe())}_remove(e){this.channels=this.channels.filter(t=>t.topic!==e.topic)}_onConnMessage(e){this.decode(e.data,e=>{if(e.topic===`phoenix`&&e.event===`phx_reply`)try{this.heartbeatCallback(e.payload.status===`ok`?`ok`:`error`)}catch(e){this.log(`error`,`error in heartbeat callback`,e)}e.ref&&e.ref===this.pendingHeartbeatRef&&(this.pendingHeartbeatRef=null);let{topic:t,event:n,payload:r,ref:i}=e,a=i?`(${i})`:``,o=r.status||``;this.log(`receive`,`${o} ${t} ${n} ${a}`.trim(),r),this.channels.filter(e=>e._isMember(t)).forEach(e=>e._trigger(n,r,i)),this._triggerStateCallbacks(`message`,e)})}_clearTimer(e){var t;e===`heartbeat`&&this.heartbeatTimer?(clearInterval(this.heartbeatTimer),this.heartbeatTimer=void 0):e===`reconnect`&&((t=this.reconnectTimer)==null||t.reset())}_clearAllTimers(){this._clearTimer(`heartbeat`),this._clearTimer(`reconnect`)}_setupConnectionHandlers(){this.conn&&(`binaryType`in this.conn&&(this.conn.binaryType=`arraybuffer`),this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=e=>this._onConnError(e),this.conn.onmessage=e=>this._onConnMessage(e),this.conn.onclose=e=>this._onConnClose(e))}_teardownConnection(){this.conn&&=(this.conn.onopen=null,this.conn.onerror=null,this.conn.onmessage=null,this.conn.onclose=null,null),this._clearAllTimers(),this.channels.forEach(e=>e.teardown())}_onConnOpen(){this._setConnectionState(`connected`),this.log(`transport`,`connected to ${this.endpointURL()}`),this.flushSendBuffer(),this._clearTimer(`reconnect`),this.worker?this.workerRef||this._startWorkerHeartbeat():this._startHeartbeat(),this._triggerStateCallbacks(`open`)}_startHeartbeat(){this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval(()=>this.sendHeartbeat(),this.heartbeatIntervalMs)}_startWorkerHeartbeat(){this.workerUrl?this.log(`worker`,`starting worker for from ${this.workerUrl}`):this.log(`worker`,`starting default worker`);let e=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(e),this.workerRef.onerror=e=>{this.log(`worker`,`worker error`,e.message),this.workerRef.terminate()},this.workerRef.onmessage=e=>{e.data.event===`keepAlive`&&this.sendHeartbeat()},this.workerRef.postMessage({event:`start`,interval:this.heartbeatIntervalMs})}_onConnClose(e){var t;this._setConnectionState(`disconnected`),this.log(`transport`,`close`,e),this._triggerChanError(),this._clearTimer(`heartbeat`),this._wasManualDisconnect||(t=this.reconnectTimer)==null||t.scheduleTimeout(),this._triggerStateCallbacks(`close`,e)}_onConnError(e){this._setConnectionState(`disconnected`),this.log(`transport`,`${e}`),this._triggerChanError(),this._triggerStateCallbacks(`error`,e)}
29_triggerChanError(){this.channels.forEach(e=>e._trigger(Zo.error))}_appendParams(e,t){return Object.keys(t).length===0?e:`${e}${e.match(/\?/)?`&`:`?`}${new URLSearchParams(t)}`}_workerObjectUrl(e){let t;if(e)t=e;else{let e=new Blob([Cs],{type:`application/javascript`});t=URL.createObjectURL(e)}return t}_setConnectionState(e,t=!1){this._connectionState=e,e===`connecting`?this._wasManualDisconnect=!1:e===`disconnecting`&&(this._wasManualDisconnect=t)}async _performAuth(e=null){let t;t=e||(this.accessToken?await this.accessToken():this.accessTokenValue),this.accessTokenValue!=t&&(this.accessTokenValue=t,this.channels.forEach(e=>{let n={access_token:t,version:Ko};t&&e.updateJoinPayload(n),e.joinedOnce&&e._isJoined()&&e._push(Zo.access_token,{access_token:t})}))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely(e=`general`){this.setAuth().catch(t=>{this.log(`error`,`error setting auth in ${e}`,t)})}_triggerStateCallbacks(e,t){try{this.stateChangeCallbacks[e].forEach(n=>{try{n(t)}catch(t){this.log(`error`,`error in ${e} callback`,t)}})}catch(t){this.log(`error`,`error triggering ${e} callbacks`,t)}}_setupReconnectionTimer(){this.reconnectTimer=new ts(async()=>{setTimeout(async()=>{await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()},bs.RECONNECT_DELAY)},this.reconnectAfterMs)}_initializeOptions(e){if(this.transport=e?.transport??null,this.timeout=e?.timeout??Jo,this.heartbeatIntervalMs=e?.heartbeatIntervalMs??bs.HEARTBEAT_INTERVAL,this.worker=e?.worker??!1,this.accessToken=e?.accessToken??null,this.heartbeatCallback=e?.heartbeatCallback??ys,e?.params&&(this.params=e.params),e?.logger&&(this.logger=e.logger),(e?.logLevel||e?.log_level)&&(this.logLevel=e.logLevel||e.log_level,this.params=Object.assign(Object.assign({},this.params),{log_level:this.logLevel})),this.reconnectAfterMs=e?.reconnectAfterMs??(e=>xs[e-1]||Ss),this.encode=e?.encode??((e,t)=>t(JSON.stringify(e))),this.decode=e?.decode??this.serializer.decode.bind(this.serializer),this.worker){if(typeof window<`u`&&!window.Worker)throw Error(`Web Worker is not supported`);this.workerUrl=e?.workerUrl}}},Ts=class extends Error{constructor(e){super(e),this.__isStorageError=!0,this.name=`StorageError`}};function Es(e){return typeof e==`object`&&!!e&&`__isStorageError`in e}var Ds=class extends Ts{constructor(e,t,n){super(e),this.name=`StorageApiError`,this.status=t,this.statusCode=n}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}},Os=class extends Ts{constructor(e,t){super(e),this.name=`StorageUnknownError`,this.originalError=t}},ks=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},As=e=>{let t;return t=e||(typeof fetch>`u`?(...e)=>dn(async()=>{let{default:e}=await Promise.resolve().then(()=>(L(),Do));return{default:e}},void 0).then(({default:t})=>t(...e)):fetch),(...e)=>t(...e)},js=()=>ks(void 0,void 0,void 0,function*(){return typeof Response>`u`?(yield dn(()=>Promise.resolve().then(()=>(L(),Do)),void 0)).Response:Response}),Ms=e=>{if(Array.isArray(e))return e.map(e=>Ms(e));if(typeof e==`function`||e!==Object(e))return e;let t={};return Object.entries(e).forEach(([e,n])=>{let r=e.replace(/([-_][a-z])/gi,e=>e.toUpperCase().replace(/[-_]/g,``));t[r]=Ms(n)}),t},Ns=e=>{if(typeof e!=`object`||!e)return!1;let t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},Ps=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Fs=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),Is=(e,t,n)=>Ps(void 0,void 0,void 0,function*(){e instanceof(yield js())&&!n?.noResolveJson?e.json().then(n=>{let r=e.status||500,i=n?.statusCode||r+``;
29t(new Ds(Fs(n),r,i))}).catch(e=>{t(new Os(Fs(e),e))}):t(new Os(Fs(e),e))}),Ls=(e,t,n,r)=>{let i={method:e,headers:t?.headers||{}};return e===`GET`||!r?i:(Ns(r)?(i.headers=Object.assign({"Content-Type":`application/json`},t?.headers),i.body=JSON.stringify(r)):i.body=r,t?.duplex&&(i.duplex=t.duplex),Object.assign(Object.assign({},i),n))};function Rs(e,t,n,r,i,a){return Ps(this,void 0,void 0,function*(){return new Promise((o,s)=>{e(n,Ls(t,r,i,a)).then(e=>{if(!e.ok)throw e;return r?.noResolveJson?e:e.json()}).then(e=>o(e)).catch(e=>Is(e,s,r))})})}function zs(e,t,n,r){return Ps(this,void 0,void 0,function*(){return Rs(e,`GET`,t,n,r)})}function Bs(e,t,n,r,i){return Ps(this,void 0,void 0,function*(){return Rs(e,`POST`,t,r,i,n)})}function Vs(e,t,n,r,i){return Ps(this,void 0,void 0,function*(){return Rs(e,`PUT`,t,r,i,n)})}function Hs(e,t,n,r){return Ps(this,void 0,void 0,function*(){return Rs(e,`HEAD`,t,Object.assign(Object.assign({},n),{noResolveJson:!0}),r)})}function Us(e,t,n,r,i){return Ps(this,void 0,void 0,function*(){return Rs(e,`DELETE`,t,r,i,n)})}var Ws=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Gs={limit:100,offset:0,sortBy:{column:`name`,order:`asc`}},Ks={cacheControl:`3600`,contentType:`text/plain;charset=UTF-8`,upsert:!1},qs=class{constructor(e,t={},n,r){this.shouldThrowOnError=!1,this.url=e,this.headers=t,this.bucketId=n,this.fetch=As(r)}throwOnError(){return this.shouldThrowOnError=!0,this}uploadOrUpdate(e,t,n,r){return Ws(this,void 0,void 0,function*(){try{let i,a=Object.assign(Object.assign({},Ks),r),o=Object.assign(Object.assign({},this.headers),e===`POST`&&{"x-upsert":String(a.upsert)}),s=a.metadata;typeof Blob<`u`&&n instanceof Blob?(i=new FormData,i.append(`cacheControl`,a.cacheControl),s&&i.append(`metadata`,this.encodeMetadata(s)),i.append(``,n)):typeof FormData<`u`&&n instanceof FormData?(i=n,i.append(`cacheControl`,a.cacheControl),s&&i.append(`metadata`,this.encodeMetadata(s))):(i=n,o[`cache-control`]=`max-age=${a.cacheControl}`,o[`content-type`]=a.contentType,s&&(o[`x-metadata`]=this.toBase64(this.encodeMetadata(s)))),r?.headers&&(o=Object.assign(Object.assign({},o),r.headers));let c=this._removeEmptyFolders(t),l=this._getFinalPath(c),u=yield(e==`PUT`?Vs:Bs)(this.fetch,`${this.url}/object/${l}`,i,Object.assign({headers:o},a?.duplex?{duplex:a.duplex}:{}));return{data:{path:c,id:u.Id,fullPath:u.Key},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}upload(e,t,n){return Ws(this,void 0,void 0,function*(){return this.uploadOrUpdate(`POST`,e,t,n)})}uploadToSignedUrl(e,t,n,r){return Ws(this,void 0,void 0,function*(){let i=this._removeEmptyFolders(e),a=this._getFinalPath(i),o=new URL(this.url+`/object/upload/sign/${a}`);o.searchParams.set(`token`,t);try{let e,t=Object.assign({upsert:Ks.upsert},r),a=Object.assign(Object.assign({},this.headers),{"x-upsert":String(t.upsert)});return typeof Blob<`u`&&n instanceof Blob?(e=new FormData,e.append(`cacheControl`,t.cacheControl),e.append(``,n)):typeof FormData<`u`&&n instanceof FormData?(e=n,e.append(`cacheControl`,t.cacheControl)):(e=n,a[`cache-control`]=`max-age=${t.cacheControl}`,a[`content-type`]=t.contentType),{data:{path:i,fullPath:(yield Vs(this.fetch,o.toString(),e,{headers:a})).Key},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}createSignedUploadUrl(e,t){return Ws(this,void 0,void 0,function*(){try{let n=this._getFinalPath(e),r=Object.assign({},this.headers);t?.upsert&&(r[`x-upsert`]=`true`);let i=yield Bs(this.fetch,`${this.url}/object/upload/sign/${n}`,{},{headers:r}),a=new URL(this.url+i.url),o=a.searchParams.get(`token`);if(!o)throw new Ts(`No token returned by API`);return{data:{signedUrl:a.toString(),path:e,token:o},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}update(e,t,n){return Ws(this,void 0,void 0,function*(){return this.uploadOrUpdate(`PUT`,e,t,n)})}move(e,t,n){return Ws(this,void 0,void 0,function*(){try{return{data:yield Bs(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t,de
29stinationBucket:n?.destinationBucket},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}copy(e,t,n){return Ws(this,void 0,void 0,function*(){try{return{data:{path:(yield Bs(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:e,destinationKey:t,destinationBucket:n?.destinationBucket},{headers:this.headers})).Key},error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}createSignedUrl(e,t,n){return Ws(this,void 0,void 0,function*(){try{let r=this._getFinalPath(e),i=yield Bs(this.fetch,`${this.url}/object/sign/${r}`,Object.assign({expiresIn:t},n?.transform?{transform:n.transform}:{}),{headers:this.headers}),a=n?.download?`&download=${n.download===!0?``:n.download}`:``;return i={signedUrl:encodeURI(`${this.url}${i.signedURL}${a}`)},{data:i,error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}createSignedUrls(e,t,n){return Ws(this,void 0,void 0,function*(){try{let r=yield Bs(this.fetch,`${this.url}/object/sign/${this.bucketId}`,{expiresIn:t,paths:e},{headers:this.headers}),i=n?.download?`&download=${n.download===!0?``:n.download}`:``;return{data:r.map(e=>Object.assign(Object.assign({},e),{signedUrl:e.signedURL?encodeURI(`${this.url}${e.signedURL}${i}`):null})),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}download(e,t){return Ws(this,void 0,void 0,function*(){let n=t?.transform===void 0?`object`:`render/image/authenticated`,r=this.transformOptsToQueryString(t?.transform||{}),i=r?`?${r}`:``;try{let t=this._getFinalPath(e);return{data:yield(yield zs(this.fetch,`${this.url}/${n}/${t}${i}`,{headers:this.headers,noResolveJson:!0})).blob(),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}info(e){return Ws(this,void 0,void 0,function*(){let t=this._getFinalPath(e);try{return{data:Ms(yield zs(this.fetch,`${this.url}/object/info/${t}`,{headers:this.headers})),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}exists(e){return Ws(this,void 0,void 0,function*(){let t=this._getFinalPath(e);try{return yield Hs(this.fetch,`${this.url}/object/${t}`,{headers:this.headers}),{data:!0,error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e)&&e instanceof Os){let t=e.originalError;if([400,404].includes(t?.status))return{data:!1,error:e}}throw e}})}getPublicUrl(e,t){let n=this._getFinalPath(e),r=[],i=t?.download?`download=${t.download===!0?``:t.download}`:``;i!==``&&r.push(i);let a=t?.transform===void 0?`object`:`render/image`,o=this.transformOptsToQueryString(t?.transform||{});o!==``&&r.push(o);let s=r.join(`&`);return s!==``&&(s=`?${s}`),{data:{publicUrl:encodeURI(`${this.url}/${a}/public/${n}${s}`)}}}remove(e){return Ws(this,void 0,void 0,function*(){try{return{data:yield Us(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:e},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}list(e,t,n){return Ws(this,void 0,void 0,function*(){try{let r=Object.assign(Object.assign(Object.assign({},Gs),t),{prefix:e||``});return{data:yield Bs(this.fetch,`${this.url}/object/list/${this.bucketId}`,r,{headers:this.headers},n),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}listV2(e,t){return Ws(this,void 0,void 0,function*(){try{let n=Object.assign({},e);return{data:yield Bs(this.fetch,`${this.url}/object/list-v2/${this.bucketId}`,n,{headers:this.headers},t),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}encodeMetadata(e){return JSON.stringify(e)}toBase64(e){return typeof Buffer<`u`?Buffer.from(e).toString(`base64`):btoa(e)}_getFinalPath(e){return`${this.bucketId}/${e.replace(/^\/+/,``)}`}_removeEmptyFolders(e){return e.replace(/^\/|\/$/g,``).replace(/\/+/g,`/`)}transformOptsToQueryString(e){let t=[];return e.width&&t.push(`width=${e.width}`),e.height&&t.push(`height=${e.height}`),e.resize&&t.push(`resize=${e.resize}`),e.format&&t.push(`format=${e.format}`),e.quality&&t.push(`quality=${e.quality}`),t.join(`&`)}},Js={"X-Client-Info":`storage-js/2.12.1`},Ys=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Xs=class{constructor(e,t={},n,r){this.shouldThrowOnError=!1;let i=new URL(e);r?.useNewHostname&&/supabase\.(co|in|red)$/.test(i.hostname)&&!i.hostname.includes(`storage.supabase.`)&&(i.hostname=i.hostname.replace(`supabase.`,`storage.supabase.`)),this.url=i.href,this.headers=Object.assign(Object.assign({},Js),t),this.fetch=As(n)}throwOnError(){return this.shouldThrowOnError=!0,this}listBuckets(){return Ys(this,void 0,void 0,function*(){try{return{data:yield zs(this.fetch,`${this.url}/bucket`,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}getBucket(e){return Ys(this,void 0,void 0,function*(){try{return{data:yield zs(this.fetch,`${this.url}/bucket/${e}`,{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}createBucket(e,t={public:!1}){return Ys(this,void 0,void 0,function*(){try{return{data:yield Bs(this.fetch,`${this.url}/bucket`,{id:e,name:e,type:t.type,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}updateBucket(e,t){return Ys(this,void 0,void 0,function*(){try{return{data:yield Vs(this.fetch,`${this.url}/bucket/${e}`,{id:e,name:e,public:t.public,file_size_limit:t.fileSizeLimit,allowed_mime_types:t.allowedMimeTypes},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}emptyBucket(e){return Ys(this,void 0,void 0,function*(){try{return{data:yield Bs(this.fetch,`${this.url}/bucket/${e}/empty`,{},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}deleteBucket(e){return Ys(this,void 0,void 0,function*(){try{return{data:yield Us(this.fetch,`${this.url}/bucket/${e}`,{},{headers:this.headers}),error:null}}catch(e){if(this.shouldThrowOnError)throw e;if(Es(e))return{data:null,error:e};throw e}})}},Zs=class extends Xs{constructor(e,t={},n,r){super(e,t,n,r)}from(e){return new qs(this.url,this.headers,e,this.fetch)}},Qs=`2.57.4`,$s=``;$s=typeof Deno<`u`?`deno`:typeof document<`u`?`web`:typeof navigator<`u`&&navigator.product===`ReactNative`?`react-native`:`node`;var ec={headers:{"X-Client-Info":`supabase-js-${$s}/${Qs}`}},tc={schema:`public`},nc={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:`implicit`},rc={};L();var ic=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},ac=e=>{let t;return t=e||(typeof fetch>`u`?jo:fetch),(...e)=>t(...e)},oc=()=>typeof Headers>`u`?Mo:Headers,sc=(e,t,n)=>{let r=ac(n),i=oc();return(n,a)=>ic(void 0,void 0,void 0,function*(){let o=(yield t())??e,s=new i(a?.headers);return s.has(`apikey`)||s.set(`apikey`,e),s.has(`Authorization`)||s.set(`Authorization`,`Bearer ${o}`),r(n,Object.assign(Object.assign({},a),{headers:s}))})},cc=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})};function lc(e){return e.endsWith(`/`)?e:e+`/`}function uc(e,t){let{db:n,auth:r,realtime:i,global:a}=e,{db:o,auth:s,realtime:c,global:l}=t,u={db:Object.assign(Object.assign({},o),n),auth:Object.assign(Object.assign({},s),r),realtime:Object.assign(Object.assign({},c),i),storage:{},global:Object.assign(Object.assign(Object.assign({},l),a),{headers:Object.assign(Object.assign({},l?.headers??{}),a?.headers??{})}),accessToken:()=>cc(this,void 0,void 0,function*(){return``})};return e.accessToken?u.accessToken=e.accessToken:delete u.accessToken,u}function dc(e){let t=e?.trim();if(!t)throw Error(`supabaseUrl is required.`);if(!t.match(/^https?:\/\//i))throw Error(`Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.`);try{return new URL(lc(t))}catch{throw Error(`Invalid supabaseUrl: Provided URL is malformed.`)}}var fc=`2.71.1`,pc=3e4,mc=3*pc,hc=`http://localhost:9999`,gc=`supabase.auth.token`,_c={"X-Client-Info":`gotrue-js/${fc}`},vc=`X-Supabase-Api-Version`,yc={"2024-01-01":{timestamp:Date.parse(`2024-01-01T00:00:00.0Z`),name:`2024-01-01`}},bc=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}
29$)$/i,xc=class extends Error{constructor(e,t,n){super(e),this.__isAuthError=!0,this.name=`AuthError`,this.status=t,this.code=n}};function V(e){return typeof e==`object`&&!!e&&`__isAuthError`in e}var Sc=class extends xc{constructor(e,t,n){super(e,t,n),this.name=`AuthApiError`,this.status=t,this.code=n}};function Cc(e){return V(e)&&e.name===`AuthApiError`}var wc=class extends xc{constructor(e,t){super(e),this.name=`AuthUnknownError`,this.originalError=t}},Tc=class extends xc{constructor(e,t,n,r){super(e,n,r),this.name=t,this.status=n}},Ec=class extends Tc{constructor(){super(`Auth session missing!`,`AuthSessionMissingError`,400,void 0)}};function Dc(e){return V(e)&&e.name===`AuthSessionMissingError`}var Oc=class extends Tc{constructor(){super(`Auth session or user missing`,`AuthInvalidTokenResponseError`,500,void 0)}},kc=class extends Tc{constructor(e){super(e,`AuthInvalidCredentialsError`,400,void 0)}},Ac=class extends Tc{constructor(e,t=null){super(e,`AuthImplicitGrantRedirectError`,500,void 0),this.details=null,this.details=t}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}};function jc(e){return V(e)&&e.name===`AuthImplicitGrantRedirectError`}var Mc=class extends Tc{constructor(e,t=null){super(e,`AuthPKCEGrantCodeExchangeError`,500,void 0),this.details=null,this.details=t}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}},Nc=class extends Tc{constructor(e,t){super(e,`AuthRetryableFetchError`,t,void 0)}};function Pc(e){return V(e)&&e.name===`AuthRetryableFetchError`}var Fc=class extends Tc{constructor(e,t,n){super(e,`AuthWeakPasswordError`,t,`weak_password`),this.reasons=n}},Ic=class extends Tc{constructor(e){super(e,`AuthInvalidJwtError`,400,`invalid_jwt`)}},Lc=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_`.split(``),Rc=` 30\r=`.split(``),zc=(()=>{let e=Array(128);for(let t=0;t<e.length;t+=1)e[t]=-1;for(let t=0;t<Rc.length;t+=1)e[Rc[t].charCodeAt(0)]=-2;for(let t=0;t<Lc.length;t+=1)e[Lc[t].charCodeAt(0)]=t;return e})();function Bc(e,t,n){if(e!==null)for(t.queue=t.queue<<8|e,t.queuedBits+=8;t.queuedBits>=6;)n(Lc[t.queue>>t.queuedBits-6&63]),t.queuedBits-=6;else if(t.queuedBits>0)for(t.queue<<=6-t.queuedBits,t.queuedBits=6;t.queuedBits>=6;)n(Lc[t.queue>>t.queuedBits-6&63]),t.queuedBits-=6}function Vc(e,t,n){let r=zc[e];if(r>-1)for(t.queue=t.queue<<6|r,t.queuedBits+=6;t.queuedBits>=8;)n(t.queue>>t.queuedBits-8&255),t.queuedBits-=8;else if(r===-2)return;else throw Error(`Invalid Base64-URL character "${String.fromCharCode(e)}"`)}function Hc(e){let t=[],n=e=>{t.push(String.fromCodePoint(e))},r={utf8seq:0,codepoint:0},i={queue:0,queuedBits:0},a=e=>{Gc(e,r,n)};for(let t=0;t<e.length;t+=1)Vc(e.charCodeAt(t),i,a);return t.join(``)}function Uc(e,t){if(e<=127){t(e);return}if(e<=2047){t(192|e>>6),t(128|e&63);return}if(e<=65535){t(224|e>>12),t(128|e>>6&63),t(128|e&63);return}if(e<=1114111){t(240|e>>18),t(128|e>>12&63),t(128|e>>6&63),t(128|e&63);return}throw Error(`Unrecognized Unicode codepoint: ${e.toString(16)}`)}function Wc(e,t){for(let n=0;n<e.length;n+=1){let r=e.charCodeAt(n);if(r>55295&&r<=56319){let t=(r-55296)*1024&65535;r=(e.charCodeAt(n+1)-56320&65535|t)+65536,n+=1}Uc(r,t)}}function Gc(e,t,n){if(t.utf8seq===0){if(e<=127){n(e);return}for(let n=1;n<6;n+=1)if(!(e>>7-n&1)){t.utf8seq=n;break}if(t.utf8seq===2)t.codepoint=e&31;else if(t.utf8seq===3)t.codepoint=e&15;else if(t.utf8seq===4)t.codepoint=e&7;else throw Error(`Invalid UTF-8 sequence`);--t.utf8seq}else if(t.utf8seq>0){if(e<=127)throw Error(`Invalid UTF-8 sequence`);t.codepoint=t.codepoint<<6|e&63,--t.utf8seq,t.utf8seq===0&&n(t.codepoint)}}function Kc(e){let t=[],n={queue:0,queuedBits:0},r=e=>{t.push(e)};for(let t=0;t<e.length;t+=1)Vc(e.charCodeAt(t),n,r);return new Uint8Array(t)}function qc(e){let t=[];return Wc(e,e=>t.push(e)),new Uint8Array(t)}function Jc(e){let t=[],n={queue:0,queuedBits:0},r=e=>{t.push(e)};return e.forEach(e=>Bc(e,n,r)),Bc(null,n,r),t.join(``)}function Yc(e){return Math.round(Date.now()/1e3)+e}function Xc(){return`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,function(e){let t=Math.random()*16|0;return(e==`x`?t:t&3|8).toString(16)})}var Zc=()=>typeof window<`u`&&typeof document<`u`,Qc={tested:!1,writable:!1},$c=()=>
30{if(!Zc())return!1;try{if(typeof globalThis.localStorage!=`object`)return!1}catch{return!1}if(Qc.tested)return Qc.writable;let e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e),globalThis.localStorage.removeItem(e),Qc.tested=!0,Qc.writable=!0}catch{Qc.tested=!0,Qc.writable=!1}return Qc.writable};function el(e){let t={},n=new URL(e);if(n.hash&&n.hash[0]===`#`)try{new URLSearchParams(n.hash.substring(1)).forEach((e,n)=>{t[n]=e})}catch{}return n.searchParams.forEach((e,n)=>{t[n]=e}),t}var tl=e=>{let t;return t=e||(typeof fetch>`u`?(...e)=>dn(async()=>{let{default:e}=await Promise.resolve().then(()=>(L(),Do));return{default:e}},void 0).then(({default:t})=>t(...e)):fetch),(...e)=>t(...e)},nl=e=>typeof e==`object`&&!!e&&`status`in e&&`ok`in e&&`json`in e&&typeof e.json==`function`,rl=async(e,t,n)=>{await e.setItem(t,JSON.stringify(n))},il=async(e,t)=>{let n=await e.getItem(t);if(!n)return null;try{return JSON.parse(n)}catch{return n}},al=async(e,t)=>{await e.removeItem(t)},ol=class e{constructor(){this.promise=new e.promiseConstructor((e,t)=>{this.resolve=e,this.reject=t})}};ol.promiseConstructor=Promise;function sl(e){let t=e.split(`.`);if(t.length!==3)throw new Ic(`Invalid JWT structure`);for(let e=0;e<t.length;e++)if(!bc.test(t[e]))throw new Ic(`JWT not in base64url format`);return{header:JSON.parse(Hc(t[0])),payload:JSON.parse(Hc(t[1])),signature:Kc(t[2]),raw:{header:t[0],payload:t[1]}}}async function cl(e){return await new Promise(t=>{setTimeout(()=>t(null),e)})}function ll(e,t){return new Promise((n,r)=>{(async()=>{for(let i=0;i<1/0;i++)try{let r=await e(i);if(!t(i,null,r)){n(r);return}}catch(e){if(!t(i,e)){r(e);return}}})()})}function ul(e){return(`0`+e.toString(16)).substr(-2)}function dl(){let e=new Uint32Array(56);if(typeof crypto>`u`){let e=``;for(let t=0;t<56;t++)e+=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~`.charAt(Math.floor(Math.random()*66));return e}return crypto.getRandomValues(e),Array.from(e,ul).join(``)}async function fl(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t),r=new Uint8Array(n);return Array.from(r).map(e=>String.fromCharCode(e)).join(``)}async function pl(e){if(typeof crypto>`u`||crypto.subtle===void 0||typeof TextEncoder>`u`)return console.warn(`WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256.`),e;let t=await fl(e);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}async function ml(e,t,n=!1){let r=dl(),i=r;n&&(i+=`/PASSWORD_RECOVERY`),await rl(e,`${t}-code-verifier`,i);let a=await pl(r);return[a,r===a?`plain`:`s256`]}var hl=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function gl(e){let t=e.headers.get(vc);if(!t||!t.match(hl))return null;try{return new Date(`${t}T00:00:00.0Z`)}catch{return null}}function _l(e){if(!e)throw Error(`Missing exp claim`);if(e<=Math.floor(Date.now()/1e3))throw Error(`JWT has expired`)}function vl(e){switch(e){case`RS256`:return{name:`RSASSA-PKCS1-v1_5`,hash:{name:`SHA-256`}};case`ES256`:return{name:`ECDSA`,namedCurve:`P-256`,hash:{name:`SHA-256`}};default:throw Error(`Invalid alg claim`)}}var yl=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function H(e){if(!yl.test(e))throw Error(`@supabase/auth-js: Expected parameter to be UUID but is not`)}function bl(){return new Proxy({},{get:(e,t)=>{if(t===`__isUserNotAvailableProxy`)return!0;if(typeof t==`symbol`){let e=t.toString();if(e===`Symbol(Symbol.toPrimitive)`||e===`Symbol(Symbol.toStringTag)`||e===`Symbol(util.inspect.custom)`)return}throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${t}" property of the session object is not supported. Please use getUser() instead.`)},set:(e,t)=>{throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${t}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)},deleteProperty:(e,t)=>{throw Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${t}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)}})}function xl(e){return JSON.parse(JSON.stringify(e))}var Sl=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Cl=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),wl=[502,503,504];async function Tl(e){if(!nl(e))throw new Nc(Cl(e),0);if(wl.includes(e.status))throw new Nc(Cl(e),e.status);let t;try{t=await e.json()}catch(e){throw new wc(Cl(e),e)}let n,r=gl(e);if(r&&r.getTime()>=yc[`2024-01-01`].timestamp&&typeof t==`object`&&t&&typeof t.code==`string`?n=t.code:typeof t==`object`&&t&&typeof t.error_code==`string`&&(n=t.error_code),!n){if(typeof t==`object`&&t&&typeof t.weak_password==`object`&&t.weak_password&&Array.isArray(t.weak_password.reasons)&&t.weak_password.reasons.length&&t.weak_password.reasons.reduce((e,t)=>
30e&&typeof t==`string`,!0))throw new Fc(Cl(t),e.status,t.weak_password.reasons)}else if(n===`weak_password`)throw new Fc(Cl(t),e.status,t.weak_password?.reasons||[]);else if(n===`session_not_found`)throw new Ec;throw new Sc(Cl(t),e.status||500,n)}var El=(e,t,n,r)=>{let i={method:e,headers:t?.headers||{}};return e===`GET`?i:(i.headers=Object.assign({"Content-Type":`application/json;charset=UTF-8`},t?.headers),i.body=JSON.stringify(r),Object.assign(Object.assign({},i),n))};async function U(e,t,n,r){let i=Object.assign({},r?.headers);i[`X-Supabase-Api-Version`]||(i[vc]=yc[`2024-01-01`].name),r?.jwt&&(i.Authorization=`Bearer ${r.jwt}`);let a=r?.query??{};r?.redirectTo&&(a.redirect_to=r.redirectTo);let o=await Dl(e,t,n+(Object.keys(a).length?`?`+new URLSearchParams(a).toString():``),{headers:i,noResolveJson:r?.noResolveJson},{},r?.body);return r?.xform?r?.xform(o):{data:Object.assign({},o),error:null}}async function Dl(e,t,n,r,i,a){let o=El(t,r,i,a),s;try{s=await e(n,Object.assign({},o))}catch(e){throw console.error(e),new Nc(Cl(e),0)}if(s.ok||await Tl(s),r?.noResolveJson)return s;try{return await s.json()}catch(e){await Tl(e)}}function Ol(e){let t=null;Pl(e)&&(t=Object.assign({},e),e.expires_at||(t.expires_at=Yc(e.expires_in)));let n=e.user??e;return{data:{session:t,user:n},error:null}}function kl(e){let t=Ol(e);return!t.error&&e.weak_password&&typeof e.weak_password==`object`&&Array.isArray(e.weak_password.reasons)&&e.weak_password.reasons.length&&e.weak_password.message&&typeof e.weak_password.message==`string`&&e.weak_password.reasons.reduce((e,t)=>e&&typeof t==`string`,!0)&&(t.data.weak_password=e.weak_password),t}function Al(e){return{data:{user:e.user??e},error:null}}function jl(e){return{data:e,error:null}}function Ml(e){let{action_link:t,email_otp:n,hashed_token:r,redirect_to:i,verification_type:a}=e,o=Sl(e,[`action_link`,`email_otp`,`hashed_token`,`redirect_to`,`verification_type`]);return{data:{properties:{action_link:t,email_otp:n,hashed_token:r,redirect_to:i,verification_type:a},user:Object.assign({},o)},error:null}}function Nl(e){return e}function Pl(e){return e.access_token&&e.refresh_token&&e.expires_in}var Fl=[`global`,`local`,`others`],Il=function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n},Ll=class{constructor({url:e=``,headers:t={},fetch:n}){this.url=e,this.headers=t,this.fetch=tl(n),this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)}}async signOut(e,t=Fl[0]){if(Fl.indexOf(t)<0)throw Error(`@supabase/auth-js: Parameter scope must be one of ${Fl.join(`, `)}`);try{return await U(this.fetch,`POST`,`${this.url}/logout?scope=${t}`,{headers:this.headers,jwt:e,noResolveJson:!0}),{data:null,error:null}}catch(e){if(V(e))return{data:null,error:e};throw e}}async inviteUserByEmail(e,t={}){try{return await U(this.fetch,`POST`,`${this.url}/invite`,{body:{email:e,data:t.data},headers:this.headers,redirectTo:t.redirectTo,xform:Al})}catch(e){if(V(e))return{data:{user:null},error:e};throw e}}async generateLink(e){try{let{options:t}=e,n=Il(e,[`options`]),r=Object.assign(Object.assign({},n),t);return`newEmail`in n&&(r.new_email=n?.newEmail,delete r.newEmail),await U(this.fetch,`POST`,`${this.url}/admin/generate_link`,{body:r,headers:this.headers,xform:Ml,redirectTo:t?.redirectTo})}catch(e){if(V(e))return{data:{properties:null,user:null},error:e};throw e}}async createUser(e){try{return await U(this.fetch,`POST`,`${this.url}/admin/users`,{body:e,headers:this.headers,xform:Al})}catch(e){if(V(e))return{data:{user:null},error:e};throw e}}async listUsers(e){try{let t={nextPage:null,lastPage:0,total:0},n=await U(this.fetch,`GET`,`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(e?.page)?.toString()??``,per_page:(e?.perPage)?.toString()??``},xform:Nl});if(n.error)throw n.error;let r=await n.json(),i=n.headers.get(`x-total-count`)??0,a=n.headers.get(`link`)?.split(`,`)??[];return a.length>
300&&(a.forEach(e=>{let n=parseInt(e.split(`;`)[0].split(`=`)[1].substring(0,1)),r=JSON.parse(e.split(`;`)[1].split(`=`)[1]);t[`${r}Page`]=n}),t.total=parseInt(i)),{data:Object.assign(Object.assign({},r),t),error:null}}catch(e){if(V(e))return{data:{users:[]},error:e};throw e}}async getUserById(e){H(e);try{return await U(this.fetch,`GET`,`${this.url}/admin/users/${e}`,{headers:this.headers,xform:Al})}catch(e){if(V(e))return{data:{user:null},error:e};throw e}}async updateUserById(e,t){H(e);try{return await U(this.fetch,`PUT`,`${this.url}/admin/users/${e}`,{body:t,headers:this.headers,xform:Al})}catch(e){if(V(e))return{data:{user:null},error:e};throw e}}async deleteUser(e,t=!1){H(e);try{return await U(this.fetch,`DELETE`,`${this.url}/admin/users/${e}`,{headers:this.headers,body:{should_soft_delete:t},xform:Al})}catch(e){if(V(e))return{data:{user:null},error:e};throw e}}async _listFactors(e){H(e.userId);try{let{data:t,error:n}=await U(this.fetch,`GET`,`${this.url}/admin/users/${e.userId}/factors`,{headers:this.headers,xform:e=>({data:{factors:e},error:null})});return{data:t,error:n}}catch(e){if(V(e))return{data:null,error:e};throw e}}async _deleteFactor(e){H(e.userId),H(e.id);try{return{data:await U(this.fetch,`DELETE`,`${this.url}/admin/users/${e.userId}/factors/${e.id}`,{headers:this.headers}),error:null}}catch(e){if(V(e))return{data:null,error:e};throw e}}};function Rl(e={}){return{getItem:t=>e[t]||null,setItem:(t,n)=>{e[t]=n},removeItem:t=>{delete e[t]}}}function zl(){if(typeof globalThis!=`object`)try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<`u`&&(self.globalThis=self)}}var Bl={debug:!!(globalThis&&$c()&&globalThis.localStorage&&globalThis.localStorage.getItem(`supabase.gotrue-js.locks.debug`)===`true`)},Vl=class extends Error{constructor(e){super(e),this.isAcquireTimeout=!0}},Hl=class extends Vl{};async function Ul(e,t,n){Bl.debug&&console.log(`@supabase/gotrue-js: navigatorLock: acquire lock`,e,t);let r=new globalThis.AbortController;return t>0&&setTimeout(()=>{r.abort(),Bl.debug&&console.log(`@supabase/gotrue-js: navigatorLock acquire timed out`,e)},t),await Promise.resolve().then(()=>globalThis.navigator.locks.request(e,t===0?{mode:`exclusive`,ifAvailable:!0}:{mode:`exclusive`,signal:r.signal},async r=>{if(r){Bl.debug&&console.log(`@supabase/gotrue-js: navigatorLock: acquired`,e,r.name);try{return await n()}finally{Bl.debug&&console.log(`@supabase/gotrue-js: navigatorLock: released`,e,r.name)}}else if(t===0)throw Bl.debug&&console.log(`@supabase/gotrue-js: navigatorLock: not immediately available`,e),new Hl(`Acquiring an exclusive Navigator LockManager lock "${e}" immediately failed`);else{if(Bl.debug)try{let e=await globalThis.navigator.locks.query();console.log(`@supabase/gotrue-js: Navigator LockManager state`,JSON.stringify(e,null,` `))}catch(e){console.warn(`@supabase/gotrue-js: Error when querying Navigator LockManager state`,e)}return console.warn(`@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request`),await n()}}))}zl();var Wl={url:hc,storageKey:gc,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:_c,flowType:`implicit`,debug:!1,hasCustomAuthorizationHeader:!1};async function Gl(e,t,n){return await n()}var Kl={},ql=class e{constructor(t){var n;this.userStorage=null,this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log,this.instanceID=e.nextInstanceID,e.nextInstanceID+=1,this.instanceID>0&&Zc()&&console.warn(`Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`);let r=Object.assign(Object.assign({},Wl),t);if(this.logDebugMessages=!!r.debug,typeof r.debug==`function`&&(this.logger=r.debug),this.persistSession=r.persistSession,this.storageKey=r.storageKey,this.autoRefreshToken=r.autoRefreshToken,this.admin=new Ll({url:r.url,headers:r.headers,fetch:r.fetch}),this.url=r.url,this.headers=r.headers,this.fetch=tl(r.fetch),this.lock=r.lock||Gl,this.detectSessionInUrl=r.detectSessionInUrl,this.flowType=r.flowType,this.hasCustomAuthorizationHeader=r.hasCustomAuthorizationHeader,this.lock=r.lock?r.lock:Zc()&&(globalThis==null?void 0:globalThis.navigator)?.locks?Ul:Gl,this.jwks||(this.jwks={keys:[]},this.jwks_cached_at=-(2**53-1)),this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this)},this.persistSession?(r.storage?this.storage=r.storage:$c()?this.storage=globalThis.localStorage:(this.memoryStorage={},this.storage=Rl(this.memoryStorage)),r.userStorage&&(this.userStorage=r.userStorage)):(this.memoryStorage={},this.storage=Rl(this.memoryStorage)),Zc()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(e){console.error(`Failed to create a new BroadcastChannel, multi-tab state changes will not be available`,e)}(n=this.broadcastChannel)==null||n.addEventListener(`message`,async e=>{this._debug(`received broadcast notification from other tab or client`,e),await this._notifyAllSubscribers(e.data.event,e.data.session,!1)})}this.initialize()}get jwks(){return Kl[this.storageKey]?.jwks??{keys:[]}}set jwks(e){Kl[this.storageKey]=Object.assign(Object.assign({},Kl[this.storageKey]),{jwks:e})}get jwks_cached_at(){return Kl[this.storageKey]?.cachedAt??-(2**53-1)}set jwks_cached_at(e){Kl[this.storageKey]=Object.assign(Object.assign({},Kl[this.storageKey]),{cachedAt:e})}_debug(...e){return this.logDebugMessages&&this.logger(`GoTrueClient@${this.instanceID} (${fc}) ${new Date().toISOString()}`,...e),this}async initialize(){return this.initializePromise||=(async()=>await this._acquireLock(-1,async()=>await this._initialize()))(),await this.initializePromise}async _initialize(){try{let e=el(window.location.href),t=`none`;if(this._isImplicitGrantCallback(e)?t=`implicit`:await this._isPKCECallback(e)&&(t=`pkce`),Zc()&&this.detectSessionInUrl&&t!==`none`){let{data:n,error:r}=await this._getSessionFromURL(e,t);if(r){if(this._debug(`#_initialize()`,`error detecting session from URL`,r),jc(r)){let e=r.details?.code;if(e===`identity_already_exists`||e===`identity_not_found`||e===`single_identity_not_deletable`)return{error:r}}return await this._removeSession(),{error:r}}let{session:i,redirectType:a}=n;return this._debug(`#_initialize()`,`detected session in URL`,i,`redirect type`,a),await this._saveSession(i),setTimeout(async()=>{a===`recovery`?await this._notifyAllSubscribers(`PASSWORD_RECOVERY`,i):await this._notifyAllSubscribers(`SIGNED_IN`,i)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(e){return V(e)?{error:e}:{error:new wc(`Unexpected error during initialization`,e)}}finally{await this._handleVisibilityChange(),this._debug(`#_initialize()`,`end`)}}async signInAnonymously(e){try{let{data:t,error:n}=await U(this.fetch,`POST`,`${this.url}/signup`,{headers:this.headers,body:{data:e?.options?.data??{},gotrue_meta_security:{captcha_token:e?.options?.captchaToken}},xform:Ol});if(n||!t)return{data:{user:null,session:null},error:n};let r=t.session,i=t.user;return t.session&&(await this._saveSession(t.session),await this._notifyAllSubscribers(`SIGNED_IN`,r)),{data:{user:i,session:r},error:null}}catch(e){if(V(e))return{data:{user:null,session:null},error:e};throw e}}async signUp(e){try{let t;if(`email`in e){let{email:n,password:r,options:i}=e,a=null,o=null;this.flowType===`pkce`&&([a,o]=await ml(this.storage,this.storageKey)),t=await U(this.fetch,`POST`,`${this.url}/signup`,{headers:this.headers,redirectTo:i?.emailRedirectTo,body:{email:n,password:r,data:i?.data??{},gotrue_meta_security:{captcha_token:i?.captchaToken},code_challenge:a,code_challenge_method:o},xform:Ol})}else if(`phone`in e){let{phone:n,password:r,options:i}=e;t=await U(this.fetch,`POST`,`${this.url}/signup`,{headers:this.headers,body:{phone:n,password:r,data:i?.data??{},channel:i?.channel??`sms`,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:Ol})}else throw new kc(`You must provide either an email or phone number and a password`);let{data:n,error:r}=t;if(r||!n)return{data:{user:null,session:null},error:r};let i=n.session,a=n.user;return n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers(`SIGNED_IN`,i)),{data:{user:a,session:i},error:null}}catch(e){if(V(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithPassword(e){try{let t;if(`email`in e){let{email:n,password:r,options:i}=e;t=await U(this.fetch,`POST`,`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:n,password:r,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:kl})}else if(`phone`in e){let{phone:n,password:r,options:i}=e;t=await U(this.fetch,`POST`,`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:n,password:r,gotrue_meta_security:{captcha_token:i?.captchaToken}},xform:kl})}else throw new kc(`You must provide either an email or phone number and a password`);let{data:n,error:r}=t;return r?{data:{user:null,session:null},error:r}:!n||!n.session||!n.user?{data:{user:null,session:null},error:new Oc}:(n.session&&(await this._saveSession(n.session),await this._notifyAllSubscribers(`SIGNED_IN`,n.session)),{data:Object.assign({user:n.user,session:n.session},n.weak_password?{weakPassword:n.weak_password}:null),error:r})}catch(e){if(V(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithOAuth(e){return await this._handleProviderSignIn(e.provider,{redirectTo:e.options?.redirectTo,scopes:e.options?.scopes,queryParams:e.options?.queryParams,skipBrowserRedirect:e.options?.skipBrowserRedirect})}async exchangeCodeForSession(e){return await this.initializePromise,this._acquireLock(-1,async()=>this._exchangeCodeForSession(e))}async signInWithWeb3(e){let{chain:t}=e;if(t===`solana`)return await this.signInWithSolana(e);throw Error(`@supabase/auth-js: Unsupported chain "${t}"`)}async signInWithSolana(e){let t,n;if(`message`in e)t=e.message,n=e.signature;else{let{chain:r,wallet:i,statement:a,options:o}=e,s;if(!Zc()){if(typeof i!=`object`||!o?.url)throw Error(`@supabase/auth-js: Both wallet and url must be specified in non-browser environments.`);s=i}else if(typeof i==`object`)s=i;else{let e=window;if(`solana`in e&&typeof e.solana==`object`&&(`signIn`in e.solana&&typeof e.solana.signIn==`function`||`signMessage`in e.
30solana&&typeof e.solana.signMessage==`function`))s=e.solana;else throw Error(`@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.`)}let c=new URL(o?.url??window.location.href);if(`signIn`in s&&s.signIn){let e=await s.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},o?.signInWithSolana),{version:`1`,domain:c.host,uri:c.href}),a?{statement:a}:null)),r;if(Array.isArray(e)&&e[0]&&typeof e[0]==`object`)r=e[0];else if(e&&typeof e==`object`&&`signedMessage`in e&&`signature`in e)r=e;else throw Error(`@supabase/auth-js: Wallet method signIn() returned unrecognized value`);if(`signedMessage`in r&&`signature`in r&&(typeof r.signedMessage==`string`||r.signedMessage instanceof Uint8Array)&&r.signature instanceof Uint8Array)t=typeof r.signedMessage==`string`?r.signedMessage:new TextDecoder().decode(r.signedMessage),n=r.signature;else throw Error(`@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields`)}else{if(!(`signMessage`in s)||typeof s.signMessage!=`function`||!(`publicKey`in s)||typeof s!=`object`||!s.publicKey||!(`toBase58`in s.publicKey)||typeof s.publicKey.toBase58!=`function`)throw Error(`@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API`);t=[`${c.host} wants you to sign in with your Solana account:`,s.publicKey.toBase58(),...a?[``,a,``]:[``],`Version: 1`,`URI: ${c.href}`,`Issued At: ${o?.signInWithSolana?.issuedAt??new Date().toISOString()}`,...o?.signInWithSolana?.notBefore?[`Not Before: ${o.signInWithSolana.notBefore}`]:[],...o?.signInWithSolana?.expirationTime?[`Expiration Time: ${o.signInWithSolana.expirationTime}`]:[],...o?.signInWithSolana?.chainId?[`Chain ID: ${o.signInWithSolana.chainId}`]:[],...o?.signInWithSolana?.nonce?[`Nonce: ${o.signInWithSolana.nonce}`]:[],...o?.signInWithSolana?.requestId?[`Request ID: ${o.signInWithSolana.requestId}`]:[],...o?.signInWithSolana?.resources?.length?[`Resources`,...o.signInWithSolana.resources.map(e=>`- ${e}`)]:[]].join(` 31`);let e=await s.signMessage(new TextEncoder().encode(t),`utf8`);if(!e||!(e instanceof Uint8Array))throw Error(`@supabase/auth-js: Wallet signMessage() API returned an recognized value`);n=e}}try{let{data:r,error:i}=await U(this.fetch,`POST`,`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:`solana`,message:t,signature:Jc(n)},e.options?.captchaToken?{gotrue_meta_security:{captcha_token:e.options?.captchaToken}}:null),xform:Ol});if(i)throw i;return!r||!r.session||!r.user?{data:{user:null,session:null},error:new Oc}:(r.session&&(await this._saveSession(r.session),await this._notifyAllSubscribers(`SIGNED_IN`,r.session)),{data:Object.assign({},r),error:i})}catch(e){if(V(e))return{data:{user:null,session:null},error:e};throw e}}async _exchangeCodeForSession(e){let[t,n]=(await il(this.storage,`${this.storageKey}-code-verifier`)??``).split(`/`);try{let{data:r,error:i}=await U(this.fetch,`POST`,`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:e,code_verifier:t},xform:Ol});if(await al(this.storage,`${this.storageKey}-code-verifier`),i)throw i;return!r||!r.session||!r.user?{data:{user:null,session:null,redirectType:null},error:new Oc}:(r.session&&(await this._saveSession(r.session),await this._notifyAllSubscribers(`SIGNED_IN`,r.session)),{data:Object.assign(Object.assign({},r),{redirectType:n??null}),error:i})}catch(e){if(V(e))return{data:{user:null,session:null,redirectType:null},error:e};throw e}}async signInWithIdToken(e){try{let{options:t,provider:n,token:r,access_token:i,nonce:a}=e,{data:o,error:s}=await U(this.fetch,`POST`,`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:n,id_token:r,access_token:i,nonce:a,gotrue_meta_security:{captcha_token:t?.captchaToken}},xform:Ol});return s?{data:{user:null,session:null},error:s}:!o||!o.session||!o.user?{data:{user:null,session:null},error:new Oc}:(o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers(`SIGNED_IN`,o.session)),{data:o,error:s})}catch(e){if(V(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithOtp(e){try{if(`email`in e){let{email:t,options:n}=e,r=null,i=null;this.flowType===`pkce`&&([r,i]=await ml(this.storage,this.storageKey));let{error:a}=await U(this.fetch,`POST`,`${this.url}/otp`,{headers:this.headers,body:{email:t,data:n?.data??{},create_user:n?.shouldCreateUser??!0,gotrue_meta_security:{captcha_token:n?.captchaToken},code_challenge:r,code_challenge_method:i},redirectTo:n?.emailRedirectTo});return{data:{user:null,session:null},error:a}}if(`phone`in e){let{phone:t,options:n}=e,{data:r,error:i}=await U(this.fetch,`POST`,`${this.url}/otp`,{headers:this.headers,body:{phone:t,data:n?.data??{},create_user:n?.shouldCreateUser??!0,gotrue_meta_security:{captcha_token:n?.captchaToken},channel:n?.channel??`sms`}});return{data:{user:null,session:null,messageId:r?.message_id},error:i}}throw new kc(`You must provide either an email or phone number.`)}catch(e){if(V(e))return{data:{user:null,session:null},error:e};throw e}}async verifyOtp(e){try{let t,n;`options`in e&&(t=e.options?.redirectTo,n=e.options?.captchaToken);let{data:r,error:i}=await U(this.fetch,`POST`,`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},e),{gotrue_meta_security:{captcha_token:n}}),redirectTo:t,xform:Ol});if(i)throw i;if(!r)throw Error(`An error occurred on token verification.`);let a=r.session,o=r.user;return a?.access_token&&(await this._saveSession(a),await this._notifyAllSubscribers(e.type==`recovery`?`PASSWORD_RECOVERY`:`SIGNED_IN`,a)),{data:{user:o,session:a},error:null}}catch(e){if(V(e))return{data:{user:null,session:null},error:e};throw e}}async signInWithSSO(e){try{let t=null,n=null;return this.flowType===`pkce`&&([t,n]=await ml(this.storage,this.storageKey)),await U(this.fetch,`POST`,`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},`providerId`in e?{provider_id:e.providerId}:null),`domain`in e?{domain:e.domain}:null),{redirect_to:e.options?.redirectTo??void 0}),e?.options?.captchaToken?{gotrue_meta_security:{captcha_token:e.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:t,code_challenge_method:n}),headers:this.headers,xform:jl})}catch(e){if(V(e))return{data:null,error:e};throw e}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async e=>{let{data:{session:t},error:n}=e;if(n)throw n;if(!t)throw new Ec;let{error:r}=await U(this.fetch,`GET`,`${this.url}/reauthenticate`,{headers:this.headers,jwt:t.access_token});return{data:{user:null,session:null},error:r}})}catch(e){if(V(e))return{data:{user:null,session:null},error:e};throw e}}async resend(e){try{let t=`${this.url}/resend`;if(`email`in e){let{email:n,type:r,options:i}=e,{error:a}=await U(this.fetch,`POST`,t,{headers:this.headers,body:{email:n,type:r,gotrue_meta_security:{captcha_token:i?.captchaToken}},redirectTo:i?.emailRedirectTo});return{data:{user:null,session:null},error:a}}if(`phone`in e){let{phone:n,type:r,options:i}=e,{data:a,error:o}=await U(this.fetch,`POST`,t,{headers:this.headers,body:{phone:n,type:r,gotrue_meta_security:{captcha_token:i?.captchaToken}}});return{data:{user:null,session:null,messageId:a?.message_id},error:o}}throw new kc(`You must provide either an email or phone number and a type`)}catch(e){if(V(e))return{data:{user:null,session:null},error:e};throw e}}async getSession(){return await this.initializePromise,await this._acquireLock(-1,async()=>this._useSession(async e=>e))}async _acquireLock(e,t){this._debug(`#_acquireLock`,`begin`,e);try{if(this.lockAcquired){let e=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),n=(async()=>(await e,await t()))();return this.pendingInLock.push((async()=>{try{await n}catch{}})()),n}return await this.lock(`lock:${this.storageKey}`,e,async()=>{this._debug(`#_acquireLock`,`lock acquired for storage key`,this.storageKey);try{this.lockAcquired=!0;let e=t();for(this.pendingInLock.push((async()=>{try{await e}catch{}})()),await e;this.pendingInLock.length;){let e=[...this.pendingInLock];await Promise.all(e),this.pendingInLock.splice(0,e.length)}return await e}finally{this._debug(`#_acquireLock`,`lock released for storage key`,this.storageKey),this.lockAcquired=!1}})}finally{this._debug(`#_acquireLock`,`end`)}}async _useSession(e){this._debug(`#_useSession`,`begin`);try{return await e(await this.__loadSession())}finally{this._debug(`#_useSession`,`end`)}}async __loadSession(){this._debug(`#__loadSession()`,`begin`),this.lockAcquired||this._debug(`#__loadSession()`,`used outside of an acquired lock!`,Error().stack);try{let e=null,t=await il(this.storage,this.storageKey);if(this._debug(`#getSession()`,`session from storage`,t),t!==null&&(this._isValidSession(t)?e=t:(this._debug(`#getSession()`,`session from storage is not val
31id`),await this._removeSession())),!e)return{data:{session:null},error:null};let n=e.expires_at?e.expires_at*1e3-Date.now()<mc:!1;if(this._debug(`#__loadSession()`,`session has${n?``:` not`} expired`,`expires_at`,e.expires_at),!n){if(this.userStorage){let t=await il(this.userStorage,this.storageKey+`-user`);t?.user?e.user=t.user:e.user=bl()}if(this.storage.isServer&&e.user){let t=this.suppressGetSessionWarning;e=new Proxy(e,{get:(e,n,r)=>(!t&&n===`user`&&(console.warn(`Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server.`),t=!0,this.suppressGetSessionWarning=!0),Reflect.get(e,n,r))})}return{data:{session:e},error:null}}let{session:r,error:i}=await this._callRefreshToken(e.refresh_token);return i?{data:{session:null},error:i}:{data:{session:r},error:null}}finally{this._debug(`#__loadSession()`,`end`)}}async getUser(e){return e?await this._getUser(e):(await this.initializePromise,await this._acquireLock(-1,async()=>await this._getUser()))}async _getUser(e){try{return e?await U(this.fetch,`GET`,`${this.url}/user`,{headers:this.headers,jwt:e,xform:Al}):await this._useSession(async e=>{let{data:t,error:n}=e;if(n)throw n;return!t.session?.access_token&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new Ec}:await U(this.fetch,`GET`,`${this.url}/user`,{headers:this.headers,jwt:t.session?.access_token??void 0,xform:Al})})}catch(e){if(V(e))return Dc(e)&&(await this._removeSession(),await al(this.storage,`${this.storageKey}-code-verifier`)),{data:{user:null},error:e};throw e}}async updateUser(e,t={}){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._updateUser(e,t))}async _updateUser(e,t={}){try{return await this._useSession(async n=>{let{data:r,error:i}=n;if(i)throw i;if(!r.session)throw new Ec;let a=r.session,o=null,s=null;this.flowType===`pkce`&&e.email!=null&&([o,s]=await ml(this.storage,this.storageKey));let{data:c,error:l}=await U(this.fetch,`PUT`,`${this.url}/user`,{headers:this.headers,redirectTo:t?.emailRedirectTo,body:Object.assign(Object.assign({},e),{code_challenge:o,code_challenge_method:s}),jwt:a.access_token,xform:Al});if(l)throw l;return a.user=c.user,await this._saveSession(a),await this._notifyAllSubscribers(`USER_UPDATED`,a),{data:{user:a.user},error:null}})}catch(e){if(V(e))return{data:{user:null},error:e};throw e}}async setSession(e){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._setSession(e))}async _setSession(e){try{if(!e.access_token||!e.refresh_token)throw new Ec;let t=Date.now()/1e3,n=t,r=!0,i=null,{payload:a}=sl(e.access_token);if(a.exp&&(n=a.exp,r=n<=t),r){let{session:t,error:n}=await this._callRefreshToken(e.refresh_token);if(n)return{data:{user:null,session:null},error:n};if(!t)return{data:{user:null,session:null},error:null};i=t}else{let{data:r,error:a}=await this._getUser(e.access_token);if(a)throw a;i={access_token:e.access_token,refresh_token:e.refresh_token,user:r.user,token_type:`bearer`,expires_in:n-t,expires_at:n},await this._saveSession(i),await this._notifyAllSubscribers(`SIGNED_IN`,i)}return{data:{user:i.user,session:i},error:null}}catch(e){if(V(e))return{data:{session:null,user:null},error:e};throw e}}async refreshSession(e){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._refreshSession(e))}async _refreshSession(e){try{return await this._useSession(async t=>{if(!e){let{data:n,error:r}=t;if(r)throw r;e=n.session??void 0}if(!e?.refresh_token)throw new Ec;let{session:n,error:r}=await this._callRefreshToken(e.refresh_token);return r?{data:{user:null,session:null},error:r}:n?{data:{user:n.user,session:n},error:null}:{data:{user:null,session:null},error:null}})}catch(e){if(V(e))return{data:{user:null,session:null},error:e};throw e}}async _getSessionFromURL(e,t){try{if(!Zc())throw new Ac(`No browser detected.`);if(e.error||e.error_description||e.error_code)throw new Ac(e.error_description||`Error in URL with unspecified error_description`,{error:e.error||`unspecified_error`,code:e.error_code||`unspecified_code`});switch(t){case`implicit`:if(this.flowType===`pkce`)throw new Mc(`Not a valid PKCE flow url.`);break;case`pkce`:if(this.flowType===`implicit`)throw new Ac(`Not a valid implicit grant flow url.`)}if(t===`pkce`){if(this._debug(`#_initialize()`,`begin`,`is PKCE flow`,!0),!e.code)throw new Mc(`No code detected.`);let{data:t,error:n}=await this._exchangeCodeForSession(e.code);
31if(n)throw n;let r=new URL(window.location.href);return r.searchParams.delete(`code`),window.history.replaceState(window.history.state,``,r.toString()),{data:{session:t.session,redirectType:null},error:null}}let{provider_token:n,provider_refresh_token:r,access_token:i,refresh_token:a,expires_in:o,expires_at:s,token_type:c}=e;if(!i||!o||!a||!c)throw new Ac(`No session defined in URL`);let l=Math.round(Date.now()/1e3),u=parseInt(o),d=l+u;s&&(d=parseInt(s));let f=d-l;f*1e3<=3e4&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${f}s, should have been closer to ${u}s`);let p=d-u;l-p>=120?console.warn(`@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale`,p,d,l):l-p<0&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew`,p,d,l);let{data:m,error:h}=await this._getUser(i);if(h)throw h;let g={provider_token:n,provider_refresh_token:r,access_token:i,expires_in:u,expires_at:d,refresh_token:a,token_type:c,user:m.user};return window.location.hash=``,this._debug(`#_getSessionFromURL()`,`clearing window.location.hash`),{data:{session:g,redirectType:e.type},error:null}}catch(e){if(V(e))return{data:{session:null,redirectType:null},error:e};throw e}}_isImplicitGrantCallback(e){return!!(e.access_token||e.error_description)}async _isPKCECallback(e){let t=await il(this.storage,`${this.storageKey}-code-verifier`);return!!(e.code&&t)}async signOut(e={scope:`global`}){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._signOut(e))}async _signOut({scope:e}={scope:`global`}){return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)return{error:r};let i=n.session?.access_token;if(i){let{error:t}=await this.admin.signOut(i,e);if(t&&(!Cc(t)||t.status!==404&&t.status!==401&&t.status!==403))return{error:t}}return e!==`others`&&(await this._removeSession(),await al(this.storage,`${this.storageKey}-code-verifier`)),{error:null}})}onAuthStateChange(e){let t=Xc(),n={id:t,callback:e,unsubscribe:()=>{this._debug(`#unsubscribe()`,`state change callback with id removed`,t),this.stateChangeEmitters.delete(t)}};return this._debug(`#onAuthStateChange()`,`registered callback with id`,t),this.stateChangeEmitters.set(t,n),(async()=>{await this.initializePromise,await this._acquireLock(-1,async()=>{this._emitInitialSession(t)})})(),{data:{subscription:n}}}async _emitInitialSession(e){return await this._useSession(async t=>{try{let{data:{session:n},error:r}=t;if(r)throw r;await this.stateChangeEmitters.get(e)?.callback(`INITIAL_SESSION`,n),this._debug(`INITIAL_SESSION`,`callback id`,e,`session`,n)}catch(t){await this.stateChangeEmitters.get(e)?.callback(`INITIAL_SESSION`,null),this._debug(`INITIAL_SESSION`,`callback id`,e,`error`,t),console.error(t)}})}async resetPasswordForEmail(e,t={}){let n=null,r=null;this.flowType===`pkce`&&([n,r]=await ml(this.storage,this.storageKey,!0));try{return await U(this.fetch,`POST`,`${this.url}/recover`,{body:{email:e,code_challenge:n,code_challenge_method:r,gotrue_meta_security:{captcha_token:t.captchaToken}},headers:this.headers,redirectTo:t.redirectTo})}catch(e){if(V(e))return{data:null,error:e};throw e}}async getUserIdentities(){try{let{data:e,error:t}=await this.getUser();if(t)throw t;return{data:{identities:e.user.identities??[]},error:null}}catch(e){if(V(e))return{data:null,error:e};throw e}}async linkIdentity(e){try{let{data:t,error:n}=await this._useSession(async t=>{let{data:n,error:r}=t;if(r)throw r;let i=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,e.provider,{redirectTo:e.options?.redirectTo,scopes:e.options?.scopes,queryParams:e.options?.queryParams,skipBrowserRedirect:!0});return await U(this.fetch,`GET`,i,{headers:this.headers,jwt:n.session?.access_token??void 0})});if(n)throw n;return Zc()&&!e.options?.skipBrowserRedirect&&window.location.assign(t?.url),{data:{provider:e.provider,url:t?.url},error:null}}catch(t){if(V(t))return{data:{provider:e.provider,url:null},error:t};throw t}}async unlinkIdentity(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)throw r;return await U(this.fetch,`DELETE`,`${this.url}/user/identities/${e.identity_id}`,{headers:this.headers,jwt:n.session?.access_token??void 0})})}catch(e){if(V(e))return{data:null,error:e};throw e}}async _refreshAccessToken(e){let t=`#_refreshAccessToken(${e.substring(0,5)}...)`;this._debug(t,`begin`);try{let n=Date.now();return await ll(async n=>(n>0&&await cl(200*2**(n-1)),this._debug(t,`refreshing attempt`,n),await U(this.fetch,`POST`,`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:e},headers:this.headers,xform:Ol})),(e,t)=>{let r=200*2**e;return t&&Pc(t)&&Date.now()+r-n<3e4})}catch(e){if(this._debug(t,`error`,e),V(e))return{data:{session:null,user:null},error:e};throw e}finally{this._debug(t,`end`)}}_isValidSession(e){return typeof e==`object`&&!!e&&`access_token`in e&&`refresh_token`in e&&`expires_at`in e}async _handleProviderSignIn(e,t){let n=await this._getUrlForProvider(`${this.url}/authorize`,e,{redirectTo:t.redirectTo,scopes:t.scopes,queryParams:t.queryParams});return this._debug(`#_handleProviderSignIn()`,`provider`,e,`options`,t,`url`,n),Zc()&&!t.skipBrowserRedirect&&window.location.assign(n),{data:{provider:e,url:n},error:null}}async _recoverAndRefresh(){let e=`#_recoverAndRefresh()`;this._debug(e,`begin`);try{let t=await il(this.storage,this.storageKey);if(t&&this.userStorage){let e=await il(this.userStorage,this.storageKey+`-user`);!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!e&&(e={user:t.user},await rl(this.userStorage,this.storageKey+`-user`,e)),t.user=e?.user??bl()}else if(t&&!t.user&&!t.user){let e=await il(this.storage,this.storageKey+`-user`);e&&e?.user?(t.user=e.user,await al(this.storage,this.storageKey+`-user`),await rl(this.storage,this.storageKey,t)):t.user=bl()}if(this._debug(e,`session from storage`,t),!this._isValidSession(t)){this._debug(e,`session is not val
31id`),t!==null&&await this._removeSession();return}let n=(t.expires_at??1/0)*1e3-Date.now()<mc;if(this._debug(e,`session has${n?``:` not`} expired with margin of ${mc}s`),n){if(this.autoRefreshToken&&t.refresh_token){let{error:n}=await this._callRefreshToken(t.refresh_token);n&&(console.error(n),Pc(n)||(this._debug(e,`refresh failed with a non-retryable error, removing the session`,n),await this._removeSession()))}}else if(t.user&&t.user.__isUserNotAvailableProxy===!0)try{let{data:n,error:r}=await this._getUser(t.access_token);!r&&n?.user?(t.user=n.user,await this._saveSession(t),await this._notifyAllSubscribers(`SIGNED_IN`,t)):this._debug(e,`could not get user data, skipping SIGNED_IN notification`)}catch(t){console.error(`Error getting user data:`,t),this._debug(e,`error getting user data, skipping SIGNED_IN notification`,t)}else await this._notifyAllSubscribers(`SIGNED_IN`,t)}catch(t){this._debug(e,`error`,t),console.error(t);return}finally{this._debug(e,`end`)}}async _callRefreshToken(e){var t,n;if(!e)throw new Ec;if(this.refreshingDeferred)return this.refreshingDeferred.promise;let r=`#_callRefreshToken(${e.substring(0,5)}...)`;this._debug(r,`begin`);try{this.refreshingDeferred=new ol;let{data:t,error:n}=await this._refreshAccessToken(e);if(n)throw n;if(!t.session)throw new Ec;await this._saveSession(t.session),await this._notifyAllSubscribers(`TOKEN_REFRESHED`,t.session);let r={session:t.session,error:null};return this.refreshingDeferred.resolve(r),r}catch(e){if(this._debug(r,`error`,e),V(e)){let n={session:null,error:e};return Pc(e)||await this._removeSession(),(t=this.refreshingDeferred)==null||t.resolve(n),n}throw(n=this.refreshingDeferred)==null||n.reject(e),e}finally{this.refreshingDeferred=null,this._debug(r,`end`)}}async _notifyAllSubscribers(e,t,n=!0){let r=`#_notifyAllSubscribers(${e})`;this._debug(r,`begin`,t,`broadcast = ${n}`);try{this.broadcastChannel&&n&&this.broadcastChannel.postMessage({event:e,session:t});let r=[],i=Array.from(this.stateChangeEmitters.values()).map(async n=>{try{await n.callback(e,t)}catch(e){r.push(e)}});if(await Promise.all(i),r.length>0){for(let e=0;e<r.length;e+=1)console.error(r[e]);throw r[0]}}finally{this._debug(r,`end`)}}async _saveSession(e){this._debug(`#_saveSession()`,e),this.suppressGetSessionWarning=!0;let t=Object.assign({},e),n=t.user&&t.user.__isUserNotAvailableProxy===!0;if(this.userStorage){!n&&t.user&&await rl(this.userStorage,this.storageKey+`-user`,{user:t.user});let e=Object.assign({},t);delete e.user;let r=xl(e);await rl(this.storage,this.storageKey,r)}else{let e=xl(t);await rl(this.storage,this.storageKey,e)}}async _removeSession(){this._debug(`#_removeSession()`),await al(this.storage,this.storageKey),await al(this.storage,this.storageKey+`-code-verifier`),await al(this.storage,this.storageKey+`-user`),this.userStorage&&await al(this.userStorage,this.storageKey+`-user`),await this._notifyAllSubscribers(`SIGNED_OUT`,null)}_removeVisibilityChangedCallback(){this._debug(`#_removeVisibilityChangedCallback()`);let e=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{e&&Zc()&&window!=null&&window.removeEventListener&&window.removeEventListener(`visibilitychange`,e)}catch(e){console.error(`removing visibilitychange callback failed`,e)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug(`#_startAutoRefresh()`);let e=setInterval(()=>this._autoRefreshTokenTick(),pc);this.autoRefreshTicker=e,e&&typeof e==`object`&&typeof e.unref==`function`?e.unref():typeof Deno<`u`&&typeof Deno.unrefTimer==`function`&&Deno.unrefTimer(e),setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0)}async _stopAutoRefresh(){this._debug(`#_stopAutoRefresh()`);let e=this.autoRefreshTicker;this.autoRefreshTicker=null,e&&clearInterval(e)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug(`#_autoRefreshTokenTick()`,`begin`);try{await this._acquireLock(0,async()=>{try{let e=Date.now();try{return await this._useSession(async t=>{let{data:{session:n}}=t;if(!n||!n.refresh_token||!n.expires_at){this._debug(`#_autoRefreshTokenTick()`,`no session`);return}let r=Math.floor((n.expires_at*1e3-e)/pc);this._debug(`#_autoRefreshTokenTick()`,`access token expires in ${r} ticks, a tick lasts ${pc}ms, refresh threshold is 3 ticks`),r<=3&&await this._callRefreshToken(n.refresh_token)})}catch(e){console.error(`Auto refresh tick failed with error. This is likely a transient error.`,e)}}finally{this._debug(`#_autoRefreshTokenTick()`,`end`)}})}catch(e){if(e.isAcquireTimeout||e instanceof Vl)this._debug(`auto refresh token tick lock not available`);else throw e}}async _handleVisibilityChange(){if(this._debug(`#_handleVisibilityChange()`),!Zc()||!(window!=null&&window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>await this._onVisibilityChanged(!1),window==null||window.addEventListener(`visibilitychange`,this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(e){console.error(`_handleVisibilityChange`,e)}}async _onVisibilityChanged(e){let t=`#_onVisibilityChanged(${e})`;this._debug(t,`visibilityState`,document.visibilityState),document.visibilityState===`visible`?(this.autoRefreshToken&&this._startAutoRefresh(),e||(
31await this.initializePromise,await this._acquireLock(-1,async()=>{if(document.visibilityState!==`visible`){this._debug(t,`acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting`);return}await this._recoverAndRefresh()}))):document.visibilityState===`hidden`&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(e,t,n){let r=[`provider=${encodeURIComponent(t)}`];if(n?.redirectTo&&r.push(`redirect_to=${encodeURIComponent(n.redirectTo)}`),n?.scopes&&r.push(`scopes=${encodeURIComponent(n.scopes)}`),this.flowType===`pkce`){let[e,t]=await ml(this.storage,this.storageKey),n=new URLSearchParams({code_challenge:`${encodeURIComponent(e)}`,code_challenge_method:`${encodeURIComponent(t)}`});r.push(n.toString())}if(n?.queryParams){let e=new URLSearchParams(n.queryParams);r.push(e.toString())}return n?.skipBrowserRedirect&&r.push(`skip_http_redirect=${n.skipBrowserRedirect}`),`${e}?${r.join(`&`)}`}async _unenroll(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;return r?{data:null,error:r}:await U(this.fetch,`DELETE`,`${this.url}/factors/${e.factorId}`,{headers:this.headers,jwt:n?.session?.access_token})})}catch(e){if(V(e))return{data:null,error:e};throw e}}async _enroll(e){try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)return{data:null,error:r};let i=Object.assign({friendly_name:e.friendlyName,factor_type:e.factorType},e.factorType===`phone`?{phone:e.phone}:{issuer:e.issuer}),{data:a,error:o}=await U(this.fetch,`POST`,`${this.url}/factors`,{body:i,headers:this.headers,jwt:n?.session?.access_token});return o?{data:null,error:o}:(e.factorType===`totp`&&a?.totp?.qr_code&&(a.totp.qr_code=`data:image/svg+xml;utf-8,${a.totp.qr_code}`),{data:a,error:null})})}catch(e){if(V(e))return{data:null,error:e};throw e}}async _verify(e){return this._acquireLock(-1,async()=>{try{return await this._useSession(async t=>{let{data:n,error:r}=t;if(r)return{data:null,error:r};let{data:i,error:a}=await U(this.fetch,`POST`,`${this.url}/factors/${e.factorId}/verify`,{body:{code:e.code,challenge_id:e.challengeId},headers:this.headers,jwt:n?.session?.access_token});return a?{data:null,error:a}:(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+i.expires_in},i)),await this._notifyAllSubscribers(`MFA_CHALLENGE_VERIFIED`,i),{data:i,error:a})})}catch(e){if(V(e))return{data:null,error:e};throw e}})}async _challenge(e){return this._acquireLock(-1,async()=>{try{return await this._useSession(async t=>{let{data:n,error:r}=t;return r?{data:null,error:r}:await U(this.fetch,`POST`,`${this.url}/factors/${e.factorId}/challenge`,{body:{channel:e.channel},headers:this.headers,jwt:n?.session?.access_token})})}catch(e){if(V(e))return{data:null,error:e};throw e}})}async _challengeAndVerify(e){let{data:t,error:n}=await this._challenge({factorId:e.factorId});return n?{data:null,error:n}:await this._verify({factorId:e.factorId,challengeId:t.id,code:e.code})}async _listFactors(){let{data:{user:e},error:t}=await this.getUser();if(t)return{data:null,error:t};let n=e?.factors||[];return{data:{all:n,totp:n.filter(e=>e.factor_type===`totp`&&e.status===`verified`),phone:n.filter(e=>e.factor_type===`phone`&&e.status===`verified`)},error:null}}async _getAuthenticatorAssuranceLevel(){return this._acquireLock(-1,async()=>await this._useSession(async e=>{let{data:{session:t},error:n}=e;if(n)return{data:null,error:n};if(!t)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};let{payload:r}=sl(t.access_token),i=null;r.aal&&(i=r.aal);let a=i;(t.user.factors?.filter(e=>e.status===`verified`)??[]).length>0&&(a=`aal2`);let o=r.amr||[];return{data:{currentLevel:i,nextLevel:a,currentAuthenticationMethods:o},error:null}}))}async fetchJwk(e,t={keys:[]}){let n=t.keys.find(t=>t.kid===e);if(n)return n;let r=Date.now();if(n=this.jwks.keys.find(t=>t.kid===e),n&&this.jwks_cached_at+6e5>r)return n;let{data:i,error:a}=await U(this.fetch,`GET`,`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(a)throw a;return!i.keys||i.keys.length===0||(this.jwks=i,this.jwks_cached_at=r,n=i.keys.find(t=>t.kid===e),!n)?null:n}async getClaims(e,t={}){try{let n=e;if(!n){let{data:e,error:t}
31=await this.getSession();if(t||!e.session)return{data:null,error:t};n=e.session.access_token}let{header:r,payload:i,signature:a,raw:{header:o,payload:s}}=sl(n);t?.allowExpired||_l(i.exp);let c=!r.alg||r.alg.startsWith(`HS`)||!r.kid||!(`crypto`in globalThis&&`subtle`in globalThis.crypto)?null:await this.fetchJwk(r.kid,t?.keys?{keys:t.keys}:t?.jwks);if(!c){let{error:e}=await this.getUser(n);if(e)throw e;return{data:{claims:i,header:r,signature:a},error:null}}let l=vl(r.alg),u=await crypto.subtle.importKey(`jwk`,c,l,!0,[`verify`]);if(!await crypto.subtle.verify(l,u,a,qc(`${o}.${s}`)))throw new Ic(`Invalid JWT signature`);return{data:{claims:i,header:r,signature:a},error:null}}catch(e){if(V(e))return{data:null,error:e};throw e}}};ql.nextInstanceID=0;var Jl=ql,Yl=class extends Jl{constructor(e){super(e)}},Xl=function(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})},Zl=class{constructor(e,t,n){this.supabaseUrl=e,this.supabaseKey=t;let r=dc(e);if(!t)throw Error(`supabaseKey is required.`);this.realtimeUrl=new URL(`realtime/v1`,r),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace(`http`,`ws`),this.authUrl=new URL(`auth/v1`,r),this.storageUrl=new URL(`storage/v1`,r),this.functionsUrl=new URL(`functions/v1`,r);let i=`sb-${r.hostname.split(`.`)[0]}-auth-token`,a={db:tc,realtime:rc,auth:Object.assign(Object.assign({},nc),{storageKey:i}),global:ec},o=uc(n??{},a);this.storageKey=o.auth.storageKey??``,this.headers=o.global.headers??{},o.accessToken?(this.accessToken=o.accessToken,this.auth=new Proxy({},{get:(e,t)=>{throw Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(t)} is not possible`)}})):this.auth=this._initSupabaseAuthClient(o.auth??{},this.headers,o.global.fetch),this.fetch=sc(t,this._getAccessToken.bind(this),o.global.fetch),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers,accessToken:this._getAccessToken.bind(this)},o.realtime)),this.rest=new Vo(new URL(`rest/v1`,r).href,{headers:this.headers,schema:o.db.schema,fetch:this.fetch}),this.storage=new Zs(this.storageUrl.href,this.headers,this.fetch,n?.storage),o.accessToken||this._listenForAuthEvents()}get functions(){return new Eo(this.functionsUrl.href,{headers:this.headers,customFetch:this.fetch})}from(e){return this.rest.from(e)}schema(e){return this.rest.schema(e)}rpc(e,t={},n={}){return this.rest.rpc(e,t,n)}channel(e,t={config:{}}){return this.realtime.channel(e,t)}getChannels(){return this.realtime.getChannels()}removeChannel(e){return this.realtime.removeChannel(e)}removeAllChannels(){return this.realtime.removeAllChannels()}_getAccessToken(){return Xl(this,void 0,void 0,function*(){if(this.accessToken)return yield this.accessToken();let{data:e}=yield this.auth.getSession();return e.session?.access_token??this.supabaseKey})}_initSupabaseAuthClient({autoRefreshToken:e,persistSession:t,detectSessionInUrl:n,storage:r,userStorage:i,storageKey:a,flowType:o,lock:s,debug:c},l,u){let d={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new Yl({url:this.authUrl.href,headers:Object.assign(Object.assign({},d),l),storageKey:a,autoRefreshToken:e,persistSession:t,detectSessionInUrl:n,storage:r,userStorage:i,flowType:o,lock:s,debug:c,fetch:u,hasCustomAuthorizationHeader:Object.keys(this.headers).some(e=>e.toLowerCase()===`authorization`)})}_initRealtimeClient(e){return new ws(this.realtimeUrl.href,Object.assign(Object.assign({},e),{params:Object.assign({apikey:this.supabaseKey},e?.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((e,t)=>{this._handleTokenChanged(e,`CLIENT`,t?.access_token)})}_handleTokenChanged(e,t,n){(e===`TOKEN_REFRESHED`||e===`SIGNED_IN`)&&this.changedAccessToken!==n?this.changedAccessToken=n:e===`SIGNED_OUT`&&(this.realtime.setAuth(),t==`STORAGE`&&this.auth.signOut(),this.changedAccessToken=void 0)}},Ql=(e,t,n)=>new Zl(e,t,n);function $l(){if(typeof window<`u`||typeof process>`u`)return!1;let e=process.version;if(e==null)return!1;let t=e.match(/^v(\d+)\./);return t?parseInt(t[1],10)<=18:!1}$l()&&console.warn(`â ï¸ Node.js 18 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to N
31ode.js 20 or later. For more information, visit: https://github.com/orgs/supabase/discussions/37217`);var eu=Ql(`https://fbgo15dbzc8jkilpiaae.helloreaddy.com/`,`sb_publishable_hIc05gyF4QDdIb9JEuixeuWe7RqqpZi1`);async function tu(e){try{let{error:t}=await eu.from(`intolec_clicks`).insert({source:e.source,button_label:e.buttonLabel,url:e.url,user_agent:navigator.userAgent,referrer:document.referrer||null});t?console.warn(`Click tracking error:`,t.message):console.log(`Click tracked:`,e.source)}catch(e){console.warn(`Click tracking failed:`,e)}}function nu(){let e=Br(),t=(0,E.useCallback)((t,n,r)=>{let i=r?`/contact?service=${r}`:`/contact`;tu({source:t,buttonLabel:n,url:i}),fa(`quote_cta_click`,{source:t,button_label:n,destination:i,service_type:r||`general`}),e(i)},[e]);return{activeModal:null,openQuote:()=>t(`quote-button`,`Get Quote`),openSolar:()=>t(`solar-button`,`Solar Enquiry`,`solar`),openEV:()=>t(`ev-button`,`EV Enquiry`,`ev`),closeModal:()=>{}}}function ru(){let{openQuote:e,openSolar:t,openEV:n}=nu();return ca({title:`Electrician Leamington Spa | Intolec Ltd â EV Charger, Solar, EICR`,description:`Intolec Ltd â trusted electricians in Leamington Spa. Electrical installations, EV charger installation, solar panels, EICR, consumer unit upgrades & emergency electrician Leamington Spa. Call 01926 768080.`,jsonLd:{"@context":`https://schema.org`,"@type":[`LocalBusiness`,`Electrician`],name:`Intolec Ltd`,description:`Trusted electricians in Leamington Spa for installs, repairs, testing and upgrades. Renewable energy specialists installing solar panels, EV chargers and battery systems.`,url:`https://www.electriciansinleamingtonspa.co.uk`,telephone:`+441926768080`,image:`https://static.readdy.ai/image/4a891bf01ca77aa59d4e684a3f5f885b/b89155a3a628b11dd6196f25facf2ad9.png`,address:{"@type":`PostalAddress`,streetAddress:`Warwick Business Centre, Hawkes Drive, Heathcote Ind Estate`,addressLocality:`Warwick`,addressRegion:`Warwickshire`,postalCode:`CV34 6LX`,addressCountry:`GB`},geo:{"@type":`GeoCoordinates`,latitude:52.2919,longitude:-1.5369},openingHoursSpecification:[{"@type":`OpeningHoursSpecification`,dayOfWeek:[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`],opens:`08:00`,closes:`17:00`}],aggregateRating:{"@type":`AggregateRating`,ratingValue:`5`,reviewCount:`50`,bestRating:`5`},hasOfferCatalog:{"@type":`OfferCatalog`,name:`Electrical Services`,itemListElement:[{"@type":`Offer`,itemOffered:{"@type":`Service`,name:`EV Charger Installation Leamington Spa`}},{"@type":`Offer`,itemOffered:{"@type":`Service`,name:`Solar Panel Installation Leamington Spa`}},{"@type":`Offer`,itemOffered:{"@type":`Service`,name:`EICR Leamington Spa`}},{"@type":`Offer`,itemOffered:{"@type":`Service`,name:`Consumer Unit Upgrade Leamington Spa`}},{"@type":`Offer`,itemOffered:{"@type":`Service`,name:`Emergency Electrician Leamington Spa`}}]},review:[{"@type":`Review`,author:{"@type":`Person`,name:`John Carson`},reviewRating:{"@type":`Rating`,ratingValue:`5`,bestRating:`5`},reviewBody:`Absolutely brilliant service from Intolec. They installed our EV charger and sorted out some additional sockets in the garage.`},{"@type":`Review`,author:{"@type":`Person`,name:`Jenny Smedley`},reviewRating:{"@type":`Rating`,ratingValue:`5`,bestRating:`5`},reviewBody:`Used Intolec for a full consumer unit upgrade and new lighting throughout the house. Fantastic job.`}]}}),(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(N,{}),(0,M.jsx)(da,{onQuote:e,onSolar:t,onEV:n}),(0,M.jsxs)(`main`,{children:[(0,M.jsx)(Sa,{onQuote:e,onSolar:t,onEV:n}),(0,M.jsx)(Ta,{}),(0,M.jsx)(ka,{onQuote:e,onSolar:t}),(0,M.jsx)(Za,{onQuote:e}),(0,M.jsx)(Fa,{}),(0,M.jsx)(Ra,{}),(0,M.jsx)(Za,{onQuote:e}),(0,M.jsx)(Va,{}),(0,M.jsx)(Wa,{}),(0,M.jsx)(Ka,{})]}),(0,M.jsx)(Ya,{onQuote:e}),(0,M.jsx)(Xa,{onQuote:e}),(0,M.jsx)(I,{onQuote:e,onSolar:t})]})}function iu({onQuote:e}){return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(F,{onQuote:e,activePage:`services`}),(0,M.jsxs)(`div`,{className:`relative pt-20 mt-10 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`absolute inset-0 bg-[#14532D]`}),(0,M.jsx)(`div`,{className:`absolute inset-0 opacity-10`,style:{backgroundImage:`repeating-linear-gradient(45deg, #22C55E 0, #22C55E 1px, transparent 0, transparent 50%)`,backgroundSize:`20px 20px`}}),(0,M.jsx)(`div`,{className:`relative z-10 max-w-7xl mx-auto px-4 md:px-6 py-16 md:py-20`,children:(0,M.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-10 lg:gap-14 items-center`,children:[(0,M.jsxs)(`div`,{className:`text-center lg:text-left`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#86EFAC] font-semibold text-xs uppercase tracking-widest mb-4`,children:`Intolec Ltd â NAPIT Registered`}),(0,M.jsxs)(`h1`,{className:`text-3xl md:text-5xl font-extrabold text-white mb-5 leading-tight`,children:[`Electrical Services `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`Leamington Spa`})]}),(0,M.jsxs)(`p`,{className:`text-[#86EFAC]/90 text-base md:text-lg max-w-2xl mx-auto lg:mx-0 leading-relaxed`,children:[`From consumer unit upgrades and rewires to solar panel installations and EV charger fitting â we cover everything electrical in Leamington Spa, Warwick, Kenilworth and across Warwickshire. `,(0,M.jsx)(`strong`,{className:`text-white`,children:`Searching for a qualified electrician near you?`}),` Call us for free advice and a no-obligation written quote.`]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center lg:justify-start gap-4 mt-8`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-7 py-3.5 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Call 01926 768080`]}),(0,M.jsxs)(`button`,{onClick:e,className:`inline-flex items-center gap-2 px-7 py-3.5 rounded-lg border-2 border-white text-white font-bold text-sm hover:bg-white/10 transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]}),(0,M.jsx)(`div`,{className:`w-full max-w-xl mx-auto lg:mx-0 lg:ml-auto`,children:(0,M.jsx)(ba,{})})]})}),(0,M.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 h-8 bg-white`,style:{clipPath:`ellipse(55% 100% at 50% 100%)`}})]})]})}var au=[{title:`Installation & Upgrades`,icon:`ri-plug-line`,slugs:[`electrical-installations-electrician-leamington-spa`,`rewiring-electrician-leamington-spa`,`consumer-unit-upgrades-electrician-leamington-spa`,`lighting-installation-electrician-leamington-spa`,`led-upgrades-electrician-leamington-spa`,`electric-shower-installations-electrician-leamington-spa`,`kitchen-electrics-electrician-leamington-spa`,`extra-sockets-and-lights-electrician-leamington-spa`,`light-fitting-replacements-electrician-leamington-spa`,`heating-control
31s-electrician-leamington-spa`]},{title:`Lighting & Security`,icon:`ri-lightbulb-flash-line`,slugs:[`outdoor-garden-lighting-electrician-leamington-spa`,`outdoor-security-lighting-electrician-leamington-spa`,`lighting-design-and-installation-electrician-leamington-spa`,`socket-and-switch-installation-electrician-leamington-spa`]},{title:`EV & Renewables`,icon:`ri-charging-pile-line`,slugs:[`ev-charger-installer-electrician-leamington-spa`,`ozev-registered-electrician-leamington-spa`,`solar-and-battery-storage-system-electrician-leamington-spa`,`battery-storage-systems-electrician-leamington-spa`]},{title:`Repairs & Maintenance`,icon:`ri-tools-line`,slugs:[`electrical-repairs-electrician-leamington-spa`,`testing-and-fault-finding-electrician-leamington-spa`,`tripping-circuits-electrician-leamington-spa`,`consumer-unit-upgrades-electrician-leamington-spa`,`lighting-repairs-electrician-leamington-spa`,`emergency-call-outs-electrician-leamington-spa`,`maintenance-contracts-electrician-leamington-spa`]},{title:`Safety & Compliance`,icon:`ri-shield-check-line`,slugs:[`eicrs-electrician-leamington-spa`,`landlord-certificates-electrician-leamington-spa`,`smoke-and-heat-alarms-electrician-leamington-spa`,`surge-protection-electrician-leamington-spa`,`earthing-and-bonding-electrician-leamington-spa`,`rcd-testing-electrician-leamington-spa`]}],W=[{slug:`electrical-installations-electrician-leamington-spa`,title:`Electrical Installations`,tagline:`Full electrical installations for new builds, extensions and refurbishments`,icon:`ri-plug-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/65a18705-1ac9-4109-a25e-70f54ab469d1_Electrical-Installations.jpeg?v=a8f9d0253833a2449759ca90fb85c480`,intro:`Whether you're building a new home, extending your property or undertaking a full refurbishment, we provide complete electrical installations from first fix through to final connection. All work is carried out to BS 7671 18th Edition wiring regulations with full certification on completion.`,benefits:[{icon:`ri-home-4-line`,title:`New Builds & Extensions`,desc:`Full first and second fix electrical installations for new build properties and extensions of all sizes.`},{icon:`ri-file-shield-2-line`,title:`BS 7671 Compliant`,desc:`All installations carried out to the latest 18th Edition wiring regulations with full certification.`},{icon:`ri-team-line`,title:`Works with Your Builder`,desc:`We coordinate with your builder, architect and other trades to keep your project on schedule.`},{icon:`ri-award-line`,title:`NAPIT Registered`,desc:`All notifiable work registered with building control via our NAPIT membership.`}],whatWeOffer:[`First and second fix electrical installations`,`New build wiring from foundations to completion`,`Extension and loft conversion electrics`,`Full rewires for refurbishment projects`,`Consumer unit installation and circuit design`,`Electrical Installation Certificate on completion`],faqs:[{q:`Do you work on new build projects?`,a:`Yes. We work on new builds of all sizes, from single dwellings to small developments, coordinating with builders and other trades throughout.`},{q:`What is first and second fix?`,a:`First fix is the wiring installed before plastering â cables, back boxes and consumer unit. Second fix is the finishing work after plastering â sockets, switches, light fittings and final connections.`},{q:`How long does a full installation take?`,a:`It depends on the size of the project. A typical 3-bedroom house takes 3â5 days for first fix and 1â2 days for second fix.`},{q:`Do you provide a design service?`,a:`Yes. We can advise on circuit layouts, socket positions and lighting schemes to suit your project.`}],tags:[`Domestic`,`Commercial`,`New Build`]},{slug:`rewiring-electrician-leamington-spa`,title:`Rewiring`,tagline:`Full and partial rewires for older properties across Warwickshire`,icon:`ri-git-branch-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/973e5508-8982-4789-b8e4-fe520e000927_rewiring.jpg?v=4332311f1aef5fd046db515916f561d1`,intro:`If your property has old rubber or fabric-insulated wiring, aluminium wiring or simply hasn't been rewired in over 25 years, a full rewire is the safest and most cost-effective solution. We carry out full and partial rewires with minimal disruption and a full certificate on completion.`,benefits:[{icon:`ri-shield-check-line`,title:`Safety First`,desc:`Old wiring is a leading cause of house fires. A full rewire eliminates the risk from deteriorated insulation and outdated systems.`},{icon:`ri-home-4-line`,title:`Minimal Disruption`,desc:`We plan the rewire carefully to minimise disruption to your home and redecoration requirements.`},{icon:`ri-file-text-line`,title:`Full Certification`,desc:`Electrical Installation Certificate issued on completion, notified to building control via NAPIT.`},{icon:`ri-money-pound-circle-line`,title:`Adds Property Value`,desc:`A rewired property with a current certificate is more attractive to buyers and insurers.`}],whatWeOffer:[`Full property rewires`,`Partial rewires for specific areas or circuits`,`Like-for-like rewires maintaining existing layout`,`Upgraded rewires with additional circuits and s
31ockets`,`Consumer unit replacement included`,`Electrical Installation Certificate on completion`],faqs:[{q:`How do I know if my property needs rewiring?`,a:`Signs include rubber or fabric-insulated cables, round-pin sockets, a fuse box with rewirable fuses, or an EICR with C1/C2 observations on the wiring.`},{q:`How long does a rewire take?`,a:`A typical 3-bedroom house takes 5â7 days. We'll give you a detailed programme before starting.`},{q:`Do I need to move out?`,a:`Not necessarily. We can often work room by room to allow you to remain in the property, though some disruption is unavoidable.`},{q:`Will I need to redecorate?`,a:`Some making good is required where cables are chased into walls. We aim to minimise this and leave surfaces ready for decoration.`}],tags:[`Domestic`,`NAPIT Registered`]},{slug:`consumer-unit-upgrades-electrician-leamington-spa`,title:`Consumer Unit Upgrades`,tagline:`Modern fuse board replacements for safer, compliant homes`,icon:`ri-flashlight-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/53968d17-a115-46ba-b008-3c04037ce264_consumer-unit-upgrades.png?v=2627341357753aa0034a1faa6a297584`,intro:`Your consumer unit (fuse board) is the heart of your home's electrical system. Older units with rewirable fuses or early MCBs no longer meet current safety standards. We replace outdated boards with modern, fully compliant units fitted with RCDs and MCBs to protect your family and property.`,benefits:[{icon:`ri-shield-check-line`,title:`Full RCD Protection`,desc:`Modern units include residual current devices that cut power instantly in a fault, protecting against electric shock and fire.`},{icon:`ri-file-shield-2-line`,title:`BS 7671 Compliant`,desc:`All work carried out to the latest 18th Edition wiring regulations with a full electrical certificate issued.`},{icon:`ri-home-4-line`,title:`Ideal for Older Homes`,desc:`Essential upgrade for properties built before 2000 or those with original fuse wire boards.`},{icon:`ri-time-line`,title:`Completed in a Day`,desc:`Most consumer unit upgrades are completed within a single day with minimal disruption to your home.`}],whatWeOffer:[`Full consumer unit replacement with modern full RCBO board`,`Single or split load boards to suit your property`,`AFDD (Arc Fault Detection Device) upgrades available`,`Full visual inspection of existing circuits`,`Electrical Installation Certificate issued on completion`,`NAPIT registered â all work notified to building control`],faqs:[{q:`How long does a consumer unit upgrade take?`,a:`Most upgrades are completed within 4â8 hours. We'll need to isolate the power for the duration, so we recommend booking for a day when you can be at home.`},{q:`Do I need a consumer unit upgrade?`,a:`If your board has rewirable fuses, no RCD protection, or is over 25 years old, an upgrade is strongly recommended for safety and insurance purposes.`},{q:`Will my home insurance be affected?`,a:`Many insurers require a modern consumer unit with RCD protection. Upgrading can actually reduce your premium and ensures you're fully covered.`},{q:`Is the work notified to building control?`,a:`Yes. As NAPIT registered electricians, all consumer unit replacements are automatically notified to your local building control authority.`}],tags:[`Domestic`,`Commercial`,`NAPIT Registered`]},{slug:`lighting-installation-electrician-leamington-spa`,title:`Lighting Installation`,tagline:`Professional lighting installation for every room in your home`,icon:`ri-lightbulb-flash-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/039c8912-0e9f-4ae1-9c0f-c49100a3ba32_lighting-installation.jpg?v=edfd4acbe8c5e5bbac9b667117433be0`,intro:`From simple pendant replacements to full multi-room lighting schemes, we install all types of lighting safely and neatly. All work is carried out to current wiring regulations with certificates issued for notifiable work.`,benefits:[{icon:`ri-lightbulb-line`,title:`All Light Types`,desc:`Pendants, downlights, track lighting, wall lights, bathroom fittings â we install them all.`},{icon:`ri-paint-brush-line`,title:`Clean Finish`,desc:`Cables routed neatly through ceilings and walls for a professional, tidy result.`},{icon:`ri-remote-control-line`,title:`Dimmer Compatible`,desc:`We install LED-compatible dimmer switches for full control of your lighting levels.`},{icon:`ri-file-text-line`,title:`Certified Work`,desc:`All notifiable lighting work certified and registered with building control.`}],whatWeOffer:[`New lighting circuits and pendants`,`Recessed LED downlight installation`,`Wall light and picture light installation`,`Bathroom lighting (IP-rated)`,`Dimmer switch installation`,`Under-cabinet and feature lighting`],faqs:[{q:`Do I
31need a new circuit for additional lights?`,a:`Not always. We'll assess your existing circuits and advise whether a new circuit is needed.`},{q:`Can you install lights in a bathroom?`,a:`Yes. Bathroom lighting must use IP-rated fittings appropriate to the zone. All bathroom electrical work is notifiable under Part P.`},{q:`Do you supply light fittings?`,a:`We focus on the installation. You can supply your own fittings or we can advise on suitable options.`},{q:`How long does lighting installation take?`,a:`It depends on the number of fittings and complexity. A typical room takes 2â4 hours.`}],tags:[`Domestic`,`Commercial`]},{slug:`led-upgrades-electrician-leamington-spa`,title:`LED Upgrades`,tagline:`Switch to energy-efficient LED lighting and cut your electricity bills`,icon:`ri-sun-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/cc2e7105-ad3b-4d71-ba7d-560216ed040a_LED-Upgrades.jpeg?v=948381d9afe4f69ef82af25729527d3a`,intro:`Upgrading to LED lighting is one of the most cost-effective improvements you can make to your home or business. Modern LED fittings use up to 80% less energy than traditional bulbs, last far longer and produce better quality light. We handle the full upgrade from assessment to installation.`,benefits:[{icon:`ri-money-pound-circle-line`,title:`Reduce Energy Bills`,desc:`LED lighting uses up to 80% less energy than halogen or incandescent bulbs, saving significant money annually.`},{icon:`ri-timer-line`,title:`Longer Lifespan`,desc:`Quality LED fittings last 25,000â50,000 hours compared to 1,000â2,000 hours for traditional bulbs.`},{icon:`ri-leaf-line`,title:`Eco Friendly`,desc:`Lower energy consumption means a reduced carbon footprint for your home or business.`},{icon:`ri-lightbulb-flash-line`,title:`Better Light Quality`,desc:`Modern LEDs produce excellent colour rendering and are available in a range of colour temperatures.`}],whatWeOffer:[`Full LED upgrade assessments`,`Halogen to LED downlight conversions`,`Fluorescent to LED tube replacements`,`LED-compatible dimmer switch upgrades`,`Commercial LED lighting upgrades`,`Emergency lighting LED conversions`],faqs:[{q:`Will my existing dimmers work with LED?`,a:`Many older dimmers are not compatible with LED. We'll test your existing dimmers and replace any that cause flickering or buzzing.`},{q:`What colour temperature should I choose?`,a:`Warm white (2700â3000K) suits living rooms and bedrooms. Cool white (4000K) works well in kitchens and offices. We'll advise on the best option for each room.`},{q:`How much will I save?`,a:`Savings depend on usage, but a typical home switching from halogen to LED can save £100â£200 per year on electricity.`},{q:`Do you upgrade commercial premises?`,a:`Yes. Commercial LED upgrades often qualify for enhanced capital allowances. We work with offices, warehouses, retail and hospitality premises.`}],tags:[`Domestic`,`Commercial`,`Energy Saving`]},{slug:`electric-shower-installations-electrician-leamington-spa`,title:`Electric Shower Installations`,tagline:`Safe, professional electric shower fitting with full certification`,icon:`ri-drop-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/d7faa8da-8cec-4fdc-a39c-d8d4c3fc0ae3_electricshowers.jpg?v=5a3b54545edc8b8a57256730da387e8c`,intro:`Electric showers require a dedicated circuit from the consumer unit and must be installed by a qualified electrician. We handle the full electrical installation â from running the cable and fitting the isolator switch to connecting the shower unit and issuing the completion certificate.`,benefits:[{icon:`ri-shield-check-line`,title:`Dedicated Circuit`,desc:`Every electric shower requires its own dedicated circuit with correct cable sizing and RCD protection.`},{icon:`ri-file-text-line`,title:`Certified Installation`,desc:`Full electrical certificate issued on completion, notified to building control via NAPIT.`},{icon:`ri-tools-line`,title:`All Shower Types`,desc:`We install all major brands including Triton, Mira, Aqualisa and Bristan across all kW ratings.`},{icon:`ri-home-4-line`,title:`Minimal Disruption`,desc:`Most installations are completed within half a day with tidy cable routing and a clean finish.`}],whatWeOffer:[`New electric shower circuit from consumer unit`,`Shower unit connection and testing`,`Isolator switch installation`,`Cable routing through walls and ceilings`,`Replacement of existing shower circuits`,`Electrical Installation Certificate on completion`],faqs:[{q:`Can I install an electric shower myself?`,a:`N
31o. Electric shower installation is notifiable electrical work under Part P of the Building Regulations and must be carried out by a registered electrician.`},{q:`What size circuit do I need?`,a:`This depends on the kW rating of the shower. A 10.5kW shower typically requires a 10mm² cable on a 45A circuit. We'll assess and advise on the correct specification.`},{q:`How long does installation take?`,a:`Most installations take 3â5 hours depending on the cable run distance and property layout.`},{q:`Do you supply the shower unit?`,a:`We focus on the electrical installation. You can supply your own unit or we can advise on suitable models for your property.`}],tags:[`Domestic`,`Part P Notifiable`]},{slug:`kitchen-electrics-electrician-leamington-spa`,title:`Kitchen Electrics`,tagline:`Safe, compliant electrical work for kitchen installations and refits`,icon:`ri-fridge-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/8a37b15d-8b54-4a43-b3bb-81b7e15efa7e_Kitchen-Electrics.jpg?v=4b5d84211e7fee027c1328762de76e85`,intro:`Kitchen electrical work is notifiable under Part P of the Building Regulations and must be carried out by a registered electrician. From new socket circuits to cooker connections and under-cabinet lighting, we handle all aspects of kitchen electrics safely and to the highest standard.`,benefits:[{icon:`ri-shield-check-line`,title:`Part P Compliant`,desc:`All kitchen electrical work is notifiable and must be carried out by a registered electrician â which we are.`},{icon:`ri-plug-line`,title:`Plenty of Sockets`,desc:`We ensure you have enough sockets in the right positions for all your kitchen appliances.`},{icon:`ri-fire-line`,title:`Cooker Connections`,desc:`Safe installation of electric cooker circuits for all types of range and built-in ovens.`},{icon:`ri-lightbulb-line`,title:`Under-Cabinet Lighting`,desc:`LED under-cabinet lighting adds both practicality and ambience to your kitchen.`}],whatWeOffer:[`New socket circuits for kitchen refits`,`Electric cooker and hob connections`,`Extractor fan wiring`,`Under-cabinet LED lighting`,`Dishwasher and washing machine connections`,`Electrical Installation Certificate on completion`],faqs:[{q:`Why is kitchen electrical work notifiable?`,a:`Kitchens are a special location under Part P of the Building Regulations due to the presence of water and high-powered appliances. All new circuits must be notified to building control.`},{q:`Can you work alongside my kitchen fitter?`,a:`Yes. We regularly work alongside kitchen fitters, coordinating first and second fix to keep your project on schedule.`},{q:`Do I need a new consumer unit for a kitchen refit?`,a:`Not necessarily, but we'll check your existing board has sufficient capacity for the new circuits required.`},{q:`How long does kitchen electrical work take?`,a:`A typical kitchen refit takes 1â2 days for the electrical work, split between first and second fix.`}],tags:[`Domestic`,`Part P Notifiable`]},{slug:`extra-sockets-and-lights-electrician-leamington-spa`,title:`Extra Sockets & Lights`,tagline:`Additional power points and lighting circuits fitted neatly`,icon:`ri-plug-2-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/bfe54d62-e8ca-4e6a-9297-b2091375bf54_extra-lights-and-sockets.jpg?v=a5f329849498136ca04f30255fc6a6ff`,intro:`Running out of sockets or need extra lighting in a room? We add new power points and lighting circuits quickly and neatly, with minimal disruption to your home. All work is carried out to current wiring regulations with a certificate issued on completion.`,benefits:[{icon:`ri-plug-line`,title:`No More Extension Leads`,desc:`Properly installed sockets are safer and tidier than trailing extension leads and multi-way adaptors.`},{icon:`ri-paint-brush-line`,title:`Neat & Tidy Finish`,desc:`We chase cables into walls where possible and make good after, leaving a clean finish ready for decorating.`},{icon:`ri-home-4-line`,title:`Any Room`,desc:`Kitchen, bedroom, garage, garden office â we add sockets and lights wherever you need them.`},{icon:`ri-file-text-line`,title:`Certified Work`,desc:`All notifiable work is certified and registered with building control via our NAPIT membership.`}],whatWeOffer:[`Additional double and single sockets`,`USB sockets and data points`,`Fused connection units (FCUs)`,`New lighting circuits and pendants`,`Loft, garage and outbuilding power`,`Garden socket and outdoor power points`,`Electrical certificate on completion`],faqs:[{q:`How much does it cost to add a socket?`,a:`Costs vary depending on the location and cable run required. Contact us for a free no-obligation quote.`},{q:`Do you need to chase the walls?`,a:`Not always. We can often run cables through the void or use surface trunking for a neat finish without chasing.`},{q:`Can you add sockets in a kitchen?`,a:`Yes. Kitchen socket additions are notifiable work under Part P and must be carried out by a registered electrician â which we are.`},{q:`How long does it take?`,a:`Adding a couple of sockets typically takes 1â3 hours. Larger jobs with multiple rooms will take longer.`}],tags:[`Domestic`,`Commercial`]},{slug:`light-fitting-replacements-electrician-leamington-spa`,title:`Light Fitting Replacements`,tagline:`Upgrade your light fittings to modern, energy-efficient LED`,icon:`ri-l
31ightbulb-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/86d5b5e3-3b3c-48fb-8df6-27fd23f4c39c_Light-fitting-replacements.jpeg?v=d232ee61162a9c28b208d7f0047b8912`,intro:`Replacing old or outdated light fittings is one of the quickest ways to refresh a room and reduce your energy bills. We swap out pendants, spotlights, bathroom fittings and more â quickly, safely and with a clean finish every time.`,benefits:[{icon:`ri-lightbulb-flash-line`,title:`LED Efficiency`,desc:`Modern LED fittings use up to 80% less energy than traditional bulbs and last significantly longer.`},{icon:`ri-tools-line`,title:`All Fitting Types`,desc:`Pendants, downlights, batten lights, bathroom IP-rated fittings, outdoor lanterns â we replace them all.`},{icon:`ri-timer-line`,title:`Quick Turnaround`,desc:`Most fitting replacements are completed within a few hours with no mess and no fuss.`},{icon:`ri-shield-check-line`,title:`Safe & Certified`,desc:`All work carried out safely with the power isolated. Certificates issued for notifiable work.`}],whatWeOffer:[`Pendant and ceiling rose replacements`,`Recessed LED downlight installation`,`Bathroom IP65-rated fitting replacements`,`Outdoor and garden light fitting swaps`,`Dimmer switch upgrades for LED compatibility`,`Bulk fitting replacements for landlords and businesses`],faqs:[{q:`Can I replace a light fitting myself?`,a:`Simple like-for-like replacements can be DIY, but any new circuits or work in kitchens and bathrooms must be done by a registered electrician.`},{q:`Do LED fittings work with existing dimmers?`,a:`Not always. Older dimmers may need replacing with LED-compatible versions. We'll check and advise.`},{q:`What IP rating do I need for a bathroom?`,a:`Zone 1 (directly above the bath/shower) requires IP65 minimum. Zone 2 requires IP44 minimum. We'll ensure the correct fittings are used.`},{q:`Can you replace multiple fittings in one visit?`,a:`Absolutely. We're happy to work through a list of fittings in one visit to save you time and cost.`}],tags:[`Domestic`,`Commercial`,`Landlord`]},{slug:`heating-controls-electrician-leamington-spa`,title:`Heating Controls`,tagline:`Smart and programmable heating controls for greater comfort and efficiency`,icon:`ri-temp-hot-line`,heroImage:`/ai/img_res/845541a95b6fa20b5ec852fdca3f0d7c.webp`,intro:`Modern heating controls can significantly reduce your energy bills while improving comfort. From smart thermostats to multi-zone heating systems, we handle the electrical installation and wiring to ensure your heating system works exactly as intended.`,benefits:[{icon:`ri-money-pound-circle-line`,title:`Reduce Heating Bills`,desc:`Smart controls can reduce heating costs by 20â30% by only heating rooms when and where needed.`},{icon:`ri-smartphone-line`,title:`Remote Control`,desc:`Control your heating from anywhere via your smartphone â turn it on before you get home.`},{icon:`ri-map-2-line`,title:`Multi-Zone Control`,desc:`Heat different rooms to different temperatures at different times for maximum efficiency.`},{icon:`ri-leaf-line`,title:`Eco Friendly`,desc:`Reducing wasted heat lowers your carbon footprint as well as your energy bills.`}],whatWeOffer:[`Smart thermostat installation (Nest, Hive, Tado)`,`Multi-zone heating control wiring`,`Underfloor heating thermostat installation`,`Programmer and timer replacement`,`Wireless heating control systems`,`Integration with home automation systems`],faqs:[{q:`Which smart thermostat do you recommend?`,a:`We install Nest, Hive and Tado systems. Each has different strengths â we'll advise on the best option for your boiler and lifestyle.`},{q:`Can you install multi-zone heating controls?`,a:`Yes. Multi-zone systems allow you to control the temperature in different rooms independently, which is ideal for larger homes.`},{q:`Do smart thermostats work with all boilers?`,a:`Most modern smart thermostats are compatible with most boilers, but we'll check compatibility before installation.`},{q:`How long does installation take?`,a:`A smart thermostat installation typically takes 1â2 hours. Multi-zone systems take longer depending on the number of zones.`}],tags:[`Domestic`,`Energy Saving`]},{slug:`outdoor-garden-lighting-electrician-leamington-spa`,title:`Outdoor Garden Lighting`,tagline:`Professionally installed garden lighting to enhance your outdoor space
31s`,icon:`ri-plant-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/1c764717-3121-4357-bdee-c84c7e1d7310_Outdoor-garden-lighting.jpeg?v=e627edc1a8b3bc24b0f69311d3730b9a`,intro:`Well-designed garden lighting extends the use of your outdoor space into the evening and adds real kerb appeal to your property. We design and install weatherproof garden lighting systems that are safe, stylish and built to last.`,benefits:[{icon:`ri-sun-cloudy-line`,title:`Weatherproof`,desc:`All outdoor fittings are IP65-rated minimum, designed to withstand the British weather year-round.`},{icon:`ri-leaf-line`,title:`Enhances Your Garden`,desc:`Uplighting trees, illuminating pathways and highlighting features transforms your garden after dark.`},{icon:`ri-home-smile-line`,title:`Adds Kerb Appeal`,desc:`Good exterior lighting significantly improves the appearance and value of your property.`},{icon:`ri-timer-flash-line`,title:`Automated Controls`,desc:`Dusk-to-dawn sensors, timers and smart controls mean your garden lights itself without any effort.`}],whatWeOffer:[`Pathway and driveway lighting`,`Tree and shrub uplighting`,`Deck and patio lighting`,`Pergola and gazebo lighting`,`Pond and water feature lighting`,`Dusk-to-dawn and timer controls`,`Low voltage and mains garden lighting systems`],faqs:[{q:`Do garden lights need to be on a separate circuit?`,a:`It's best practice to have outdoor lighting on a dedicated RCD-protected circuit. We'll advise on the best approach for your garden.`},{q:`What IP rating do outdoor lights need?`,a:`Outdoor fittings should be IP44 minimum, with IP65 recommended for exposed locations.`},{q:`Can you install lights in an existing garden?`,a:`Yes. We work in established gardens with minimal disruption, using armoured cable buried to the correct depth.`},{q:`Do you offer low voltage systems?`,a:`Yes. Low voltage (12V) systems are ideal for garden lighting and are safer and more energy efficient.`}],tags:[`Domestic`,`Outdoor`]},{slug:`outdoor-security-lighting-electrician-leamington-spa`,title:`Outdoor Security Lighting`,tagline:`PIR and smart security lighting to protect your property`,icon:`ri-shield-flash-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/39ad1a15-7e61-4bfe-bc50-d95644e68dab_outdoor-security-lighting.jpeg?v=3366450919b487d725e108861c07c2c6`,intro:`Security lighting is one of the most effective deterrents against intruders. We install PIR-activated floodlights, dusk-to-dawn lights and smart security lighting systems that keep your home and business safe around the clock.`,benefits:[{icon:`ri-eye-line`,title:`Proven Deterrent`,desc:`Well-placed security lighting is one of the most effective ways to deter opportunistic intruders.`},{icon:`ri-sensor-line`,title:`PIR Motion Detection`,desc:`Lights activate automatically when movement is detected, alerting you and deterring intruders.`},{icon:`ri-smartphone-line`,title:`Smart Integration`,desc:`Connect to your security lighting system for remote monitoring and control from your phone.`},{icon:`ri-shield-check-line`,title:`Weatherproof & Reliable`,desc:`All fittings are IP65-rated and built to perform reliably in all weather conditions.`}],whatWeOffer:[`PIR floodlight installation`,`Dusk-to-dawn security lights`,`Smart security lighting with app control`,`Driveway and garage security lighting`,`Commercial security lighting systems`,`Integration with CCTV and alarm systems`],faqs:[{q:`Where should security lights be positioned?`,a:`Key positions include above front and back doors, garage entrances, side gates and any dark corners of the property. We'll advise on the best placement during a site visit.`},{q:`Can security lights be connected to my alarm system?`,a:`Yes. We can integrate lighting with alarm systems so lights activate when the alarm is triggered.`},{q:`Do I need planning permission for security lights?`,a:`Generally no, but lights must not cause a nuisance to neighbours. We'll ensure correct positioning and aiming.`},{q:`What's the difference between PIR and dusk-to-dawn?`,a:`PIR lights activate on movement. Dusk-to-dawn lights stay on all night. Many modern fittings combine both modes.`}],tags:[`Domestic`,`Commercial`,`Security`]},{slug:`lighting-design-and-installation-electrician-leamington-spa`,title:`Lighting Design & Installation`,tagline:`Bespoke lighting schemes designed and installed to transform your space`,icon:`ri-artboard-2-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/61ab9b0c-8c49-4afb-859c-68f95d51f85e_Lighting-design-and-installation.jpeg?v=6d2a4ca854270110804666b6d67bb519`,intro:`Good lighting transforms a space. We work with homeowners and businesses to design and install layered lighting schemes that combine ambient, task and accent lighting for the perfect atmosphere in every room.`,benefits:[{icon:`ri-palette-line`,title:`Tailored to Your Space`,desc:`We design schemes around your room layout, furniture and the mood you want to create.`},{icon:`ri-stack-line`,title:`Layered Lighting`,desc:`Combining ambient, task and accent lighting creates depth and flexibility in any room.`},{icon:`ri-remote-control-line`,title:`Smart Controls`,desc:`Integrate with lighting control systems or install scene-setting dimmers for full control of your lighting.`},{icon:`ri-building-line`,title:`Domestic & Commercial`,desc:`From kitchen extensions to office fit-outs, we design and install lighting for all types of project.`}],whatWeOffer:[`Lighting design consultation and layout planning`,`Recessed downlight installation`,`Feature and statement pendant installation`,`Under-cabinet and plinth lighting`,`Cove and indirect lighting`,`Smart lighting and scene control`,`Commercial and office lighting design`],faqs:[{q:`Do you offer a design service?`,a:`Yes. We'll visit your property, discuss your requirements and produce a lighting plan before any work begins.`},{q:`Can you integrate with lighting control systems?`,a:`Yes. We work with Lutron, Hue, Loxone and other smart lighting platforms.`},{q:`How much does a lighting design project cost?`,a:`Costs vary significantly depending on the scope. Contact us for a free consultation and quote.`},{q:`Do you work on new builds and extensions?`,a:`Yes. We regularly work alongside builders and architects on new build and extension projects.`}],tags:[`Domestic`,`Commercial`,`Lighting`]},{slug:`socket-and-switch-installation-electrician-leamington-spa`,title:`Socket & Switch Installation`,tagline:`New sockets and switches installed neatly throughout your property`,icon:`ri-toggle-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/fc62fd82-469a-4e4f-965e-b92799e0bb60_socket-and-switch-installation.jpeg?v=6a2ae71de22fe42215f8f2f7ecadd664`,intro:`Whether you need additional sockets, USB outlets, or a full switch upgrade to a modern flat-plate style, we install all types of sockets and switches quickly and neatly. All work is carried out to current wiring regulations.`,benefits:[{icon:`ri-plug-line`,title:`Modern Styles`,desc:`Choose from white, chrome, brushed steel and black finishes to complement your interior.`},{icon:`ri-usb-line`,title:`USB Charging`,desc:`USB-A and USB-C sockets keep your devices charged without needing adaptors.`},{icon:`ri-paint-brush-line`,title:`Neat Installation`,desc:`Cables chased in or run through voids for a clean, professional finish.`},{icon:`ri-file-text-line`,title:`Certified`,desc:`All notifiable work certified and registered with building control.`}],whatWeOffer:[`Additional double and single sockets`,`USB-A and USB-C socket installation`,`Flat-plate socket and switch upgrades`,`Outdoor and weatherproof sockets`,`Fused connection units (FCUs)`,`Data and media points`],faqs:[{q:`Can I just swap my sockets for a different style?`,a:`Like-for-like socket replacements are generally DIY-able, but adding new sockets or moving them is notifiable work requiring a registered electrician.`},{q:`What styles are available?`,a:`We can supply and fit white, chrome, brushed steel, black and brass finishes in both standard and screwless styles.`},{q:`Can you add USB sockets?`,a:`Yes. USB sockets are a great addition to bedrooms, kitchens and home office
31s. We install both USB-A and USB-C versions.`},{q:`How long does it take?`,a:`A straightforward socket addition typically takes 1â2 hours. Larger jobs take longer.`}],tags:[`Domestic`,`Commercial`]},{slug:`ev-charger-installer-electrician-leamington-spa`,title:`EV Charger Installation`,tagline:`OZEV-approved home and workplace EV charger fitting`,icon:`ri-charging-pile-2-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/514f6cd2-890f-4e28-91be-be83debd9a36_EV-Charger-installation.jpg?v=eab75e149bc7faf4923e7663132f617f`,intro:`As an OZEV-registered installer, we provide fast, tidy EV charger installations for homes and workplaces across Leamington Spa and Warwickshire. We work with all major charger brands and handle everything from the initial survey through to installation and commissioning.`,benefits:[{icon:`ri-car-line`,title:`All Major Brands`,desc:`We install Ohme, Zappi, Easee, Andersen and more â we'll recommend the best charger for your needs and budget.`},{icon:`ri-government-line`,title:`OZEV Registered`,desc:`As an OZEV-approved installer we can assist with grant applications where applicable.`},{icon:`ri-wifi-line`,title:`Smart Charging`,desc:`Smart chargers allow you to schedule charging during off-peak tariff hours, saving you money on electricity.`},{icon:`ri-file-text-line`,title:`Full Certification`,desc:`Electrical Installation Certificate issued on completion with all work notified to building control.`}],whatWeOffer:[`Home EV charger installation (7kW single phase)`,`Workplace and commercial EV charging points`,`Tethered and untethered charger options`,`Smart charger setup and app configuration`,`Dedicated EV circuit from consumer unit`,`CT clamp installation for load balancing`,`Full electrical certification on completion`],faqs:[{q:`How long does an EV charger installation take?`,a:`Most home installations take 2â4 hours. We'll carry out a free survey beforehand to assess the cable run and confirm the installation plan.`},{q:`Do I need a dedicated circuit?`,a:`Yes. EV chargers require a dedicated circuit from your consumer unit. We'll check your board has capacity and upgrade if needed.`},{q:`Can I charge from a standard 3-pin socket?`,a:`You can, but it's very slow (around 6 miles of range per hour). A dedicated 7kW charger gives you around 30 miles per hour of charge.`},{q:`Which charger should I choose?`,a:`It depends on your vehicle, tariff and preferences. We'll advise on the best option during your free survey.`}],tags:[`Domestic`,`Commercial`,`OZEV Approved`,`EV`]},{slug:`ozev-registered-electrician-leamington-spa`,title:`OZEV Registered Installer`,tagline:`Government-approved EV charger installations with grant assistance`,icon:`ri-car-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/ef5a5612-b8c4-4ed5-a23e-6a215a19e79b_OZEV-Registered-installer.jpg?v=d2efd93c88eed36633e65b2b991235bf`,intro:`As an OZEV (Office for Zero Emission Vehicles) registered installer, we are approved to carry out EV charger installations that meet government standards. This means we can assist eligible customers with grant applications and ensure all installations are fully compliant.`,benefits:[{icon:`ri-government-line`,title:`Government Approved`,desc:`OZEV registration means we meet the strict standards required for government-backed EV charger installations.`},{icon:`ri-money-pound-circle-line`,title:`Grant Assistance`,desc:`We can help eligible customers apply for available grants to reduce the cost of EV charger installation.`},{icon:`ri-award-line`,title:`Fully Certified`,desc:`All installations are fully certified and compliant with the latest EV charging standards and wiring regulations.`},{icon:`ri-customer-service-2-line`,title:`Expert Advice`,desc:`We'll advise on the best charger for your vehicle, usage and budget â with no pushy sales.`}],whatWeOffer:[`OZEV-compliant home EV charger installation`,`Grant application assistance where eligible`,`Workplace EV charging installations`,`All major charger brands supplied and fitted`,`Smart charger setup and commissioning`,`Full electrical certification on completion`],faqs:[{q:`What is OZEV registration?`,a:`OZEV (Office for Zero Emission Vehicles) is the government body that oversees EV infrastru
31cture. Registered installers meet strict competency and quality standards.`},{q:`Am I eligible for a grant?`,a:`Grant eligibility depends on your circumstances. We'll check your eligibility during the initial consultation and assist with the application process.`},{q:`Does OZEV registration cost more?`,a:`No. Using an OZEV-registered installer is a requirement for grant-funded installations and ensures quality â it doesn't add to your cost.`},{q:`Can you install at my workplace?`,a:`Yes. We install EV charging points at workplaces, car parks and commercial premises across Warwickshire.`}],tags:[`EV`,`OZEV`,`Domestic`,`Commercial`]},{slug:`solar-and-battery-storage-system-electrician-leamington-spa`,title:`Solar & Battery Storage`,tagline:`MCS-certified solar panel and battery storage installations`,icon:`ri-sun-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/217cd510-61a3-4aef-88fb-692e6cf7fb76_solar-panels.jpeg?v=aaf4a97a8f3d8d5faf39807658ad4350`,intro:`We are MCS-certified solar panel and battery storage installers. Whether you want to reduce your energy bills, achieve energy independence or export surplus power back to the grid, we design and install systems tailored to your property and energy usage.`,benefits:[{icon:`ri-money-pound-circle-line`,title:`Reduce Energy Bills`,desc:`A typical 4kW solar system can save £500â£1,000 per year on electricity bills depending on usage.`},{icon:`ri-battery-charge-line`,title:`Battery Storage`,desc:`Store surplus solar energy in a battery and use it in the evening â maximising self-consumption.`},{icon:`ri-award-line`,title:`MCS Certified`,desc:`MCS certification is required to access the Smart Export Guarantee (SEG) and ensures quality installation.`},{icon:`ri-leaf-line`,title:`Reduce Carbon Footprint`,desc:`Solar panels generate clean, renewable energy and significantly reduce your household carbon emissions.`}],whatWeOffer:[`Solar PV system design and installation`,`Battery storage system installation`,`EV charger integration with solar system`,`Smart Export Guarantee (SEG) registration assistance`,`System monitoring setup`,`MCS certificate issued on completion`,`Retrofit battery storage to existing solar systems`],faqs:[{q:`How much does a solar system cost?`,a:`A typical 4kW system costs £5,000â£8,000 installed. Battery storage adds £3,000â£6,000 depending on capacity. We provide detailed quotes after a free survey.`},{q:`How long does installation take?`,a:`Most residential solar installations are completed in 1â2 days. Battery-only retrofits typically take half a day.`},{q:`Do I need planning permission?`,a:`Most domestic solar installations are permitted development and don't require planning permission. It is down to the customer to seek planning status if they want solar on a listed building or within a conservation area. We'll advise on the planning position for your property.`},{q:`What is the Smart Export Guarantee?`,a:`The SEG requires energy suppliers to pay you for surplus electricity you export to the grid. MCS certification is required to access SEG payments.`}],tags:[`Renewables`,`MCS Certified`,`Domestic`,`Commercial`]},{slug:`battery-storage-systems-electrician-leamington-spa`,title:`Battery Storage Systems`,tagline:`Store your solar energy and use it when you need it most`,icon:`ri-battery-charge-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/1be77572-cb8c-48f0-a233-92a3cf5fc57b_Battery-storage-systems.jpeg?v=7d9719c55052bf00cf367ab234745897`,intro:`Battery storage systems allow you to store surplus solar energy generated during the day and use it in the evening when your panels aren't producing. They can also be charged from the grid during cheap off-peak tariff periods, significantly reducing your electricity costs.`,benefits:[{icon:`ri-battery-charge-line`,title:`Maximise Solar`,desc:`Store surplus solar energy instead of exporting it at a low rate and use it when you need it most.`},{icon:`ri-money-pound-circle-line`,title:`Off-Peak Charging`,desc:`Charge from the grid during cheap overnight tariffs (Octopus Go, Agile) and use stored energy during peak hours.`},{icon:`ri-home-4-line`,title:`Energy Independence`,desc:`Reduce your reliance on the grid and protect yourself against rising energy prices.`},{icon:`ri-award-line`,title:`MCS Certified`,desc:`All battery storage installations are MCS certified, ensuring quality and eligibility for export tariffs.`}],whatWeOffer:[`Battery storage system installation`,`Battery upgrades and replacements`,`Battery system integration`,`Retrofit battery to existing solar systems`,`Smart tariff optimisation setup`,`MCS certificate on completion`],faqs:[{q:`Do I
31need solar panels to have a battery?`,a:`No. A battery can be charged from the grid during cheap off-peak tariffs even without solar panels, though the combination of solar and battery gives the best returns.`},{q:`How much does a battery storage system cost?`,a:`Costs range from £3,000â£6,000 depending on capacity and brand. We provide detailed quotes after a free survey.`},{q:`How long does installation take?`,a:`A battery-only installation typically takes half a day. Combined solar and battery installations take 1â2 days.`},{q:`Which battery should I choose?`,a:`We install a range of leading battery storage systems. We'll recommend the best option based on your usage and budget.`}],tags:[`Renewables`,`MCS Certified`,`Domestic`]},{slug:`electrical-repairs-electrician-leamington-spa`,title:`Electrical Repairs`,tagline:`Fast, reliable electrical repairs for homes and businesses across Warwickshire`,icon:`ri-tools-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/d7b312cc-26a7-4ec8-be5f-7e0b1ae30db7_Electrical-repairs.jpeg?v=1a701f7262eceb39787228780f1f121a`,intro:`Electrical faults can range from a nuisance to a serious safety hazard. Whether it's a dead socket, a faulty light switch or a more complex wiring issue, we diagnose and repair electrical problems quickly and correctly, getting your home or business back to normal.`,benefits:[{icon:`ri-flashlight-line`,title:`Fast Response`,desc:`We aim to respond to repair requests as quickly as possible, minimising disruption to your home or business.`},{icon:`ri-tools-line`,title:`Fixed Right First Time`,desc:`We carry a wide range of parts and materials to repair most faults on the first visit.`},{icon:`ri-file-text-line`,title:`Written Report`,desc:`We provide a written report of the fault found and work carried out for your records.`},{icon:`ri-shield-check-line`,title:`Safe & Certified`,desc:`All repair work carried out safely and to current wiring regulations with certificates where required.`}],whatWeOffer:[`Dead socket and switch repairs`,`Lighting circuit repairs`,`Tripping RCD and MCB investigation`,`Intermittent fault diagnosis`,`Wiring repairs and replacements`,`Emergency call-outs across Warwickshire`],faqs:[{q:`How quickly can you respond to a repair?`,a:`We aim to respond as quickly as possible. For urgent issues call us on 01926 768080 and we'll advise on availability.`},{q:`How much do electrical repairs cost?`,a:`Our minimum charge is £95 plus VAT up to one hour, then £55 per hour plus VAT after that. We'll give you an honest estimate before starting.`},{q:`Can you fix the fault on the same visit?`,a:`In most cases yes. We carry a wide range of parts so we can repair most faults on the first visit.`},{q:`Do you provide a report after the repair?`,a:`Yes. We provide a written report of the fault found and work carried out, with a certificate where applicable.`}],tags:[`Domestic`,`Commercial`,`Emergency`]},{slug:`testing-and-fault-finding-electrician-leamington-spa`,title:`Testing & Fault Finding`,tagline:`Rapid diagnosis and repair of electrical faults across Warwickshire`,icon:`ri-search-eye-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/aaaa3c22-715a-42d8-8b19-2281b95ad86e_Fault-Finding.jpeg?v=ff1cac8a05a372c97c037492bb39a384`,intro:`Tripping circuits, dead sockets, flickering lights or a complete power failure â electrical faults can be frustrating and potentially dangerous. We use professional test equipment to quickly diagnose and fix faults, getting your power back on safely and efficiently.`,benefits:[{icon:`ri-flashlight-line`,title:`Fast Diagnosis`,desc:`We use professional test equipment to pinpoint faults quickly, saving time and minimising disruption.`},{icon:`ri-tools-line`,title:`Fixed Right First Time`,desc:`We don't just reset the breaker â we find the root cause and fix it properly.`},{icon:`ri-alarm-warning-line`,title:`Emergency Response`,desc:`For urgent faults we aim to respond as quickly as possible. Call us and we'll advise on the best course of action.`},{icon:`ri-file-text-line`,title:`Full Report`,desc:`We provide a written report of the fault found and work carried out, with a certificate where applicable.`}],whatWeOffer:[`Tripping RCD and MCB diagnosis and repair`,`Dead socket and lighting circuit fault finding`,`Intermittent fault diagnosis`,`Earth fault and insulation resistance testing`,`Partial power loss investigation`,`Post-fault EICR if required`,`Emergency call-out
31s across Warwickshire`],faqs:[{q:`My RCD keeps tripping â what should I do?`,a:`Try isolating circuits one by one to identify the faulty circuit. If you can't find the cause, call us â a persistently tripping RCD indicates a fault that needs professional investigation.`},{q:`How quickly can you respond to an emergency?`,a:`We aim to respond to urgent faults as quickly as possible. Call us on 01926 768080 and we'll advise on availability.`},{q:`How much does fault finding cost?`,a:`Our minimum charge is £95 plus VAT up to one hour, then £55 per hour plus VAT after that. Most faults are diagnosed and repaired within 1â3 hours. We'll give you an honest estimate before starting.`},{q:`Can you fix the fault on the same visit?`,a:`In most cases yes. We carry a wide range of parts and materials so we can repair most faults on the first visit.`}],tags:[`Domestic`,`Commercial`,`Emergency`]},{slug:`tripping-circuits-electrician-leamington-spa`,title:`Tripping Circuits`,tagline:`Diagnose and fix tripping RCDs and MCBs quickly and safely`,icon:`ri-alarm-warning-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/9a4cf22c-df13-4507-91e2-c38b07bc8c88_Tripping-circuits.jpeg?v=322b0034798d24ea26b2d6f52c48f5dc`,intro:`A persistently tripping RCD or MCB is more than an inconvenience â it indicates an underlying fault that needs professional investigation. We diagnose the root cause and carry out the necessary repairs to get your circuits back on and keep them on.`,benefits:[{icon:`ri-search-eye-line`,title:`Root Cause Diagnosis`,desc:`We don't just reset the breaker â we find and fix the underlying fault causing the trip.`},{icon:`ri-flashlight-line`,title:`Fast Response`,desc:`A tripping circuit can leave you without power. We aim to respond quickly to get you back on.`},{icon:`ri-shield-check-line`,title:`Safety First`,desc:`Persistent tripping can indicate a serious fault. We ensure your installation is safe before leaving.`},{icon:`ri-file-text-line`,title:`Full Report`,desc:`Written report of the fault found and work carried out provided on completion.`}],whatWeOffer:[`RCD tripping diagnosis and repair`,`MCB overload investigation`,`Earth fault location and repair`,`Insulation resistance testing`,`Appliance fault identification`,`Post-repair EICR if required`],faqs:[{q:`Why does my RCD keep tripping?`,a:`RCDs trip when they detect a leakage current to earth, which can be caused by a faulty appliance, damaged wiring or moisture ingress. We'll identify the cause and fix it.`},{q:`Can I just keep resetting the breaker?`,a:`No. A persistently tripping breaker indicates a fault that needs investigation. Repeatedly resetting it without finding the cause is unsafe.`},{q:`How do I find which appliance is causing the trip?`,a:`Unplug all appliances on the affected circuit, reset the breaker, then plug them back in one by one. If the breaker trips when you plug in a specific appliance, that appliance is likely faulty.`},{q:`How quickly can you come out?`,a:`We aim to respond as quickly as possible. Call us on 01926 768080 and we'll advise on availability.`}],tags:[`Domestic`,`Commercial`,`Emergency`]},{slug:`lighting-repairs-electrician-leamington-spa`,title:`Lighting Repairs`,tagline:`Fast diagnosis and repair of lighting faults throughout your property`,icon:`ri-lightbulb-line`,heroImage:`/ai/img_res/ba7383da6185c563add62f0ac9bafd52.webp`,intro:`Flickering lights, dead circuits, faulty switches or a complete lighting failure â we diagnose and repair all types of lighting faults quickly and safely. From a single dead light to a full circuit failure, we'll get your lighting working again.`,benefits:[{icon:`ri-search-eye-line`,title:`Accurate Diagnosis`,desc:`We use test equipment to accurately identify the fault rather than guessing and replacing parts unnecessarily.`},{icon:`ri-timer-line`,title:`Quick Fix`,desc:`Most lighting repairs are completed on the same visit with parts carried on the van.`},{icon:`ri-shield-check-line`,title:`Safe Repair`,desc:`All work carried out with the circuit isolated and tested before reinstatement.`},{icon:`ri-file-text-line`,title:`Certified`,desc:`Certificates issued for any notifiable repair work.`}],whatWeOffer:[`Dead lighting circuit diagnosis and repair`,`Flickering light investigation`,`Faulty switch replacement`,`Ceiling rose and pendant repairs`,`Bathroom lighting fault finding`,`Emergency lighting repairs`],faqs:[{q:`Why are my lights flickering?`,a:`Flickering can be caused by a loose connection, incompatible dimmer, failing bulb or a more serious wiring fault. We'll diagnose the cause and fix it.`},{q:`My whole lighting circuit has gone dead â what should I do?`,a:`Check your consumer unit for a tripped MCB. If resetting it doesn't restore power, or if it trips again immediately, call us for a diagnosis.`},{q:`Can you repair bathroom lighting?`,a:`Yes. Bathroom lighting repairs are notifiable work under Part P and must be carried out by a registered electrician.`},{q:`How much does a lighting repair cost?`,a:`We charge an hourly rate. Most lighting repairs are completed within 1â2 hours.`}],tags:[`Domestic`,`Commercial`]},{slug:`emergency-call-outs-electrician-leamington-spa`,title:`Emergency Call-Outs`,tagline:`Urgent electrical response across Leamington Spa and Warwickshire`,icon:`ri-alarm-warning-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/6e89c521-35b2-4637-961e-ba4f03c18676_Emergency-Call-outs.jpeg?v=7cb2ab67c3841f7cdd34cc7e932851c0`,intro:`Electrical emergencie
31s can't wait. Whether you've lost power, have a dangerous fault or need urgent electrical assistance, we aim to respond as quickly as possible to get your property safe and your power restored.`,benefits:[{icon:`ri-time-line`,title:`Fast Response`,desc:`We aim to respond to emergency call-outs as quickly as possible across Leamington Spa and Warwickshire.`},{icon:`ri-shield-check-line`,title:`Make Safe First`,desc:`Our priority is always to make your property electrically safe before carrying out any repair work.`},{icon:`ri-tools-line`,title:`Fully Equipped`,desc:`We carry a comprehensive range of parts and test equipment to deal with most emergencies on the first visit.`},{icon:`ri-file-text-line`,title:`Full Documentation`,desc:`Written report and certificates provided for all emergency work carried out.`}],whatWeOffer:[`Complete power loss investigation`,`Dangerous fault make-safe`,`Tripping circuit emergency response`,`Storm damage electrical assessment`,`Flood damage electrical inspection`,`Emergency lighting repairs`],faqs:[{q:`What counts as an electrical emergency?`,a:`Complete power loss, burning smells from sockets or fuse board, visible sparking, electric shocks from appliances or switches, and flooding near electrical installations all require urgent attention.`},{q:`What should I do while waiting for you?`,a:`If you smell burning or see sparking, switch off the main isolator at your consumer unit and call us immediately. Do not use the affected circuits.`},{q:`Do you charge extra for emergency call-outs?`,a:`Emergency call-outs may attract a call-out fee. We'll be transparent about costs before attending.`},{q:`How quickly can you respond?`,a:`Response times depend on our current workload and location. Call us on 01926 768080 and we'll give you an honest ETA.`}],tags:[`Domestic`,`Commercial`,`Emergency`]},{slug:`maintenance-contracts-electrician-leamington-spa`,title:`Maintenance Contracts`,tagline:`Planned electrical maintenance for landlords and businesses`,icon:`ri-calendar-check-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/7481eb7b-57d1-4f40-903a-b08ac6ef813b_Maintenance-contracts.jpeg?v=a5834030ddbc9ffcc4c31a6ed9164dab`,intro:`Regular planned electrical maintenance keeps your property safe, compliant and avoids costly emergency repairs. We offer maintenance contracts for landlords, businesses and property managers, providing scheduled inspections, testing and remedial works.`,benefits:[{icon:`ri-calendar-check-line`,title:`Planned & Predictable`,desc:`Scheduled maintenance means no surprises â you know
31when work is happening and what it will cost.`},{icon:`ri-money-pound-circle-line`,title:`Cost Effective`,desc:`Planned maintenance is significantly cheaper than emergency repairs and extends the life of your installation.`},{icon:`ri-file-shield-2-line`,title:`Compliance Assured`,desc:`We keep your EICR and other compliance documentation up to date.`},{icon:`ri-customer-service-2-line`,title:`Priority Response`,desc:`Contract customers receive priority response for any emergency call-outs.`}],whatWeOffer:[`Annual electrical inspection and testing`,`EICR scheduling and management`,`Fixed wiring inspection programmes`,`Emergency lighting testing`,`Remedial works from inspections`,`Compliance documentation management`],faqs:[{q:`Who are maintenance contracts suitable for?`,a:`Maintenance contracts are ideal for landlords with multiple properties, commercial premises, schools, offices and any business with ongoing electrical compliance requirements.`},{q:`What does a maintenance contract include?`,a:`We tailor contracts to your needs. Typically they include scheduled inspections, EICR management and priority emergency response.`},{q:`How much does a maintenance contract cost?`,a:`Costs depend on the size and complexity of your portfolio. Contact us for a tailored quote.`},{q:`Can I add properties to my contract?`,a:`Yes. We can add properties to your contract at any time.`}],tags:[`Commercial`,`Landlord`,`Compliance`]},{slug:`eicrs-electrician-leamington-spa`,title:`EICRs`,tagline:`Electrical Installation Condition Reports for landlords & homeowners`,icon:`ri-file-shield-2-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/f2cd258f-d543-4dff-9315-e361ef099f87_EICRs.jpg?v=f20ee251ef6dc058cccd654322ddd8cc`,intro:`An Electrical Installation Condition Report (EICR) is a formal assessment of the safety and condition of the electrical installation within a property. It is a legal requirement for all private rental properties in England and is strongly recommended for homeowners and businesses every 5â10 years.`,benefits:[{icon:`ri-scales-3-line`,title:`Legal Requirement for Landlords`,desc:`Private landlords in England must have a valid EICR every 5 years and provide a copy to tenants.`},{icon:`ri-search-eye-line`,title:`Thorough Inspection`,desc:`We test every circuit, check all accessories and inspect the consumer unit to identify any defects or deterioration.`},{icon:`ri-file-text-line`,title:`Full Written Report`,desc:`You receive a detailed written report with any observations coded C1 (danger), C2 (potentially dangerous) or C3 (improvement recommended).`},{icon:`ri-timer-line`,title:`Fast Turnaround`,desc:`Reports are typically issued the same day or within 24 hours of the inspection.`}],whatWeOffer:[`Full EICR for domestic properties`,`Landlord EICR certificates for rental properties`,`Commercial EICR inspections`,`Remedial works carried out to clear any C1 or C2 codes`,`Same-day report issue in most cases`,`NAPIT registered â fully certified inspectors`],faqs:[{q:`How often do I need an EICR?`,a:`Landlords must have one every 5 years. Homeowners are recommended every 10 years or when buying/selling a property. Businesses should have one every 5 years.`},{q:`What happens if my property fails?`,a:`If C1 or C2 observations are found, remedial work must be carried out. We can complete all remedial works and re-issue a satisfactory report.`},{q:`How long does an EICR take?`,a:`A typical 3-bedroom house takes 3â4 hours. Larger properties or those with older wiring may take longer.`},{q:`Do tenants need to be present?`,a:`Access to all rooms and the consumer unit is required. Tenants or the landlord should be present to provide access.`}],tags:[`Landlord`,`Domestic`,`Commercial`,`Compliance`]},{slug:`landlord-certificates-electrician-leamington-spa`,title:`Landlord Certificates`,tagline:`EICR and electrical compliance certificates for landlords across Warwickshire`,icon:`ri-home-gear-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/60e6d667-8559-4dfc-ac9d-2cc40141382a_Landlords-Certificate.jpeg?v=e811971a5015dc1dc28ac925e5cba0be`,intro:`Landlords in England are legally required to have a valid Electrical Installation Condition Report (EICR) for every rental property, renewed every 5 years. We provide fast, thorough EICR inspections with same-day reports and carry out any required remedial works to ensure your property is compliant.`,benefits:[{icon:`ri-scales-3-line`,title:`Legal Compliance`,desc:`Avoid fines of up to £30,000 for non-compliance with the Electrical Safety Standards in the Private Rented Sector Regulations 2020.`},{icon:`ri-timer-line`,title:`Same-Day Reports`,desc:`EICR reports issued on the day of inspection in most cases, so you can provide copies to tenants promptly.`},{icon:`ri-tools-line`,title:`Remedial Works`,desc:`We carry out any required remedial works to clear C1 and C2 observations and re-issue a satisfactory report.`},{icon:`ri-building-2-line`,title:`Portfolio Management`,desc:`We manage EICR schedules for landlords with multiple properties, keeping your compliance up to date.`}],whatWeOffer:[`EICR inspections for rental properties`,`Same-day report issue`,`Remedial works to clear C1/C2 observations`,`Portfolio EICR management for multiple properties`,`Tenant copy provision`,`NAPIT registered â fully certified inspectors`],faqs:[{q:`What are the legal requirements for landlords?`,a:`Since 1 April 2021, all private landlords in England must have a valid EICR, renewed every 5 years, and provide a copy to tenants within 28 days of the inspection.`},{q:`What is the fine for non-compliance?`,a:`Local authorities can impose fines of up to £30,000 for landlords who fail to comply with the electrical safety regulations.`},{q:`How quickly can you carry out an EICR?`,a:`We aim to carry out inspections within a few days of booking. Contact us to check availability.`},{q:`Do you manage multiple properties?`,a:`Yes. We work with landlords and letting agents managing multiple properties, keeping track of EICR renewal dates and scheduling inspections proactively.`}],tags:[`Landlord`,`Compliance`,`Legal Requirement`]},{slug:`smoke-and-heat-alarms-electrician-leamington-spa`,title:`Smoke & Heat Alarms`,tagline:`Mains-wired smoke and heat alarm installation for homes and rental properties`,icon:`ri-alarm-warning-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/816ab163-445c-4eef-9c24-c64cb4180db0_Smoke-and-heat-Alarms.jpeg?v=b6439cd4633916fd18bfd6bede37b05f`,intro:`Mains-wired smoke and heat alarms provide far greater protection than battery-operated units. They cannot be disabled by removing a battery and can be interlinked so that all alarms s
31ound when one is triggered. We install and maintain alarm systems for homes, landlords and businesses.`,benefits:[{icon:`ri-shield-check-line`,title:`Mains Powered`,desc:`Mains-wired alarms cannot be disabled by removing a battery and have a battery backup for power cuts.`},{icon:`ri-links-line`,title:`Interlinked`,desc:`When one alarm sounds, all alarms in the property sound simultaneously â giving maximum warning time.`},{icon:`ri-scales-3-line`,title:`Legal Compliance`,desc:`Meets the requirements of BS 5839-6 and Scottish legislation requiring interlinked alarms in all homes.`},{icon:`ri-home-4-line`,title:`All Property Types`,desc:`We install alarm systems in new builds, existing homes, rental properties and commercial premises.`}],whatWeOffer:[`Mains-wired smoke alarm installation`,`Heat alarm installation (kitchens)`,`Carbon monoxide detector installation`,`Interlinked alarm system installation`,`Alarm system upgrades and replacements`,`Landlord compliance alarm installations`],faqs:[{q:`Where should smoke alarms be fitted?`,a:`BS 5839-6 recommends smoke alarms in every circulation area (hallways and landings) and heat alarms in kitchens. Additional alarms in living rooms and bedrooms provide greater protection.`},{q:`Do landlords need mains-wired alarms?`,a:`The Smoke and Carbon Monoxide Alarm (Amendment) Regulations 2022 require landlords to install smoke alarms on every floor and CO alarms in rooms with solid fuel appliances. Mains-wired alarms are best practice.`},{q:`What is the difference between smoke and heat alarms?`,a:`Smoke alarms detect smoke particles and are suitable for most rooms. Heat alarms detect a rise in temperature and are recommended for kitchens where cooking fumes would cause false alarms from smoke detectors.`},{q:`How long does installation take?`,a:`A typical home installation takes 2â4 hours depending on the number of alarms and cable routing required.`}],tags:[`Domestic`,`Landlord`,`Compliance`,`Safety`]},{slug:`surge-protection-electrician-leamington-spa`,title:`Surge Protection`,tagline:`Whole-home surge protection to safeguard your electronics and appliances`,icon:`ri-flashlight-fill`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/7bf09af5-f88e-4aaf-a830-18bc54bb5105_surge-protection.jpeg?v=587c4859562e3020cf3eb7b583922a88`,intro:`Voltage surges â caused by lightning strikes, grid switching or large appliances switching on â can damage or destroy sensitive electronics and appliances. A whole-home surge protection device (SPD) installed at your consumer unit protects everything connected to your electrical system.`,benefits:[{icon:`ri-shield-check-line`,title:`Whole-Home Protection`,desc:`A single SPD at the consumer unit protects every device and appliance in your home simultaneously.`},{icon:`ri-tv-line`,title:`Protects Electronics`,desc:`TVs, computers, heating controls and white goods are all vulnerable to surge damage.`},{icon:`ri-file-shield-2-line`,title:`18th Edition Requirement`,desc:`The 18th Edition wiring regulations recommend SPDs in most domestic and commercial installations.`},{icon:`ri-money-pound-circle-line`,title:`Cost Effective`,desc:`An SPD costs a fraction of the value of the electronics it protects.`}],whatWeOffer:[`Type 1+2 SPD installation at consumer unit`,`Type 2 SPD installation`,`SPD installation on new consumer unit upgrades`,`Retrofit SPD installation on existing boards`,`Commercial surge protection systems`],faqs:[{q:`Do I need surge protection?`,a:`The 18th Edition wiring regulations recommend SPDs in most installations. If you have sensitive electronics, heating controls or solar panels, surge protection is strongly recommended.`},{q:`What type of SPD do I need?`,a:`Type 2 SPDs are suitable for most domestic installations. Type 1+2 combined devices are recommended where there is a risk of direct lightning strike. We'll advise on the correct type for your property.`},{q:`Can an SPD be added to my existing consumer unit?`,a:`Yes. We can retrofit an SPD to most existing consumer units. In some cases a new consumer unit may be required.`},{q:`How much does surge protection cost?`,a:`An SPD installation typically costs £150â£300 depending on the type and your consumer unit. Contact us for a quote.`}],tags:[`Domestic`,`Commercial`,`Compliance`]},{slug:`earthing-and-bonding-electrician-leamington-spa`,title:`Earthing & Bonding`,tagline:`Correct earthing and bonding to keep your electrical installation safe`,icon:`ri-earth-line`,heroImage:`/ai/img_res/fa58027edbc4889e9f812d860ce59977.webp`,intro:`Correct earthing and bonding is fundamental to electrical safety. It ensures that in the event of a fault, protective devices operate correctly and dangerous voltages cannot appear on metalwork that people might touch. We inspect, test and install earthing and bonding to current standards.`,benefits:[{icon:`ri-shield-check-line`,title:`Essential Safety`,desc:`Correct earthing ensures protective devices operate in a fault, preventing electric shock and fire.`},{icon:`ri-search-eye-line`,title:`Inspection & Testing`,desc:`We test your earthing and bonding as part of an EICR or as a standalone inspection.`},{icon:`ri-file-shield-2-line`,title:`BS 7671 Compliant`,desc:`All earthing and bonding work carried out to the latest 18th Edition wiring regulations.`},{icon:`ri-home-4-line`,title:`All Property Types`,desc:`We carry out earthing and bonding work in domestic, commercial and industrial premises.`}],whatWeOffer:[`Main protective bonding installation`,`Supplementary bonding in bathrooms and kitchens`,`Earth electrode installation`,`Earthing system inspection and testing`,`TN-S to TN-C-S earthing upgrades`,`Earthing and bonding remedial works from EICR`],faqs:[{q:`What is the difference between earthing and bonding?`,a:`Earthing connects the electrical installation to earth via the supply. Bonding connects metalwork (pipes, structural steel) to the earthing system to prevent dangerous voltage differences.`},{q:`How do I know if my bonding is adequate?`,a:`An EICR will identify any deficiencies in your earthing and bonding. Common issues include missing bonding to gas and water pipes.`},{q:`Is bonding required in bathrooms?`,a:`Supplementary bonding in bathrooms was required under older regulations. Under the 18th Edition it may not be required if the main bonding is adequate, but we'll assess and advise.`},{q:`Can you carry out bonding as a standalone job?`,a:`Yes. We regularly carry out bonding installations as remedial works following an EICR.`}],tags:[`Domestic`,`Commercial`,`Compliance`,`Safety`]},{slug:`rcd-testing-electrician-leamington-spa`,title:`RCD Testing`,tagline:`Professional RCD testing to verify your electrical protection is working`,icon:`ri-shield-check-line`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/86e7e590-6b12-432b-b1b6-2041dc12f70f_RCD-Testing.jpeg?v=5abd12e52ba67a9c56f456b36f59d3ed`,intro:`RCDs (Residual Current Devices) are your primary protection against electric shock and electrical fires. Regular testing ensures they operate within the required parameters and will protect you when needed. We carry out RCD testing as part of an EICR or as a standalone service.`,benefits:[{icon:`ri-shield-check-line`,title:`Verified Protection`,desc:`Testing confirms your RCDs will operate correctly in a fault, providing the protection they're designed for.`},{icon:`ri-file-text-line`,title:`Test Certificates`,desc:`Written test results provided confirming RCD operation times and trip currents.`},{icon:`ri-timer-line`,title:`Quick & Non-Invasive`,desc:`RCD testing is carried out using specialist test equipment and causes minimal disruption.`},{icon:`ri-scales-3-line`,title:`Compliance`,desc:`Regular RCD testing is recommended by BS 7671 and required under some maintenance contracts.`}],whatWeOffer:[`RCD operation time testing`,`RCD trip current testing`,`Consumer unit RCD testing`,`Socket outlet RCD testing`,`Test certificates issued on completion`,`Faulty RCD replacement`],faqs:[{q:`How often should RCDs be tested?`,a:`BS 7671 recommends quarterly operation tests (pressing the test button) by the user and full instrument testing every 1â5 years depending on the installation type.`},{q:`What does the test button on my RCD do?`,a:`Pressing the test button simulates a fault and should cause the RCD to trip. If it doesn't trip, the RCD is faulty and should be replaced immediately.`},{q:`My RCD trips when I press the test button but won't reset â what should I do?`,a:`This usually indicates a fault on the circuit. Unplug all appliances on the affected circuits and try resetting. If it still won't reset, call us.`},{q:`Can you replace a faulty RCD?`,a:`Yes. We can replace faulty RCDs on the same visit as testing in most cases.`}],tags:[`Domestic`,`Commercial`,`Compliance`,`Safety`]}];
31function ou(e){return W.find(t=>t.slug===e)}var su={"Installation & Upgrades":{border:`border-t-[#14532D]`,iconBg:`bg-[#14532D]`,tag:`bg-[#F0FDF4] text-[#14532D] border-[#BBF7D0]`},"Lighting & Security":{border:`border-t-[#16A34A]`,iconBg:`bg-[#16A34A]`,tag:`bg-[#F0FDF4] text-[#16A34A] border-[#BBF7D0]`},"EV & Renewables":{border:`border-t-[#22C55E]`,iconBg:`bg-[#22C55E]`,tag:`bg-[#F0FDF4] text-[#16A34A] border-[#BBF7D0]`},"Repairs & Maintenance":{border:`border-t-[#16A34A]`,iconBg:`bg-[#16A34A]`,tag:`bg-[#F0FDF4] text-[#16A34A] border-[#BBF7D0]`},"Safety & Compliance":{border:`border-t-[#22C55E]`,iconBg:`bg-[#22C55E]`,tag:`bg-[#F0FDF4] text-[#16A34A] border-[#BBF7D0]`}},cu={"Installation & Upgrades":`ri-plug-line`,"Lighting & Security":`ri-lightbulb-flash-line`,"EV & Renewables":`ri-charging-pile-line`,"Repairs & Maintenance":`ri-tools-line`,"Safety & Compliance":`ri-shield-check-line`};function lu(){let e=(0,E.useRef)(null),[t,n]=(0,E.useState)(!1);return(0,E.useEffect)(()=>{let t=new IntersectionObserver(([e])=>{e.isIntersecting&&n(!0)},{threshold:.02});return e.current&&t.observe(e.current),()=>t.disconnect()},[]),(0,M.jsx)(`section`,{className:`py-16 md:py-24 bg-[#F9FAFB]`,children:(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6`,children:[(0,M.jsxs)(`div`,{className:`text-center mb-12`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#16A34A] font-semibold text-xs uppercase tracking-widest mb-3`,children:`Everything We Offer`}),(0,M.jsx)(`h2`,{className:`text-2xl md:text-4xl font-extrabold text-[#14532D] mb-3`,children:`All Electrical Services`}),(0,M.jsxs)(`p`,{className:`text-[#6B7280] text-sm md:text-base max-w-xl mx-auto`,children:[`Click any service to learn more. From `,(0,M.jsx)(`strong`,{children:`EV charger installation near you`}),` to solar panel systems and emergency electrician call-outs â if itâs electrical, we do it. Not sure what you need? Call for free advice.`]})]}),(0,M.jsx)(`div`,{ref:e,className:`flex flex-col gap-14`,children:au.map((e,n)=>{let r=su[e.title]??su[`Installation & Upgrades`],i=cu[e.title]??`ri-flashlight-line`,a=e.slugs.map(e=>W.find(t=>t.slug===e)).filter(Boolean);return(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3 mb-6`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-xl ${r.iconBg}`,children:(0,M.jsx)(`i`,{className:`${i} text-white text-lg`})}),(0,M.jsx)(`h3`,{className:`text-lg md:text-xl font-extrabold text-[#14532D]`,children:e.title}),(0,M.jsx)(`div`,{className:`flex-1 h-px bg-gray-200 ml-2`})]}),(0,M.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4`,children:a.map((e,i)=>(0,M.jsxs)(`a`,{href:`/service/${e.slug}`,className:`group bg-white rounded-xl border border-gray-100 border-t-4 ${r.border} flex flex-col h-full transition-all duration-500 hover:-translate-y-1 hover:border-t-[#22C55E] cursor-pointer ${t?`opacity-100 translate-y-0`:`opacity-0 translate-y-8`}`,style:{transitionDelay:`${n*50+i*40}ms`},children:[(0,M.jsxs)(`div`,{className:`p-5 flex-1`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-xl ${r.iconBg} mb-3 group-hover:bg-[#22C55E] transition-colors`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-white text-base`})}),(0,M.jsx)(`h4`,{className:`text-sm font-bold text-[#111827] mb-1.5 leading-snug group-hover:text-[#14532D] transition-colors`,children:e.title}),(0,M.jsx)(`p`,{className:`text-xs text-[#6B7280] leading-relaxed line-clamp-2`,children:e.tagline})]}),(0,M.jsxs)(`div`,{className:`px-5 pb-4 flex items-center justify-between`,children:[(0,M.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:e.tags.slice(0,2).map(e=>(0,M.jsx)(`span`,{className:`text-xs font-semibold px-2 py-0.5 rounded-full border ${r.tag}`,children:e},e))}),(0,M.jsx)(`i`,{className:`ri-arrow-right-line text-[#22C55E] text-base flex-shrink-0 ml-2 opacity-0 group-hover:opacity-100 transition-opacity`})]})]},e.slug))})]},e.title)})}),(0,M.jsx)(`div`,{className:`mt-12 text-center`,children:(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-2 text-sm text-[#6B7280]`,children:[(0,M.jsx)(`i`,{className:`ri-checkbox-circle-fill text-[#22C55E]`}),W.length,` services available across Leamington Spa & Warwickshire`]})})]})})}function uu({onQuote:e}){return(0,M.jsx)(`section`,{className:`w-full bg-black py-14 md:py-20`,children:(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center`,children:[(0,M.jsxs)(`p`,{className:`text-white text-base md:text-2xl font-extrabold uppercase tracking-wide leading-snug mb-6 md:mb-8`,children:[`CALL US TODAY ON`,` `,(0,M.jsx)(`a`,{href:`tel:01926768080`,className:`text-[#22C55E] hover:text-[#86EFAC] transition-colors underline underline-offset-4`,children:`01926 768080`}),` `,`FOR A FREE, NO OBLIGATION, QUOTATION FOR YOUR PROJECT.`,` `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`YOUR CALL MATTERS TO US, AND WE WILL RESPOND.`})]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md bg-[#22C55E] text-white font-bold text-base hover:bg-[#16A34A] transition-colors whitespace-nowrap w-full sm:w-auto`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-lg`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:e,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md border-2 border-white text-white font-bold text-base hover:bg-white hover:text-black transition-colors whitespace-nowrap cursor-pointer w-full sm:w-auto`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line text-lg`}),`GET A FREE QUOTE`]})]})]})})}var du=`https://www.electriciansinleamingtonspa.co.uk`;function fu(){let{openQuote:e,openSolar:t}=nu();return ca({title:`Electrical Services in Leamington Spa - IntoLec Ltd`,description:`Full range of electrical services in Leamington Spa. EV charger installation, solar panels, EICR, rewiring, consumer unit upgrades, lighting, emergency electrician & more. Call 01926 768080.`,canonicalPath:`/services`,jsonLd:{"@context":`https://schema.org`,"@type":`ItemList`,name:`Electrical Services`,itemListElement:W.map((e,t)=>({"@type":`ListItem`,position:t+1,name:e.title,url:`${du}/service/${e.slug}`}))}}),(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(iu,{onQuote:e}),(0,M.jsxs)(`main`,{children:[(0,M.jsx)(lu,{}),(0,M.jsx)(uu,{onQuote:e})]}),(0,M.jsx)(Ya,{onQuote:e}),(0,M.jsx)(I,{onQuote:e,onSolar:t})]})}function pu({onQuote:e}){return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(F,{onQuote:e,activePage:`areas`}),(0,M.jsxs)(`div`,{className:`relative pt-20 mt-10 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`absolute inset-0 bg-[#14532D]`}),(0,M.jsx)(`div`,{className:`absolute inset-0 opacity-10`,style:{backgroundImage:`repeating-linear-gradient(45deg, #22C55E 0, #22C55E 1px, transparent 0, transparent 50%)`,backgroundSize:`20px 20px`}}),(0,M.jsxs)(`div`,{className:`relative z-10 max-w-7xl mx-auto px-4 md:px-6 py-16 md:py-24 text-center`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#86EFAC] font-semibold text-xs uppercase tracking-widest mb-4`,children:`Intolec Ltd`}),(0,M.jsxs)(`h1`,{className:`text-3xl md:text-6xl font-extrabold text-white mb-5 leading-tight`,children:[`Electrician Areas `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`Leamington Spa`})]}),(0,M.jsx)(`p`,{className:`text-[#86EFAC]/90 text-base md:text-xl max-w-2xl mx-auto leading-relaxed`,children:`Based in Leamington Spa, we serve homeowners and businesses across Warwickshire and the surrounding areas. Not sure if we cover you? Just give us a call.`}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-4 mt-8`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-7 py-3.5 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Call 01926 768080`]}),(0,M.jsxs)(`button`,{onClick:e,className:`inline-flex items-center gap-2 px-7 py-3.5 rounded-lg border-2 border-white text-white font-bold text-sm hover:bg-white/10 transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]}),(0,M.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 h-8 bg-white`,style:{clipPath:`ellipse(55% 100% at 50% 100%)`}})]})]})}var mu=[{name:`Barford`,distance:`4 miles`},{name:`Birdingbury`,distance:`7 miles`},{name:`Bishops Itchington`,distance:`9 miles`},{name:`Bishops Tachbrook`,distance:`3 miles`},{name:`Campden`,distance:`18 miles`},{name:`Cubbington`,distance:`2 miles`},{name:`Daventry`,distance:`16 miles`},{name:`Fenny Compton`,distance:`11 miles`},{name:`Gaydon`,distance:`8 miles`},{name:`Hampton Magna`,distance:`5 miles`},{name:`Harbury`,distance:`6 miles`},{name:`Hatton`,distance:`6 miles`},{name:`Henley in Arden`,distance:`12 miles`},{name:`Hunningham`,distance:`5 miles`},{name:`Knowle`,distance:`14 miles`},{name:`Leamington Spa`,distance:`Base`},{name:`Moreton in Marsh`,distance:`22 miles`},{name:`Princethorpe`,distance:`6 miles`},{name:`Radford Semele`,distance:`2 miles`},{name:`Ryton on Dunsmore`,distance:`8 miles`},{name:`Shirley`,distance:`13 miles`},{name:`Southam`,distance:`8 miles`},{name:`Stoneleigh`,distance:`4 miles`},{name:`Stratford Upon Avon`,distance:`9 miles`},{name:`Tiddington`,distance:`10 miles`},{name:`Ufton`,distance:`5 miles`},{name:`Warwick`,distance:`3 miles`},{name:`Warwickshire`,distance:`County`},{name:`Whitnash`,distance:`1 mile`}];function hu({area:e,index:t,visible:n}){let r=e.distance===`Base`,i=e.distance===`County`,a=e.name.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``);return(0,M.jsxs)(j,{to:`/electrician-in/${a}`,className:`group bg-white rounded-xl border border-gray-100 border-l-4 ${r?`border-l-[#22C55E]`:i?`border-l-[#16A34A]`:`border-l-[#14532D]`} p-5 flex items-center justify-between transition-all duration-500 hover:-translate-y-0.5 hover:border-l-[#22C55E] cursor-pointer ${n?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,style:{transitionDelay:`${t*40}ms`},children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`div`,{className:`w-8 h-8 flex items-center justify-center rounded-full flex-shrink-0 ${r?`bg-[#22C55E]`:`bg-[#F0FDF4]`}`,children:(0,M.jsx)(`i`,{className:`ri-map-pin-2-fill text-sm ${r?`text-white`:`text-[#16A34A]`}`})}),(0,M.jsx)(`span`,{className:`font-semibold text-sm ${r?`text-[#14532D]`:`text-[#111827]`}`,children:e.name})]}),(0,M.jsx)(`span`,{className:`text-xs font-bold px-2.5 py-1 rounded-full whitespace-nowrap ${r?`bg-[#22C55E] text-white`:i?`bg-[#F0FDF4] text-[#16A34A] border border-[#BBF7D0]`:`bg-[#F9FAFB] text-[#6B7280] border border-gray-200 group-hover:bg-[#F0FDF4] group-hover:text-[#16A34A] group-hover:border-[#BBF7D0] transition-colors`}`,children:e.distance})]})}function gu(){let e=(0,E.useRef)(null),[t,n]=(0,E.useState)(!1);return(0,E.useEffect)(()=>{let t=new IntersectionObserver(([e])=>{e.isIntersecting&&n(!0)},{threshold:.05});return e.current&&t.observe(e.current),()=>t.disconnect()},[]),(0,M.jsx)(`section`,{className:`py-16 md:py-24 bg-[#F9FAFB]`,children:(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6`,children:[(0,M.jsxs)(`div`,{className:`text-center mb-12`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#16A34A] font-semibold text-xs uppercase tracking-widest mb-3`,children:`Service Coverage`}),(0,M.jsx)(`h2`,{className:`text-2xl md:text-4xl font-extrabold text-[#14532D] mb-3`,children:`Areas We Cover`}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-sm md:text-base max-w-xl mx-auto`,children:`Below is a list of the areas that we work in. Not on the list? Give us a call â we may still be able to help.`})]}),(0,M.jsx)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-4 mb-12`,children:[{icon:`ri-map-2-line`,value:`${mu.length}`,label:`Areas Covered`},{icon:`ri-road-map-line`,value:`25+`,label:`Miles Radius`},{icon:`ri-home-4-line`,value:`500+`,label:`Local Customers`},{icon:`ri-time-line`,value:`24/7`,label:`Emergency Cover`}].map(e=>(0,M.jsxs)(`div`,{className:`bg-white rounded-xl border border-gray-100 p-5 text-center`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-full bg-[#F0FDF4] mx-auto mb-3`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-[#16A34A] text-lg`})}),(0,M.jsx)(`p`,{className:`text-2xl font-extrabold text-[#14532D]`,children:e.value}),(0,M.jsx)(`p`,{className:`text-xs text-[#6B7280] mt-0.5`,children:e.label})]},e.label))}),(0,M.jsx)(`div`,{ref:e,className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3`,children:mu.map((e,n)=>(0,M.jsx)(hu,{area:e,index:n,visible:t},e.name))}),(0,M.jsxs)(`div`,{className:`mt-12 bg-white rounded-2xl border border-[#BBF7D0] p-8 text-center`,children:[(0,M.jsx)(`div`,{className:`w-14 h-14 flex items-center justify-center rounded-full bg-[#F0FDF4] mx-auto mb-4`,children:(0,M.jsx)(`i`,{className:`ri-question-line text-[#16A34A] text-2xl`})}),(0,M.jsx)(`h3`,{className:`text-lg font-bold text-[#14532D] mb-2`,children:`Don't see your area?`}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-sm mb-6 max-w-md mx-auto`,children:`We cover a wide area across Warwickshire and beyond. Give us a call and we'll let you know if we can get to you.`}),(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-7 py-3.5 rounded-lg bg-[#14532D] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Call 01926 768080`]})]})]})})}function _u(){let{openQuote:e,openSolar:t}=nu();return ca({title:`Areas We Cover | Electrician Leamington Spa & Warwickshire - IntoLec Ltd`,description:`Intolec Ltd covers Leamington Spa, Warwick, Stratford upon Avon, Southam, Kenilworth, Whitnash and across Warwickshire. Call 01926 768080 for a local electrician.`,canonicalPath:`/areas`,jsonLd:{"@context":`https://schema.org`,"@type":`LocalBusiness`,name:`Intolec Ltd`,url:`https://www.electriciansinleamingtonspa.co.uk/areas`,areaServed:mu.map(e=>({"@type":`Place`,name:e.name}))}}),(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(pu,{onQuote:e}),(0,M.jsxs)(`main`,{children:[(0,M.jsx)(gu,{}),(0,M.jsx)(`section`,{className:`w-full bg-black py-14 md:py-20`,children:(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center`,children:[(0,M.jsxs)(`p`,{className:`text-white text-base md:text-2xl font-extrabold uppercase tracking-wide leading-snug mb-6 md:mb-8`,children:[`CALL ME TODAY AND SPEAK DIRECTLY TO A TRAINED, PROFESSIONAL ELECTRICIAN,`,` `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`OR REQUEST A CALLBACK.`})]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md bg-[#22C55E] text-white font-bold text-base hover:bg-[#16A34A] transition-colors whitespace-nowrap w-full sm:w-auto`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-lg`}),`01926 768080`]}),(0,M.jsxs)(j,{to:`/contact`,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md border-2 border-white text-white font-bold text-base hover:bg-white hover:text-black transition-colors whitespace-nowrap w-full sm:w-auto`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line text-lg`}),`GET A FREE QUOTE`]})]})]})})]}),(0,M.jsx)(Ya,{onQuote:e}),(0,M.jsx)(I,{onQuote:e,onSolar:t})]})}function vu({onQuote:e}){return(0,M.jsx)(F,{onQuote:e,activePage:`service`})}var yu=[{slug:`electrician-warwickshire`,title:`Electrician in Warwickshire`,category:`General`,categorySlug:`general`,date:`15 March 2024`,readTime:`1 min read`,excerpt:`Are you searching for a reliable electrician in Warwickshire? At Intolec we take great pride in being your trusted local electrician in Warwickshire.`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/08ffe935-fcb6-4857-a79a-3c7
31bae929ee1_electrician-in-warwick.jpg?v=3b21d75fdc5c0655216156b7d8608202`,sections:[{type:`intro`,text:`Are you searching for a <strong>reliable electrician in Warwickshire</strong>? At Intolec we take great pride in being your trusted local electrician in Warwickshire, covering Leamington Spa, Warwick, Kenilworth, Coventry, Stratford-upon-Avon and the surrounding areas. We provide a wide range of high-quality electrical services and come highly recommended by our many happy customers. Whether your electrical job is large or small, we have the skills, knowledge, and experience to help.`},{type:`h2`,text:`Local Electrician in Warwickshire`},{type:`p`,text:`We take great pride in being the go-to local electrician in Warwickshire, but why should being local make a difference when choosing an electrician to work in your home? One of the key ways customers first find an electrician is through recommendations, often by consulting their friends, family and neighbours. As a local electrician in Warwickshire, we have worked hard to develop good relationships with our customers and to build a solid reputation for excellence. When you ask your friends to recommend a local electrician, our name should be pop up. An electrician who is not based locally will be unlikely to have invested in building such a relationship with their customers. You can see what some of your neighbours have to say about our service by checking out our testimonials page.`},{type:`h2`,text:`Qualified and Registered Electrician in Warwickshire`},{type:`p`,text:`Working with electricity is not something to take lightly and it's important that the person you choose to work in your Warwickshire home understands the potential dangers. Most of the electrical system in your home is concealed from view, hidden behind walls, ceilings, and floors. This makes it hard to tell if your electrics have been left in a dangerous state of repair until it is too late. A loose connection or poorly routed wire can start an electrical fire or cause an electric shock and amateur electrical work will often leave you needing expensive remedial works. It is far safer to choose a qualified, registered electrician. They will have the experience and training necessary to complete your electrical work safely and in a timely fashion. As registered electricians, their work will be backed by guarantees, giving you further peace of mind.`},{type:`h2`,text:`Electrical Services in Warwickshire`},{type:`p`,text:`Many people think that as a local electrician we may only carry out limited works. This couldn't be further from the truth! Our Warwickshire based electricians have a vast wealth of experience and training to draw upon. We can help with everything from large projects such as solar panel installations to the smaller jobs such as outdoor lighting. The electrical services we offer include:`},{type:`ul`,items:[`Electrical Inspections including EICRs`,`EV Charger Installations`,`Solar Panel Installations`,`Fuse Board/Consumer Unit Upgrades`,`Solar Battery Upgrades`,`Security Lighting`,`Garden Electrics`]},{type:`p`,text:`Don't hesitate to call us if the service you need is not listed, we will be happy to discuss your project and there is little that our experienced team cannot help with. If you are searching for a reliable, qualified and highly recommended local electrician in Warwickshire, look no further than Intolec. Our experienced, fully qualified and NAPIT registered electricians can help with all your electrical needs. We cover the entirety of Warwickshire, from Leamington Spa, Warwick, Stratford upon Avon and all the smaller villages in between. Contact our friendly team today.`}]},{slug:`eicrs-homeowners-warwickshire`,title:`EICRs for Homeowners in Warwickshire`,category:`EICRs`,categorySlug:`eicrs`,date:`22 March 2024`,readTime:`2 min read`,excerpt:`When was the last time your home in Warwickshire had its electrics inspected? It's recommended homes across the UK have a full Electrical Installation Condition Report (EICR) carried out every ten years.`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/bfa323bf-8708-4c20-adc6-a9c1c5d8cfd9_Do-I-need-a-new-Fuseboard-for-an-EV-charger-installation---Intolec.-Leamington-Spa.jpg?v=c10c9eacc2f783fb520992d870c70b8d`,sections:[{type:`intro`,text:`When was the last time your home in Warwickshire had its electrics inspected? Let's face it, if you haven't had any issues in the last five, or even ten years, probably never! Did you know it's recommended homes across the UK have a full Electrical Installation Condition Report (EICR) carried out every ten years? Although not enforceable by law, the recommendation is strong and should be taken seriously, just like your car's yearly MOT.`},{type:`h2`,text:`What is an EICR?`},{type:`p`,text:`An Electrical Installation Condition Report, or for short an EICR, is an in-depth electrical assessment performed on all types of properties. The EICR will detect any flaws with your electrical system that may need attention or upgrading. This ensures your electrical system is safe and electrically compliant with current safety regulations. The report uses grades to determine urgencie
31s and which, if any, faults need attention first.`},{type:`h2`,text:`EICR Codes Explained:`},{type:`ul`,items:[`C1 - Suggests danger is present and urgent remedial work is required.`,`C2 - Suggests potential danger, remedial work is needed as soon as possible.`,`C3 - Suggests improvements are made.`,`FI - Stands for 'further investigation' & means further testing is required to understand the fault.`]},{type:`h2`,text:`Common EICR Fails & How to Avoid Them`},{type:`p`,text:`Common EICR fails include:`},{type:`ul`,items:[`Damage to sockets & switches`,`Faulty wiring`,`Broken light fittings`,`Lack of safety devices like RCDs`,`Insufficient earth bonding & more.`]},{type:`p`,text:`To avoid failing an EICR, you should keep up to date with electrical inspections and ensure faults are repaired promptly. If you notice things like flickering lights, burning smells, frequent tripping or even hot sockets and switches, we strongly advise you consult your local electrician before more issues arise. Leaving faulty electrics may cause further damage down the line costing you more time and money.`},{type:`h2`,text:`Do I Need an EICR to Sell My House?`},{type:`p`,text:`Although not a legal requirement, an EICR could make selling your home easier, especially if no faults are found. Even if defects are spotted, getting these professionally repaired post EICR will give your potential buyers peace of mind, often leading to a quicker completion.`},{type:`h2`,text:`Arranging Remedial Works After an EICR`},{type:`p`,text:`Unfortunately, not all homes will pass an EICR. Being handed a failed EICR is always a kick in the teeth but there's no need to worry with Intolec. Our electricians will sit down with you and explain what's required to make your home as safe as possible. We will happily go through the report with you and answer any questions you may have. Our job is to address your concerns with confidence and offer high quality electrical solutions. Urgent faults which need repairing ASAP will be arranged at our next available date, rest assured though we will never leave your property in an unsafe condition. It might mean we do some temporary work and return at a later date when we've got more time and the right equipment to solve the issue completely.`},{type:`h2`,text:`EICRs & Annual Safety Inspections`},{type:`p`,text:`Concerned your electrics are overdue a check? Protect your peace of mind and arrange for an EICR or annual safety inspection with Intolec, Warwickshire today. At Intolec, we are fully registered and insured with NAPIT and proud to be a Which? Trusted Trader. We carry out safety inspections with precision and great attention to detail, spotting things some may miss. For more information on EICRs and annual safety inspections and how your Warwickshire home can become safer and more energy efficient, get in touch with our friendly team today.`}]},{slug:`landlords-eicr`,title:`Landlords EICR`,category:`EICRs`,categorySlug:`eicrs`,date:`5 April 2024`,readTime:`1 min read`,excerpt:`Are you a landlord in Warwickshire? Do you know if the electrics are safe in your rental property? A landlords EICR is the only way to be certain, and to fulfil your legal obligations.`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/a810f4f8-c91e-4d6a-9b55-7156ed356c81_How-do-Solar-Batteries-Work---Intolec-Warwick-1.jpg?v=1ee31e56349438869fe124465b08b59c`,sections:[{type:`intro`,text:`Are you a landlord in Warwickshire? Do you know if the electrics are safe in your rental property? A landlords EICR is the only way to be certain, and to fulfil your legal obligations. Intolec, in Warwickshire are your local EICR specialist who can perform an electrical safety test to ensure your property is at no risk of electrical faults or dangers.`},{type:`h2`,text:`What is a Landlords EICR?`},{type:`p`,text:`An Electrical Installation Condition Report (EICR), also known as 'The Landlord Safety Test', is a written report by a qualified electrician stating the condition of the electrics in your Warwickshire property. Detecting where there are dangers in the electrical systems, they are used to advise you on what needs immediate attention and show you where other improvements can be made.`},{type:`h2`,text:`Understanding Landlords EICR Codes`},{type:`p`,text:`The written safety report uses grades to determine what needs your attention first.`},{type:`ul`,items:[`C1 â This means danger is present and there is high risk of injury. If you get a C1 then immediate action is required.`,`C2 â Just below the dangers of C1, C2 means there is potential danger and requires urgent attention.`,`C3 â There is no clear dangers present, but improvements should be made to improve its safety.`,`FI â This stand for further investigation.`]},{type:`p`,text:`Understanding your EICR is important. You need to know where the dangers are so you can improve its safety quickly. You landlords EICR electrician will explain the findings to you.`},{type:`h2`,text:`Why Do Landlords Need an EICR?`},{type:`p`,text:`As a landlord in Warwickshire you are responsible for the safety of your electrics. It is a legal requirement to have a valid EICR if you want to rent your property in England, Scotland, or Wales. If any electrical dangers were to arise within your property, then the landlord will be liable. By having a valid EICR you are protecting yourself and your tenants from any hazards such as shocks and fires. By performing an EICR, you are making yourself aware of any electrical dangers allowing you to rectify the problems immediately before causing any harm to your tenants.`},{type:`h2`,text:`How Often Should an EICR be Performed?`},{type:`p`,text:`Before renting out a property, a landlord must get an EICR to ensure the tenants will be safe in their home. After an initial assessment, landlords are instructed to perform one every 5 years. A copy of the electrical certificate should then be given to their tenants and also may be requested by the local authority. This should be available within 7 working days.`},{type:`h2`,text:`What Happens if I Don't Get an EICR?`},{type:`p`,text:`By not following government safety guidelines landlords are putt
31ing their tenants at risk of electrical dangers. EICRs are performed to ensure the electrics are safe for tenants and failing comply with these rules may result in a hefty £30,000 fine. If you are a landlord in Warwickshire, don't delay in booking your EICR today. If the EICR on your Warwickshire property is coming to an end, then Intolec would love to support your business running and property free of electrical dangers. Contact us today for a free quote for your Landlords Electrical Installation Safety Report.`}]},{slug:`how-do-solar-batteries-work`,title:`How Do Solar Batteries Work?`,category:`Solar and Battery Storage System`,categorySlug:`solar-and-battery-storage-system`,date:`18 April 2024`,readTime:`2 min read`,excerpt:`As a local electrician in Warwick, we regularly carry out Solar Panel and Battery installation. The benefits of a well installed sun powered electrical system are numerous.`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/a4402f73-07a9-433d-8640-9808e3170c48_How-do-Solar-Batteries-Work---Intolec-Warwick.jpg?v=1ee31e56349438869fe124465b08b59c`,sections:[{type:`intro`,text:`As a local electrician in Warwick, we regularly carry out Solar Panel and Battery installation. The benefits of a well installed sun powered electrical system are numerous. Powering your home when there is sufficiently strong light will save money, can reduce your carbon footprint and your reliance on the national grid for supplying your power.`},{type:`p`,text:`Solar systems are particularly useful for properties in remote locations where obtaining a grid connection for electricity could prove incredibly expensive. When there is good light and plenty of power available, we are often not in a position to be able to benefit from the surplus of electricity, so what happens? Well, in many cases, this could simply be wasted. Solar Battery Storage offers a solution.`},{type:`h2`,text:`What Are Solar Batteries?`},{type:`p`,text:`Solar batteries store the electricity that the solar panels produce and keep hold of it for later. This stored energy can be used anytime its needed including throughout the dark hours or night time. Game changer, no? If we consider a typical domestic home, most people are out at work during the day time and come home in the dark or with minimal light left of the day. Then the power needs for the property increase as we cook the dinner, put the lights on and switch the TV or EV charger. All of a sudden there is a demand for electricity that, without Solar Batteries, would not be available and would have to come from the national grid.`},{type:`h2`,text:`How Do Solar Batteries Work?`},{type:`p`,text:`A solar battery storage setup takes all available power from the solar panels when they are producing it and stores the energy for later when it is needed. This transfer of energy is actually very efficient as little electricity is lost in the process of movement from the panels to batteries, storage and then release. Once this electrical energy is requested back later on in the day, it is transferred from the battery system into the home electrical system through an inverter.`},{type:`h2`,text:`What is an Inverter?`},{type:`p`,text:`Electricity is stored in batteries but it is simply not compatible with our home electrical system in this form. Our electricity supply in the UK is supplied as an alternating current (AC) supply at a frequency of 50Hz. Batteries store electricity as DC or Direct Current. The trouble with this is, DC is lazy. It would never be able to make its way from the power station to our homes effectively. BUT it can make its way from the batteries into our homes AND get converted to AC on the way. The job of the inverter is to change DC into AC so that all the electrical equipment in our homes would work correctly. This process is also quite efficient with minimal losses from the transfer process.`},{type:`h2`,text:`What Does All This Mean for You?`},{type:`p`,text:`With a battery storage system at your Warwick home, you will use less electricity from the grid then just having solar panels alone. The ability to save unused electricity for later on is a fantastic cost saver along with reducing the stress on the grid. The amount of battery storage you require will depend upon the needs and demands of your home electrical system, contact us to discu
31ss your requirements. As your local electrician in Warwick, we also offer a wide range of other services that you may find you need. So don't hesitate to give us a call if you need anything.`}]},{slug:`rewire-electrician-near-me-warwick`,title:`Rewire Electrician Near Me in Warwick`,category:`General`,categorySlug:`general`,date:`2 May 2024`,readTime:`2 min read`,excerpt:`There are many properties in the Warwick area and much of the housing stock is historic. Older properties can have many quirks and require constant maintenance to keep them in tip top condition.`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/b553595d-d20d-48ae-87f7-40eace825542_intolec-rewire.jpg?v=33473ab2319dc09f90ef1e36ea62578d`,sections:[{type:`intro`,text:`There are many properties in the Warwick area and much of the housing stock is historic. Older properties can have many quirks and require constant maintenance to keep them in tip top condition.`},{type:`p`,text:`Electrical wiring is often an overlooked component of any upgrade, improvement or renovation works and as such cabling can be left to decay, fuse boards can degrade internally, and electrical systems in general can fall into disrepair. Electrical faults can develop over many years and when issues start occurring you may need to search for a REWIRE ELECTRICIAN NEAR ME on the internet! As your local electrician in Warwick, we can assist with your electrical needs. If you suspect that you may need a REWIRE IN WARWICK then get in touch and we will be happy to provide you with a quote.`},{type:`h2`,text:`When is a Rewire Necessary?`},{type:`p`,text:`Electrical systems and wiring do not last forever but it is possible to see several decades out of a well installed electrical installation with light use. The only way to establish when a rewire might be necessary is to have an electrical inspection carried out. There can be some signs that electrical faults are present and a rewire is looming such as:`},{type:`h2`,text:`Flickering Lights`},{type:`p`,text:`Where lights begin to flicker, things are not quite right. Loose wiring, burnt out connections and failing lighting components can all be indicators. Whatever the eventual cause is, an electrician should be contacted to investigate the reason for flickering lights as the situation could be potentially dangerous.`},{type:`h2`,text:`Burning Smells`},{type:`p`,text:`Electrical burning smells are unmistakable once experienced. A melting plastic, fishy smell is very common where wiring and connections are smouldering and danger is certainly present under these conditions. If you can smell this odour then it is imperative that you turn off the electrical supply to the component until it is too late and call an electrician immediately. Without prompt investigation this situation will worsen and likely cost more to fix than by taking immediate action.`},{type:`h2`,text:`Frequent Fuse Box Issues`},{type:`p`,text:`If you experience fuses blowing regularly, switches that trip frequently or crackling noises from the fuse box (or anywhere else in the electrics) then you most certainly have electrical issues that require investigation.`},{type:`h2`,text:`Intermittent Power Cuts`},{type:`p`,text:`Intermittent power cuts can be caused by the electricity supply from outside the home and a good way to check if there are power supply issues in your area is to call 105. This is a freephone number and will connect you to the local distribution network operator that supplies the electricity in your area. They will be able to tell you if there are any planned works or emergency works going on that may be affecting your electricity supply intermittently.`},{type:`h2`,text:`What Happens on a Rewire?`},{type:`p`,text:`Rewiring a property involves replacing the electrical cables, sockets, switches, and fuse box. The whole electrical system should be replaced on a complete rewire. The walls are cut open to allow the installation of cables. Fuse/board are lifted to route cables through the property in a hidden manner and back boxes are installed in the walls to enable sockets and switches to be installed. Once all the access works have been carried out and the new cables have been installed, the consumer unit and new electrical accessories are installed.`},{type:`h2`,text:`What is Electrical Testing?`},{type:`p`,text:`Electrical testing is an important safety aspect and requirement of the wiring regulations. Testing is carried out throughout a rewire to ensure that new cabling, electrical accessories, and fuse box / consumer unit are all safe to use and compliant with the wiring regulations. Final testing is carried out once everything has been installed to ensure that the electric shock protection is working as intended and functional testing of the switches and sockets is carried out to ensure everything is working.`},{type:`h2`,text:`Certification`},{type:`p`,text:`Paperwork needs to be completed throughout the process and once finished to document the test results, prove compliance with the wiring regulations and to notify building control (in domestic properties) that the work carried out has been done to safely and in accordance with all regulations.`},{type:`h2`,text:`Get in Touch`},{type:`p`,text:`If you would like to know more about a REWIRE IN WARWICK, or would like to know about covering then please get in touch and we will be happy to discu
31ss your requirements with you.`}]},{slug:`eicr-electrician-warwick`,title:`EICR Electrician in Warwick`,category:`EICRs`,categorySlug:`eicrs`,date:`14 May 2024`,readTime:`1 min read`,excerpt:`What exactly is an EICR? There can be some confusion when there are so many different terms out there for this particular document. As your local electrician in Warwick, we are here to clear this up.`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/c47a4ae2-5792-4548-b1bf-d6f8823dc864_How-do-Solar-Batteries-Work---Intolec-Warwick-2.jpg?v=1ee31e56349438869fe124465b08b59c`,sections:[{type:`intro`,text:`What exactly is an EICR? There can be some confusion when there are so many different terms out there for this particular document. As your local ELECTRICIAN IN WARWICK, we are here to clear this up and explain what this is, what happens during the process and what you can expect from us.`},{type:`h2`,text:`The EICR`},{type:`p`,text:`An EICR is an Electrical Installation Condition Report. This is a worthwhile and valuable document when produced by a reputable electrical company or electrician. The document is produced as a result of a PERIODIC ELECTRICAL INSPECTION. The document and inspection process are often referred to by many casual terms such as:`},{type:`ul`,items:[`Electrical Check`,`Electrical Safety Check`,`Landlord Certificate`,`Landlord Safety Certificate`,`Electrical Certificate`,`Electrical Safety Certificate`,`Homebuyers Electrical Survey`]},{type:`p`,text:`There are no doubt other terms floating around out there as well.`},{type:`h2`,text:`What is a Periodic Electrical Inspection?`},{type:`p`,text:`A Periodic Electrical Inspection is an in-depth and thorough examination of the electrical wiring in your property. We specialise in domestic installations and an examination of an electric system in a domestic properties takes anywhere from 3 to 6 hours depending upon the size, complexity of installation, number of circuits and access conditions. The electrical inspection will include the following:`},{type:`ul`,items:[`In depth electrical testing at the fuse box / consumer unit`,`Testing at plug sockets, switches, and other electrical points`,`Visual inspection of accessories and fuse box / consumer unit`,`Applying 'codes' to any issues that are found`]},{type:`h2`,text:`What is the EICR Document?`},{type:`p`,text:`Following the electrical inspection, the EICR is produced. The document varies in length between 5 and 9 pages usually and will include the following:`},{type:`ul`,items:[`Details of Mains Equipment`,`Circuit Details`,`Consumer Unit / Fusebox Equipment Details`,`Details of Mains Equipment`,`Test Results for Circuits`,`Test Results for Incoming Supply`,`Observations of the inspector`]},{type:`p`,text:`The document is used to prove the condition of the electrical system to potential buyers, the homeowner and tenants or governing bodies when renting. The most recent and previous EICR documents also prove that the system has been properly and professionally maintained (like a car log book) which may prove useful in the case of insurance claims.`},{type:`h2`,text:`When Should I Have a Periodic Electrical Inspection Carried Out?`},{type:`p`,text:`A privately owned domestic property should have an electrical inspection carried out every 10 years as a minimum. This is recommended by the Institute of Engineering and Technology (IET). Where the property is rented, the inspection frequency should be changed to suit the circumstances. The minimum frequency is every 5 years but this could be shortened depending upon the previous inspectors' recommendations. Where electrical systems are showing signs of wear and damage, the electrician (inspector) producing the EICR may recommend that the next inspection is carried out sooner. There are also circumstances that would mean an inspection is recommended such as following a fire, flood or other trauma affecting the wiring system in a property.`},{type:`h2`,text:`What is the Cost of an EICR?`},{type:`p`,text:`The cost of an EICR will often depend upon the number of electrical circuits that require inspection, the number of consumer units in the property, the size of the property and the accessibility of electrical points for inspection. As your local ELECTRICIAN IN WARWICK, we are here to help answer any questions that you may have about Electrical Inspections or EICRs. If you would like a quote for an EICR then please get in touch with us today and we will be happy to help.`}]},{slug:`solar-panel-installation-warwickshire`,title:`Solar Panel Installation in Warwickshire`,category:`Solar and Battery Storage System`,categorySlug:`solar-and-battery-storage-system`,date:`28 May 2024`,readTime:`2 min read`,excerpt:`Are you considering a solar panel installation for your Warwickshire property? Solar panel installations are an increasingly popular choice for homeowners across Warwickshire as ever-increasing energy costs leave households looking for ways to make savings.`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/9a1fc6e4-7ab0-4006-8d2a-b1bb375b79b8_Battery-Storage-installation-inWarwickshire-by-Intolec-LTD.jpg?v=ec0dc776dd19e03daf85e678e24f1743`,sections:[{type:`intro`,text:`Are you considering a solar panel installation for your Warwickshire property? Solar panel installations are an increasingly popular choice for homeowners across Warwickshire as ever-increasing energy costs leave households looking for ways to make savings. If you have questions about the benefits and practicalities of a solar panel installation, Intolec are on hand to help. Our experienced solar panel installer
31s are based in Warwick and work across Warwickshire. We have put together this simple guide to solar panel installations to help answer your most frequently asked questions.`},{type:`h2`,text:`Is My Home Suitable for Solar Panel Installation?`},{type:`p`,text:`This is one of questions we are most frequently asked about solar panel installation in Warwickshire. There are several factors that a reputable solar panel installer will need to consider to determine which way your roof faces. If you have a solely north facing roof its unlikely to receive enough light throughout the day to make solar panels a worthwhile investment for you. Ideally the roof for a solar panel installation should be south facing, but east and westerly facing roofs can all have sufficient exposure for good levels of energy production. Your solar installer will look at how much shading your roof receives from nearby buildings and trees. If it is heavily shaded, then your solar panels won't generate much energy. The condition of your roof will also need to be considered early in the process. A roof should have an angle of between 20° and 50° for optimum performance from your solar panels. It also needs to be strong enough to support the weight of a solar panel installation and in good overall condition. Any repair work that is needed should be carried out before your solar panels are installed.`},{type:`h2`,text:`What Happens During a Solar Panel Installation?`},{type:`p`,text:`Before a solar panel installation begins, your installer will speak with you to discuss the process and to decide the specifications of your solar installation. They will use their experience and training to advise you of the correct number of panels and will talk you through the various additional options including solar batteries. Once the solar panel installation has been booked, your solar panel installer will arrange for scaffolding to be erected at your Warwickshire home. This allows safe access to your roof and will usually be in place for a day or two either side of the actual solar panel installation. On the day of the solar panel installation the first job will be to install the solar panel mounts on your roof before the panels themselves are fitted. The electrician will then wire in your solar panels and install your solar inverter. If you chose a solar battery this will be installed now. The solar panels will then be connected to your fuse box. The electrician will need easy access to this on the day. The power will be off for a period of time while the electrical work is carried out. Your installer will then connect the system to the grid. After everything has been tidied up, they will show you how your system works and answer any questions you may have. And that's it, you are now generating your own clean, green energy!`},{type:`h2`,text:`How Do I Choose a Solar Panel Installer?`},{type:`p`,text:`To make sure you receive the best service and the right advice there are a few things to look for in a solar panel installer:`},{type:`ul`,items:[`Qualified and Registered - Look for a solar panel installer who is both qualified and registered with a governing body such as NAPIT or MCS. This gives you additional protection should things go wrong and provides peace of mind.`,`Quality Products - Which products does your solar panel installer recommend? There are quality options available for any budget and a reputable installer will only use highly rated suppliers. Check out reviews to see which products come highly recommended and which are duds.`,`Competitive quotes - Always ask for at least 3 quotes. You should be able to weed out any that are suspiciously high â or low â and find the right price.`]},{type:`p`,text:`If you are considering a solar panel installation at your Warwickshire home, contact Intolec today. We are experienced, trusted and reliable solar panel installers in Warwick. Our NAPIT registered and fully qualified electricians are here to share their expertise and assist you every step of the way. We are experienced solar panel installers and are accredited by both MCS and MES, so you can feel assured that you are in the best hands. Call us today on 01926 768080 and start your journey to energy independence.`}]},{slug:`security-lighting-installation`,title:`Security Lighting Installation`,category:`Outdoor Security Lighting`,categorySlug:`outdoor-security-lighting`,date:`10 June 2024`,readTime:`2 min read`,excerpt:`If you are looking to improve your Warwickshire home's security with a lighting installation, you need an electrician who is experienced in designing and installing effective home security lighting installations.`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/9a1fc6e4-7ab0-4006-8d2a-b1bb375b79b8_Battery-Storage-installation-inWarwickshire-by-Intolec-LTD.jpg?v=ec0dc776dd19e03daf85e678e24f1743`,sections:[{type:`intro`,text:`If you are looking to improve your Warwickshire home's security with a lighting installation, you need an electrician who is experienced in designing and installing effective home security lighting installations. Searching for a security lighting installer near you in Leamington Spa or Warwick? Intolec are your local, experienced Warwick based security lighting electrician.`},{type:`h2`,text:`Are Security Lights Effective at Protecting a Home?`},{type:`p`,text:`Outdoor security lights are designed to alert you and those around you should an intruder attempt to access your Warwickshire home. When they are illuminated, security lights remove the shadows around points of entry and make it harder for a would-be intruder to access your home unseen. Often just the presence of effective security lighting will deter a would-be thief, as it is no longer an easy, low risk target.`},{type:`h2`,text:`Benefits of a Security Lighting Installation`},{type:`ul`,items:[`Deter intruders â Good security lighting should, at least in part, be highly visible to anyone considering accessing your property. This acts as a visible deterrent, demonstrating that your home is well protected and a high-risk proposition for any would-be thief.`,`Peace of mind â Knowing that your home is properly protected, and that there are no dark shadows for people to lurk in, makes your home feel safer â particularly when coming home or answering the door late at night.`,`Safer access for invited guests â A well planned security lighting installation can be multipurpose and help with more than just security. Careful placement of lights can make your home more inviting to guests, lighting a safe path along your driveway and making it easy to find your front door.`,`Insurance benefits â Many insurers offer lower premiums to homes that improve their security by installing security lights. It is worth finding out if your insurer offers this benefit.`,`Aesthetically pleasing â A security lighting installation can do more than just protect your home; it can make it look good too. The right lighting scheme can be used to highlight pathways and areas of interest and create dramatic effects.`]},{type:`h2`,text:`Security Lighting Styles`},{type:`p`,text:`There are many different kinds of security lights you can select for your Warwickshire home. A good security lighting installation should combine several different lighting styles to provide the best levels of protection. An experienced security lighting electrician will provide invaluable advice as to which lighting would be best for your home. They can create a security lighting design to suit your needs and budget. The main security lighting styles are:`},{type:`ul`,items:[`Motion sensors (PIR Lights) â Motion sensor lights are used to swiftly provide startling bright light when they are triggered. Commonly found near rear or side entrances and garages, they alert anyone nearby that someone is on the property. Operating in short bursts, they represent an energy efficie
31nt option.`,`Floodlights â Floodlights are one of the most popular options for security lighting and are used where constant light is required. They are often used on patios or at the front of a home. Used correctly they can also provide an aesthetically pleasing effect and be used for entertaining in the warmer months.`,`Landscape security lights â These security lights are less utilitarian in design and can create some beautiful effects whilst still making it harder for intruders to access your home. You can select from many different styles to suit your particular tastes.`,`Solar security lights â Solar lights can make a useful addition to a security lighting installation. Particularly useful to mark the boundaries of your property they reduce your energy consumption whilst still enhancing your security.`]},{type:`p`,text:`If you would like a security lighting installation at your Warwickshire home, contact Intolec today. Our experienced electricians will be happy to discuss your options and create a security lighting installation that leaves you and your home safe and secure. For added peace of mind our electricians are all fully qualified and NAPIT registered professionals with a proven track record in providing an outstanding service. We cover Leamington Spa, Warwick, Kenilworth and the wider Warwickshire area. Call us today on 01926 768080.`}]},{slug:`can-i-have-two-ev-chargers-home`,title:`Can I Have Two EV Chargers at Home?`,category:`EV Charger Installer`,categorySlug:`ev-charger-installer`,date:`12 July 2024`,readTime:`2 min read`,excerpt:`With more households switching to electric vehicles, a common question we get asked is whether it is possible to install two EV chargers at home. The answer is yes, absolutely.`,heroImage:`/ai/img_res/3ae9edf4e769b64867505a02b48b8cc1.webp`,sections:[{type:`intro`,text:`With more households in Leamington Spa and Warwickshire switching to electric vehicles, a common question we get asked is whether it is possible to install two EV chargers at home. The answer is yes, absolutely. Whether you have two EVs already or are planning ahead, a dual EV charger installation is a practical and increasingly popular solution from a <strong>trusted local EV charger installer near you</strong>.`},{type:`h2`,text:`Why Would You Need Two EV Chargers?`},{type:`p`,text:`There are several reasons why homeowners in Warwickshire are choosing to install two EV chargers. Many households now have more than one electric vehicle, and sharing a single charger can quickly become inconvenient. Waiting for one car to finish charging before plugging in the other adds unnecessary delays to your daily routine. A dual setup ensures both vehicles are fully charged overnight, ready for the morning commute.`},{type:`p`,text:`Even if you only have one EV at the moment, installing a second charger can be a smart investment. It adds future-proofing to your home, increases property value, and makes your driveway more appealing to buyers with electric vehicles.`},{type:`h2`,text:`What Does Your Electrical Supply Need to Handle Two Chargers?`},{type:`p`,text:`The most important consideration when installing two EV chargers is your home's electrical supply capacity. Two 7kW chargers running simultaneously could draw up to 14kW, which is a significant load. Most modern homes in Warwickshire have a single-phase 100A supply, which can comfortably handle two chargers with the right setup.`},{type:`p`,text:`However, if your home has an older fuse board or a lower capacity supply, an upgrade may be needed before installation. During our free survey, we will assess your incoming supply, check the capacity of your consumer unit, and advise whether any upgrades are required.`},{type:`h2`,text:`Load Balancing and Smart Charging`},{type:`p`,text:`One of the best ways to run two EV chargers safely is through load balancing. This technology ensures that the combined power draw from both chargers never exceeds your home's available supply. If both cars are charging simultaneously, the load balancing system automatically distributes power between them to stay within safe limits.`},{type:`p`,text:`Smart chargers take this a step further. They can schedule charging during off-peak hours, take advantage of cheaper electricity tariffs, and even communicate with your home energy system if you have solar panels or battery storage. At Intolec, we install a range of smart chargers that offer these features, giving you complete control over your home charging setup.`},{type:`h2`,text:`Installation Process for Two EV Chargers`},{type:`p`,text:`Installing two EV chargers is straightforward when handled by a qualified electrician. The process typically involves:`},{type:`ul`,items:[`A free home survey to assess your electrical supply and identify the best charger locations`,`Upgrading your consumer unit if necessary to provide two dedicated circuits with RCD protection`,`Running cable from your fuse board to each charger location, usually surface-mounted or neatly clipped`,`Installing the chargers and connecting them to your home network for smart features`,`Full testing and certification, including notifying building control if required`]}
31,{type:`p`,text:`As OZEV registered EV charger installers, we can also help you access government grants where available, reducing the cost of your installation.`},{type:`h2`,text:`Costs and Grants`},{type:`p`,text:`The cost of installing two EV chargers will depend on several factors, including the distance between your consumer unit and the charger locations, whether any electrical upgrades are needed, and the type of chargers you choose. Smart chargers typically cost more than standard units but offer long-term savings through energy management and off-peak tariffs.`},{type:`p`,text:`Government grants may be available to offset some of the installation cost, particularly for homeowners and landlords. We can advise you on the latest grant schemes and handle the application process on your behalf.`},{type:`h2`,text:`Get in Touch`},{type:`p`,text:`If you are considering a dual EV charger installation at your Warwickshire home, Intolec are here to help. We are fully qualified, OZEV registered, and experienced in designing and installing EV charging solutions for homes of all sizes. Contact us today for a free survey and quote.`}]},{slug:`fuseboard-electrician-warwickshire`,title:`Fuseboard Electrician in Warwickshire`,category:`Consumer Unit Upgrades`,categorySlug:`consumer-unit-upgrades`,date:`20 June 2024`,readTime:`2 min read`,excerpt:`Is your fuse board looking tired or are you noticing faults within your electrical systems? It may be time for a fuse board replacement. Intolec are your local fuse board electrician in Warwickshire.`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/a714c66e-d184-4112-bc4f-3987f5d229d4_myenergi-eddi-solar-diverter-new.jpg?v=4e598862d4324f436e730df59bf2961d`,sections:[{type:`intro`,text:`Is your fuse board looking tired or are you noticing faults within your electrical systems? It may be time for a fuse board replacement. Intolec are your local fuse board electrician in Warwickshire â covering Leamington Spa, Warwick, Kenilworth and the wider county â and we can help you with all your consumer unit upgrades and electrical system replacements.`},{type:`h2`,text:`What is a Fuse Board?`},{type:`p`,text:`A fuse board, also known as a fuse box or consumer unit, is an electrical panel commonly found in utility rooms, porches or the under stairs cupboard in your Warwickshire home. Its main purpose is to safely distribute electricity around your house and, if working correctly, will protect your cables from overload. If it detects an electrical fault, its job is to immediately cut the power to stop any potential hazards, such as electrical shocks or fires. Wherever the installation of a fuse box is in your home, it must be easily accessible to allow maintenance and testing by your fuse board electrician, and resetting if you have a fault.`},{type:`h2`,text:`How Does a Fuse Board Work?`},{type:`p`,text:`The main function of a fuse board is to safely measure the electrical current flowing through your home. If there are signs of too much power flowing through a circuit, then the trip switch on your fuse board will activate. This is a safety feature to stop any electrical damage or any dangers that this may cause. On your fuse board you will find the main switch. The purpose of this switch is to turn off all supply of electricity within your home. This would be used if you are having any electrical work carried out but is also important in electrical emergencies.`},{type:`h2`,text:`Common Faults with a Fuse Board`},{type:`p`,text:`Older homes may be at risk of having an out of date fuse board which would not meet current safety standards. It is easy to tell if your fuse board is outdated by looking at the style of fuse board you have. If your fuse board requires you to manually remove and replace the fuse every time there is a power overload, then it's time for an upgrade. Modern consumer units have switches which will flick off if a fault is detected. This will allow you to safely switch it back on once the issue has been rectified. There are many common signs that your fuse box is faulty. If you are experiencing any of the following, then it's best to contact your local fuse board electrician in Warwickshire to safely fix the faults.`},{type:`ul`,items:[`The smell of burning or the sign of burn marks`,`Recurring tripped circuit breakers`,`Buzzing sounds`,`Flickering or dimming lights`,`Wear and tear of electrics`]},{type:`h2`,text:`Who Can Repair and Install Fuse Boards?`},{type:`p`,text:`Like all electrics, fuse boards must be installed by a qualified electrician. It is important to know the work has been done properly and safely to protect your home from electrical dangers. There is no cutting corners with the safety of electrics, so ensure you use an qualified electrician to keep your family and home safe. Intolec are your local fuse board electricians in Warwickshire. If you are experiencing problems with your fuse box or need your fuse box updating, then get in touch today. We are fully qualified, NAPIT approved and can ensure your electrics will be handled with care.`}]},{slug:`do-i-need-new-fuseboard-ev-charger-installation`,title:`Do I Need a New Fuseboard for an EV Charger Installation?`,category:`EV Charger Installer`,categorySlug:`ev-charger-installer`,date:`5 July 2024`,readTime:`2 min read`,excerpt:`One of the most common questions we get asked when it comes to EV charger installation is whether a new fuseboard is required. The short answer is: it depends.`,heroImage:`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/bfa323bf-8708-4c20-adc6-a9c1c5d8cfd9_Do-I-need-a-new-Fuseboard-for-an-EV-charger-installation---Intolec.-Leamington-Spa.jpg?v=c10c9eacc2f783fb520992d870c70b8d`,sections:[{type:`intro`,text:`One of the most common questions we get asked when it comes to EV charger installation is whether a new fuseboard is required. The short answer is: it depends on the current state of your consumer unit and whether it has the capacity and protection required for a dedicated EV charging circuit.`},{type:`h2`,text:`What Does an EV Charger Need from Your Fuseboard?`},{type:`p`,text:`A home EV charger (typically 7kW) requires a dedicated circuit from your consumer unit. This means a
31spare way in your fuseboard with the correct MCB rating (usually 32A or 40A depending on the charger). The circuit also needs to be RCD protected, which is a requirement under the 18th Edition wiring regulations for all new circuits.`},{type:`h2`,text:`When Will You Need a New Consumer Unit?`},{type:`p`,text:`You are likely to need a new consumer unit if any of the following apply:`},{type:`ul`,items:[`Your current fuseboard has no spare ways for a new circuit`,`Your fuseboard is old and uses rewirable fuses rather than MCBs`,`Your fuseboard does not have adequate RCD protection`,`Your fuseboard is in poor condition or has been flagged on a previous EICR`,`The incoming supply cable is undersized for the additional load`]},{type:`h2`,text:`When Won't You Need a New Consumer Unit?`},{type:`p`,text:`If your consumer unit is modern, has spare ways, and already has adequate RCD protection across all circuits, then a new fuseboard is unlikely to be required. We will always carry out a thorough assessment of your existing installation before confirming whether an upgrade is needed.`},{type:`h2`,text:`What Happens During the Assessment?`},{type:`p`,text:`Before any EV charger installation, we carry out a free survey of your property. During this survey we will inspect your consumer unit, assess the available capacity, check the incoming supply, and confirm the best cable route for the new circuit. We will then provide you with a full written quote that clearly sets out whether a consumer unit upgrade is required and the cost of the full installation.`},{type:`h2`,text:`Get in Touch`},{type:`p`,text:`If you are considering an EV charger installation at your Warwickshire home or business, get in touch with Intolec today. We are OZEV registered EV charger installers and can advise on the best charger for your vehicle, your tariff and your property. Call us on 01926 768080 or use our online quote form to get started.`}]},{slug:`outdoor-lighting-design-and-installation-warwickshire`,title:`Outdoor Lighting Design and Installation in Warwickshire`,category:`Outdoor Security Lighting`,categorySlug:`outdoor-security-lighting`,date:`15 July 2024`,readTime:`2 min read`,excerpt:`Outdoor lighting is one of the most impactful ways to enhance your Warwickshire home. Whether you want to improve security, create ambience for entertaining, or highlight your garden's best features, a well-designed outdoor lighting scheme makes all the difference.`,heroImage:`/ai/img_res/e8e030d1b99ff3dbe3c39c3dfa4fe684.webp`,sections:[{type:`intro`,text:`Outdoor lighting is one of the most impactful ways to enhance your Warwickshire home. Whether you want to improve security, create ambience for entertaining, or highlight your garden's best features, a well-designed outdoor lighting scheme makes all the difference. At Intolec, we design and install bespoke outdoor lighting systems tailored to your property and lifestyle.`},{type:`h2`,text:`Why Invest in Outdoor Lighting?`},{type:`p`,text:`A professionally designed outdoor lighting installation offers multiple benefits beyond simply illuminating your garden. The right lighting can transform how you use your outdoor space, extend your living area into the evening, and significantly improve your home's curb appeal. For homeowners in Warwickshire, where properties often feature beautiful gardens and period architecture, outdoor lighting is an investment that pays dividends in both aesthetics and functionality.`},{type:`ul`,items:[`Enhanced security â Well-lit exteriors deter intruders and eliminate dark hiding spots around your property`,`Extended outdoor living â Lighting allows you to enjoy patios, decks, and gardens well into the evening`,`Increased property value â A professionally lit exterior is a major selling point for potential buyers`,`Safety â Illuminating pathways, steps, and driveways reduces the risk of trips and falls`,`Aesthetic appeal â Thoughtful lighting highlights architectural features and landscaping`]},{type:`h2`,text:`Types of Outdoor Lighting We Install`},{type:`p`,text:`At Intolec, we offer a comprehensive range of outdoor lighting solutions for homes across Warwickshire. Our experienced electricians can design and install systems that combine multiple lighting styles to achieve the perfect effect for your property.`},{type:`ul`,items:[`Garden lighting â Subtle uplighting for trees, shrubs, and flower beds to create depth and texture in your garden after dark`,`Pathway lighting â Low-level LED fixtures along walkways and driveways for safe navigation and visual guidance`,`Deck and patio lighting â Recessed and surface-mounted lights to create ambient entertaining space
31s`,`Wall washing â Soft illumination of house walls and fences to add warmth and dimension to your exterior`,`Security lighting â Motion-activated PIR lights and floodlights for protection around entry points and perimeters`,`Floodlighting â Powerful, wide-beam lighting for driveways, large gardens, and outdoor work areas`,`Solar garden lights â Energy-efficient options for boundary lighting and decorative garden features`]},{type:`h2`,text:`The Design Process`},{type:`p`,text:`Every outdoor lighting project we undertake begins with a thorough design consultation. We visit your Warwickshire property to assess the layout, identify key features you want to highlight, and understand how you use your outdoor space. Our electricians consider factors such as existing architecture, garden landscaping, natural light patterns, and your specific lighting goals.`},{type:`p`,text:`We then create a detailed lighting plan that specifies fixture types, placement, wiring routes, and control options. All our outdoor lighting installations use high-quality, weather-resistant fixtures rated for UK conditions, and we ensure every installation is fully compliant with current wiring regulations.`},{type:`h2`,text:`Smart and Energy-Efficient Options`},{type:`p`,text:`Modern outdoor lighting systems offer impressive levels of control and efficiency. We can install smart lighting systems that allow you to control your garden lights from your phone, set schedules, and create scenes for different occasions. LED technology has transformed outdoor lighting, offering brilliant illumination with minimal energy consumption and exceptionally long lifespans.`},{type:`p`,text:`For properties with solar panel installations, we can integrate your outdoor lighting with your existing energy system, further reducing running costs and environmental impact.`},{type:`h2`,text:`Installation and Certification`},{type:`p`,text:`All outdoor electrical work must be carried out by a qualified electrician to ensure safety and compliance with wiring regulations. Our NAPIT registered team handles every aspect of installation, from trenching and cable routing to fixture mou
31nting and final testing. We provide full certification for all work and ensure your installation is properly protected against moisture and the elements.`},{type:`h2`,text:`Get in Touch`},{type:`p`,text:`If you are considering an outdoor lighting design and installation for your Warwickshire home, contact Intolec today. Our experienced electricians will be happy to discuss your ideas, survey your property, and create a bespoke lighting scheme that transforms your outdoor space. Call us on 01926 768080 or use our online quote form to get started.`}]},{slug:`benefits-wireless-switching-garden-lighting`,title:`The Benefits of Wireless Switching for Garden Lighting`,category:`Outdoor Security Lighting`,categorySlug:`outdoor-security-lighting`,date:`5 August 2024`,readTime:`2 min read`,excerpt:`Wireless switching technology has transformed outdoor garden lighting, offering convenience, flexibility and new levels of control that simply weren’t possible with traditional wired switching.`,heroImage:`/ai/img_res/ffdd4dd35720aa1bc6b4b7d624c6bcf6.webp`,sections:[{type:`intro`,text:`Wireless switching technology has transformed outdoor garden lighting, offering convenience, flexibility and new levels of control that simply weren’t possible with traditional wired switching. At Intolec, we are increasingly installing wireless-controlled garden lighting systems for homeowners across Warwickshire who want to get the most from their outdoor spaces.`},{type:`h2`,text:`What Is Wireless Switching for Garden Lighting?`},{type:`p`,text:`Wireless switching allows you to control your garden lights without physical switches connected by wires. Instead, lights communicate with a central hub or directly with your smartphone via WiFi, Zigbee, or similar protocols. This means you can turn lights on and off, dim them, change colours, and set schedules â all from your phone or a smart speaker.`},{type:`h2`,text:`Key Benefits of Wireless Garden Lighting Control`},{type:`ul`,items:[`Convenience â Control all your garden lights from a single app on your phone.`,`Flexibility â Add new lights or reconfigure zones without running new switch cables.`,`Scheduling and automation â Set your garden lights to come on at dusk and off at bedtime.`,`Voice control â Compatible with Alexa, Google Home and Siri for hands-free control.`,`Energy efficiency â Precise scheduling means lights are never left on accidentally.`,`Remote access â Turn your garden lights on or off from anywhere via your smartphone.`]},{type:`h2`,text:`Types of Wireless Switching Systems`},{type:`p`,text:`There are several wireless lighting control systems available. Smart WiFi switches replace traditional light switches and connect directly to your home WiFi. Zigbee or Z-Wave systems use a hub to create a mesh network, ideal for larger gardens where WiFi may not reach. Some outdoor fixtures now come with built-in wireless receivers, eliminating the need for separate switches.`},{type:`h2`,text:`Installation Considerations`},{type:`p`,text:`While the control side is wireless, the lights themselves still need power. All outdoor electrical work must be carried out by a qualified electrician. At Intolec, we handle the complete installation â from running armoured cable to installing IP-rated junction boxes, mounting the lights, and setting up the wireless control system.`},{type:`h2`,text:`Get in Touch`},{type:`p`,text:`If you are considering upgrading your garden lighting with wireless switching, Intolec are here to help. We design and install bespoke outdoor lighting systems for homes across Leamington Spa and Warwickshire. Contact us today for a free survey and quote. Call 01926 768080 or use our online quote form.`}]},{slug:`solar-battery-storage-installers-warwickshire`,title:`Solar Battery Storage Installers in Warwickshire`,category:`Solar and Battery Storage System`,categorySlug:`solar-and-battery-storage-system`,date:`22 July 2024`,readTime:`2 min read`,excerpt:`Solar battery storage is rapidly becoming an essential addition for homeowners who have invested in solar panels. Without battery storage, much of the electricity generated by your panels during the day goes unused.`,heroImage:`/ai/img_res/0ea190e667e06763874b752c7777aaa3.webp`,sections:[{type:`intro`,text:`Solar battery storage is rapidly becoming an essential addition for homeowners who have invested in solar panels. Without battery storage, much of the electricity generated by your panels during the day goes unused, particularly when you are out at work. A solar battery system allows you to store that excess energy for use in the evening, dramatically increasing your energy independence and reducing your reliance on the grid.`},{type:`h2`,text:`Why Add Battery Storage to Your Solar Panels?`},{type:`p`,text:`The typical domestic solar panel system generates the most electricity during the middle of the day, when sunlight is strongest. Unfortunately, this is also when most households use the least electricity, as residents are often at work or school. Without battery storage, this surplus electricity is exported back to the grid, often at a lower rate than you pay to buy electricity back later.`},{type:`p`,text:`A solar battery storage system solves this problem by capturing and storing excess daytime generation for use during the evening and night. This means you can power your home with your own solar energy long after the sun has gone down, reducing your electricity bills and maximising the return on your solar investment.`},{type:`h2`,text:`How Solar Battery Storage Works`},{type:`p`,text:`Solar battery storage systems are connected to your solar panel inverter and your home electrical system. When your panels generate more electricity than your home is using, the surplus is diverted to the battery instead of being exported to the grid. The battery stores this energy as DC power, which is then converted back to AC by the inverter when your home needs it.`}
31,{type:`p`,text:`Modern battery systems are highly efficient, with round-trip efficiency typically exceeding 90%. This means very little energy is lost during the storage and retrieval process. Most systems also come with smart monitoring apps that allow you to track your generation, storage, and usage in real time.`},{type:`h2`,text:`Choosing the Right Battery Storage System`},{type:`p`,text:`Selecting the right solar battery for your Warwickshire home depends on several factors. Our experienced installers will assess your energy consumption patterns, the size of your existing solar panel system, and your budget to recommend the optimal solution. Key considerations include:`},{type:`ul`,items:[`Battery capacity â Measured in kilowatt-hours (kWh), this determines how much energy you can store. Typical domestic systems range from 5kWh to 15kWh`,`Power output â The maximum rate at which the battery can deliver electricity to your home. Higher output is needed if you want to run high-demand appliances simultaneously`,`Scalability â Some systems allow you to add additional battery modules later as your needs grow`,`Warranty and lifespan â Look for batteries with long warranties (10 years or more) and high cycle life ratings`,`Integration â Ensure the battery is compatible with your existing solar inverter and can integrate with any smart home energy systems you have`]},{type:`h2`,text:`The Installation Process`},{type:`p`,text:`As experienced solar battery storage installers in Warwickshire, we handle every aspect of your installation from survey to commissioning. The process typically involves:`},{type:`ul`,items:[`A free home survey to assess your existing solar system and electrical infrastructure`,`Design of the battery system, including optimal placement and sizing`,`Installation of the battery unit and any necessary inverter upgrades`,`Connection to your solar panels, home electrical system, and any smart monitoring systems`,`Full testing and certification, including notification to building control where required`]},{type:`p`,text:`Most domestic battery installations can be completed in a single day, with minimal disruption to your home.`},{type:`h2`,text:`Costs and Return on Investment`},{type:`p`,text:`The cost of a solar battery storage system varies depen
31ding on capacity, brand, and installation complexity. While the upfront investment is significant, the long-term savings can be substantial. By using more of your own solar energy and less grid electricity, most homeowners see a noticeable reduction in their electricity bills. Combined with time-of-use tariffs and potential grid export earnings, a well-sized battery system can pay for itself over its lifetime.`},{type:`p`,text:`Government incentives and grants may also be available to help offset the cost. We can advise you on the latest schemes and handle any grant applications as part of your installation.`},{type:`h2`,text:`Get in Touch`},{type:`p`,text:`If you are considering solar battery storage for your Warwickshire home, Intolec are here to help. We are fully qualified, NAPIT registered, and MCS accredited solar battery storage installers with extensive experience across Warwickshire. Contact us today for a free survey and quote.`}]}];function bu(e){return yu.find(t=>t.slug===e)}var G={"rewiring-electrician-leamington-spa":[`rewire-electrician-near-me-warwick`,`electrician-warwickshire`],"electrical-installations-electrician-leamington-spa":[`electrician-warwickshire`,`rewire-electrician-near-me-warwick`],"consumer-unit-upgrades-electrician-leamington-spa":[`fuseboard-electrician-warwickshire`,`do-i-need-new-fuseboard-ev-charger-installation`],"eicrs-electrician-leamington-spa":[`eicrs-homeowners-warwickshire`,`eicr-electrician-warwick`,`landlords-eicr`],"landlord-certificates-electrician-leamington-spa":[`landlords-eicr`,`eicrs-homeowners-warwickshire`,`eicr-electrician-warwick`],"solar-and-battery-storage-system-electrician-leamington-spa":[`solar-panel-installation-warwickshire`,`how-do-solar-batteries-work`,`solar-battery-storage-installers-warwickshire`],"battery-storage-systems-electrician-leamington-spa":[`how-do-solar-batteries-work`,`solar-battery-storage-installers-warwickshire`,`solar-panel-installation-warwickshire`],"ev-charger-installer-electrician-leamington-spa":[`can-i-have-two-ev-chargers-home`,`do-i-need-new-fuseboard-ev-charger-installation`,`electrician-warwickshire`],"ozev-registered-electrician-leamington-spa":[`can-i-have-two-ev-chargers-home`,`do-i-need-new-fuseboard-ev-charger-installation`,`electrician-warwickshire`],"outdoor-security-lighting-electrician-leamington-spa":[`outdoor-lighting-design-and-installation-warwickshire`,`security-lighting-installation`,`electrician-warwickshire`],"outdoor-garden-lighting-electrician-leamington-spa":[`benefits-wireless-switching-garden-lighting`,`outdoor-lighting-design-and-installation-warwickshire`,`security-lighting-installation`,`electrician-warwickshire`],"testing-and-fault-finding-electrician-leamington-spa":[`electrician-warwickshire`,`eicrs-homeowners-warwickshire`],"tripping-circuits-electrician-leamington-spa":[`fuseboard-electrician-warwickshire`,`eicrs-homeowners-warwickshire`],"rcd-testing-electrician-leamington-spa":[`eicrs-homeowners-warwickshire`,`eicr-electrician-warwick`]};function xu(e){let t=G[e]??[];return t.length>0?t.map(e=>yu.find(t=>t.slug===e)).filter(e=>e!==void 0).slice(0,3):yu.slice(0,2)}var Su=[{label:`All`,value:`all`},{label:`General`,value:`general`},{label:`EICRs`,value:`eicrs`},{label:`Solar & Battery`,value:`solar-and-battery-storage-system`},{label:`EV Chargers`,value:`ev-charger-installer`},{label:`Consumer Units`,value:`consumer-unit-upgrades`},{label:`Security Lighting`,value:`outdoor-security-lighting`}];function Cu({posts:e}){return e.length?(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-5`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2 mb-4`,children:[(0,M.jsx)(`div`,{className:`w-7 h-7 flex items-center justify-center rounded-lg bg-[#14532D] flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`ri-article-line text-white text-sm`})}),(0,M.jsx)(`h4`,{className:`font-extrabold text-sm text-[#14532D]`,children:`Related Articles`})]}),(0,M.jsx)(`div`,{className:`flex flex-col gap-4`,children:e.map(e=>(0,M.jsxs)(`a`,{href:`/blog/${e.slug}`,className:`group flex gap-3 cursor-pointer`,children:[(0,M.jsx)(`div`,{className:`w-20 h-16 flex-shrink-0 rounded-lg overflow-hidden`,children:(0,M.jsx)(`img`,{src:e.heroImage,alt:e.title,className:`w-full h-full object-cover object-top group-hover:scale-105 transition-transform duration-300`,onError:e=>{e.target.src=`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/08ffe935-fcb6-4857-a79a-3c7bae929ee1_electrician-in-warwick.jpg?v=3b21d75fdc5c0655216156b7d8608202`}})}),(0,M.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,M.jsx)(`span`,{className:`text-xs font-bold text-[#16A34A] uppercase tracking-wide`,children:e.category}),(0,M.jsx)(`p`,{className:`text-xs font-semibold text-[#111827] group-hover:text-[#14532D] transition-colors leading-snug mt-0.5 line-clamp-2`,children:e.title}),(0,M.jsxs)(`div`,{className:`flex items-center gap-2 mt-1`,children:[(0,M.jsx)(`span`,{className:`text-xs text-[#9CA3AF]`,children:e.readTime}),(0,M.jsxs)(`span`,{className:`text-xs font-bold text-[#16A34A] group-hover:gap-1 flex items-center gap-0.5 transition-all`,children:[`Read `,(0,M.jsx)(`i`,{className:`ri-arrow-right-line text-xs`})]})]})]})]},e.slug))}),(0,M.jsxs)(`a`,{href:`/blog`,className:`mt-4 flex items-center justify-center gap-1.5 w-full py-2.5 rounded-lg border border-[#14532D]/20 text-[#14532D] text-xs font-bold hover:bg-[#F0FDF4] transition-colors`,children:[(0,M.jsx)(`i`,{className:`ri-article-line text-sm`}),`View All Articles`]})]}):null}function wu({q:e,a:t}){let[n,r]=(0,E.useState)(!1);return(0,M.jsxs)(`div`,{className:`border border-gray-200 rounded-xl overflow-hidden`,children:[(0,M.jsxs)(`button`,{className:`w-full flex items-center justify-between px-5 py-4 text-left bg-white hover:bg-[#F9FAFB] transition-colors cursor-pointer`,onClick:()=>r(e=>!e),children:[(0,M.jsx)(`span`,{className:`font-semibold text-sm text-[#111827] pr-4`,children:e}),(0,M.jsx)(`i`,{className:`flex-shrink-0 text-[#16A34A] text-lg transition-transform duration-300 ${n?`ri-subtract-line`:`ri-add-line`}`})]}),n&&(0,M.jsx)(`div`,{className:`px-5 pb-4 bg-white`,children:(0,M.jsx)(`p`,{className:`text-sm text-[#6B7280] leading-relaxed`,children:t})})]})}function Tu({service:e,onQuote:t}){let n=(0,E.useRef)(null),[r,i]=(0,E.useState)(!1),a=xu(e.slug);return(0,E.useEffect)(()=>{let e=new IntersectionObserver(([e])=>{e.isIntersecting&&i(!0)},{threshold:.05});return n.current&&e.observe(n.current),()=>e.disconnect()},[]),(0,M.jsxs)(`div`,{ref:n,children:[(0,M.jsxs)(`div`,{className:`relative pt-20 mt-10 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`absolute inset-0 bg-[#14532D]`}),(0,M.jsx)(`div`,{className:`absolute inset-0 opacity-10`,style:{backgroundImage:`repeating-linear-gradient(45deg, #22C55E 0, #22C55E 1px, transparent 0, transparent 50%)`,backgroundSize:`20px 20px`}}),(0,M.jsxs)(`div`,{className:`relative z-10 max-w-7xl mx-auto px-4 md:px-6 py-14 md:py-20`,children:[(0,M.jsxs)(`nav`,{className:`flex items-center gap-2 text-xs text-[#86EFAC]/70 mb-6`,children:[(0,M.jsx)(`a`,{href:`/`,className:`hover:text-[#86EFAC] transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(`a`,{href:`/services`,className:`hover:text-[#86EFAC] transition-colors`,children:`Electrical Services`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(`span`,{className:`text-[#86EFAC]`,children:e.title})]}),(0,M.jsxs)(`div`,{className:`flex flex-col lg:flex-row items-start lg:items-center gap-8`,children:[(0,M.jsxs)(`div`,{className:`flex-1`,children:[(0,M.jsx)(`div`,{className:`flex flex-wrap gap-2 mb-4`,children:e.tags.map(e=>(0,M.jsx)(`span`,{className:`text-xs font-bold px-3 py-1 rounded-full bg-[#22C55E]/20 text-[#86EFAC] border border-[#22C55E]/30`,children:e},e))}),(0,M.jsxs)(`h1`,{className:`text-3xl md:text-5xl font-extrabold text-white mb-4 leading-tight`,children:[e.title,` `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`Leamington Spa`})]}),(0,M.jsxs)(`p`,{className:`text-[#86EFAC]/90 text-base md:text-lg max-w-2xl leading-relaxed`,children:[e.tagline,` Looking for `,(0,M.jsxs)(`strong`,{className:`text-white`,children:[`reliable `,e.title.toLowerCase(),` near you in Leamington Spa or Warwickshire`]}),`? Our NAPIT registered electricians provide professional service with free written quotes and full certification on every job.`]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3 mt-8`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center justify-center gap-2 px-7 py-3.5 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Call 01926 768080`]}),(0,M.jsxs)(`button`,{onClick:t,className:`inline-flex items-center justify-center gap-2 px-7 py-3.5 rounded-lg border-2 border-white text-white font-bold text-sm hover:bg-white/10 transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]}),(0,M.jsx)(`div`,{className:`hidden lg:flex w-40 h-40 flex-shrink-0 items-center justify-center rounded-3xl bg-[#22C55E]/20 border-2 border-[#22C55E]/40`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-[#86EFAC] text-7xl`})})]})]}),(0,M.jsx)(`div`,{className:`absolute bottom-0 left-0 right-0 h-8 bg-[#F9FAFB]`,style:{clipPath:`ellipse(55% 100% at 50% 100%)`}})]}),(0,M.jsx)(`div`,{className:`bg-[#F9FAFB] py-14 md:py-20`,children:(0,M.jsx)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6`,children:(0,M.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-10`,children:[(0,M.jsxs)(`div`,{className:`lg:col-span-2 flex flex-col gap-10`,children:[(0,M.jsx)(`div`,{className:`w-full rounded-2xl overflow-hidden`,children:(0,M.jsx)(`img`,{src:e.heroImage,alt:e.title,className:`w-full h-auto`,loading:`lazy`})}),(0,M.jsxs)(`div`,{className:`transition-all duration-700 ${r?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[(0,M.jsxs)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-[#14532D] mb-4`,children:[`Professional `,e.title,` in Leamington Spa & Warwickshire`]}),(0,M.jsx)(`p`,{className:`text-[#374151] text-sm md:text-base leading-relaxed mb-4`,children:e.intro}),(0,M.jsxs)(`p`,{className:`text-[#374151] text-sm md:text-base leading-relaxed`,children:[`At Intolec Ltd, we understand that finding a `,(0,M.jsxs)(`strong`,{children:[`trusted local electrician for `,e.title.toLowerCase(),` near you`]}),` can be a challenge. Thatâs why weâve built our reputation on turning up when we say we will, providing clear written quotes with no hidden costs, and delivering high-quality workmanship on every single project across Leamington Spa and the wider Warwickshire area. As a NAPIT registered, MCS certified and Which? Trusted Trader, you can be confident your electrical work is in safe hands.`]})]}),(0,M.jsxs)(`div`,{className:`transition-all duration-700 delay-50 ${r?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[(0,M.jsxs)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-[#14532D] mb-5`,children:[e.title,` â Near Me`]}),(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6`,children:[(0,M.jsxs)(`p`,{className:`text-sm text-[#374151] leading-relaxed mb-4`,children:[`We provide `,(0,M.jsxs)(`strong`,{children:[e.title.toLowerCase(),` services across Leamington Spa, Warwick, Kenilworth, Coventry, Stratford-upon-Avon, Southam, Rugby, Daventry`]}),` and all surrounding Warwickshire towns and villages. Wherever you are in the area, our electricians can reach you quickly for both planned installations and urgent call-out
31s.`]}),(0,M.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[[`Leamington Spa`,`Warwick`,`Kenilworth`,`Coventry`,`Stratford-upon-Avon`,`Southam`,`Rugby`,`Daventry`,`Whitnash`,`Cubbington`,`Radford Semele`].map(e=>(0,M.jsx)(j,{to:`/electrician-in/${e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)}`,className:`text-xs font-medium text-[#374151] bg-[#F0FDF4] hover:bg-[#DCFCE7] border border-[#BBF7D0] px-3 py-1.5 rounded-full transition-colors`,children:e},e)),(0,M.jsx)(j,{to:`/areas`,className:`text-xs font-semibold text-[#16A34A] hover:text-[#14532D] px-3 py-1.5 transition-colors`,children:`+ more areas`})]})]})]}),(0,M.jsxs)(`div`,{className:`transition-all duration-700 delay-100 ${r?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[(0,M.jsxs)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-[#14532D] mb-6`,children:[`Why Choose Intolec for Your `,e.title,`?`]}),(0,M.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:e.benefits.map(e=>(0,M.jsxs)(`div`,{className:`bg-white rounded-xl border border-gray-100 p-5 flex gap-4`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex-shrink-0 flex items-center justify-center rounded-xl bg-[#F0FDF4]`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-[#16A34A] text-lg`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`font-bold text-sm text-[#111827] mb-1`,children:e.title}),(0,M.jsx)(`p`,{className:`text-xs text-[#6B7280] leading-relaxed`,children:e.desc})]})]},e.title))})]}),(0,M.jsxs)(`div`,{className:`transition-all duration-700 delay-150 ${r?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[(0,M.jsx)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-[#14532D] mb-5`,children:`What We Offer`}),(0,M.jsxs)(`p`,{className:`text-sm text-[#6B7280] mb-5 leading-relaxed`,children:[`When you choose Intolec Ltd for `,e.title.toLowerCase(),` in Leamington Spa or the surrounding Warwickshire area, hereâs exactly whatâs included:`]}),(0,M.jsx)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6`,children:(0,M.jsx)(`ul`,{className:`flex flex-col gap-3`,children:e.whatWeOffer.map(e=>(0,M.jsxs)(`li`,{className:`flex items-start gap-3 text-sm text-[#374151]`,children:[(0,M.jsx)(`i`,{className:`ri-checkbox-circle-fill text-[#22C55E] text-base flex-shrink-0 mt-0.5`}),e]},e))})})]}),(0,M.jsxs)(`div`,{className:`transition-all duration-700 delay-175 ${r?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[(0,M.jsx)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-[#14532D] mb-5`,children:`How It Works`}),(0,M.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-4`,children:[{step:`1`,icon:`ri-phone-fill`,title:`Get in Touch`,desc:`Call us on 01926 768080 or request a free quote online. We’ll discuss your needs and answer any questions.`},{step:`2`,icon:`ri-calendar-check-line`,title:`Free Survey`,desc:`We’ll arrange a convenient time to visit your property, assess the work, and provide a clear written quote with no obligation.`},{step:`3`,icon:`ri-tools-line`,title:`Professional Installation`,desc:`Our qualified electricians complete the work to the highest standard with full certification on completion.`}].map(e=>(0,M.jsxs)(`div`,{className:`bg-white rounded-xl border border-gray-100 p-5 text-center`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-full bg-[#14532D] text-white font-bold text-sm mx-auto mb-3`,children:e.step}),(0,M.jsx)(`div`,{className:`w-9 h-9 flex items-center justify-center rounded-lg bg-[#F0FDF4] mx-auto mb-2`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-[#16A34A] text-base`})}),(0,M.jsx)(`p`,{className:`font-bold text-sm text-[#111827] mb-1`,children:e.title}),(0,M.jsx)(`p`,{className:`text-xs text-[#6B7280] leading-relaxed`,children:e.desc})]},e.step))})]}),(0,M.jsxs)(`div`,{className:`transition-all duration-700 delay-200 ${r?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,children:[(0,M.jsx)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-[#14532D] mb-5`,children:`Frequently Asked Questions`}),(0,M.jsxs)(`p`,{className:`text-sm text-[#6B7280] mb-4 leading-relaxed`,children:[`Common questions about `,e.title.toLowerCase(),` in Leamington Spa and Warwickshire. Canât find what you need? Give us a call â weâre happy to advise.`]}),(0,M.jsx)(`div`,{className:`flex flex-col gap-3`,children:e.faqs.map(e=>(0,M.jsx)(wu,{q:e.q,a:e.a},e.q))})]})]}),(0,M.jsxs)(`div`,{className:`flex flex-col gap-6`,children:[(0,M.jsxs)(`div`,{className:`bg-[#14532D] rounded-2xl p-6 text-white sticky top-28`,children:[(0,M.jsx)(`div`,{className:`w-12 h-12 flex items-center justify-center rounded-xl bg-[#22C55E]/20 border border-[#22C55E]/40 mb-4`,children:(0,M.jsx)(`i`,{className:`ri-phone-fill text-[#86EFAC] text-xl`})}),(0,M.jsx)(`h3`,{className:`font-extrabold text-lg mb-2`,children:`Get a Free Quote`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC]/80 text-sm mb-5 leading-relaxed`,children:`Call us today for a free, no-obligation quotation. We respond to every enquiry â usually within 2 hours.`}),(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`flex items-center justify-center gap-2 w-full py-3.5 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap mb-3`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:t,className:`flex items-center justify-center gap-2 w-full py-3.5 rounded-lg border-2 border-white/30 text-white font-bold text-sm hover:bg-white/10 transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Request a Quote`]}),(0,M.jsxs)(`div`,{className:`mt-5 pt-5 border-t border-white/10 flex flex-col gap-3`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-[#86EFAC]/70`,children:[(0,M.jsx)(`i`,{className:`ri-map-pin-2-fill text-[#86EFAC]`}),`Leamington Spa & Warwickshire`]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-[#86EFAC]/70`,children:[(0,M.jsx)(`i`,{className:`ri-time-line text-[#86EFAC]`}
31),`Open 24 hours â emergency call-outs`]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-[#86EFAC]/70`,children:[(0,M.jsx)(`i`,{className:`ri-award-line text-[#86EFAC]`}),`NAPIT Registered & Fully Insured`]})]})]}),(0,M.jsx)(Cu,{posts:a}),(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-5`,children:[(0,M.jsx)(`h4`,{className:`font-bold text-sm text-[#14532D] mb-4`,children:`Other Electrical Services`}),(0,M.jsxs)(`ul`,{className:`flex flex-col gap-2`,children:[[{label:`Consumer Unit Upgrades`,slug:`consumer-unit-upgrades-electrician-leamington-spa`},{label:`EICRs`,slug:`eicrs-electrician-leamington-spa`},{label:`EV Charger Installation`,slug:`ev-charger-installer-electrician-leamington-spa`},{label:`Solar & Battery Storage`,slug:`solar-and-battery-storage-system-electrician-leamington-spa`},{label:`Testing & Fault Finding`,slug:`testing-and-fault-finding-electrician-leamington-spa`},{label:`Outdoor Security Lighting`,slug:`outdoor-security-lighting-electrician-leamington-spa`}].filter(t=>t.slug!==e.slug).map(e=>(0,M.jsx)(`li`,{children:(0,M.jsxs)(`a`,{href:`/service/${e.slug}`,className:`flex items-center gap-2 text-sm text-[#374151] hover:text-[#16A34A] transition-colors py-1`,children:[(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-[#22C55E]`}),e.label]})},e.slug)),(0,M.jsx)(`li`,{children:(0,M.jsxs)(`a`,{href:`/services`,className:`flex items-center gap-2 text-sm font-semibold text-[#16A34A] hover:text-[#14532D] transition-colors py-1 mt-1`,children:[(0,M.jsx)(`i`,{className:`ri-grid-line text-[#22C55E]`}),`View All Electrical Services`]})})]})]})]})]})})}),(0,M.jsx)(`section`,{className:`w-full bg-black py-14 md:py-20`,children:(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center`,children:[(0,M.jsxs)(`p`,{className:`text-white text-base md:text-2xl font-extrabold uppercase tracking-wide leading-snug mb-6 md:mb-8`,children:[`NEED `,e.title.toUpperCase(),` IN LEAMINGTON SPA? CALL US TODAY ON`,` `,(0,M.jsx)(`a`,{href:`tel:01926768080`,className:`text-[#22C55E] hover:text-[#86EFAC] transition-colors underline underline-offset-4`,children:`01926 768080`}),` `,`FOR A FREE, NO OBLIGATION QUOTATION.`,` `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`YOUR CALL MATTERS TO US, AND WE WILL RESPOND.`})]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md bg-[#22C55E] text-white font-bold text-base hover:bg-[#16A34A] transition-colors whitespace-nowrap w-full sm:w-auto`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-lg`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:t,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md border-2 border-white text-white font-bold text-base hover:bg-white hover:text-black transition-colors whitespace-nowrap cursor-pointer w-full sm:w-auto`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line text-lg`}),`GET A FREE QUOTE`]})]})]})})]})}function Eu(){let{slug:e}=Hr(),t=e?ou(e):void 0,{openQuote:n,openSolar:r}=nu(),i=t?{"@context":`https://schema.org`,"@type":`Service`,name:t.title,provider:{"@type":`LocalBusiness`,name:`Intolec Ltd`,url:`https://www.electriciansinleamingtonspa.co.uk`},description:t.tagline,areaServed:{"@type":`City`,name:`Leamington Spa`},serviceType:`Electrical Services`}:void 0;return ca({title:t?`${t.title} in Leamington Spa - IntoLec Ltd`:`Service Not Found - IntoLec Ltd`,description:t?`${t.tagline} Professional ${t.title.toLowerCase()} in Leamington Spa and Warwickshire by NAPIT registered electricians at Intolec Ltd. Call 01926 768080 for a free quote.`:`Service page not found. Browse our electrical services in Leamington Spa.`,canonicalPath:t?`/service/${t.slug}`:void 0,jsonLd:i}),t?(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(vu,{onQuote:n}),(0,M.jsx)(`main`,{children:(0,M.jsx)(Tu,{service:t,onQuote:n})}),(0,M.jsx)(Ya,{onQuote:n}),(0,M.jsx)(I,{onQuote:n,onSolar:r})]}):(0,M.jsx)(ua,{})}function Du({onQuote:e,onSolar:t}){return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(F,{onQuote:e,onSolar:t,activePage:`faq`}),(0,M.jsxs)(`section`,{className:`relative pt-28 pb-16 md:pt-36 md:pb-20 overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0`,children:[(0,M.jsx)(`img`,{src:`/ai/img_res/2eca2fbb588181d115b923428e3f6468.webp`,alt:`Intolec FAQ`,className:`w-full h-full object-cover object-top`}),(0,M.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-r from-[#14532D]/90 via-[#14532D]/75 to-[#14532D]/50`})]}),(0,M.jsx)(`div`,{className:`relative max-w-7xl mx-auto px-4 md:px-6 w-full`,children:(0,M.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2 mb-4`,children:[(0,M.jsx)(`a`,{href:`/`,className:`text-[#86EFAC] text-sm font-medium hover:text-white transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-[#86EFAC] text-sm`}),(0,M.jsx)(`span`,{className:`text-white/70 text-sm`,children:`Frequently Asked Questions`})]}),(0,M.jsxs)(`h1`,{className:`text-3xl md:text-5xl font-extrabold text-white leading-tight mb-4`,children:[`Frequently Asked Questions`,(0,M.jsx)(`br`,{}),(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`Leamington Spa`})]}),(0,M.jsx)(`p`,{className:`text-white/80 text-base md:text-lg leading-relaxed mb-8 max-w-xl`,children:`Below you'll find answers to the questions we get asked most often. Can't find what you're looking for? Give us a call â we're always happy to help.`}),(0,M.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-white text-[#14532D] font-bold text-sm hover:bg-[#F0FDF4] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:e,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors cursor-pointer whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]})})]})]})}var Ou=[{title:`General Questions`,icon:`ri-question-line`,faqs:[{q:`Why choose Intolec?`,a:`Intolec Ltd has been serving Leamington Spa and Warwickshire for many years. We are NAPIT registered, MCS certified, OZEV registered and a Which? Trusted Trader. All our work is carried out to the latest 18th Edition wiring regulations, and we provide full certification on completion. We pride ourselves on honest advice, quality workmanship and turning up when we say we will.`},{q:`What services does Intolec offer?`,a:`We offer a comprehensive range of electrical services including consumer unit upgrades, full and partial rewires, EICRs, EV charger installation, solar panel and battery storage systems, lighting design and installation, outdoor and security lighting, heating controls, and much more. Visit our Services page for the full list.`},{q:`Do you work in my area?`,a:`We cover Leamington Spa and the surrounding Warwickshire area including Warwick, Kenilworth, Coventry, Stratford-upon-Avon, Solihull, Rugby, Southam, Daventry and many more towns and villages. Visit our Areas page for the full list of locations we cover.`},{q:`How do I get a quote?`,a:`Getting a quote is easy. You can call us on 01926 768080, use the Get a Free Quote form on our website, or send us an email. For most jobs we'll arrange a free no-obligation site visit to assess the work and provide an accurate written quote. We don't charge for quotes.`},{q:`What guarantees and warranties do you offer?`,a:`All our electrical work is guaranteed. We provide a 12-month workmanship guarantee on all installations. Manufacturer warranties apply to all equipment and materials we supply. For solar and battery storage systems, manufacturer warranties of 10â25 years typically apply to panels and inverters.`},{q:`Are you accredited?`,a:`Yes. We hold the following accreditations: NAPIT registered (all notifiable electrical work is registered with building control), MCS certified (for solar panel and battery storage installations), OZEV registered (for EV charger installations), and Which? Trusted Trader. These accreditations give you confidence that our work meets the highest standards.`}]},{title:`Electrical Safety & Compliance`,icon:`ri-shield-check-line`,faqs:[{q:`What is an EICR and do I need one?`,a:`An Electrical Installation Condition Report (EICR) is a formal inspection and test of your property's electrical installation. It identifies any defects, deterioration or non-compliance with current standards. Private landlords in England are legally required to have a valid EICR every 5 years. Homeowners are recommended to have one every 10 years or when buying or selling a property.`},{q:`How often should I have my electrics tested?`,a:`For homeowners, every 10 years is the general recommendation. For landlords, every 5 years is a legal requirement. For businesses, every 5 years is recommended. If you've recently bought a property or haven't had an inspection in a long time, we'd recommend booking one sooner rather than later.`},{q:`My RCD keeps tripping â what should I do?`,a:`A persistently tripping RCD indicates an underlying fault that needs professional investigation. Try unplugging all appliances on the affected circuit and resetting the RCD. If it stays on, plug appliances back in one by one to identify the faulty one. If the RCD trips with nothing plugged in, or you can't identify the cause, call us â it c
31ould indicate a wiring fault.`},{q:`Is my old fuse box safe?`,a:`Older fuse boxes with rewirable fuses or early MCBs without RCD protection no longer meet current safety standards. While they may still function, they don't provide the level of protection that modern consumer units offer. We recommend upgrading to a modern full RCBO consumer unit for improved safety and peace of mind.`},{q:`Do I need smoke alarms in my rental property?`,a:`Yes. The Smoke and Carbon Monoxide Alarm (Amendment) Regulations 2022 require landlords to install smoke alarms on every floor of a rental property and carbon monoxide alarms in rooms with solid fuel appliances. We install mains-wired interlinked alarms that provide the highest level of protection.`}]},{title:`EV Chargers`,icon:`ri-charging-pile-line`,faqs:[{q:`How long does an EV charger installation take?`,a:`Most home EV charger installations take 2â4 hours. We'll carry out a free survey beforehand to assess the cable run, check your consumer unit has capacity, and confirm the installation plan. We aim to complete the installation in a single visit.`},{q:`Which EV charger should I choose?`,a:`The best charger depends on your vehicle, your electricity tariff and your preferences. We install all leading brands and will recommend the right unit for your needs. Smart chargers are particularly popular as they integrate with off-peak tariffs to charge your car at the cheapest times. We'll advise on the best option during your free survey.`},{q:`Do I need a dedicated circuit for an EV charger?`,a:`Yes. EV chargers require a dedicated circuit from your consumer unit. We'll check your board has sufficient capacity and upgrade it if needed. The circuit specification depends on the charger's output â a 7kW charger typically requires a 32A circuit.`},{q:`Are there any grants available for EV chargers?`,a:`The OZEV Electric Vehicle Chargepoint Grant is available for eligible customers including flat owners and renters. As an OZEV-registered installer, we can advise on your eligibility and assist with the application process. Workplace charging grants are also available for businesses.`}]},{title:`Solar Panels & Battery Storage`,icon:`ri-sun-line`,faqs:[{q:`What renewable energy solutions do you offer?`,a:`We install solar PV panels, battery storage systems, and EV chargers. We can also integrate these systems so your solar panels charge your battery and your EV, maximising the use of free solar energy. All solar and battery installations are MCS certified.`},{q:`How much does a solar panel system cost?`,a:`A typical 4kW solar system costs £5,000â£8,000 installed. Adding battery storage costs an additional £3,000â£6,000 depending on capacity. The exact cost depends on your roof, the system size and the equipment chosen. We provide detailed quotes after a free survey.`},{q:`How long does solar installation take?`,a:`Most residential solar installations are completed in 1â2 days. Battery-only retrofits typically take half a day. We'll give you a detailed programme before starting.`},{q:`Do I need planning permission for solar panels?`,a:`Most domestic solar installations are permitted development and don't require planning permission. It is down to the customer to seek planning status if they want solar on a listed building or within a conservation area. We'll advise on the planning position for your property before proceeding.`},{q:`What is the Smart Export Guarantee?`,a:`The Smart Export Guarantee (SEG) requires energy suppliers to pay you for surplus electricity you export to the grid. MCS certification (which we hold) is required to access SEG payments. Rates vary by supplier â we'll advise on the best tariff for your system.`}]},{title:`Pricing & Booking`,icon:`ri-money-pound-circle-line`,faqs:[{q:`How much do you charge?`,a:`Our pricing depends on the type and scope of work. We provide free no-obligation quotes for all jobs. For call-outs and fault finding, our minimum charge is £95 plus VAT up to one hour, then £55 per hour plus VAT after that. We'll always be transparent about costs before starting any work â no hidden charges.`},{q:`Do you charge for quotes?`,a:`No. All quotes are completely free and there's no obligation to proceed. For most jobs we'll arrange a site visit to assess the work and provide an accurate written quote.`},{q:`How quickly can you come out?`,a:`For non-urgent work we typically book within a few days to a couple of weeks depending on our current schedule. For urgent faults and emergencie
31s we aim to respond as quickly as possible. Call us on 01926 768080 and we'll advise on availability.`},{q:`Do you offer emergency call-outs?`,a:`Yes. We provide emergency call-out services for urgent electrical faults across Leamington Spa and Warwickshire. Call us on 01926 768080 and we'll advise on availability and response time.`},{q:`What payment methods do you accept?`,a:`We accept bank transfer, card payment and cash. For larger projects we can discuss staged payment arrangements. Full payment terms will be confirmed in your written quote.`}]}];function ku({q:e,a:t,isOpen:n,onToggle:r,index:i}){return(0,M.jsxs)(`div`,{className:`border border-gray-200 rounded-xl overflow-hidden transition-all duration-200 ${n?`border-[#22C55E]`:`hover:border-gray-300`}`,children:[(0,M.jsxs)(`button`,{onClick:r,className:`w-full flex items-center justify-between gap-4 px-5 py-4 text-left cursor-pointer bg-white hover:bg-[#F9FAFB] transition-colors`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`span`,{className:`w-6 h-6 flex-shrink-0 flex items-center justify-center rounded-full bg-[#F0FDF4] text-[#14532D] text-xs font-bold`,children:i+1}),(0,M.jsx)(`span`,{className:`text-sm md:text-base font-semibold text-[#111827] leading-snug`,children:e})]}),(0,M.jsx)(`div`,{className:`w-7 h-7 flex-shrink-0 flex items-center justify-center rounded-full transition-all duration-200 ${n?`bg-[#22C55E] rotate-180`:`bg-[#F0FDF4]`}`,children:(0,M.jsx)(`i`,{className:`ri-arrow-down-s-line text-base ${n?`text-white`:`text-[#14532D]`}`})})]}),(0,M.jsx)(`div`,{className:`overflow-hidden transition-all duration-300 ${n?`max-h-96`:`max-h-0`}`,children:(0,M.jsx)(`div`,{className:`px-5 pb-5 pt-1 border-t border-gray-100`,children:(0,M.jsx)(`p`,{className:`text-sm md:text-base text-[#374151] leading-relaxed pl-9`,children:t})})})]})}function Au({onQuote:e}){let[t,n]=(0,E.useState)({}),r=(e,t)=>{n(n=>({...n,[e]:n[e]===t?null:t}))};return(0,M.jsx)(`section`,{className:`py-16 md:py-24 bg-[#F9FAFB]`,children:(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6`,children:[(0,M.jsxs)(`div`,{className:`text-center mb-12`,children:[(0,M.jsx)(`span`,{className:`inline-block text-[#16A34A] font-semibold text-xs uppercase tracking-widest mb-3`,children:`Got a question?`}),(0,M.jsx)(`h2`,{className:`text-2xl md:text-3xl font-extrabold text-[#14532D] mb-3`,children:`We've got answers`}),(0,M.jsxs)(`p`,{className:`text-[#6B7280] text-sm md:text-base max-w-lg mx-auto`,children:[`Can't find what you're looking for? Call us on`,` `,(0,M.jsx)(`a`,{href:`tel:01926768080`,className:`text-[#16A34A] font-semibold hover:underline`,children:`01926 768080`}),` `,`and we'll be happy to help.`]})]}),(0,M.jsx)(`div`,{className:`flex flex-col gap-10`,children:Ou.map(e=>(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3 mb-5`,children:[(0,M.jsx)(`div`,{className:`w-9 h-9 flex items-center justify-center rounded-xl bg-[#14532D] flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-white text-base`})}),(0,M.jsx)(`h3`,{className:`text-base md:text-lg font-extrabold text-[#14532D]`,children:e.title}),(0,M.jsx)(`div`,{className:`flex-1 h-px bg-gray-200`})]}),(0,M.jsx)(`div`,{className:`flex flex-col gap-2`,children:e.faqs.map((n,i)=>(0,M.jsx)(ku,{q:n.q,a:n.a,isOpen:t[e.title]===i,onToggle:()=>r(e.title,i),index:i},i))})]},e.title))}),(0,M.jsxs)(`div`,{className:`mt-14 rounded-2xl bg-[#14532D] p-8 md:p-10 text-center`,children:[(0,M.jsx)(`h3`,{className:`text-xl md:text-2xl font-extrabold text-white mb-2`,children:`Still have a question?`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-sm md:text-base mb-6`,children:`Call us for free advice â no obligation, no pushy sales.`}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-3`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-white text-[#14532D] font-bold text-sm hover:bg-[#F0FDF4] transition-colors whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:e,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors cursor-pointer whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]})]})})}function ju(){let{openQuote:e,openSolar:t}=nu();return ca({title:`FAQ | Electrician in Leamington Spa - IntoLec Ltd`,description:`Frequently asked questions about electrical services in Leamington Spa. EV chargers, EICRs, solar panels, rewiring, consumer units and more. Call 01926 768080.`,canonicalPath:`/frequently-asked-questions`,jsonLd:{"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:Ou.flatMap(e=>e.faqs.map(e=>
31({"@type":`Question`,name:e.q,acceptedAnswer:{"@type":`Answer`,text:e.a}})))}}),(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(Du,{onQuote:e,onSolar:t}),(0,M.jsx)(`main`,{children:(0,M.jsx)(Au,{onQuote:e})}),(0,M.jsx)(Ya,{onQuote:e}),(0,M.jsx)(I,{onQuote:e,onSolar:t})]})}function Mu(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)}function Nu(e){for(let t of Ou)for(let n of t.faqs)if(Mu(n.q)===e)return{category:t.title,...n};return null}function Pu(){let{slug:e}=Hr(),{openQuote:t,openSolar:n}=nu(),r=Nu(e||``);return ca({title:r?`${r.q} | Intolec Ltd - Electrician Leamington Spa`:`FAQ Not Found - Intolec Ltd`,description:r?r.a.substring(0,155):`FAQ page for Intolec Ltd, electricians in Leamington Spa.`,canonicalPath:`/faq/${e||``}`,jsonLd:r?{"@context":`https://schema.org`,"@type":`FAQPage`,mainEntity:[{"@type":`Question`,name:r.q,acceptedAnswer:{"@type":`Answer`,text:r.a}}]}:void 0}),r?(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(F,{onQuote:t}),(0,M.jsxs)(`section`,{className:`relative bg-[#14532D] overflow-hidden pt-28 pb-16 md:pt-36 md:pb-20`,children:[(0,M.jsx)(`div`,{className:`absolute inset-0 pointer-events-none`,children:(0,M.jsx)(`div`,{className:`absolute top-0 right-0 w-96 h-96 rounded-full bg-[#22C55E]/10 blur-3xl translate-x-1/2 -translate-y-1/2`})}),(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center relative z-10`,children:[(0,M.jsxs)(`nav`,{className:`flex items-center justify-center gap-2 text-xs text-[#86EFAC]/60 mb-6`,children:[(0,M.jsx)(j,{to:`/`,className:`hover:text-[#86EFAC] transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(j,{to:`/frequently-asked-questions`,className:`hover:text-[#86EFAC] transition-colors`,children:`FAQ`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(`span`,{className:`text-[#86EFAC]`,children:r.category})]}),(0,M.jsx)(`span`,{className:`inline-block text-[#86EFAC] font-semibold text-xs uppercase tracking-widest mb-4 bg-[#22C55E]/20 px-4 py-1.5 rounded-full`,children:r.category}),(0,M.jsx)(`h1`,{className:`text-2xl md:text-4xl font-extrabold text-white mb-5 leading-tight`,children:r.q})]})]}),(0,M.jsx)(`section`,{className:`py-12 md:py-16 bg-[#F9FAFB]`,children:(0,M.jsxs)(`div`,{className:`max-w-3xl mx-auto px-4 md:px-6`,children:[(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6 md:p-10`,children:[(0,M.jsx)(`p`,{className:`text-sm md:text-base text-[#374151] leading-relaxed`,children:r.a}),(0,M.jsxs)(`div`,{className:`mt-8 pt-6 border-t border-gray-100 flex flex-col sm:flex-row items-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#14532D] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Call 01926 768080`]}),(0,M.jsxs)(`button`,{onClick:t,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors cursor-pointer whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]}),(0,M.jsx)(`p`,{className:`text-xs text-[#9CA3AF] mt-4 text-center`,children:`Intolec Ltd â trusted electricians in Leamington Spa, Warwick and across Warwickshire. NAPIT registered, fully insured.`})]}),(0,M.jsx)(`div`,{className:`mt-8 text-center`,children:(0,M.jsxs)(j,{to:`/frequently-asked-questions`,className:`text-[#16A34A] font-semibold text-sm hover:underline inline-flex items-center gap-1`,children:[(0,M.jsx)(`i`,{className:`ri-arrow-left-s-line`}),`View all frequently asked questions`]})})]})}),(0,M.jsx)(Ya,{onQuote:t}),(0,M.jsx)(I,{onQuote:t,onSolar:n})]}):(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0`,children:[(0,M.jsx)(F,{onQuote:t}),(0,M.jsxs)(`div`,{className:`pt-32 pb-20 text-center`,children:[(0,M.jsx)(`h1`,{className:`text-2xl font-bold text-gray-800 mb
31-4`,children:`FAQ Not Found`}),(0,M.jsx)(`p`,{className:`text-gray-500 mb-6`,children:`The question you are looking for could not be found.`}),(0,M.jsx)(j,{to:`/frequently-asked-questions`,className:`text-green-600 font-semibold hover:underline`,children:`View all FAQs`})]}),(0,M.jsx)(Ya,{onQuote:t})]})}function Fu({onQuote:e,onSolar:t}){return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(F,{onQuote:e,onSolar:t,activePage:`blog`}),(0,M.jsxs)(`section`,{className:`relative pt-28 pb-16 md:pt-36 md:pb-20 overflow-hidden bg-[#14532D]`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 right-0 w-96 h-96 rounded-full bg-[#22C55E]/10 blur-3xl translate-x-1/2 -translate-y-1/2`}),(0,M.jsx)(`div`,{className:`absolute bottom-0 left-0 w-80 h-80 rounded-full bg-[#16A34A]/15 blur-3xl -translate-x-1/3 translate-y-1/3`}),(0,M.jsx)(`div`,{className:`absolute inset-0 opacity-5`,style:{backgroundImage:`radial-gradient(circle, #22C55E 1px, transparent 1px)`,backgroundSize:`32px 32px`}})]}),(0,M.jsx)(`div`,{className:`relative max-w-7xl mx-auto px-4 md:px-6 w-full`,children:(0,M.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2 mb-4`,children:[(0,M.jsx)(`a`,{href:`/`,className:`text-[#86EFAC] text-sm font-medium hover:text-white transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-[#86EFAC] text-sm`}),(0,M.jsx)(`span`,{className:`text-white/70 text-sm`,children:`Blog`})]}),(0,M.jsxs)(`h1`,{className:`text-3xl md:text-5xl font-extrabold text-white leading-tight mb-4`,children:[`Electrician Blog `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`Leamington Spa`})]}),(0,M.jsx)(`p`,{className:`text-white/80 text-base md:text-lg leading-relaxed mb-8 max-w-xl`,children:`Stay informed with the latest news, guides and advice from Intolec â your local electricians in Leamington Spa & Warwickshire.`}),(0,M.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-white text-[#14532D] font-bold text-sm hover:bg-[#F0FDF4] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:e,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors cursor-pointer whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]})})]})]})}function Iu({onQuote:e}){let[t,n]=(0,E.useState)(`all`),r=t===`all`?yu:yu.filter(e=>e.categorySlug===t),i=r[0],a=r.slice(1);return(0,M.jsx)(`section`,{className:`py-16 md:py-24 bg-[#F9FAFB]`,children:(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6`,children:[(0,M.jsx)(`div`,{className:`flex flex-wrap gap-2 mb-10`,children:Su.map(e=>(0,M.jsx)(`button`,{onClick:()=>n(e.value),className:`px-4 py-2 rounded-full text-sm font-semibold whitespace-nowrap cursor-pointer transition-all ${t===e.value?`bg-[#14532D] text-white`:`bg-white text-[#374151] border border-gray-200 hover:border-[#22C55E] hover:text-[#14532D]`}`,children:e.label},e.value))}),r.length===0&&(0,M.jsx)(`div`,{className:`text-center py-20 text-[#6B7280]`,children:`No posts in this category yet.`}),i&&(0,M.jsx)(`a`,{href:`/blog/${i.slug}`,className:`group block bg-white rounded-2xl overflow-hidden border border-gray-100 mb-10 hover:-translate-y-1 transition-all duration-300 cursor-pointer`,children:(0,M.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2`,children:[(0,M.jsx)(`div`,{className:`h-64 md:h-auto overflow-hidden`,children:(0,M.jsx)(`img`,{src:i.heroImage,alt:i.title,className:`w-full h-full object-cover object-top group-hover:scale-105 transition-transform duration-500`,onError:e=>{e.target.src=`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/08ffe935-fcb6-4857-a79a-3c7bae929ee1_electrician-in-warwick.jpg?v=3b21d75fdc5c0655216156b7d8608202`}})}),(0,M.jsxs)(`div`,{className:`p-8 md:p-10 flex flex-col justify-center`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2 mb-3`,children:[(0,M.jsx)(`span`,{className:`text-xs font-bold uppercase tracking-widest text-[#16A34A] bg-[#F0FDF4] px-3 py-1 rounded-full border border-[#BBF7D0]`,children:i.category}),(0,M.jsx)(`span`,{className:`text-xs text-[#9CA3AF]`,children:i.readTime})]}),(0,M.jsx)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-[#111827] mb-3 group-hover:text-[#14532D] transition-colors leading-snug`,children:i.title}),(0,M.jsx)(`p`,{className:`text-sm text-[#6B7280] leading-relaxed mb-5 line-clamp-3`,children:i.excerpt}),(0,M.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,M.jsx)(`span`,{className:`text-xs text-[#9CA3AF]`,children:i.date}),(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-sm font-bold text-[#16A34A] group-hover:gap-2 transition-all`,children:[`Read More `,(0,M.jsx)(`i`,{className:`ri-arrow-right-line`})]})]})]})]})}),a.length>0&&(0,M.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6`,children:a.map(e=>(0,M.jsxs)(`a`,{href:`/blog/${e.slug}`,className:`group bg-white rounded-xl overflow-hidden border border-gray-100 flex flex-col hover:-translate-y-1 transition-all duration-300 cursor-pointer`,children:[(0,M.jsx)(`div`,{className:`h-48 overflow-hidden`,children:(0,M.jsx)(`img`,{src:e.heroImage,alt:e.title,className:`w-full h-full object-cover object-top group-hover:scale-105 transition-transform duration-500`,onError:e=>{e.target.src=`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/08ffe935-fcb6-4857-a79a-3c7bae929ee1_electrician-in-warwick.jpg?v=3b21d75fdc5c0655216156b7d8608202`}})}),(0,M.jsxs)(`div`,{className:`p-5 flex flex-col flex-1`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2 mb-2`,children:[(0,M.jsx)(`span`,{className:`text-xs font-bold uppercase tracking-widest text-[#16A34A]`,children:e.category}),(0,M.jsxs)(`span`,{className:`text-xs text-[#9CA3AF]`,children:[`· `,e.readTime]})]}),(0,M.jsx)(`h3`,{className:`text-base font-bold text-[#111827] mb-2 group-hover:text-[#14532D] transition-colors leading-snug line-clamp-2`,children:e.title}),(0,M.jsx)(`p`,{className:`text-xs text-[#6B7280] leading-relaxed mb-4 flex-1 line-clamp-3`,children:e.excerpt}),(0,M.jsxs)(`div`,{className:`flex items-center justify-between mt-auto pt-3 border-t border-gray-100`,children:[(0,M.jsx)(`span`,{className:`text-xs text-[#9CA3AF]`,children:e.date}),(0,M.jsxs)(`span`,{className:`inline-flex items-center gap-1 text-xs font-bold text-[#16A34A] group-hover:gap-2 transition-all`,children:[`Read More `,(0,M.jsx)(`i`,{className:`ri-arrow-right-line text-xs`})]})]})]})]},e.slug))}),(0,M.jsxs)(`div`,{className:`mt-16 rounded-2xl bg-[#14532D] p-8 md:p-10 text-center`,children:[(0,M.jsx)(`h3`,{className:`text-xl md:text-2xl font-extrabold text-white mb-2`,children:`Need
31Electrical Help?`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-sm md:text-base mb-6`,children:`Call us for free advice â no obligation, no pushy sales.`}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-3`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-white text-[#14532D] font-bold text-sm hover:bg-[#F0FDF4] transition-colors whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:e,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors cursor-pointer whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]})]})})}function Lu(){let{openQuote:e,openSolar:t}=nu();return ca({title:`Blog | Electrical Tips & Advice | Leamington Spa - IntoLec Ltd`,description:`Expert electrical advice and tips from Intolec Ltd. Read our latest articles on EICRs, solar panels, EV chargers, rewiring and more for Leamington Spa and Warwickshire.`,canonicalPath:`/blog`,jsonLd:{"@context":`https://schema.org`,"@type":`Blog`,name:`Intolec Ltd Blog`,url:`https://www.electriciansinleamingtonspa.co.uk/blog`,description:`Expert electrical advice and tips from Intolec Ltd. Read our latest articles on EICRs, solar panels, EV chargers, rewiring and more.`}}),(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(Fu,{onQuote:e,onSolar:t}),(0,M.jsx)(`main`,{children:(0,M.jsx)(Iu,{onQuote:e})}),(0,M.jsx)(Ya,{onQuote:e}),(0,M.jsx)(I,{onQuote:e,onSolar:t})]})}function Ru({post:e,onQuote:t,onSolar:n}){return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(F,{onQuote:t,onSolar:n,activePage:`blog`}),(0,M.jsxs)(`section`,{className:`relative pt-28 pb-0 md:pt-36 overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0 h-80 md:h-96`,children:[(0,M.jsx)(`img`,{src:e.heroImage,alt:e.title,className:`w-full h-full object-cover object-top`,onError:e=>{e.target.src=`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/08ffe935-fcb6-4857-a79a-3c7bae929ee1_electrician-in-warwick.jpg?v=3b21d75fdc5c0655216156b7d8608202`}}),(0,M.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-b from-[#14532D]/80 via-[#14532D]/70 to-[#14532D]/90`})]}),(0,M.jsxs)(`div`,{className:`relative max-w-4xl mx-auto px-4 md:px-6 w-full pb-10 md:pb-14`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2 mb-5 flex-wrap`,children:[(0,M.jsx)(`a`,{href:`/`,className:`text-[#86EFAC] text-sm font-medium hover:text-white transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-[#86EFAC] text-sm`}),(0,M.jsx)(`a`,{href:`/blog`,className:`text-[#86EFAC] text-sm font-medium hover:text-white transition-colors`,children:`Blog`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-[#86EFAC] text-sm`}),(0,M.jsx)(`span`,{className:`text-white/60 text-sm truncate max-w-xs`,children:e.title})]}),(0,M.jsx)(`div`,{className:`mb-4`,children:(0,M.jsx)(`span`,{className:`inline-block text-xs font-bold uppercase tracking-widest text-[#14532D] bg-[#22C55E] px-3 py-1 rounded-full`,children:e.category})}),(0,M.jsxs)(`h1`,{className:`text-2xl md:text-4xl font-extrabold text-white leading-tight mb-4 max-w-2xl`,children:[e.title,` â `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`Leamington Spa`})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-4 flex-wrap`,children:[(0,M.jsxs)(`span`,{className:`flex items-center gap-1.5 text-white/70 text-sm`,children:[(0,M.jsx)(`i`,{className:`ri-calendar-line text-[#86EFAC]`}),e.date]}),(0,M.jsxs)(`span`,{className:`flex items-center gap-1.5 text-white/70 text-sm`,children:[(0,M.jsx)(`i`,{className:`ri-time-line text-[#86EFAC]`}),e.readTime]}),(0,M.jsxs)(`span`,{className:`flex items-center gap-1.5 text-white/70 text-sm`,children:[(0,M.jsx)(`i`,{className:`ri-user-line text-[#86EFAC]`}),`Intolec Ltd`]})]})]})]})]})}function zu(e,t){switch(e.type){case`intro`:return(0,M.jsx)(`p`,{className:`text-base md:text-lg text-[#374151] leading-relaxed font-medium border-l-4 border-[#22C55E] pl-5 py-1 bg-[#F0FDF4] rounded-r-lg`,children:e.text},t);case`h2`:return(0,M.jsx)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-[#14532D] mt-8 mb-3`,children:e.text},t);case`p`:return(0,M.jsx)(`p`,{className:`text-sm md:text-base text-[#374151] leading-relaxed`,children:e.text},t);case`ul`:return(0,M.jsx)(`ul`,{className:`flex flex-col gap-2 my-2`,children:e.items.map((e,t)=>(0,M.jsxs)(`li`,{className:`flex items-start gap-3 text-sm md:text-base text-[#374151] leading-relaxed`,children:[(0,M.jsx)(`i`,{className:`ri-checkbox-circle-fill text-[#22C55E] text-base flex-shrink-0 mt-0.5`}),(0,M.jsx)(`span`,{children:e})]},t))},t);case`image`:return(0,M.jsx)(`div`,{className:`rounded-xl overflow-hidden my-4`,children:(0,M.jsx)(`img`,{src:e.src,alt:e.alt,className:`w-full object-cover`,onError:e=>{e.target.src=`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/08ffe935-fcb6-4857-a79a-3c7bae929ee1_electrician-in-warwick.jpg?v=3b21d75fdc5c0655216156b7d8608202`}})},t);default:return null}}function Bu({post:e,onQuote:t}){let n=yu.filter(t=>t.slug!==e.slug&&t.categorySlug===e.categorySlug).slice(0,3),r=n.length<3?yu.filter(t=>t.slug!==e.slug&&!n.find(e=>e.slug===t.slug)).slice(0,3-n.length):[],i=[...n,...r].slice(0,3);return(0,M.jsx)(`section`,{className:`py-12 md:py-16 bg-[#F9FAFB]`,children:(0,M.jsx)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6`,children:(0,M.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-3 gap-10`,children:[(0,M.jsxs)(`article`,{className:`lg:col-span-2`,children:[(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl p-6 md:p-10 border border-gray-100`,children:[(0,M.jsx)(`div`,{className:`flex flex-col gap-5`,children:e.sections.map((e,t)=>zu(e,t))}),(0,M.jsxs)(`div`,{className:`mt-8 pt-6 border-t border-gray-100 flex items-center gap-3 flex-wrap`,children:[(0,M.jsx)(`span`,{className:`text-xs font-bold text-[#9CA3AF] uppercase tracking-widest`,children:`Category:`}),(0,M.jsx)(`span`,{className:`text-xs font-semibold text-[#14532D] bg-[#F0FDF4] border border-[#BBF7D0] px-3 py-1 rounded-full`,children:e.category})]}),(0,M.jsxs)(`div`,{className:`mt-5 flex items-center gap-3 flex-wrap`,children:[(0,M.jsx)(`span`,{className:`text-xs font-bold text-[#9CA3AF] uppercase tracking-widest`,children:`Share:`}),(0,M.jsx)(`a`,{href:`https://www.facebook.com/sharer/sharer.php?u=${encodeURIComponent(typeof window<`u`?window.location.href:``)}
31`,target:`_blank`,rel:`noopener noreferrer nofollow`,className:`w-8 h-8 flex items-center justify-center rounded-full bg-[#14532D] text-white hover:bg-[#16A34A] transition-colors`,children:(0,M.jsx)(`i`,{className:`ri-facebook-fill text-sm`})}),(0,M.jsx)(`a`,{href:`https://twitter.com/intent/tweet?text=${encodeURIComponent(e.title)}&url=${encodeURIComponent(typeof window<`u`?window.location.href:``)}`,target:`_blank`,rel:`noopener noreferrer nofollow`,className:`w-8 h-8 flex items-center justify-center rounded-full bg-[#14532D] text-white hover:bg-[#16A34A] transition-colors`,children:(0,M.jsx)(`i`,{className:`ri-twitter-x-line text-sm`})})]})]}),(0,M.jsxs)(`div`,{className:`mt-8 rounded-2xl bg-[#14532D] p-7 md:p-8`,children:[(0,M.jsx)(`h3`,{className:`text-lg md:text-xl font-extrabold text-white mb-2`,children:`Need Help with Your Electrics?`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-sm mb-5`,children:`Call us for free advice â no obligation, no pushy sales. Serving Leamington Spa & Warwickshire.`}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row gap-3`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center justify-center gap-2 px-5 py-3 rounded-lg bg-white text-[#14532D] font-bold text-sm hover:bg-[#F0FDF4] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:t,className:`inline-flex items-center justify-center gap-2 px-5 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors cursor-pointer whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]})]}),(0,M.jsxs)(`aside`,{className:`flex flex-col gap-6`,children:[(0,M.jsxs)(`div`,{className:`bg-white rounded-xl p-6 border border-gray-100`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3 mb-4`,children:[(0,M.jsx)(`div`,{className:`w-12 h-12 flex items-center justify-center rounded-xl bg-[#14532D] flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`ri-flashlight-line text-white text-xl`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`font-extrabold text-[#111827] text-sm`,children:`Intolec Ltd`}),(0,M.jsx)(`p`,{className:`text-xs text-[#6B7280]`,children:`Leamington Spa & Warwickshire`})]})]}),(0,M.jsx)(`p`,{className:`text-xs text-[#6B7280] leading-relaxed mb-4`,children:`NAPIT registered electricians & renewable energy specialists. MCS certified, OZEV registered, Which? Trusted Trader.`}),(0,M.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`flex items-center gap-2 text-sm font-semibold text-[#14532D] hover:text-[#16A34A] transition-colors`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-[#22C55E]`}),`01926 768080`]}),(0,M.jsxs)(`a`,{href:`/services`,className:`flex items-center gap-2 text-sm font-semibold text-[#14532D] hover:text-[#16A34A] transition-colors`,children:[(0,M.jsx)(`i`,{className:`ri-grid-line text-[#22C55E]`}),`View All Services`]})]})]}),(0,M.jsxs)(`div`,{className:`bg-white rounded-xl p-6 border border-gray-100`,children:[(0,M.jsx)(`h4`,{className:`font-extrabold text-[#14532D] text-sm mb-4`,children:`Our Accreditations`}),(0,M.jsx)(`div`,{className:`flex flex-col gap-3`,children:[{icon:`ri-award-line`,label:`NAPIT Registered`},{icon:`ri-sun-line`,label:`MCS Certified`},{icon:`ri-car-line`,label:`OZEV Registered`},{icon:`ri-shield-check-line`,label:`Which? Trusted Trader`}].map(e=>(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`div`,{className:`w-7 h-7 flex items-center justify-center rounded-lg bg-[#F0FDF4] flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-[#16A34A] text-sm`})}),(0,M.jsx)(`span`,{className:`text-sm font-semibold text-[#374151]`,children:e.label})]},e.label))})]}),i.length>0&&(0,M.jsxs)(`div`,{className:`bg-white rounded-xl p-6 border border-gray-100`,children:[(0,M.jsx)(`h4`,{className:`font-extrabold text-[#14532D] text-sm mb-4`,children:`Related Articles`}),(0,M.jsx)(`div`,{className:`flex flex-col gap-4`,children:i.map(e=>(0,M.jsxs)(`a`,{href:`/blog/${e.slug}`,className:`group flex gap-3 cursor-pointer`,children:[(0,M.jsx)(`div`,{className:`w-16 h-16 flex-shrink-0 rounded-lg overflow-hidden`,children:(0,M.jsx)(`img`,{src:e.heroImage,alt:e.title,className:`w-full h-full object-cover object-top group-hover:scale-105 transition-transform duration-300`,onError:e=>{e.target.src=`https://storage.readdy-site.link/project_files/8d055a10-2980-4e8d-9b9e-e81fa42dca9b/08ffe935-fcb6-4857-a79a-3c7bae929ee1_electrician-in-warwick.jpg?v=3b21d75fdc5c0655216156b7d8608202`}})}),(0,M.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,M.jsx)(`p`,{className:`text-xs font-bold text-[#111827] group-hover:text-[#14532D] transition-colors leading-snug line-clamp-2`,children:e.title}),(0,M.jsx)(`p`,{className:`text-xs text-[#9CA3AF] mt-1`,children:e.date})]})]},e.slug))})]}),(0,M.jsxs)(`a`,{href:`/blog`,className:`flex items-center justify-center gap-2 px-5 py-3 rounded-xl border-2 border-[#14532D] text-[#14532D] font-bold text-sm hover:bg-[#14532D] hover:text-white transition-colors`,children:[(0,M.jsx)(`i`,{className:`ri-arrow-left-line`}),`Back to Blog`]})]})]})})})}function Vu(){let{slug:e}
31=Hr(),t=e?bu(e):void 0,{openQuote:n,openSolar:r}=nu(),i=`https://www.electriciansinleamingtonspa.co.uk`;function a(e){try{let t=new Date(e);if(!isNaN(t.getTime()))return t.toISOString().split(`T`)[0]}catch{}return`2024-01-01`}let o=t?{"@context":`https://schema.org`,"@type":`Article`,headline:t.title,description:t.excerpt,image:t.heroImage,author:{"@type":`Organization`,name:`Intolec Ltd`,url:i},publisher:{"@type":`Organization`,name:`Intolec Ltd`,url:i,logo:{"@type":`ImageObject`,url:`https://static.readdy.ai/image/4a891bf01ca77aa59d4e684a3f5f885b/b89155a3a628b11dd6196f25facf2ad9.png`}},datePublished:a(t.date),dateModified:a(t.date)}:void 0;return ca({title:t?`${t.title} - IntoLec Ltd`:`Blog Post Not Found - IntoLec Ltd`,description:t?`${t.excerpt} Read more from Intolec Ltd, trusted electricians in Leamington Spa and Warwickshire.`:`Blog post not found. Browse our latest electrical tips and advice from Intolec Ltd.`,canonicalPath:t?`/blog/${t.slug}`:void 0,jsonLd:o}),t?(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(Ru,{post:t,onQuote:n,onSolar:r}),(0,M.jsx)(`main`,{children:(0,M.jsx)(Bu,{post:t,onQuote:n})}),(0,M.jsx)(Ya,{onQuote:n}),(0,M.jsx)(I,{onQuote:n,onSolar:r})]}):(0,M.jsx)(ua,{})}var Hu=[{slug:`k-mccracken-electrician-review-leamington-spa`,name:`K McCracken`,initials:`KM`,rating:5,date:`April 2026`,service:`General Electrical`,excerpt:`Excellent service from start to finish... would highly recommend Richard and his team.`,text:`Excellent service from start to finish. Richard and his team were punctual, friendly and highly professional throughout the whole job. Every question we had was answered clearly and the finished work was tidy and well explained. I would highly recommend Richard and his team to anyone in Leamington Spa looking for a dependable, local electrician.`},{slug:`alison-patchett-solar-panel-installation-review`,name:`Alison Patchett`,initials:`AP`,rating:5,date:`March 2026`,service:`Solar Panels`,excerpt:`After becoming tired of pushy sales teams from the big solar players, I got in touch with Intolec. Richard was brilliant.`,text:`After becoming tired of pushy sales teams from the big players in the solar industry, I got in touch with Intolec. Richard was brilliant from the very first visit - he took the time to find out exactly what I wanted before putting together a quote, and answered all my email questions promptly. The solar panel installation was completed neatly and on schedule, and I finally felt like I was dealing with someone who genuinely cared about getting it right.`},{slug:`farley-chalk-electrician-review-warwick`,name:`Farley Chalk`,initials:`FC`,rating:5,date:`February 2026`,service:`General Electrical`,excerpt:`Excellent company providing a highly professional service. Very impressed with the communication and quality of work.`,text:`Excellent company providing a highly professional service. I was very impressed with the communication throughout and the quality of the workmanship. Everything was explained clearly, the team arrived when they said they would, and the finished job was spotless. I would not hesitate to recommend Intolec to anyone needing an electrician in the Warwick area.`},{slug:`peter-lane-electrician-review-leamington-spa`,name:`Peter Lane`,initials:`PL`,rating:5,date:`January 2026`,service:`General Electrical`,excerpt:`Great service. Superbly knowledgeable.`,text:`Great service and a superbly knowledgeable electrician. Richard quickly diagnosed what needed doing and completed the work efficiently and to a high standard. Everything was left clean and tidy and he took the time to explain what he had done. A genuinely skilled tradesman who clearly knows his craft inside out - highly recommended.`},{slug:`john-carson-electrical-fault-finding-review`,name:`John Carson`,initials:`JC`,rating:5,date:`January 2026`,service:`Fault Finding & Repair`,excerpt:`Richard worked methodically through the failed circuit to identify and, more importantly, fix the fault.`,text:`Absolutely brilliant service. Richard worked methodically through the failed circuit to identify and, more importantly, fix the fault. He explained what had caused the problem and made sure everything was safely restored and tested before leaving. Would have no hesitation in recommending this company to friends and family.`},{slug:`john-dewar-electrician-review-leamington-spa`,name:`John Dewar`,initials:`JD`,rating:5,date:`January 2026`,service:`General Electrical`,excerpt:`Excellent service from knowledgeable staff.`,text:`Excellent service from knowledgeable and friendly staff. The job was completed to a high standard and on time, with everything left clean and tidy. A thoroughly professional outfit that communicated well at every stage, and one I would happily use again for any future electrical work.`}
31,{slug:`sarah-williams-ev-charger-installation-review`,name:`Sarah Williams`,initials:`SW`,rating:5,date:`March 2026`,service:`EV Charger Installation`,excerpt:`Richard and his team did an outstanding job installing our EV charger - punctual, clean and so neatly finished.`,text:`Richard and his team did an outstanding job installing our EV charger. They arrived on time, worked cleanly, and explained everything clearly before leaving. The charger works perfectly and the installation is so neat you would not even know the cable was run externally. I would not hesitate to recommend Intolec to anyone looking for an EV charger installation in Leamington Spa.`},{slug:`david-thompson-consumer-unit-upgrade-review`,name:`David Thompson`,initials:`DT`,rating:5,date:`February 2026`,service:`Consumer Unit Upgrade`,excerpt:`A complete consumer unit upgrade and additional sockets - professional from start to finish.`,text:`We had a complete consumer unit upgrade and several additional sockets installed. The team was professional from start to finish. They took the time to explain why our old fuse board was unsafe and showed us the completed work once they were done. The new board looks fantastic and we now have peace of mind knowing our electrics are fully protected.`},{slug:`emma-harrison-solar-panel-installation-review`,name:`Emma Harrison`,initials:`EH`,rating:5,date:`January 2026`,service:`Solar Panel Installation`,excerpt:`After getting several quotes for solar panels, Intolec stood out for their honest advice and competitive pricing.`,text:`After getting several quotes for solar panels, Intolec stood out for their honest advice and competitive pricing. Richard spent time understanding our energy usage and recommended exactly the right system size. The installation was completed in two days with minimal disruption, and we are already seeing the savings on our electricity bills.`},{slug:`james-mitchell-battery-storage-system-review`,name:`James Mitchell`,initials:`JM`,rating:5,date:`December 2025`,service:`Battery Storage System`,excerpt:`Intolec installed an AC-coupled battery storage system alongside our existing solar panels. Professional and tidy.`,text:`Intolec installed an AC-coupled battery storage system to work alongside our existing solar panels. The difference it has made is incredible - we now use far less grid electricity in the evenings. Richard explained the different battery options clearly and helped us choose the right capacity for our home. Professional, tidy installation and excellent aftercare.`},{slug:`claire-bennett-eicr-inspection-review`,name:`Claire Bennett`,initials:`CB`,rating:5,date:`November 2025`,service:`EICR Inspection`,excerpt:`We used Intolec for an EICR on our rental property. Thorough inspection and the report was issued the same day.`,text:`We used Intolec for an EICR on our rental property in Leamington Spa. The inspection was thorough and Richard talked us through the findings in plain English. A couple of minor issues were identified, and they came back the following week to carry out the remedial work. The report was issued the same day. First class service from a genuinely knowledgeable electrician.`},{slug:`mark-davies-full-house-rewire-review`,name:`Mark Davies`,initials:`MD`,rating:5,date:`October 2025`,service:`Full Rewire`,excerpt:`Intolec rewired our entire 1930s semi in Warwick - a big job made as painless as possible.`,text:`Intolec rewired our entire 1930s semi in Warwick. It was a big job but Richard and the team made the process as painless as possible. They worked room by room so we could stay in the house, and the quality of the work is outstanding. All the new sockets are perfectly level, the consumer unit is neatly installed, and we have full certification for our records.`},{slug:`rebecca-collins-security-lighting-review`,name:`Rebecca Collins`,initials:`RC`,rating:5,date:`September 2025`,service:`Security Lighting`,excerpt:`I cannot recommend Intolec highly enough - outdoor security lighting designed and installed within a day.`,text:`I cannot recommend Intolec highly enough. We needed outdoor security lighting installed after a break-in attempt, and Richard came out the same week to assess the property. He designed a lighting scheme that covers all the vulnerable areas and installed it within a day. The difference it has made to our peace of mind is immeasurable. Professional, caring and genuinely skilled.`},{slug:`tom-hartley-garage-electrics-review`,name:`Tom Hartley`,initials:`TH`,rating:5,date:`August 2025`,service:`Garage Electrics`,excerpt:`Excellent service - a new garage circuit installed to a very high standard. Would definitely use again.`,text:`Excellent service from Intolec. I needed a new circuit installed in my garage for a workshop setup. Richard provided a clear quote, turned up on time, and completed the work to a very high standard. The new consumer unit and socket layout in the garage is perfect. Would definitely use Intolec again for any future electrical work.`}];function Uu(e){return Hu.find(t=>t.slug===e)}var Wu=[`bg-[#14532D]`,`bg-[#166534]`,`bg-[#15803D]`,`bg-[#16A34A]`,`bg-[#1A4731]`,`bg-[#0F4C25]`];function Gu({count:e}){return(0,M.jsx)(`div`,{className:`flex gap-0.5`,children:[...Array(e)].map((e,t)=>(0,M.jsx)(`i`,{className:`ri-star-fill text-[#FACC15] text-base`},t))})}function Ku({review:e,index:t,visible:n}){let r=Wu[t%Wu.length];return(0,M.jsxs)(j,{to:`/testimonial/${e.slug}`,"aria-label":`Read the full ${e.service} review from ${e.name}`,className:`group bg-white rounded-2xl p-6 flex flex-col gap-4 border border-gray-100 transition-all duration-700 hover:border-[#BBF7D0] hover:-translate-y-0.5 cursor-pointer ${n?`opacity-100 translate-y-0`:`opacity-0 translate-y-8`}`,style:{transitionDelay:`${t%6*80}ms`},children:[(0,M.jsxs)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,M.jsx)(Gu,{count:e.rating}),(0,M.jsx)(`span`,{className:`text-xs text-[#9CA3AF] whitespace-nowrap`,children:e.date})]}),(0,M.jsxs)(`p`,{className:`text-[#374151] text-sm leading-relaxed flex-1`,children:[`â`,e.excerpt,`â`]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-3 pt-3 border-t border-gray-100`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-full ${r} text-white font-bold text-sm flex-shrink-0`,children:e.initials}),(0,M.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,M.jsx)(`p`,{className:`font-bold text-[#111827] text-sm`,children:e.name}),(0,M.jsxs)(`div`,{className:`flex items-center gap-1.5 flex-wrap`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,M.jsx)(`i`,{className:`ri-google-line text-xs text-[#6B7280]`}),(0,M.jsx)(`span`,{className:`text-xs text-[#6B7280]`,children:`Google Review`})]}),(0,M.jsx)(`span`,{className:`text-[#D1D5DB] text-xs`,children:`·`}),(0,M.jsx)(`span`,{className:`text-xs text-[#16A34A] font-medium`,children:e.service})]})]}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line text-xl text-[#D1D5DB] group-hover:text-[#16A34A] transition-colors`})]})]})}function qu(){let{openQuote:e}=nu(),[t,n]=(0,E.useState)(!1),[r,i]=(0,E.useState)(!1),a=(0,E.useRef)(null),o=(0,E.useRef)(null);return ca({title:`Customer Reviews | Electrician in Leamington Spa - IntoLec Ltd`,description:`Read genuine customer reviews for Intolec Ltd. 5-star rated electricians in Leamington Spa and Warwickshire. Call 01926 768080 for a free quote.`,canonicalPath:`/testimonials`,jsonLd:{"@context":`https://schema.org`,"@type":`LocalBusiness`,name:`Intolec Ltd`,url:`https://www.electriciansinleamingtonspa.co.uk/testimonials`,aggregateRating:{"@type":`AggregateRating`,ratingValue:`5`,reviewCount:String(Hu.length),bestRating:`5`},review:Hu.map(e=>({"@type":`Review`,author:{"@type":`Person`,name:e.name},reviewRating:{"@type":`Rating`,ratingValue:String(e.rating),bestRating:`5`},reviewBody:e.text}))}}),(0,E.useEffect)(()=>{let e=new IntersectionObserver(([e])=>{e.isIntersecting&&n(!0)},{threshold:.05});return a.current&&e.observe(a.current),()=>e.disconnect()},[]),(0,E.useEffect)(()=>{let e=new IntersectionObserver(([e])=>{e.isIntersecting&&i(!0)},{threshold:.1});return o.current&&e.observe(o.current),()=>e.disconnect()},[]),(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(F,{onQuote:e}),(0,M.jsxs)(`section`,{className:`relative bg-[#14532D] overflow-hidden pt-28 pb-20 md:pt-36 md:pb-28`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 right-0 w-96 h-96 rounded-full bg-[#22C55E]/10 blur-3xl translate-x-1/2 -translate-y-1/2`}),(0,M.jsx)(`div`,{className:`absolute bottom-0 left-0 w-80 h-80 rounded-full bg-[#16A34A]/15 blur-3xl -translate-x-1/3 translate-y-1/3`}),(0,M.jsx)(`div`,{className:`absolute inset-0 opacity-5`,style:{backgroundImage:`radial-gradient(circle, #22C55E 1px, transparent 1px)`,backgroundSize:`32px 32px`}})]}),(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center relative z-10`,children:[(0,M.jsxs)(`nav`,{className:`flex items-center justify-center gap-2 text-xs text-[#86EFAC]/60 mb-6`,children:[(0,M.jsx)(j,{to:`/`,className:`hover:text-[#86EFAC] transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(`span`,{className:`text-[#86EFAC]`,children:`Testimonials`})]}),(0,M.jsx)(`span`,{className:`inline-block text-[#86EFAC] font-semibold text-xs uppercase tracking-widest mb-4 bg-[#22C55E]/20 px-4 py-1.5 rounded-full`,children:`Customer Reviews`}),(0,M.jsxs)(`h1`,{className:`text-3xl md:text-6xl font-extrabold text-white mb-5 leading-tight`,children:[`What Our Customers Say`,(0,M.jsx)(`br`,{}),(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`Leamington Spa`})]}),(0,M.jsx)(`p`,{className:`text-[#86EFAC]/80 text-base md:text-lg max-w-2xl mx-auto mb-8 leading-relaxed`,children:`Don't just take our word for it. Here's what real customers across Leamington Spa, Warwick, Kenilworth and Warwickshire have to say about Intolec's electrical services â from EV charger installations and solar panels to emergency call-out
31s and consumer unit upgrades.`}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`https://share.google/2Yng4OLhAoqcj1SZ5`,target:`_blank`,rel:`nofollow noopener noreferrer`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-white text-[#14532D] font-bold text-sm hover:bg-[#F0FDF4] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-google-line text-base`}),`Leave Us a Review`,(0,M.jsx)(`i`,{className:`ri-external-link-line text-xs`})]}),(0,M.jsxs)(j,{to:`/contact`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg border-2 border-[#22C55E] text-[#86EFAC] font-bold text-sm hover:bg-[#22C55E]/20 transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line text-base`}),`Get a Free Quote`]})]})]})]}),(0,M.jsx)(`section`,{ref:o,className:`bg-[#F0FDF4] border-b border-[#BBF7D0]`,children:(0,M.jsx)(`div`,{className:`max-w-5xl mx-auto px-4 md:px-6 py-10`,children:(0,M.jsx)(`div`,{className:`grid grid-cols-2 md:grid-cols-4 gap-6 md:gap-8`,children:[{icon:`ri-star-fill`,value:`5.0`,label:`Average Rating`,color:`text-[#FACC15]`},{icon:`ri-google-line`,value:`50+`,label:`Google Reviews`,color:`text-[#16A34A]`},{icon:`ri-thumb-up-fill`,value:`100%`,label:`Recommend Us`,color:`text-[#16A34A]`},{icon:`ri-shield-check-fill`,value:`NAPIT`,label:`Registered`,color:`text-[#16A34A]`}].map((e,t)=>(0,M.jsxs)(`div`,{className:`text-center transition-all duration-700 ${r?`opacity-100 translate-y-0`:`opacity-0 translate-y-4`}`,style:{transitionDelay:`${t*100}ms`},children:[(0,M.jsx)(`div`,{className:`w-12 h-12 flex items-center justify-center rounded-full bg-white border border-[#BBF7D0] mx-auto mb-3`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-xl ${e.color}`})}),(0,M.jsx)(`div`,{className:`text-2xl md:text-3xl font-extrabold text-[#14532D]`,children:e.value}),(0,M.jsx)(`div`,{className:`text-xs text-[#6B7280] font-medium mt-0.5`,children:e.label})]},t))})})}),(0,M.jsx)(`section`,{className:`py-16 md:py-24 bg-[#F9FAFB]`,children:(0,M.jsxs)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6`,children:[(0,M.jsxs)(`div`,{className:`text-center mb-12`,children:[(0,M.jsx)(`h2`,{className:`text-2xl md:text-4xl font-extrabold text-[#14532D] mb-3`,children:`All Reviews â Electrician Leamington Spa`}),(0,M.jsxs)(`p`,{className:`text-[#6B7280] text-sm md:text-base max-w-xl mx-auto`,children:[`Every review below is a genuine Google review from a real customer. Weâre proud to be the `,(0,M.jsx)(`strong`,{children:`top-rated electrician near Leamington Spa`}),` â consistently earning 5-star feedback for reliability, quality and value. Tap any review to read it in full.`]})]}),(0,M.jsx)(`div`,{className:`flex items-center justify-center mb-10`,children:(0,M.jsxs)(`div`,{className:`inline-flex items-center gap-3 bg-white border border-gray-200 rounded-xl px-5 py-3`,children:[(0,M.jsx)(`i`,{className:`ri-google-line text-xl text-[#6B7280]`}),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,M.jsx)(`span`,{className:`font-extrabold text-[#111827] text-sm`,children:`5.0`}),(0,M.jsx)(`div`,{className:`flex gap-0.5`,children:[...[,,,,,]].map((e,t)=>(0,M.jsx)(`i`,{className:`ri-star-fill text-[#FACC15] text-sm`},t))})]}),(0,M.jsx)(`p`,{className:`text-xs text-[#6B7280]`,children:`Based on Google Reviews`})]}),(0,M.jsxs)(`a`,{href:`https://share.google/2Yng4OLhAoqcj1SZ5`,target:`_blank`,rel:`nofollow noopener noreferrer`,className:`ml-2 text-xs text-[#16A34A] font-semibold hover:text-[#14532D] transition-colors flex items-center gap-1 whitespace-nowrap`,children:[`View on Google`,(0,M.jsx)(`i`,{className:`ri-external-link-line`})]})]})}),(0,M.jsx)(`div`,{ref:a,className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5 md:gap-6`,children:Hu.map((e,n)=>(0,M.jsx)(Ku,{review:e,index:n,visible:t},e.slug))}),(0,M.jsxs)(`div`,{className:`mt-14 text-center`,children:[(0,M.jsx)(`p`,{className:`text-[#6B7280] text-sm mb-5`,children:`Had a great experience with Intolec? We'd love to hear from you.`}),(0,M.jsxs)(`a`,{href:`https://share.google/2Yng4OLhAoqcj1SZ5`,target:`_blank`,rel:`nofollow noopener noreferrer`,className:`inline-flex items-center gap-2 px-7 py-3.5 rounded-lg bg-[#16A34A] text-white font-bold text-sm hover:bg-[#14532D] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-google-line text-base`}),`Leave a Google Review`,(0,M.jsx)(`i`,{className:`ri-external-link-line text-xs`})]})]})]})}),(0,M.jsx)(`section`,{className:`w-full bg-black py-12 md:py-16`,children:(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center`,children:[(0,M.jsxs)(`p`,{className:`text-white text-base md:text-2xl font-extrabold uppercase tracking-wide leading-snug mb-6`,children:[`CALL US TODAY ON`,` `,(0,M.jsx)(`a`,{href:`tel:01926768080`,className:`text-[#22C55E] hover:text-[#86EFAC] transition-colors underline underline-offset-4`,children:`01926 768080`}),` `,`FOR A FREE, NO OBLIGATION QUOTE.`,` `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`YOUR CALL MATTERS TO US.`})]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md bg-[#22C55E] text-white font-bold text-base hover:bg-[#16A34A] transition-colors whitespace-nowrap w-full sm:w-auto`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-lg`}),`01926 768080`]}),(0,M.jsxs)(j,{to:`/contact`,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md border-2 border-white text-white font-bold text-base hover:bg-white hover:text-black transition-colors whitespace-nowrap w-full sm:w-auto cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line text-lg`}),`GET A FREE QUOTE`]})]})]})}),(0,M.jsx)(Ya,{onQuote:e}),(0,M.jsx)(Xa,{onQuote:e}),(0,M.jsx)(I,{onQuote:e})]})}function Ju(){let{slug:e}
31=Hr(),{openQuote:t,openSolar:n}=nu(),r=e?Uu(e):void 0;return ca({title:r?`${r.name} Review | Intolec Ltd - Electrician Leamington Spa`:`Testimonial Not Found - Intolec Ltd`,description:r?r.text.substring(0,155):`Customer reviews for Intolec Ltd, electricians in Leamington Spa.`,canonicalPath:r?`/testimonial/${r.slug}`:void 0,jsonLd:r?{"@context":`https://schema.org`,"@type":`Review`,author:{"@type":`Person`,name:r.name},reviewRating:{"@type":`Rating`,ratingValue:String(r.rating),bestRating:`5`},reviewBody:r.text}:void 0}),r?(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(F,{onQuote:t}),(0,M.jsxs)(`section`,{className:`relative bg-[#14532D] overflow-hidden pt-28 pb-16 md:pt-36 md:pb-20`,children:[(0,M.jsx)(`div`,{className:`absolute inset-0 pointer-events-none`,children:(0,M.jsx)(`div`,{className:`absolute top-0 right-0 w-96 h-96 rounded-full bg-[#22C55E]/10 blur-3xl translate-x-1/2 -translate-y-1/2`})}),(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center relative z-10`,children:[(0,M.jsxs)(`nav`,{className:`flex items-center justify-center gap-2 text-xs text-[#86EFAC]/60 mb-6`,children:[(0,M.jsx)(j,{to:`/`,className:`hover:text-[#86EFAC] transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(j,{to:`/testimonials`,className:`hover:text-[#86EFAC] transition-colors`,children:`Testimonials`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(`span`,{className:`text-[#86EFAC]`,children:r.name})]}),(0,M.jsx)(`div`,{className:`flex items-center justify-center gap-1.5 mb-4`,children:[...[,,,,,]].map((e,t)=>(0,M.jsx)(`i`,{className:`ri-star-fill text-[#FACC15] text-xl`},t))}),(0,M.jsxs)(`h1`,{className:`text-2xl md:text-4xl font-extrabold text-white mb-4 leading-tight`,children:[r.name,`âs Review`]}),(0,M.jsxs)(`div`,{className:`flex items-center justify-center gap-3 text-[#86EFAC]/70 text-sm flex-wrap`,children:[(0,M.jsx)(`span`,{children:r.date}),(0,M.jsx)(`span`,{children:`·`}),(0,M.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,M.jsx)(`i`,{className:`ri-google-line`}),`Google Review`]}),(0,M.jsx)(`span`,{children:`·`}),(0,M.jsx)(`span`,{children:r.service})]})]})]}),(0,M.jsx)(`section`,{className:`py-12 md:py-16 bg-[#F9FAFB]`,children:(0,M.jsxs)(`div`,{className:`max-w-3xl mx-auto px-4 md:px-6`,children:[(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6 md:p-10`,children:[(0,M.jsx)(`div`,{className:`w-12 h-12 flex items-center justify-center rounded-full bg-[#F0FDF4] mb-5`,children:(0,M.jsx)(`i`,{className:`ri-double-quotes-l text-[#16A34A] text-xl`})}),(0,M.jsxs)(`p`,{className:`text-sm md:text-base text-[#374151] leading-relaxed italic`,children:[`â`,r.text,`â`]}),(0,M.jsxs)(`div`,{className:`mt-6 pt-6 border-t border-gray-100`,children:[(0,M.jsx)(`p`,{className:`font-bold text-[#111827] text-base`,children:r.name}),(0,M.jsxs)(`p`,{className:`text-sm text-[#6B7280]`,children:[r.service,` â `,r.date]})]})]}),(0,M.jsxs)(`div`,{className:`mt-8 flex flex-col sm:flex-row items-center justify-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#14532D] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Call 01926 768080`]}),(0,M.jsxs)(`button`,{onClick:t,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors cursor-pointer whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]}),(0,M.jsx)(`div`,{className:`mt-8 text-center`,children:(0,M.jsxs)(j,{to:`/testimonials`,className:`text-[#16A34A] font-semibold text-sm hover:underline inline-flex items-center gap-1`,children:[(0,M.jsx)(`i`,{className:`ri-arrow-left-s-line`}),`View all customer reviews`]})})]})}),(0,M.jsx)(Ya,{onQuote:t}),(0,M.jsx)(I,{onQuote:t,onSolar:n})]}):(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0`,children:[(0,M.jsx)(F,{onQuote:t}),(0,M.jsxs)(`div`,{className:`pt-32 pb-20 text-center`,children:[(0,M.jsx)(`h1`,{className:`text-2xl font-bold text-gray-800 mb
31-4`,children:`Testimonial Not Found`}),(0,M.jsx)(`p`,{className:`text-gray-500 mb-6`,children:`The review you are looking for could not be found.`}),(0,M.jsx)(j,{to:`/testimonials`,className:`text-green-600 font-semibold hover:underline`,children:`View all testimonials`})]}),(0,M.jsx)(Ya,{onQuote:t})]})}function Yu(){let{openQuote:e}=nu();return ca({title:`Complaints Policy - IntoLec Ltd`,description:`Intolec Ltd complaints policy. We aim to deliver the highest standard of service. If something is not right, we want to know so we can put it right quickly.`,canonicalPath:`/complaints-policy`,jsonLd:{"@context":`https://schema.org`,"@type":`WebPage`,name:`Complaints Policy`,description:`Intolec Ltd complaints policy. We aim to deliver the highest standard of service. If something is not right, we want to know so we can put it right quickly.`,url:`https://www.electriciansinleamingtonspa.co.uk/complaints-policy`}}),(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(F,{onQuote:e}),(0,M.jsxs)(`section`,{className:`relative bg-[#14532D] overflow-hidden pt-28 pb-16 md:pt-36 md:pb-20`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 right-0 w-96 h-96 rounded-full bg-[#22C55E]/10 blur-3xl translate-x-1/2 -translate-y-1/2`}),(0,M.jsx)(`div`,{className:`absolute inset-0 opacity-5`,style:{backgroundImage:`radial-gradient(circle, #22C55E 1px, transparent 1px)`,backgroundSize:`32px 32px`}})]}),(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 relative z-10`,children:[(0,M.jsxs)(`nav`,{className:`flex items-center gap-2 text-xs text-[#86EFAC]/60 mb-6`,children:[(0,M.jsx)(j,{to:`/`,className:`hover:text-[#86EFAC] transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(`span`,{className:`text-[#86EFAC]`,children:`Complaints Policy`})]}),(0,M.jsx)(`span`,{className:`inline-block text-[#86EFAC] font-semibold text-xs uppercase tracking-widest mb-4 bg-[#22C55E]/20 px-4 py-1.5 rounded-full`,children:`Transparency & Trust`}),(0,M.jsxs)(`h1`,{className:`text-3xl md:text-5xl font-extrabold text-white mb-4 leading-tight`,children:[`Complaints Policy`,(0,M.jsx)(`br`,{}),(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`Leamington Spa`})]}),(0,M.jsx)(`p`,{className:`text-[#86EFAC]/80 text-base md:text-lg max-w-2xl leading-relaxed`,children:`We always aim to deliver the highest standard of service. If something isn't right, we want to know so we can put it right as quickly as possible.`})]})]}),(0,M.jsx)(`main`,{className:`py-16 md:py-24 bg-[#F9FAFB]`,children:(0,M.jsxs)(`div`,{className:`max-w-3xl mx-auto px-4 md:px-6`,children:[(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-8 md:p-10 mb-8`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3 mb-6`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-xl bg-[#14532D] flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`ri-shield-check-line text-white text-lg`})}),(0,M.jsx)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-[#14532D]`,children:`Our Commitment to You`})]}),(0,M.jsxs)(`div`,{className:`flex flex-col gap-4 text-[#374151] text-sm md:text-base leading-relaxed`,children:[(0,M.jsx)(`p`,{children:`The business always endeavours to provide the best service for every customer. However, on rare occasions, there may be times where a customer may not be completely satisfied. To ensure the business is able to put things right as soon as possible, please read our complaints procedure below. The business will then be able to respond promptly to ensure complete satisfaction.`}),(0,M.jsx)(`p`,{children:`As soon as possible after the completion of the works, please inspect the work to ensure everything has been carried out based on the contract terms and the high standards the business aims to achieve.`}),(0,M.jsx)(`p`,{children:`In the unlikely event there is anything you are not completely satisfied with, please contact the business as soon as possible so the problems can be rectified as soon as possible.`})]})]}),(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-8 md:p-10 mb-8`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3 mb-6`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-xl bg-[#14532D] flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`ri-list-check-2 text-white text-lg`})}),(0,M.jsx)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-[#14532D]`,children:`Our Procedure`})]}),(0,M.jsxs)(`div`,{className:`flex flex-col gap-5 text-[#374151] text-sm md:text-base leading-relaxed`,children:[(0,M.jsxs)(`p`,{children:[`Either call, email or write to us. The business aims to respond within `,(0,M.jsx)(`strong`,{className:`text-[#14532D]`,children:`5 days`}),` of receiving your complaint and where possible, will provide you with a date to remedy any issues raised.`]}),(0,M.jsxs)(`div`,{className:`bg-[#F0FDF4] border border-[#BBF7D0] rounded-xl p-4 text-sm text-[#166534]`,children:[(0,M.jsx)(`i`,{className:`ri-information-line mr-2`}),(0,M.jsx)(`em`,{children:`*Please request proof of receipt if posting.`})]}),(0,M.jsxs)(`p`,{children:[`Where the business is unable to resolve your complaint using the business complaints procedure, as a `,(0,M.jsx)(`strong`,{className:`text-[#14532D]`,children:`Which? Trusted Trader`}),` we use Dispute Resolution Ombudsman for dispute resolution. In the unlikely event that the business cannot remedy your complaint to your satisfaction you may wish to refer your complaint to them.`]}),(0,M.jsxs)(`p`,{children:[`If you wish to do so please contact Which? Trusted Traders in the first instance on`,` `,(0,M.jsx)(`a`,{href:`tel:02922670040`,className:`text-[#16A34A] font-semibold hover:underline`,children:`02922 670040`}),`.`]})]})]}),(0,M.jsxs)(`div`,{className:`bg-[#14532D] rounded-2xl p-8 md:p-10 mb-8`,children:[(0,M.jsx)(`h2`,{className:`text-xl font-extrabold text-white mb-6`,children:`How to Raise a Complaint`}),(0,M.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-5`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`flex flex-col items-center gap-3 bg-white/10 border border-white/20 rounded-xl p-5 hover:bg-white/20 transition-colors text-center group`,children:[(0,M.jsx)(`div`,{className:`w-11 h-11 flex items-center justify-center rounded-full bg-[#22C55E]/30 group-hover:bg-[#22C55E]/50 transition-colors`,children:(0,M.jsx)(`i`,{className:`ri-phone-fill text-[#86EFAC] text-xl`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`text-white font-bold text-sm`,children:`Call Us`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-xs mt-0.5`,children:`01926 768080`})]})]}),(0,M.jsxs)(j,{to:`/contact`,className:`flex flex-col items-center gap-3 bg-white/10 border border-white/20 rounded-xl p-5 hover:bg-white/20 transition-colors text-center group`,children:[(0,M.jsx)(`div`,{className:`w-11 h-11 flex items-center justify-center rounded-full bg-[#22C55E]/30 group-hover:bg-[#22C55E]/50 transition-colors`,children:(0,M.jsx)(`i`,{className:`ri-mail-line text-[#86EFAC] text-xl`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`text-white font-bold text-sm`,children:`Email Us`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-xs mt-0.5`,children:`Use our contact form`})]})]}),(0,M.jsxs)(`div`,{className:`flex flex-col items-center gap-3 bg-white/10 border border-white/20 rounded-xl p-5 text-center`,children:[(0,M.jsx)(`div`,{className:`w-11 h-11 flex items-center justify-center rounded-full bg-[#22C55E]/30`,children:(0,M.jsx)(`i`,{className:`ri-mail-send-line text-[#86EFAC] text-xl`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`text-white font-bold text-sm`,children:`Write to Us`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-xs mt-0.5 leading-relaxed`,children:`Warwick Business Centre, Hawkes Drive, Warwick, CV34 6LX`})]})]})]})]}),(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6 flex flex-col sm:flex-row items-center gap-5`,children:[(0,M.jsx)(`div`,{className:`w-14 h-14 flex items-center justify-center rounded-full bg-[#F0FDF4] border border-[#BBF7D0] flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`ri-award-line text-[#14532D] text-2xl`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`font-extrabold text-[#14532D] text-base mb-1`,children:`Which? Trusted Trader`}),(0,M.jsxs)(`p`,{className:`text-[#6B7280] text-sm leading-relaxed`,children:[`Intolec Ltd is a Which? Trusted Trader. If we are unable to resolve your complaint, you can contact the Dispute Resolution Ombudsman via Which? Trusted Traders on `,(0,M.jsx)(`a`,{href:`tel:02922670040`,className:`text-[#16A34A] font-semibold hover:underline`,children:`02922 670040`}),`.`]})]})]})]})}),(0,M.jsx)(`section`,{className:`w-full bg-black py-12 md:py-16`,children:(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center`,children:[(0,M.jsxs)(`p`,{className:`text-white text-base md:text-2xl font-extrabold uppercase tracking-wide leading-snug mb-6`,children:[`CALL US TODAY ON`,` `,(0,M.jsx)(`a`,{href:`tel:01926768080`,className:`text-[#22C55E] hover:text-[#86EFAC] transition-colors underline underline-offset-4`,children:`01926 768080`}),` `,`FOR A FREE, NO OBLIGATION QUOTE.`,` `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`YOUR CALL MATTERS TO US.`})]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md bg-[#22C55E] text-white font-bold text-base hover:bg-[#16A34A] transition-colors whitespace-nowrap w-full sm:w-auto`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-lg`}),`01926 768080`]}),(0,M.jsxs)(j,{to:`/contact`,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md border-2 border-white text-white font-bold text-base hover:bg-white hover:text-black transition-colors whitespace-nowrap w-full sm:w-auto cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line text-lg`}),`GET A FREE QUOTE`]})]})]})}),(0,M.jsx)(Ya,{onQuote:e}),(0,M.jsx)(Xa,{onQuote:e}),(0,M.jsx)(I,{onQuote:e})]})}function Xu(){let{openQuote:e}=nu();return ca({title:`Contact Us | Electrician in Leamington Spa - IntoLec Ltd`,description:`Contact Intolec Ltd for a free, no-obligation quote. Electricians in Leamington Spa and Warwickshire. Call 01926 768080 or use our online contact form.`,canonicalPath:`/contact`,jsonLd:{"@context":`https://schema.org`,"@type":`LocalBusiness`,name:`Intolec Ltd`,url:`https://www.electriciansinleamingtonspa.co.uk/contact`,telephone:`+441926768080`,image:`https://static.readdy.ai/image/4a891bf01ca77aa59d4e684a3f5f885b/b89155a3a628b11dd6196f25facf2ad9.png`,address:{"@type":`PostalAddress`,streetAddress:`Warwick Business Centre, Hawkes Drive, Heathcote Ind Estate`,addressLocality:`Warwick`,addressRegion:`Warwickshire`,postalCode:`CV34 6LX`,addressCountry:`GB`},geo:{"@type":`GeoCoordinates`,latitude:52.2919,longitude:-1.5369},openingHoursSpecification:[{"@type":`OpeningHoursSpecification`,dayOfWeek:[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`],opens:`08:00`,closes:`17:00`}]}}),(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(F,{onQuote:e}),(0,M.jsxs)(`section`,{className:`relative bg-[#14532D] overflow-hidden pt-28 pb-16 md:pt-36 md:pb-20`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 right-0 w-96 h-96 rounded-full bg-[#22C55E]/10 blur-3xl translate-x-1/2 -translate-y-1/2`}),(0,M.jsx)(`div`,{className:`absolute bottom-0 left-0 w-80 h-80 rounded-full bg-[#16A34A]/15 blur-3xl -translate-x-1/3 translate-y-1/3`}),(0,M.jsx)(`div`,{className:`absolute inset-0 opacity-5`,style:{backgroundImage:`radial-gradient(circle, #22C55E 1px, transparent 1px)`,backgroundSize:`32px 32px`}})]}),(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 relative z-10`,children:[(0,M.jsxs)(`nav`,{className:`flex items-center gap-2 text-xs text-[#86EFAC]/60 mb-6`,children:[(0,M.jsx)(j,{to:`/`,className:`hover:text-[#86EFAC] transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(`span`,{className:`text-[#86EFAC]`,children:`Contact Us`})]}),(0,M.jsx)(`span`,{className:`inline-block text-[#86EFAC] font-semibold text-xs uppercase tracking-widest mb-4 bg-[#22C55E]/20 px-4 py-1.5 rounded-full`,children:`Get In Touch`}),(0,M.jsxs)(`h1`,{className:`text-3xl md:text-5xl font-extrabold text-white mb-4 leading-tight`,children:[`Contact Us`,(0,M.jsx)(`br`,{}),(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`Leamington Spa`})]}),(0,M.jsx)(`p`,{className:`text-[#86EFAC]/80 text-base md:text-lg max-w-2xl leading-relaxed mb-8`,children:`Need an electrician in Leamington Spa or Warwickshire? Get in touch for a free, no-obligation quote. We respond promptly to every enquiry.`}),(0,M.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-5 py-2.5 rounded-full bg-white text-[#14532D] font-bold text-sm hover:bg-[#F0FDF4] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-[#22C55E]`}),`01926 768080`]}),(0,M.jsxs)(`div`,{className:`inline-flex items-center gap-2 px-5 py-2.5 rounded-full bg-white/10 border border-white/20 text-[#86EFAC] text-sm whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-time-line`}),`MonâFri 8amâ5pm`]}),(0,M.jsxs)(`div`,{className:`inline-flex items-center gap-2 px-5 py-2.5 rounded-full bg-white/10 border border-white/20 text-[#86EFAC] text-sm whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-alarm-warning-line`}
31),`Emergency call-outs available`]})]})]})]}),(0,M.jsx)(`section`,{className:`bg-[#F0FDF4] border-b border-[#BBF7D0]`,children:(0,M.jsx)(`div`,{className:`max-w-5xl mx-auto px-4 md:px-6 py-8`,children:(0,M.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-6`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`flex items-center gap-4 group cursor-pointer`,children:[(0,M.jsx)(`div`,{className:`w-12 h-12 flex items-center justify-center rounded-xl bg-[#14532D] flex-shrink-0 group-hover:bg-[#16A34A] transition-colors`,children:(0,M.jsx)(`i`,{className:`ri-phone-fill text-white text-xl`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`text-xs font-bold uppercase tracking-widest text-[#6B7280] mb-0.5`,children:`Phone`}),(0,M.jsx)(`p`,{className:`font-extrabold text-[#14532D] text-base`,children:`01926 768080`})]})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,M.jsx)(`div`,{className:`w-12 h-12 flex items-center justify-center rounded-xl bg-[#14532D] flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`ri-map-pin-2-fill text-white text-xl`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`text-xs font-bold uppercase tracking-widest text-[#6B7280] mb-0.5`,children:`Address`}),(0,M.jsx)(`p`,{className:`font-semibold text-[#14532D] text-sm leading-snug`,children:`Warwick Business Centre, Hawkes Drive, Warwick, CV34 6LX`})]})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-4`,children:[(0,M.jsx)(`div`,{className:`w-12 h-12 flex items-center justify-center rounded-xl bg-[#14532D] flex-shrink-0`,children:(0,M.jsx)(`i`,{className:`ri-time-fill text-white text-xl`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`text-xs font-bold uppercase tracking-widest text-[#6B7280] mb-0.5`,children:`Hours`}),(0,M.jsx)(`p`,{className:`font-semibold text-[#14532D] text-sm`,children:`MonâFri: 8amâ5pm`}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-xs mt-1`,children:`Emergency call-outs available`})]})]})]})})}),(0,M.jsx)(Ka,{}),(0,M.jsx)(`section`,{className:`bg-[#F9FAFB] py-12 md:py-16`,children:(0,M.jsxs)(`div`,{className:`max-w-5xl mx-auto px-4 md:px-6`,children:[(0,M.jsx)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-[#14532D] mb-6 text-center`,children:`Find Us`}),(0,M.jsx)(`div`,{className:`rounded-2xl overflow-hidden border border-gray-200 w-full h-[380px]`,children:(0,M.jsx)(`iframe`,{title:`Intolec Ltd Location`,src:`https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2432.0!2d-1.5833!3d52.2833!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x4870b9a0a0a0a0a1%3A0x0!2sWarwick+Business+Centre%2C+Hawkes+Drive%2C+Warwick+CV34+6LX!5e0!3m2!1sen!2suk!4v1700000000000`,width:`100%`,height:`100%`,style:{border:0},allowFullScreen:!0,loading:`lazy`,referrerPolicy:`no-referrer-when-downgrade`})})]})}),(0,M.jsx)(`section`,{className:`w-full bg-black py-12 md:py-16`,children:(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center`,children:[(0,M.jsxs)(`p`,{className:`text-white text-base md:text-2xl font-extrabold uppercase tracking-wide leading-snug mb-6`,children:[`CALL US TODAY ON`,` `,(0,M.jsx)(`a`,{href:`tel:01926768080`,className:`text-[#22C55E] hover:text-[#86EFAC] transition-colors underline underline-offset-4`,children:`01926 768080`}),` `,`FOR A FREE, NO OBLIGATION QUOTE.`,` `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`YOUR CALL MATTERS TO US.`})]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md bg-[#22C55E] text-white font-bold text-base hover:bg-[#16A34A] transition-colors whitespace-nowrap w-full sm:w-auto`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill text-lg`}),`01926 768080`]}),(0,M.jsxs)(j,{to:`/contact`,className:`inline-flex items-center justify-center gap-2 px-8 py-4 rounded-md border-2 border-white text-white font-bold text-base hover:bg-white hover:text-black transition-colors whitespace-nowrap w-full sm:w-auto cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line text-lg`}),`GET A FREE QUOTE`]})]})]})}),(0,M.jsx)(Ya,{onQuote:e}),(0,M.jsx)(Xa,{onQuote:e}),(0,M.jsx)(I,{onQuote:e})]})}function Zu(){ca({title:`Click Tracking Dashboard`,description:`Private click tracking analytics dashboard for Intolec Ltd - internal use only.`,noindex:!0});let[e,t]=(0,E.useState)([]),[n,r]=(0,E.useState)(0),[i,a]=(0,E.useState)(0),[o,s]=(0,E.useState)(0),[c,l]=(0,E.useState)([]),[u,d]=(0,E.useState)([]),[f,p]=(0,E.useState)(!0),[m,h]=(0,E.useState)(null),[g,_]=(0,E.useState)(`7`),v=async e=>{p(!0),h(null);let n=new Date;n.setDate(n.getDate()-parseInt(e,10));let i=n.toISOString();try{let{data:e,error:n}=await eu.from(`intolec_clicks`).select(`*`).gte(`created_at`,i).order(`created_at`,{ascending:!1});if(n||!e)throw Error(n?.message||`Unable to load click data.`);t(e),r(e.length);
31let o=new Date().toISOString().split(`T`)[0],c=e.filter(e=>e.created_at.startsWith(o)).length;a(c);let u=new Date;u.setDate(u.getDate()-7);let f=e.filter(e=>new Date(e.created_at)>=u).length;s(f);let p={},m={};e.forEach(e=>{let t=e.created_at.split(`T`)[0];p[t]=(p[t]||0)+1,m[e.source]=(m[e.source]||0)+1});let h=Object.entries(p).map(([e,t])=>({date:e,count:t})).sort((e,t)=>e.date.localeCompare(t.date));l(h);let g=Object.entries(m).map(([e,t])=>({source:e,count:t})).sort((e,t)=>t.count-e.count);d(g)}catch(e){t([]),r(0),a(0),s(0),l([]),d([]),h(e instanceof Error?e.message:`Unable to load click data.`)}finally{p(!1)}};return(0,E.useEffect)(()=>{v(g)},[g]),(0,M.jsxs)(`div`,{className:`min-h-screen bg-[#F9FAFB] font-sans`,children:[(0,M.jsx)(`div`,{className:`bg-[#14532D] py-6 px-4 md:px-6`,children:(0,M.jsxs)(`div`,{className:`max-w-6xl mx-auto flex items-center justify-between`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-lg bg-[#22C55E]/20 border border-[#22C55E]/30`,children:(0,M.jsx)(`i`,{className:`ri-bar-chart-2-line text-[#86EFAC] text-xl`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h1`,{className:`text-white font-extrabold text-xl`,children:`Click Tracking`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC] text-xs`,children:`Intolec Ltd - Quote Button Analytics`})]})]}),(0,M.jsx)(j,{to:`/`,className:`text-white text-sm font-semibold hover:text-[#86EFAC] transition-colors`,children:`Back to Site`})]})}),(0,M.jsxs)(`div`,{className:`max-w-6xl mx-auto px-4 md:px-6 py-8`,children:[(0,M.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-4 mb-8`,children:[(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3 mb-2`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-lg bg-[#22C55E]/10`,children:(0,M.jsx)(`i`,{className:`ri-calendar-check-line text-[#22C55E] text-xl`})}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-xs font-bold uppercase tracking-widest`,children:`Today`})]}),(0,M.jsx)(`p`,{className:`text-3xl font-extrabold text-[#14532D]`,children:i}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-xs mt-1`,children:`Clicks today`})]}),(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3 mb-2`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-lg bg-[#16A34A]/10`,children:(0,M.jsx)(`i`,{className:`ri-calendar-line text-[#16A34A] text-xl`})}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-xs font-bold uppercase tracking-widest`,children:`Last 7 Days`})]}),(0,M.jsx)(`p`,{className:`text-3xl font-extrabold text-[#14532D]`,children:o}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-xs mt-1`,children:`Clicks this week`})]}),(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-3 mb-2`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-lg bg-[#14532D]/10`,children:(0,M.jsx)(`i`,{className:`ri-bar-chart-grouped-line text-[#14532D] text-xl`})}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-xs font-bold uppercase tracking-widest`,children:`Selected Period`})]}),(0,M.jsx)(`p`,{className:`text-3xl font-extrabold text-[#14532D]`,children:n}),(0,M.jsx)(`p`,{className:`text-[#6B7280] text-xs mt-1`,children:`Total clicks`})]})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-3 mb-6`,children:[(0,M.jsx)(`label`,{className:`text-sm font-bold text-[#14532D]`,children:`Show last:`}),(0,M.jsx)(`div`,{className:`flex gap-2`,children:[{value:`7`,label:`7 Days`},{value:`30`,label:`30 Days`},{value:`90`,label:`90 Days`},{value:`365`,label:`1 Year`},{value:`9999`,label:`All Time`}].map(e=>(0,M.jsx)(`button`,{onClick:()=>_(e.value),className:`px-4 py-2 rounded-lg text-sm font-bold whitespace-nowrap transition-colors cursor-pointer ${g===e.value?`bg-[#22C55E] text-white`:`bg-white text-[#14532D] border border-gray-200 hover:bg-[#F0FDF4]`}`,children:e.label},e.value))}),(0,M.jsxs)(`button`,{onClick:()=>v(g),className:`ml-auto flex items-center gap-2 px-4 py-2 rounded-lg bg-[#14532D] text-white text-sm font-bold hover:bg-[#16A34A] transition-colors cursor-pointer whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-refresh-line`}),`Refresh`]})]}),f?(0,M.jsxs)(`div`,{className:`flex items-center justify-center py-20`,children:[(0,M.jsx)(`div`,{className:`w-8 h-8 border-2 border-[#22C55E] border-t-transparent roun
31ded-full animate-spin`}),(0,M.jsx)(`span`,{className:`ml-3 text-[#6B7280] text-sm font-medium`,children:`Loading data...`})]}):m?(0,M.jsx)(M.Fragment,{children:(0,M.jsxs)(`div`,{className:`text-center text-[#6B7280] text-sm py-10`,children:[(0,M.jsx)(`i`,{className:`ri-error-warning-line text-5xl mb-3`}),(0,M.jsx)(`p`,{className:`font-semibold`,children:`Error loading data`}),(0,M.jsx)(`p`,{className:`text-xs`,children:m}),(0,M.jsx)(`button`,{onClick:()=>v(g),className:`mt-4 px-4 py-2 rounded-lg bg-[#14532D] text-white text-sm font-bold hover:bg-[#16A34A] transition-colors cursor-pointer`,children:`Retry`})]})}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-2 gap-6 mb-8`,children:[(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6`,children:[(0,M.jsx)(`h3`,{className:`text-sm font-bold text-[#14532D] mb-4 uppercase tracking-widest`,children:`Daily Clicks`}),c.length===0?(0,M.jsx)(`p`,{className:`text-[#6B7280] text-sm text-center py-8`,children:`No data for this period`}):(0,M.jsx)(`div`,{className:`flex flex-col gap-2`,children:c.map(e=>(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`span`,{className:`text-xs text-[#6B7280] w-20 flex-shrink-0`,children:new Date(e.date).toLocaleDateString(`en-GB`,{day:`numeric`,month:`short`})}),(0,M.jsx)(`div`,{className:`flex-1 h-6 bg-[#F3F4F6] rounded-full overflow-hidden`,children:(0,M.jsx)(`div`,{className:`h-full bg-[#22C55E] rounded-full transition-all duration-300`,style:{width:`${Math.max(e.count/(c.reduce((e,t)=>Math.max(e,t.count),0)||1)*100,4)}%`}})}),(0,M.jsx)(`span`,{className:`text-xs font-bold text-[#14532D] w-6 text-right`,children:e.count})]},e.date))})]}),(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6`,children:[(0,M.jsx)(`h3`,{className:`text-sm font-bold text-[#14532D] mb-4 uppercase tracking-widest`,children:`Clicks by Source`}),u.length===0?(0,M.jsx)(`p`,{className:`text-[#6B7280] text-sm text-center py-8`,children:`No data for this period`}):(0,M.jsx)(`div`,{className:`flex flex-col gap-2`,children:u.map(e=>(0,M.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,M.jsx)(`span`,{className:`text-xs text-[#6B7280] w-28 flex-shrink-0 truncate`,title:e.source,children:e.source}),(0,M.jsx)(`div`,{className:`flex-1 h-6 bg-[#F3F4F6] rounded-full overflow-hidden`,children:(0,M.jsx)(`div`,{className:`h-full bg-[#16A34A] rounded-full transition-all duration-300`,style:{width:`${Math.max(e.count/(u.reduce((e,t)=>Math.max(e,t.count),0)||1)*100,4)}%`}})}),(0,M.jsx)(`span`,{className:`text-xs font-bold text-[#14532D] w-6 text-right`,children:e.count})]},e.source))})]})]}),(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`px-6 py-4 border-b border-gray-100 flex items-center justify-between`,children:[(0,M.jsx)(`h3`,{className:`text-sm font-bold text-[#14532D] uppercase tracking-widest`,children:`Click Log`}),(0,M.jsxs)(`span`,{className:`text-xs text-[#6B7280]`,children:[e.length,` records`]})]}),(0,M.jsx)(`div`,{className:`overflow-x-auto`,children:(0,M.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,M.jsx)(`thead`,{children:(0,M.jsxs)(`tr`,{className:`bg-[#F9FAFB]`,children:[(0,M.jsx)(`th`,{className:`text-left px-6 py-3 text-xs font-bold text-[#6B7280] uppercase tracking-widest`,children:`Date`}),(0,M.jsx)(`th`,{className:`text-left px-6 py-3 text-xs font-bold text-[#6B7280] uppercase tracking-widest`,children:`Source`}),(0,M.jsx)(`th`,{className:`text-left px-6 py-3 text-xs font-bold text-[#6B7280] uppercase tracking-widest`,children:`Button`}),(0,M.jsx)(`th`,{className:`text-left px-6 py-3 text-xs font-bold text-[#6B7280] uppercase tracking-widest hidden md:table-cell`,children:`User Agent`}),(0,M.jsx)(`th`,{className:`text-left px-6 py-3 text-xs font-bold text-[#6B7280] uppercase tracking-widest hidden md:table-cell`,children:`Referrer`})]})}),(0,M.jsxs)(`tbody`,{children:[e.map(e=>(0,M.jsxs)(`tr`,{className:`border-t border-gray-100 hover:bg-[#F9FAFB] transition-colors`,children:[(0,M.jsx)(`td`,{className:`px-6 py-3 text-[#374151] whitespace-nowrap`,children:new Date(e.created_at).toLocaleStr
31ing(`en-GB`,{day:`numeric`,month:`short`,year:`numeric`,hour:`2-digit`,minute:`2-digit`})}),(0,M.jsx)(`td`,{className:`px-6 py-3`,children:(0,M.jsx)(`span`,{className:`inline-flex items-center px-2 py-1 rounded-md bg-[#F0FDF4] text-[#16A34A] text-xs font-semibold`,children:e.source})}),(0,M.jsx)(`td`,{className:`px-6 py-3 text-[#374151] font-medium`,children:e.button_label}),(0,M.jsx)(`td`,{className:`px-6 py-3 text-[#6B7280] text-xs max-w-xs truncate hidden md:table-cell`,children:e.user_agent||`â`}),(0,M.jsx)(`td`,{className:`px-6 py-3 text-[#6B7280] text-xs max-w-xs truncate hidden md:table-cell`,children:e.referrer||`â`})]},e.id)),e.length===0&&(0,M.jsx)(`tr`,{children:(0,M.jsx)(`td`,{colSpan:5,className:`px-6 py-12 text-center text-[#6B7280] text-sm`,children:`No click data available for this period.`})})]})]})})]})]})]})]})}var Qu=[{name:`Barford`,distance:`4 miles`,postcode:`CV35 8`,coordinates:[52.245,-1.605],mapZoom:14,intro:`Barford is a picturesque village on the River Avon just 4 miles from Leamington Spa. We regularly carry out electrical work in Barford â from consumer unit upgrades in period cottages to EV charger installations on modern driveways. Our electricians know the village well and can usually be with you within 30 minutes for urgent call-outs.`,aboutArea:`Barford sits along the A429 between Warwick and Wellesbourne, with a mix of historic properties, 20th-century family homes, and modern developments around Church Lane and Wasperton Lane. Many Barford homes date back several decades, so electrical safety inspections and fuseboard upgrades are among our most commonly requested services here. The village has a strong community feel with its primary school, two pubs, and riverside setting making it a desirable place to live.`,localNote:`Barford homeowners often need electrical upgrades to support modern living â we have installed many EV chargers, outdoor lighting systems, and upgraded consumer units throughout the village.`},{name:`Birdingbury`,distance:`7 miles`,postcode:`CV23 8`,coordinates:[52.311,-1.365],mapZoom:14,intro:`Birdingbury is a charming rural village between Leamington Spa and Rugby. We provide the full range of electrical services to Birdingbury residents â from emergency fault finding to full house rewires. Based just 7 miles away, our electricians serve Birdingbury and the surrounding villages including Marton, Frankton, and Bourton on Dunsmore.`,aboutArea:`Birdingbury is a quiet Warwickshire village with a strong agricultural heritage and a close-knit community. Properties here range from converted barns and listed farmhouses to newer family homes. The village hall and St. Leonard's Church are at the heart of the community. Many rural properties in Birdingbury benefit from outdoor electrical work â security lighting, garage power supplies, and outbuilding electrics are common requests.`,localNote:`Being a rural village, Birdingbury homes often have outbuildings and larger gardens. We have carried out numerous garage consumer unit installations, outdoor socket fitting, and security lighting projects for Birdingbury homeowners.`},{name:`Bishops Itchington`,distance:`9 miles`,postcode:`CV47 2`,coordinates:[52.218,-1.435],mapZoom:14,intro:`Bishops Itchington is a large village in the Stratford-on-Avon district, about 9 miles from our Leamington Spa base. Our electricians work across Bishops Itchington regularly â handling everything from EICR testing for landlords to full kitchen electrical installations. If you need a qualified electrician in Bishops Itchington, we are available for same-day call-outs.`,aboutArea:`Originally two separate settlements â Upper and Lower Itchington â Bishops Itchington has grown significantly in recent decades with extensive new housing developments. The village now has over 2,000 residents and sits on the former railway line between Leamington and Banbury. The mix of property ages means we handle a wide variety of work here: rewiring older properties, certifying new builds, and upgrading electrical systems in extended homes.`,localNote:`With the significant housing growth in Bishops Itchington, we have completed many new-build electrical certifications, EV charger installations, and solar panel installations for the growing community of homeowners in the village.`},{name:`Bishops Tachbrook`,distance:`3 miles`,postcode:`CV33 9`,coordinates:[52.249,-1.543],mapZoom:14,intro:`Bishops Tachbrook is a thriving village on the southern edge of Leamington Spa, just 3 miles from our base. We are the go-to electrician for Bishops Tachbrook residents â offering rapid response times, free quotes, and NAPIT certified workmanship. Whether you need a fuse board upgrade, outdoor lighting, or an EV charge point, we can be at your door quickly.`,aboutArea:`Bishops Tachbrook has seen substantial residential development in recent years, particularly around the Tachbrook Park and Heathcote areas. The village retains its historic core with St. Chad's Church and the Leopard pub, while newer estates have brought modern family homes to the area. With many new-build properties, we are frequently called upon for post-completion electrical work â additional sockets, external lighting, garage electrics, and smart home installations.`,localNote:`Being so close to Leamington Spa, Bishops Tachbrook is one of our most frequently served areas. We complete dozens of electrical jobs here each year, from small repairs to major installations.`},{name:`Campden`,distance:`18 miles`,postcode:`GL55 6`,coordinates:[52.05,-1.78],mapZoom:13,intro:`Chipping Campden is one of the most beautiful Cotswold towns, located about 18 miles from our Leamington Spa base. While further afield, we regularly travel to Campden for electrical work â particularly solar panel installations, period property rewires, and EV charger fitting. Our electricians know the challenges of working with listed and period buildings, and we take extra care with every Campden property.`,aboutArea:`Chipping Campden is renowned for its elegant terraced High Street, historic market hall, and beautiful Cotswold stone architecture dating from the 14th to 17th centuries. Many properties are listed buildings requiring sensitive electrical installations that respect the fabric of the building. We have extensive experience with period properties â discreet cable routing, sympathetic socket placement, and working within conservation area guidelines. The town al
31so has a growing number of eco-conscious homeowners investing in solar panels and battery storage.`,localNote:`Working in Campden requires special attention to listed building regulations and aesthetic considerations. We use discreet installation techniques and can advise on planning consent requirements for solar panels on listed or conservation area properties.`},{name:`Cubbington`,distance:`2 miles`,postcode:`CV32 7`,coordinates:[52.312,-1.499],mapZoom:14,intro:`Cubbington is a popular village immediately north-east of Leamington Spa, just 2 miles from our base. We are the nearest NAPIT registered electrician to Cubbington and can provide same-day emergency call-outs, free electrical surveys, and fully certified work. From consumer unit replacements to full rewires, we serve Cubbington homeowners with fast, reliable service.`,aboutArea:`Cubbington has a strong village identity despite its proximity to Leamington Spa, with its own primary school, church, and village shops along Rugby Road and Windmill Hill. The village has a healthy mix of 1930s semis, post-war bungalows, and modern developments â meaning we regularly encounter everything from old rewireable fuse boxes to newly built homes needing certification. Cubbington residents particularly value our prompt response times given how close we are.`,localNote:`Cubbington is practically on our doorstep â we can often respond to emergency call-outs within 20-30 minutes and offer the most competitive rates for routine electrical work in the village.`},{name:`Daventry`,distance:`16 miles`,postcode:`NN11 4`,coordinates:[52.259,-1.165],mapZoom:13,intro:`Daventry is a market town in Northamptonshire, about 16 miles from our Leamington Spa base. We serve Daventry homeowners and businesses with the full range of electrical services â EICR inspections, consumer unit upgrades, EV charger installations, and more. Our electricians regularly travel to Daventry for planned installation work and can accommodate larger projects.`,aboutArea:`Daventry has grown considerably over the past few decades, transforming from a historic coaching town into a significant residential and commercial centre. The town centre retains its market square and traditional buildings, while extensive modern housing estates surround it â particularly around Lang Farm, Middlemore, and Timken. This mix means we handle everything from electrical upgrades in 1960s homes to full certifications on new estates. Daventry also has a strong business community with several industrial estates requiring commercial electrical services.`,localNote:`At 16 miles, we typically schedule Daventry work in advance, though we can attend emergencies when needed. We often combine multiple Daventry jobs in a single visit to offer the best value.`},{name:`Fenny Compton`,distance:`11 miles`,postcode:`CV47 2`,coordinates:[52.166,-1.393],mapZoom:14,intro:`Fenny Compton is a rural village straddling the Warwickshire-Oxfordshire border, about 11 miles south of Leamington Spa. We provide electrical services to Fenny Compton residents including EICR testing, fuse board upgrades, outdoor and security lighting, and fault finding. Our electricians know the area well and can attend call-outs promptly.`,aboutArea:`Fenny Compton sits along the former Oxford Canal route and has a distinctive linear layout along the A423. The village has a mix of stone-built period cottages, Victorian terraces, and modern family homes. The nearby industrial estates and farms mean we also handle commercial and agricultural electrical work in the area. Many Fenny Compton properties benefit from solar panel installations given the village's open rural setting with good roof orientation.`,localNote:`Fenny Compton's rural location means reliable electrical systems are essential â we have helped many village homeowners with backup power solutions, surge protection, and outdoor electrical installations.`},{name:`Gaydon`,distance:`8 miles`,postcode:`CV35 0`,coordinates:[52.184,-1.469],mapZoom:14,intro:`Gaydon is a village in south Warwickshire, famous for the British Motor Museum and Jaguar Land Rover's headquarters, about 8 miles from Leamington Spa. Our electricians work across Gaydon for both residential and commercial clients â from home electrical upgrades to workplace installations. We are a trusted local electrician for Gaydon with fast response times.`,aboutArea:`Gaydon is a unique Warwickshire village â home to Aston Martin and JLR's advanced design and engineering centres, making it one of the UK's automotive technology hubs. The village itself is traditional Warwickshire with stone cottages and a parish church, while the business park brings a significant working population. We handle domestic electrical work for village residents as well as commercial electrical installations, testing, and maintenance for businesses in and around the Gaydon business park.`,localNote:`Gaydon's mix of residential properties and major commercial sites means we are often called upon for both domestic and light commercial electrical work â PAT testing, emergency lighting, and office electrical installations are common.`},{name:`Hampton Magna`,distance:`5 miles`,postcode:`CV35 8`,coordinates:[52.282,-1.625],mapZoom:14,intro:`Hampton Magna is a village just west of Warwick, about 5 miles from Leamington Spa. We regularly carry out electrical work in Hampton Magna â from EICR inspections for landlords and homeowners to full rewire projects and EV charger installations. Our electricians can reach Hampton Magna quickly for both planned work and emergencie
31s.`,aboutArea:`Hampton Magna developed significantly in the post-war period and now features a mix of property types from 1950s bungalows to more recent housing developments. The village is popular with families due to its primary school and proximity to Warwick and Leamington Spa. The varied housing stock means we encounter everything from outdated consumer units needing urgent replacement to modern homes requiring additional circuits for home offices, EV chargers, and garden lighting.`,localNote:`Hampton Magna is close to Warwick Parkway railway station, making it popular with commuters â we have installed many EV chargers and home office electrical setups for Hampton Magna residents.`},{name:`Harbury`,distance:`6 miles`,postcode:`CV33 9`,coordinates:[52.236,-1.457],mapZoom:14,intro:`Harbury is a large village about 6 miles south-east of Leamington Spa, with over 2,500 residents. Our electricians serve Harbury extensively â covering everything from emergency call-outs to planned installations. If you need an electrician in Harbury for an EICR, consumer unit upgrade, solar panels, or EV charger, we are your local qualified team.`,aboutArea:`Harbury is one of the larger villages in the area, with a well-equipped centre including shops, a post office, pubs, and a primary school. The village has seen steady residential growth with
31new estates supplementing the historic core around the village green. Properties range from 18th-century stone cottages to modern executive homes. Harbury's community is active and engaged â we have built a strong reputation here through word-of-mouth recommendations and consistently high-quality work.`,localNote:`Harbury residents frequently request solar panel installations â the village has many south-facing roofs and environmentally conscious homeowners looking to reduce energy bills through renewable technology.`},{name:`Hatton`,distance:`6 miles`,postcode:`CV35 7`,coordinates:[52.3,-1.674],mapZoom:14,intro:`Hatton is a rural parish between Warwick and Kenilworth, about 6 miles from Leamington Spa. Known for Hatton Country World and the Hatton Locks, this area includes Hatton village, Hatton Park, and the surrounding countryside. Our electricians serve the entire Hatton area with comprehensive electrical services.`,aboutArea:`Hatton is best known for the Hatton Flight â a remarkable staircase of 21 locks on the Grand Union Canal â and Hatton Country World, a popular family attraction. The area includes the historic village of Hatton Green, the substantial Hatton Park residential development on the former hospital site, and scattered farms and rural properties. Hatton Park in particular has many modern homes where we have completed numerous EV charger installations, additional socket fitting, and garden lighting projects.`,localNote:`The Hatton Park development has been a significant source of work â new homeowners frequently need EV charge points, outdoor lighting, garage electrics, and smart home installations fitted after moving in.`},{name:`Henley in Arden`,distance:`12 miles`,postcode:`B95 5`,coordinates:[52.291,-1.778],mapZoom:14,intro:`Henley in Arden is a historic market town on the A3400, about 12 miles from Leamington Spa. We provide electrical services across Henley in Arden â from EICR inspections for period properties to modern consumer unit upgrades and EV charger installations. Our electricians regularly work in Henley and know the town's unique property landscape well.`,aboutArea:`Henley in Arden boasts one of the most attractive High Streets in Warwickshire, with over 150 listed buildings including timber-framed structures dating back to the 15th century. The town is a conservation area, which means electrical work often requires careful planning and sensitive installation. We have extensive experience working with period properties and listed buildings, ensuring all electrical work respects the historic character while meeting modern safety standards. The surrounding rural area also includes larger properties, farms, and barn conversions.`,localNote:`Period properties in Henley in Arden present unique electrical challenges â outdated wiring, limited access for cabling, and the need to preserve historic fabric. We specialise in discreet installations that protect the character of these beautiful buildings.`},{name:`Hunningham`,distance:`5 miles`,postcode:`CV33 9`,coordinates:[52.308,-1.452],mapZoom:14,intro:`Hunningham is a small, peaceful village on the River Leam, about 5 miles east of Leamington Spa. We are a trusted local electrician for Hunningham residents â offering free quotes, fast response times, and NAPIT certified work. From fuse board replacements to outdoor electrical installations, we serve Hunningham and the surrounding rural properties.`,aboutArea:`Hunningham is a quintessential Warwickshire village with a population of just a few hundred, centred around the River Leam and the well-known Red Lion pub. The village features a mix of historic cottages, converted farm buildings, and larger detached homes set in generous plots. The rural setting means many Hunningham properties have outbuildings, stables, or home workshops requiring electrical supplies. We also handle agricultural electrical work for the farms surrounding the village.`,localNote:`Rural properties around Hunningham often require specialist electrical work for outbuildings, barns, and large gardens â we are experienced in running external supplies, fitting weatherproof installations, and setting up outdoor lighting systems.`},{name:`Knowle`,distance:`14 miles`,postcode:`B93 0`,coordinates:[52.386,-1.733],mapZoom:14,intro:`Knowle is an affluent village in the Solihull borough, about 14 miles from Leamington Spa. We provide high-quality electrical services to Knowle homeowners and businesses â including luxury kitchen electrical installations, smart home wiring, EV charger fitting, and full house rewires. Our electricians regularly work in Knowle and the surrounding areas.`,aboutArea:`Knowle is one of the most desirable residential areas in the West Midlands, with a charming high street, excellent schools, and substantial detached homes on leafy roads. Properties are predominantly large 1930s-1970s houses and modern executive homes, many of which have been extended and refurbished to a very high standard. This affluent area sees strong demand for premium electrical work â bespoke lighting design, integrated smart home systems, high-end kitchen electrics, and EV charging solutions for multiple vehicles.`,localNote:`Knowle homeowners frequently invest in high-specification electrical work â we have completed many whole-house lighting designs, home automation installations, and premium outdoor lighting projects in the area.`},{name:`Leamington Spa`,distance:`Base`,postcode:`CV31, CV32, CV33`,coordinates:[52.29,-1.536],mapZoom:13,intro:`Royal Leamington Spa is our home town and the heart of our business. Based right here, we are the go-to local electrician for Leamington Spa residents and businesses â with same-day availability, free quotes, and fully certified NAPIT registered work. From the elegant Regency townhouses of the Parade to the Victorian terraces of Old Town and the modern estates of Sydenham and Lillington, we work across every part of Leamington Spa.`,aboutArea:`Royal Leamington Spa is one of the most attractive towns in the Midlands, renowned for its Regency architecture, beautiful parks and gardens, and vibrant town centre. The property landscape is extremely diverse â grand listed town
31houses, Victorian and Edwardian terraces, 1930s semis, post-war estates, and modern apartment developments. This variety means we handle every type of electrical work imaginable: sensitive rewires in listed buildings, complete electrical installations in new apartments, EV charger installations for residents without driveways, landlord certification for the large rental market, and solar panel installations on a wide range of roof types.`,localNote:`As Leamington Spa's local electrician, we offer the fastest response times in town â often able to attend emergency call-outs within the hour. We cover all Leamington postcodes: CV31 (south Leamington, Whitnash, Radford Semele), CV32 (north Leamington, Cubbington, Lillington, Milverton), and CV33 (south-east villages).`},{name:`Moreton in Marsh`,distance:`22 miles`,postcode:`GL56 0`,coordinates:[51.99,-1.703],mapZoom:13,intro:`Moreton in Marsh is a classic Cotswold market town approximately 22 miles from Leamington Spa. While at the edge of our usual coverage area, we regularly travel to Moreton for larger installation projects â particularly solar panel systems, full house rewires, and EV charger installations. Our electricians can also attend urgent faults when needed.`,aboutArea:`Moreton in Marsh sits on the Fosse Way and has been a market town since the 13th century, with a broad High Street lined with elegant Cotswold stone buildings. The town combines historic architecture with a thriving local economy â it has a mainline railway station with direct services to London Paddington, making it popular with commuters. Properties range from listed 17th and 18th-century townhouses to Cotswold stone cottages and modern estates on the town's edges. We are frequently called to Moreton for electrical safety inspections, period property rewires, and renewable energy installations.`,localNote:`At 22 miles, Moreton in Marsh is our furthest regularly-served area. For larger projects like rewires or solar installations, we schedule dedicated visits. Emergency call-outs may involve a longer response time â we will always advise honestly on availability.`},{name:`Princethorpe`,distance:`6 miles`,postcode:`CV23 9`,coordinates:[52.333,-1.413],mapZoom:14,intro:`Princethorpe is a small village about 6 miles east of Leamington Spa, near the A45. Our electricians serve Princethorpe residents with the full range of electrical services â EICR inspections, consumer unit upgrades, outdoor lighting, and EV charger installations. Based close by, we can usually attend call-outs within the hour.`,aboutArea:`Princethorpe is a quiet, leafy village best known for Princethorpe College, a prominent independent Catholic day school housed in a historic former priory building. The village itself is small with a mix of period cottages, farmhouses, and detached family homes. The surrounding farmland and rural setting mean many properties have large gardens, outbuildings, and longer driveways â perfect candidates for outdoor electrical work, security lighting, and EV charging points.`,localNote:`Princethorpe properties often have extensive outdoor spaces â we have completed many garden lighting projects, outbuilding electrical supplies, and gate automation installations for homeowners in the village.`},{name:`Radford Semele`,distance:`2 miles`,postcode:`CV31 1`,coordinates:[52.278,-1.498],mapZoom:14,intro:`Radford Semele is a village on the eastern edge of Leamington Spa, practically adjacent to the town at just 2 miles away. We are the closest qualified electrician to Radford Semele and can provide same-day service, free quotes, and fully certified work. From emergency fault finding to full kitchen electrical installations, we are your local team.`,aboutArea:`Radford Semele has grown considerably over recent decades, expanding from a small rural village into a substantial residential community that almost merges with Leamington Spa. The village features a wide range of property types â 1920s semis, post-war council houses, 1970s detached homes, and new-build estates. The church of St. Nicholas dates back to the 12th century, providing a historic core. Many properties here are family homes undergoing gradual improvement, with electrical upgrades being a common requirement.`,localNote:`Being almost in Leamington Spa, we can reach Radford Semele within 10-15 minutes for emergencie
31s. The village is one of our most frequently served areas for small to medium electrical jobs.`},{name:`Ryton on Dunsmore`,distance:`8 miles`,postcode:`CV8 3`,coordinates:[52.367,-1.436],mapZoom:14,intro:`Ryton on Dunsmore is a village on the A45 between Coventry and Rugby, about 8 miles from Leamington Spa. Our electricians work across Ryton on Dunsmore â providing EICR testing, consumer unit upgrades, EV charger installation, and all general electrical services. We are a reliable local choice for Ryton residents.`,aboutArea:`Ryton on Dunsmore is a large village with a mix of traditional Warwickshire buildings and significant 20th-century housing development. The village sits on the main A45 trunk road, providing excellent transport links to Coventry, Rugby, and Leamington Spa. Ryton has a strong community with local shops, pubs, a primary school, and the nearby Ryton Pools Country Park. The varied housing stock â from Victorian terraces to modern estates â keeps our electricians busy with a wide range of work.`,localNote:`Ryton on Dunsmore's location on the A45 means good access for our electricians â we can typically reach the village within 20-25 minutes for both planned and emergency electrical work.`},{name:`Shirley`,distance:`13 miles`,postcode:`B90 3`,coordinates:[52.412,-1.822],mapZoom:13,intro:`Shirley is a substantial suburban area in the Metropolitan Borough of Solihull, about 13 miles from Leamington Spa. We provide comprehensive electrical services to Shirley homeowners and businesses â from EICR inspections and consumer unit upgrades to EV charger fitting and full rewires. Our electricians are familiar with the wide range of property types found across Shirley.`,aboutArea:`Shirley developed rapidly in the 20th century as Birmingham expanded outward, resulting in a dense suburban landscape of interwar and post-war housing with a busy high street and retail areas. Property types are predominantly 1930s semis and detached houses, post-war bungalows, and modern infill developments. The area has a strong family demographic, and common electrical requests include additional sockets for growing households, outdoor security lighting, garage conversions requiring electrical work, and increasingly, EV charger installations.`,localNote:`Shirley homes â particularly the 1930s semis â often have original electrical installations that date back decades. We have completed many consumer unit upgrades and partial rewires in the area to bring homes up to modern safety standards.`},{name:`Southam`,distance:`8 miles`,postcode:`CV47 0`,coordinates:[52.252,-1.389],mapZoom:14,intro:`Southam is a market town about 8 miles south-east of Leamington Spa with a growing population. We are a trusted electrician for Southam residents â offering free quotes, fast local response, and fully certified work. From fuse board replacements to full solar panel installations, our electricians serve the entire Southam area.`,aboutArea:`Southam has a historic market town centre with a mix of Georgian and Victorian buildings, surrounded by substantial residential development that has accelerated in recent years. The town has good amenities including supermarkets, independent shops, a leisure centre, and secondary school. New housing estates around the town's edges have brought many new homeowners needing electrical installations and certifications. Southam also has an active business community with light industrial units requiring commercial electrical services.`,localNote:`Southam has seen significant housing growth â we are frequently called to new-build estates for EV charger installations, additional sockets, outdoor lighting, and electrical certifications for recently completed homes.`},{name:`Stoneleigh`,distance:`4 miles`,postcode:`CV8 3`,coordinates:[52.351,-1.513],mapZoom:14,intro:`Stoneleigh is a village about 4 miles north of Leamington Spa, best known for Stoneleigh Park â a major agricultural and events venue. Our electricians work across Stoneleigh village and the surrounding area, providing everything from domestic electrical repairs to commercial installations within Stoneleigh Park.`,aboutArea:`Stoneleigh village is a traditional Warwickshire community with a historic church, village hall, and a mix of period cottages and modern homes. Stoneleigh Park, formerly the Royal Agricultural Society's showgroun
31d and now a major events and business venue, dominates the area. We handle both residential electrical work for village residents and commercial electrical services for businesses operating within Stoneleigh Park â including office electrical fit-outs, event power installations, and routine electrical maintenance and testing.`,localNote:`Our proximity to Stoneleigh Park means we are often the first call for businesses needing commercial electrical services â we understand the unique requirements of event spaces, exhibition halls, and office environments.`},{name:`Stratford Upon Avon`,distance:`9 miles`,postcode:`CV37 6`,coordinates:[52.192,-1.707],mapZoom:13,intro:`Stratford-upon-Avon, the world-famous birthplace of William Shakespeare, is about 9 miles from Leamington Spa. Our electricians serve Stratford homeowners, landlords, and businesses with comprehensive electrical services â from EICR inspections for rental properties to luxury kitchen electrical installations, EV charger fitting, and solar panel systems.`,aboutArea:`Stratford-upon-Avon is one of the UK's most visited towns, attracting millions of tourists annually to its Shakespearean heritage sites, Royal Shakespeare Theatre, and historic town centre. The property landscape is diverse â beautiful Tudor and Georgian listed buildings in the centre, Victorian and Edwardian suburbs, and modern housing estates on the periphery. Working in Stratford often means dealing with listed building requirements and conservation area restrictions. The town also has a significant number of holiday lets and rental properties requiring regular EICR certification.`,localNote:`Stratford's listed buildings and conservation areas require particular care with electrical work. We are experienced in navigating planning and listed building consent requirements for electrical installations on historic properties.`},{name:`Tiddington`,distance:`10 miles`,postcode:`CV37 7`,coordinates:[52.194,-1.674],mapZoom:14,intro:`Tiddington is a village on the north-eastern edge of Stratford-upon-Avon, about 10 miles from Leamington Spa. We provide comprehensive electrical services to Tiddington residents â EICR testing, consumer unit upgrades, EV chargers, outdoor lighting, and more. Our electricians regularly work across Tiddington and the wider Stratford area.`,aboutArea:`Tiddington has evolved from a small rural hamlet into a desirable residential suburb of Stratford-upon-Avon, with a mix of 20th-century housing and more recent developments. The village has its own local amenities including shops, a primary school, and several pubs and restaurants along the Main Street. Its proximity to Stratford makes it popular with families and professionals. Common electrical work in Tiddington includes kitchen refurbishments, bathroom electrical upgrades, home office setups, and EV charger installations.`,localNote:`Tiddington homes are often substantial family properties undergoing gradual improvement â we complete many consumer unit upgrades, additional socket installations, and garden lighting projects for Tiddington residents.`},{name:`Ufton`,distance:`5 miles`,postcode:`CV33 9`,coordinates:[52.256,-1.443],mapZoom:14,intro:`Ufton is a small village about 5 miles south-east of Leamington Spa, between Harbury and Southam. Our electricians serve Ufton residents with responsive local service â from emergency call-outs to planned electrical installations. If you need a qualified electrician in Ufton, we are your nearest NAPIT registered team.`,aboutArea:`Ufton is a quiet, traditional Warwickshire village with a mix of historic buildings including a medieval church and several listed properties, alongside more modern infill housing. The village is surrounded by open farmland and has a strong rural character. Properties tend to be larger with good-sized gardens â making outdoor electrical installations, garage supplies, and EV chargers common requests. The village's peaceful setting appeals to families and those looking for a rural lifestyle within easy reach of Leamington and Southam.`,localNote:`Ufton's semi-rural setting means many homes have generous outdoor space â we have installed numerous outdoor power supplies, garden lighting systems, and EV charge points throughout the village.`},{name:`Warwick`,distance:`3 miles`,postcode:`CV34 4`,coordinates:[52.282,-1.585],mapZoom:13,intro:`Warwick is the historic county town of Warwickshire, just 3 miles from our Leamington Spa base. We are a trusted local electrician for Warwick residents and businesses â with same-day availability, NAPIT certified work, and free quotes. From the medieval buildings of the town centre to the modern estates of Warwick Gates and Chase Meadow, we cover every corner of Warwick.`,aboutArea:`Warwick is dominated by its magnificent medieval castle, one of the UK's top tourist attractions, and a town centre rich in historic architecture. Bey
31ond the tourist centre, Warwick is a substantial residential and commercial town with diverse property types â listed town centre buildings, Victorian and Edwardian terraces, 1950s-70s housing estates, and major new developments. The town has a large rental market due to its university presence and proximity to major employers. Warwick Technology Park and several business parks also generate demand for commercial electrical services.`,localNote:`Warwick's listed buildings and historic properties require specialist electrical knowledge â we are experienced in sensitive installations that meet modern safety standards without compromising period features.`},{name:`Warwickshire`,distance:`County`,postcode:`CV, B, NN`,coordinates:[52.282,-1.585],mapZoom:9,intro:`We are a county-wide electrical contractor covering the whole of Warwickshire from our base in Leamington Spa. Whether you are in North Warwickshire, Nuneaton, Bedworth, Rugby, Stratford, Kenilworth, or anywhere in between â our NAPIT registered electricians are available for all your electrical needs. From emergency call-outs to large-scale installations, we have the experience and qualifications to handle any electrical job.`,aboutArea:`Warwickshire is a diverse county stretching from the northern former mining towns to the Cotswold fringes in the south, with the historic towns of Warwick, Stratford-upon-Avon, and Kenilworth at its heart. The county combines bustling market towns, quiet rural villages, and growing commuter communities. Our central Leamington Spa location allows us to reach all corners of the county efficiently. We work extensively across Coventry and the surrounding areas, Rugby and its villages, the Stratford district, and the towns and villages of the West Midlands border.`,localNote:`As a county-wide electrical contractor, we are equipped to handle projects of any scale â from single socket replacements to complete electrical installations on large residential developments and commercial premises.`},{name:`Whitnash`,distance:`1 mile`,postcode:`CV31 2`,coordinates:[52.268,-1.527],mapZoom:14,intro:`Whitnash is a town immediately south of Leamington Spa â practically our next-door neighbour at just 1 mile away. We are the most local certified electrician for Whitnash residents, offering same-day emergency call-outs, free quotes, and NAPIT registered work. From consumer unit upgrades to full rewires, we serve Whitnash homes and businesses daily.`,aboutArea:`Whitnash has transformed from a small village into a significant residential town, with substantial housing development over the past 30 years. The original village centre around St. Margaret's Church retains its historic character, while large modern estates have expanded the town's footprint considerably. Whitnash has a strong community identity with its own town council, schools, and local amenities. The mix of older 1960s-80s housing and brand-new estates generates constant demand for electrical upgrades, safety inspections, and new installations.`,localNote:`Being only 1 mile away, Whitnash is our closest service area outside Leamington Spa itself. We can attend emergencies extremely quickly and offer very competitive rates due to the short travel distance.`}];function $u(e){return e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``)}function K(e,t,n){return`https://maps.google.com/maps?q=${e},${t}&z=${n}&output=embed`}function q(){let{slug:e}=Hr(),{openQuote:t,openSolar:n}=nu(),r=mu.find(t=>$u(t.name)===e),i=r?.name||(e?e.replace(/-/g,` `).replace(/\b\w/g,e=>e.toUpperCase()):``);r?.distance;let a=Qu.find(e=>e.name===r?.name),o=r?.distance===`Base`,s=r?.distance===`County`,c=o?`Based right here in Leamington Spa`:s?`Covering the county from Leamington Spa`:`Just ${r?.distance} from Leamington Spa`,l=a?`Need an electrician in ${i}? Intolec Ltd â NAPIT registered electricians serving ${i} (${a.postcode}). EV chargers, EICRs, rewires, solar panels. Call 01926 768080 for a free quote.`:`Find a reliable, local electrician near ${i}. Intolec Ltd â NAPIT registered, 5â
rated. Call 01926 768080.`;if(ca({title:i?`Electrician in ${i} | Local Electrician Near Me - Intolec Ltd`:`Area Not Found - Intolec Ltd`,description:l.substring(0,160),canonicalPath:`/electrician-in/${e||``}`,jsonLd:i&&a?{"@context":`https://schema.org`,"@type":`LocalBusiness`,name:`Intolec Ltd`,telephone:`01926 768080`,areaServed:{"@type":`City`,name:i},address:{"@type":`PostalAddress`,addressLocality:`Leamington Spa`,addressRegion:`Warwickshire`,addressCountry:`GB`,postalCode:a.postcode.split(`,`)[0].trim()},geo:{"@type":`GeoCoordinates`,latitude:String(a.coordinates[0]),longitude:String(a.coordinates[1])}}:void 0}),!r)return(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0`,children:[(0,M.jsx)(F,{onQuote:t}),(0,M.jsxs)(`div`,{className:`pt-32 pb-20 text-center`,children:[(0,M.jsx)(`h1`,{className:`text-2xl font-bold text-gray-800 mb
31-4`,children:`Area Not Found`}),(0,M.jsx)(`p`,{className:`text-gray-500 mb-6`,children:`The area you are looking for is not currently in our coverage list.`}),(0,M.jsx)(`p`,{className:`text-gray-500 mb-6`,children:`Call us â we may still be able to help.`}),(0,M.jsx)(j,{to:`/areas`,className:`text-green-600 font-semibold hover:underline`,children:`View all areas we cover`})]}),(0,M.jsx)(Ya,{onQuote:t})]});let u=mu.filter(e=>e.name!==r.name).slice(0,12);return(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(F,{onQuote:t}),(0,M.jsxs)(`section`,{className:`relative bg-[#14532D] overflow-hidden pt-28 pb-16 md:pt-36 md:pb-24`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 right-0 w-96 h-96 rounded-full bg-[#22C55E]/10 blur-3xl translate-x-1/2 -translate-y-1/2`}),(0,M.jsx)(`div`,{className:`absolute bottom-0 left-0 w-80 h-80 rounded-full bg-[#16A34A]/15 blur-3xl -translate-x-1/3 translate-y-1/3`}),(0,M.jsx)(`div`,{className:`absolute inset-0 opacity-5`,style:{backgroundImage:`radial-gradient(circle, #22C55E 1px, transparent 1px)`,backgroundSize:`32px 32px`}})]}),(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center relative z-10`,children:[(0,M.jsxs)(`nav`,{className:`flex items-center justify-center gap-2 text-xs text-[#86EFAC]/60 mb-6`,children:[(0,M.jsx)(j,{to:`/`,className:`hover:text-[#86EFAC] transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(j,{to:`/areas`,className:`hover:text-[#86EFAC] transition-colors`,children:`Areas We Cover`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(`span`,{className:`text-[#86EFAC]`,children:r.name})]}),(0,M.jsxs)(`div`,{className:`inline-flex items-center gap-2 mb-4 bg-[#22C55E]/20 px-4 py-1.5 rounded-full`,children:[(0,M.jsx)(`span`,{className:`text-[#86EFAC] font-semibold text-xs uppercase tracking-widest`,children:`Local Electrician`}),a&&(0,M.jsx)(`span`,{className:`text-[#86EFAC]/60 text-xs`,children:a.postcode})]}),(0,M.jsxs)(`h1`,{className:`text-3xl md:text-5xl font-extrabold text-white mb-5 leading-tight`,children:[`Electrician in `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:r.name})]}),(0,M.jsxs)(`p`,{className:`text-[#86EFAC]/80 text-base md:text-lg max-w-2xl mx-auto mb-3 leading-relaxed`,children:[`Looking for a `,(0,M.jsxs)(`strong`,{className:`text-white`,children:[`reliable electrician near `,r.name]}),`? Intolec Ltd is your local, NAPIT registered electrical contractor serving `,r.name,` and the surrounding Warwickshire area.`,c,` â we offer fast response times, free written quotes, and fully certified workmanship on every job.`]}),a&&(0,M.jsxs)(`div`,{className:`flex flex-wrap items-center justify-center gap-x-6 gap-y-1 text-xs text-[#86EFAC]/60 mb-8`,children:[(0,M.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,M.jsx)(`i`,{className:`ri-mail-line`}),a.postcode]}),(0,M.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,M.jsx)(`i`,{className:`ri-map-pin-line`}),c]}),(0,M.jsxs)(`span`,{className:`flex items-center gap-1`,children:[(0,M.jsx)(`i`,{className:`ri-phone-line`}),`01926 768080`]})]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-7 py-3.5 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Call 01926 768080`]}),(0,M.jsxs)(`button`,{onClick:t,className:`inline-flex items-center gap-2 px-7 py-3.5 rounded-lg border-2 border-white text-white font-bold text-sm hover:bg-white/10 transition-colors whitespace-nowrap cursor-pointer`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]})]}),(0,M.jsx)(`section`,{className:`py-16 md:py-24 bg-[#F9FAFB]`,children:(0,M.jsxs)(`div`,{className:`max-w-5xl mx-auto px-4 md:px-6`,children:[(0,M.jsxs)(`div`,{className:`grid grid-cols-1 lg:grid-cols-5 ga
31p-6 mb-10`,children:[(0,M.jsxs)(`div`,{className:`lg:col-span-3 bg-white rounded-2xl border border-gray-100 p-6 md:p-8`,children:[(0,M.jsxs)(`h2`,{className:`text-lg font-bold text-[#14532D] mb-4 flex items-center gap-2`,children:[(0,M.jsx)(`i`,{className:`ri-building-2-line text-[#16A34A]`}),`Electrical Services in `,r.name]}),a?(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`p`,{className:`text-sm text-[#374151] leading-relaxed mb-4`,children:a.intro}),(0,M.jsx)(`p`,{className:`text-sm text-[#374151] leading-relaxed`,children:a.aboutArea})]}):(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(`p`,{className:`text-sm text-[#374151] leading-relaxed mb-4`,children:[`At Intolec Ltd, we are proud to serve homeowners, landlords and businesses across `,r.name,` and the wider Warwickshire area. Whether you need a `,(0,M.jsxs)(`strong`,{children:[`local electrician near `,r.name]}),` for a small repair, a full house rewire, or a renewable energy installation like solar panels or an EV charger, our qualified team is ready to help.`]}),(0,M.jsxs)(`p`,{className:`text-sm text-[#374151] leading-relaxed`,children:[c,` from `,r.name,`, we can usually be with you the same day for urgent electrical faults. All our electricians are NAPIT registered, fully insured, and carry out every job to the latest 18th Edition wiring regulations with full certification on completion.`]})]})]}),a&&(0,M.jsxs)(`div`,{className:`lg:col-span-2 bg-white rounded-2xl border border-gray-100 overflow-hidden`,children:[(0,M.jsxs)(`div`,{className:`p-4 pb-2 flex items-center gap-2`,children:[(0,M.jsx)(`i`,{className:`ri-map-pin-2-fill text-[#16A34A] text-lg`}),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`p`,{className:`text-sm font-bold text-[#111827]`,children:[r.name,` Area Map`]}),(0,M.jsx)(`p`,{className:`text-xs text-[#6B7280]`,children:a.postcode})]})]}),(0,M.jsx)(`div`,{className:`aspect-[4/3] w-full`,children:(0,M.jsx)(`iframe`,{title:`Map of ${r.name}, Warwickshire`,src:K(a.coordinates[0],a.coordinates[1],a.mapZoom),width:`100%`,height:`100%`,style:{border:0},allowFullScreen:!0,loading:`lazy`,referrerPolicy:`no-referrer-when-downgrade`,className:`w-full h-full`})})]})]}),(0,M.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-6 mb-10`,children:[a&&(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6 md:p-8`,children:[(0,M.jsxs)(`h2`,{className:`text-lg font-bold text-[#14532D] mb-4 flex items-center gap-2`,children:[(0,M.jsx)(`i`,{className:`ri-lightbulb-line text-[#FACC15]`}),`Local Knowledge â `,r.name]}),(0,M.jsx)(`p`,{className:`text-sm text-[#374151] leading-relaxed`,children:a.localNote}),(0,M.jsx)(`div`,{className:`mt-5 pt-5 border-t border-gray-100`,children:(0,M.jsxs)(`div`,{className:`flex items-center gap-3 text-xs text-[#6B7280]`,children:[(0,M.jsx)(`div`,{className:`w-10 h-10 flex items-center justify-center rounded-lg bg-[#F0FDF4]`,children:(0,M.jsx)(`i`,{className:`ri-map-pin-line text-[#16A34A] text-lg`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`p`,{className:`font-bold text-[#111827] text-sm`,children:[`Postcode: `,a.postcode]}),(0,M.jsxs)(`p`,{children:[c,` â Intolec Ltd, Leamington Spa`]})]})]})})]}),(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6 md:p-8`,children:[(0,M.jsxs)(`h2`,{className:`text-lg font-bold text-[#14532D] mb-4 flex items-center gap-2`,children:[(0,M.jsx)(`i`,{className:`ri-tools-line text-[#16A34A]`}),`What We Offer in `,r.name]}),(0,M.jsx)(`ul`,{className:`space-y-2.5`,children:[{label:`EV Charger Installation`,desc:`OZEV registered installers â PodPoint, Ohme, Zappi & more`},{label:`Solar Panel & Battery Storage`,desc:`MCS certified installations with Smart Export Guarantee`},{label:`Consumer Unit Upgrades`,desc:`Modern RCBO consumer units from £450`},{label:`EICR Testing & Reports`,desc:`Landlord certificates & home buyer electrical surveys`},{label:`Full & Partial Rewires`,desc:`Complete rewiring with minimal disruption`},{label:`Outdoor & Security Lighting`,desc:`Garden lighting, PIR floodlights & smart controls`}
31,{label:`Fault Finding & Repairs`,desc:`Same-day call-outs for electrical emergencies`},{label:`Landlord Certificates`,desc:`EICRs, PAT testing & smoke alarm compliance`}].map(e=>(0,M.jsxs)(`li`,{className:`flex items-start gap-2 text-sm text-[#374151]`,children:[(0,M.jsx)(`i`,{className:`ri-check-line text-[#16A34A] mt-0.5 flex-shrink-0`}),(0,M.jsxs)(`span`,{children:[(0,M.jsx)(`strong`,{children:e.label}),` â `,e.desc]})]},e.label))}),(0,M.jsxs)(j,{to:`/services`,className:`inline-flex items-center gap-1 mt-5 text-sm text-[#16A34A] font-semibold hover:underline`,children:[`View all electrical services `,(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`})]})]})]}),(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6 md:p-8 mb-10`,children:[(0,M.jsxs)(`h2`,{className:`text-lg font-bold text-[#14532D] mb-4 flex items-center gap-2`,children:[(0,M.jsx)(`i`,{className:`ri-star-fill text-[#FACC15]`}),`Why Choose Intolec as Your Electrician in `,r.name]}),(0,M.jsxs)(`p`,{className:`text-sm text-[#374151] leading-relaxed mb-5`,children:[`When you search for an `,(0,M.jsxs)(`strong`,{children:[`electrician near `,r.name]}),`, you want someone local, reliable and properly qualified. Here is why homeowners and businesses across `,r.name,` consistently choose Intolec Ltd:`]}),(0,M.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-4`,children:[{icon:`ri-award-line`,title:`NAPIT Registered`,desc:`All notifiable work self-certified & registered with building control â no separate applications needed.`},{icon:`ri-time-line`,title:`Fast Local Response`,desc:o?`Based right here â we can reach you faster than any out-of-town contractor.`:`Based just ${r.distance} away â we can reach you quickly for urgent call-outs and same-day fault finding.`},{icon:`ri-price-tag-3-line`,title:`Clear Written Quotes`,desc:`No hidden costs, no surprises. We provide a detailed written quote before any work begins.`},{icon:`ri-shield-check-line`,title:`Fully Certified Work`,desc:`Every job completed to 18th Edition standards with full electrical certification, giving you peace of mind.`},{icon:`ri-sun-line`,title:`Renewable Energy Experts`,desc:`MCS certified for solar panels and battery storage. OZEV registered for EV charger installations â future-proof your property.`},{icon:`ri-thumb-up-line`,title:`5â
Google Rated`,desc:`Consistently rated 5 stars by local customers across ${r.name} for professionalism, punctuality and quality of work.`}].map(e=>(0,M.jsxs)(`div`,{className:`flex gap-3`,children:[(0,M.jsx)(`div`,{className:`w-9 h-9 flex-shrink-0 flex items-center justify-center rounded-lg bg-[#F0FDF4]`,children:(0,M.jsx)(`i`,{className:`${e.icon} text-[#16A34A] text-base`})}),(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`p`,{className:`font-bold text-sm text-[#111827]`,children:e.title}),(0,M.jsx)(`p`,{className:`text-xs text-[#6B7280] leading-relaxed mt-0.5`,children:e.desc})]})]},e.title))})]}),(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6 md:p-8 mb-10`,children:[(0,M.jsxs)(`h2`,{className:`text-lg font-bold text-[#14532D] mb-4 flex items-center gap-2`,children:[(0,M.jsx)(`i`,{className:`ri-flashlight-line text-[#16A34A]`}),`Common Electrical Services Requested in `,r.name]}),(0,M.jsxs)(`p`,{className:`text-sm text-[#374151] leading-relaxed mb-5`,children:[`Our electricians regularly carry out the following jobs for customers in `,r.name,`. If you are looking for an `,(0,M.jsxs)(`strong`,{children:[`electrician near `,r.name]}),` for any of these â or anything else â give us a call for free advice.`]}),(0,M.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 md:grid-cols-3 gap-2`,children:[`EV charger installation near me`,`Consumer unit / fuse box upgrade`,`EICR electrical safety report`,`Solar panel installation`,`Battery storage systems`,`Emergency electrician call-out`,`House rewiring â full & partial`,`Outdoor security lighting`,`Garden & landscape lighting`,`Kitchen electrical installation`,`Landlord electrical certificate`,`Extra sockets & light fittings`,`Smoke & heat alarm installation`,`Fault finding & electrical repairs`,`Electric shower installation`,`Surge protection devices`].map(e=>(0,M.jsxs)(`div`,{className:`flex items-center gap-2 text-sm text-[#374151] py-1.5`,children:[(0,M.jsx)(`i`,{className:`ri-checkbox-circle-fill text-[#22C55E] text-sm flex-shrink-0`}),(0,M.jsx)(`span`,{children:e})]},e))})]}),(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 p-6 md:p-8 mb-10`,children:[(0,M.jsxs)(`h2`,{className:`text-lg font-bold text-[#14532D] mb-4 flex items-center gap-2`,children:[(0,M.jsx)(`i`,{className:`ri-road-map-line text-[#16A34A]`}),`Also Serving Nearby Areas`]}),(0,M.jsxs)(`p`,{className:`text-sm text-[#374151] leading-relaxed mb-4`,children:[`As well as covering `,r.name,`, our electricians regularly work across these nearby towns and villages:`]}),(0,M.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:u.map(e=>(0,M.jsxs)(j,{to:`/electrician-in/${$u(e.name)}
31`,className:`text-xs font-medium text-[#374151] bg-[#F9FAFB] hover:bg-[#F0FDF4] hover:text-[#16A34A] border border-gray-200 hover:border-[#BBF7D0] px-3 py-1.5 rounded-full transition-colors`,children:[`Electrician `,e.name]},e.name))}),(0,M.jsxs)(j,{to:`/areas`,className:`inline-flex items-center gap-1 mt-4 text-sm text-[#16A34A] font-semibold hover:underline`,children:[`See all 29 areas we cover `,(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`})]})]}),(0,M.jsxs)(`div`,{className:`bg-[#14532D] rounded-2xl p-8 md:p-10 text-center`,children:[(0,M.jsxs)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-white mb-2`,children:[`Need an Electrician in `,r.name,`?`]}),a?(0,M.jsxs)(`p`,{className:`text-[#86EFAC] text-sm md:text-base mb-6 max-w-lg mx-auto`,children:[`Covering `,r.name,` and the `,a.postcode,` postcode area â whether you need an emergency electrician, a free quote for solar panels, or an EV charger installation, our friendly team is ready to help. Call now for free, no-obligation advice.`]}):(0,M.jsxs)(`p`,{className:`text-[#86EFAC] text-sm md:text-base mb-6 max-w-lg mx-auto`,children:[`Whether you need an emergency electrician near `,r.name,`, a free quote for solar panels, or an EV charger installation â our friendly team is ready to help. Call now for free, no-obligation advice.`]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-3`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-white text-[#14532D] font-bold text-sm hover:bg-[#F0FDF4] transition-colors whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:t,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors cursor-pointer whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]}),(0,M.jsx)(`div`,{className:`mt-8 text-center`,children:(0,M.jsxs)(j,{to:`/areas`,className:`text-[#16A34A] font-semibold text-sm hover:underline inline-flex items-center gap-1`,children:[(0,M.jsx)(`i`,{className:`ri-arrow-left-s-line`}),`View all 29 areas we cover`]})})]})}),(0,M.jsx)(Ya,{onQuote:t}),(0,M.jsx)(I,{onQuote:t,onSolar:n})]})}var J=[{slug:`solar-panel-installation-thrapston`,title:`Solar Panel Installation in Thrapston`,category:`Solar Panels`,image:`/ai/img_res/1651afe68c0d8fc3aa43c5060d8beccc.webp`},{slug:`kitchen-lighting-leamington-spa`,title:`Kitchen Lighting Installation in Leamington Spa`,category:`Lighting`,image:`/ai/img_res/987ef81f5ff718468a0d73df3c0f233e.webp`},{slug:`ev-charger-outdoor-light-leamington-spa`,title:`EV Charger & Outdoor Light Installation`,category:`EV Chargers`,image:`/ai/img_res/85cf63923efedf165ef9d6694076da36.webp`},{slug:`solar-panel-and-ev-charger-installation-southam`,title:`Solar Panel & EV Charger Installation in Southam`,category:`Solar & EV`,image:`/ai/img_res/c1c80ae08eeba7eb3183761fa454066f.webp`},{slug:`fuseboard-upgrade-leamington-spa`,title:`Fuseboard Upgrade in Leamington Spa`,category:`Consumer Units`,image:`/ai/img_res/390d98c17055c502db09f3808a17df3a.webp`},{slug:`ev-charging-installations`,title:`EV Charging Installations`,category:`EV Chargers`,image:`/ai/img_res/dd1b84fddd39d59af1b7140d05c736c5.webp`},{slug:`fuse-board-upgrade`,title:`Fuse Board Upgrade`,category:`Consumer Units`,image:`/ai/img_res/abdb2e3d95267b59c59d5ecb1551c010.webp`},{slug:`outside-socket-installation`,title:`Outside Socket Installation`,category:`Sockets`,image:`/ai/img_res/2567c6608d8b8ef7e6d9c9eec18219de.webp`},{slug:`kitchen-electrics-leamington-spa`,title:`Kitchen Electrics in Leamington Spa`,category:`Kitchen`,image:`/ai/img_res/48feda0cfb244e7f6f3bf72aaa8f3088.webp`},{slug:`podpoint-ev-charger-installation`,title:`PodPoint EV Charger Installation`,category:`EV Chargers`,image:`/ai/img_res/e49abfd919c2f2d8c44b488a1b8b2ce5.webp`},{slug:`solar-panel-and-ev-charger-installation-warwickshire`,title:`Solar Panel & EV Charger in Warwickshire`,category:`Solar & EV`,image:`/ai/img_res/2c7d3c1d3d2802916a6352a5b1e6065a.webp`},{slug:`solar-pv-battery-storage-leamington-spa`,title:`Solar PV & Battery Storage in Leamington Spa`,category:`Solar & Battery`,image:`/ai/img_res/5addd565f5edcf00103a0dc4cde0fcf8.
31webp`},{slug:`outdoor-lighting-installation-leamington-spa`,title:`Outdoor Lighting Installation in Leamington Spa`,category:`Lighting`,image:`/ai/img_res/afd3d5a158396578214efa8d4e3e68df.webp`},{slug:`lighting-installation-leamington-spa`,title:`Lighting Installation in Leamington Spa`,category:`Lighting`,image:`/ai/img_res/11b4ff1b64242baebae01490d001f834.webp`},{slug:`leamington-spa-electrician`,title:`Leamington Spa Electrician at Work`,category:`General`,image:`/ai/img_res/03cf1a5421f1780409b9b5a423d161a1.webp`}];function Y(){let{openQuote:e,openSolar:t}=nu(),[n,r]=(0,E.useState)(!1),i=(0,E.useRef)(null);return ca({title:`Photo Gallery | Electrician Leamington Spa - Intolec Ltd`,description:`View our portfolio of electrical work across Leamington Spa and Warwickshire. EV charger installations, solar panels, consumer unit upgrades, lighting and more.`,canonicalPath:`/photos`}),(0,E.useEffect)(()=>{let e=new IntersectionObserver(([e])=>{e.isIntersecting&&r(!0)},{threshold:.05});return i.current&&e.observe(i.current),()=>e.disconnect()},[]),(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(F,{onQuote:e}),(0,M.jsxs)(`section`,{className:`relative bg-[#14532D] overflow-hidden pt-28 pb-16 md:pt-36 md:pb-20`,children:[(0,M.jsx)(`div`,{className:`absolute inset-0 pointer-events-none`,children:(0,M.jsx)(`div`,{className:`absolute top-0 right-0 w-96 h-96 rounded-full bg-[#22C55E]/10 blur-3xl translate-x-1/2 -translate-y-1/2`})}),(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center relative z-10`,children:[(0,M.jsxs)(`nav`,{className:`flex items-center justify-center gap-2 text-xs text-[#86EFAC]/60 mb-6`,children:[(0,M.jsx)(j,{to:`/`,className:`hover:text-[#86EFAC] transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(`span`,{className:`text-[#86EFAC]`,children:`Photo Gallery`})]}),(0,M.jsx)(`span`,{className:`inline-block text-[#86EFAC] font-semibold text-xs uppercase tracking-widest mb-4 bg-[#22C55E]/20 px-4 py-1.5 rounded-full`,children:`Our Work`}),(0,M.jsx)(`h1`,{className:`text-3xl md:text-5xl font-extrabold text-white mb-4 leading-tight`,children:`Photo Gallery â Electrician Leamington Spa`}),(0,M.jsx)(`p`,{className:`text-[#86EFAC]/80 text-base md:text-lg max-w-2xl mx-auto`,children:`See real examples of our electrical work across Leamington Spa, Warwick, Kenilworth and the wider Warwickshire area. Every photo shows work carried out by our NAPIT registered electricians.`})]})]}),(0,M.jsx)(`section`,{className:`py-16 md:py-24 bg-[#F9FAFB]`,children:(0,M.jsx)(`div`,{className:`max-w-7xl mx-auto px-4 md:px-6`,children:(0,M.jsx)(`div`,{ref:i,className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-5 md:gap-6`,children:J.map((e,t)=>(0,M.jsxs)(j,{to:`/photo/${e.slug}`,className:`group bg-white rounded-xl border border-gray-100 overflow-hidden transition-all duration-500 hover:-translate-y-1 ${n?`opacity-100 translate-y-0`:`opacity-0 translate-y-6`}`,style:{transitionDelay:`${t*50}ms`},children:[(0,M.jsxs)(`div`,{className:`relative aspect-[4/3] overflow-hidden`,children:[(0,M.jsx)(`img`,{src:e.image,alt:e.title,className:`w-full h-full object-cover group-hover:scale-105 transition-transform duration-500`,loading:`lazy`}),(0,M.jsx)(`div`,{className:`absolute inset-0 bg-gradient-to-t from-black/40 to-transparent opacity-0 group-hover:opacity-100 transition-opacity duration-300`})]}),(0,M.jsxs)(`div`,{className:`p-4`,children:[(0,M.jsx)(`span`,{className:`text-xs font-medium text-[#16A34A] bg-[#F0FDF4] px-2 py-0.5 rounded-full`,children:e.category}),(0,M.jsx)(`h3`,{className:`text-sm font-semibold text-[#111827] mt-2 leading-snug`,children:e.title})]})]},e.slug))})})}),(0,M.jsx)(Ya,{onQuote:e}),(0,M.jsx)(I,{onQuote:e,onSolar:t})]})}var X={"solar-panel-installation-thrapston":{title:`Solar Panel Installation in Thrapston`,category:`Solar Panels`,image:`/ai/img_res/9f989682ec259f2d7ace9672d5b10ecc.webp`,description:`A complete solar panel installation carried out by Intolec Ltd in Thrapston. This installation features high-efficiency monocrystalline panels mounted on a south-facing roof, providing the homeowner with clean, renewable energy and significantly reduced electricity bills.`},"kitchen-lighting-leamington-spa":{title:`Kitchen Lighting Installation in Leamington Spa`,category:`Lighting`,image:`/ai/img_res/d50aba5903078effd7aecfc7d825cbae.webp`,description:`A kitchen lighting installation in Leamington Spa featuring recessed LED downlights and under-cabinet task lighting. The scheme combines ambient and task lighting for a bright, functional kitchen that looks beautiful day and night.`},"ev-charger-outdoor-light-leamington-spa":{title:`EV Charger & Outdoor Light Installation`,category:`EV Chargers`,image:`/ai/img_res/776a30ff5294ea5c5e90bb05ed81b3f1.webp`,description:`A combined EV charger and outdoor security light installation in Leamington Spa. This project involved running a dedicated circuit from the consumer unit to the driveway and installing both the charger and a PIR security light for convenient and safe nighttime charging.`},"solar-panel-and-ev-charger-installation-southam":{title:`Solar Panel & EV Charger Installation in Southam`,category:`Solar & EV`,image:`/ai/img_res/e6dee21985439610ebf28b2808d4297c.webp`,description:`A complete green energy solution for a Southam home. Solar panels on the roof generate free electricity during the day, while the EV charger on the driveway ensures the homeowner can charge their electric vehicle using their own renew
31able energy.`},"fuseboard-upgrade-leamington-spa":{title:`Fuseboard Upgrade in Leamington Spa`,category:`Consumer Units`,image:`/ai/img_res/de97bf4fde6de2b7ca7246a2de9a9a18.webp`,description:`A consumer unit upgrade in Leamington Spa, replacing an old fuse board with a modern full RCBO consumer unit. The new board provides individual RCD protection on every circuit for maximum safety and compliance with current wiring regulations.`},"ev-charging-installations":{title:`EV Charging Installations`,category:`EV Chargers`,image:`/ai/img_res/8482d12ac6f8240f8a4dac4bc76e66c5.webp`,description:`A selection of EV charging installations carried out by Intolec across Warwickshire. As OZEV registered installers, we fit all major charger brands including PodPoint, Ohme, Zappi and Easee.`},"fuse-board-upgrade":{title:`Fuse Board Upgrade`,category:`Consumer Units`,image:`/ai/img_res/ef12f927a275a56dfd37e7c47800621d.webp`,description:`A clean fuse board upgrade with neatly labelled circuits. The new consumer unit provides full RCD protection and ample capacity for future electrical additions, bringing the property up to current safety standards.`},"outside-socket-installation":{title:`Outside Socket Installation`,category:`Sockets`,image:`/ai/img_res/56ed7dbc0992e38b3bfdd57f4aee2638.webp`,description:`An IP66-rated weatherproof outdoor double socket installation, ideal for garden equipment, power tools, or outdoor entertaining. Installed on a dedicated RCD-protected circuit for safety.`},"kitchen-electrics-leamington-spa":{title:`Kitchen Electrics in Leamington Spa`,category:`Kitchen`,image:`/ai/img_res/b9dfefbd83a8a8e758ce374e64b7dba3.webp`,description:`A complete kitchen electrical installation in Leamington Spa. This project included new socket circuits, cooker connection, extractor fan wiring and under-cabinet LED lighting â all certified and notified to building control.`},"podpoint-ev-charger-installation":{title:`PodPoint EV Charger Installation`,category:`EV Chargers`,image:`/ai/img_res/92c232b2d3c6fa7d2201de135c4c682a.webp`,description:`A PodPoint Solo EV charger installation. The PodPoint Solo is one of the most popular home chargers in the UK, offering smart charging features and compatibility with off-peak electricity tariffs for maximum savings.`},"solar-panel-and-ev-charger-installation-warwickshire":{title:`Solar Panel & EV Charger Installation in Warwickshire`,category:`Solar & EV`,image:`/ai/img_res/c299d4426d9516033bc05e530c9e9bb2.webp`,description:`An integrated solar panel and EV charger installation at a Warwickshire property. The solar panels generate free electricity that can be used to charge the EV, with surplus stored in a battery or exported to the grid via the Smart Export Guarantee.`},"solar-pv-battery-storage-leamington-spa":{title:`Solar PV & Battery Storage in Leamington Spa`,category:`Solar & Battery`,image:`/ai/img_res/d09b5a1f36f9d250feaeb35e88900707.webp`,description:`A solar PV system with battery storage installed at a Leamington Spa home. The battery stores excess daytime solar generation for use in the evening, dramatically reducing the homeowner’s reliance on grid electricity.`},"outdoor-lighting-installation-leamington-spa":{title:`Outdoor Lighting Installation in Leamington Spa`,category:`Lighting`,image:`/ai/img_res/51f16f9d11dc2720528558ad38036550.webp`,description:`A bespoke outdoor lighting installation in Leamington Spa. The design combines pathway lighting, tree uplighting and subtle wall washing to create a warm, inviting outdoor space that can be enjoyed well into the evening.`},"lighting-installation-leamington-spa":{title:`Lighting Installation in Leamington Spa`,category:`Lighting`,image:`/ai/img_res/c98a8df7a1930edfe2fc8a352c9176d2.webp`,description:`A full lighting installation carried out by Intolec in Leamington Spa. The project involved installing new pendant lights, wall fixtures and dimmer switches to create a layered lighting scheme with full control over ambience.`},"leamington-spa-electrician":{title:`Leamington Spa Electrician at Work`,category:`General`,image:`/ai/img_res/2016ea0a2b638d1fae56b91fe0fc26b5.webp`,description:`One of our qualified electricians at work in Leamington Spa. All Intolec electricians are fully qualified, NAPIT registered and carry out work to the highest standards with full certification on completion.`}};function ed(){let{slug:e}
31=Hr(),{openQuote:t,openSolar:n}=nu(),r=e?X[e]:null;return ca({title:r?`${r.title} | Intolec Ltd Photo Gallery`:`Photo Not Found - Intolec Ltd`,description:r?r.description.substring(0,155):`Photo gallery for Intolec Ltd, electricians in Leamington Spa.`,canonicalPath:`/photo/${e||``}`}),r?(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(F,{onQuote:t}),(0,M.jsx)(`section`,{className:`relative bg-[#14532D] overflow-hidden pt-28 pb-12 md:pt-36 md:pb-16`,children:(0,M.jsxs)(`div`,{className:`max-w-5xl mx-auto px-4 md:px-6 text-center relative z-10`,children:[(0,M.jsxs)(`nav`,{className:`flex items-center justify-center gap-2 text-xs text-[#86EFAC]/60 mb-6`,children:[(0,M.jsx)(j,{to:`/`,className:`hover:text-[#86EFAC] transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(j,{to:`/photos`,className:`hover:text-[#86EFAC] transition-colors`,children:`Photo Gallery`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(`span`,{className:`text-[#86EFAC]`,children:r.category})]}),(0,M.jsx)(`span`,{className:`inline-block text-[#86EFAC] font-semibold text-xs uppercase tracking-widest mb-4 bg-[#22C55E]/20 px-4 py-1.5 rounded-full`,children:r.category}),(0,M.jsx)(`h1`,{className:`text-2xl md:text-4xl font-extrabold text-white mb-3 leading-tight`,children:r.title})]})}),(0,M.jsx)(`section`,{className:`py-12 md:py-16 bg-[#F9FAFB]`,children:(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6`,children:[(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 overflow-hidden`,children:[(0,M.jsx)(`div`,{className:`aspect-[3/2] overflow-hidden`,children:(0,M.jsx)(`img`,{src:r.image,alt:r.title,className:`w-full h-full object-cover`})}),(0,M.jsxs)(`div`,{className:`p-6 md:p-8`,children:[(0,M.jsx)(`p`,{className:`text-sm md:text-base text-[#374151] leading-relaxed`,children:r.description}),(0,M.jsxs)(`div`,{className:`mt-8 pt-6 border-t border-gray-100 flex flex-col sm:flex-row items-center gap-4`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#14532D] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`Call 01926 768080`]}),(0,M.jsxs)(`button`,{onClick:t,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors cursor-pointer whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]})]}),(0,M.jsx)(`div`,{className:`mt-8 text-center`,children:(0,M.jsxs)(j,{to:`/photos`,className:`text-[#16A34A] font-semibold text-sm hover:underline inline-flex items-center gap-1`,children:[(0,M.jsx)(`i`,{className:`ri-arrow-left-s-line`}),`Back to photo gallery`]})})]})}),(0,M.jsx)(Ya,{onQuote:t}),(0,M.jsx)(I,{onQuote:t,onSolar:n})]}):(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0`,children:[(0,M.jsx)(F,{onQuote:t}),(0,M.jsxs)(`div`,{className:`pt-32 pb-20 text-center`,children:[(0,M.jsx)(`h1`,{className:`text-2xl font-bold text-gray-800 mb-4`,children:`Photo Not Found`}),(0,M.jsx)(`p`,{className:`text-gray-500 mb-6`,children:`The photo you are looking for could not be found.`}),(0,M.jsx)(j,{to:`/photos`,className:`text-green-600 font-semibold hover:underline`,children:`View all photos`})]}),(0,M.jsx)(Ya,{onQuote:t})]})}var td=[{name:`Richard`,role:`Director & Electrician`,image:`/ai/img_res/14696307b12d7721dee2d2d8f4f14088.webp`,bio:`Richard is the founder and director of Intolec Ltd. With extensive experience in the electrical industry, he leads the team with a commitment to quality workmanship and honest customer service. Richard personally oversees every project and is the main point of contact for all customers.`,qualifications:[`NAPIT Registered`,`MCS Certified`,`OZEV Registered`,`18th Edition`,`2391 Inspection & Testing`]},{name:`Tom`,role:`Electrician`,image:`/ai/img_res/73c360fbfdb44d74ed7634d7a259c836.webp`,bio:`Tom is a highly skilled electrician with a keen eye for detail. He takes great pride in every installation and has built a strong reputation for leaving work areas spotless. Tom specialises in EV charger installations and consumer unit upgrades.`,qualifications:[`18th Edition`,`AM2 Qualified`,`2391 Inspection & Testing`]},{name:`James`,role:`Apprentice Electrician`,image:`/ai/img_res/e8b4a6dfe36ca196347b324c4f5e0628.webp`,bio:`James is the newest member of the Intolec team, currently completing his electrical apprenticeship under Richard’s mentorship. He is enthusiastic, hardworking and already developing excellent skills in domestic electrical work.`,qualifications:[`Apprentice (In Training)`,`Working towards 18th Edition`]}];
31function nd(){let{openQuote:e,openSolar:t}=nu(),[n,r]=(0,E.useState)(!1),i=(0,E.useRef)(null);return ca({title:`Meet the Team | Electrician Leamington Spa - Intolec Ltd`,description:`Meet the qualified electricians behind Intolec Ltd. Richard and his team provide professional electrical services across Leamington Spa and Warwickshire. Call 01926 768080.`,canonicalPath:`/meet-the-team`}),(0,E.useEffect)(()=>{let e=new IntersectionObserver(([e])=>{e.isIntersecting&&r(!0)},{threshold:.05});return i.current&&e.observe(i.current),()=>e.disconnect()},[]),(0,M.jsxs)(`div`,{className:`min-h-screen bg-white font-sans pb-16 md:pb-0 overflow-x-hidden`,children:[(0,M.jsx)(F,{onQuote:e}),(0,M.jsxs)(`section`,{className:`relative bg-[#14532D] overflow-hidden pt-28 pb-16 md:pt-36 md:pb-20`,children:[(0,M.jsxs)(`div`,{className:`absolute inset-0 pointer-events-none`,children:[(0,M.jsx)(`div`,{className:`absolute top-0 right-0 w-96 h-96 rounded-full bg-[#22C55E]/10 blur-3xl translate-x-1/2 -translate-y-1/2`}),(0,M.jsx)(`div`,{className:`absolute inset-0 opacity-5`,style:{backgroundImage:`radial-gradient(circle, #22C55E 1px, transparent 1px)`,backgroundSize:`32px 32px`}})]}),(0,M.jsxs)(`div`,{className:`max-w-4xl mx-auto px-4 md:px-6 text-center relative z-10`,children:[(0,M.jsxs)(`nav`,{className:`flex items-center justify-center gap-2 text-xs text-[#86EFAC]/60 mb-6`,children:[(0,M.jsx)(j,{to:`/`,className:`hover:text-[#86EFAC] transition-colors`,children:`Home`}),(0,M.jsx)(`i`,{className:`ri-arrow-right-s-line`}),(0,M.jsx)(`span`,{className:`text-[#86EFAC]`,children:`Meet the Team`})]}),(0,M.jsx)(`span`,{className:`inline-block text-[#86EFAC] font-semibold text-xs uppercase tracking-widest mb-4 bg-[#22C55E]/20 px-4 py-1.5 rounded-full`,children:`Intolec Ltd`}),(0,M.jsxs)(`h1`,{className:`text-3xl md:text-5xl font-extrabold text-white mb-5 leading-tight`,children:[`Meet the `,(0,M.jsx)(`span`,{className:`text-[#22C55E]`,children:`Team`})]}),(0,M.jsx)(`p`,{className:`text-[#86EFAC]/80 text-base md:text-lg max-w-2xl mx-auto leading-relaxed`,children:`We are a small, dedicated team of qualified electricians based in Leamington Spa, serving homeowners and businesses across Warwick, Kenilworth, Coventry and the wider Warwickshire area. Every member of our team shares a commitment to quality workmanship and outstanding customer service.`})]})]}),(0,M.jsx)(`section`,{className:`py-16 md:py-24 bg-[#F9FAFB]`,children:(0,M.jsxs)(`div`,{className:`max-w-6xl mx-auto px-4 md:px-6`,children:[(0,M.jsx)(`div`,{ref:i,className:`grid grid-cols-1 md:grid-cols-3 gap-6 md:gap-8`,children:td.map((e,t)=>(0,M.jsxs)(`div`,{className:`bg-white rounded-2xl border border-gray-100 overflow-hidden transition-all duration-700 ${n?`opacity-100 translate-y-0`:`opacity-0 translate-y-8`}`,style:{transitionDelay:`${t*120}ms`},children:[(0,M.jsx)(`div`,{className:`aspect-square overflow-hidden`,children:(0,M.jsx)(`img`,{src:e.image,alt:e.name,className:`w-full h-full object-cover`,loading:`lazy`})}),(0,M.jsxs)(`div`,{className:`p-6`,children:[(0,M.jsx)(`h3`,{className:`text-lg font-extrabold text-[#14532D]`,children:e.name}),(0,M.jsx)(`p`,{className:`text-sm text-[#16A34A] font-semibold mb-3`,children:e.role}),(0,M.jsx)(`p`,{className:`text-sm text-[#374151] leading-relaxed mb-4`,children:e.bio}),(0,M.jsx)(`div`,{className:`flex flex-wrap gap-1.5`,children:e.qualifications.map(e=>(0,M.jsx)(`span`,{className:`text-xs bg-[#F0FDF4] text-[#16A34A] px-2 py-1 rounded-full font-medium`,children:e},e))})]})]},e.name))}),(0,M.jsxs)(`div`,{className:`mt-14 bg-[#14532D] rounded-2xl p-8 md:p-10 text-center`,children:[(0,M.jsx)(`h2`,{className:`text-xl md:text-2xl font-extrabold text-white mb-2`,children:`Work with our team`}),(0,M.jsxs)(`p`,{className:`text-[#86EFAC] text-sm md:text-base mb-6`,children:[`Whether you need an `,(0,M.jsx)(`strong`,{children:`electrician near you in Leamington Spa`}),` for a small repair or a major renewable energy installation, our qualified team is ready to help. Get in touch for a free, no-obligation chat.`]}),(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row items-center justify-center gap-3`,children:[(0,M.jsxs)(`a`,{href:`tel:01926768080`,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-white text-[#14532D] font-bold text-sm hover:bg-[#F0FDF4] transition-colors whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-phone-fill`}),`01926 768080`]}),(0,M.jsxs)(`button`,{onClick:e,className:`inline-flex items-center gap-2 px-6 py-3 rounded-lg bg-[#22C55E] text-white font-bold text-sm hover:bg-[#16A34A] transition-colors cursor-pointer whitespace-nowrap w-full sm:w-auto justify-center`,children:[(0,M.jsx)(`i`,{className:`ri-file-list-3-line`}),`Get a Free Quote`]})]})]})]})}),(0,M.jsx)(Ya,{onQuote:e}),(0,M.jsx)(I,{onQuote:e,onSolar:t})]})}var rd=[{path:`/`,element:(0,M.jsx)(ru,{})},{path:`/services`,element:(0,M.jsx)(fu,{})},{path:`/areas`,element:(0,M.jsx)(_u,{})},{path:`/service/:slug`,element:(0,M.jsx)(Eu,{})},{path:`/frequently-asked-questions`,element:(0,M.jsx)(ju,{})},{path:`/faq/:slug`,element:(0,M.jsx)(Pu,{})},{path:`/blog`,element:(0,M.jsx)(Lu,{})},{path:`/blog/:slug`,element:(0,M.jsx)(Vu,{})},{path:`/testimonials`,element:(0,M.jsx)(qu,{})},{path:`/testimonial/:slug`,element:(0,M.jsx)(Ju,{})},{path:`/complaints-policy`,element:(0,M.jsx)(Yu,{})},{path:`/contact`,element:(0,M.jsx)(Xu,{})},{path:`/tracking`,element:(0,M.jsx)(Zu,{})},{path:`/electrician-in/:slug`,element:(0,M.jsx)(q,{})},{path:`/photos`,element:(0,M.jsx)(Y,{})},{path:`/photo/:slug`,element:(0,M.jsx)(ed,{})},{path:`/meet-the-team`,element:(0,M.jsx)(nd,{})},{path:`*`,element:(0,M.jsx)(ua,{})}],id;new Promise(e=>{id=e});function ad(){let e=Wr(rd),t=Br();return(0,E.useEffect)(()=>{window.REACT_APP_NAVIGATE=t,id(window.REACT_APP_NAVIGATE)}),e}function od(){let{pathname:e}=Lr();return(0,E.useEffect)(()=>{window.scrollTo({top:0,left:0,behavior:`instant`})},[e]),null}function sd(){return(0,M.jsx)(Ot,{i18n:en,children:(0,M.jsxs)(Yi,{basename:`/`,children:[(0,M.jsx)(od,{}),(0,M.jsx)(ad,{})]})})}(0,sn.createRoot)(document.getElementById(`root`)).render((0,M.jsx)(E.Str
31ictMode,{children:(0,M.jsx)(sd,{})}));
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.