1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[450],{63:(e,t,n)=>{"use strict";var r=n(7260);n.o(r,"usePathname")&&n.d(t,{usePathname:function(){return r.usePathname}}),n.o(r,"useRouter")&&n.d(t,{useRouter:function(){return r.useRouter}})},1408:(e,t,n)=>{"use strict";n.d(t,{N:()=>v});var r=n(5155),i=n(2115),o=n(296),s=n(4416),a=n(9686),l=n(3127);class c extends i.Component{getSnapshotBeforeUpdate(e){let t=this.props.childRef.current;if(t&&e.isPresent&&!this.props.isPresent){let e=this.props.sizeRef.current;e.height=t.offsetHeight||0,e.width=t.offsetWidth||0,e.top=t.offsetTop,e.left=t.offsetLeft}return null}componentDidUpdate(){}render(){return this.props.children}}function u(e){let{children:t,isPresent:n}=e,o=(0,i.useId)(),s=(0,i.useRef)(null),a=(0,i.useRef)({width:0,height:0,top:0,left:0}),{nonce:u}=(0,i.useContext)(l.Q);return(0,i.useInsertionEffect)(()=>{let{width:e,height:t,top:r,left:i}=a.current;if(n||!s.current||!e||!t)return;s.current.dataset.motionPopId=o;let l=document.createElement("style");return u&&(l.nonce=u),document.head.appendChild(l),l.sheet&&l.sheet.insertRule('\n [data-motion-pop-id="'.concat(o,'"] {\n position: absolute !important;\n width: ').concat(e,"px !important;\n height: ").concat(t,"px !important;\n top: ").concat(r,"px !important;\n left: ").concat(i,"px !important;\n }\n ")),()=>{document.head.removeChild(l)}},[n]),(0,r.jsx)(c,{isPresent:n,childRef:s,sizeRef:a,children:i.cloneElement(t,{ref:s})})}let d=e=>{let{children:t,initial:n,isPresent:o,onExitComplete:l,custom:c,presenceAffectsLayout:d,mode:m}=e,h=(0,s.M)(f),p=(0,i.useId)(),b=(0,i.useCallback)(e=>{for(let t of(h.set(e,!0),h.values()))if(!t)return;l&&l()},[h,l]),v=(0,i.useMemo)(()=>({id:p,initial:n,isPresent:o,custom:c,onExitComplete:b,register:e=>(h.set(e,!1),()=>h.delete(e))}),d?[Math.random(),b]:[o,b]);return(0,i.useMemo)(()=>{h.forEach((e,t)=>h.set(t,!1))},[o]),i.useEffect(()=>{o||h.size||!l||l()},[o]),"popLayout"===m&&(t=(0,r.jsx)(u,{isPresent:o,children:t})),(0,r.jsx)(a.t.Provider,{value:v,children:t})};function f(){return new Map}var m=n(5601);let h=e=>e.key||"";function p(e){let t=[];return i.Children.forEach(e,e=>{(0,i.isValidElement)(e)&&t.push(e)}),t}var b=n(6553);let v=e=>{let{children:t,custom:n,initial:a=!0,onExitComplete:l,presenceAffectsLayout:c=!0,mode:u="sync",propagate:f=!1}=e,[v,x]=(0,m.xQ)(f),g=(0,i.useMemo)(()=>p(t),[t]),y=f&&!v?[]:g.map(h),k=(0,i.useRef)(!0),w=(0,i.useRef)(g),j=(0,s.M)(()=>new Map),[P,N]=(0,i.useState)(g),[E,C]=(0,i.useState)(g);(0,b.E)(()=>{k.current=!1,w.current=g;for(let e=0;e<E.length;e++){let t=h(E[e]);y.includes(t)?j.delete(t):!0!==j.get(t)&&j.set(t,!1)}},[E,y.length,y.join("-")]);let S=[];if(g!==P){let e=[...g];for(let t=0;t<E.length;t++){let n=E[t],r=h(n);y.includes(r)||(e.splice(t,0,n),S.push(n))}"wait"===u&&S.length&&(e=S),C(p(e)),N(g);return}let{forceRender:R}=(0,i.useContext)(o.L);return(0,r.jsx)(r.Fragment,{children:E.map(e=>{let t=h(e),i=(!f||!!v)&&(g===E||y.includes(t));return(0,r.jsx)(d,{isPresent:i,initial:(!k.current||!!a)&&void 0,custom:i?void 0:n,presenceAffectsLayout:c,mode:u,onExitComplete:i?void 0:()=>{if(!j.has(t))return;j.set(t,!0);let e=!0;j.forEach(t=>{t||(e=!1)}),e&&(null==R||R(),C(w.current),f&&(null==x||x()),l&&l())},children:e},t)})})}},3011:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return i}});let r=n(2115);function i(e,t){let n=(0,r.useRef)(null),i=(0,r.useRef)(null);return(0,r.useCallback)(r=>{if(null===r){let e=n.current;e&&(n.current=null,e());let t=i.current;t&&(i.current=null,t())}else e&&(n.current=o(e,r)),t&&(i.current=o(t,r))},[e,t])}function o(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let n=e(t);return"function"==typeof n?n:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}
1,3102:(e,t,n)=>{"use strict";n.d(t,{Navigation:()=>g});var r=n(5155),i=n(2115),o=n(5239),s=n(8955),a=n(6809),l=n(63),c=n(1407),u=n(1408),d=n(5937),f=n(1847);let m=(0,f.A)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),h=(0,f.A)("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);var p=n(6882);let b=["about","services","projects","testimonials","contact"],v={hidden:{opacity:0,y:-8},visible:{opacity:1,y:0,transition:{duration:.2,ease:"easeOut"}},exit:{opacity:0,y:-8,transition:{duration:.15,ease:"easeIn"}}},x={hidden:{},visible:{},exit:{}};function g(){let e=(0,s.c)("nav"),t=(0,a.Ym)(),n=(0,l.usePathname)(),f=(0,c.I)(),[g,y]=(0,i.useState)(!1),[k,w]=(0,i.useState)(!1),j=n==="/".concat(t)||n==="/".concat(t,"/"),P=(0,i.useCallback)(e=>j?"#".concat(e):"/".concat(t,"#").concat(e),[j,t]);(0,i.useEffect)(()=>{let e=()=>{y(window.scrollY>8)};return e(),window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[]);let N=(0,i.useCallback)(()=>w(!1),[]);return(0,r.jsxs)("header",{role:"banner",className:"fixed top-0 w-full z-50",children:[(0,r.jsx)("div",{className:["transition-colors duration-300",g?"bg-dark-bg border-b border-dark-border":"bg-dark-bg/80 backdrop-blur-sm"].join(" "),children:(0,r.jsxs)("div",{className:"max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 h-16 lg:h-20 flex items-center justify-between",children:[(0,r.jsx)("a",{href:"/","aria-label":"Innovation Codotek â Accueil",className:"flex-shrink-0",children:(0,r.jsx)(o.default,{src:"/SVGLogo.svg",alt:"Innovation Codotek logo",width:140,height:40,priority:!0})}),(0,r.jsxs)("nav",{"aria-label":"Main navigation",className:"hidden md:flex items-center gap-6 lg:gap-8",children:[b.map(t=>(0,r.jsx)("a",{href:P(t),className:"text-sm font-medium text-text-on-dark hover:text-primary transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-dark-bg rounded",children:e(t)},t)),(0,r.jsx)("a",{href:"/".concat(t,"/blog"),className:"text-sm font-medium text-text-on-dark hover:text-primary transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-dark-bg rounded",children:e("blog")})]}),(0,r.jsx)("div",{className:"hidden md:flex items-center",children:(0,r.jsx)(p.LanguageSwitcher,{})}),(0,r.jsx)("button",{type:"button","aria-expanded":k,"aria-controls":"mobile-menu","aria-label":"Toggle menu",onClick:()=>w(e=>!e),className:"md:hidden flex items-center justify-center min-w-[44px] min-h-[44px] text-text-on-dark hover:text-primary transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-dark-bg rounded",children:k?(0,r.jsx)(m,{className:"h-5 w-5","aria-hidden":"true"}):(0,r.jsx)(h,{className:"h-5 w-5","aria-hidden":"true"})})]})}),(0,r.jsx)(u.N,{children:k&&(0,r.jsx)(d.P.div,{id:"mobile-menu",variants:f?x:v,initial:"hidden",animate:"visible",exit:"exit",className:"md:hidden bg-dark-bg border-b border-dark-border",children:(0,r.jsxs)("nav",{"aria-label":"Mobile navigation",className:"max-w-7xl mx-auto px-4 sm:px-6 py-4 flex flex-col gap-4",children:[b.map(t=>(0,r.jsx)("a",{href:P(t),onClick:N,className:"text-base font-medium text-text-on-dark hover:text-primary transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-dark-bg rounded py-1",children:e(t)},t)),(0,r.jsx)("a",{href:"/".concat(t,"/blog"),onClick:N,className:"text-base font-medium text-text-on-dark hover:text-primary transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2 focus-visible:ring-offset-dark-bg rounded py-1",children:e("blog")}),(0,r.jsx)("div",{className:"pt-2 border-t border-dark-border",children:(0,r.jsx)(p.LanguageSwitcher,{})})]})},"mobile-menu")})]})}},3673:()=>{},3809:(e,t,n)=>{"use strict";n.d(t,{default:()=>o});var r=n(6809),i=n(5155);function o(e){let{locale:t,...n}=e;if(!t)throw Error(void 0);return(0,i.jsx)(r.Dk,{locale:t,...n})}},4269:(e,t,n)=>{"use strict";n.d(t,{DX:()=>u,UR:()=>l,W6:()=>s,cn:()=>o,ei:()=>a,v7:()=>c});var r=n(2821),i=n(5889);function o(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return(0,i.QP)((0,r.$)(t))}
1let s="https://innovationcodotek.ca",a="[email protected]",l="+15819942237",c="(581) 994-2237",u="https://www.linkedin.com/in/paul-bareil"},4545:e=>{e.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_f367f3"}},5824:(e,t,n)=>{Promise.resolve().then(n.bind(n,7025)),Promise.resolve().then(n.bind(n,3809)),Promise.resolve().then(n.t.bind(n,1356,23)),Promise.resolve().then(n.t.bind(n,4545,23)),Promise.resolve().then(n.t.bind(n,3673,23)),Promise.resolve().then(n.bind(n,3102)),Promise.resolve().then(n.bind(n,6882))},6882:(e,t,n)=>{"use strict";n.d(t,{LanguageSwitcher:()=>l});var r=n(5155),i=n(2115),o=n(6809),s=n(63),a=n(4269);function l(){let e=(0,o.Ym)(),t=(0,s.useRouter)(),n=(0,s.usePathname)(),l=(0,i.useCallback)(r=>{if(r===e)return;let i=n.split("/");i[1]=r;let o=i.join("/")||"/";t.push(o)},[e,n,t]),c="min-h-[44px] px-2 text-sm font-medium transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2";return(0,r.jsxs)("div",{className:"flex items-center gap-1","aria-label":"Switch language",children:[(0,r.jsx)("button",{type:"button",lang:"fr","aria-current":"fr"===e?"true":void 0,onClick:()=>l("fr"),className:(0,a.cn)(c,"fr"===e?"text-primary font-semibold underline decoration-primary underline-offset-4":"text-text-muted-dark hover:text-text-on-dark"),children:"FR"}),(0,r.jsx)("span",{className:"text-text-muted-dark mx-1","aria-hidden":"true",children:"|"}),(0,r.jsx)("button",{type:"button",lang:"en","aria-current":"en"===e?"true":void 0,onClick:()=>l("en"),className:(0,a.cn)(c,"en"===e?"text-primary font-semibold underline decoration-primary underline-offset-4":"text-text-muted-dark hover:text-text-on-dark"),children:"EN"})]})}},7025:(e,t,n)=>{"use strict";n.d(t,{Analytics:()=>l});var r=n(2115),i=n(5704);function o(){return"undefined"!=typeof window}function s(){return"production"}function a(){return"development"===((o()?window.vam:s())||"production")}function l(e){return(0,r.useEffect)(()=>{var t;e.beforeSend&&(null==(t=window.va)||t.call(window,"beforeSend",e.beforeSend))},[e.beforeSend]),(0,r.useEffect)(()=>{var t;!function(){var e;let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{debug:!0};if(!o())return;!function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"auto";if("auto"===e){window.vam=s();return}window.vam=e}(t.mode),window.va||(window.va=function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];(window.vaq=window.vaq||[]).push(t)}),t.beforeSend&&(null==(e=window.va)||e.call(window,"beforeSend",t.beforeSend));let n=t.scriptSrc?t.scriptSrc:a()?"https://va.vercel-scripts.com/v1/script.debug.js":t.basePath?"".concat(t.basePath,"/insights/script.js"):"/_vercel/insights/script.js";if(document.head.querySelector('script[src*="'.concat(n,'"]')))return;let r=document.createElement("script");r.src=n,r.defer=!0,r.dataset.sdkn="@vercel/analytics"+(t.framework?"/".concat(t.framework):""),r.dataset.sdkv="1.6.1",t.disableAutoTrack&&(r.dataset.disableAutoTrack="1"),t.endpoint?r.dataset.endpoint=t.endpoint:t.basePath&&(r.dataset.endpoint="".concat(t.basePath,"/insights")),t.dsn&&(r.dataset.dsn=t.dsn),r.onerror=()=>{let e=a()?"Please check if any ad blockers are enabled and try again.":"Be sure to enable Web Analytics for your project and deploy again. See https://vercel.com/docs/analytics/quickstart for more information.";console.log("[Vercel Web Analytics] Failed to load script from ".concat(n,". ").concat(e))},a()&&!1===t.debug&&(r.dataset.debug="false"),document.head.appendChild(r)}({framework:e.framework||"react",basePath:null!=(t=e.basePath)?t:function(){if(void 0!==i&&void 0!==i.env)return i.env.REACT_APP_VERCEL_OBSERVABILITY_BASEPATH}(),...void 0!==e.route&&{disableAutoTrack:!0},...e})},[]),(0,r.useEffect)(()=>{e.route&&e.path&&function(e){var t;let{route:n,path:r}=e;null==(t=window.va)||t.call(window,"pageview",{route:n,path:r})}({route:e.route,path:e.path})},[e.route,e.path]),null}}},e=>{e.O(0,[346,165,441,255,358],()=>e(e.s=5824)),_N_E=e.O()}]);
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.