From c6d081b40163b6f63cb22c9a860b6713c4edca4f Mon Sep 17 00:00:00 2001 From: a-bochilo <103776395+a-bochilo@users.noreply.github.com> Date: Mon, 1 Jul 2024 15:41:37 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20master=20from=20@=20CodeCavePr?= =?UTF-8?q?o/codecave.pro-new@6fe8c95dc7372079e731f8e13dc0e84a3c092f5b=20?= =?UTF-8?q?=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 8 ++++---- 404/index.html | 8 ++++---- ...c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js | 6 +++--- ...2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js.map | 1 + ...2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js.map | 1 - _gatsby/slices/_gatsby-scripts-1.html | 4 ++-- blog/10582553-73a2-569f-8bdd-980e1f77c10a/index.html | 8 ++++---- blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html | 8 ++++---- blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html | 8 ++++---- blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html | 8 ++++---- blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html | 8 ++++---- blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html | 8 ++++---- blog/articlename/index.html | 8 ++++---- blog/articlename/page/1/index.html | 8 ++++---- blog/articlename/page/2/index.html | 8 ++++---- blog/azure-devops/index.html | 8 ++++---- blog/azure-devops/page/1/index.html | 8 ++++---- blog/azure/index.html | 8 ++++---- blog/azure/page/1/index.html | 8 ++++---- blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/index.html | 8 ++++---- blog/changelog/index.html | 8 ++++---- blog/changelog/page/1/index.html | 8 ++++---- blog/cloud-init/index.html | 8 ++++---- blog/cloud-init/page/1/index.html | 8 ++++---- blog/confluence/index.html | 8 ++++---- blog/confluence/page/1/index.html | 8 ++++---- blog/devops/index.html | 8 ++++---- blog/devops/page/1/index.html | 8 ++++---- blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/index.html | 8 ++++---- blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html | 8 ++++---- blog/hashtag/index.html | 8 ++++---- blog/hashtag/page/1/index.html | 8 ++++---- blog/importanttopick/index.html | 8 ++++---- blog/importanttopick/page/1/index.html | 8 ++++---- blog/importanttopick/page/2/index.html | 8 ++++---- blog/index.html | 8 ++++---- blog/keywordlong/index.html | 8 ++++---- blog/keywordlong/page/1/index.html | 8 ++++---- blog/page/1/index.html | 8 ++++---- blog/page/2/index.html | 8 ++++---- blog/podryabinkina/index.html | 8 ++++---- blog/podryabinkina/page/1/index.html | 8 ++++---- blog/post/index.html | 8 ++++---- blog/post/page/1/index.html | 8 ++++---- blog/post/page/2/index.html | 8 ++++---- blog/proxmox/index.html | 8 ++++---- blog/proxmox/page/1/index.html | 8 ++++---- blog/self-hosted-build-agent/index.html | 8 ++++---- blog/self-hosted-build-agent/page/1/index.html | 8 ++++---- blog/virtualization/index.html | 8 ++++---- blog/virtualization/page/1/index.html | 8 ++++---- blog/vm/index.html | 8 ++++---- blog/vm/page/1/index.html | 8 ++++---- blog/zhmayev/index.html | 8 ++++---- blog/zhmayev/page/1/index.html | 8 ++++---- blog/zhmayev/page/2/index.html | 8 ++++---- chunk-map.json | 2 +- ...pages-templates-index-tsx-dd8623d9c743ca99433e.js | 2 -- ...s-templates-index-tsx-dd8623d9c743ca99433e.js.map | 1 - ...pages-templates-index-tsx-e4ea008035e9a749aaaa.js | 2 ++ ...s-templates-index-tsx-e4ea008035e9a749aaaa.js.map | 1 + ...es-templates-services-tsx-855dcb43c3da2e141f61.js | 2 -- ...es-templates-services-tsx-aa958a39a562031be9ac.js | 2 ++ ...emplates-services-tsx-aa958a39a562031be9ac.js.map | 2 +- ...es-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js | 2 -- ...emplates-workflow-tsx-2a0b9d534d2f2fd33ad1.js.map | 1 - ...es-templates-workflow-tsx-fabfa47493cd522f5d7c.js | 2 ++ ...emplates-workflow-tsx-fabfa47493cd522f5d7c.js.map | 1 + cookie-policy/index.html | 8 ++++---- index.html | 12 ++++++------ page-data/app-data.json | 2 +- privacy-policy/index.html | 8 ++++---- .../08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html | 8 ++++---- .../4010b091-889b-5be1-ab5a-bde195aa7729/index.html | 8 ++++---- .../9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html | 8 ++++---- .../f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html | 8 ++++---- .../ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html | 8 ++++---- projects/index.html | 8 ++++---- projects/page/1/index.html | 8 ++++---- services/index.html | 10 +++++----- styles.89e9083ed75b4db019db.css | 3 +++ styles.b87d930069bb5bdcd9f9.css | 3 --- ...05c.js => webpack-runtime-cc6cf993fdfec1422f40.js | 4 ++-- ...ap => webpack-runtime-cc6cf993fdfec1422f40.js.map | 2 +- webpack.stats.json | 2 +- workflow/index.html | 10 +++++----- 86 files changed, 284 insertions(+), 284 deletions(-) rename 71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js => 71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js (84%) create mode 100644 71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js.map delete mode 100644 71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js.map delete mode 100644 component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js delete mode 100644 component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js.map create mode 100644 component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js create mode 100644 component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js.map delete mode 100644 component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js create mode 100644 component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js rename component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js.map => component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js.map (86%) delete mode 100644 component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js delete mode 100644 component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js.map create mode 100644 component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js create mode 100644 component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js.map create mode 100644 styles.89e9083ed75b4db019db.css delete mode 100644 styles.b87d930069bb5bdcd9f9.css rename webpack-runtime-cf5c87e3b6d887b1005c.js => webpack-runtime-cc6cf993fdfec1422f40.js (92%) rename webpack-runtime-cf5c87e3b6d887b1005c.js.map => webpack-runtime-cc6cf993fdfec1422f40.js.map (97%) diff --git a/404.html b/404.html index 2c9b37d6..ba47259a 100644 --- a/404.html +++ b/404.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/404/index.html b/404/index.html index 9d8d0f9a..f85b1e30 100644 --- a/404/index.html +++ b/404/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js b/71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js similarity index 84% rename from 71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js rename to 71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js index 7c0f9b08..f129a811 100644 --- a/71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js +++ b/71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js @@ -1,4 +1,4 @@ -(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[577],{1929:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(7294),a=n(8032),o=n(4471),i=n.n(o),l=n(1164);var s=e=>{let{className:t}=e;return r.createElement("div",{className:`flex justify-center items-center h-full w-full ${t}`},r.createElement("svg",{"aria-hidden":"true",className:"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r.createElement("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),r.createElement("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})))};var c=()=>{const{0:e,1:t}=(0,r.useState)(!1),a=(0,r.useRef)(!0),o=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(!a.current||!o.current||"undefined"==typeof window)return;a.current=!1;const e=new Worker(new URL(n.p+n.u(475),n.b),{type:void 0});e.onmessage=e=>{let{data:n}=e;"ready"===n&&t(!0)};const r=o.current;r.width=r.clientWidth,r.height=r.clientHeight;const i=r.transferControlToOffscreen();e.postMessage({canvas:i},[i]);const l=()=>{e.postMessage({width:r.clientWidth,height:r.clientHeight})};window.addEventListener("resize",l,{passive:!0});const s=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};r.addEventListener("wheel",s);const c=t=>{e.postMessage({x:t.movementX,y:t.movementY})};r.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",c,{passive:!0}),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",c)),{once:!0,passive:!0})}));let u;return r.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const n=t.touches[0];t.preventDefault();const r={x:n.screenX,y:n.screenY};u=t=>{const{newX:n,newY:a}=((t,n)=>{const r=t.touches[0];return e.postMessage({x:r.screenX-n.x,y:r.screenY-n.y}),{newX:r.screenX,newY:r.screenY}})(t,r);r.x=n,r.y=a},window.addEventListener("touchmove",u,{passive:!0}),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",u)}),{passive:!0})}),{passive:!0}),()=>{window&&(window.removeEventListener("resize",l),window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",u),r&&r.removeEventListener("wheel",s),e.terminate())}}),[]),r.createElement("div",{className:"h-full w-full relative"},r.createElement("canvas",{ref:o,className:"bg-main-100 h-91 w-full flex items-center justify-center cursor-pointer"}),e?null:r.createElement(s,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var u=e=>{let{heightClass:t="min-h-91",title:n,className:o,borderBottom:s,borderTop:u,babylon:d,image:p,titleBlockClassName:m,children:h}=e;const{0:f,1:v}=(0,r.useState)("translate-y-full");return(0,r.useEffect)((()=>{v("translate-y-0")}),[]),r.createElement("div",{className:`w-full flex items-center bg-main-100 relative overflow-hidden ${t} ${o}`},u?r.createElement(i(),{className:"absolute top-0 left-0 right-0 w-full"}):null,r.createElement(l.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center justify-between text-secondary-100 flex-grow gap-y-8"},r.createElement("div",{className:`flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full ${m||"lg:w-1/2"} bg-main-100`},r.createElement("h1",{className:"overflow-hidden w-full"},r.createElement("span",{className:`banner-title inline-block text-3xl lg:text-4xl w-full text-center lg:text-start transition-all duration-1000 font-light ${f}`},n))),d?r.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full hidden md:flex -order-1 lg:order-none"},r.createElement(c,null)):null,p?r.createElement("div",{className:"w-[220px] lg:w-1/2 lg:h-full flex justify-center lg:justify-end items-center -order-1 lg:order-none"},r.createElement(a.G,{image:p,alt:"cover",className:"object-contain aspect-square"})):null,h?r.createElement("div",{className:"w-full lg:h-full flex justify-center lg:justify-start items-center"},h):null),s?r.createElement(i(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},577:function(e,t,n){"use strict";n.d(t,{Z:function(){return He}});var r=n(7294),a=n(4160),o=n(7536),i=n(2305),l=n(2518),s=n(1213),c=n(7356),u=n(2359),d=n(3072),p=n(2531),m=n(1178),h=n(3366),f=n(7462),v=n(512),b=n(8510),g=n(2101),x=n(948),y=n(4136),w=n(1657),E=n(9773),k=n(1705),Z=n(2010).Z,C=n(8849);let R=!0,M=!1;const N=new C.V,L={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function $(e){e.metaKey||e.altKey||e.ctrlKey||(R=!0)}function P(){R=!1}function S(){"hidden"===this.visibilityState&&M&&(R=!0)}function T(e){const{target:t}=e;try{return t.matches(":focus-visible")}catch(n){}return R||function(e){const{type:t,tagName:n}=e;return!("INPUT"!==n||!L[t]||e.readOnly)||"TEXTAREA"===n&&!e.readOnly||!!e.isContentEditable}(t)}var F=function(){const e=r.useCallback((e=>{var t;null!=e&&((t=e.ownerDocument).addEventListener("keydown",$,!0),t.addEventListener("mousedown",P,!0),t.addEventListener("pointerdown",P,!0),t.addEventListener("touchstart",P,!0),t.addEventListener("visibilitychange",S,!0))}),[]),t=r.useRef(!1);return{isFocusVisibleRef:t,onFocus:function(e){return!!T(e)&&(t.current=!0,!0)},onBlur:function(){return!!t.current&&(M=!0,N.start(100,(()=>{M=!1})),t.current=!1,!0)},ref:e}};var j=n(1721),V=n(220);function I(e,t){var n=Object.create(null);return e&&r.Children.map(e,(function(e){return e})).forEach((function(e){n[e.key]=function(e){return t&&(0,r.isValidElement)(e)?t(e):e}(e)})),n}function O(e,t,n){return null!=n[t]?n[t]:e.props[t]}function z(e,t,n){var a=I(e.children),o=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var r,a=Object.create(null),o=[];for(var i in e)i in t?o.length&&(a[i]=o,o=[]):o.push(i);var l={};for(var s in t){if(a[s])for(r=0;r{if(!s&&null!=c){const e=setTimeout(c,u);return()=>{clearTimeout(e)}}}),[c,s,u]),(0,H.jsx)("span",{className:m,style:h,children:(0,H.jsx)("span",{className:f})})},Y=n(1977);var q=(0,Y.Z)("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]);const K=["center","classes","className"];let A,G,_,J,Q=e=>e;const ee=(0,X.F4)(A||(A=Q` +(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[577],{1929:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(7294),a=n(8032),o=n(4471),i=n.n(o),l=n(1164);var s=e=>{let{className:t}=e;return r.createElement("div",{className:`flex justify-center items-center h-full w-full ${t}`},r.createElement("svg",{"aria-hidden":"true",className:"w-8 h-8 mr-2 text-main-10 animate-spin dark:text-secondary-10 fill-main-100",viewBox:"0 0 100 101",fill:"none",xmlns:"http://www.w3.org/2000/svg"},r.createElement("path",{d:"M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z",fill:"currentColor"}),r.createElement("path",{d:"M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z",fill:"currentFill"})))};var c=()=>{const{0:e,1:t}=(0,r.useState)(!1),a=(0,r.useRef)(!0),o=(0,r.useRef)(null);return(0,r.useEffect)((()=>{if(!a.current||!o.current||"undefined"==typeof window)return;a.current=!1;const e=new Worker(new URL(n.p+n.u(475),n.b),{type:void 0});e.onmessage=e=>{let{data:n}=e;"ready"===n&&t(!0)};const r=o.current;r.width=r.clientWidth,r.height=r.clientHeight;const i=r.transferControlToOffscreen();e.postMessage({canvas:i},[i]);const l=()=>{e.postMessage({width:r.clientWidth,height:r.clientHeight})};window.addEventListener("resize",l,{passive:!0});const s=t=>{t.preventDefault(),e.postMessage({wheel:t.deltaY})};r.addEventListener("wheel",s);const c=t=>{e.postMessage({x:t.movementX,y:t.movementY})};r.addEventListener("mousedown",(e=>{e.preventDefault(),window.addEventListener("mousemove",c,{passive:!0}),window.addEventListener("mouseup",(()=>window.removeEventListener("mousemove",c)),{once:!0,passive:!0})}));let u;return r.addEventListener("touchstart",(t=>{if(1!==t.touches.length)return;const n=t.touches[0];t.preventDefault();const r={x:n.screenX,y:n.screenY};u=t=>{const{newX:n,newY:a}=((t,n)=>{const r=t.touches[0];return e.postMessage({x:r.screenX-n.x,y:r.screenY-n.y}),{newX:r.screenX,newY:r.screenY}})(t,r);r.x=n,r.y=a},window.addEventListener("touchmove",u,{passive:!0}),window.addEventListener("touchend",(()=>{window.removeEventListener("touchmove",u)}),{passive:!0})}),{passive:!0}),()=>{window&&(window.removeEventListener("resize",l),window.removeEventListener("mousemove",c),window.removeEventListener("touchmove",u),r&&r.removeEventListener("wheel",s),e.terminate())}}),[]),r.createElement("div",{className:"h-full w-full relative"},r.createElement("canvas",{ref:o,className:"bg-main-100 h-91 w-full flex items-center justify-center cursor-pointer"}),e?null:r.createElement(s,{className:"absolute top-0 left-0 right-0 bottom-0 z-10"}))};var u=e=>{let{heightClass:t="min-h-91",title:n,className:o,borderBottom:s,borderTop:u,babylon:d,image:p,titleBlockClassName:m,children:h}=e;const{0:f,1:v}=(0,r.useState)("translate-y-full");return(0,r.useEffect)((()=>{v("translate-y-0")}),[]),r.createElement("div",{className:`w-full flex items-center bg-main-100 relative overflow-hidden ${t} ${o}`},u?r.createElement(i(),{className:"absolute top-0 left-0 right-0 w-full"}):null,r.createElement(l.Z,{className:"h-full flex flex-col lg:flex-row py-12 lg:py-0 items-center justify-between text-secondary-100 flex-grow gap-y-8"},r.createElement("div",{className:`flex flex-col overflow-hidden items-left h-full justify-center text-secondary-100 h-full w-full ${m||"lg:w-1/2"} bg-main-100`},r.createElement("h1",{className:"overflow-hidden w-full"},r.createElement("span",{className:`banner-title inline-block text-3xl lg:text-4xl w-full text-center lg:text-start transition-all duration-1000 font-light ${f}`},n))),d?r.createElement("div",{className:"w-[85%] lg:w-1/2 lg:h-full hidden md:flex -order-1 lg:order-none"},r.createElement(c,null)):null,p?r.createElement("div",{className:"w-[220px] lg:w-1/2 lg:h-full flex justify-center lg:justify-end items-center -order-1 lg:order-none"},r.createElement(a.G,{image:p,alt:"cover",className:"object-contain aspect-square"})):null,h?r.createElement("div",{className:"w-full lg:h-full flex justify-center lg:justify-start items-center"},h):null),s?r.createElement(i(),{className:"absolute bottom-0 left-0 right-0 w-full"}):null)}},4532:function(e,t,n){"use strict";n.d(t,{Z:function(){return He}});var r=n(7294),a=n(4160),o=n(7536),i=n(2305),l=n(2518),s=n(1213),c=n(7356),u=n(2359),d=n(3072),p=n(2531),m=n(1178),h=n(3366),f=n(7462),v=n(512),b=n(8510),g=n(2101),x=n(948),y=n(4136),w=n(1657),E=n(9773),k=n(1705),Z=n(2010).Z,C=n(8849);let R=!0,M=!1;const N=new C.V,L={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function $(e){e.metaKey||e.altKey||e.ctrlKey||(R=!0)}function P(){R=!1}function S(){"hidden"===this.visibilityState&&M&&(R=!0)}function T(e){const{target:t}=e;try{return t.matches(":focus-visible")}catch(n){}return R||function(e){const{type:t,tagName:n}=e;return!("INPUT"!==n||!L[t]||e.readOnly)||"TEXTAREA"===n&&!e.readOnly||!!e.isContentEditable}(t)}var F=function(){const e=r.useCallback((e=>{var t;null!=e&&((t=e.ownerDocument).addEventListener("keydown",$,!0),t.addEventListener("mousedown",P,!0),t.addEventListener("pointerdown",P,!0),t.addEventListener("touchstart",P,!0),t.addEventListener("visibilitychange",S,!0))}),[]),t=r.useRef(!1);return{isFocusVisibleRef:t,onFocus:function(e){return!!T(e)&&(t.current=!0,!0)},onBlur:function(){return!!t.current&&(M=!0,N.start(100,(()=>{M=!1})),t.current=!1,!0)},ref:e}};var j=n(1721),V=n(220);function I(e,t){var n=Object.create(null);return e&&r.Children.map(e,(function(e){return e})).forEach((function(e){n[e.key]=function(e){return t&&(0,r.isValidElement)(e)?t(e):e}(e)})),n}function O(e,t,n){return null!=n[t]?n[t]:e.props[t]}function z(e,t,n){var a=I(e.children),o=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var r,a=Object.create(null),o=[];for(var i in e)i in t?o.length&&(a[i]=o,o=[]):o.push(i);var l={};for(var s in t){if(a[s])for(r=0;r{if(!s&&null!=c){const e=setTimeout(c,u);return()=>{clearTimeout(e)}}}),[c,s,u]),(0,H.jsx)("span",{className:m,style:h,children:(0,H.jsx)("span",{className:f})})},Y=n(1977);var q=(0,Y.Z)("MuiTouchRipple",["root","ripple","rippleVisible","ripplePulsate","child","childLeaving","childPulsate"]);const K=["center","classes","className"];let A,G,_,J,Q=e=>e;const ee=(0,X.F4)(A||(A=Q` 0% { transform: scale(0); opacity: 0.1; @@ -71,5 +71,5 @@ animation-iteration-count: infinite; animation-delay: 200ms; } -`),q.rippleVisible,ee,550,(({theme:e})=>e.transitions.easing.easeInOut),q.ripplePulsate,(({theme:e})=>e.transitions.duration.shorter),q.child,q.childLeaving,te,550,(({theme:e})=>e.transitions.easing.easeInOut),q.childPulsate,ne,(({theme:e})=>e.transitions.easing.easeInOut));var oe=r.forwardRef((function(e,t){const n=(0,w.Z)({props:e,name:"MuiTouchRipple"}),{center:a=!1,classes:o={},className:i}=n,l=(0,h.Z)(n,K),[s,c]=r.useState([]),u=r.useRef(0),d=r.useRef(null);r.useEffect((()=>{d.current&&(d.current(),d.current=null)}),[s]);const p=r.useRef(!1),m=(0,C.Z)(),b=r.useRef(null),g=r.useRef(null),x=r.useCallback((e=>{const{pulsate:t,rippleX:n,rippleY:r,rippleSize:a,cb:i}=e;c((e=>[...e,(0,H.jsx)(ae,{classes:{ripple:(0,v.Z)(o.ripple,q.ripple),rippleVisible:(0,v.Z)(o.rippleVisible,q.rippleVisible),ripplePulsate:(0,v.Z)(o.ripplePulsate,q.ripplePulsate),child:(0,v.Z)(o.child,q.child),childLeaving:(0,v.Z)(o.childLeaving,q.childLeaving),childPulsate:(0,v.Z)(o.childPulsate,q.childPulsate)},timeout:550,pulsate:t,rippleX:n,rippleY:r,rippleSize:a},u.current)])),u.current+=1,d.current=i}),[o]),y=r.useCallback(((e={},t={},n=(()=>{}))=>{const{pulsate:r=!1,center:o=a||t.pulsate,fakeElement:i=!1}=t;if("mousedown"===(null==e?void 0:e.type)&&p.current)return void(p.current=!1);"touchstart"===(null==e?void 0:e.type)&&(p.current=!0);const l=i?null:g.current,s=l?l.getBoundingClientRect():{width:0,height:0,left:0,top:0};let c,u,d;if(o||void 0===e||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)c=Math.round(s.width/2),u=Math.round(s.height/2);else{const{clientX:t,clientY:n}=e.touches&&e.touches.length>0?e.touches[0]:e;c=Math.round(t-s.left),u=Math.round(n-s.top)}if(o)d=Math.sqrt((2*s.width**2+s.height**2)/3),d%2==0&&(d+=1);else{const e=2*Math.max(Math.abs((l?l.clientWidth:0)-c),c)+2,t=2*Math.max(Math.abs((l?l.clientHeight:0)-u),u)+2;d=Math.sqrt(e**2+t**2)}null!=e&&e.touches?null===b.current&&(b.current=()=>{x({pulsate:r,rippleX:c,rippleY:u,rippleSize:d,cb:n})},m.start(80,(()=>{b.current&&(b.current(),b.current=null)}))):x({pulsate:r,rippleX:c,rippleY:u,rippleSize:d,cb:n})}),[a,x,m]),E=r.useCallback((()=>{y({},{pulsate:!0})}),[y]),k=r.useCallback(((e,t)=>{if(m.clear(),"touchend"===(null==e?void 0:e.type)&&b.current)return b.current(),b.current=null,void m.start(0,(()=>{k(e,t)}));b.current=null,c((e=>e.length>0?e.slice(1):e)),d.current=t}),[m]);return r.useImperativeHandle(t,(()=>({pulsate:E,start:y,stop:k})),[E,y,k]),(0,H.jsx)(re,(0,f.Z)({className:(0,v.Z)(q.root,o.root,i),ref:g},l,{children:(0,H.jsx)(W,{component:null,exit:!0,children:s})}))})),ie=n(3559);function le(e){return(0,ie.ZP)("MuiButtonBase",e)}var se=(0,Y.Z)("MuiButtonBase",["root","disabled","focusVisible"]);const ce=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],ue=(0,x.ZP)("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${se.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),de=r.forwardRef((function(e,t){const n=(0,w.Z)({props:e,name:"MuiButtonBase"}),{action:a,centerRipple:o=!1,children:i,className:l,component:s="button",disabled:c=!1,disableRipple:u=!1,disableTouchRipple:d=!1,focusRipple:p=!1,LinkComponent:m="a",onBlur:g,onClick:x,onContextMenu:y,onDragLeave:E,onFocus:C,onFocusVisible:R,onKeyDown:M,onKeyUp:N,onMouseDown:L,onMouseLeave:$,onMouseUp:P,onTouchEnd:S,onTouchMove:T,onTouchStart:j,tabIndex:V=0,TouchRippleProps:I,touchRippleRef:O,type:z}=n,B=(0,h.Z)(n,ce),D=r.useRef(null),W=r.useRef(null),X=(0,k.Z)(W,O),{isFocusVisibleRef:U,onFocus:Y,onBlur:q,ref:K}=F(),[A,G]=r.useState(!1);c&&A&&G(!1),r.useImperativeHandle(a,(()=>({focusVisible:()=>{G(!0),D.current.focus()}})),[]);const[_,J]=r.useState(!1);r.useEffect((()=>{J(!0)}),[]);const Q=_&&!u&&!c;function ee(e,t,n=d){return Z((r=>{t&&t(r);return!n&&W.current&&W.current[e](r),!0}))}r.useEffect((()=>{A&&p&&!u&&_&&W.current.pulsate()}),[u,p,A,_]);const te=ee("start",L),ne=ee("stop",y),re=ee("stop",E),ae=ee("stop",P),ie=ee("stop",(e=>{A&&e.preventDefault(),$&&$(e)})),se=ee("start",j),de=ee("stop",S),pe=ee("stop",T),me=ee("stop",(e=>{q(e),!1===U.current&&G(!1),g&&g(e)}),!1),he=Z((e=>{D.current||(D.current=e.currentTarget),Y(e),!0===U.current&&(G(!0),R&&R(e)),C&&C(e)})),fe=()=>{const e=D.current;return s&&"button"!==s&&!("A"===e.tagName&&e.href)},ve=r.useRef(!1),be=Z((e=>{p&&!ve.current&&A&&W.current&&" "===e.key&&(ve.current=!0,W.current.stop(e,(()=>{W.current.start(e)}))),e.target===e.currentTarget&&fe()&&" "===e.key&&e.preventDefault(),M&&M(e),e.target===e.currentTarget&&fe()&&"Enter"===e.key&&!c&&(e.preventDefault(),x&&x(e))})),ge=Z((e=>{p&&" "===e.key&&W.current&&A&&!e.defaultPrevented&&(ve.current=!1,W.current.stop(e,(()=>{W.current.pulsate(e)}))),N&&N(e),x&&e.target===e.currentTarget&&fe()&&" "===e.key&&!e.defaultPrevented&&x(e)}));let xe=s;"button"===xe&&(B.href||B.to)&&(xe=m);const ye={};"button"===xe?(ye.type=void 0===z?"button":z,ye.disabled=c):(B.href||B.to||(ye.role="button"),c&&(ye["aria-disabled"]=c));const we=(0,k.Z)(t,K,D);const Ee=(0,f.Z)({},n,{centerRipple:o,component:s,disabled:c,disableRipple:u,disableTouchRipple:d,focusRipple:p,tabIndex:V,focusVisible:A}),ke=(e=>{const{disabled:t,focusVisible:n,focusVisibleClassName:r,classes:a}=e,o={root:["root",t&&"disabled",n&&"focusVisible"]},i=(0,b.Z)(o,le,a);return n&&r&&(i.root+=` ${r}`),i})(Ee);return(0,H.jsxs)(ue,(0,f.Z)({as:xe,className:(0,v.Z)(ke.root,l),ownerState:Ee,onBlur:me,onClick:x,onContextMenu:ne,onFocus:he,onKeyDown:be,onKeyUp:ge,onMouseDown:te,onMouseLeave:ie,onMouseUp:ae,onDragLeave:re,onTouchEnd:de,onTouchMove:pe,onTouchStart:se,ref:we,tabIndex:c?-1:V,type:z},ye,B,{children:[i,Q?(0,H.jsx)(oe,(0,f.Z)({ref:X,center:o},I)):null]}))}));var pe=de,me=n(8974);var he=(0,Y.Z)("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]);var fe=(0,Y.Z)("MuiListItemIcon",["root","alignItemsFlexStart"]);var ve=(0,Y.Z)("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]);function be(e){return(0,ie.ZP)("MuiMenuItem",e)}var ge=(0,Y.Z)("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]);const xe=["autoFocus","component","dense","divider","disableGutters","focusVisibleClassName","role","tabIndex","className"],ye=(0,x.ZP)(pe,{shouldForwardProp:e=>(0,y.Z)(e)||"classes"===e,name:"MuiMenuItem",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]}})((({theme:e,ownerState:t})=>(0,f.Z)({},e.typography.body1,{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap"},!t.disableGutters&&{paddingLeft:16,paddingRight:16},t.divider&&{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"},{"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ge.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,g.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${ge.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,g.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`&.${ge.selected}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,g.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,g.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${ge.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${ge.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${he.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${he.inset}`]:{marginLeft:52},[`& .${ve.root}`]:{marginTop:0,marginBottom:0},[`& .${ve.inset}`]:{paddingLeft:36},[`& .${fe.root}`]:{minWidth:36}},!t.dense&&{[e.breakpoints.up("sm")]:{minHeight:"auto"}},t.dense&&(0,f.Z)({minHeight:32,paddingTop:4,paddingBottom:4},e.typography.body2,{[`& .${fe.root} svg`]:{fontSize:"1.25rem"}}))));var we=r.forwardRef((function(e,t){const n=(0,w.Z)({props:e,name:"MuiMenuItem"}),{autoFocus:a=!1,component:o="li",dense:i=!1,divider:l=!1,disableGutters:s=!1,focusVisibleClassName:c,role:u="menuitem",tabIndex:d,className:p}=n,m=(0,h.Z)(n,xe),g=r.useContext(E.Z),x=r.useMemo((()=>({dense:i||g.dense||!1,disableGutters:s})),[g.dense,i,s]),y=r.useRef(null);(0,me.Z)((()=>{a&&y.current&&y.current.focus()}),[a]);const Z=(0,f.Z)({},n,{dense:x.dense,divider:l,disableGutters:s}),C=(e=>{const{disabled:t,dense:n,divider:r,disableGutters:a,selected:o,classes:i}=e,l={root:["root",n&&"dense",t&&"disabled",!a&&"gutters",r&&"divider",o&&"selected"]},s=(0,b.Z)(l,be,i);return(0,f.Z)({},i,s)})(n),R=(0,k.Z)(y,t);let M;return n.disabled||(M=void 0!==d?d:-1),(0,H.jsx)(E.Z.Provider,{value:x,children:(0,H.jsx)(ye,(0,f.Z)({ref:R,role:u,tabIndex:M,component:o,focusVisibleClassName:(0,v.Z)(C.focusVisible,c),className:(0,v.Z)(C.root,p)},m,{ownerState:Z,classes:C}))})})),Ee=n(8216),ke=n(1529),Ze=n(4423);function Ce(e){return(0,ie.ZP)("PrivateSwitchBase",e)}(0,Y.Z)("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const Re=["autoFocus","checked","checkedIcon","className","defaultChecked","disabled","disableFocusRipple","edge","icon","id","inputProps","inputRef","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"],Me=(0,x.ZP)(pe)((({ownerState:e})=>(0,f.Z)({padding:9,borderRadius:"50%"},"start"===e.edge&&{marginLeft:"small"===e.size?-3:-12},"end"===e.edge&&{marginRight:"small"===e.size?-3:-12}))),Ne=(0,x.ZP)("input",{shouldForwardProp:y.Z})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1});var Le=r.forwardRef((function(e,t){const{autoFocus:n,checked:r,checkedIcon:a,className:o,defaultChecked:i,disabled:l,disableFocusRipple:s=!1,edge:c=!1,icon:u,id:d,inputProps:p,inputRef:m,name:g,onBlur:x,onChange:y,onFocus:w,readOnly:E,required:k=!1,tabIndex:Z,type:C,value:R}=e,M=(0,h.Z)(e,Re),[N,L]=(0,ke.Z)({controlled:r,default:Boolean(i),name:"SwitchBase",state:"checked"}),$=(0,Ze.Z)();let P=l;$&&void 0===P&&(P=$.disabled);const S="checkbox"===C||"radio"===C,T=(0,f.Z)({},e,{checked:N,disabled:P,disableFocusRipple:s,edge:c}),F=(e=>{const{classes:t,checked:n,disabled:r,edge:a}=e,o={root:["root",n&&"checked",r&&"disabled",a&&`edge${(0,Ee.Z)(a)}`],input:["input"]};return(0,b.Z)(o,Ce,t)})(T);return(0,H.jsxs)(Me,(0,f.Z)({component:"span",className:(0,v.Z)(F.root,o),centerRipple:!0,focusRipple:!s,disabled:P,tabIndex:null,role:void 0,onFocus:e=>{w&&w(e),$&&$.onFocus&&$.onFocus(e)},onBlur:e=>{x&&x(e),$&&$.onBlur&&$.onBlur(e)},ownerState:T,ref:t},M,{children:[(0,H.jsx)(Ne,(0,f.Z)({autoFocus:n,checked:r,defaultChecked:i,className:F.input,disabled:P,id:S?d:void 0,name:g,onChange:e=>{if(e.nativeEvent.defaultPrevented)return;const t=e.target.checked;L(t),y&&y(e,t)},readOnly:E,ref:m,required:k,ownerState:T,tabIndex:Z,type:C},"checkbox"===C&&void 0===R?{}:{value:R},p)),N?a:u]}))})),$e=n(5949),Pe=(0,$e.Z)((0,H.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),Se=(0,$e.Z)((0,H.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),Te=(0,$e.Z)((0,H.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function Fe(e){return(0,ie.ZP)("MuiCheckbox",e)}var je=(0,Y.Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]);const Ve=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size","className"],Ie=(0,x.ZP)(Le,{shouldForwardProp:e=>(0,y.Z)(e)||"classes"===e,name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${(0,Ee.Z)(n.size)}`],"default"!==n.color&&t[`color${(0,Ee.Z)(n.color)}`]]}})((({theme:e,ownerState:t})=>(0,f.Z)({color:(e.vars||e).palette.text.secondary},!t.disableRipple&&{"&:hover":{backgroundColor:e.vars?`rgba(${"default"===t.color?e.vars.palette.action.activeChannel:e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,g.Fq)("default"===t.color?e.palette.action.active:e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==t.color&&{[`&.${je.checked}, &.${je.indeterminate}`]:{color:(e.vars||e).palette[t.color].main},[`&.${je.disabled}`]:{color:(e.vars||e).palette.action.disabled}}))),Oe=(0,H.jsx)(Se,{}),ze=(0,H.jsx)(Pe,{}),Be=(0,H.jsx)(Te,{});var De=r.forwardRef((function(e,t){var n,a;const o=(0,w.Z)({props:e,name:"MuiCheckbox"}),{checkedIcon:i=Oe,color:l="primary",icon:s=ze,indeterminate:c=!1,indeterminateIcon:u=Be,inputProps:d,size:p="medium",className:m}=o,g=(0,h.Z)(o,Ve),x=c?u:s,y=c?u:i,E=(0,f.Z)({},o,{color:l,indeterminate:c,size:p}),k=(e=>{const{classes:t,indeterminate:n,color:r,size:a}=e,o={root:["root",n&&"indeterminate",`color${(0,Ee.Z)(r)}`,`size${(0,Ee.Z)(a)}`]},i=(0,b.Z)(o,Fe,t);return(0,f.Z)({},t,i)})(E);return(0,H.jsx)(Ie,(0,f.Z)({type:"checkbox",inputProps:(0,f.Z)({"data-indeterminate":c},d),icon:r.cloneElement(x,{fontSize:null!=(n=x.props.fontSize)?n:p}),checkedIcon:r.cloneElement(y,{fontSize:null!=(a=y.props.fontSize)?a:p}),ownerState:E,ref:t,className:(0,v.Z)(k.root,m)},g,{classes:k}))}));var We=e=>{var t,n,a;let{markup:h,validationMarkup:f}=e;const{0:v,1:b}=(0,r.useState)(!1),{0:g,1:x}=(0,r.useState)(!0),{register:y,handleSubmit:w,control:E,reset:k,formState:{errors:Z,isValid:C}}=(0,o.cI)({mode:"onBlur",resolver:(0,i.X)(s.h),defaultValues:{consentToProcess:!0}}),R=(e,t,n,a)=>{var o;return r.createElement(m.sc,Object.assign({id:e,label:t,variant:"outlined",error:!(null===(o=Z[e])||void 0===o||!o.message),helperText:(0,d.OZ)(e,Z,f),"aria-label":e,fullWidth:!0,multiline:n,rows:a,size:"small"},y(e)))};return r.createElement("form",{onSubmit:w((async e=>{if(!C)return;b(!0);const t=(0,c.e)("hubspotutk"),n=(0,d.WU)(e,t);try{200===(await u.l.post("/3eae609c-bcf2-47f4-ad93-11a65c4b4f9d",n)).status&&k()}catch(o){var r,a;console.log("request err>>",null===(r=o.response)||void 0===r||null===(a=r.data)||void 0===a?void 0:a.message)}b(!1)})),className:"flex-1 flex flex-col gap-2.5"},R("email",h.emailLabel),R("company",h.companyNameLabel),R("firstname",h.nameLabel),r.createElement(m.sc,Object.assign({id:"services",label:h.servicesLabel,variant:"outlined",select:!0,defaultValue:"",error:!(null===(t=Z.services)||void 0===t||!t.message),helperText:(0,d.OZ)("services",Z,f),"aria-label":"services",fullWidth:!0,size:"small"},y("services")),Object.values(l.U5).map((e=>r.createElement(we,{key:e,value:e},h.servicesOptions[e])))),r.createElement(m.sc,Object.assign({id:"budget",label:h.budgetLabel,variant:"outlined",select:!0,defaultValue:"",error:!(null===(n=Z.budget)||void 0===n||!n.message),helperText:(0,d.OZ)("budget",Z,f),"aria-label":"budget",fullWidth:!0,size:"small"},y("budget")),Object.values(l.D9).map((e=>r.createElement(we,{key:e,value:e},h.budgetOptions[e])))),R("describe_your_project",h.descriptionLabel,!0,5),r.createElement(o.Qr,{control:E,name:"consentToProcess",render:e=>{let{field:{onChange:t,ref:n,value:a}}=e;return r.createElement(m.J$,{control:r.createElement(De,{id:"consentToProcess",checked:a,onChange:e=>{t(e),x(!!e.target.checked)},sx:{color:g?"#111":"#D32F2F","&.Mui-checked":{color:"#111"}},inputRef:n}),label:h.privacyPolicyCheckboxLabel,"aria-label":"consentToProcess",sx:{marginTop:"10px"}})}}),null!==(a=Z.consentToProcess)&&void 0!==a&&a.message||!g?r.createElement("p",{className:"text-[10.5px] text-[#D32F2F] ml-3"},null==f?void 0:f.consent):null,r.createElement(m.J$,{control:r.createElement(De,{defaultChecked:!0,sx:{color:"#111","&.Mui-checked":{color:"#111"}}}),label:h.adsCheckboxLabel,"aria-label":"adsCheckboxLabel"}),r.createElement("div",{className:"flex items-center justify-center pt-5 text-main-100"},r.createElement("button",{type:"submit",disabled:v||!g,className:"px-0 sm:px-5 md:px-6 font-bold whitespace-nowrap rounded-lg mx-0 text-secondary-100 h-12 flex items-center justify-center disabled:bg-main-70 hover:bg-main-70 px-6 relative "+(v?"bg-main-70":"bg-main-100")},v?r.createElement(p.Z,null):null,r.createElement("span",{className:"z-20"},h.buttonLabel.toUpperCase()))))},Xe=n(1164);var He=e=>{var t,n,o,i,l,s,c,u,d;let{lang:p}=e;const m=(0,a.K2)(Ue),h=null==m||null===(t=m.markupData)||void 0===t||null===(n=t.nodes)||void 0===n||null===(o=n.find((e=>e.fields.language===p)))||void 0===o?void 0:o.frontmatter,f=null==h?void 0:h.contactForm,v=null==h?void 0:h.validation;let b;return b=p in m?null==m||null===(i=m[p])||void 0===i||null===(l=i.nodes)||void 0===l||null===(s=l[0])||void 0===s?void 0:s.html:null==m||null===(c=m.en)||void 0===c||null===(u=c.nodes)||void 0===u||null===(d=u[0])||void 0===d?void 0:d.html,r.createElement(r.Fragment,null,f?r.createElement(r.Fragment,null,r.createElement("section",{className:"relative w-full bg-secondary-100 py-16"},r.createElement("div",{id:"contact-form",className:"absolute -top-16 opacity-0 pointer-events-none"},"asdfas"),r.createElement(Xe.Z,{maxWidthClass:"max-w-[1280px]",className:"flex-col items-center text-main-100"},r.createElement("div",{className:"flex justify-between w-full items-center pb-8 sm:pb-14 flex-col sm:flex-row gap-5"},r.createElement("h2",{className:"text-4xl font-bold w-full text-main-100"},null==f?void 0:f.sectionTitle.toUpperCase()),r.createElement("div",{className:"w-full sm:w-auto text-start sm:text-end text-xl font-normal whitespace-nowrap text-main-100"},null==f?void 0:f.sectionLinkTitle.toUpperCase())),r.createElement("div",{className:"flex flex-col md:flex-row gap-10 lg:gap-28 justify-center max-w-4.5xl items-stretch"},b?r.createElement("p",{className:"contact-form-description flex-1 text-xl font-light w-full",dangerouslySetInnerHTML:{__html:b}}):null,r.createElement(We,{markup:f,validationMarkup:v}))))):null)};const Ue="772577693"},4471:function(e,t,n){var r=n(7294);function a(e){return r.createElement("svg",e,[r.createElement("line",{width:"800",height:"8",stroke:"#f9f9f9",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),r.createElement("line",{width:"800",height:"8",stroke:"#111111",strokeWidth:"8",strokeDasharray:"8 8",x1:"8",x2:"100%",y1:"4",y2:"4",key:1})])}a.defaultProps={height:"8"},e.exports=a,a.default=a}}]); -//# sourceMappingURL=71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js.map \ No newline at end of file +`),q.rippleVisible,ee,550,(({theme:e})=>e.transitions.easing.easeInOut),q.ripplePulsate,(({theme:e})=>e.transitions.duration.shorter),q.child,q.childLeaving,te,550,(({theme:e})=>e.transitions.easing.easeInOut),q.childPulsate,ne,(({theme:e})=>e.transitions.easing.easeInOut));var oe=r.forwardRef((function(e,t){const n=(0,w.Z)({props:e,name:"MuiTouchRipple"}),{center:a=!1,classes:o={},className:i}=n,l=(0,h.Z)(n,K),[s,c]=r.useState([]),u=r.useRef(0),d=r.useRef(null);r.useEffect((()=>{d.current&&(d.current(),d.current=null)}),[s]);const p=r.useRef(!1),m=(0,C.Z)(),b=r.useRef(null),g=r.useRef(null),x=r.useCallback((e=>{const{pulsate:t,rippleX:n,rippleY:r,rippleSize:a,cb:i}=e;c((e=>[...e,(0,H.jsx)(ae,{classes:{ripple:(0,v.Z)(o.ripple,q.ripple),rippleVisible:(0,v.Z)(o.rippleVisible,q.rippleVisible),ripplePulsate:(0,v.Z)(o.ripplePulsate,q.ripplePulsate),child:(0,v.Z)(o.child,q.child),childLeaving:(0,v.Z)(o.childLeaving,q.childLeaving),childPulsate:(0,v.Z)(o.childPulsate,q.childPulsate)},timeout:550,pulsate:t,rippleX:n,rippleY:r,rippleSize:a},u.current)])),u.current+=1,d.current=i}),[o]),y=r.useCallback(((e={},t={},n=(()=>{}))=>{const{pulsate:r=!1,center:o=a||t.pulsate,fakeElement:i=!1}=t;if("mousedown"===(null==e?void 0:e.type)&&p.current)return void(p.current=!1);"touchstart"===(null==e?void 0:e.type)&&(p.current=!0);const l=i?null:g.current,s=l?l.getBoundingClientRect():{width:0,height:0,left:0,top:0};let c,u,d;if(o||void 0===e||0===e.clientX&&0===e.clientY||!e.clientX&&!e.touches)c=Math.round(s.width/2),u=Math.round(s.height/2);else{const{clientX:t,clientY:n}=e.touches&&e.touches.length>0?e.touches[0]:e;c=Math.round(t-s.left),u=Math.round(n-s.top)}if(o)d=Math.sqrt((2*s.width**2+s.height**2)/3),d%2==0&&(d+=1);else{const e=2*Math.max(Math.abs((l?l.clientWidth:0)-c),c)+2,t=2*Math.max(Math.abs((l?l.clientHeight:0)-u),u)+2;d=Math.sqrt(e**2+t**2)}null!=e&&e.touches?null===b.current&&(b.current=()=>{x({pulsate:r,rippleX:c,rippleY:u,rippleSize:d,cb:n})},m.start(80,(()=>{b.current&&(b.current(),b.current=null)}))):x({pulsate:r,rippleX:c,rippleY:u,rippleSize:d,cb:n})}),[a,x,m]),E=r.useCallback((()=>{y({},{pulsate:!0})}),[y]),k=r.useCallback(((e,t)=>{if(m.clear(),"touchend"===(null==e?void 0:e.type)&&b.current)return b.current(),b.current=null,void m.start(0,(()=>{k(e,t)}));b.current=null,c((e=>e.length>0?e.slice(1):e)),d.current=t}),[m]);return r.useImperativeHandle(t,(()=>({pulsate:E,start:y,stop:k})),[E,y,k]),(0,H.jsx)(re,(0,f.Z)({className:(0,v.Z)(q.root,o.root,i),ref:g},l,{children:(0,H.jsx)(W,{component:null,exit:!0,children:s})}))})),ie=n(3559);function le(e){return(0,ie.ZP)("MuiButtonBase",e)}var se=(0,Y.Z)("MuiButtonBase",["root","disabled","focusVisible"]);const ce=["action","centerRipple","children","className","component","disabled","disableRipple","disableTouchRipple","focusRipple","focusVisibleClassName","LinkComponent","onBlur","onClick","onContextMenu","onDragLeave","onFocus","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","type"],ue=(0,x.ZP)("button",{name:"MuiButtonBase",slot:"Root",overridesResolver:(e,t)=>t.root})({display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative",boxSizing:"border-box",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none",textDecoration:"none",color:"inherit","&::-moz-focus-inner":{borderStyle:"none"},[`&.${se.disabled}`]:{pointerEvents:"none",cursor:"default"},"@media print":{colorAdjust:"exact"}}),de=r.forwardRef((function(e,t){const n=(0,w.Z)({props:e,name:"MuiButtonBase"}),{action:a,centerRipple:o=!1,children:i,className:l,component:s="button",disabled:c=!1,disableRipple:u=!1,disableTouchRipple:d=!1,focusRipple:p=!1,LinkComponent:m="a",onBlur:g,onClick:x,onContextMenu:y,onDragLeave:E,onFocus:C,onFocusVisible:R,onKeyDown:M,onKeyUp:N,onMouseDown:L,onMouseLeave:$,onMouseUp:P,onTouchEnd:S,onTouchMove:T,onTouchStart:j,tabIndex:V=0,TouchRippleProps:I,touchRippleRef:O,type:z}=n,B=(0,h.Z)(n,ce),D=r.useRef(null),W=r.useRef(null),X=(0,k.Z)(W,O),{isFocusVisibleRef:U,onFocus:Y,onBlur:q,ref:K}=F(),[A,G]=r.useState(!1);c&&A&&G(!1),r.useImperativeHandle(a,(()=>({focusVisible:()=>{G(!0),D.current.focus()}})),[]);const[_,J]=r.useState(!1);r.useEffect((()=>{J(!0)}),[]);const Q=_&&!u&&!c;function ee(e,t,n=d){return Z((r=>{t&&t(r);return!n&&W.current&&W.current[e](r),!0}))}r.useEffect((()=>{A&&p&&!u&&_&&W.current.pulsate()}),[u,p,A,_]);const te=ee("start",L),ne=ee("stop",y),re=ee("stop",E),ae=ee("stop",P),ie=ee("stop",(e=>{A&&e.preventDefault(),$&&$(e)})),se=ee("start",j),de=ee("stop",S),pe=ee("stop",T),me=ee("stop",(e=>{q(e),!1===U.current&&G(!1),g&&g(e)}),!1),he=Z((e=>{D.current||(D.current=e.currentTarget),Y(e),!0===U.current&&(G(!0),R&&R(e)),C&&C(e)})),fe=()=>{const e=D.current;return s&&"button"!==s&&!("A"===e.tagName&&e.href)},ve=r.useRef(!1),be=Z((e=>{p&&!ve.current&&A&&W.current&&" "===e.key&&(ve.current=!0,W.current.stop(e,(()=>{W.current.start(e)}))),e.target===e.currentTarget&&fe()&&" "===e.key&&e.preventDefault(),M&&M(e),e.target===e.currentTarget&&fe()&&"Enter"===e.key&&!c&&(e.preventDefault(),x&&x(e))})),ge=Z((e=>{p&&" "===e.key&&W.current&&A&&!e.defaultPrevented&&(ve.current=!1,W.current.stop(e,(()=>{W.current.pulsate(e)}))),N&&N(e),x&&e.target===e.currentTarget&&fe()&&" "===e.key&&!e.defaultPrevented&&x(e)}));let xe=s;"button"===xe&&(B.href||B.to)&&(xe=m);const ye={};"button"===xe?(ye.type=void 0===z?"button":z,ye.disabled=c):(B.href||B.to||(ye.role="button"),c&&(ye["aria-disabled"]=c));const we=(0,k.Z)(t,K,D);const Ee=(0,f.Z)({},n,{centerRipple:o,component:s,disabled:c,disableRipple:u,disableTouchRipple:d,focusRipple:p,tabIndex:V,focusVisible:A}),ke=(e=>{const{disabled:t,focusVisible:n,focusVisibleClassName:r,classes:a}=e,o={root:["root",t&&"disabled",n&&"focusVisible"]},i=(0,b.Z)(o,le,a);return n&&r&&(i.root+=` ${r}`),i})(Ee);return(0,H.jsxs)(ue,(0,f.Z)({as:xe,className:(0,v.Z)(ke.root,l),ownerState:Ee,onBlur:me,onClick:x,onContextMenu:ne,onFocus:he,onKeyDown:be,onKeyUp:ge,onMouseDown:te,onMouseLeave:ie,onMouseUp:ae,onDragLeave:re,onTouchEnd:de,onTouchMove:pe,onTouchStart:se,ref:we,tabIndex:c?-1:V,type:z},ye,B,{children:[i,Q?(0,H.jsx)(oe,(0,f.Z)({ref:X,center:o},I)):null]}))}));var pe=de,me=n(8974);var he=(0,Y.Z)("MuiDivider",["root","absolute","fullWidth","inset","middle","flexItem","light","vertical","withChildren","withChildrenVertical","textAlignRight","textAlignLeft","wrapper","wrapperVertical"]);var fe=(0,Y.Z)("MuiListItemIcon",["root","alignItemsFlexStart"]);var ve=(0,Y.Z)("MuiListItemText",["root","multiline","dense","inset","primary","secondary"]);function be(e){return(0,ie.ZP)("MuiMenuItem",e)}var ge=(0,Y.Z)("MuiMenuItem",["root","focusVisible","dense","disabled","divider","gutters","selected"]);const xe=["autoFocus","component","dense","divider","disableGutters","focusVisibleClassName","role","tabIndex","className"],ye=(0,x.ZP)(pe,{shouldForwardProp:e=>(0,y.Z)(e)||"classes"===e,name:"MuiMenuItem",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.dense&&t.dense,n.divider&&t.divider,!n.disableGutters&&t.gutters]}})((({theme:e,ownerState:t})=>(0,f.Z)({},e.typography.body1,{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",whiteSpace:"nowrap"},!t.disableGutters&&{paddingLeft:16,paddingRight:16},t.divider&&{borderBottom:`1px solid ${(e.vars||e).palette.divider}`,backgroundClip:"padding-box"},{"&:hover":{textDecoration:"none",backgroundColor:(e.vars||e).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${ge.selected}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,g.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity),[`&.${ge.focusVisible}`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.focusOpacity}))`:(0,g.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.focusOpacity)}},[`&.${ge.selected}:hover`]:{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / calc(${e.vars.palette.action.selectedOpacity} + ${e.vars.palette.action.hoverOpacity}))`:(0,g.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity+e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:e.vars?`rgba(${e.vars.palette.primary.mainChannel} / ${e.vars.palette.action.selectedOpacity})`:(0,g.Fq)(e.palette.primary.main,e.palette.action.selectedOpacity)}},[`&.${ge.focusVisible}`]:{backgroundColor:(e.vars||e).palette.action.focus},[`&.${ge.disabled}`]:{opacity:(e.vars||e).palette.action.disabledOpacity},[`& + .${he.root}`]:{marginTop:e.spacing(1),marginBottom:e.spacing(1)},[`& + .${he.inset}`]:{marginLeft:52},[`& .${ve.root}`]:{marginTop:0,marginBottom:0},[`& .${ve.inset}`]:{paddingLeft:36},[`& .${fe.root}`]:{minWidth:36}},!t.dense&&{[e.breakpoints.up("sm")]:{minHeight:"auto"}},t.dense&&(0,f.Z)({minHeight:32,paddingTop:4,paddingBottom:4},e.typography.body2,{[`& .${fe.root} svg`]:{fontSize:"1.25rem"}}))));var we=r.forwardRef((function(e,t){const n=(0,w.Z)({props:e,name:"MuiMenuItem"}),{autoFocus:a=!1,component:o="li",dense:i=!1,divider:l=!1,disableGutters:s=!1,focusVisibleClassName:c,role:u="menuitem",tabIndex:d,className:p}=n,m=(0,h.Z)(n,xe),g=r.useContext(E.Z),x=r.useMemo((()=>({dense:i||g.dense||!1,disableGutters:s})),[g.dense,i,s]),y=r.useRef(null);(0,me.Z)((()=>{a&&y.current&&y.current.focus()}),[a]);const Z=(0,f.Z)({},n,{dense:x.dense,divider:l,disableGutters:s}),C=(e=>{const{disabled:t,dense:n,divider:r,disableGutters:a,selected:o,classes:i}=e,l={root:["root",n&&"dense",t&&"disabled",!a&&"gutters",r&&"divider",o&&"selected"]},s=(0,b.Z)(l,be,i);return(0,f.Z)({},i,s)})(n),R=(0,k.Z)(y,t);let M;return n.disabled||(M=void 0!==d?d:-1),(0,H.jsx)(E.Z.Provider,{value:x,children:(0,H.jsx)(ye,(0,f.Z)({ref:R,role:u,tabIndex:M,component:o,focusVisibleClassName:(0,v.Z)(C.focusVisible,c),className:(0,v.Z)(C.root,p)},m,{ownerState:Z,classes:C}))})})),Ee=n(8216),ke=n(1529),Ze=n(4423);function Ce(e){return(0,ie.ZP)("PrivateSwitchBase",e)}(0,Y.Z)("PrivateSwitchBase",["root","checked","disabled","input","edgeStart","edgeEnd"]);const Re=["autoFocus","checked","checkedIcon","className","defaultChecked","disabled","disableFocusRipple","edge","icon","id","inputProps","inputRef","name","onBlur","onChange","onFocus","readOnly","required","tabIndex","type","value"],Me=(0,x.ZP)(pe)((({ownerState:e})=>(0,f.Z)({padding:9,borderRadius:"50%"},"start"===e.edge&&{marginLeft:"small"===e.size?-3:-12},"end"===e.edge&&{marginRight:"small"===e.size?-3:-12}))),Ne=(0,x.ZP)("input",{shouldForwardProp:y.Z})({cursor:"inherit",position:"absolute",opacity:0,width:"100%",height:"100%",top:0,left:0,margin:0,padding:0,zIndex:1});var Le=r.forwardRef((function(e,t){const{autoFocus:n,checked:r,checkedIcon:a,className:o,defaultChecked:i,disabled:l,disableFocusRipple:s=!1,edge:c=!1,icon:u,id:d,inputProps:p,inputRef:m,name:g,onBlur:x,onChange:y,onFocus:w,readOnly:E,required:k=!1,tabIndex:Z,type:C,value:R}=e,M=(0,h.Z)(e,Re),[N,L]=(0,ke.Z)({controlled:r,default:Boolean(i),name:"SwitchBase",state:"checked"}),$=(0,Ze.Z)();let P=l;$&&void 0===P&&(P=$.disabled);const S="checkbox"===C||"radio"===C,T=(0,f.Z)({},e,{checked:N,disabled:P,disableFocusRipple:s,edge:c}),F=(e=>{const{classes:t,checked:n,disabled:r,edge:a}=e,o={root:["root",n&&"checked",r&&"disabled",a&&`edge${(0,Ee.Z)(a)}`],input:["input"]};return(0,b.Z)(o,Ce,t)})(T);return(0,H.jsxs)(Me,(0,f.Z)({component:"span",className:(0,v.Z)(F.root,o),centerRipple:!0,focusRipple:!s,disabled:P,tabIndex:null,role:void 0,onFocus:e=>{w&&w(e),$&&$.onFocus&&$.onFocus(e)},onBlur:e=>{x&&x(e),$&&$.onBlur&&$.onBlur(e)},ownerState:T,ref:t},M,{children:[(0,H.jsx)(Ne,(0,f.Z)({autoFocus:n,checked:r,defaultChecked:i,className:F.input,disabled:P,id:S?d:void 0,name:g,onChange:e=>{if(e.nativeEvent.defaultPrevented)return;const t=e.target.checked;L(t),y&&y(e,t)},readOnly:E,ref:m,required:k,ownerState:T,tabIndex:Z,type:C},"checkbox"===C&&void 0===R?{}:{value:R},p)),N?a:u]}))})),$e=n(5949),Pe=(0,$e.Z)((0,H.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),Se=(0,$e.Z)((0,H.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),Te=(0,$e.Z)((0,H.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");function Fe(e){return(0,ie.ZP)("MuiCheckbox",e)}var je=(0,Y.Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary","sizeSmall","sizeMedium"]);const Ve=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size","className"],Ie=(0,x.ZP)(Le,{shouldForwardProp:e=>(0,y.Z)(e)||"classes"===e,name:"MuiCheckbox",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:n}=e;return[t.root,n.indeterminate&&t.indeterminate,t[`size${(0,Ee.Z)(n.size)}`],"default"!==n.color&&t[`color${(0,Ee.Z)(n.color)}`]]}})((({theme:e,ownerState:t})=>(0,f.Z)({color:(e.vars||e).palette.text.secondary},!t.disableRipple&&{"&:hover":{backgroundColor:e.vars?`rgba(${"default"===t.color?e.vars.palette.action.activeChannel:e.vars.palette[t.color].mainChannel} / ${e.vars.palette.action.hoverOpacity})`:(0,g.Fq)("default"===t.color?e.palette.action.active:e.palette[t.color].main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==t.color&&{[`&.${je.checked}, &.${je.indeterminate}`]:{color:(e.vars||e).palette[t.color].main},[`&.${je.disabled}`]:{color:(e.vars||e).palette.action.disabled}}))),Oe=(0,H.jsx)(Se,{}),ze=(0,H.jsx)(Pe,{}),Be=(0,H.jsx)(Te,{});var De=r.forwardRef((function(e,t){var n,a;const o=(0,w.Z)({props:e,name:"MuiCheckbox"}),{checkedIcon:i=Oe,color:l="primary",icon:s=ze,indeterminate:c=!1,indeterminateIcon:u=Be,inputProps:d,size:p="medium",className:m}=o,g=(0,h.Z)(o,Ve),x=c?u:s,y=c?u:i,E=(0,f.Z)({},o,{color:l,indeterminate:c,size:p}),k=(e=>{const{classes:t,indeterminate:n,color:r,size:a}=e,o={root:["root",n&&"indeterminate",`color${(0,Ee.Z)(r)}`,`size${(0,Ee.Z)(a)}`]},i=(0,b.Z)(o,Fe,t);return(0,f.Z)({},t,i)})(E);return(0,H.jsx)(Ie,(0,f.Z)({type:"checkbox",inputProps:(0,f.Z)({"data-indeterminate":c},d),icon:r.cloneElement(x,{fontSize:null!=(n=x.props.fontSize)?n:p}),checkedIcon:r.cloneElement(y,{fontSize:null!=(a=y.props.fontSize)?a:p}),ownerState:E,ref:t,className:(0,v.Z)(k.root,m)},g,{classes:k}))}));var We=e=>{var t,n,a;let{markup:h,validationMarkup:f}=e;const{0:v,1:b}=(0,r.useState)(!1),{0:g,1:x}=(0,r.useState)(!0),{register:y,handleSubmit:w,control:E,reset:k,formState:{errors:Z,isValid:C}}=(0,o.cI)({mode:"onBlur",resolver:(0,i.X)(s.h),defaultValues:{consentToProcess:!0}}),R=(e,t,n,a)=>{var o;return r.createElement(m.sc,Object.assign({id:e,label:t,variant:"outlined",error:!(null===(o=Z[e])||void 0===o||!o.message),helperText:(0,d.OZ)(e,Z,f),"aria-label":e,fullWidth:!0,multiline:n,rows:a,size:"small"},y(e)))};return r.createElement("form",{onSubmit:w((async e=>{if(!C)return;b(!0);const t=(0,c.e)("hubspotutk"),n=(0,d.WU)(e,t);try{200===(await u.l.post("/3eae609c-bcf2-47f4-ad93-11a65c4b4f9d",n)).status&&k()}catch(o){var r,a;console.log("request err>>",null===(r=o.response)||void 0===r||null===(a=r.data)||void 0===a?void 0:a.message)}b(!1)})),className:"flex-1 flex flex-col gap-2.5"},R("email",h.emailLabel),R("company",h.companyNameLabel),R("firstname",h.nameLabel),r.createElement(m.sc,Object.assign({id:"services",label:h.servicesLabel,variant:"outlined",select:!0,defaultValue:"",error:!(null===(t=Z.services)||void 0===t||!t.message),helperText:(0,d.OZ)("services",Z,f),"aria-label":"services",fullWidth:!0,size:"small"},y("services")),Object.values(l.U5).map((e=>r.createElement(we,{key:e,value:e},h.servicesOptions[e])))),r.createElement(m.sc,Object.assign({id:"budget",label:h.budgetLabel,variant:"outlined",select:!0,defaultValue:"",error:!(null===(n=Z.budget)||void 0===n||!n.message),helperText:(0,d.OZ)("budget",Z,f),"aria-label":"budget",fullWidth:!0,size:"small"},y("budget")),Object.values(l.D9).map((e=>r.createElement(we,{key:e,value:e},h.budgetOptions[e])))),R("describe_your_project",h.descriptionLabel,!0,5),r.createElement(o.Qr,{control:E,name:"consentToProcess",render:e=>{let{field:{onChange:t,ref:n,value:a}}=e;return r.createElement(m.J$,{control:r.createElement(De,{id:"consentToProcess",checked:a,onChange:e=>{t(e),x(!!e.target.checked)},sx:{color:g?"#111":"#D32F2F","&.Mui-checked":{color:"#111"}},inputRef:n}),label:h.privacyPolicyCheckboxLabel,"aria-label":"consentToProcess",sx:{marginTop:"10px"}})}}),null!==(a=Z.consentToProcess)&&void 0!==a&&a.message||!g?r.createElement("p",{className:"text-[10.5px] text-[#D32F2F] ml-3"},null==f?void 0:f.consent):null,r.createElement(m.J$,{control:r.createElement(De,{defaultChecked:!0,sx:{color:"#111","&.Mui-checked":{color:"#111"}}}),label:h.adsCheckboxLabel,"aria-label":"adsCheckboxLabel"}),r.createElement("div",{className:"flex items-center justify-center pt-5 text-main-100"},r.createElement("button",{type:"submit",disabled:v||!g,className:"px-0 sm:px-5 md:px-6 font-bold whitespace-nowrap rounded-lg mx-0 text-secondary-100 h-12 flex items-center justify-center disabled:bg-main-70 hover:bg-main-70 px-6 relative "+(v?"bg-main-70":"bg-main-100")},v?r.createElement(p.Z,null):null,r.createElement("span",{className:"z-20"},h.buttonLabel.toUpperCase()))))},Xe=n(1164);var He=e=>{var t,n,o,i,l,s,c,u,d;let{lang:p}=e;const m=(0,a.K2)(Ue),h=null==m||null===(t=m.markupData)||void 0===t||null===(n=t.nodes)||void 0===n||null===(o=n.find((e=>e.fields.language===p)))||void 0===o?void 0:o.frontmatter,f=null==h?void 0:h.contactForm,v=null==h?void 0:h.validation;let b;return b=p in m?null==m||null===(i=m[p])||void 0===i||null===(l=i.nodes)||void 0===l||null===(s=l[0])||void 0===s?void 0:s.html:null==m||null===(c=m.en)||void 0===c||null===(u=c.nodes)||void 0===u||null===(d=u[0])||void 0===d?void 0:d.html,r.createElement(r.Fragment,null,f?r.createElement(r.Fragment,null,r.createElement("section",{className:"relative w-full bg-secondary-100 py-16"},r.createElement("div",{id:"contact-form",className:"absolute -top-16 opacity-0 pointer-events-none"},"anchor"),r.createElement(Xe.Z,{maxWidthClass:"max-w-[1280px]",className:"flex-col items-center text-main-100"},r.createElement("div",{className:"flex justify-between w-full items-center pb-8 sm:pb-14 flex-col sm:flex-row gap-5"},r.createElement("h2",{className:"text-4xl font-bold w-full text-main-100"},null==f?void 0:f.sectionTitle.toUpperCase()),r.createElement("div",{className:"w-full sm:w-auto text-start sm:text-end text-xl font-normal whitespace-nowrap text-main-100"},null==f?void 0:f.sectionLinkTitle.toUpperCase())),r.createElement("div",{className:"flex flex-col md:flex-row gap-10 lg:gap-28 justify-center max-w-4.5xl items-stretch"},b?r.createElement("p",{className:"contact-form-description flex-1 text-xl font-light w-full",dangerouslySetInnerHTML:{__html:b}}):null,r.createElement(We,{markup:f,validationMarkup:v}))))):null)};const Ue="772577693"},4471:function(e,t,n){var r=n(7294);function a(e){return r.createElement("svg",e,[r.createElement("line",{width:"800",height:"8",stroke:"#f9f9f9",strokeWidth:"8",strokeDasharray:"8 8",x1:"0",x2:"100%",y1:"4",y2:"4",key:0}),r.createElement("line",{width:"800",height:"8",stroke:"#111111",strokeWidth:"8",strokeDasharray:"8 8",x1:"8",x2:"100%",y1:"4",y2:"4",key:1})])}a.defaultProps={height:"8"},e.exports=a,a.default=a}}]); +//# sourceMappingURL=71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js.map \ No newline at end of file diff --git a/71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js.map b/71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js.map new file mode 100644 index 00000000..3c2c096f --- /dev/null +++ b/71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js.map @@ -0,0 +1 @@ +{"version":3,"file":"71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js","mappings":"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","sources":["webpack://code-cave/./src/components/common/spinner.tsx","webpack://code-cave/./src/components/babylonjs/babylon.tsx","webpack://code-cave/./src/components/common/banner.tsx","webpack://code-cave/./node_modules/@mui/material/utils/useEventCallback.js","webpack://code-cave/./node_modules/@mui/utils/useIsFocusVisible/useIsFocusVisible.js","webpack://code-cave/./node_modules/@mui/material/utils/useIsFocusVisible.js","webpack://code-cave/./node_modules/react-transition-group/esm/utils/ChildMapping.js","webpack://code-cave/./node_modules/react-transition-group/esm/TransitionGroup.js","webpack://code-cave/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://code-cave/./node_modules/@mui/material/ButtonBase/Ripple.js","webpack://code-cave/./node_modules/@mui/material/ButtonBase/touchRippleClasses.js","webpack://code-cave/./node_modules/@mui/material/ButtonBase/TouchRipple.js","webpack://code-cave/./node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","webpack://code-cave/./node_modules/@mui/material/ButtonBase/ButtonBase.js","webpack://code-cave/./node_modules/@mui/material/Divider/dividerClasses.js","webpack://code-cave/./node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","webpack://code-cave/./node_modules/@mui/material/ListItemText/listItemTextClasses.js","webpack://code-cave/./node_modules/@mui/material/MenuItem/menuItemClasses.js","webpack://code-cave/./node_modules/@mui/material/MenuItem/MenuItem.js","webpack://code-cave/./node_modules/@mui/material/internal/switchBaseClasses.js","webpack://code-cave/./node_modules/@mui/material/internal/SwitchBase.js","webpack://code-cave/./node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","webpack://code-cave/./node_modules/@mui/material/internal/svg-icons/CheckBox.js","webpack://code-cave/./node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","webpack://code-cave/./node_modules/@mui/material/Checkbox/checkboxClasses.js","webpack://code-cave/./node_modules/@mui/material/Checkbox/Checkbox.js","webpack://code-cave/./src/components/forms/contactForm.tsx","webpack://code-cave/./src/components/forms/contactFormSection.tsx","webpack://code-cave/./src/assets/common/border.svg"],"sourcesContent":["import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport default Spinner;\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport Spinner from \"../common/spinner\";\n\nconst Babylon = () => {\n const [isBabylonReady, setIsBabylonReady] = useState(false);\n const isInitial = useRef(true);\n const canvasRef = useRef(null);\n\n useEffect(() => {\n if (\n !isInitial.current ||\n !canvasRef.current ||\n typeof window == \"undefined\"\n )\n return;\n\n isInitial.current = false;\n\n // WORKER instance creation\n const babylonWorker = new Worker(\n new URL(\"../../workers/babylon.worker.ts\", import.meta.url),\n {\n type: \"module\",\n }\n );\n babylonWorker.onmessage = ({ data }) => {\n if (data === \"ready\") setIsBabylonReady(true);\n };\n\n // OFFSCREEN canvas\n const canvas = canvasRef.current;\n canvas.width = canvas.clientWidth;\n canvas.height = canvas.clientHeight;\n\n const offscreenCanvas = canvas.transferControlToOffscreen();\n babylonWorker.postMessage({ canvas: offscreenCanvas }, [offscreenCanvas]);\n\n // RESIZE handler\n const onResizeHandler = () => {\n babylonWorker.postMessage({\n width: canvas.clientWidth,\n height: canvas.clientHeight,\n });\n };\n window.addEventListener(\"resize\", onResizeHandler, { passive: true });\n\n // WHEEL handler\n const onWheelHandler = (e: WheelEvent) => {\n e.preventDefault();\n babylonWorker.postMessage({ wheel: e.deltaY });\n };\n canvas.addEventListener(\"wheel\", onWheelHandler);\n\n // ROTATE mouse handler\n const onMouseMoveHandler = (e: MouseEvent) => {\n babylonWorker.postMessage({\n x: e.movementX,\n y: e.movementY,\n });\n };\n canvas.addEventListener(\"mousedown\", (e: MouseEvent) => {\n e.preventDefault();\n window.addEventListener(\"mousemove\", onMouseMoveHandler, {\n passive: true,\n });\n window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: true, passive: true }\n );\n });\n\n // ROTATE touch handler\n const nestedTouchMoveHandler = (\n e: TouchEvent,\n previousCoords: { x: number; y: number }\n ) => {\n const touch = e.touches[0];\n babylonWorker.postMessage({\n x: touch.screenX - previousCoords.x,\n y: touch.screenY - previousCoords.y,\n });\n\n return {\n newX: touch.screenX,\n newY: touch.screenY,\n };\n };\n let onTouchMoveHandler: (e: TouchEvent) => void;\n canvas.addEventListener(\n \"touchstart\",\n (e: TouchEvent) => {\n if (e.touches.length !== 1) return;\n\n const firstTouch = e.touches[0];\n\n e.preventDefault();\n const previousCoords = {\n x: firstTouch.screenX,\n y: firstTouch.screenY,\n };\n\n onTouchMoveHandler = (e: TouchEvent) => {\n const { newX, newY } = nestedTouchMoveHandler(e, previousCoords);\n previousCoords.x = newX;\n previousCoords.y = newY;\n };\n\n window.addEventListener(\"touchmove\", onTouchMoveHandler, {\n passive: true,\n });\n window.addEventListener(\n \"touchend\",\n () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n },\n { passive: true }\n );\n },\n { passive: true }\n );\n\n // UNMOUNT handler\n return () => {\n if (!window) return;\n\n window.removeEventListener(\"resize\", onResizeHandler);\n window.removeEventListener(\"mousemove\", onMouseMoveHandler);\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n if (canvas) {\n canvas.removeEventListener(\"wheel\", onWheelHandler);\n }\n babylonWorker.terminate();\n };\n }, []);\n\n return (\n
\n \n {!isBabylonReady ? (\n \n ) : null}\n
\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\nimport { GatsbyImage, IGatsbyImageData } from \"gatsby-plugin-image\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\n// interface IBannerProps {\n// heightClass?: string;\n// title: string;\n// className?: string;\n// borderBottom?: boolean;\n// borderTop?: boolean;\n// babylon?: boolean;\n// image?: IGatsbyImageData;\n// }\ntype TBannerCommonProps = {\n heightClass?: string;\n title: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n};\ntype TBannerConditionalProps =\n | {\n babylon?: boolean;\n image?: never;\n children?: never;\n titleBlockClassName?: never;\n }\n | {\n babylon?: never;\n image?: IGatsbyImageData;\n children?: never;\n titleBlockClassName?: never;\n }\n | {\n babylon?: never;\n image?: never;\n children?: React.ReactNode;\n titleBlockClassName?: string;\n };\ntype TBannerProps = TBannerCommonProps & TBannerConditionalProps;\n\nconst Banner = ({\n heightClass = \"min-h-91\",\n title,\n className,\n borderBottom,\n borderTop,\n babylon,\n image,\n titleBlockClassName,\n children,\n}: TBannerProps) => {\n const [textTranslate, setTextTranslate] = useState<\n \"translate-y-full\" | \"translate-y-0\"\n >(\"translate-y-full\");\n useEffect(() => {\n setTextTranslate(\"translate-y-0\");\n }, []);\n\n return (\n \n {borderTop ? (\n \n ) : null}\n \n \n

\n \n {title}\n \n

\n \n {babylon ? (\n \n ) : null}\n {image ? (\n
\n \n
\n ) : null}\n {children ? (\n
\n {children}\n
\n ) : null}\n \n {borderBottom ? (\n \n ) : null}\n \n );\n};\n\nexport default Banner;\n","'use client';\n\nimport useEventCallback from '@mui/utils/useEventCallback';\nexport default useEventCallback;","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","'use client';\n\nimport useIsFocusVisible from '@mui/utils/useIsFocusVisible';\nexport default useIsFocusVisible;","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction Ripple(props) {\n const {\n className,\n classes,\n pulsate = false,\n rippleX,\n rippleY,\n rippleSize,\n in: inProp,\n onExited,\n timeout\n } = props;\n const [leaving, setLeaving] = React.useState(false);\n const rippleClassName = clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n const rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n const childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n if (!inProp && !leaving) {\n setLeaving(true);\n }\n React.useEffect(() => {\n if (!inProp && onExited != null) {\n // react-transition-group#onExited\n const timeoutId = setTimeout(onExited, timeout);\n return () => {\n clearTimeout(timeoutId);\n };\n }\n return undefined;\n }, [onExited, inProp, timeout]);\n return /*#__PURE__*/_jsx(\"span\", {\n className: rippleClassName,\n style: rippleStyles,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: childClassName\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n /**\n * @ignore - injected from TransitionGroup\n */\n in: PropTypes.bool,\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : void 0;\nexport default Ripple;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTouchRippleUtilityClass(slot) {\n return generateUtilityClass('MuiTouchRipple', slot);\n}\nconst touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);\nexport default touchRippleClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"center\", \"classes\", \"className\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport { keyframes } from '@mui/system';\nimport useTimeout from '@mui/utils/useTimeout';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Ripple from './Ripple';\nimport touchRippleClasses from './touchRippleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DURATION = 550;\nexport const DELAY_RIPPLE = 80;\nconst enterKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`));\nconst exitKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n`));\nconst pulsateKeyframe = keyframes(_t3 || (_t3 = _`\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n`));\nexport const TouchRippleRoot = styled('span', {\n name: 'MuiTouchRipple',\n slot: 'Root'\n})({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n});\n\n// This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\nexport const TouchRippleRipple = styled(Ripple, {\n name: 'MuiTouchRipple',\n slot: 'Ripple'\n})(_t4 || (_t4 = _`\n opacity: 0;\n position: absolute;\n\n &.${0} {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n &.${0} {\n animation-duration: ${0}ms;\n }\n\n & .${0} {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & .${0} {\n opacity: 0;\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n & .${0} {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ${0};\n animation-duration: 2500ms;\n animation-timing-function: ${0};\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n`), touchRippleClasses.rippleVisible, enterKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.ripplePulsate, ({\n theme\n}) => theme.transitions.duration.shorter, touchRippleClasses.child, touchRippleClasses.childLeaving, exitKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.childPulsate, pulsateKeyframe, ({\n theme\n}) => theme.transitions.easing.easeInOut);\n\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\nconst TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTouchRipple'\n });\n const {\n center: centerProp = false,\n classes = {},\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [ripples, setRipples] = React.useState([]);\n const nextKey = React.useRef(0);\n const rippleCallback = React.useRef(null);\n React.useEffect(() => {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]);\n\n // Used to filter out mouse emulated events on mobile.\n const ignoringMouseDown = React.useRef(false);\n // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n const startTimer = useTimeout();\n\n // This is the hook called once the previous timeout is ready.\n const startTimerCommit = React.useRef(null);\n const container = React.useRef(null);\n const startCommit = React.useCallback(params => {\n const {\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n } = params;\n setRipples(oldRipples => [...oldRipples, /*#__PURE__*/_jsx(TouchRippleRipple, {\n classes: {\n ripple: clsx(classes.ripple, touchRippleClasses.ripple),\n rippleVisible: clsx(classes.rippleVisible, touchRippleClasses.rippleVisible),\n ripplePulsate: clsx(classes.ripplePulsate, touchRippleClasses.ripplePulsate),\n child: clsx(classes.child, touchRippleClasses.child),\n childLeaving: clsx(classes.childLeaving, touchRippleClasses.childLeaving),\n childPulsate: clsx(classes.childPulsate, touchRippleClasses.childPulsate)\n },\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n }, nextKey.current)]);\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n const start = React.useCallback((event = {}, options = {}, cb = () => {}) => {\n const {\n pulsate = false,\n center = centerProp || options.pulsate,\n fakeElement = false // For test purposes\n } = options;\n if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n if ((event == null ? void 0 : event.type) === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n const element = fakeElement ? null : container.current;\n const rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n // Get the size of the ripple\n let rippleX;\n let rippleY;\n let rippleSize;\n if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n const {\n clientX,\n clientY\n } = event.touches && event.touches.length > 0 ? event.touches[0] : event;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n if (center) {\n rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3);\n\n // For some reason the animation is broken on Mobile Chrome if the size is even.\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n }\n\n // Touche devices\n if (event != null && event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = () => {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n };\n // Delay the execution of the ripple effect.\n // We have to make a tradeoff with this delay value.\n startTimer.start(DELAY_RIPPLE, () => {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n });\n }\n } else {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }\n }, [centerProp, startCommit, startTimer]);\n const pulsate = React.useCallback(() => {\n start({}, {\n pulsate: true\n });\n }, [start]);\n const stop = React.useCallback((event, cb) => {\n startTimer.clear();\n\n // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.start(0, () => {\n stop(event, cb);\n });\n return;\n }\n startTimerCommit.current = null;\n setRipples(oldRipples => {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, [startTimer]);\n React.useImperativeHandle(ref, () => ({\n pulsate,\n start,\n stop\n }), [pulsate, start, stop]);\n return /*#__PURE__*/_jsx(TouchRippleRoot, _extends({\n className: clsx(touchRippleClasses.root, classes.root, className),\n ref: container\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionGroup, {\n component: null,\n exit: true,\n children: ripples\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default TouchRipple;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getButtonBaseUtilityClass(slot) {\n return generateUtilityClass('MuiButtonBase', slot);\n}\nconst buttonBaseClasses = generateUtilityClasses('MuiButtonBase', ['root', 'disabled', 'focusVisible']);\nexport default buttonBaseClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"centerRipple\", \"children\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"LinkComponent\", \"onBlur\", \"onClick\", \"onContextMenu\", \"onDragLeave\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"tabIndex\", \"TouchRippleProps\", \"touchRippleRef\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nimport buttonBaseClasses, { getButtonBaseUtilityClass } from './buttonBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n focusVisible,\n focusVisibleClassName,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n const composedClasses = composeClasses(slots, getButtonBaseUtilityClass, classes);\n if (focusVisible && focusVisibleClassName) {\n composedClasses.root += ` ${focusVisibleClassName}`;\n }\n return composedClasses;\n};\nexport const ButtonBaseRoot = styled('button', {\n name: 'MuiButtonBase',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n },\n [`&.${buttonBaseClasses.disabled}`]: {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n});\n\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\nconst ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiButtonBase'\n });\n const {\n action,\n centerRipple = false,\n children,\n className,\n component = 'button',\n disabled = false,\n disableRipple = false,\n disableTouchRipple = false,\n focusRipple = false,\n LinkComponent = 'a',\n onBlur,\n onClick,\n onContextMenu,\n onDragLeave,\n onFocus,\n onFocusVisible,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseLeave,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n tabIndex = 0,\n TouchRippleProps,\n touchRippleRef,\n type\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const buttonRef = React.useRef(null);\n const rippleRef = React.useRef(null);\n const handleRippleRef = useForkRef(rippleRef, touchRippleRef);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), []);\n const [mountedState, setMountedState] = React.useState(false);\n React.useEffect(() => {\n setMountedState(true);\n }, []);\n const enableTouchRipple = mountedState && !disableRipple && !disabled;\n React.useEffect(() => {\n if (focusVisible && focusRipple && !disableRipple && mountedState) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible, mountedState]);\n function useRippleHandler(rippleAction, eventCallback, skipRippleAction = disableTouchRipple) {\n return useEventCallback(event => {\n if (eventCallback) {\n eventCallback(event);\n }\n const ignore = skipRippleAction;\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n return true;\n });\n }\n const handleMouseDown = useRippleHandler('start', onMouseDown);\n const handleContextMenu = useRippleHandler('stop', onContextMenu);\n const handleDragLeave = useRippleHandler('stop', onDragLeave);\n const handleMouseUp = useRippleHandler('stop', onMouseUp);\n const handleMouseLeave = useRippleHandler('stop', event => {\n if (focusVisible) {\n event.preventDefault();\n }\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n const handleTouchStart = useRippleHandler('start', onTouchStart);\n const handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n const handleTouchMove = useRippleHandler('stop', onTouchMove);\n const handleBlur = useRippleHandler('stop', event => {\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n const handleFocus = useEventCallback(event => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n if (onFocus) {\n onFocus(event);\n }\n });\n const isNonNativeButton = () => {\n const button = buttonRef.current;\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n\n /**\n * IE11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n const keydownRef = React.useRef(false);\n const handleKeyDown = useEventCallback(event => {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n rippleRef.current.stop(event, () => {\n rippleRef.current.start(event);\n });\n }\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n if (onClick) {\n onClick(event);\n }\n }\n });\n const handleKeyUp = useEventCallback(event => {\n // calling preventDefault in keyUp on a \n
\n \n );\n};\n\nexport default ContactForm;\n","import React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { ILang } from \"../../types/common.type\";\nimport { IContactFromQueryResult } from \"../../types/form.type\";\n\nimport ContactForm from \"./contactForm\";\nimport ContentContainer from \"../common/contentContainer\";\nimport Border from \"../../assets/common/border.svg\";\n\nconst ContactFormSection = ({ lang }: ILang) => {\n const formMdData = useStaticQuery(query) as IContactFromQueryResult;\n const allMarkup = formMdData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter;\n const formMarkup = allMarkup?.contactForm;\n const validationMarkup = allMarkup?.validation;\n\n let formDescription: string | null | undefined;\n if (lang in formMdData)\n formDescription = formMdData?.[lang]?.nodes?.[0]?.html as string | null;\n else formDescription = formMdData?.en?.nodes?.[0]?.html;\n\n return (\n <>\n {formMarkup ? (\n <>\n
\n \n anchor\n
\n \n
\n

\n {formMarkup?.sectionTitle.toUpperCase()}\n

\n \n {formMarkup?.sectionLinkTitle.toUpperCase()}\n
\n \n
\n {formDescription ? (\n \n ) : null}\n \n
\n \n \n \n ) : null}\n \n );\n};\n\nexport default ContactFormSection;\n\nexport const query = graphql`\n query {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"contactForm\" }, language: { eq: \"en\" } }\n }\n ) {\n nodes {\n html\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"contactForm\" }, language: { eq: \"ru\" } }\n }\n ) {\n nodes {\n html\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n validation {\n invalidEmail\n required\n consent\n }\n contactForm {\n sectionTitle\n sectionLinkTitle\n emailLabel\n nameLabel\n companyNameLabel\n servicesLabel\n servicesOptions {\n web_dev\n mobile_dev\n qa\n devops\n ui_ux\n ba\n add_ins\n vr_ar\n support\n consulting\n }\n budgetLabel\n budgetOptions {\n _1500_2500\n _2500_5000\n _5000_10000\n _10000_\n not_decided\n }\n selectPlaceholder\n descriptionLabel\n descriptionPlaceholder\n privacyPolicyCheckboxLabel\n adsCheckboxLabel\n buttonLabel\n }\n }\n }\n }\n }\n`;\n","var React = require('react');\n\nfunction Border (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"#f9f9f9\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"#111111\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"8\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":1})]);\n}\n\nBorder.defaultProps = {\"height\":\"8\"};\n\nmodule.exports = Border;\n\nBorder.default = Border;\n"],"names":["_ref","className","React","viewBox","fill","xmlns","d","Babylon","isBabylonReady","setIsBabylonReady","useState","isInitial","useRef","canvasRef","useEffect","current","window","babylonWorker","Worker","URL","type","onmessage","data","canvas","width","clientWidth","height","clientHeight","offscreenCanvas","transferControlToOffscreen","postMessage","onResizeHandler","addEventListener","passive","onWheelHandler","e","preventDefault","wheel","deltaY","onMouseMoveHandler","x","movementX","y","movementY","removeEventListener","once","onTouchMoveHandler","touches","length","firstTouch","previousCoords","screenX","screenY","newX","newY","nestedTouchMoveHandler","touch","terminate","ref","Spinner","heightClass","title","borderBottom","borderTop","babylon","image","titleBlockClassName","children","textTranslate","setTextTranslate","Border","ContentContainer","GatsbyImage","alt","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","text","search","url","tel","email","password","number","date","month","week","time","datetime","handleKeyDown","event","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","this","visibilityState","isFocusVisible","target","matches","error","node","tagName","readOnly","isContentEditable","focusTriggersKeyboardModality","doc","ownerDocument","isFocusVisibleRef","onFocus","onBlur","start","getChildMapping","mapFn","result","Object","create","Children","map","c","forEach","child","key","isValidElement","mapper","getProp","prop","props","getNextChildMapping","nextProps","prevChildMapping","onExited","nextChildMapping","prev","next","getValueForKey","i","nextKeysPending","pendingKeys","prevKey","push","childMapping","nextKey","pendingNextKey","mergeChildMappings","keys","hasPrev","hasNext","prevChild","isLeaving","in","cloneElement","bind","exit","enter","values","obj","k","TransitionGroup","_React$Component","context","_this","handleExited","call","ReferenceError","_assertThisInitialized","state","contextValue","isMounting","firstRender","_proto","prototype","componentDidMount","mounted","setState","componentWillUnmount","getDerivedStateFromProps","appear","currentChildMapping","render","_this$props","Component","component","childFactory","TransitionGroupContext","Provider","value","propTypes","defaultProps","classes","pulsate","rippleX","rippleY","rippleSize","inProp","timeout","leaving","setLeaving","rippleClassName","clsx","ripple","rippleVisible","ripplePulsate","rippleStyles","top","left","childClassName","childLeaving","childPulsate","timeoutId","setTimeout","clearTimeout","style","generateUtilityClasses","_excluded","_t","_t2","_t3","_t4","_","t","enterKeyframe","exitKeyframe","pulsateKeyframe","TouchRippleRoot","styled","name","slot","overflow","pointerEvents","position","zIndex","right","bottom","borderRadius","TouchRippleRipple","theme","transitions","easing","easeInOut","duration","shorter","inProps","useThemeProps","center","centerProp","other","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","useTimeout","startTimerCommit","container","startCommit","params","cb","oldRipples","options","fakeElement","element","rect","getBoundingClientRect","undefined","clientX","clientY","Math","round","sqrt","sizeX","max","abs","sizeY","stop","clear","slice","root","getButtonBaseUtilityClass","ButtonBaseRoot","overridesResolver","styles","display","alignItems","justifyContent","boxSizing","WebkitTapHighlightColor","backgroundColor","outline","border","margin","padding","cursor","userSelect","verticalAlign","MozAppearance","WebkitAppearance","textDecoration","color","borderStyle","disabled","colorAdjust","ButtonBase","action","centerRipple","disableRipple","disableTouchRipple","focusRipple","LinkComponent","onClick","onContextMenu","onDragLeave","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","buttonRef","rippleRef","handleRippleRef","useForkRef","handleFocusVisible","handleBlurVisible","focusVisibleRef","focusVisible","setFocusVisible","focus","mountedState","setMountedState","enableTouchRipple","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleMouseDown","handleContextMenu","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","currentTarget","isNonNativeButton","button","href","keydownRef","handleKeyUp","defaultPrevented","ComponentProp","to","buttonProps","role","handleRef","ownerState","focusVisibleClassName","slots","composedClasses","composeClasses","useUtilityClasses","as","getMenuItemUtilityClass","MenuItemRoot","shouldForwardProp","rootShouldForwardProp","dense","divider","disableGutters","gutters","typography","body1","minHeight","paddingTop","paddingBottom","whiteSpace","paddingLeft","paddingRight","vars","palette","backgroundClip","hover","selected","primary","mainChannel","selectedOpacity","main","focusOpacity","hoverOpacity","opacity","disabledOpacity","marginTop","spacing","marginBottom","inset","marginLeft","minWidth","breakpoints","up","body2","fontSize","autoFocus","tabIndexProp","ListContext","childContext","menuItemRef","useEnhancedEffect","getSwitchBaseUtilityClass","SwitchBaseRoot","edge","size","marginRight","SwitchBaseInput","checked","checkedProp","checkedIcon","defaultChecked","disabledProp","disableFocusRipple","icon","id","inputProps","inputRef","onChange","required","setCheckedState","useControlled","controlled","default","Boolean","muiFormControl","useFormControl","hasLabelFor","capitalize","input","nativeEvent","newChecked","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","indeterminate","secondary","activeChannel","active","defaultCheckedIcon","CheckBox","defaultIcon","CheckBoxOutlineBlank","defaultIndeterminateIcon","IndeterminateCheckBox","_icon$props$fontSize","_indeterminateIcon$pr","iconProp","indeterminateIcon","indeterminateIconProp","_errors$services","_errors$budget","_errors$consentToProc","markup","validationMarkup","isPending","setIsPending","isGivenConsent","setIsGivenConsent","register","handleSubmit","control","reset","formState","errors","isValid","useForm","mode","resolver","yupResolver","contactFormSchema","defaultValues","consentToProcess","renderTextInput","label","multiline","rows","_errors$key","ContactFormInput","assign","variant","message","helperText","getValidationMessage","fullWidth","onSubmit","async","hutk","getCookie","requestBody","mapContactFormData","hubspotApi","post","status","_e$response","_e$response$data","console","log","response","emailLabel","companyNameLabel","nameLabel","servicesLabel","select","defaultValue","ServicesOptions","service","MenuItem","servicesOptions","budgetLabel","BudgetOptions","budget","budgetOptions","descriptionLabel","Controller","_ref2","field","ControlLabel","Checkbox","sx","privacyPolicyCheckboxLabel","consent","adsCheckboxLabel","SkeletonStub","buttonLabel","toUpperCase","_formMdData$markupDat","_formMdData$markupDat2","_formMdData$markupDat3","_formMdData$lang","_formMdData$lang$node","_formMdData$lang$node2","_formMdData$en","_formMdData$en$nodes","_formMdData$en$nodes$","lang","formMdData","useStaticQuery","query","allMarkup","markupData","nodes","find","fields","language","frontmatter","formMarkup","contactForm","validation","formDescription","html","en","maxWidthClass","sectionTitle","sectionLinkTitle","dangerouslySetInnerHTML","__html","ContactForm","createElement","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js.map b/71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js.map deleted file mode 100644 index 6cc6d7a3..00000000 --- a/71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js","mappings":"gMA2BA,MAzBgBA,IAA4C,IAA3C,UAAEC,GAAmCD,EACpD,OACEE,EAAAA,cAAA,OACED,UAAW,kDAAkDA,KAE7DC,EAAAA,cAAA,OACE,cAAY,OACZD,UAAU,8EACVE,QAAQ,cACRC,KAAK,OACLC,MAAM,8BAENH,EAAAA,cAAA,QACEI,EAAE,+WACFF,KAAK,iBAEPF,EAAAA,cAAA,QACEI,EAAE,glBACFF,KAAK,iBAGL,EC+HV,MAlJgBG,KACd,MAAM,EAACC,EAAe,EAACC,IAAqBC,EAAAA,EAAAA,WAAkB,GACxDC,GAAYC,EAAAA,EAAAA,SAAgB,GAC5BC,GAAYD,EAAAA,EAAAA,QAA0B,MAkI5C,OAhIAE,EAAAA,EAAAA,YAAU,KACR,IACGH,EAAUI,UACVF,EAAUE,SACM,oBAAVC,OAEP,OAEFL,EAAUI,SAAU,EAGpB,MAAME,EAAgB,IAAIC,OACxB,IAAIC,IAAI,kBACR,CACEC,UAAM,IAGVH,EAAcI,UAAYrB,IAAe,IAAd,KAAEsB,GAAMtB,EACpB,UAATsB,GAAkBb,GAAkB,EAAK,EAI/C,MAAMc,EAASV,EAAUE,QACzBQ,EAAOC,MAAQD,EAAOE,YACtBF,EAAOG,OAASH,EAAOI,aAEvB,MAAMC,EAAkBL,EAAOM,6BAC/BZ,EAAca,YAAY,CAAEP,OAAQK,GAAmB,CAACA,IAGxD,MAAMG,EAAkBA,KACtBd,EAAca,YAAY,CACxBN,MAAOD,EAAOE,YACdC,OAAQH,EAAOI,cACf,EAEJX,OAAOgB,iBAAiB,SAAUD,EAAiB,CAAEE,SAAS,IAG9D,MAAMC,EAAkBC,IACtBA,EAAEC,iBACFnB,EAAca,YAAY,CAAEO,MAAOF,EAAEG,QAAS,EAEhDf,EAAOS,iBAAiB,QAASE,GAGjC,MAAMK,EAAsBJ,IAC1BlB,EAAca,YAAY,CACxBU,EAAGL,EAAEM,UACLC,EAAGP,EAAEQ,WACL,EAEJpB,EAAOS,iBAAiB,aAAcG,IACpCA,EAAEC,iBACFpB,OAAOgB,iBAAiB,YAAaO,EAAoB,CACvDN,SAAS,IAEXjB,OAAOgB,iBACL,WACA,IAAMhB,OAAO4B,oBAAoB,YAAaL,IAC9C,CAAEM,MAAM,EAAMZ,SAAS,GACxB,IAmBH,IAAIa,EAmCJ,OAlCAvB,EAAOS,iBACL,cACCG,IACC,GAAyB,IAArBA,EAAEY,QAAQC,OAAc,OAE5B,MAAMC,EAAad,EAAEY,QAAQ,GAE7BZ,EAAEC,iBACF,MAAMc,EAAiB,CACrBV,EAAGS,EAAWE,QACdT,EAAGO,EAAWG,SAGhBN,EAAsBX,IACpB,MAAM,KAAEkB,EAAI,KAAEC,GA9BWC,EAC7BpB,EACAe,KAEA,MAAMM,EAAQrB,EAAEY,QAAQ,GAMxB,OALA9B,EAAca,YAAY,CACxBU,EAAGgB,EAAML,QAAUD,EAAeV,EAClCE,EAAGc,EAAMJ,QAAUF,EAAeR,IAG7B,CACLW,KAAMG,EAAML,QACZG,KAAME,EAAMJ,QACb,EAiB0BG,CAAuBpB,EAAGe,GACjDA,EAAeV,EAAIa,EACnBH,EAAeR,EAAIY,CAAI,EAGzBtC,OAAOgB,iBAAiB,YAAac,EAAoB,CACvDb,SAAS,IAEXjB,OAAOgB,iBACL,YACA,KACEhB,OAAO4B,oBAAoB,YAAaE,EAAmB,GAE7D,CAAEb,SAAS,GACZ,GAEH,CAAEA,SAAS,IAIN,KACAjB,SAELA,OAAO4B,oBAAoB,SAAUb,GACrCf,OAAO4B,oBAAoB,YAAaL,GACxCvB,OAAO4B,oBAAoB,YAAaE,GACpCvB,GACFA,EAAOqB,oBAAoB,QAASV,GAEtCjB,EAAcwC,YAAW,CAC1B,GACA,IAGDvD,EAAAA,cAAA,OAAKD,UAAW,0BACdC,EAAAA,cAAA,UACEwD,IAAK7C,EACLZ,UAAW,4EAEXO,EAEE,KADFN,EAAAA,cAACyD,EAAO,CAAC1D,UAAU,gDAEjB,ECjCV,MApEeD,IAUM,IAVL,YACd4D,EAAc,WAAU,MACxBC,EAAK,UACL5D,EAAS,aACT6D,EAAY,UACZC,EAAS,QACTC,EAAO,MACPC,EAAK,oBACLC,EAAmB,SACnBC,GACanE,EACb,MAAM,EAACoE,EAAc,EAACC,IAAoB3D,EAAAA,EAAAA,UAExC,oBAKF,OAJAI,EAAAA,EAAAA,YAAU,KACRuD,EAAiB,gBAAgB,GAChC,IAGDnE,EAAAA,cAAA,OACED,UAAW,iEAAiE2D,KAAe3D,KAE1F8D,EACC7D,EAAAA,cAACoE,IAAM,CAACrE,UAAU,yCAChB,KACJC,EAAAA,cAACqE,EAAAA,EAAgB,CACftE,UAAW,oHAEXC,EAAAA,cAAA,OACED,UAAW,mGACTiE,GAA4C,0BAG9ChE,EAAAA,cAAA,MAAID,UAAW,0BACbC,EAAAA,cAAA,QACED,UAAW,2HAA2HmE,KAErIP,KAING,EACC9D,EAAAA,cAAA,OAAKD,UAAU,oEACbC,EAAAA,cAACK,EAAO,OAER,KACH0D,EACC/D,EAAAA,cAAA,OAAKD,UAAU,uGACbC,EAAAA,cAACsE,EAAAA,EAAW,CACVP,MAAOA,EACPQ,IAAI,QACJxE,UAAU,kCAGZ,KACHkE,EACCjE,EAAAA,cAAA,OAAKD,UAAU,sEACZkE,GAED,MAELL,EACC5D,EAAAA,cAACoE,IAAM,CAACrE,UAAU,4CAChB,KACA,C,wRC1GV,E,QAA+B,E,UCE/B,IAAIyE,GAAmB,EACnBC,GAA0B,EAC9B,MAAMC,EAAiC,IAAI,IACrCC,EAAsB,CAC1BC,MAAM,EACNC,QAAQ,EACRC,KAAK,EACLC,KAAK,EACLC,OAAO,EACPC,UAAU,EACVC,QAAQ,EACRC,MAAM,EACNC,OAAO,EACPC,MAAM,EACNC,MAAM,EACNC,UAAU,EACV,kBAAkB,GAkCpB,SAASC,EAAcC,GACjBA,EAAMC,SAAWD,EAAME,QAAUF,EAAMG,UAG3CpB,GAAmB,EACrB,CASA,SAASqB,IACPrB,GAAmB,CACrB,CACA,SAASsB,IACsB,WAAzBC,KAAKC,iBAKHvB,IACFD,GAAmB,EAGzB,CAeA,SAASyB,EAAeR,GACtB,MAAM,OACJS,GACET,EACJ,IACE,OAAOS,EAAOC,QAAQ,iBACxB,CAAE,MAAOC,GAKT,CAIA,OAAO5B,GAjFT,SAAuC6B,GACrC,MAAM,KACJnF,EAAI,QACJoF,GACED,EACJ,QAAgB,UAAZC,IAAuB3B,EAAoBzD,IAAUmF,EAAKE,WAG9C,aAAZD,IAA2BD,EAAKE,YAGhCF,EAAKG,iBAIX,CAkE6BC,CAA8BP,EAC3D,CC9GA,MD+Ge,WACb,MAAM1C,EAAM,eAAkB6C,IAhChC,IAAiBK,EAiCD,MAARL,KAjCSK,EAkCHL,EAAKM,eAjCb7E,iBAAiB,UAAW0D,GAAe,GAC/CkB,EAAI5E,iBAAiB,YAAa+D,GAAmB,GACrDa,EAAI5E,iBAAiB,cAAe+D,GAAmB,GACvDa,EAAI5E,iBAAiB,aAAc+D,GAAmB,GACtDa,EAAI5E,iBAAiB,mBAAoBgE,GAAwB,GA8B/D,GACC,IACGc,EAAoB,UAAa,GAoCvC,MAAO,CACLA,oBACAC,QATF,SAA4BpB,GAC1B,QAAIQ,EAAeR,KACjBmB,EAAkB/F,SAAU,GACrB,EAGX,EAIEiG,OAlCF,WAME,QAAIF,EAAkB/F,UAKpB4D,GAA0B,EAC1BC,EAA+BqC,MAAM,KAAK,KACxCtC,GAA0B,CAAK,IAEjCmC,EAAkB/F,SAAU,GACrB,EAGX,EAgBE2C,MAEJ,E,uBE1JO,SAASwD,EAAgB/C,EAAUgD,GACxC,IAIIC,EAASC,OAAOC,OAAO,MAO3B,OANInD,GAAU,EAAAoD,SAASC,IAAIrD,GAAU,SAAUsD,GAC7C,OAAOA,CACT,IAAGC,SAAQ,SAAUC,GAEnBP,EAAOO,EAAMC,KATF,SAAgBD,GAC3B,OAAOR,IAAS,IAAAU,gBAAeF,GAASR,EAAMQ,GAASA,CACzD,CAOsBG,CAAOH,EAC7B,IACOP,CACT,CAiEA,SAASW,EAAQJ,EAAOK,EAAMC,GAC5B,OAAsB,MAAfA,EAAMD,GAAgBC,EAAMD,GAAQL,EAAMM,MAAMD,EACzD,CAaO,SAASE,EAAoBC,EAAWC,EAAkBC,GAC/D,IAAIC,EAAmBpB,EAAgBiB,EAAUhE,UAC7CA,EA/DC,SAA4BoE,EAAMC,GAIvC,SAASC,EAAeb,GACtB,OAAOA,KAAOY,EAAOA,EAAKZ,GAAOW,EAAKX,EACxC,CALAW,EAAOA,GAAQ,CAAC,EAChBC,EAAOA,GAAQ,CAAC,EAQhB,IAcIE,EAdAC,EAAkBtB,OAAOC,OAAO,MAChCsB,EAAc,GAElB,IAAK,IAAIC,KAAWN,EACdM,KAAWL,EACTI,EAAY5F,SACd2F,EAAgBE,GAAWD,EAC3BA,EAAc,IAGhBA,EAAYE,KAAKD,GAKrB,IAAIE,EAAe,CAAC,EAEpB,IAAK,IAAIC,KAAWR,EAAM,CACxB,GAAIG,EAAgBK,GAClB,IAAKN,EAAI,EAAGA,EAAIC,EAAgBK,GAAShG,OAAQ0F,IAAK,CACpD,IAAIO,EAAiBN,EAAgBK,GAASN,GAC9CK,EAAaJ,EAAgBK,GAASN,IAAMD,EAAeQ,EAC7D,CAGFF,EAAaC,GAAWP,EAAeO,EACzC,CAGA,IAAKN,EAAI,EAAGA,EAAIE,EAAY5F,OAAQ0F,IAClCK,EAAaH,EAAYF,IAAMD,EAAeG,EAAYF,IAG5D,OAAOK,CACT,CAmBiBG,CAAmBd,EAAkBE,GAmCpD,OAlCAjB,OAAO8B,KAAKhF,GAAUuD,SAAQ,SAAUE,GACtC,IAAID,EAAQxD,EAASyD,GACrB,IAAK,IAAAC,gBAAeF,GAApB,CACA,IAAIyB,EAAWxB,KAAOQ,EAClBiB,EAAWzB,KAAOU,EAClBgB,EAAYlB,EAAiBR,GAC7B2B,GAAY,IAAA1B,gBAAeyB,KAAeA,EAAUrB,MAAMuB,IAE1DH,GAAaD,IAAWG,EAQhBF,IAAWD,GAAYG,EAMxBF,GAAWD,IAAW,IAAAvB,gBAAeyB,KAI9CnF,EAASyD,IAAO,IAAA6B,cAAa9B,EAAO,CAClCU,SAAUA,EAASqB,KAAK,KAAM/B,GAC9B6B,GAAIF,EAAUrB,MAAMuB,GACpBG,KAAM5B,EAAQJ,EAAO,OAAQQ,GAC7ByB,MAAO7B,EAAQJ,EAAO,QAASQ,MAXjChE,EAASyD,IAAO,IAAA6B,cAAa9B,EAAO,CAClC6B,IAAI,IAVNrF,EAASyD,IAAO,IAAA6B,cAAa9B,EAAO,CAClCU,SAAUA,EAASqB,KAAK,KAAM/B,GAC9B6B,IAAI,EACJG,KAAM5B,EAAQJ,EAAO,OAAQQ,GAC7ByB,MAAO7B,EAAQJ,EAAO,QAASQ,IAZD,CA+BpC,IACOhE,CACT,CClIA,IAAI0F,EAASxC,OAAOwC,QAAU,SAAUC,GACtC,OAAOzC,OAAO8B,KAAKW,GAAKtC,KAAI,SAAUuC,GACpC,OAAOD,EAAIC,EACb,GACF,EAuBIC,EAA+B,SAAUC,GAG3C,SAASD,EAAgB/B,EAAOiC,GAC9B,IAAIC,EAIAC,GAFJD,EAAQF,EAAiBI,KAAKpE,KAAMgC,EAAOiC,IAAYjE,MAE9BmE,aAAaV,KC5C1C,SAAgCvH,GAC9B,QAAI,IAAWA,EAAG,MAAM,IAAImI,eAAe,6DAC3C,OAAOnI,CACT,CDyC+CoI,CAAuBJ,IAUlE,OAPAA,EAAMK,MAAQ,CACZC,aAAc,CACZC,YAAY,GAEdN,aAAcA,EACdO,aAAa,GAERR,CACT,EAlBA,OAAeH,EAAiBC,GAoBhC,IAAIW,EAASZ,EAAgBa,UAqE7B,OAnEAD,EAAOE,kBAAoB,WACzB7E,KAAK8E,SAAU,EACf9E,KAAK+E,SAAS,CACZP,aAAc,CACZC,YAAY,IAGlB,EAEAE,EAAOK,qBAAuB,WAC5BhF,KAAK8E,SAAU,CACjB,EAEAf,EAAgBkB,yBAA2B,SAAkC/C,EAAWnI,GACtF,IDiBmCiI,EAAOI,ECjBtCD,EAAmBpI,EAAKmE,SACxBiG,EAAepK,EAAKoK,aAExB,MAAO,CACLjG,SAFgBnE,EAAK2K,aDeY1C,ECbcE,EDaPE,ECbkB+B,EDcvDlD,EAAgBe,EAAM9D,UAAU,SAAUwD,GAC/C,OAAO,IAAA8B,cAAa9B,EAAO,CACzBU,SAAUA,EAASqB,KAAK,KAAM/B,GAC9B6B,IAAI,EACJ2B,OAAQpD,EAAQJ,EAAO,SAAUM,GACjC2B,MAAO7B,EAAQJ,EAAO,QAASM,GAC/B0B,KAAM5B,EAAQJ,EAAO,OAAQM,IAEjC,KCtB8EC,EAAoBC,EAAWC,EAAkBgC,GAC3HO,aAAa,EAEjB,EAGAC,EAAOR,aAAe,SAAsBzC,EAAOpB,GACjD,IAAI6E,EAAsBlE,EAAgBjB,KAAKgC,MAAM9D,UACjDwD,EAAMC,OAAOwD,IAEbzD,EAAMM,MAAMI,UACdV,EAAMM,MAAMI,SAAS9B,GAGnBN,KAAK8E,SACP9E,KAAK+E,UAAS,SAAUR,GACtB,IAAIrG,GAAW,OAAS,CAAC,EAAGqG,EAAMrG,UAGlC,cADOA,EAASwD,EAAMC,KACf,CACLzD,SAAUA,EAEd,IAEJ,EAEAyG,EAAOS,OAAS,WACd,IAAIC,EAAcrF,KAAKgC,MACnBsD,EAAYD,EAAYE,UACxBC,EAAeH,EAAYG,aAC3BxD,GAAQ,OAA8BqD,EAAa,CAAC,YAAa,iBAEjEb,EAAexE,KAAKuE,MAAMC,aAC1BtG,EAAW0F,EAAO5D,KAAKuE,MAAMrG,UAAUqD,IAAIiE,GAK/C,cAJOxD,EAAMkD,cACNlD,EAAM2B,aACN3B,EAAM0B,KAEK,OAAd4B,EACkB,gBAAoBG,EAAA,EAAuBC,SAAU,CACvEC,MAAOnB,GACNtG,GAGe,gBAAoBuH,EAAA,EAAuBC,SAAU,CACvEC,MAAOnB,GACO,gBAAoBc,EAAWtD,EAAO9D,GACxD,EAEO6F,CACT,CA3FmC,CA2FjC,aAEFA,EAAgB6B,UAyDZ,CAAC,EACL7B,EAAgB8B,aA5KG,CACjBN,UAAW,MACXC,aAAc,SAAsB9D,GAClC,OAAOA,CACT,GAyKF,Q,mBErGA,MA7EA,SAAgBM,GACd,MAAM,UACJhI,EAAS,QACT8L,EAAO,QACPC,GAAU,EAAK,QACfC,EAAO,QACPC,EAAO,WACPC,EACA3C,GAAI4C,EAAM,SACV/D,EAAQ,QACRgE,GACEpE,GACGqE,EAASC,GAAc,YAAe,GACvCC,GAAkB,EAAAC,EAAA,GAAKxM,EAAW8L,EAAQW,OAAQX,EAAQY,cAAeX,GAAWD,EAAQa,eAC5FC,EAAe,CACnBrL,MAAO2K,EACPzK,OAAQyK,EACRW,KAAOX,EAAa,EAAKD,EACzBa,MAAQZ,EAAa,EAAKF,GAEtBe,GAAiB,EAAAP,EAAA,GAAKV,EAAQpE,MAAO2E,GAAWP,EAAQkB,aAAcjB,GAAWD,EAAQmB,cAc/F,OAbKd,GAAWE,GACdC,GAAW,GAEb,aAAgB,KACd,IAAKH,GAAsB,MAAZ/D,EAAkB,CAE/B,MAAM8E,EAAYC,WAAW/E,EAAUgE,GACvC,MAAO,KACLgB,aAAaF,EAAU,CAE3B,CACgB,GACf,CAAC9E,EAAU+D,EAAQC,KACF,SAAK,OAAQ,CAC/BpM,UAAWuM,EACXc,MAAOT,EACP1I,UAAuB,SAAK,OAAQ,CAClClE,UAAW+M,KAGjB,E,UC7CA,OAD2B,EAAAO,EAAA,GAAuB,iBAAkB,CAAC,OAAQ,SAAU,gBAAiB,gBAAiB,QAAS,eAAgB,iBCDlJ,MAAMC,EAAY,CAAC,SAAU,UAAW,aACxC,IACEC,EACAC,EACAC,EACAC,EAJEC,EAAIC,GAAKA,EAgBb,MAEMC,IAAgB,QAAUN,IAAOA,EAAKI,CAAC;;;;;;;;;;IAWvCG,IAAe,QAAUN,IAAQA,EAAMG,CAAC;;;;;;;;IASxCI,IAAkB,QAAUN,IAAQA,EAAME,CAAC;;;;;;;;;;;;IAapCK,IAAkB,EAAAC,EAAA,IAAO,OAAQ,CAC5CC,KAAM,iBACNC,KAAM,QAFuB,CAG5B,CACDC,SAAU,SACVC,cAAe,OACfC,SAAU,WACVC,OAAQ,EACR3B,IAAK,EACL4B,MAAO,EACPC,OAAQ,EACR5B,KAAM,EACN6B,aAAc,YAKHC,IAAoB,EAAAV,EAAA,IAAO,EAAQ,CAC9CC,KAAM,iBACNC,KAAM,UAFyB,CAG9BT,IAAQA,EAAMC,CAAC;;;;MAIZ;;;sBAGgB;0BACI;iCACO;;;MAG3B;0BACoB;;;OAGnB;;;;;;;;;OASA;;sBAEe;0BACI;iCACO;;;OAG1B;;;;;sBAKe;;iCAEW;;;;GAI7B,EAAmBlB,cAAeoB,GAlGrB,KAkG8C,EAC7De,WACIA,EAAMC,YAAYC,OAAOC,WAAW,EAAmBrC,eAAe,EAC1EkC,WACIA,EAAMC,YAAYG,SAASC,SAAS,EAAmBxH,MAAO,EAAmBsF,aAAce,GAtGpF,KAsG4G,EAC3Hc,WACIA,EAAMC,YAAYC,OAAOC,WAAW,EAAmB/B,aAAce,IAAiB,EAC1Fa,WACIA,EAAMC,YAAYC,OAAOC,YA6M/B,OAtMiC,cAAiB,SAAqBG,EAAS1L,GAC9E,MAAMuE,GAAQ,EAAAoH,EAAA,GAAc,CAC1BpH,MAAOmH,EACPhB,KAAM,oBAGJkB,OAAQC,GAAa,EAAK,QAC1BxD,EAAU,CAAC,EAAC,UACZ9L,GACEgI,EACJuH,GAAQ,OAA8BvH,EAAOuF,IACxCiC,EAASC,GAAc,WAAe,IACvC1G,EAAU,SAAa,GACvB2G,EAAiB,SAAa,MACpC,aAAgB,KACVA,EAAe5O,UACjB4O,EAAe5O,UACf4O,EAAe5O,QAAU,KAC3B,GACC,CAAC0O,IAGJ,MAAMG,EAAoB,UAAa,GAGjCC,GAAa,EAAAC,EAAA,KAGbC,EAAmB,SAAa,MAChCC,EAAY,SAAa,MACzBC,EAAc,eAAkBC,IACpC,MAAM,QACJlE,EAAO,QACPC,EAAO,QACPC,EAAO,WACPC,EAAU,GACVgE,GACED,EACJR,GAAWU,GAAc,IAAIA,GAAyB,SAAKvB,GAAmB,CAC5E9C,QAAS,CACPW,QAAQ,EAAAD,EAAA,GAAKV,EAAQW,OAAQ,EAAmBA,QAChDC,eAAe,EAAAF,EAAA,GAAKV,EAAQY,cAAe,EAAmBA,eAC9DC,eAAe,EAAAH,EAAA,GAAKV,EAAQa,cAAe,EAAmBA,eAC9DjF,OAAO,EAAA8E,EAAA,GAAKV,EAAQpE,MAAO,EAAmBA,OAC9CsF,cAAc,EAAAR,EAAA,GAAKV,EAAQkB,aAAc,EAAmBA,cAC5DC,cAAc,EAAAT,EAAA,GAAKV,EAAQmB,aAAc,EAAmBA,eAE9Db,QAhKW,IAiKXL,QAASA,EACTC,QAASA,EACTC,QAASA,EACTC,WAAYA,GACXnD,EAAQjI,YACXiI,EAAQjI,SAAW,EACnB4O,EAAe5O,QAAUoP,CAAE,GAC1B,CAACpE,IACE9E,EAAQ,eAAkB,CAACtB,EAAQ,CAAC,EAAG0K,EAAU,CAAC,EAAGF,EAAK,YAC9D,MAAM,QACJnE,GAAU,EAAK,OACfsD,EAASC,GAAcc,EAAQrE,QAAO,YACtCsE,GAAc,GACZD,EACJ,GAA8C,eAAhC,MAAT1K,OAAgB,EAASA,EAAMvE,OAAyBwO,EAAkB7O,QAE7E,YADA6O,EAAkB7O,SAAU,GAGgB,gBAAhC,MAAT4E,OAAgB,EAASA,EAAMvE,QAClCwO,EAAkB7O,SAAU,GAE9B,MAAMwP,EAAUD,EAAc,KAAON,EAAUjP,QACzCyP,EAAOD,EAAUA,EAAQE,wBAA0B,CACvDjP,MAAO,EACPE,OAAQ,EACRqL,KAAM,EACND,IAAK,GAIP,IAAIb,EACAC,EACAC,EACJ,GAAImD,QAAoBoB,IAAV/K,GAAyC,IAAlBA,EAAMgL,SAAmC,IAAlBhL,EAAMiL,UAAkBjL,EAAMgL,UAAYhL,EAAM5C,QAC1GkJ,EAAU4E,KAAKC,MAAMN,EAAKhP,MAAQ,GAClC0K,EAAU2E,KAAKC,MAAMN,EAAK9O,OAAS,OAC9B,CACL,MAAM,QACJiP,EAAO,QACPC,GACEjL,EAAM5C,SAAW4C,EAAM5C,QAAQC,OAAS,EAAI2C,EAAM5C,QAAQ,GAAK4C,EACnEsG,EAAU4E,KAAKC,MAAMH,EAAUH,EAAKzD,MACpCb,EAAU2E,KAAKC,MAAMF,EAAUJ,EAAK1D,IACtC,CACA,GAAIwC,EACFnD,EAAa0E,KAAKE,MAAM,EAAIP,EAAKhP,OAAS,EAAIgP,EAAK9O,QAAU,GAAK,GAG9DyK,EAAa,GAAM,IACrBA,GAAc,OAEX,CACL,MAAM6E,EAAqF,EAA7EH,KAAKI,IAAIJ,KAAKK,KAAKX,EAAUA,EAAQ9O,YAAc,GAAKwK,GAAUA,GAAe,EACzFkF,EAAsF,EAA9EN,KAAKI,IAAIJ,KAAKK,KAAKX,EAAUA,EAAQ5O,aAAe,GAAKuK,GAAUA,GAAe,EAChGC,EAAa0E,KAAKE,KAAKC,GAAS,EAAIG,GAAS,EAC/C,CAGa,MAATxL,GAAiBA,EAAM5C,QAIQ,OAA7BgN,EAAiBhP,UAEnBgP,EAAiBhP,QAAU,KACzBkP,EAAY,CACVjE,UACAC,UACAC,UACAC,aACAgE,MACA,EAIJN,EAAW5I,MA3OS,IA2OW,KACzB8I,EAAiBhP,UACnBgP,EAAiBhP,UACjBgP,EAAiBhP,QAAU,KAC7B,KAIJkP,EAAY,CACVjE,UACAC,UACAC,UACAC,aACAgE,MAEJ,GACC,CAACZ,EAAYU,EAAaJ,IACvB7D,EAAU,eAAkB,KAChC/E,EAAM,CAAC,EAAG,CACR+E,SAAS,GACT,GACD,CAAC/E,IACEmK,EAAO,eAAkB,CAACzL,EAAOwK,KAKrC,GAJAN,EAAWwB,QAImC,cAAhC,MAAT1L,OAAgB,EAASA,EAAMvE,OAAwB2O,EAAiBhP,QAM3E,OALAgP,EAAiBhP,UACjBgP,EAAiBhP,QAAU,UAC3B8O,EAAW5I,MAAM,GAAG,KAClBmK,EAAKzL,EAAOwK,EAAG,IAInBJ,EAAiBhP,QAAU,KAC3B2O,GAAWU,GACLA,EAAWpN,OAAS,EACfoN,EAAWkB,MAAM,GAEnBlB,IAETT,EAAe5O,QAAUoP,CAAE,GAC1B,CAACN,IAMJ,OALA,sBAA0BnM,GAAK,KAAM,CACnCsI,UACA/E,QACAmK,UACE,CAACpF,EAAS/E,EAAOmK,KACD,SAAKlD,IAAiB,OAAS,CACjDjO,WAAW,EAAAwM,EAAA,GAAK,EAAmB8E,KAAMxF,EAAQwF,KAAMtR,GACvDyD,IAAKsM,GACJR,EAAO,CACRrL,UAAuB,SAAK,EAAiB,CAC3CqH,UAAW,KACX7B,MAAM,EACNxF,SAAUsL,MAGhB,I,WC1TO,SAAS+B,GAA0BnD,GACxC,OAAO,SAAqB,gBAAiBA,EAC/C,CAEA,QAD0B,EAAAd,EAAA,GAAuB,gBAAiB,CAAC,OAAQ,WAAY,iBCDvF,MAAM,GAAY,CAAC,SAAU,eAAgB,WAAY,YAAa,YAAa,WAAY,gBAAiB,qBAAsB,cAAe,wBAAyB,gBAAiB,SAAU,UAAW,gBAAiB,cAAe,UAAW,iBAAkB,YAAa,UAAW,cAAe,eAAgB,YAAa,aAAc,cAAe,eAAgB,WAAY,mBAAoB,iBAAkB,QAgCvakE,IAAiB,EAAAtD,EAAA,IAAO,SAAU,CAC7CC,KAAM,gBACNC,KAAM,OACNqD,kBAAmB,CAACzJ,EAAO0J,IAAWA,EAAOJ,MAHjB,CAI3B,CACDK,QAAS,cACTC,WAAY,SACZC,eAAgB,SAChBtD,SAAU,WACVuD,UAAW,aACXC,wBAAyB,cACzBC,gBAAiB,cAGjBC,QAAS,EACTC,OAAQ,EACRC,OAAQ,EAERxD,aAAc,EACdyD,QAAS,EAETC,OAAQ,UACRC,WAAY,OACZC,cAAe,SACfC,cAAe,OAEfC,iBAAkB,OAElBC,eAAgB,OAEhBC,MAAO,UACP,sBAAuB,CACrBC,YAAa,QAEf,CAAC,KAAK,GAAkBC,YAAa,CACnCvE,cAAe,OAEf+D,OAAQ,WAEV,eAAgB,CACdS,YAAa,WASXC,GAA0B,cAAiB,SAAoB5D,EAAS1L,GAC5E,MAAMuE,GAAQ,EAAAoH,EAAA,GAAc,CAC1BpH,MAAOmH,EACPhB,KAAM,mBAEF,OACF6E,EAAM,aACNC,GAAe,EAAK,SACpB/O,EAAQ,UACRlE,EAAS,UACTuL,EAAY,SAAQ,SACpBsH,GAAW,EAAK,cAChBK,GAAgB,EAAK,mBACrBC,GAAqB,EAAK,YAC1BC,GAAc,EAAK,cACnBC,EAAgB,IAAG,OACnBtM,EAAM,QACNuM,EAAO,cACPC,EAAa,YACbC,EAAW,QACX1M,EAAO,eACP2M,EAAc,UACdC,EAAS,QACTC,EAAO,YACPC,EAAW,aACXC,EAAY,UACZC,EAAS,WACTC,EAAU,YACVC,EAAW,aACXC,EAAY,SACZC,EAAW,EAAC,iBACZC,EAAgB,eAChBC,EAAc,KACdjT,GACE6G,EACJuH,GAAQ,OAA8BvH,EAAO,IACzCqM,EAAY,SAAa,MACzBC,EAAY,SAAa,MACzBC,GAAkB,EAAAC,EAAA,GAAWF,EAAWF,IACxC,kBACJvN,EACAC,QAAS2N,EACT1N,OAAQ2N,EACRjR,IAAKkR,GACH,KACGC,EAAcC,GAAmB,YAAe,GACnDhC,GAAY+B,GACdC,GAAgB,GAElB,sBAA0B7B,GAAQ,KAAM,CACtC4B,aAAc,KACZC,GAAgB,GAChBR,EAAUvT,QAAQgU,OAAO,KAEzB,IACJ,MAAOC,EAAcC,GAAmB,YAAe,GACvD,aAAgB,KACdA,GAAgB,EAAK,GACpB,IACH,MAAMC,EAAoBF,IAAiB7B,IAAkBL,EAM7D,SAASqC,GAAiBC,EAAcC,EAAeC,EAAmBlC,GACxE,OAAO,GAAiBzN,IAClB0P,GACFA,EAAc1P,GAMhB,OAJe2P,GACAf,EAAUxT,SACvBwT,EAAUxT,QAAQqU,GAAczP,IAE3B,CAAI,GAEf,CAhBA,aAAgB,KACVkP,GAAgBxB,IAAgBF,GAAiB6B,GACnDT,EAAUxT,QAAQiL,SACpB,GACC,CAACmH,EAAeE,EAAawB,EAAcG,IAa9C,MAAMO,GAAkBJ,GAAiB,QAAStB,GAC5C2B,GAAoBL,GAAiB,OAAQ3B,GAC7CiC,GAAkBN,GAAiB,OAAQ1B,GAC3CiC,GAAgBP,GAAiB,OAAQpB,GACzC4B,GAAmBR,GAAiB,QAAQxP,IAC5CkP,GACFlP,EAAMvD,iBAEJ0R,GACFA,EAAanO,EACf,IAEIiQ,GAAmBT,GAAiB,QAASjB,GAC7C2B,GAAiBV,GAAiB,OAAQnB,GAC1C8B,GAAkBX,GAAiB,OAAQlB,GAC3C8B,GAAaZ,GAAiB,QAAQxP,IAC1CgP,EAAkBhP,IACgB,IAA9BmB,EAAkB/F,SACpB+T,GAAgB,GAEd9N,GACFA,EAAOrB,EACT,IACC,GACGqQ,GAAc,GAAiBrQ,IAE9B2O,EAAUvT,UACbuT,EAAUvT,QAAU4E,EAAMsQ,eAE5BvB,EAAmB/O,IACe,IAA9BmB,EAAkB/F,UACpB+T,GAAgB,GACZpB,GACFA,EAAe/N,IAGfoB,GACFA,EAAQpB,EACV,IAEIuQ,GAAoB,KACxB,MAAMC,EAAS7B,EAAUvT,QACzB,OAAOyK,GAA2B,WAAdA,KAA+C,MAAnB2K,EAAO3P,SAAmB2P,EAAOC,KAAK,EAMlFC,GAAa,UAAa,GAC1B3Q,GAAgB,GAAiBC,IAEjC0N,IAAgBgD,GAAWtV,SAAW8T,GAAgBN,EAAUxT,SAAyB,MAAd4E,EAAMiC,MACnFyO,GAAWtV,SAAU,EACrBwT,EAAUxT,QAAQqQ,KAAKzL,GAAO,KAC5B4O,EAAUxT,QAAQkG,MAAMtB,EAAM,KAG9BA,EAAMS,SAAWT,EAAMsQ,eAAiBC,MAAqC,MAAdvQ,EAAMiC,KACvEjC,EAAMvD,iBAEJuR,GACFA,EAAUhO,GAIRA,EAAMS,SAAWT,EAAMsQ,eAAiBC,MAAqC,UAAdvQ,EAAMiC,MAAoBkL,IAC3FnN,EAAMvD,iBACFmR,GACFA,EAAQ5N,GAEZ,IAEI2Q,GAAc,GAAiB3Q,IAG/B0N,GAA6B,MAAd1N,EAAMiC,KAAe2M,EAAUxT,SAAW8T,IAAiBlP,EAAM4Q,mBAClFF,GAAWtV,SAAU,EACrBwT,EAAUxT,QAAQqQ,KAAKzL,GAAO,KAC5B4O,EAAUxT,QAAQiL,QAAQrG,EAAM,KAGhCiO,GACFA,EAAQjO,GAIN4N,GAAW5N,EAAMS,SAAWT,EAAMsQ,eAAiBC,MAAqC,MAAdvQ,EAAMiC,MAAgBjC,EAAM4Q,kBACxGhD,EAAQ5N,EACV,IAEF,IAAI6Q,GAAgBhL,EACE,WAAlBgL,KAA+BhH,EAAM4G,MAAQ5G,EAAMiH,MACrDD,GAAgBlD,GAElB,MAAMoD,GAAc,CAAC,EACC,WAAlBF,IACFE,GAAYtV,UAAgBsP,IAATtP,EAAqB,SAAWA,EACnDsV,GAAY5D,SAAWA,IAElBtD,EAAM4G,MAAS5G,EAAMiH,KACxBC,GAAYC,KAAO,UAEjB7D,IACF4D,GAAY,iBAAmB5D,IAGnC,MAAM8D,IAAY,EAAAnC,EAAA,GAAW/Q,EAAKkR,EAAiBN,GASnD,MAAMuC,IAAa,OAAS,CAAC,EAAG5O,EAAO,CACrCiL,eACA1H,YACAsH,WACAK,gBACAC,qBACAC,cACAc,WACAU,iBAEI9I,GA3QkB8K,KACxB,MAAM,SACJ/D,EAAQ,aACR+B,EAAY,sBACZiC,EAAqB,QACrB/K,GACE8K,EACEE,EAAQ,CACZxF,KAAM,CAAC,OAAQuB,GAAY,WAAY+B,GAAgB,iBAEnDmC,GAAkB,EAAAC,EAAA,GAAeF,EAAOvF,GAA2BzF,GAIzE,OAHI8I,GAAgBiC,IAClBE,EAAgBzF,MAAQ,IAAIuF,KAEvBE,CAAe,EA6PNE,CAAkBL,IAClC,OAAoB,UAAMpF,IAAgB,OAAS,CACjD0F,GAAIX,GACJvW,WAAW,EAAAwM,EAAA,GAAKV,GAAQwF,KAAMtR,GAC9B4W,WAAYA,GACZ7P,OAAQ+O,GACRxC,QAASA,EACTC,cAAegC,GACfzO,QAASiP,GACTrC,UAAWjO,GACXkO,QAAS0C,GACTzC,YAAa0B,GACbzB,aAAc6B,GACd5B,UAAW2B,GACXjC,YAAagC,GACbzB,WAAY6B,GACZ5B,YAAa6B,GACb5B,aAAc0B,GACdlS,IAAKkT,GACLzC,SAAUrB,GAAY,EAAIqB,EAC1B/S,KAAMA,GACLsV,GAAalH,EAAO,CACrBrL,SAAU,CAACA,EAAU+Q,GAGrB,SAAK,IAAa,OAAS,CACzBxR,IAAK8Q,EACLlF,OAAQ4D,GACPkB,IAAqB,QAE5B,IA+JA,U,WCtdA,QADuB,EAAA7G,EAAA,GAAuB,aAAc,CAAC,OAAQ,WAAY,YAAa,QAAS,SAAU,WAAY,QAAS,WAAY,eAAgB,uBAAwB,iBAAkB,gBAAiB,UAAW,oBCCxO,QAD4B,EAAAA,EAAA,GAAuB,kBAAmB,CAAC,OAAQ,wBCC/E,QAD4B,EAAAA,EAAA,GAAuB,kBAAmB,CAAC,OAAQ,YAAa,QAAS,QAAS,UAAW,cCHlH,SAAS6J,GAAwB/I,GACtC,OAAO,SAAqB,cAAeA,EAC7C,CAEA,QADwB,EAAAd,EAAA,GAAuB,cAAe,CAAC,OAAQ,eAAgB,QAAS,WAAY,UAAW,UAAW,aCDlI,MAAM,GAAY,CAAC,YAAa,YAAa,QAAS,UAAW,iBAAkB,wBAAyB,OAAQ,WAAY,aAsC1H8J,IAAe,EAAAlJ,EAAA,IAAO,GAAY,CACtCmJ,kBAAmBtP,IAAQ,EAAAuP,EAAA,GAAsBvP,IAAkB,YAATA,EAC1DoG,KAAM,cACNC,KAAM,OACNqD,kBAzB+B,CAACzJ,EAAO0J,KACvC,MAAM,WACJkF,GACE5O,EACJ,MAAO,CAAC0J,EAAOJ,KAAMsF,EAAWW,OAAS7F,EAAO6F,MAAOX,EAAWY,SAAW9F,EAAO8F,SAAUZ,EAAWa,gBAAkB/F,EAAOgG,QAAQ,GAiBvH,EAKlB,EACD7I,QACA+H,iBACI,OAAS,CAAC,EAAG/H,EAAM8I,WAAWC,MAAO,CACzCjG,QAAS,OACTE,eAAgB,aAChBD,WAAY,SACZrD,SAAU,WACVmE,eAAgB,OAChBmF,UAAW,GACXC,WAAY,EACZC,cAAe,EACfjG,UAAW,aACXkG,WAAY,WACVpB,EAAWa,gBAAkB,CAC/BQ,YAAa,GACbC,aAAc,IACbtB,EAAWY,SAAW,CACvB3T,aAAc,cAAcgL,EAAMsJ,MAAQtJ,GAAOuJ,QAAQZ,UACzDa,eAAgB,eACf,CACD,UAAW,CACT3F,eAAgB,OAChBV,iBAAkBnD,EAAMsJ,MAAQtJ,GAAOuJ,QAAQpF,OAAOsF,MAEtD,uBAAwB,CACtBtG,gBAAiB,gBAGrB,CAAC,KAAK,GAAgBuG,YAAa,CACjCvG,gBAAiBnD,EAAMsJ,KAAO,QAAQtJ,EAAMsJ,KAAKC,QAAQI,QAAQC,iBAAiB5J,EAAMsJ,KAAKC,QAAQpF,OAAO0F,oBAAqB,QAAM7J,EAAMuJ,QAAQI,QAAQG,KAAM9J,EAAMuJ,QAAQpF,OAAO0F,iBACxL,CAAC,KAAK,GAAgB9D,gBAAiB,CACrC5C,gBAAiBnD,EAAMsJ,KAAO,QAAQtJ,EAAMsJ,KAAKC,QAAQI,QAAQC,sBAAsB5J,EAAMsJ,KAAKC,QAAQpF,OAAO0F,qBAAqB7J,EAAMsJ,KAAKC,QAAQpF,OAAO4F,kBAAmB,QAAM/J,EAAMuJ,QAAQI,QAAQG,KAAM9J,EAAMuJ,QAAQpF,OAAO0F,gBAAkB7J,EAAMuJ,QAAQpF,OAAO4F,gBAGrR,CAAC,KAAK,GAAgBL,kBAAmB,CACvCvG,gBAAiBnD,EAAMsJ,KAAO,QAAQtJ,EAAMsJ,KAAKC,QAAQI,QAAQC,sBAAsB5J,EAAMsJ,KAAKC,QAAQpF,OAAO0F,qBAAqB7J,EAAMsJ,KAAKC,QAAQpF,OAAO6F,kBAAmB,QAAMhK,EAAMuJ,QAAQI,QAAQG,KAAM9J,EAAMuJ,QAAQpF,OAAO0F,gBAAkB7J,EAAMuJ,QAAQpF,OAAO6F,cAEjR,uBAAwB,CACtB7G,gBAAiBnD,EAAMsJ,KAAO,QAAQtJ,EAAMsJ,KAAKC,QAAQI,QAAQC,iBAAiB5J,EAAMsJ,KAAKC,QAAQpF,OAAO0F,oBAAqB,QAAM7J,EAAMuJ,QAAQI,QAAQG,KAAM9J,EAAMuJ,QAAQpF,OAAO0F,mBAG5L,CAAC,KAAK,GAAgB9D,gBAAiB,CACrC5C,iBAAkBnD,EAAMsJ,MAAQtJ,GAAOuJ,QAAQpF,OAAO8B,OAExD,CAAC,KAAK,GAAgBjC,YAAa,CACjCiG,SAAUjK,EAAMsJ,MAAQtJ,GAAOuJ,QAAQpF,OAAO+F,iBAEhD,CAAC,QAAQ,GAAezH,QAAS,CAC/B0H,UAAWnK,EAAMoK,QAAQ,GACzBC,aAAcrK,EAAMoK,QAAQ,IAE9B,CAAC,QAAQ,GAAeE,SAAU,CAChCC,WAAY,IAEd,CAAC,MAAM,GAAoB9H,QAAS,CAClC0H,UAAW,EACXE,aAAc,GAEhB,CAAC,MAAM,GAAoBC,SAAU,CACnClB,YAAa,IAEf,CAAC,MAAM,GAAoB3G,QAAS,CAClC+H,SAAU,MAEVzC,EAAWW,OAAS,CACtB,CAAC1I,EAAMyK,YAAYC,GAAG,OAAQ,CAC5B1B,UAAW,SAEZjB,EAAWW,QAAS,OAAS,CAC9BM,UAAW,GAEXC,WAAY,EACZC,cAAe,GACdlJ,EAAM8I,WAAW6B,MAAO,CACzB,CAAC,MAAM,GAAoBlI,YAAa,CACtCmI,SAAU,gBAwId,OArI8B,cAAiB,SAAkBtK,EAAS1L,GACxE,MAAMuE,GAAQ,EAAAoH,EAAA,GAAc,CAC1BpH,MAAOmH,EACPhB,KAAM,iBAEF,UACFuL,GAAY,EAAK,UACjBnO,EAAY,KAAI,MAChBgM,GAAQ,EAAK,QACbC,GAAU,EAAK,eACfC,GAAiB,EAAK,sBACtBZ,EAAqB,KACrBH,EAAO,WACPxC,SAAUyF,EAAY,UACtB3Z,GACEgI,EACJuH,GAAQ,OAA8BvH,EAAO,IACzCiC,EAAU,aAAiB2P,EAAA,GAC3BC,EAAe,WAAc,KAAM,CACvCtC,MAAOA,GAAStN,EAAQsN,QAAS,EACjCE,oBACE,CAACxN,EAAQsN,MAAOA,EAAOE,IACrBqC,EAAc,SAAa,OACjC,EAAAC,GAAA,IAAkB,KACZL,GACEI,EAAYhZ,SACdgZ,EAAYhZ,QAAQgU,OAIxB,GACC,CAAC4E,IACJ,MAAM9C,GAAa,OAAS,CAAC,EAAG5O,EAAO,CACrCuP,MAAOsC,EAAatC,MACpBC,UACAC,mBAEI3L,EAxIkB8K,KACxB,MAAM,SACJ/D,EAAQ,MACR0E,EAAK,QACLC,EAAO,eACPC,EAAc,SACdc,EAAQ,QACRzM,GACE8K,EACEE,EAAQ,CACZxF,KAAM,CAAC,OAAQiG,GAAS,QAAS1E,GAAY,YAAa4E,GAAkB,UAAWD,GAAW,UAAWe,GAAY,aAErHxB,GAAkB,EAAAC,EAAA,GAAeF,EAAOK,GAAyBrL,GACvE,OAAO,OAAS,CAAC,EAAGA,EAASiL,EAAgB,EA2H7B,CAAkB/O,GAC5B2O,GAAY,EAAAnC,EAAA,GAAWsF,EAAarW,GAC1C,IAAIyQ,EAIJ,OAHKlM,EAAM6K,WACTqB,OAA4BzD,IAAjBkJ,EAA6BA,GAAgB,IAEtC,SAAKC,EAAA,EAAYlO,SAAU,CAC7CC,MAAOkO,EACP3V,UAAuB,SAAKkT,IAAc,OAAS,CACjD3T,IAAKkT,EACLD,KAAMA,EACNxC,SAAUA,EACV3I,UAAWA,EACXsL,uBAAuB,EAAArK,EAAA,GAAKV,EAAQ8I,aAAciC,GAClD7W,WAAW,EAAAwM,EAAA,GAAKV,EAAQwF,KAAMtR,IAC7BuP,EAAO,CACRqH,WAAYA,EACZ9K,QAASA,MAGf,I,iCCrLO,SAASkO,GAA0B5L,GACxC,OAAO,SAAqB,oBAAqBA,EACnD,EAC0B,EAAAd,EAAA,GAAuB,oBAAqB,CAAC,OAAQ,UAAW,WAAY,QAAS,YAAa,YCD5H,MAAM,GAAY,CAAC,YAAa,UAAW,cAAe,YAAa,iBAAkB,WAAY,qBAAsB,OAAQ,OAAQ,KAAM,aAAc,WAAY,OAAQ,SAAU,WAAY,UAAW,WAAY,WAAY,WAAY,OAAQ,SA2B1P2M,IAAiB,EAAA/L,EAAA,IAAO,GAAP,EAAmB,EACxC0I,iBACI,OAAS,CACbxE,QAAS,EACTzD,aAAc,OACO,UAApBiI,EAAWsD,MAAoB,CAChCd,WAAgC,UAApBxC,EAAWuD,MAAoB,GAAK,IAC3B,QAApBvD,EAAWsD,MAAkB,CAC9BE,YAAiC,UAApBxD,EAAWuD,MAAoB,GAAK,OAE7CE,IAAkB,EAAAnM,EAAA,IAAO,QAAS,CACtCmJ,kBAAmBC,EAAA,GADG,CAErB,CACDjF,OAAQ,UACR9D,SAAU,WACVuK,QAAS,EACTvX,MAAO,OACPE,OAAQ,OACRoL,IAAK,EACLC,KAAM,EACNqF,OAAQ,EACRC,QAAS,EACT5D,OAAQ,IA2NV,OArNgC,cAAiB,SAAoBxG,EAAOvE,GAC1E,MAAM,UACFiW,EACAY,QAASC,EAAW,YACpBC,EAAW,UACXxa,EAAS,eACTya,EACA5H,SAAU6H,EAAY,mBACtBC,GAAqB,EAAK,KAC1BT,GAAO,EAAK,KACZU,EAAI,GACJC,EAAE,WACFC,EAAU,SACVC,EAAQ,KACR5M,EAAI,OACJpH,EAAM,SACNiU,EAAQ,QACRlU,EAAO,SACPN,EAAQ,SACRyU,GAAW,EAAK,SAChB/G,EAAQ,KACR/S,EAAI,MACJwK,GACE3D,EACJuH,GAAQ,OAA8BvH,EAAO,KACxCsS,EAASY,IAAmB,EAAAC,GAAA,GAAc,CAC/CC,WAAYb,EACZc,QAASC,QAAQb,GACjBtM,KAAM,aACN5D,MAAO,YAEHgR,GAAiB,EAAAC,GAAA,KA6BvB,IAAI3I,EAAW6H,EACXa,QACsB,IAAb1I,IACTA,EAAW0I,EAAe1I,UAG9B,MAAM4I,EAAuB,aAATta,GAAgC,UAATA,EACrCyV,GAAa,OAAS,CAAC,EAAG5O,EAAO,CACrCsS,UACAzH,WACA8H,qBACAT,SAEIpO,EAlHkB8K,KACxB,MAAM,QACJ9K,EAAO,QACPwO,EAAO,SACPzH,EAAQ,KACRqH,GACEtD,EACEE,EAAQ,CACZxF,KAAM,CAAC,OAAQgJ,GAAW,UAAWzH,GAAY,WAAYqH,GAAQ,QAAO,EAAAwB,GAAA,GAAWxB,MACvFyB,MAAO,CAAC,UAEV,OAAO,EAAA3E,EAAA,GAAeF,EAAOkD,GAA2BlO,EAAQ,EAuGhD,CAAkB8K,GAClC,OAAoB,UAAMqD,IAAgB,OAAS,CACjD1O,UAAW,OACXvL,WAAW,EAAAwM,EAAA,GAAKV,EAAQwF,KAAMtR,GAC9BiT,cAAc,EACdG,aAAcuH,EACd9H,SAAUA,EACVqB,SAAU,KACVwC,UAAMjG,EACN3J,QAlDkBpB,IACdoB,GACFA,EAAQpB,GAEN6V,GAAkBA,EAAezU,SACnCyU,EAAezU,QAAQpB,EACzB,EA6CAqB,OA3CiBrB,IACbqB,GACFA,EAAOrB,GAEL6V,GAAkBA,EAAexU,QACnCwU,EAAexU,OAAOrB,EACxB,EAsCAkR,WAAYA,EACZnT,IAAKA,GACJ8L,EAAO,CACRrL,SAAU,EAAc,SAAKmW,IAAiB,OAAS,CACrDX,UAAWA,EACXY,QAASC,EACTE,eAAgBA,EAChBza,UAAW8L,EAAQ6P,MACnB9I,SAAUA,EACVgI,GAAIY,EAAcZ,OAAKpK,EACvBtC,KAAMA,EACN6M,SA/CsBtV,IAExB,GAAIA,EAAMkW,YAAYtF,iBACpB,OAEF,MAAMuF,EAAanW,EAAMS,OAAOmU,QAChCY,EAAgBW,GACZb,GAEFA,EAAStV,EAAOmW,EAClB,EAsCErV,SAAUA,EACV/C,IAAKsX,EACLE,SAAUA,EACVrE,WAAYA,EACZ1C,SAAUA,EACV/S,KAAMA,GACI,aAATA,QAAiCsP,IAAV9E,EAAsB,CAAC,EAAI,CACnDA,SACCmP,IAAcR,EAAUE,EAAcI,KAE7C,I,WC5JA,IAAe,EAAAkB,GAAA,IAA4B,SAAK,OAAQ,CACtDzb,EAAG,+FACD,wBCFJ,IAAe,EAAAyb,GAAA,IAA4B,SAAK,OAAQ,CACtDzb,EAAG,wIACD,YCFJ,IAAe,EAAAyb,GAAA,IAA4B,SAAK,OAAQ,CACtDzb,EAAG,kGACD,yBCTG,SAAS0b,GAAwB3N,GACtC,OAAO,SAAqB,cAAeA,EAC7C,CAEA,QADwB,EAAAd,EAAA,GAAuB,cAAe,CAAC,OAAQ,UAAW,WAAY,gBAAiB,eAAgB,iBAAkB,YAAa,eCD9J,MAAM,GAAY,CAAC,cAAe,QAAS,OAAQ,gBAAiB,oBAAqB,aAAc,OAAQ,aA6BzG0O,IAAe,EAAA9N,EAAA,IAAO,GAAY,CACtCmJ,kBAAmBtP,IAAQ,EAAAuP,EAAA,GAAsBvP,IAAkB,YAATA,EAC1DoG,KAAM,cACNC,KAAM,OACNqD,kBAAmB,CAACzJ,EAAO0J,KACzB,MAAM,WACJkF,GACE5O,EACJ,MAAO,CAAC0J,EAAOJ,KAAMsF,EAAWqF,eAAiBvK,EAAOuK,cAAevK,EAAO,QAAO,EAAAgK,GAAA,GAAW9E,EAAWuD,SAA+B,YAArBvD,EAAWjE,OAAuBjB,EAAO,SAAQ,EAAAgK,GAAA,GAAW9E,EAAWjE,UAAU,GARrL,EAUlB,EACD9D,QACA+H,iBACI,OAAS,CACbjE,OAAQ9D,EAAMsJ,MAAQtJ,GAAOuJ,QAAQvT,KAAKqX,YACxCtF,EAAW1D,eAAiB,CAC9B,UAAW,CACTlB,gBAAiBnD,EAAMsJ,KAAO,QAA6B,YAArBvB,EAAWjE,MAAsB9D,EAAMsJ,KAAKC,QAAQpF,OAAOmJ,cAAgBtN,EAAMsJ,KAAKC,QAAQxB,EAAWjE,OAAO8F,iBAAiB5J,EAAMsJ,KAAKC,QAAQpF,OAAO6F,iBAAkB,QAA2B,YAArBjC,EAAWjE,MAAsB9D,EAAMuJ,QAAQpF,OAAOoJ,OAASvN,EAAMuJ,QAAQxB,EAAWjE,OAAOgG,KAAM9J,EAAMuJ,QAAQpF,OAAO6F,cAEnV,uBAAwB,CACtB7G,gBAAiB,iBAGC,YAArB4E,EAAWjE,OAAuB,CACnC,CAAC,KAAK,GAAgB2H,cAAc,GAAgB2B,iBAAkB,CACpEtJ,OAAQ9D,EAAMsJ,MAAQtJ,GAAOuJ,QAAQxB,EAAWjE,OAAOgG,MAEzD,CAAC,KAAK,GAAgB9F,YAAa,CACjCF,OAAQ9D,EAAMsJ,MAAQtJ,GAAOuJ,QAAQpF,OAAOH,cAG1CwJ,IAAkC,SAAKC,GAAc,CAAC,GACtDC,IAA2B,SAAKC,GAA0B,CAAC,GAC3DC,IAAwC,SAAKC,GAA2B,CAAC,GAiJ/E,OAhJ8B,cAAiB,SAAkBvN,EAAS1L,GACxE,IAAIkZ,EAAsBC,EAC1B,MAAM5U,GAAQ,EAAAoH,EAAA,GAAc,CAC1BpH,MAAOmH,EACPhB,KAAM,iBAEF,YACFqM,EAAc6B,GAAkB,MAChC1J,EAAQ,UACRiI,KAAMiC,EAAWN,GAAW,cAC5BN,GAAgB,EAChBa,kBAAmBC,EAAwBN,GAAwB,WACnE3B,EAAU,KACVX,EAAO,SAAQ,UACfna,GACEgI,EACJuH,GAAQ,OAA8BvH,EAAO,IACzC4S,EAAOqB,EAAgBc,EAAwBF,EAC/CC,EAAoBb,EAAgBc,EAAwBvC,EAC5D5D,GAAa,OAAS,CAAC,EAAG5O,EAAO,CACrC2K,QACAsJ,gBACA9B,SAEIrO,EAvEkB8K,KACxB,MAAM,QACJ9K,EAAO,cACPmQ,EAAa,MACbtJ,EAAK,KACLwH,GACEvD,EACEE,EAAQ,CACZxF,KAAM,CAAC,OAAQ2K,GAAiB,gBAAiB,SAAQ,EAAAP,GAAA,GAAW/I,KAAU,QAAO,EAAA+I,GAAA,GAAWvB,OAE5FpD,GAAkB,EAAAC,EAAA,GAAeF,EAAOiF,GAAyBjQ,GACvE,OAAO,OAAS,CAAC,EAAGA,EAASiL,EAAgB,EA4D7B,CAAkBH,GAClC,OAAoB,SAAKoF,IAAc,OAAS,CAC9C7a,KAAM,WACN2Z,YAAY,OAAS,CACnB,qBAAsBmB,GACrBnB,GACHF,KAAmB,eAAmBA,EAAM,CAC1CnB,SAA0D,OAA/CkD,EAAuB/B,EAAK5S,MAAMyR,UAAoBkD,EAAuBxC,IAE1FK,YAA0B,eAAmBsC,EAAmB,CAC9DrD,SAAwE,OAA7DmD,EAAwBE,EAAkB9U,MAAMyR,UAAoBmD,EAAwBzC,IAEzGvD,WAAYA,EACZnT,IAAKA,EACLzD,WAAW,EAAAwM,EAAA,GAAKV,EAAQwF,KAAMtR,IAC7BuP,EAAO,CACRzD,QAASA,IAEb,IC8GA,OAhMoB/L,IAMb,IAADid,EAAAC,EAAAC,EAAA,IANe,OACnBC,EAAM,iBACNC,GAIDrd,EACC,MAAM,EAACsd,EAAU,EAACC,IAAgB7c,EAAAA,EAAAA,WAAkB,IAC9C,EAAC8c,EAAe,EAACC,IAAqB/c,EAAAA,EAAAA,WAAkB,IAExD,SACJgd,EAAQ,aACRC,EAAY,QACZC,EAAO,MACPC,EACAC,WAAW,OAAEC,EAAM,QAAEC,KACnBC,EAAAA,EAAAA,IAA0B,CAC5BC,KAAM,SACNC,UAAUC,EAAAA,EAAAA,GAAYC,EAAAA,GACtBC,cAAe,CACbC,kBAAkB,KA2BhBC,EAAkBA,CACtB5W,EACA6W,EACAC,EACAC,KACI,IAADC,EACH,OACE1e,EAAAA,cAAC2e,EAAAA,GAAgBxX,OAAAyX,OAAA,CACfhE,GAAIlT,EACJ6W,MAAOA,EACPM,QAAQ,WACRzY,QAAoB,QAAZsY,EAACb,EAAOnW,UAAI,IAAAgX,IAAXA,EAAaI,SACtBC,YAAYC,EAAAA,EAAAA,IAAqBtX,EAAKmW,EAAQV,GAC9C,aAAYzV,EACZuX,WAAS,EACTT,UAAWA,EACXC,KAAMA,EACNvE,KAAK,SACDsD,EAAS9V,IACb,EAIN,OACE1H,EAAAA,cAAA,QACEkf,SAAUzB,GAhDoC0B,UAChD,IAAKrB,EAAS,OAEdT,GAAa,GAEb,MAAM+B,GAAOC,EAAAA,EAAAA,GAAU,cAEjBC,GAAcC,EAAAA,EAAAA,IAAmBne,EAAMge,GAE7C,IAO0B,aANDI,EAAAA,EAAWC,KAIhC,wCAAyCH,IAE9BI,QAAgB/B,GAC/B,CAAE,MAAO1b,GAAS,IAAD0d,EAAAC,EACfC,QAAQC,IAAI,gBAA2B,QAAZH,EAAE1d,EAAE8d,gBAAQ,IAAAJ,GAAM,QAANC,EAAVD,EAAYve,YAAI,IAAAwe,OAAN,EAAVA,EAAkBd,QACjD,CAEAzB,GAAa,EAAM,IA4BjBtd,UAAU,gCAETue,EAAgB,QAASpB,EAAO8C,YAChC1B,EAAgB,UAAWpB,EAAO+C,kBAClC3B,EAAgB,YAAapB,EAAOgD,WAErClgB,EAAAA,cAAC2e,EAAAA,GAAgBxX,OAAAyX,OAAA,CACfhE,GAAI,WACJ2D,MAAOrB,EAAOiD,cACdtB,QAAQ,WACRuB,QAAM,EACNC,aAAa,GACbja,QAA2B,QAAnB2W,EAACc,EAAiB,gBAAC,IAAAd,IAAlBA,EAAoB+B,SAC7BC,YAAYC,EAAAA,EAAAA,IAAqB,WAAYnB,EAAQV,GACrD,aAAY,WACZ8B,WAAS,EACT/E,KAAK,SACDsD,EAAS,aAEZrW,OAAOwC,OAAO2W,EAAAA,IAAiBhZ,KAAKiZ,GACnCvgB,EAAAA,cAACwgB,GAAQ,CAAC9Y,IAAK6Y,EAAS7U,MAAO6U,GAC5BrD,EAAOuD,gBAAgBF,OAK9BvgB,EAAAA,cAAC2e,EAAAA,GAAgBxX,OAAAyX,OAAA,CACfhE,GAAI,SACJ2D,MAAOrB,EAAOwD,YACd7B,QAAQ,WACRuB,QAAM,EACNC,aAAa,GACbja,QAAyB,QAAjB4W,EAACa,EAAe,cAAC,IAAAb,IAAhBA,EAAkB8B,SAC3BC,YAAYC,EAAAA,EAAAA,IAAqB,SAAUnB,EAAQV,GACnD,aAAY,SACZ8B,WAAS,EACT/E,KAAK,SACDsD,EAAS,WAEZrW,OAAOwC,OAAOgX,EAAAA,IAAerZ,KAAKsZ,GACjC5gB,EAAAA,cAACwgB,GAAQ,CAAC9Y,IAAKkZ,EAAQlV,MAAOkV,GAC3B1D,EAAO2D,cAAcD,OAK3BtC,EACC,wBACApB,EAAO4D,kBACP,EACA,GAGF9gB,EAAAA,cAAC+gB,EAAAA,GAAU,CACTrD,QAASA,EACTxP,KAAK,mBACL/C,OAAQ6V,IAAA,IAAGC,OAAO,SAAElG,EAAQ,IAAEvX,EAAG,MAAEkI,IAASsV,EAAA,OAC1ChhB,EAAAA,cAACkhB,EAAAA,GAAY,CACXxD,QACE1d,EAAAA,cAACmhB,GAAQ,CACPvG,GAAI,mBACJP,QAAS3O,EACTqP,SAAW9Y,IACT8Y,EAAS9Y,GACTsb,IAAoBtb,EAAEiE,OAAOmU,QAAQ,EAEvC+G,GAAI,CACF1O,MAAQ4K,EAA6B,OAAZ,UACzB,gBAAiB,CACf5K,MAAO,SAGXoI,SAAUtX,IAGd+a,MAAOrB,EAAOmE,2BACd,aAAY,mBACZD,GAAI,CAAErI,UAAW,SACjB,IAGkB,QAAvBkE,EAAAY,EAAOQ,wBAAgB,IAAApB,GAAvBA,EAAyB6B,UAAYxB,EACpCtd,EAAAA,cAAA,KAAGD,UAAU,qCACVod,aAAgB,EAAhBA,EAAkBmE,SAEnB,KAEJthB,EAAAA,cAACkhB,EAAAA,GAAY,CACXxD,QACE1d,EAAAA,cAACmhB,GAAQ,CACP3G,gBAAc,EACd4G,GAAI,CACF1O,MAAO,OACP,gBAAiB,CACfA,MAAO,WAKf6L,MAAOrB,EAAOqE,iBACd,aAAY,qBAGdvhB,EAAAA,cAAA,OAAKD,UAAU,uDACbC,EAAAA,cAAA,UACEkB,KAAK,SACL0R,SAAUwK,IAAcE,EACxBvd,UAAW,kLACTqd,EAAY,aAAe,gBAG5BA,EAAYpd,EAAAA,cAACwhB,EAAAA,EAAY,MAAM,KAChCxhB,EAAAA,cAAA,QAAMD,UAAU,QAAQmd,EAAOuE,YAAYC,iBAG1C,E,WCnJX,OA1D2B5hB,IAAsB,IAAD6hB,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAA,IAApB,KAAEC,GAAatiB,EACzC,MAAMuiB,GAAaC,EAAAA,EAAAA,IAAeC,IAC5BC,EAAYH,SAAsB,QAAZV,EAAVU,EAAYI,kBAAU,IAAAd,GAAO,QAAPC,EAAtBD,EAAwBe,aAAK,IAAAd,GAE9C,QAF8CC,EAA7BD,EAA+Be,MAC9Ctc,GAASA,EAAKuc,OAAOC,WAAaT,WACpC,IAAAP,OAF2B,EAAVA,EAEfiB,YACGC,EAAaP,aAAS,EAATA,EAAWQ,YACxB7F,EAAmBqF,aAAS,EAATA,EAAWS,WAEpC,IAAIC,EAKJ,OAHEA,EADEd,KAAQC,EACQA,SAAkB,QAARP,EAAVO,EAAaD,UAAK,IAAAN,GAAO,QAAPC,EAAlBD,EAAoBY,aAAK,IAAAX,GAAK,QAALC,EAAzBD,EAA4B,UAAE,IAAAC,OAApB,EAAVA,EAAgCmB,KAC7Bd,SAAc,QAAJJ,EAAVI,EAAYe,UAAE,IAAAnB,GAAO,QAAPC,EAAdD,EAAgBS,aAAK,IAAAR,GAAK,QAALC,EAArBD,EAAwB,UAAE,IAAAC,OAAhB,EAAVA,EAA4BgB,KAGjDnjB,EAAAA,cAAAA,EAAAA,SAAA,KACG+iB,EACC/iB,EAAAA,cAAAA,EAAAA,SAAA,KACEA,EAAAA,cAAA,WAASD,UAAW,0CAClBC,EAAAA,cAAA,OACE4a,GAAG,eACH7a,UAAU,kDACX,UAGDC,EAAAA,cAACqE,GAAAA,EAAgB,CACfgf,cAAc,iBACdtjB,UAAW,uCAEXC,EAAAA,cAAA,OAAKD,UAAU,qFACbC,EAAAA,cAAA,MAAID,UAAW,2CACZgjB,aAAU,EAAVA,EAAYO,aAAa5B,eAE5B1hB,EAAAA,cAAA,OACED,UAAW,+FAEVgjB,aAAU,EAAVA,EAAYQ,iBAAiB7B,gBAGlC1hB,EAAAA,cAAA,OAAKD,UAAU,uFACZmjB,EACCljB,EAAAA,cAAA,KACED,UAAU,4DACVyjB,wBAAyB,CAAEC,OAAQP,KAEnC,KACJljB,EAAAA,cAAC0jB,GAAW,CACVxG,OAAQ6F,EACR5F,iBAAkBA,QAM1B,KACH,EAMA,MAAMoF,GAAK,W,uBCtElB,IAAIviB,EAAQ,EAAQ,MAEpB,SAASoE,EAAQ2D,GACb,OAAO/H,EAAM2jB,cAAc,MAAM5b,EAAM,CAAC/H,EAAM2jB,cAAc,OAAO,CAAC,MAAQ,MAAM,OAAS,IAAI,OAAS,UAAU,YAAc,IAAI,gBAAkB,MAAM,GAAK,IAAI,GAAK,OAAO,GAAK,IAAI,GAAK,IAAI,IAAM,IAAI3jB,EAAM2jB,cAAc,OAAO,CAAC,MAAQ,MAAM,OAAS,IAAI,OAAS,UAAU,YAAc,IAAI,gBAAkB,MAAM,GAAK,IAAI,GAAK,OAAO,GAAK,IAAI,GAAK,IAAI,IAAM,KAClX,CAEAvf,EAAOwH,aAAe,CAAC,OAAS,KAEhCgY,EAAOC,QAAUzf,EAEjBA,EAAOgX,QAAUhX,C","sources":["webpack://code-cave/./src/components/common/spinner.tsx","webpack://code-cave/./src/components/babylonjs/babylon.tsx","webpack://code-cave/./src/components/common/banner.tsx","webpack://code-cave/./node_modules/@mui/material/utils/useEventCallback.js","webpack://code-cave/./node_modules/@mui/utils/useIsFocusVisible/useIsFocusVisible.js","webpack://code-cave/./node_modules/@mui/material/utils/useIsFocusVisible.js","webpack://code-cave/./node_modules/react-transition-group/esm/utils/ChildMapping.js","webpack://code-cave/./node_modules/react-transition-group/esm/TransitionGroup.js","webpack://code-cave/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://code-cave/./node_modules/@mui/material/ButtonBase/Ripple.js","webpack://code-cave/./node_modules/@mui/material/ButtonBase/touchRippleClasses.js","webpack://code-cave/./node_modules/@mui/material/ButtonBase/TouchRipple.js","webpack://code-cave/./node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","webpack://code-cave/./node_modules/@mui/material/ButtonBase/ButtonBase.js","webpack://code-cave/./node_modules/@mui/material/Divider/dividerClasses.js","webpack://code-cave/./node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","webpack://code-cave/./node_modules/@mui/material/ListItemText/listItemTextClasses.js","webpack://code-cave/./node_modules/@mui/material/MenuItem/menuItemClasses.js","webpack://code-cave/./node_modules/@mui/material/MenuItem/MenuItem.js","webpack://code-cave/./node_modules/@mui/material/internal/switchBaseClasses.js","webpack://code-cave/./node_modules/@mui/material/internal/SwitchBase.js","webpack://code-cave/./node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","webpack://code-cave/./node_modules/@mui/material/internal/svg-icons/CheckBox.js","webpack://code-cave/./node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","webpack://code-cave/./node_modules/@mui/material/Checkbox/checkboxClasses.js","webpack://code-cave/./node_modules/@mui/material/Checkbox/Checkbox.js","webpack://code-cave/./src/components/forms/contactForm.tsx","webpack://code-cave/./src/components/common/contactFormSection.tsx","webpack://code-cave/./src/assets/common/border.svg"],"sourcesContent":["import React from \"react\";\n\nconst Spinner = ({ className }: { className?: string }) => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport default Spinner;\n","import React, { useEffect, useRef, useState } from \"react\";\n\nimport Spinner from \"../common/spinner\";\n\nconst Babylon = () => {\n const [isBabylonReady, setIsBabylonReady] = useState(false);\n const isInitial = useRef(true);\n const canvasRef = useRef(null);\n\n useEffect(() => {\n if (\n !isInitial.current ||\n !canvasRef.current ||\n typeof window == \"undefined\"\n )\n return;\n\n isInitial.current = false;\n\n // WORKER instance creation\n const babylonWorker = new Worker(\n new URL(\"../../workers/babylon.worker.ts\", import.meta.url),\n {\n type: \"module\",\n }\n );\n babylonWorker.onmessage = ({ data }) => {\n if (data === \"ready\") setIsBabylonReady(true);\n };\n\n // OFFSCREEN canvas\n const canvas = canvasRef.current;\n canvas.width = canvas.clientWidth;\n canvas.height = canvas.clientHeight;\n\n const offscreenCanvas = canvas.transferControlToOffscreen();\n babylonWorker.postMessage({ canvas: offscreenCanvas }, [offscreenCanvas]);\n\n // RESIZE handler\n const onResizeHandler = () => {\n babylonWorker.postMessage({\n width: canvas.clientWidth,\n height: canvas.clientHeight,\n });\n };\n window.addEventListener(\"resize\", onResizeHandler, { passive: true });\n\n // WHEEL handler\n const onWheelHandler = (e: WheelEvent) => {\n e.preventDefault();\n babylonWorker.postMessage({ wheel: e.deltaY });\n };\n canvas.addEventListener(\"wheel\", onWheelHandler);\n\n // ROTATE mouse handler\n const onMouseMoveHandler = (e: MouseEvent) => {\n babylonWorker.postMessage({\n x: e.movementX,\n y: e.movementY,\n });\n };\n canvas.addEventListener(\"mousedown\", (e: MouseEvent) => {\n e.preventDefault();\n window.addEventListener(\"mousemove\", onMouseMoveHandler, {\n passive: true,\n });\n window.addEventListener(\n \"mouseup\",\n () => window.removeEventListener(\"mousemove\", onMouseMoveHandler),\n { once: true, passive: true }\n );\n });\n\n // ROTATE touch handler\n const nestedTouchMoveHandler = (\n e: TouchEvent,\n previousCoords: { x: number; y: number }\n ) => {\n const touch = e.touches[0];\n babylonWorker.postMessage({\n x: touch.screenX - previousCoords.x,\n y: touch.screenY - previousCoords.y,\n });\n\n return {\n newX: touch.screenX,\n newY: touch.screenY,\n };\n };\n let onTouchMoveHandler: (e: TouchEvent) => void;\n canvas.addEventListener(\n \"touchstart\",\n (e: TouchEvent) => {\n if (e.touches.length !== 1) return;\n\n const firstTouch = e.touches[0];\n\n e.preventDefault();\n const previousCoords = {\n x: firstTouch.screenX,\n y: firstTouch.screenY,\n };\n\n onTouchMoveHandler = (e: TouchEvent) => {\n const { newX, newY } = nestedTouchMoveHandler(e, previousCoords);\n previousCoords.x = newX;\n previousCoords.y = newY;\n };\n\n window.addEventListener(\"touchmove\", onTouchMoveHandler, {\n passive: true,\n });\n window.addEventListener(\n \"touchend\",\n () => {\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n },\n { passive: true }\n );\n },\n { passive: true }\n );\n\n // UNMOUNT handler\n return () => {\n if (!window) return;\n\n window.removeEventListener(\"resize\", onResizeHandler);\n window.removeEventListener(\"mousemove\", onMouseMoveHandler);\n window.removeEventListener(\"touchmove\", onTouchMoveHandler);\n if (canvas) {\n canvas.removeEventListener(\"wheel\", onWheelHandler);\n }\n babylonWorker.terminate();\n };\n }, []);\n\n return (\n
\n \n {!isBabylonReady ? (\n \n ) : null}\n
\n );\n};\n\nexport default Babylon;\n","import React, { useEffect, useState } from \"react\";\nimport { GatsbyImage, IGatsbyImageData } from \"gatsby-plugin-image\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\nimport Babylon from \"../babylonjs/babylon\";\n\n// interface IBannerProps {\n// heightClass?: string;\n// title: string;\n// className?: string;\n// borderBottom?: boolean;\n// borderTop?: boolean;\n// babylon?: boolean;\n// image?: IGatsbyImageData;\n// }\ntype TBannerCommonProps = {\n heightClass?: string;\n title: string;\n className?: string;\n borderBottom?: boolean;\n borderTop?: boolean;\n};\ntype TBannerConditionalProps =\n | {\n babylon?: boolean;\n image?: never;\n children?: never;\n titleBlockClassName?: never;\n }\n | {\n babylon?: never;\n image?: IGatsbyImageData;\n children?: never;\n titleBlockClassName?: never;\n }\n | {\n babylon?: never;\n image?: never;\n children?: React.ReactNode;\n titleBlockClassName?: string;\n };\ntype TBannerProps = TBannerCommonProps & TBannerConditionalProps;\n\nconst Banner = ({\n heightClass = \"min-h-91\",\n title,\n className,\n borderBottom,\n borderTop,\n babylon,\n image,\n titleBlockClassName,\n children,\n}: TBannerProps) => {\n const [textTranslate, setTextTranslate] = useState<\n \"translate-y-full\" | \"translate-y-0\"\n >(\"translate-y-full\");\n useEffect(() => {\n setTextTranslate(\"translate-y-0\");\n }, []);\n\n return (\n \n {borderTop ? (\n \n ) : null}\n \n \n

\n \n {title}\n \n

\n \n {babylon ? (\n \n ) : null}\n {image ? (\n
\n \n
\n ) : null}\n {children ? (\n
\n {children}\n
\n ) : null}\n \n {borderBottom ? (\n \n ) : null}\n \n );\n};\n\nexport default Banner;\n","'use client';\n\nimport useEventCallback from '@mui/utils/useEventCallback';\nexport default useEventCallback;","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nimport { Timeout } from '../useTimeout/useTimeout';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nconst hadFocusVisibleRecentlyTimeout = new Timeout();\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n hadFocusVisibleRecentlyTimeout.start(100, () => {\n hadFocusVisibleRecently = false;\n });\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","'use client';\n\nimport useIsFocusVisible from '@mui/utils/useIsFocusVisible';\nexport default useIsFocusVisible;","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction Ripple(props) {\n const {\n className,\n classes,\n pulsate = false,\n rippleX,\n rippleY,\n rippleSize,\n in: inProp,\n onExited,\n timeout\n } = props;\n const [leaving, setLeaving] = React.useState(false);\n const rippleClassName = clsx(className, classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n const rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n const childClassName = clsx(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n if (!inProp && !leaving) {\n setLeaving(true);\n }\n React.useEffect(() => {\n if (!inProp && onExited != null) {\n // react-transition-group#onExited\n const timeoutId = setTimeout(onExited, timeout);\n return () => {\n clearTimeout(timeoutId);\n };\n }\n return undefined;\n }, [onExited, inProp, timeout]);\n return /*#__PURE__*/_jsx(\"span\", {\n className: rippleClassName,\n style: rippleStyles,\n children: /*#__PURE__*/_jsx(\"span\", {\n className: childClassName\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n /**\n * @ignore - injected from TransitionGroup\n */\n in: PropTypes.bool,\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: PropTypes.func,\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: PropTypes.bool,\n /**\n * Diameter of the ripple.\n */\n rippleSize: PropTypes.number,\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: PropTypes.number,\n /**\n * Vertical position of the ripple center.\n */\n rippleY: PropTypes.number,\n /**\n * exit delay\n */\n timeout: PropTypes.number.isRequired\n} : void 0;\nexport default Ripple;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getTouchRippleUtilityClass(slot) {\n return generateUtilityClass('MuiTouchRipple', slot);\n}\nconst touchRippleClasses = generateUtilityClasses('MuiTouchRipple', ['root', 'ripple', 'rippleVisible', 'ripplePulsate', 'child', 'childLeaving', 'childPulsate']);\nexport default touchRippleClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"center\", \"classes\", \"className\"];\nlet _ = t => t,\n _t,\n _t2,\n _t3,\n _t4;\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { TransitionGroup } from 'react-transition-group';\nimport clsx from 'clsx';\nimport { keyframes } from '@mui/system';\nimport useTimeout from '@mui/utils/useTimeout';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Ripple from './Ripple';\nimport touchRippleClasses from './touchRippleClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst DURATION = 550;\nexport const DELAY_RIPPLE = 80;\nconst enterKeyframe = keyframes(_t || (_t = _`\n 0% {\n transform: scale(0);\n opacity: 0.1;\n }\n\n 100% {\n transform: scale(1);\n opacity: 0.3;\n }\n`));\nconst exitKeyframe = keyframes(_t2 || (_t2 = _`\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n }\n`));\nconst pulsateKeyframe = keyframes(_t3 || (_t3 = _`\n 0% {\n transform: scale(1);\n }\n\n 50% {\n transform: scale(0.92);\n }\n\n 100% {\n transform: scale(1);\n }\n`));\nexport const TouchRippleRoot = styled('span', {\n name: 'MuiTouchRipple',\n slot: 'Root'\n})({\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n});\n\n// This `styled()` function invokes keyframes. `styled-components` only supports keyframes\n// in string templates. Do not convert these styles in JS object as it will break.\nexport const TouchRippleRipple = styled(Ripple, {\n name: 'MuiTouchRipple',\n slot: 'Ripple'\n})(_t4 || (_t4 = _`\n opacity: 0;\n position: absolute;\n\n &.${0} {\n opacity: 0.3;\n transform: scale(1);\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n &.${0} {\n animation-duration: ${0}ms;\n }\n\n & .${0} {\n opacity: 1;\n display: block;\n width: 100%;\n height: 100%;\n border-radius: 50%;\n background-color: currentColor;\n }\n\n & .${0} {\n opacity: 0;\n animation-name: ${0};\n animation-duration: ${0}ms;\n animation-timing-function: ${0};\n }\n\n & .${0} {\n position: absolute;\n /* @noflip */\n left: 0px;\n top: 0;\n animation-name: ${0};\n animation-duration: 2500ms;\n animation-timing-function: ${0};\n animation-iteration-count: infinite;\n animation-delay: 200ms;\n }\n`), touchRippleClasses.rippleVisible, enterKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.ripplePulsate, ({\n theme\n}) => theme.transitions.duration.shorter, touchRippleClasses.child, touchRippleClasses.childLeaving, exitKeyframe, DURATION, ({\n theme\n}) => theme.transitions.easing.easeInOut, touchRippleClasses.childPulsate, pulsateKeyframe, ({\n theme\n}) => theme.transitions.easing.easeInOut);\n\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\nconst TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTouchRipple'\n });\n const {\n center: centerProp = false,\n classes = {},\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [ripples, setRipples] = React.useState([]);\n const nextKey = React.useRef(0);\n const rippleCallback = React.useRef(null);\n React.useEffect(() => {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]);\n\n // Used to filter out mouse emulated events on mobile.\n const ignoringMouseDown = React.useRef(false);\n // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n const startTimer = useTimeout();\n\n // This is the hook called once the previous timeout is ready.\n const startTimerCommit = React.useRef(null);\n const container = React.useRef(null);\n const startCommit = React.useCallback(params => {\n const {\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n } = params;\n setRipples(oldRipples => [...oldRipples, /*#__PURE__*/_jsx(TouchRippleRipple, {\n classes: {\n ripple: clsx(classes.ripple, touchRippleClasses.ripple),\n rippleVisible: clsx(classes.rippleVisible, touchRippleClasses.rippleVisible),\n ripplePulsate: clsx(classes.ripplePulsate, touchRippleClasses.ripplePulsate),\n child: clsx(classes.child, touchRippleClasses.child),\n childLeaving: clsx(classes.childLeaving, touchRippleClasses.childLeaving),\n childPulsate: clsx(classes.childPulsate, touchRippleClasses.childPulsate)\n },\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n }, nextKey.current)]);\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n const start = React.useCallback((event = {}, options = {}, cb = () => {}) => {\n const {\n pulsate = false,\n center = centerProp || options.pulsate,\n fakeElement = false // For test purposes\n } = options;\n if ((event == null ? void 0 : event.type) === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n if ((event == null ? void 0 : event.type) === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n const element = fakeElement ? null : container.current;\n const rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n };\n\n // Get the size of the ripple\n let rippleX;\n let rippleY;\n let rippleSize;\n if (center || event === undefined || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n const {\n clientX,\n clientY\n } = event.touches && event.touches.length > 0 ? event.touches[0] : event;\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n if (center) {\n rippleSize = Math.sqrt((2 * rect.width ** 2 + rect.height ** 2) / 3);\n\n // For some reason the animation is broken on Mobile Chrome if the size is even.\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n const sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n const sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(sizeX ** 2 + sizeY ** 2);\n }\n\n // Touche devices\n if (event != null && event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = () => {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n };\n // Delay the execution of the ripple effect.\n // We have to make a tradeoff with this delay value.\n startTimer.start(DELAY_RIPPLE, () => {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n });\n }\n } else {\n startCommit({\n pulsate,\n rippleX,\n rippleY,\n rippleSize,\n cb\n });\n }\n }, [centerProp, startCommit, startTimer]);\n const pulsate = React.useCallback(() => {\n start({}, {\n pulsate: true\n });\n }, [start]);\n const stop = React.useCallback((event, cb) => {\n startTimer.clear();\n\n // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n if ((event == null ? void 0 : event.type) === 'touchend' && startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.start(0, () => {\n stop(event, cb);\n });\n return;\n }\n startTimerCommit.current = null;\n setRipples(oldRipples => {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, [startTimer]);\n React.useImperativeHandle(ref, () => ({\n pulsate,\n start,\n stop\n }), [pulsate, start, stop]);\n return /*#__PURE__*/_jsx(TouchRippleRoot, _extends({\n className: clsx(touchRippleClasses.root, classes.root, className),\n ref: container\n }, other, {\n children: /*#__PURE__*/_jsx(TransitionGroup, {\n component: null,\n exit: true,\n children: ripples\n })\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: PropTypes.bool,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string\n} : void 0;\nexport default TouchRipple;","import generateUtilityClasses from '@mui/utils/generateUtilityClasses';\nimport generateUtilityClass from '@mui/utils/generateUtilityClass';\nexport function getButtonBaseUtilityClass(slot) {\n return generateUtilityClass('MuiButtonBase', slot);\n}\nconst buttonBaseClasses = generateUtilityClasses('MuiButtonBase', ['root', 'disabled', 'focusVisible']);\nexport default buttonBaseClasses;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"action\", \"centerRipple\", \"children\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"LinkComponent\", \"onBlur\", \"onClick\", \"onContextMenu\", \"onDragLeave\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"tabIndex\", \"TouchRippleProps\", \"touchRippleRef\", \"type\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport refType from '@mui/utils/refType';\nimport elementTypeAcceptingRef from '@mui/utils/elementTypeAcceptingRef';\nimport composeClasses from '@mui/utils/composeClasses';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nimport buttonBaseClasses, { getButtonBaseUtilityClass } from './buttonBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n disabled,\n focusVisible,\n focusVisibleClassName,\n classes\n } = ownerState;\n const slots = {\n root: ['root', disabled && 'disabled', focusVisible && 'focusVisible']\n };\n const composedClasses = composeClasses(slots, getButtonBaseUtilityClass, classes);\n if (focusVisible && focusVisibleClassName) {\n composedClasses.root += ` ${focusVisibleClassName}`;\n }\n return composedClasses;\n};\nexport const ButtonBaseRoot = styled('button', {\n name: 'MuiButtonBase',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n },\n [`&.${buttonBaseClasses.disabled}`]: {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n});\n\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\nconst ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiButtonBase'\n });\n const {\n action,\n centerRipple = false,\n children,\n className,\n component = 'button',\n disabled = false,\n disableRipple = false,\n disableTouchRipple = false,\n focusRipple = false,\n LinkComponent = 'a',\n onBlur,\n onClick,\n onContextMenu,\n onDragLeave,\n onFocus,\n onFocusVisible,\n onKeyDown,\n onKeyUp,\n onMouseDown,\n onMouseLeave,\n onMouseUp,\n onTouchEnd,\n onTouchMove,\n onTouchStart,\n tabIndex = 0,\n TouchRippleProps,\n touchRippleRef,\n type\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const buttonRef = React.useRef(null);\n const rippleRef = React.useRef(null);\n const handleRippleRef = useForkRef(rippleRef, touchRippleRef);\n const {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n React.useImperativeHandle(action, () => ({\n focusVisible: () => {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n }), []);\n const [mountedState, setMountedState] = React.useState(false);\n React.useEffect(() => {\n setMountedState(true);\n }, []);\n const enableTouchRipple = mountedState && !disableRipple && !disabled;\n React.useEffect(() => {\n if (focusVisible && focusRipple && !disableRipple && mountedState) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible, mountedState]);\n function useRippleHandler(rippleAction, eventCallback, skipRippleAction = disableTouchRipple) {\n return useEventCallback(event => {\n if (eventCallback) {\n eventCallback(event);\n }\n const ignore = skipRippleAction;\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n return true;\n });\n }\n const handleMouseDown = useRippleHandler('start', onMouseDown);\n const handleContextMenu = useRippleHandler('stop', onContextMenu);\n const handleDragLeave = useRippleHandler('stop', onDragLeave);\n const handleMouseUp = useRippleHandler('stop', onMouseUp);\n const handleMouseLeave = useRippleHandler('stop', event => {\n if (focusVisible) {\n event.preventDefault();\n }\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n const handleTouchStart = useRippleHandler('start', onTouchStart);\n const handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n const handleTouchMove = useRippleHandler('stop', onTouchMove);\n const handleBlur = useRippleHandler('stop', event => {\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n const handleFocus = useEventCallback(event => {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n if (onFocus) {\n onFocus(event);\n }\n });\n const isNonNativeButton = () => {\n const button = buttonRef.current;\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n\n /**\n * IE11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n const keydownRef = React.useRef(false);\n const handleKeyDown = useEventCallback(event => {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n rippleRef.current.stop(event, () => {\n rippleRef.current.start(event);\n });\n }\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n if (onKeyDown) {\n onKeyDown(event);\n }\n\n // Keyboard accessibility for non interactive elements\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n if (onClick) {\n onClick(event);\n }\n }\n });\n const handleKeyUp = useEventCallback(event => {\n // calling preventDefault in keyUp on a \n
\n \n );\n};\n\nexport default ContactForm;\n","import React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { ILang } from \"../../types/common.type\";\nimport { IContactFromQueryResult } from \"../../types/form.type\";\n\nimport ContactForm from \"../forms/contactForm\";\nimport ContentContainer from \"./contentContainer\";\nimport Border from \"../../assets/common/border.svg\";\n\nconst ContactFormSection = ({ lang }: ILang) => {\n const formMdData = useStaticQuery(query) as IContactFromQueryResult;\n const allMarkup = formMdData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter;\n const formMarkup = allMarkup?.contactForm;\n const validationMarkup = allMarkup?.validation;\n\n let formDescription: string | null | undefined;\n if (lang in formMdData)\n formDescription = formMdData?.[lang]?.nodes?.[0]?.html as string | null;\n else formDescription = formMdData?.en?.nodes?.[0]?.html;\n\n return (\n <>\n {formMarkup ? (\n <>\n
\n \n asdfas\n
\n \n
\n

\n {formMarkup?.sectionTitle.toUpperCase()}\n

\n \n {formMarkup?.sectionLinkTitle.toUpperCase()}\n
\n \n
\n {formDescription ? (\n \n ) : null}\n \n
\n \n \n \n ) : null}\n \n );\n};\n\nexport default ContactFormSection;\n\nexport const query = graphql`\n query {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"contactForm\" }, language: { eq: \"en\" } }\n }\n ) {\n nodes {\n html\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"contactForm\" }, language: { eq: \"ru\" } }\n }\n ) {\n nodes {\n html\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n validation {\n invalidEmail\n required\n consent\n }\n contactForm {\n sectionTitle\n sectionLinkTitle\n emailLabel\n nameLabel\n companyNameLabel\n servicesLabel\n servicesOptions {\n web_dev\n mobile_dev\n qa\n devops\n ui_ux\n ba\n add_ins\n vr_ar\n support\n consulting\n }\n budgetLabel\n budgetOptions {\n _1500_2500\n _2500_5000\n _5000_10000\n _10000_\n not_decided\n }\n selectPlaceholder\n descriptionLabel\n descriptionPlaceholder\n privacyPolicyCheckboxLabel\n adsCheckboxLabel\n buttonLabel\n }\n }\n }\n }\n }\n`;\n","var React = require('react');\n\nfunction Border (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"#f9f9f9\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"0\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":0}),React.createElement(\"line\",{\"width\":\"800\",\"height\":\"8\",\"stroke\":\"#111111\",\"strokeWidth\":\"8\",\"strokeDasharray\":\"8 8\",\"x1\":\"8\",\"x2\":\"100%\",\"y1\":\"4\",\"y2\":\"4\",\"key\":1})]);\n}\n\nBorder.defaultProps = {\"height\":\"8\"};\n\nmodule.exports = Border;\n\nBorder.default = Border;\n"],"names":["_ref","className","React","viewBox","fill","xmlns","d","Babylon","isBabylonReady","setIsBabylonReady","useState","isInitial","useRef","canvasRef","useEffect","current","window","babylonWorker","Worker","URL","type","onmessage","data","canvas","width","clientWidth","height","clientHeight","offscreenCanvas","transferControlToOffscreen","postMessage","onResizeHandler","addEventListener","passive","onWheelHandler","e","preventDefault","wheel","deltaY","onMouseMoveHandler","x","movementX","y","movementY","removeEventListener","once","onTouchMoveHandler","touches","length","firstTouch","previousCoords","screenX","screenY","newX","newY","nestedTouchMoveHandler","touch","terminate","ref","Spinner","heightClass","title","borderBottom","borderTop","babylon","image","titleBlockClassName","children","textTranslate","setTextTranslate","Border","ContentContainer","GatsbyImage","alt","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","text","search","url","tel","email","password","number","date","month","week","time","datetime","handleKeyDown","event","metaKey","altKey","ctrlKey","handlePointerDown","handleVisibilityChange","this","visibilityState","isFocusVisible","target","matches","error","node","tagName","readOnly","isContentEditable","focusTriggersKeyboardModality","doc","ownerDocument","isFocusVisibleRef","onFocus","onBlur","start","getChildMapping","mapFn","result","Object","create","Children","map","c","forEach","child","key","isValidElement","mapper","getProp","prop","props","getNextChildMapping","nextProps","prevChildMapping","onExited","nextChildMapping","prev","next","getValueForKey","i","nextKeysPending","pendingKeys","prevKey","push","childMapping","nextKey","pendingNextKey","mergeChildMappings","keys","hasPrev","hasNext","prevChild","isLeaving","in","cloneElement","bind","exit","enter","values","obj","k","TransitionGroup","_React$Component","context","_this","handleExited","call","ReferenceError","_assertThisInitialized","state","contextValue","isMounting","firstRender","_proto","prototype","componentDidMount","mounted","setState","componentWillUnmount","getDerivedStateFromProps","appear","currentChildMapping","render","_this$props","Component","component","childFactory","TransitionGroupContext","Provider","value","propTypes","defaultProps","classes","pulsate","rippleX","rippleY","rippleSize","inProp","timeout","leaving","setLeaving","rippleClassName","clsx","ripple","rippleVisible","ripplePulsate","rippleStyles","top","left","childClassName","childLeaving","childPulsate","timeoutId","setTimeout","clearTimeout","style","generateUtilityClasses","_excluded","_t","_t2","_t3","_t4","_","t","enterKeyframe","exitKeyframe","pulsateKeyframe","TouchRippleRoot","styled","name","slot","overflow","pointerEvents","position","zIndex","right","bottom","borderRadius","TouchRippleRipple","theme","transitions","easing","easeInOut","duration","shorter","inProps","useThemeProps","center","centerProp","other","ripples","setRipples","rippleCallback","ignoringMouseDown","startTimer","useTimeout","startTimerCommit","container","startCommit","params","cb","oldRipples","options","fakeElement","element","rect","getBoundingClientRect","undefined","clientX","clientY","Math","round","sqrt","sizeX","max","abs","sizeY","stop","clear","slice","root","getButtonBaseUtilityClass","ButtonBaseRoot","overridesResolver","styles","display","alignItems","justifyContent","boxSizing","WebkitTapHighlightColor","backgroundColor","outline","border","margin","padding","cursor","userSelect","verticalAlign","MozAppearance","WebkitAppearance","textDecoration","color","borderStyle","disabled","colorAdjust","ButtonBase","action","centerRipple","disableRipple","disableTouchRipple","focusRipple","LinkComponent","onClick","onContextMenu","onDragLeave","onFocusVisible","onKeyDown","onKeyUp","onMouseDown","onMouseLeave","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","tabIndex","TouchRippleProps","touchRippleRef","buttonRef","rippleRef","handleRippleRef","useForkRef","handleFocusVisible","handleBlurVisible","focusVisibleRef","focusVisible","setFocusVisible","focus","mountedState","setMountedState","enableTouchRipple","useRippleHandler","rippleAction","eventCallback","skipRippleAction","handleMouseDown","handleContextMenu","handleDragLeave","handleMouseUp","handleMouseLeave","handleTouchStart","handleTouchEnd","handleTouchMove","handleBlur","handleFocus","currentTarget","isNonNativeButton","button","href","keydownRef","handleKeyUp","defaultPrevented","ComponentProp","to","buttonProps","role","handleRef","ownerState","focusVisibleClassName","slots","composedClasses","composeClasses","useUtilityClasses","as","getMenuItemUtilityClass","MenuItemRoot","shouldForwardProp","rootShouldForwardProp","dense","divider","disableGutters","gutters","typography","body1","minHeight","paddingTop","paddingBottom","whiteSpace","paddingLeft","paddingRight","vars","palette","backgroundClip","hover","selected","primary","mainChannel","selectedOpacity","main","focusOpacity","hoverOpacity","opacity","disabledOpacity","marginTop","spacing","marginBottom","inset","marginLeft","minWidth","breakpoints","up","body2","fontSize","autoFocus","tabIndexProp","ListContext","childContext","menuItemRef","useEnhancedEffect","getSwitchBaseUtilityClass","SwitchBaseRoot","edge","size","marginRight","SwitchBaseInput","checked","checkedProp","checkedIcon","defaultChecked","disabledProp","disableFocusRipple","icon","id","inputProps","inputRef","onChange","required","setCheckedState","useControlled","controlled","default","Boolean","muiFormControl","useFormControl","hasLabelFor","capitalize","input","nativeEvent","newChecked","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","indeterminate","secondary","activeChannel","active","defaultCheckedIcon","CheckBox","defaultIcon","CheckBoxOutlineBlank","defaultIndeterminateIcon","IndeterminateCheckBox","_icon$props$fontSize","_indeterminateIcon$pr","iconProp","indeterminateIcon","indeterminateIconProp","_errors$services","_errors$budget","_errors$consentToProc","markup","validationMarkup","isPending","setIsPending","isGivenConsent","setIsGivenConsent","register","handleSubmit","control","reset","formState","errors","isValid","useForm","mode","resolver","yupResolver","contactFormSchema","defaultValues","consentToProcess","renderTextInput","label","multiline","rows","_errors$key","ContactFormInput","assign","variant","message","helperText","getValidationMessage","fullWidth","onSubmit","async","hutk","getCookie","requestBody","mapContactFormData","hubspotApi","post","status","_e$response","_e$response$data","console","log","response","emailLabel","companyNameLabel","nameLabel","servicesLabel","select","defaultValue","ServicesOptions","service","MenuItem","servicesOptions","budgetLabel","BudgetOptions","budget","budgetOptions","descriptionLabel","Controller","_ref2","field","ControlLabel","Checkbox","sx","privacyPolicyCheckboxLabel","consent","adsCheckboxLabel","SkeletonStub","buttonLabel","toUpperCase","_formMdData$markupDat","_formMdData$markupDat2","_formMdData$markupDat3","_formMdData$lang","_formMdData$lang$node","_formMdData$lang$node2","_formMdData$en","_formMdData$en$nodes","_formMdData$en$nodes$","lang","formMdData","useStaticQuery","query","allMarkup","markupData","nodes","find","fields","language","frontmatter","formMarkup","contactForm","validation","formDescription","html","en","maxWidthClass","sectionTitle","sectionLinkTitle","dangerouslySetInnerHTML","__html","ContactForm","createElement","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/_gatsby/slices/_gatsby-scripts-1.html b/_gatsby/slices/_gatsby-scripts-1.html index 357248a3..6515fb9a 100644 --- a/_gatsby/slices/_gatsby-scripts-1.html +++ b/_gatsby/slices/_gatsby-scripts-1.html @@ -2,6 +2,6 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/blog/10582553-73a2-569f-8bdd-980e1f77c10a/index.html b/blog/10582553-73a2-569f-8bdd-980e1f77c10a/index.html index 1a5ede01..02a30d5e 100644 --- a/blog/10582553-73a2-569f-8bdd-980e1f77c10a/index.html +++ b/blog/10582553-73a2-569f-8bdd-980e1f77c10a/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html b/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html index 57ef452b..e75c5c98 100644 --- a/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html +++ b/blog/1f201db1-7d1d-5ef0-b138-fe7b3dc57ba8/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html b/blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html index a2c79201..c60d4dcb 100644 --- a/blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html +++ b/blog/45775c6a-7cd8-5018-9047-afbec09abf59/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html b/blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html index 74a035ed..b63b1349 100644 --- a/blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html +++ b/blog/6a129001-a171-5d7e-9555-a943ae9d624f/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html b/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html index c8df1d80..0a74b667 100644 --- a/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html +++ b/blog/91d98aad-6ec6-5e71-b6ca-daff730c0ca4/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html b/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html index 9cd017d6..8d61c199 100644 --- a/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html +++ b/blog/aa06b558-51ae-5f78-9989-0baadffbbc36/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/articlename/index.html b/blog/articlename/index.html index 29c017f9..1d66a090 100644 --- a/blog/articlename/index.html +++ b/blog/articlename/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/articlename/page/1/index.html b/blog/articlename/page/1/index.html index c7b2e112..b85620fd 100644 --- a/blog/articlename/page/1/index.html +++ b/blog/articlename/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/articlename/page/2/index.html b/blog/articlename/page/2/index.html index f8ace1b4..8ceb5c5a 100644 --- a/blog/articlename/page/2/index.html +++ b/blog/articlename/page/2/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/azure-devops/index.html b/blog/azure-devops/index.html index e631e738..b9de7d35 100644 --- a/blog/azure-devops/index.html +++ b/blog/azure-devops/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/azure-devops/page/1/index.html b/blog/azure-devops/page/1/index.html index a5e467ba..cfa5acf1 100644 --- a/blog/azure-devops/page/1/index.html +++ b/blog/azure-devops/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/azure/index.html b/blog/azure/index.html index 37e4be88..375457bc 100644 --- a/blog/azure/index.html +++ b/blog/azure/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/azure/page/1/index.html b/blog/azure/page/1/index.html index 5ef24296..8b314d93 100644 --- a/blog/azure/page/1/index.html +++ b/blog/azure/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/index.html b/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/index.html index bdbc7a98..a3cc89ca 100644 --- a/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/index.html +++ b/blog/c924c93c-fac0-517e-92e7-c5b5aaa083c2/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/changelog/index.html b/blog/changelog/index.html index 40f83fe5..8eedc1df 100644 --- a/blog/changelog/index.html +++ b/blog/changelog/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/changelog/page/1/index.html b/blog/changelog/page/1/index.html index 8ac90080..acad6d87 100644 --- a/blog/changelog/page/1/index.html +++ b/blog/changelog/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/cloud-init/index.html b/blog/cloud-init/index.html index 3aa2b434..bc12d5ad 100644 --- a/blog/cloud-init/index.html +++ b/blog/cloud-init/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/cloud-init/page/1/index.html b/blog/cloud-init/page/1/index.html index 2ea05547..3931511d 100644 --- a/blog/cloud-init/page/1/index.html +++ b/blog/cloud-init/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/confluence/index.html b/blog/confluence/index.html index 181ec073..7b91bebf 100644 --- a/blog/confluence/index.html +++ b/blog/confluence/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/confluence/page/1/index.html b/blog/confluence/page/1/index.html index 1936e190..138364a1 100644 --- a/blog/confluence/page/1/index.html +++ b/blog/confluence/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/devops/index.html b/blog/devops/index.html index d2436594..bbc9ef4f 100644 --- a/blog/devops/index.html +++ b/blog/devops/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/devops/page/1/index.html b/blog/devops/page/1/index.html index 384f825f..866efc38 100644 --- a/blog/devops/page/1/index.html +++ b/blog/devops/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/index.html b/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/index.html index fa9c3e8b..1215ce9e 100644 --- a/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/index.html +++ b/blog/e173a2ae-ebb5-5219-9479-035dde5fe8c8/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html b/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html index 6eb27a13..a0843dbe 100644 --- a/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html +++ b/blog/f7437acb-56dc-5ec6-9370-7726f39da57a/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/hashtag/index.html b/blog/hashtag/index.html index c0c9c67b..f7408095 100644 --- a/blog/hashtag/index.html +++ b/blog/hashtag/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/hashtag/page/1/index.html b/blog/hashtag/page/1/index.html index 015787cd..234733e0 100644 --- a/blog/hashtag/page/1/index.html +++ b/blog/hashtag/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/importanttopick/index.html b/blog/importanttopick/index.html index c5aedfeb..871364cc 100644 --- a/blog/importanttopick/index.html +++ b/blog/importanttopick/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/importanttopick/page/1/index.html b/blog/importanttopick/page/1/index.html index 6f29e1fb..a232305d 100644 --- a/blog/importanttopick/page/1/index.html +++ b/blog/importanttopick/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/importanttopick/page/2/index.html b/blog/importanttopick/page/2/index.html index c442c9c1..1527aeda 100644 --- a/blog/importanttopick/page/2/index.html +++ b/blog/importanttopick/page/2/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/index.html b/blog/index.html index d8567023..6928800a 100644 --- a/blog/index.html +++ b/blog/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/keywordlong/index.html b/blog/keywordlong/index.html index 89c7500c..e2b45dc2 100644 --- a/blog/keywordlong/index.html +++ b/blog/keywordlong/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/keywordlong/page/1/index.html b/blog/keywordlong/page/1/index.html index 803ad787..8f4427d7 100644 --- a/blog/keywordlong/page/1/index.html +++ b/blog/keywordlong/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/page/1/index.html b/blog/page/1/index.html index 19eca9a0..0f203985 100644 --- a/blog/page/1/index.html +++ b/blog/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/page/2/index.html b/blog/page/2/index.html index 6287722a..cea55c91 100644 --- a/blog/page/2/index.html +++ b/blog/page/2/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/podryabinkina/index.html b/blog/podryabinkina/index.html index a30bf474..b4d67129 100644 --- a/blog/podryabinkina/index.html +++ b/blog/podryabinkina/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/podryabinkina/page/1/index.html b/blog/podryabinkina/page/1/index.html index 85f88fa0..4ace1f00 100644 --- a/blog/podryabinkina/page/1/index.html +++ b/blog/podryabinkina/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/post/index.html b/blog/post/index.html index 6a90c545..c44379dc 100644 --- a/blog/post/index.html +++ b/blog/post/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/post/page/1/index.html b/blog/post/page/1/index.html index e922cfc1..cdffd629 100644 --- a/blog/post/page/1/index.html +++ b/blog/post/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/post/page/2/index.html b/blog/post/page/2/index.html index 31e381e6..ff10f4ad 100644 --- a/blog/post/page/2/index.html +++ b/blog/post/page/2/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/proxmox/index.html b/blog/proxmox/index.html index 95e8dc7f..ff196526 100644 --- a/blog/proxmox/index.html +++ b/blog/proxmox/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/proxmox/page/1/index.html b/blog/proxmox/page/1/index.html index bb2346e1..19622908 100644 --- a/blog/proxmox/page/1/index.html +++ b/blog/proxmox/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/self-hosted-build-agent/index.html b/blog/self-hosted-build-agent/index.html index f14bf774..8aba8678 100644 --- a/blog/self-hosted-build-agent/index.html +++ b/blog/self-hosted-build-agent/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/self-hosted-build-agent/page/1/index.html b/blog/self-hosted-build-agent/page/1/index.html index 0f6c6e4f..5199cb4c 100644 --- a/blog/self-hosted-build-agent/page/1/index.html +++ b/blog/self-hosted-build-agent/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/virtualization/index.html b/blog/virtualization/index.html index 5d7a9442..ec9b9133 100644 --- a/blog/virtualization/index.html +++ b/blog/virtualization/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/virtualization/page/1/index.html b/blog/virtualization/page/1/index.html index a333ab2c..e92ba6e8 100644 --- a/blog/virtualization/page/1/index.html +++ b/blog/virtualization/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/vm/index.html b/blog/vm/index.html index f1cf6ed5..f6d35382 100644 --- a/blog/vm/index.html +++ b/blog/vm/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/vm/page/1/index.html b/blog/vm/page/1/index.html index 6a23843a..9bb78d84 100644 --- a/blog/vm/page/1/index.html +++ b/blog/vm/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/zhmayev/index.html b/blog/zhmayev/index.html index 1df3bd63..8e8b4ab3 100644 --- a/blog/zhmayev/index.html +++ b/blog/zhmayev/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/zhmayev/page/1/index.html b/blog/zhmayev/page/1/index.html index ceca9479..8a7cfb10 100644 --- a/blog/zhmayev/page/1/index.html +++ b/blog/zhmayev/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/blog/zhmayev/page/2/index.html b/blog/zhmayev/page/2/index.html index a2c340bf..67b87f2c 100644 --- a/blog/zhmayev/page/2/index.html +++ b/blog/zhmayev/page/2/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/chunk-map.json b/chunk-map.json index 8b0bf42e..b9aa6dde 100644 --- a/chunk-map.json +++ b/chunk-map.json @@ -1 +1 @@ -{"app":["/app-0c53081a2bc0c8966a79.js"],"component---src-pages-templates-404-tsx":["/component---src-pages-templates-404-tsx-f72e430d4b3c5be8e265.js"],"component---src-pages-templates-blog-by-author-tsx":["/component---src-pages-templates-blog-by-author-tsx-408b6fd1d4ad17fa5f7c.js"],"component---src-pages-templates-blog-by-hashtag-tsx":["/component---src-pages-templates-blog-by-hashtag-tsx-5eb8f20809e2778721c3.js"],"component---src-pages-templates-blog-tsx":["/component---src-pages-templates-blog-tsx-fa08d3c19795eb3db5d3.js"],"component---src-pages-templates-index-tsx":["/component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js"],"component---src-pages-templates-policies-tsx":["/component---src-pages-templates-policies-tsx-8d858839168d89834f5b.js"],"component---src-pages-templates-post-tsx":["/component---src-pages-templates-post-tsx-d9e4800abdf31a9b10bf.js"],"component---src-pages-templates-project-tsx":["/component---src-pages-templates-project-tsx-89b796e63f214fd74a94.js"],"component---src-pages-templates-projects-tsx":["/component---src-pages-templates-projects-tsx-2db44adef862c7339abb.js"],"component---src-pages-templates-services-tsx":["/component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js"],"component---src-pages-templates-workflow-tsx":["/component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js"]} \ No newline at end of file +{"app":["/app-0c53081a2bc0c8966a79.js"],"component---src-pages-templates-404-tsx":["/component---src-pages-templates-404-tsx-f72e430d4b3c5be8e265.js"],"component---src-pages-templates-blog-by-author-tsx":["/component---src-pages-templates-blog-by-author-tsx-408b6fd1d4ad17fa5f7c.js"],"component---src-pages-templates-blog-by-hashtag-tsx":["/component---src-pages-templates-blog-by-hashtag-tsx-5eb8f20809e2778721c3.js"],"component---src-pages-templates-blog-tsx":["/component---src-pages-templates-blog-tsx-fa08d3c19795eb3db5d3.js"],"component---src-pages-templates-index-tsx":["/component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js"],"component---src-pages-templates-policies-tsx":["/component---src-pages-templates-policies-tsx-8d858839168d89834f5b.js"],"component---src-pages-templates-post-tsx":["/component---src-pages-templates-post-tsx-d9e4800abdf31a9b10bf.js"],"component---src-pages-templates-project-tsx":["/component---src-pages-templates-project-tsx-89b796e63f214fd74a94.js"],"component---src-pages-templates-projects-tsx":["/component---src-pages-templates-projects-tsx-2db44adef862c7339abb.js"],"component---src-pages-templates-services-tsx":["/component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js"],"component---src-pages-templates-workflow-tsx":["/component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js"]} \ No newline at end of file diff --git a/component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js b/component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js deleted file mode 100644 index acfc0afc..00000000 --- a/component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[832],{6838:function(e,t,n){var l=n(9720).w_;e.exports.z=function(e){return l({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z"}},{tag:"path",attr:{d:"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5 41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"}}]})(e)}},6488:function(e,t,n){var l=n(9720).w_;e.exports.p=function(e){return l({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z",clipRule:"evenodd"}},{tag:"path",attr:{fillRule:"evenodd",d:"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z",clipRule:"evenodd"}}]})(e)}},4032:function(e,t,n){var l=n(9720).w_;e.exports.t=function(e){return l({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"}}]})(e)}},216:function(e,t,n){"use strict";var l=n(7294),a=n(4160),r=n(8322),o=n(4471),i=n.n(o),c=n(1164);t.Z=e=>{let{section:t,theme:n,title:o,linkTitle:s,className:m,children:d,borderT:u,borderB:p,isArrowLink:v=!0,...f}=e;const g=n===r.Q.dark?"text-secondary-100":"text-main-100",x=n===r.Q.dark?"text-secondary-100 hover:text-secondary-70":"text-main-100 hover:text-main-10",h=n===r.Q.dark?"bg-main-100":"bg-secondary-100";return l.createElement(l.Fragment,null,u?l.createElement(i(),{className:"w-full"}):null,l.createElement("section",Object.assign({className:`w-full py-16 ${h} ${m}`},f),l.createElement(c.Z,{maxWidthClass:"max-w-[1280px]",className:`flex-col items-center ${g}`},l.createElement("div",{className:"flex justify-between w-full items-center pb-8 sm:pb-14 flex-col sm:flex-row gap-5"},l.createElement("h2",{className:`text-4xl font-bold w-full ${g}`},o.toUpperCase()),t?l.createElement(a.rU,{to:`/${t}`,className:`w-full sm:w-auto text-start sm:text-end text-xl font-normal cursor-pointer whitespace-nowrap ${x}`},s?s.toUpperCase():"DISCOVER MORE"," ",v?l.createElement(l.Fragment,null,"→"):null):null),d)),p?l.createElement(i(),{className:"w-full"}):null)}},3793:function(e,t,n){"use strict";var l=n(7294),a=n(4160),r=n(6488),o=n(9165),i=n(8322);t.Z=e=>{let{post:t,theme:n,className:c,markupData:s,lang:m}=e;const{date:d,title:u,text:p}=t.frontmatter,v=Math.floor(t.wordCount.words/200),f=v||1,g=n===i.Q.light?"text-main-100":"text-secondary-100",x=n===i.Q.light?"text-main-10":"text-secondary-10",h=n===i.Q.light?"hover:text-main-10":"hover:text-secondary-10";return l.createElement(a.rU,{to:`/blog/${t.id}`,className:`flex flex-col sm:flex-row w-full justify-center gap-5 md:gap-14 ${g} ${h} ${c}`,itemScope:!0,itemType:"https://schema.org/Article"},l.createElement("div",{className:"flex flex-col w-full max-w-[400px] gap-2.5"},l.createElement("p",{itemProp:"dateCreated",className:`text-lg ${x}`},d),l.createElement("h3",{itemProp:"headline",className:`text-3xl font-semibold ${g}`},u)),l.createElement("div",{className:"flex flex-col w-full max-w-[500px] gap-5"},l.createElement("p",{className:`font-normal text-base ${g}`,itemProp:"abstract"},p.split(" ").slice(0,70).join(" "),"..."),l.createElement("div",{className:"flex w-full items-center justify-between"},l.createElement("div",{className:"flex items-center gap-3 text-sm font-bold"},l.createElement("span",null,null==s?void 0:s.readPostLink),l.createElement(r.p,{size:14})),l.createElement("p",{className:`text-sm ${x}`},`${null==s?void 0:s.readingTimeTitle}: ~${f} ${null==s?void 0:s.readingTimeUnits}.`))),l.createElement(o.Lx,{itemProp:"copyrightHolder",lang:m}))}},6745:function(e,t,n){"use strict";var l=n(7294),a=n(4160),r=n(8032),o=n(8322),i=n(6488),c=n(9165);t.Z=e=>{let{project:t,className:n,theme:s,lang:m}=e;const d=(0,r.c)(t.frontmatter.cover),{title:u,teamSize:p,duration:v}=t.frontmatter,f=s===o.Q.light?"text-main-100 hover:text-main-10":"text-secondary-100 hover:text-secondary-10",g=s===o.Q.light?"bg-secondary-100 hover:bg-secondary-100":"bg-main-100 hover:bg-main-100";return l.createElement(a.rU,{to:`/projects/${t.id}`,className:`${g} ${f} flex flex-col justify-between hover:text-main-10 rounded-2xl p-2.5 gap-2.5 ${n}`,itemScope:!0,itemType:"https://schema.org/CreativeWork"},l.createElement("div",{className:"group flex-1 relative"},d?l.createElement(r.G,{image:d,alt:"cover",itemProp:"image",className:"object-contain w-full rounded-[10px] transition-all group-hover:scale-[1.01]"}):null,l.createElement("div",{className:"absolute left-2 bottom-2 flex items-center gap-2.5 z-10"},l.createElement("p",{className:"backdrop-blur-sm backdrop-brightness-75 text-secondary-100 px-5 h-10 flex items-center rounded-lg"},v),l.createElement("p",{className:"backdrop-blur-sm backdrop-brightness-75 text-secondary-100 px-5 h-10 flex items-center rounded-lg"},p))),l.createElement("div",{className:"flex px-2.5 py-1 items-center grow"},l.createElement("h3",{className:"text-base grow font-medium h-full",itemProp:"description"},u),l.createElement(i.p,{size:20})),l.createElement(c.Lx,{itemProp:"author",lang:m}))}},171:function(e,t,n){"use strict";n.r(t),n.d(t,{Head:function(){return M},default:function(){return I}});var l=n(7294),a=n(9720),r=n(1929),o=n(4160),i=n(6838),c=n(1312),s=n(7451);var m=(0,l.forwardRef)(((e,t)=>{let{className:n,children:a}=e;const[r,o]=(0,c.Z)({loop:!0,dragFree:!0,duration:1e4,align:"start"},[(0,s.Z)({delay:0,stopOnInteraction:!1,stopOnMouseEnter:!0})]);return l.createElement("div",{className:`overflow-hidden ${n}`,ref:r},l.createElement("div",{ref:t,className:"h-full flex items-center",onMouseEnter:()=>{null==o||o.internalEngine().animation.stop()},onMouseLeave:()=>{null==o||o.internalEngine().animation.start()}},a))})),d=n(4471),u=n.n(d);var p=e=>{let{children:t}=e;return l.createElement("div",{className:"h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[192px] md:w-[256px] xl:w-[256px] 3xl:w-[400px]"},l.createElement(u(),{className:"min-w-0 shrink-0 w-full"}),l.createElement("p",{className:"text-lg font-semibold whitespace-nowrap"},t),l.createElement(u(),{className:"min-w-0 shrink-0 w-full"}))};var v=()=>{var e,t;const n=(0,o.K2)(f),a=null==n||null===(e=n.markdownRemark)||void 0===e||null===(t=e.frontmatter)||void 0===t?void 0:t.stack;return l.createElement(l.Fragment,null,a?l.createElement("section",{className:"h-16 flex flex-col relative"},l.createElement(m,{className:"grow"},a.map((e=>l.createElement(p,{key:e},e))),l.createElement(p,null,l.createElement(i.z,{size:32,className:"-rotate-90"})))):null)};const f="3518807326";var g=n(3793),x=n(216),h=n(8322);var E=e=>{var t,n,a,r,i,c,s,m,d,u;let{lang:p}=e;const v=(0,o.K2)(w),f=null==v||null===(t=v.markupData)||void 0===t||null===(n=t.nodes)||void 0===n||null===(a=n.find((e=>e.fields.language===p)))||void 0===a||null===(r=a.frontmatter)||void 0===r?void 0:r.blog;let E;return E=p in v?null==v||null===(i=v[p])||void 0===i||null===(c=i.nodes)||void 0===c?void 0:c[0]:null==v||null===(s=v.en)||void 0===s||null===(m=s.nodes)||void 0===m?void 0:m[0],l.createElement(l.Fragment,null,E?l.createElement(x.Z,{theme:h.Q.dark,title:null!==(d=null==f?void 0:f.blogSectionTitle)&&void 0!==d?d:"new in our blog",linkTitle:null!==(u=null==f?void 0:f.blogSectionLinkTitle)&&void 0!==u?u:"all posts",section:"blog",borderB:!0},l.createElement(g.Z,{lang:p,post:E,theme:h.Q.dark,markupData:f})):null)};const w="641077248";var b=n(6745);var N=e=>{var t,n,a,r,i,c,s,m;let{excludeId:d,lang:u}=e;const p=(0,o.K2)(y),v=null==p||null===(t=p.markupData)||void 0===t||null===(n=t.nodes)||void 0===n||null===(a=n.find((e=>e.fields.language===u)))||void 0===a||null===(r=a.frontmatter)||void 0===r?void 0:r.projects;let f;return f=u in p?null==p||null===(i=p[u])||void 0===i?void 0:i.nodes:null===(c=p.en)||void 0===c?void 0:c.nodes,f?(d&&(f=f.filter((e=>e.id!==d))),l.createElement(x.Z,{theme:h.Q.dark,section:"projects",title:null!==(s=null==v?void 0:v.moreProjectsSectionTitle)&&void 0!==s?s:"OUR PROJECTS",linkTitle:null!==(m=null==v?void 0:v.moreProjectsSectionLinkTitle)&&void 0!==m?m:"Discover MORE",borderB:!0},l.createElement("div",{className:"flex justify-between items-center gap-5 lg:gap-10 flex-col sm:flex-row items-stretch"},f.map(((e,t)=>{if(3!==t)return l.createElement(b.Z,{key:e.id,project:e,lang:u,theme:h.Q.light,className:"flex-1 sm:last:hidden lg:last:flex"})}))))):l.createElement(l.Fragment,null)};const y="2788837757";var k=n(9165),$=n(8032),O=n(4032);var j=e=>{let{review:{frontmatter:{company:t,person:n,position:a,location:r,image:o},html:i},className:c}=e;const s=(0,$.c)(o);return l.createElement("div",{className:`flex flex-col p-6 gap-3.5 bg-secondary-100 hover:shadow-[0px_2px_14px_rgba(68,68,68,0.25)] shadow-[0px_2px_8px_rgba(68,68,68,0.1)] rounded-2.5xl text-main-100 ${c}`},l.createElement("div",{className:"flex w-full items-start"},s?l.createElement($.G,{image:s,alt:t,className:"h-[72px] w-[72px] object-cover rounded-full mr-3.5"}):null,l.createElement("div",{className:"flex-1 font-normal text-base text-main-10 leading-5"},l.createElement("h3",{className:"font-bold text-xl text-main-100"},n),l.createElement("h4",null,l.createElement("span",null,a),", ",l.createElement("span",null,t)),l.createElement("h4",null,r)),l.createElement(O.t,{size:25,color:"#E4E4E4"})),l.createElement("div",{className:"review-body text-sm",dangerouslySetInnerHTML:{__html:i}}))};var T=e=>{var t,n,a,r,i,c,s,m,d;let{lang:u}=e;const p=(0,o.K2)(C),v=null==p||null===(t=p.markupData)||void 0===t||null===(n=t.nodes)||void 0===n||null===(a=n.find((e=>e.fields.language===u)))||void 0===a||null===(r=a.frontmatter)||void 0===r?void 0:r.reviews;let f;return f=u in p?null==p||null===(i=p[u])||void 0===i||null===(c=i.nodes)||void 0===c?void 0:c.sort(((e,t)=>e.frontmatter.person>t.frontmatter.person?1:-1)):null==p||null===(s=p.en)||void 0===s||null===(m=s.nodes)||void 0===m?void 0:m.sort(((e,t)=>e.frontmatter.person>t.frontmatter.person?1:-1)),l.createElement(l.Fragment,null,f?l.createElement(x.Z,{id:"reviews",theme:h.Q.light,title:null!==(d=null==v?void 0:v.title)&&void 0!==d?d:"our clients' testimonials",section:"/#reviews",linkTitle:null==v?void 0:v.linkTitle,isArrowLink:!1,borderB:!0},l.createElement("div",{className:"flex justify-between items-start gap-5 lg:gap-10 flex-col md:flex-row"},f.map((e=>l.createElement(j,{review:e,key:e.id,className:"flex-1"}))))):null)};const C="1287994371";var S=n(577);var I=e=>{let{pageContext:{markupData:t,lang:n}}=e;return l.createElement(a.Pd.Provider,{value:{style:{verticalAlign:"middle"}}},l.createElement(r.Z,{title:t.bannerTitle,babylon:!0}),l.createElement(v,null),l.createElement(N,{lang:n}),l.createElement(T,{lang:n}),l.createElement(E,{lang:n}),l.createElement(S.Z,{lang:n}))};const M=e=>{let{pageContext:{markupData:t,site:n,lang:a},location:r}=e;return l.createElement(k.Ag,{title:`${t.head} | ${t.bannerTitle.toUpperCase()}`,description:t.metaDescription,siteUrl:n.siteUrl,path:r.pathname,lang:a})}},8322:function(e,t,n){"use strict";n.d(t,{Q:function(){return l}});let l=function(e){return e.dark="dark",e.light="light",e}({})},7451:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});const l={active:!0,breakpoints:{},delay:4e3,jump:!1,playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,stopOnLastSnap:!1,rootNode:null};function a(e={}){let t,n,r,o=!1,i=!0,c=!1,s=0;function m(){if(r)return;if(!i)return;o||n.emit("autoplay:play");const{ownerWindow:e}=n.internalEngine();e.clearInterval(s),s=e.setInterval(f,t.delay),o=!0}function d(){if(r)return;o&&n.emit("autoplay:stop");const{ownerWindow:e}=n.internalEngine();e.clearInterval(s),s=0,o=!1}function u(){if(p())return i=o,d();i&&m()}function p(){const{ownerDocument:e}=n.internalEngine();return"hidden"===e.visibilityState}function v(e){void 0!==e&&(c=e),i=!0,m()}function f(){const{index:e}=n.internalEngine(),l=e.clone().add(1).get(),a=n.scrollSnapList().length-1;t.stopOnLastSnap&&l===a&&d(),n.canScrollNext()?n.scrollNext(c):n.scrollTo(0,c)}return{name:"autoplay",options:e,init:function(o,s){n=o;const{mergeOptions:v,optionsAtMedia:f}=s,g=v(l,a.globalOptions),x=v(g,e);if(t=f(x),n.scrollSnapList().length<=1)return;c=t.jump,r=!1;const{eventStore:h,ownerDocument:E}=n.internalEngine(),w=n.rootNode(),b=t.rootNode&&t.rootNode(w)||w,N=n.containerNode();n.on("pointerDown",d),t.stopOnInteraction||n.on("pointerUp",m),t.stopOnMouseEnter&&(h.add(b,"mouseenter",(()=>{i=!1,d()})),t.stopOnInteraction||h.add(b,"mouseleave",(()=>{i=!0,m()}))),t.stopOnFocusIn&&(h.add(N,"focusin",d),t.stopOnInteraction||h.add(N,"focusout",m)),h.add(E,"visibilitychange",u),t.playOnInit&&!p()&&m()},destroy:function(){n.off("pointerDown",d).off("pointerUp",m),d(),r=!0,o=!1},play:v,stop:function(){o&&d()},reset:function(){o&&v()},isPlaying:function(){return o}}}a.globalOptions=void 0}}]); -//# sourceMappingURL=component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js.map \ No newline at end of file diff --git a/component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js.map b/component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js.map deleted file mode 100644 index 0b24d4dc..00000000 --- a/component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js","mappings":"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","sources":["webpack://code-cave/./node_modules/@react-icons/all-files/ai/AiFillBug.js","webpack://code-cave/./node_modules/@react-icons/all-files/bs/BsArrowUpRight.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaQuoteRight.js","webpack://code-cave/./src/components/common/templateSection.tsx","webpack://code-cave/./src/components/posts/postPreview.tsx","webpack://code-cave/./src/components/projects/projectPreview.tsx","webpack://code-cave/./src/components/stack/stackCarousel.tsx","webpack://code-cave/./src/components/stack/stakUnit.tsx","webpack://code-cave/./src/components/stack/stackSection.tsx","webpack://code-cave/./src/components/posts/postSection.tsx","webpack://code-cave/./src/components/projects/projectsSection.tsx","webpack://code-cave/./src/components/reviews/review.tsx","webpack://code-cave/./src/components/reviews/staticReviewsSection.tsx","webpack://code-cave/./src/pagesTemplates/index.tsx","webpack://code-cave/./src/types/common.type.ts","webpack://code-cave/./node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js"],"sourcesContent":["// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.AiFillBug = function AiFillBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5 41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.BsArrowUpRight = function BsArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 16 16\",\"fill\":\"currentColor\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaQuoteRight = function FaQuoteRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"}}]})(props);\n};\n","import React, { PropsWithChildren } from \"react\";\nimport { Link } from \"gatsby\";\n\nimport { Theme } from \"../../types/common.type\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\n\ninterface ITemplateSectionProps extends React.HTMLAttributes {\n title: string;\n theme: Theme;\n isArrowLink?: boolean;\n linkTitle?: string;\n section?: string;\n className?: string;\n borderT?: boolean;\n borderB?: boolean;\n}\n\nconst TemplateSection = ({\n section,\n theme,\n title,\n linkTitle,\n className,\n children,\n borderT,\n borderB,\n isArrowLink = true,\n ...attr\n}: PropsWithChildren) => {\n const mainColorClass =\n theme === Theme.dark ? \"text-secondary-100\" : \"text-main-100\";\n const linkColorClass =\n theme === Theme.dark\n ? \"text-secondary-100 hover:text-secondary-70\"\n : \"text-main-100 hover:text-main-10\";\n const bgColorClass =\n theme === Theme.dark ? \"bg-main-100\" : \"bg-secondary-100\";\n\n return (\n <>\n {borderT ? : null}\n \n \n
\n

\n {title.toUpperCase()}\n

\n {section ? (\n \n {linkTitle ? linkTitle.toUpperCase() : \"DISCOVER MORE\"}{\" \"}\n {isArrowLink ? <>→ : null}\n \n ) : null}\n
\n {children}\n \n \n {borderB ? : null}\n \n );\n};\n\nexport default TemplateSection;\n","import React from \"react\";\nimport { Link } from \"gatsby\";\n\nimport { BsArrowUpRight } from \"@react-icons/all-files/bs/BsArrowUpRight\";\n\nimport { IPostPreviewQueryResult } from \"../../types/post.type\";\nimport { LocalBusinessMetadata } from \"../common/metadata\";\nimport { IBlogMarkupData } from \"../../types/commonMarkup.type\";\nimport { TLang, Theme } from \"../../types/common.type\";\n\nconst PostPreview = ({\n post,\n theme,\n className,\n markupData,\n lang,\n}: {\n post: IPostPreviewQueryResult;\n className?: string;\n theme: Theme;\n markupData?: IBlogMarkupData;\n lang: TLang;\n}) => {\n const { date, title, text } = post.frontmatter;\n\n const minutes = Math.floor(post.wordCount.words / 200);\n const readingTime = minutes ? minutes : 1;\n\n const fontColorClass100 =\n theme === Theme.light ? \"text-main-100\" : \"text-secondary-100\";\n const fontColorClass10 =\n theme === Theme.light ? \"text-main-10\" : \"text-secondary-10\";\n const fontColorHover =\n theme === Theme.light ? \"hover:text-main-10\" : \"hover:text-secondary-10\";\n\n return (\n \n
\n

\n {date}\n

\n \n {title}\n \n
\n
\n \n {text.split(\" \").slice(0, 70).join(\" \")}...\n

\n
\n
\n {markupData?.readPostLink}\n \n
\n

\n {`${markupData?.readingTimeTitle}: ~${readingTime} ${markupData?.readingTimeUnits}.`}\n

\n
\n
\n \n \n );\n};\n\nexport default PostPreview;\n","import React from \"react\";\nimport { Link } from \"gatsby\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport { IProjectPreviewQueryResult } from \"../../types/project.type\";\nimport { TLang, Theme } from \"../../types/common.type\";\n\nimport { BsArrowUpRight } from \"@react-icons/all-files/bs/BsArrowUpRight\";\n\nimport { LocalBusinessMetadata } from \"../common/metadata\";\n\nconst ProjectPreview = ({\n project,\n className,\n theme,\n lang,\n}: {\n project: IProjectPreviewQueryResult;\n className?: string;\n theme: Theme;\n lang: TLang;\n}) => {\n const cover = getImage(project.frontmatter.cover);\n const { title, teamSize, duration } = project.frontmatter;\n\n const fontColorClass10 =\n theme === Theme.light\n ? \"text-main-100 hover:text-main-10\"\n : \"text-secondary-100 hover:text-secondary-10\";\n const bgColors =\n theme === Theme.light\n ? \"bg-secondary-100 hover:bg-secondary-100\"\n : \"bg-main-100 hover:bg-main-100\";\n\n return (\n \n
\n {cover ? (\n \n ) : null}\n
\n

\n {duration}\n

\n

\n {teamSize}\n

\n
\n
\n
\n \n {title}\n \n \n
\n \n \n );\n};\n\nexport default ProjectPreview;\n","import React, { forwardRef } from \"react\";\n\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport Autoplay from \"embla-carousel-autoplay\";\n\nconst StackCarousel = forwardRef<\n HTMLDivElement,\n React.PropsWithChildren<{ className?: string }>\n>(({ className, children }, ref) => {\n const [emblaRef, emblaApi] = useEmblaCarousel(\n { loop: true, dragFree: true, duration: 10000, align: \"start\" },\n [\n Autoplay({\n delay: 0,\n stopOnInteraction: false,\n stopOnMouseEnter: true,\n }),\n ]\n );\n\n return (\n
\n {\n emblaApi?.internalEngine().animation.stop();\n }}\n onMouseLeave={() => {\n emblaApi?.internalEngine().animation.start();\n }}\n >\n {children}\n
\n \n );\n});\n\nexport default StackCarousel;\n","import React, { PropsWithChildren } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\n\nconst StackUnit = ({ children }: PropsWithChildren) => {\n return (\n
\n \n

{children}

\n \n
\n );\n};\n\nexport default StackUnit;\n","import React from \"react\";\nimport { useStaticQuery, graphql } from \"gatsby\";\n\nimport { AiFillBug } from \"@react-icons/all-files/ai/AiFillBug\";\n\nimport StackCarousel from \"./stackCarousel\";\nimport StackUnit from \"./stakUnit\";\n\nconst StackSection = () => {\n const techData = useStaticQuery(query);\n const techArr = techData?.markdownRemark?.frontmatter?.stack as\n | string[]\n | null;\n\n return (\n <>\n {techArr ? (\n
\n \n {techArr.map((tech) => (\n {tech}\n ))}\n \n \n \n \n
\n ) : null}\n \n );\n};\n\nexport default StackSection;\n\nexport const query = graphql`\n query {\n markdownRemark(fields: { sourceName: { eq: \"stack\" } }) {\n frontmatter {\n stack\n }\n }\n }\n`;\n","import React from \"react\";\n\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport {\n IBlogSectionQueryResult,\n IPostPreviewQueryResult,\n} from \"../../types/post.type\";\n\nimport PostPreview from \"./postPreview\";\nimport TemplateSection from \"../common/templateSection\";\nimport { ILang, Theme } from \"../../types/common.type\";\n\nconst PostSection = ({ lang }: ILang) => {\n const postData = useStaticQuery(query) as IBlogSectionQueryResult;\n\n const sectionMarkup = postData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter?.blog;\n\n let post: IPostPreviewQueryResult | null | undefined;\n\n if (lang in postData)\n post = postData?.[lang]?.nodes?.[0] as IPostPreviewQueryResult | null;\n else post = postData?.en?.nodes?.[0];\n\n return (\n <>\n {post ? (\n \n \n \n ) : null}\n \n );\n};\n\nexport default PostSection;\n\nexport const query = graphql`\n query {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"posts\" }, language: { eq: \"en\" } }\n }\n sort: { frontmatter: { date: DESC } }\n limit: 1\n ) {\n nodes {\n id\n frontmatter {\n date(formatString: \"DD MMM YYYY\", locale: \"en\")\n title\n text\n }\n wordCount {\n words\n }\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"posts\" }, language: { eq: \"ru\" } }\n }\n sort: { frontmatter: { date: DESC } }\n limit: 1\n ) {\n nodes {\n id\n frontmatter {\n date(formatString: \"DD MMM YYYY\", locale: \"ru\")\n title\n text\n }\n wordCount {\n words\n }\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n blog {\n bannerTitle\n head\n readPostLink\n readingTimeTitle\n readingTimeUnits\n postFooterTitle\n postFooterText\n blogSectionTitle\n blogSectionLinkTitle\n }\n }\n }\n }\n }\n`;\n","import React from \"react\";\n\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport {\n IProjectPreviewQueryResult,\n IProjectSectionQueryResult,\n} from \"../../types/project.type\";\n\nimport ProjectPreview from \"./projectPreview\";\nimport TemplateSection from \"../common/templateSection\";\nimport { ILang, Theme } from \"../../types/common.type\";\n\ninterface IProjectsSectionProps extends ILang {\n excludeId?: string;\n}\n\nconst ProjectsSection = ({ excludeId, lang }: IProjectsSectionProps) => {\n const projectsPreviewData = useStaticQuery(\n query\n ) as IProjectSectionQueryResult;\n\n const sectionMarkup = projectsPreviewData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter?.projects;\n\n let projects: IProjectPreviewQueryResult[] | null | undefined;\n if (lang in projectsPreviewData)\n projects = projectsPreviewData?.[lang]?.nodes as\n | IProjectPreviewQueryResult[]\n | null\n | undefined;\n else projects = projectsPreviewData.en?.nodes;\n\n if (!projects) return <>;\n\n if (excludeId) {\n projects = projects.filter((project) => project.id !== excludeId);\n }\n\n return (\n \n
\n {projects.map((project, i) => {\n if (i === 3) return;\n return (\n \n );\n })}\n
\n \n );\n};\n\nexport default ProjectsSection;\n\nexport const query = graphql`\n {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"projects\" }, language: { eq: \"en\" } }\n }\n sort: { frontmatter: { date: DESC } }\n limit: 4\n ) {\n nodes {\n id\n frontmatter {\n title\n teamSize\n duration\n cover {\n childImageSharp {\n gatsbyImageData(\n width: 600\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n )\n }\n }\n }\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"projects\" }, language: { eq: \"ru\" } }\n }\n sort: { frontmatter: { date: DESC } }\n limit: 4\n ) {\n nodes {\n id\n frontmatter {\n title\n teamSize\n duration\n cover {\n childImageSharp {\n gatsbyImageData(\n width: 600\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n )\n }\n }\n }\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n projects {\n moreProjectsSectionTitle\n moreProjectsSectionLinkTitle\n }\n }\n }\n }\n }\n`;\n","import React from \"react\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport { IReviewQueryResult } from \"../../types/review.type\";\n\nimport { FaQuoteRight } from \"@react-icons/all-files/fa/FaQuoteRight\";\n\nconst Review = ({\n review: {\n frontmatter: { company, person, position, location, image },\n html,\n },\n className,\n}: {\n review: IReviewQueryResult;\n className?: string;\n}) => {\n const avatar = getImage(image);\n\n return (\n \n
\n {avatar ? (\n \n ) : null}\n
\n

{person}

\n

\n {position}, {company}\n

\n

{location}

\n
\n \n
\n \n \n\n //
\n //
\n // \n // {avatar ? (\n // \n // ) : null}\n //
\n //
\n //

{person}

\n // {person}\n //

\n // {position}, {company}\n //

\n //

\n // {location}\n //

\n //
\n //
\n // \n // \n );\n};\n\nexport default Review;\n","import React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { ILang, Theme } from \"../../types/common.type\";\nimport {\n IReviewQueryResult,\n IReviewSectionQueryResult,\n} from \"../../types/review.type\";\n\nimport TemplateSection from \"../common/templateSection\";\nimport Review from \"./review\";\n\nconst StaticReviewsSection = ({ lang }: ILang) => {\n const reviewsData = useStaticQuery(query) as IReviewSectionQueryResult;\n\n const sectionMarkup = reviewsData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter?.reviews;\n\n let reviews: IReviewQueryResult[] | null | undefined;\n\n if (lang in reviewsData)\n reviews = reviewsData?.[lang]?.nodes?.sort((a, b) =>\n a.frontmatter.person > b.frontmatter.person ? 1 : -1\n ) as IReviewQueryResult[] | null | undefined;\n else\n reviews = reviewsData?.en?.nodes?.sort((a, b) =>\n a.frontmatter.person > b.frontmatter.person ? 1 : -1\n );\n\n return (\n <>\n {reviews ? (\n \n
\n {reviews.map((review) => (\n \n ))}\n
\n \n ) : null}\n \n );\n};\n\nexport default StaticReviewsSection;\n\nexport const query = graphql`\n query {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"reviews\" }, language: { eq: \"en\" } }\n }\n ) {\n nodes {\n id\n html\n frontmatter {\n company\n location\n person\n position\n image {\n childImageSharp {\n gatsbyImageData(\n height: 112\n placeholder: BLURRED\n formats: [AUTO, AVIF, WEBP]\n )\n }\n }\n }\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"reviews\" }, language: { eq: \"ru\" } }\n }\n ) {\n nodes {\n id\n html\n frontmatter {\n company\n location\n person\n position\n image {\n childImageSharp {\n gatsbyImageData(\n height: 112\n placeholder: BLURRED\n formats: [AUTO, AVIF, WEBP]\n )\n }\n }\n }\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n reviews {\n title\n linkTitle\n }\n }\n }\n }\n }\n`;\n","import * as React from \"react\";\nimport type { HeadFC, HeadProps, PageProps } from \"gatsby\";\n\nimport { IconContext } from \"@react-icons/all-files\";\nimport \"../styles/styles.css\";\n\nimport { IIndexPageContext } from \"../types/index.type\";\n\nimport Banner from \"../components/common/banner\";\nimport StackSection from \"../components/stack/stackSection\";\nimport PostSection from \"../components/posts/postSection\";\nimport ProjectsSection from \"../components/projects/projectsSection\";\nimport { HeadSeo } from \"../components/common/metadata\";\nimport StaticReviewsSection from \"../components/reviews/staticReviewsSection\";\nimport ContactFormSection from \"../components/common/contactFormSection\";\n\nconst IndexPage = ({\n pageContext: { markupData, lang },\n}: PageProps) => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default IndexPage;\n\nexport const Head: HeadFC = ({\n pageContext: { markupData, site, lang },\n location,\n}: HeadProps) => {\n return (\n \n );\n};\n","export interface ILang {\n lang: TLang;\n}\n\nexport type TLang = \"en\" | \"ru\";\n\nexport type TLinks = \"services\" | \"workflow\" | \"projects\" | \"blog\";\n\nexport interface IBasePageContext extends ILang {\n site: ISiteMetadata;\n}\n\nexport interface IMdQueryResult {\n allMarkdownRemark: {\n nodes: T[];\n };\n}\n\nexport interface ISiteMetadata {\n title: string;\n description: string;\n siteUrl: string;\n image: string;\n analyticsId: string;\n}\n\nexport enum Theme {\n dark = \"dark\",\n light = \"light\",\n}\n","const defaultOptions = {\n active: true,\n breakpoints: {},\n delay: 4000,\n jump: false,\n playOnInit: true,\n stopOnFocusIn: true,\n stopOnInteraction: true,\n stopOnMouseEnter: false,\n stopOnLastSnap: false,\n rootNode: null\n};\n\nfunction Autoplay(userOptions = {}) {\n let options;\n let emblaApi;\n let destroyed;\n let playing = false;\n let resume = true;\n let jump = false;\n let timer = 0;\n function init(emblaApiInstance, optionsHandler) {\n emblaApi = emblaApiInstance;\n const {\n mergeOptions,\n optionsAtMedia\n } = optionsHandler;\n const optionsBase = mergeOptions(defaultOptions, Autoplay.globalOptions);\n const allOptions = mergeOptions(optionsBase, userOptions);\n options = optionsAtMedia(allOptions);\n if (emblaApi.scrollSnapList().length <= 1) return;\n jump = options.jump;\n destroyed = false;\n const {\n eventStore,\n ownerDocument\n } = emblaApi.internalEngine();\n const emblaRoot = emblaApi.rootNode();\n const root = options.rootNode && options.rootNode(emblaRoot) || emblaRoot;\n const container = emblaApi.containerNode();\n emblaApi.on('pointerDown', stopTimer);\n if (!options.stopOnInteraction) {\n emblaApi.on('pointerUp', startTimer);\n }\n if (options.stopOnMouseEnter) {\n eventStore.add(root, 'mouseenter', () => {\n resume = false;\n stopTimer();\n });\n if (!options.stopOnInteraction) {\n eventStore.add(root, 'mouseleave', () => {\n resume = true;\n startTimer();\n });\n }\n }\n if (options.stopOnFocusIn) {\n eventStore.add(container, 'focusin', stopTimer);\n if (!options.stopOnInteraction) {\n eventStore.add(container, 'focusout', startTimer);\n }\n }\n eventStore.add(ownerDocument, 'visibilitychange', visibilityChange);\n if (options.playOnInit && !documentIsHidden()) startTimer();\n }\n function destroy() {\n emblaApi.off('pointerDown', stopTimer).off('pointerUp', startTimer);\n stopTimer();\n destroyed = true;\n playing = false;\n }\n function startTimer() {\n if (destroyed) return;\n if (!resume) return;\n if (!playing) emblaApi.emit('autoplay:play');\n const {\n ownerWindow\n } = emblaApi.internalEngine();\n ownerWindow.clearInterval(timer);\n timer = ownerWindow.setInterval(next, options.delay);\n playing = true;\n }\n function stopTimer() {\n if (destroyed) return;\n if (playing) emblaApi.emit('autoplay:stop');\n const {\n ownerWindow\n } = emblaApi.internalEngine();\n ownerWindow.clearInterval(timer);\n timer = 0;\n playing = false;\n }\n function visibilityChange() {\n if (documentIsHidden()) {\n resume = playing;\n return stopTimer();\n }\n if (resume) startTimer();\n }\n function documentIsHidden() {\n const {\n ownerDocument\n } = emblaApi.internalEngine();\n return ownerDocument.visibilityState === 'hidden';\n }\n function play(jumpOverride) {\n if (typeof jumpOverride !== 'undefined') jump = jumpOverride;\n resume = true;\n startTimer();\n }\n function stop() {\n if (playing) stopTimer();\n }\n function reset() {\n if (playing) play();\n }\n function isPlaying() {\n return playing;\n }\n function next() {\n const {\n index\n } = emblaApi.internalEngine();\n const nextIndex = index.clone().add(1).get();\n const lastIndex = emblaApi.scrollSnapList().length - 1;\n const kill = options.stopOnLastSnap && nextIndex === lastIndex;\n if (kill) stopTimer();\n if (emblaApi.canScrollNext()) {\n emblaApi.scrollNext(jump);\n } else {\n emblaApi.scrollTo(0, jump);\n }\n }\n const self = {\n name: 'autoplay',\n options: userOptions,\n init,\n destroy,\n play,\n stop,\n reset,\n isPlaying\n };\n return self;\n}\nAutoplay.globalOptions = undefined;\n\nexport { Autoplay as default };\n//# sourceMappingURL=embla-carousel-autoplay.esm.js.map\n"],"names":["GenIcon","module","exports","props","_ref","section","theme","title","linkTitle","className","children","borderT","borderB","isArrowLink","attr","mainColorClass","Theme","dark","linkColorClass","bgColorClass","React","Border","Object","assign","ContentContainer","maxWidthClass","toUpperCase","Link","to","post","markupData","lang","date","text","frontmatter","minutes","Math","floor","wordCount","words","readingTime","fontColorClass100","light","fontColorClass10","fontColorHover","id","itemScope","itemType","itemProp","split","slice","join","readPostLink","BsArrowUpRight","size","readingTimeTitle","readingTimeUnits","LocalBusinessMetadata","project","cover","getImage","teamSize","duration","bgColors","GatsbyImage","image","alt","forwardRef","ref","emblaRef","emblaApi","useEmblaCarousel","loop","dragFree","align","Autoplay","delay","stopOnInteraction","stopOnMouseEnter","onMouseEnter","internalEngine","animation","stop","onMouseLeave","start","StackSection","_techData$markdownRem","_techData$markdownRem2","techData","useStaticQuery","query","techArr","markdownRemark","stack","StackCarousel","map","tech","StackUnit","key","AiFillBug","_postData$markupData","_postData$markupData$","_postData$markupData$2","_postData$markupData$3","_postData$lang","_postData$lang$nodes","_postData$en","_postData$en$nodes","_sectionMarkup$blogSe","_sectionMarkup$blogSe2","postData","sectionMarkup","nodes","find","node","fields","language","blog","en","TemplateSection","blogSectionTitle","blogSectionLinkTitle","PostPreview","_projectsPreviewData$","_projectsPreviewData$2","_projectsPreviewData$3","_projectsPreviewData$4","_projectsPreviewData$5","_projectsPreviewData$6","_sectionMarkup$morePr","_sectionMarkup$morePr2","excludeId","projectsPreviewData","projects","filter","moreProjectsSectionTitle","moreProjectsSectionLinkTitle","i","ProjectPreview","review","company","person","position","location","html","avatar","FaQuoteRight","color","dangerouslySetInnerHTML","__html","_reviewsData$markupDa","_reviewsData$markupDa2","_reviewsData$markupDa3","_reviewsData$markupDa4","_reviewsData$lang","_reviewsData$lang$nod","_reviewsData$en","_reviewsData$en$nodes","_sectionMarkup$title","reviewsData","reviews","sort","a","b","Review","pageContext","IconContext","Provider","value","style","verticalAlign","Banner","bannerTitle","babylon","ProjectsSection","StaticReviewsSection","PostSection","ContactFormSection","Head","_ref2","site","HeadSeo","head","description","metaDescription","siteUrl","path","pathname","defaultOptions","active","breakpoints","jump","playOnInit","stopOnFocusIn","stopOnLastSnap","rootNode","userOptions","options","destroyed","playing","resume","timer","startTimer","emit","ownerWindow","clearInterval","setInterval","next","stopTimer","visibilityChange","documentIsHidden","ownerDocument","visibilityState","play","jumpOverride","index","nextIndex","clone","add","get","lastIndex","scrollSnapList","length","canScrollNext","scrollNext","scrollTo","name","init","emblaApiInstance","optionsHandler","mergeOptions","optionsAtMedia","optionsBase","globalOptions","allOptions","eventStore","emblaRoot","root","container","containerNode","on","destroy","off","reset","isPlaying","undefined"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js b/component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js new file mode 100644 index 00000000..c8935f5b --- /dev/null +++ b/component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js @@ -0,0 +1,2 @@ +(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[832],{6838:function(e,t,n){var l=n(9720).w_;e.exports.z=function(e){return l({tag:"svg",attr:{viewBox:"0 0 1024 1024"},child:[{tag:"path",attr:{d:"M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z"}},{tag:"path",attr:{d:"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5 41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z"}}]})(e)}},6488:function(e,t,n){var l=n(9720).w_;e.exports.p=function(e){return l({tag:"svg",attr:{viewBox:"0 0 16 16",fill:"currentColor"},child:[{tag:"path",attr:{fillRule:"evenodd",d:"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z",clipRule:"evenodd"}},{tag:"path",attr:{fillRule:"evenodd",d:"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z",clipRule:"evenodd"}}]})(e)}},4032:function(e,t,n){var l=n(9720).w_;e.exports.t=function(e){return l({tag:"svg",attr:{viewBox:"0 0 512 512"},child:[{tag:"path",attr:{d:"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z"}}]})(e)}},216:function(e,t,n){"use strict";var l=n(7294),a=n(4160),r=n(8322),o=n(4471),i=n.n(o),c=n(1164);t.Z=e=>{let{section:t,theme:n,title:o,linkTitle:s,subTitle:m,className:d,children:u,borderT:p,borderB:v,isArrowLink:f=!0,...x}=e;const g=n===r.Q.dark?"text-secondary-100":"text-main-100",h=n===r.Q.dark?"text-secondary-100 hover:text-secondary-70":"text-main-100 hover:text-main-10",E=n===r.Q.dark?"bg-main-100":"bg-secondary-100";return l.createElement(l.Fragment,null,p?l.createElement(i(),{className:"w-full"}):null,l.createElement("section",Object.assign({className:`w-full py-16 ${E} ${d}`},x),l.createElement(c.Z,{maxWidthClass:"max-w-[1280px]",className:`flex-col items-center ${g}`},l.createElement("div",{className:"flex justify-between w-full sm:items-center pb-8 sm:pb-14 flex-col sm:flex-row gap-5"},l.createElement("h2",{className:`text-4xl font-bold flex-1 ${g}`},o.toUpperCase()),t?l.createElement(a.rU,{to:`/${t}`,className:`w-full sm:w-auto text-start sm:text-end text-xl font-normal cursor-pointer whitespace-nowrap ${h}`},s?s.toUpperCase():"DISCOVER MORE"," ",f?l.createElement(l.Fragment,null,"→"):null):null,m?l.createElement("p",{className:`w-full sm:w-auto flex-1 text-start sm:text-end text-xl font-normal ${g}`},m.toUpperCase()):null),u)),v?l.createElement(i(),{className:"w-full"}):null)}},3793:function(e,t,n){"use strict";var l=n(7294),a=n(4160),r=n(6488),o=n(9165),i=n(8322);t.Z=e=>{let{post:t,theme:n,className:c,markupData:s,lang:m}=e;const{date:d,title:u,text:p}=t.frontmatter,v=Math.floor(t.wordCount.words/200),f=v||1,x=n===i.Q.light?"text-main-100":"text-secondary-100",g=n===i.Q.light?"text-main-10":"text-secondary-10",h=n===i.Q.light?"hover:text-main-10":"hover:text-secondary-10";return l.createElement(a.rU,{to:`/blog/${t.id}`,className:`flex flex-col sm:flex-row w-full justify-center gap-5 md:gap-14 ${x} ${h} ${c}`,itemScope:!0,itemType:"https://schema.org/Article"},l.createElement("div",{className:"flex flex-col w-full max-w-[400px] gap-2.5"},l.createElement("p",{itemProp:"dateCreated",className:`text-lg ${g}`},d),l.createElement("h3",{itemProp:"headline",className:`text-3xl font-semibold ${x}`},u)),l.createElement("div",{className:"flex flex-col w-full max-w-[500px] gap-5"},l.createElement("p",{className:`font-normal text-base ${x}`,itemProp:"abstract"},p.split(" ").slice(0,70).join(" "),"..."),l.createElement("div",{className:"flex w-full items-center justify-between"},l.createElement("div",{className:"flex items-center gap-3 text-sm font-bold"},l.createElement("span",null,null==s?void 0:s.readPostLink),l.createElement(r.p,{size:14})),l.createElement("p",{className:`text-sm ${g}`},`${null==s?void 0:s.readingTimeTitle}: ~${f} ${null==s?void 0:s.readingTimeUnits}.`))),l.createElement(o.Lx,{itemProp:"copyrightHolder",lang:m}))}},6745:function(e,t,n){"use strict";var l=n(7294),a=n(4160),r=n(8032),o=n(8322),i=n(6488),c=n(9165);t.Z=e=>{let{project:t,className:n,theme:s,lang:m}=e;const d=(0,r.c)(t.frontmatter.cover),{title:u,teamSize:p,duration:v}=t.frontmatter,f=s===o.Q.light?"text-main-100 hover:text-main-10":"text-secondary-100 hover:text-secondary-10",x=s===o.Q.light?"bg-secondary-100 hover:bg-secondary-100":"bg-main-100 hover:bg-main-100";return l.createElement(a.rU,{to:`/projects/${t.id}`,className:`${x} ${f} flex flex-col justify-between hover:text-main-10 rounded-2xl p-2.5 gap-2.5 ${n}`,itemScope:!0,itemType:"https://schema.org/CreativeWork"},l.createElement("div",{className:"group flex-1 relative"},d?l.createElement(r.G,{image:d,alt:"cover",itemProp:"image",className:"object-contain w-full rounded-[10px] transition-all group-hover:scale-[1.01]"}):null,l.createElement("div",{className:"absolute left-2 bottom-2 flex items-center gap-2.5 z-10"},l.createElement("p",{className:"backdrop-blur-sm backdrop-brightness-75 text-secondary-100 px-5 h-10 flex items-center rounded-lg"},v),l.createElement("p",{className:"backdrop-blur-sm backdrop-brightness-75 text-secondary-100 px-5 h-10 flex items-center rounded-lg"},p))),l.createElement("div",{className:"flex px-2.5 py-1 items-center grow"},l.createElement("h3",{className:"text-base grow font-medium h-full",itemProp:"description"},u),l.createElement(i.p,{size:20})),l.createElement(c.Lx,{itemProp:"author",lang:m}))}},171:function(e,t,n){"use strict";n.r(t),n.d(t,{Head:function(){return M},default:function(){return I}});var l=n(7294),a=n(9720),r=n(1929),o=n(4160),i=n(6838),c=n(1312),s=n(7451);var m=(0,l.forwardRef)(((e,t)=>{let{className:n,children:a}=e;const[r,o]=(0,c.Z)({loop:!0,dragFree:!0,duration:1e4,align:"start"},[(0,s.Z)({delay:0,stopOnInteraction:!1,stopOnMouseEnter:!0})]);return l.createElement("div",{className:`overflow-hidden ${n}`,ref:r},l.createElement("div",{ref:t,className:"h-full flex items-center",onMouseEnter:()=>{null==o||o.internalEngine().animation.stop()},onMouseLeave:()=>{null==o||o.internalEngine().animation.start()}},a))})),d=n(4471),u=n.n(d);var p=e=>{let{children:t}=e;return l.createElement("div",{className:"h-full shrink-0 min-w-0 cursor-pointer flex flex-col justify-between items-center content-center w-[192px] md:w-[256px] xl:w-[256px] 3xl:w-[400px]"},l.createElement(u(),{className:"min-w-0 shrink-0 w-full"}),l.createElement("p",{className:"text-lg font-semibold whitespace-nowrap"},t),l.createElement(u(),{className:"min-w-0 shrink-0 w-full"}))};var v=()=>{var e,t;const n=(0,o.K2)(f),a=null==n||null===(e=n.markdownRemark)||void 0===e||null===(t=e.frontmatter)||void 0===t?void 0:t.stack;return l.createElement(l.Fragment,null,a?l.createElement("section",{className:"h-16 flex flex-col relative"},l.createElement(m,{className:"grow"},a.map((e=>l.createElement(p,{key:e},e))),l.createElement(p,null,l.createElement(i.z,{size:32,className:"-rotate-90"})))):null)};const f="3518807326";var x=n(3793),g=n(216),h=n(8322);var E=e=>{var t,n,a,r,i,c,s,m,d,u;let{lang:p}=e;const v=(0,o.K2)(w),f=null==v||null===(t=v.markupData)||void 0===t||null===(n=t.nodes)||void 0===n||null===(a=n.find((e=>e.fields.language===p)))||void 0===a||null===(r=a.frontmatter)||void 0===r?void 0:r.blog;let E;return E=p in v?null==v||null===(i=v[p])||void 0===i||null===(c=i.nodes)||void 0===c?void 0:c[0]:null==v||null===(s=v.en)||void 0===s||null===(m=s.nodes)||void 0===m?void 0:m[0],l.createElement(l.Fragment,null,E?l.createElement(g.Z,{theme:h.Q.dark,title:null!==(d=null==f?void 0:f.blogSectionTitle)&&void 0!==d?d:"new in our blog",linkTitle:null!==(u=null==f?void 0:f.blogSectionLinkTitle)&&void 0!==u?u:"all posts",section:"blog",borderB:!0},l.createElement(x.Z,{lang:p,post:E,theme:h.Q.dark,markupData:f})):null)};const w="641077248";var b=n(6745);var N=e=>{var t,n,a,r,i,c,s,m;let{excludeId:d,lang:u}=e;const p=(0,o.K2)(y),v=null==p||null===(t=p.markupData)||void 0===t||null===(n=t.nodes)||void 0===n||null===(a=n.find((e=>e.fields.language===u)))||void 0===a||null===(r=a.frontmatter)||void 0===r?void 0:r.projects;let f;return f=u in p?null==p||null===(i=p[u])||void 0===i?void 0:i.nodes:null===(c=p.en)||void 0===c?void 0:c.nodes,f?(d&&(f=f.filter((e=>e.id!==d))),l.createElement(g.Z,{theme:h.Q.dark,section:"projects",title:null!==(s=null==v?void 0:v.moreProjectsSectionTitle)&&void 0!==s?s:"OUR PROJECTS",linkTitle:null!==(m=null==v?void 0:v.moreProjectsSectionLinkTitle)&&void 0!==m?m:"Discover MORE",borderB:!0},l.createElement("div",{className:"flex justify-between items-center gap-5 lg:gap-10 flex-col sm:flex-row items-stretch"},f.map(((e,t)=>{if(3!==t)return l.createElement(b.Z,{key:e.id,project:e,lang:u,theme:h.Q.light,className:"flex-1 sm:last:hidden lg:last:flex"})}))))):l.createElement(l.Fragment,null)};const y="2788837757";var k=n(9165),$=n(8032),O=n(4032);var T=e=>{let{review:{frontmatter:{company:t,person:n,position:a,location:r,image:o},html:i},className:c}=e;const s=(0,$.c)(o);return l.createElement("div",{className:`flex flex-col p-6 gap-3.5 bg-secondary-100 hover:shadow-[0px_2px_14px_rgba(68,68,68,0.25)] shadow-[0px_2px_8px_rgba(68,68,68,0.1)] rounded-2.5xl text-main-100 ${c}`},l.createElement("div",{className:"flex w-full items-start"},s?l.createElement($.G,{image:s,alt:t,className:"h-[72px] w-[72px] object-cover rounded-full mr-3.5"}):null,l.createElement("div",{className:"flex-1 font-normal text-base text-main-10 leading-5"},l.createElement("h3",{className:"font-bold text-xl text-main-100"},n),l.createElement("h4",null,l.createElement("span",null,a),", ",l.createElement("span",null,t)),l.createElement("h4",null,r)),l.createElement(O.t,{size:25,color:"#E4E4E4"})),l.createElement("div",{className:"review-body text-sm",dangerouslySetInnerHTML:{__html:i}}))};var j=e=>{var t,n,a,r,i,c,s,m,d;let{lang:u}=e;const p=(0,o.K2)(C),v=null==p||null===(t=p.markupData)||void 0===t||null===(n=t.nodes)||void 0===n||null===(a=n.find((e=>e.fields.language===u)))||void 0===a||null===(r=a.frontmatter)||void 0===r?void 0:r.reviews;let f;return f=u in p?null==p||null===(i=p[u])||void 0===i||null===(c=i.nodes)||void 0===c?void 0:c.sort(((e,t)=>e.frontmatter.person>t.frontmatter.person?1:-1)):null==p||null===(s=p.en)||void 0===s||null===(m=s.nodes)||void 0===m?void 0:m.sort(((e,t)=>e.frontmatter.person>t.frontmatter.person?1:-1)),l.createElement(l.Fragment,null,f?l.createElement(g.Z,{id:"reviews",theme:h.Q.light,title:null!==(d=null==v?void 0:v.title)&&void 0!==d?d:"our clients' testimonials",subTitle:null==v?void 0:v.linkTitle,borderB:!0},l.createElement("div",{className:"flex justify-between items-start gap-5 lg:gap-10 flex-col md:flex-row"},f.map((e=>l.createElement(T,{review:e,key:e.id,className:"flex-1"}))))):null)};const C="1287994371";var S=n(4532);var I=e=>{let{pageContext:{markupData:t,lang:n}}=e;return l.createElement(a.Pd.Provider,{value:{style:{verticalAlign:"middle"}}},l.createElement(r.Z,{title:t.bannerTitle,babylon:!0}),l.createElement(v,null),l.createElement(N,{lang:n}),l.createElement(j,{lang:n}),l.createElement(E,{lang:n}),l.createElement(S.Z,{lang:n}))};const M=e=>{let{pageContext:{markupData:t,site:n,lang:a},location:r}=e;return l.createElement(k.Ag,{title:`${t.head} | ${t.bannerTitle.toUpperCase()}`,description:t.metaDescription,siteUrl:n.siteUrl,path:r.pathname,lang:a})}},8322:function(e,t,n){"use strict";n.d(t,{Q:function(){return l}});let l=function(e){return e.dark="dark",e.light="light",e}({})},7451:function(e,t,n){"use strict";n.d(t,{Z:function(){return a}});const l={active:!0,breakpoints:{},delay:4e3,jump:!1,playOnInit:!0,stopOnFocusIn:!0,stopOnInteraction:!0,stopOnMouseEnter:!1,stopOnLastSnap:!1,rootNode:null};function a(e={}){let t,n,r,o=!1,i=!0,c=!1,s=0;function m(){if(r)return;if(!i)return;o||n.emit("autoplay:play");const{ownerWindow:e}=n.internalEngine();e.clearInterval(s),s=e.setInterval(f,t.delay),o=!0}function d(){if(r)return;o&&n.emit("autoplay:stop");const{ownerWindow:e}=n.internalEngine();e.clearInterval(s),s=0,o=!1}function u(){if(p())return i=o,d();i&&m()}function p(){const{ownerDocument:e}=n.internalEngine();return"hidden"===e.visibilityState}function v(e){void 0!==e&&(c=e),i=!0,m()}function f(){const{index:e}=n.internalEngine(),l=e.clone().add(1).get(),a=n.scrollSnapList().length-1;t.stopOnLastSnap&&l===a&&d(),n.canScrollNext()?n.scrollNext(c):n.scrollTo(0,c)}return{name:"autoplay",options:e,init:function(o,s){n=o;const{mergeOptions:v,optionsAtMedia:f}=s,x=v(l,a.globalOptions),g=v(x,e);if(t=f(g),n.scrollSnapList().length<=1)return;c=t.jump,r=!1;const{eventStore:h,ownerDocument:E}=n.internalEngine(),w=n.rootNode(),b=t.rootNode&&t.rootNode(w)||w,N=n.containerNode();n.on("pointerDown",d),t.stopOnInteraction||n.on("pointerUp",m),t.stopOnMouseEnter&&(h.add(b,"mouseenter",(()=>{i=!1,d()})),t.stopOnInteraction||h.add(b,"mouseleave",(()=>{i=!0,m()}))),t.stopOnFocusIn&&(h.add(N,"focusin",d),t.stopOnInteraction||h.add(N,"focusout",m)),h.add(E,"visibilitychange",u),t.playOnInit&&!p()&&m()},destroy:function(){n.off("pointerDown",d).off("pointerUp",m),d(),r=!0,o=!1},play:v,stop:function(){o&&d()},reset:function(){o&&v()},isPlaying:function(){return o}}}a.globalOptions=void 0}}]); +//# sourceMappingURL=component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js.map \ No newline at end of file diff --git a/component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js.map b/component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js.map new file mode 100644 index 00000000..826341e9 --- /dev/null +++ b/component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js","mappings":"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","sources":["webpack://code-cave/./node_modules/@react-icons/all-files/ai/AiFillBug.js","webpack://code-cave/./node_modules/@react-icons/all-files/bs/BsArrowUpRight.js","webpack://code-cave/./node_modules/@react-icons/all-files/fa/FaQuoteRight.js","webpack://code-cave/./src/components/common/templateSection.tsx","webpack://code-cave/./src/components/posts/postPreview.tsx","webpack://code-cave/./src/components/projects/projectPreview.tsx","webpack://code-cave/./src/components/stack/stackCarousel.tsx","webpack://code-cave/./src/components/stack/stakUnit.tsx","webpack://code-cave/./src/components/stack/stackSection.tsx","webpack://code-cave/./src/components/posts/postSection.tsx","webpack://code-cave/./src/components/projects/projectsSection.tsx","webpack://code-cave/./src/components/reviews/review.tsx","webpack://code-cave/./src/components/reviews/staticReviewsSection.tsx","webpack://code-cave/./src/pagesTemplates/index.tsx","webpack://code-cave/./src/types/common.type.ts","webpack://code-cave/./node_modules/embla-carousel-autoplay/esm/embla-carousel-autoplay.esm.js"],"sourcesContent":["// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.AiFillBug = function AiFillBug (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 1024 1024\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M304 280h416c4.4 0 8-3.6 8-8 0-40-8.8-76.7-25.9-108.1-17.2-31.5-42.5-56.8-74-74C596.7 72.8 560 64 520 64h-16c-40 0-76.7 8.8-108.1 25.9-31.5 17.2-56.8 42.5-74 74C304.8 195.3 296 232 296 272c0 4.4 3.6 8 8 8z\"}},{\"tag\":\"path\",\"attr\":{\"d\":\"M940 512H792V412c76.8 0 139-62.2 139-139 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 34.8-28.2 63-63 63H232c-34.8 0-63-28.2-63-63 0-4.4-3.6-8-8-8h-60c-4.4 0-8 3.6-8 8 0 76.8 62.2 139 139 139v100H84c-4.4 0-8 3.6-8 8v56c0 4.4 3.6 8 8 8h148v96c0 6.5.2 13 .7 19.3C164.1 728.6 116 796.7 116 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-44.2 23.9-82.9 59.6-103.7 6 17.2 13.6 33.6 22.7 49 24.3 41.5 59 76.2 100.5 100.5 28.9 16.9 61 28.8 95.3 34.5 4.4 0 8-3.6 8-8V484c0-4.4 3.6-8 8-8h60c4.4 0 8 3.6 8 8v464.2c0 4.4 3.6 8 8 8 34.3-5.7 66.4-17.6 95.3-34.5 41.5-24.3 76.2-59 100.5-100.5 9.1-15.5 16.7-31.9 22.7-49C812.1 793.1 836 831.8 836 876c0 4.4 3.6 8 8 8h56c4.4 0 8-3.6 8-8 0-79.3-48.1-147.4-116.7-176.7.4-6.4.7-12.8.7-19.3v-96h148c4.4 0 8-3.6 8-8v-56c0-4.4-3.6-8-8-8z\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.BsArrowUpRight = function BsArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 16 16\",\"fill\":\"currentColor\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M6.5 4a.5.5 0 01.5-.5h5a.5.5 0 01.5.5v5a.5.5 0 01-1 0V4.5H7a.5.5 0 01-.5-.5z\",\"clipRule\":\"evenodd\"}},{\"tag\":\"path\",\"attr\":{\"fillRule\":\"evenodd\",\"d\":\"M12.354 3.646a.5.5 0 010 .708l-9 9a.5.5 0 01-.708-.708l9-9a.5.5 0 01.708 0z\",\"clipRule\":\"evenodd\"}}]})(props);\n};\n","// THIS FILE IS AUTO GENERATED\nvar GenIcon = require('../lib').GenIcon\nmodule.exports.FaQuoteRight = function FaQuoteRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 512 512\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M464 32H336c-26.5 0-48 21.5-48 48v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48zm-288 0H48C21.5 32 0 53.5 0 80v128c0 26.5 21.5 48 48 48h80v64c0 35.3-28.7 64-64 64h-8c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24h8c88.4 0 160-71.6 160-160V80c0-26.5-21.5-48-48-48z\"}}]})(props);\n};\n","import React, { PropsWithChildren } from \"react\";\nimport { Link } from \"gatsby\";\n\nimport { Theme } from \"../../types/common.type\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\n\ninterface ITemplateSectionProps extends React.HTMLAttributes {\n title: string;\n theme: Theme;\n isArrowLink?: boolean;\n linkTitle?: string;\n subTitle?: string;\n section?: string;\n className?: string;\n borderT?: boolean;\n borderB?: boolean;\n}\n\nconst TemplateSection = ({\n section,\n theme,\n title,\n linkTitle,\n subTitle,\n className,\n children,\n borderT,\n borderB,\n isArrowLink = true,\n ...attr\n}: PropsWithChildren) => {\n const mainColorClass =\n theme === Theme.dark ? \"text-secondary-100\" : \"text-main-100\";\n const linkColorClass =\n theme === Theme.dark\n ? \"text-secondary-100 hover:text-secondary-70\"\n : \"text-main-100 hover:text-main-10\";\n const bgColorClass =\n theme === Theme.dark ? \"bg-main-100\" : \"bg-secondary-100\";\n\n return (\n <>\n {borderT ? : null}\n \n \n
\n

\n {title.toUpperCase()}\n

\n {section ? (\n \n {linkTitle ? linkTitle.toUpperCase() : \"DISCOVER MORE\"}{\" \"}\n {isArrowLink ? <>→ : null}\n \n ) : null}\n {subTitle ? (\n \n {subTitle.toUpperCase()}\n

\n ) : null}\n
\n {children}\n \n \n {borderB ? : null}\n \n );\n};\n\nexport default TemplateSection;\n","import React from \"react\";\nimport { Link } from \"gatsby\";\n\nimport { BsArrowUpRight } from \"@react-icons/all-files/bs/BsArrowUpRight\";\n\nimport { IPostPreviewQueryResult } from \"../../types/post.type\";\nimport { LocalBusinessMetadata } from \"../common/metadata\";\nimport { IBlogMarkupData } from \"../../types/commonMarkup.type\";\nimport { TLang, Theme } from \"../../types/common.type\";\n\nconst PostPreview = ({\n post,\n theme,\n className,\n markupData,\n lang,\n}: {\n post: IPostPreviewQueryResult;\n className?: string;\n theme: Theme;\n markupData?: IBlogMarkupData;\n lang: TLang;\n}) => {\n const { date, title, text } = post.frontmatter;\n\n const minutes = Math.floor(post.wordCount.words / 200);\n const readingTime = minutes ? minutes : 1;\n\n const fontColorClass100 =\n theme === Theme.light ? \"text-main-100\" : \"text-secondary-100\";\n const fontColorClass10 =\n theme === Theme.light ? \"text-main-10\" : \"text-secondary-10\";\n const fontColorHover =\n theme === Theme.light ? \"hover:text-main-10\" : \"hover:text-secondary-10\";\n\n return (\n \n
\n

\n {date}\n

\n \n {title}\n \n
\n
\n \n {text.split(\" \").slice(0, 70).join(\" \")}...\n

\n
\n
\n {markupData?.readPostLink}\n \n
\n

\n {`${markupData?.readingTimeTitle}: ~${readingTime} ${markupData?.readingTimeUnits}.`}\n

\n
\n
\n \n \n );\n};\n\nexport default PostPreview;\n","import React from \"react\";\nimport { Link } from \"gatsby\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport { IProjectPreviewQueryResult } from \"../../types/project.type\";\nimport { TLang, Theme } from \"../../types/common.type\";\n\nimport { BsArrowUpRight } from \"@react-icons/all-files/bs/BsArrowUpRight\";\n\nimport { LocalBusinessMetadata } from \"../common/metadata\";\n\nconst ProjectPreview = ({\n project,\n className,\n theme,\n lang,\n}: {\n project: IProjectPreviewQueryResult;\n className?: string;\n theme: Theme;\n lang: TLang;\n}) => {\n const cover = getImage(project.frontmatter.cover);\n const { title, teamSize, duration } = project.frontmatter;\n\n const fontColorClass10 =\n theme === Theme.light\n ? \"text-main-100 hover:text-main-10\"\n : \"text-secondary-100 hover:text-secondary-10\";\n const bgColors =\n theme === Theme.light\n ? \"bg-secondary-100 hover:bg-secondary-100\"\n : \"bg-main-100 hover:bg-main-100\";\n\n return (\n \n
\n {cover ? (\n \n ) : null}\n
\n

\n {duration}\n

\n

\n {teamSize}\n

\n
\n
\n
\n \n {title}\n \n \n
\n \n \n );\n};\n\nexport default ProjectPreview;\n","import React, { forwardRef } from \"react\";\n\nimport useEmblaCarousel from \"embla-carousel-react\";\nimport Autoplay from \"embla-carousel-autoplay\";\n\nconst StackCarousel = forwardRef<\n HTMLDivElement,\n React.PropsWithChildren<{ className?: string }>\n>(({ className, children }, ref) => {\n const [emblaRef, emblaApi] = useEmblaCarousel(\n { loop: true, dragFree: true, duration: 10000, align: \"start\" },\n [\n Autoplay({\n delay: 0,\n stopOnInteraction: false,\n stopOnMouseEnter: true,\n }),\n ]\n );\n\n return (\n
\n {\n emblaApi?.internalEngine().animation.stop();\n }}\n onMouseLeave={() => {\n emblaApi?.internalEngine().animation.start();\n }}\n >\n {children}\n
\n \n );\n});\n\nexport default StackCarousel;\n","import React, { PropsWithChildren } from \"react\";\n\nimport Border from \"../../assets/common/border.svg\";\n\n\nconst StackUnit = ({ children }: PropsWithChildren) => {\n return (\n
\n \n

{children}

\n \n
\n );\n};\n\nexport default StackUnit;\n","import React from \"react\";\nimport { useStaticQuery, graphql } from \"gatsby\";\n\nimport { AiFillBug } from \"@react-icons/all-files/ai/AiFillBug\";\n\nimport StackCarousel from \"./stackCarousel\";\nimport StackUnit from \"./stakUnit\";\n\nconst StackSection = () => {\n const techData = useStaticQuery(query);\n const techArr = techData?.markdownRemark?.frontmatter?.stack as\n | string[]\n | null;\n\n return (\n <>\n {techArr ? (\n
\n \n {techArr.map((tech) => (\n {tech}\n ))}\n \n \n \n \n
\n ) : null}\n \n );\n};\n\nexport default StackSection;\n\nexport const query = graphql`\n query {\n markdownRemark(fields: { sourceName: { eq: \"stack\" } }) {\n frontmatter {\n stack\n }\n }\n }\n`;\n","import React from \"react\";\n\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport {\n IBlogSectionQueryResult,\n IPostPreviewQueryResult,\n} from \"../../types/post.type\";\n\nimport PostPreview from \"./postPreview\";\nimport TemplateSection from \"../common/templateSection\";\nimport { ILang, Theme } from \"../../types/common.type\";\n\nconst PostSection = ({ lang }: ILang) => {\n const postData = useStaticQuery(query) as IBlogSectionQueryResult;\n\n const sectionMarkup = postData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter?.blog;\n\n let post: IPostPreviewQueryResult | null | undefined;\n\n if (lang in postData)\n post = postData?.[lang]?.nodes?.[0] as IPostPreviewQueryResult | null;\n else post = postData?.en?.nodes?.[0];\n\n return (\n <>\n {post ? (\n \n \n \n ) : null}\n \n );\n};\n\nexport default PostSection;\n\nexport const query = graphql`\n query {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"posts\" }, language: { eq: \"en\" } }\n }\n sort: { frontmatter: { date: DESC } }\n limit: 1\n ) {\n nodes {\n id\n frontmatter {\n date(formatString: \"DD MMM YYYY\", locale: \"en\")\n title\n text\n }\n wordCount {\n words\n }\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"posts\" }, language: { eq: \"ru\" } }\n }\n sort: { frontmatter: { date: DESC } }\n limit: 1\n ) {\n nodes {\n id\n frontmatter {\n date(formatString: \"DD MMM YYYY\", locale: \"ru\")\n title\n text\n }\n wordCount {\n words\n }\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n blog {\n bannerTitle\n head\n readPostLink\n readingTimeTitle\n readingTimeUnits\n postFooterTitle\n postFooterText\n blogSectionTitle\n blogSectionLinkTitle\n }\n }\n }\n }\n }\n`;\n","import React from \"react\";\n\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport {\n IProjectPreviewQueryResult,\n IProjectSectionQueryResult,\n} from \"../../types/project.type\";\n\nimport ProjectPreview from \"./projectPreview\";\nimport TemplateSection from \"../common/templateSection\";\nimport { ILang, Theme } from \"../../types/common.type\";\n\ninterface IProjectsSectionProps extends ILang {\n excludeId?: string;\n}\n\nconst ProjectsSection = ({ excludeId, lang }: IProjectsSectionProps) => {\n const projectsPreviewData = useStaticQuery(\n query\n ) as IProjectSectionQueryResult;\n\n const sectionMarkup = projectsPreviewData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter?.projects;\n\n let projects: IProjectPreviewQueryResult[] | null | undefined;\n if (lang in projectsPreviewData)\n projects = projectsPreviewData?.[lang]?.nodes as\n | IProjectPreviewQueryResult[]\n | null\n | undefined;\n else projects = projectsPreviewData.en?.nodes;\n\n if (!projects) return <>;\n\n if (excludeId) {\n projects = projects.filter((project) => project.id !== excludeId);\n }\n\n return (\n \n
\n {projects.map((project, i) => {\n if (i === 3) return;\n return (\n \n );\n })}\n
\n \n );\n};\n\nexport default ProjectsSection;\n\nexport const query = graphql`\n {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"projects\" }, language: { eq: \"en\" } }\n }\n sort: { frontmatter: { date: DESC } }\n limit: 4\n ) {\n nodes {\n id\n frontmatter {\n title\n teamSize\n duration\n cover {\n childImageSharp {\n gatsbyImageData(\n width: 600\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n )\n }\n }\n }\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"projects\" }, language: { eq: \"ru\" } }\n }\n sort: { frontmatter: { date: DESC } }\n limit: 4\n ) {\n nodes {\n id\n frontmatter {\n title\n teamSize\n duration\n cover {\n childImageSharp {\n gatsbyImageData(\n width: 600\n formats: [AUTO, WEBP, AVIF]\n placeholder: BLURRED\n )\n }\n }\n }\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n projects {\n moreProjectsSectionTitle\n moreProjectsSectionLinkTitle\n }\n }\n }\n }\n }\n`;\n","import React from \"react\";\nimport { GatsbyImage, getImage } from \"gatsby-plugin-image\";\n\nimport { IReviewQueryResult } from \"../../types/review.type\";\n\nimport { FaQuoteRight } from \"@react-icons/all-files/fa/FaQuoteRight\";\n\nconst Review = ({\n review: {\n frontmatter: { company, person, position, location, image },\n html,\n },\n className,\n}: {\n review: IReviewQueryResult;\n className?: string;\n}) => {\n const avatar = getImage(image);\n\n return (\n \n
\n {avatar ? (\n \n ) : null}\n
\n

{person}

\n

\n {position}, {company}\n

\n

{location}

\n
\n \n
\n \n \n\n //
\n //
\n // \n // {avatar ? (\n // \n // ) : null}\n //
\n //
\n //

{person}

\n // {person}\n //

\n // {position}, {company}\n //

\n //

\n // {location}\n //

\n //
\n //
\n // \n // \n );\n};\n\nexport default Review;\n","import React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { ILang, Theme } from \"../../types/common.type\";\nimport {\n IReviewQueryResult,\n IReviewSectionQueryResult,\n} from \"../../types/review.type\";\n\nimport TemplateSection from \"../common/templateSection\";\nimport Review from \"./review\";\n\nconst StaticReviewsSection = ({ lang }: ILang) => {\n const reviewsData = useStaticQuery(query) as IReviewSectionQueryResult;\n\n const sectionMarkup = reviewsData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter?.reviews;\n\n let reviews: IReviewQueryResult[] | null | undefined;\n\n if (lang in reviewsData)\n reviews = reviewsData?.[lang]?.nodes?.sort((a, b) =>\n a.frontmatter.person > b.frontmatter.person ? 1 : -1\n ) as IReviewQueryResult[] | null | undefined;\n else\n reviews = reviewsData?.en?.nodes?.sort((a, b) =>\n a.frontmatter.person > b.frontmatter.person ? 1 : -1\n );\n\n return (\n <>\n {reviews ? (\n \n
\n {reviews.map((review) => (\n \n ))}\n
\n \n ) : null}\n \n );\n};\n\nexport default StaticReviewsSection;\n\nexport const query = graphql`\n query {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"reviews\" }, language: { eq: \"en\" } }\n }\n ) {\n nodes {\n id\n html\n frontmatter {\n company\n location\n person\n position\n image {\n childImageSharp {\n gatsbyImageData(\n height: 112\n placeholder: BLURRED\n formats: [AUTO, AVIF, WEBP]\n )\n }\n }\n }\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"reviews\" }, language: { eq: \"ru\" } }\n }\n ) {\n nodes {\n id\n html\n frontmatter {\n company\n location\n person\n position\n image {\n childImageSharp {\n gatsbyImageData(\n height: 112\n placeholder: BLURRED\n formats: [AUTO, AVIF, WEBP]\n )\n }\n }\n }\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n reviews {\n title\n linkTitle\n }\n }\n }\n }\n }\n`;\n","import * as React from \"react\";\nimport type { HeadFC, HeadProps, PageProps } from \"gatsby\";\n\nimport { IconContext } from \"@react-icons/all-files\";\nimport \"../styles/styles.css\";\n\nimport { IIndexPageContext } from \"../types/index.type\";\n\nimport Banner from \"../components/common/banner\";\nimport StackSection from \"../components/stack/stackSection\";\nimport PostSection from \"../components/posts/postSection\";\nimport ProjectsSection from \"../components/projects/projectsSection\";\nimport { HeadSeo } from \"../components/common/metadata\";\nimport StaticReviewsSection from \"../components/reviews/staticReviewsSection\";\nimport ContactFormSection from \"../components/forms/contactFormSection\";\n\nconst IndexPage = ({\n pageContext: { markupData, lang },\n}: PageProps) => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default IndexPage;\n\nexport const Head: HeadFC = ({\n pageContext: { markupData, site, lang },\n location,\n}: HeadProps) => {\n return (\n \n );\n};\n","export interface ILang {\n lang: TLang;\n}\n\nexport type TLang = \"en\" | \"ru\";\n\nexport type TLinks = \"services\" | \"workflow\" | \"projects\" | \"blog\";\n\nexport interface IBasePageContext extends ILang {\n site: ISiteMetadata;\n}\n\nexport interface IMdQueryResult {\n allMarkdownRemark: {\n nodes: T[];\n };\n}\n\nexport interface ISiteMetadata {\n title: string;\n description: string;\n siteUrl: string;\n image: string;\n analyticsId: string;\n}\n\nexport enum Theme {\n dark = \"dark\",\n light = \"light\",\n}\n","const defaultOptions = {\n active: true,\n breakpoints: {},\n delay: 4000,\n jump: false,\n playOnInit: true,\n stopOnFocusIn: true,\n stopOnInteraction: true,\n stopOnMouseEnter: false,\n stopOnLastSnap: false,\n rootNode: null\n};\n\nfunction Autoplay(userOptions = {}) {\n let options;\n let emblaApi;\n let destroyed;\n let playing = false;\n let resume = true;\n let jump = false;\n let timer = 0;\n function init(emblaApiInstance, optionsHandler) {\n emblaApi = emblaApiInstance;\n const {\n mergeOptions,\n optionsAtMedia\n } = optionsHandler;\n const optionsBase = mergeOptions(defaultOptions, Autoplay.globalOptions);\n const allOptions = mergeOptions(optionsBase, userOptions);\n options = optionsAtMedia(allOptions);\n if (emblaApi.scrollSnapList().length <= 1) return;\n jump = options.jump;\n destroyed = false;\n const {\n eventStore,\n ownerDocument\n } = emblaApi.internalEngine();\n const emblaRoot = emblaApi.rootNode();\n const root = options.rootNode && options.rootNode(emblaRoot) || emblaRoot;\n const container = emblaApi.containerNode();\n emblaApi.on('pointerDown', stopTimer);\n if (!options.stopOnInteraction) {\n emblaApi.on('pointerUp', startTimer);\n }\n if (options.stopOnMouseEnter) {\n eventStore.add(root, 'mouseenter', () => {\n resume = false;\n stopTimer();\n });\n if (!options.stopOnInteraction) {\n eventStore.add(root, 'mouseleave', () => {\n resume = true;\n startTimer();\n });\n }\n }\n if (options.stopOnFocusIn) {\n eventStore.add(container, 'focusin', stopTimer);\n if (!options.stopOnInteraction) {\n eventStore.add(container, 'focusout', startTimer);\n }\n }\n eventStore.add(ownerDocument, 'visibilitychange', visibilityChange);\n if (options.playOnInit && !documentIsHidden()) startTimer();\n }\n function destroy() {\n emblaApi.off('pointerDown', stopTimer).off('pointerUp', startTimer);\n stopTimer();\n destroyed = true;\n playing = false;\n }\n function startTimer() {\n if (destroyed) return;\n if (!resume) return;\n if (!playing) emblaApi.emit('autoplay:play');\n const {\n ownerWindow\n } = emblaApi.internalEngine();\n ownerWindow.clearInterval(timer);\n timer = ownerWindow.setInterval(next, options.delay);\n playing = true;\n }\n function stopTimer() {\n if (destroyed) return;\n if (playing) emblaApi.emit('autoplay:stop');\n const {\n ownerWindow\n } = emblaApi.internalEngine();\n ownerWindow.clearInterval(timer);\n timer = 0;\n playing = false;\n }\n function visibilityChange() {\n if (documentIsHidden()) {\n resume = playing;\n return stopTimer();\n }\n if (resume) startTimer();\n }\n function documentIsHidden() {\n const {\n ownerDocument\n } = emblaApi.internalEngine();\n return ownerDocument.visibilityState === 'hidden';\n }\n function play(jumpOverride) {\n if (typeof jumpOverride !== 'undefined') jump = jumpOverride;\n resume = true;\n startTimer();\n }\n function stop() {\n if (playing) stopTimer();\n }\n function reset() {\n if (playing) play();\n }\n function isPlaying() {\n return playing;\n }\n function next() {\n const {\n index\n } = emblaApi.internalEngine();\n const nextIndex = index.clone().add(1).get();\n const lastIndex = emblaApi.scrollSnapList().length - 1;\n const kill = options.stopOnLastSnap && nextIndex === lastIndex;\n if (kill) stopTimer();\n if (emblaApi.canScrollNext()) {\n emblaApi.scrollNext(jump);\n } else {\n emblaApi.scrollTo(0, jump);\n }\n }\n const self = {\n name: 'autoplay',\n options: userOptions,\n init,\n destroy,\n play,\n stop,\n reset,\n isPlaying\n };\n return self;\n}\nAutoplay.globalOptions = undefined;\n\nexport { Autoplay as default };\n//# sourceMappingURL=embla-carousel-autoplay.esm.js.map\n"],"names":["GenIcon","module","exports","props","_ref","section","theme","title","linkTitle","subTitle","className","children","borderT","borderB","isArrowLink","attr","mainColorClass","Theme","dark","linkColorClass","bgColorClass","React","Border","Object","assign","ContentContainer","maxWidthClass","toUpperCase","Link","to","post","markupData","lang","date","text","frontmatter","minutes","Math","floor","wordCount","words","readingTime","fontColorClass100","light","fontColorClass10","fontColorHover","id","itemScope","itemType","itemProp","split","slice","join","readPostLink","BsArrowUpRight","size","readingTimeTitle","readingTimeUnits","LocalBusinessMetadata","project","cover","getImage","teamSize","duration","bgColors","GatsbyImage","image","alt","forwardRef","ref","emblaRef","emblaApi","useEmblaCarousel","loop","dragFree","align","Autoplay","delay","stopOnInteraction","stopOnMouseEnter","onMouseEnter","internalEngine","animation","stop","onMouseLeave","start","StackSection","_techData$markdownRem","_techData$markdownRem2","techData","useStaticQuery","query","techArr","markdownRemark","stack","StackCarousel","map","tech","StackUnit","key","AiFillBug","_postData$markupData","_postData$markupData$","_postData$markupData$2","_postData$markupData$3","_postData$lang","_postData$lang$nodes","_postData$en","_postData$en$nodes","_sectionMarkup$blogSe","_sectionMarkup$blogSe2","postData","sectionMarkup","nodes","find","node","fields","language","blog","en","TemplateSection","blogSectionTitle","blogSectionLinkTitle","PostPreview","_projectsPreviewData$","_projectsPreviewData$2","_projectsPreviewData$3","_projectsPreviewData$4","_projectsPreviewData$5","_projectsPreviewData$6","_sectionMarkup$morePr","_sectionMarkup$morePr2","excludeId","projectsPreviewData","projects","filter","moreProjectsSectionTitle","moreProjectsSectionLinkTitle","i","ProjectPreview","review","company","person","position","location","html","avatar","FaQuoteRight","color","dangerouslySetInnerHTML","__html","_reviewsData$markupDa","_reviewsData$markupDa2","_reviewsData$markupDa3","_reviewsData$markupDa4","_reviewsData$lang","_reviewsData$lang$nod","_reviewsData$en","_reviewsData$en$nodes","_sectionMarkup$title","reviewsData","reviews","sort","a","b","Review","pageContext","IconContext","Provider","value","style","verticalAlign","Banner","bannerTitle","babylon","ProjectsSection","StaticReviewsSection","PostSection","ContactFormSection","Head","_ref2","site","HeadSeo","head","description","metaDescription","siteUrl","path","pathname","defaultOptions","active","breakpoints","jump","playOnInit","stopOnFocusIn","stopOnLastSnap","rootNode","userOptions","options","destroyed","playing","resume","timer","startTimer","emit","ownerWindow","clearInterval","setInterval","next","stopTimer","visibilityChange","documentIsHidden","ownerDocument","visibilityState","play","jumpOverride","index","nextIndex","clone","add","get","lastIndex","scrollSnapList","length","canScrollNext","scrollNext","scrollTo","name","init","emblaApiInstance","optionsHandler","mergeOptions","optionsAtMedia","optionsBase","globalOptions","allOptions","eventStore","emblaRoot","root","container","containerNode","on","destroy","off","reset","isPlaying","undefined"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js b/component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js deleted file mode 100644 index cd6ac413..00000000 --- a/component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[417],{9153:function(e,t,n){n.r(t),n.d(t,{Head:function(){return T},default:function(){return P}});var a=n(7294),r=n(8032),i=n(4471),s=n.n(i),o=n(1929),l=n(1164),c=n(9165),u=n(577),m=n(1312);var d=e=>{let{service:t,className:n}=e;const{html:r,frontmatter:{title:i,keywords:s,image:{publicURL:o}}}=t;return a.createElement("div",{className:`service-preview origin-[5%_50%] break-inside-avoid flex flex-col gap-5 p-8 text-secondary-100 cursor-pointer ${n}`,itemScope:!0,itemType:"https://schema.org/Service"},a.createElement("div",{className:"flex items-center gap-5"},a.createElement("img",{src:o,alt:`${i} logo`,className:"invert h-10 w-10"}),a.createElement("h2",{className:"font-bold text-2xl",itemProp:"serviceType"},i)),a.createElement("div",{className:"text-base text-secondary-70",dangerouslySetInnerHTML:{__html:r},itemProp:"description"}),s?a.createElement("div",{className:"flex gap-2 flex-wrap w-full"},s.map((e=>a.createElement("p",{key:e,className:"h-8 flex items-center whitespace-nowrap px-4 bg-main-70 text-secondary-70 rounded-lg"},e)))):null)};const f=e=>{let{service:t,className:n,...r}=e;const{frontmatter:{title:i,image:{publicURL:s}}}=t;return a.createElement("button",Object.assign({className:`flex gap-5 min-h-10 items-center ${n}`,type:"button"},r),a.createElement("div",{className:"py-1.5"},a.createElement("img",{src:s,alt:`${i} logo`,className:"invert h-7 w-7"})),a.createElement("h2",{className:"hidden lg:block font-semibold text-lg text-secondary-100 text-start",itemProp:"serviceType"},i))};function v(){return v=Object.assign||function(e){for(var t=1;t=e;case"y":return Math.abs(r)>=e;case"z":return Math.abs(i)>=e;default:return!1}}(d,o)&&e.preventDefault(),c.isStarted?c.isMomentum&&d>Math.max(2,2*c.lastAbsDelta)&&(j(!0),L()):L(),0===d&&Object.is&&Object.is(e.deltaX,-0)?u=!0:(t=e,c.axisMovement=p(c.axisMovement,o),c.lastAbsDelta=d,c.scrollPointsToMerge.push({axisDelta:o,timeStamp:m}),S(),f({axisDelta:o,isStart:!c.isStartPublished}),c.isStartPublished=!0,O())},S=function(){var e;2===c.scrollPointsToMerge.length?(c.scrollPoints.unshift({axisDeltaSum:c.scrollPointsToMerge.map((function(e){return e.axisDelta})).reduce(p),timeStamp:(e=c.scrollPointsToMerge.map((function(e){return e.timeStamp})),e.reduce((function(e,t){return e+t}))/e.length)}),D(),c.scrollPointsToMerge.length=0,c.scrollPoints.length=1,c.isMomentum||P()):c.isStartPublished||k()},k=function(){var e;c.axisVelocity=(e=c.scrollPointsToMerge,e[e.length-1]).axisDelta.map((function(e){return e/c.willEndTimeout}))},D=function(){var e=c.scrollPoints,t=e[0],n=e[1];if(n&&t){var a=t.timeStamp-n.timeStamp;if(!(a<=0)){var r=t.axisDeltaSum.map((function(e){return e/a})),i=r.map((function(e,t){return e/(c.axisVelocity[t]||1)}));c.axisVelocity=r,c.accelerationFactors.push(i),N(a)}}},N=function(e){var t=10*Math.ceil(e/10)*1.2;c.isMomentum||(t=Math.max(100,2*t)),c.willEndTimeout=Math.min(1e3,Math.round(t))},C=function(e){return 0===e||e<=.96&&e>=.6},P=function(){if(c.accelerationFactors.length>=5){if(u&&(u=!1,h(c.axisVelocity)>=.2))return void T();var e=c.accelerationFactors.slice(-5);e.every((function(e){var t=!!e.reduce((function(e,t){return e&&e<1&&e===t?1:0})),n=e.filter(C).length===e.length;return t||n}))&&T(),c.accelerationFactors=e}},T=function(){c.isMomentum=!0},L=function(){(c=y()).isStarted=!0,c.startTime=Date.now(),n=void 0,u=!1},O=function(){clearTimeout(a),a=setTimeout(j,c.willEndTimeout)},j=function(e){void 0===e&&(e=!1),c.isStarted&&(c.isMomentum&&e?f({isEnding:!0,isMomentumCancel:!0}):f({isEnding:!0}),c.isMomentum=!1,c.isStarted=!1)},A=function(e){var t=[],n=function(n){n.removeEventListener("wheel",e),t=t.filter((function(e){return e!==n}))};return g({observe:function(a){return a.addEventListener("wheel",e,{passive:!1}),t.push(a),function(){return n(a)}},unobserve:n,disconnect:function(){t.forEach(n)}})}(m),F=A.observe,V=A.unobserve,I=A.disconnect;return d(e),g({on:i,off:s,observe:F,unobserve:V,disconnect:I,feedWheel:m,updateOptions:d})},k={active:!0,breakpoints:{},wheelDraggingClass:"is-wheel-dragging",forceWheelAxis:void 0,target:void 0};N.globalOptions=void 0;var D=!1;function N(e){var t;void 0===e&&(e={});var n=function(){};return{name:"wheelGestures",options:e,init:function(a,r){var i,s,o=r.mergeOptions,l=r.optionsAtMedia,c=o(k,N.globalOptions),u=o(c,e);t=l(u);var m,d=a.internalEngine(),f=null!=(i=t.target)?i:a.containerNode().parentNode,v=null!=(s=t.forceWheelAxis)?s:d.options.axis,p=S({preventWheelAction:v,reverseSign:[!0,!0,!1]}),h=p.observe(f),g=p.on("wheel",(function(e){var a=e.axisDelta,r=a[0],i=a[1],s="x"===v?r:i,o="x"===v?i:r,l=e.isMomentum&&e.previous&&!e.previous.isMomentum,c=e.isEnding&&!e.isMomentum||l;Math.abs(s)>Math.abs(o)&&!x&&!e.isMomentum&&function(e){try{w(m=new MouseEvent("mousedown",e.event))}catch(a){return D&&console.warn("Legacy browser requires events-polyfill (https://github.com/xiel/embla-carousel-wheel-gestures#legacy-browsers)"),n()}x=!0,document.documentElement.addEventListener("mousemove",E,!0),document.documentElement.addEventListener("mouseup",E,!0),void document.documentElement.addEventListener("mousedown",E,!0),t.wheelDraggingClass&&f.classList.add(t.wheelDraggingClass)}(e);if(!x)return;c?function(e){x=!1,w(M("mouseup",e)),b(),t.wheelDraggingClass&&f.classList.remove(t.wheelDraggingClass)}(e):w(M("mousemove",e))})),x=!1;function b(){document.documentElement.removeEventListener("mousemove",E,!0),document.documentElement.removeEventListener("mouseup",E,!0),document.documentElement.removeEventListener("mousedown",E,!0)}function E(e){x&&e.isTrusted&&e.stopImmediatePropagation()}function M(e,t){var n,a;if(v===d.options.axis){var r=t.axisMovement;n=r[0],a=r[1]}else{var i=t.axisMovement;a=i[0],n=i[1]}if(!d.options.skipSnaps&&!d.options.dragFree){var s=d.containerRect.width,o=d.containerRect.height;n=n<0?Math.max(n,-s):Math.min(n,s),a=a<0?Math.max(a,-o):Math.min(a,o)}return new MouseEvent(e,{clientX:m.clientX+n,clientY:m.clientY+a,screenX:m.screenX+n,screenY:m.screenY+a,movementX:n,movementY:a,button:0,bubbles:!0,cancelable:!0,composed:!0})}function w(e){a.containerNode().dispatchEvent(e)}n=function(){h(),g(),b()}},destroy:function(){return n()}}}var C=e=>{let{services:t}=e;const[n,r]=(0,m.Z)({axis:"y",loop:!0,align:"center"},[N()]),i=(0,a.useRef)(0),s=(0,a.useRef)([]),{selectedIndex:o,onServiceButtonClick:l}=((e,t)=>{const{0:n,1:r}=(0,a.useState)(0),i=(0,a.useCallback)((n=>{e&&(e.scrollTo(n),t&&t(e))}),[e,t]),s=(0,a.useCallback)((e=>{r(e.selectedScrollSnap())}),[]);return(0,a.useEffect)((()=>{e&&(s(e),e.on("reInit",s).on("select",s))}),[e,s]),{selectedIndex:n,onServiceButtonClick:i}})(r),c=(0,a.useCallback)((e=>{s.current=e.slideNodes().map((e=>e.querySelector(".service-preview")))}),[]),u=(0,a.useCallback)((e=>{i.current=.2*e.scrollSnapList().length}),[]),v=(0,a.useCallback)(((e,t)=>{const n=e.internalEngine(),a=e.scrollProgress(),r=e.slidesInView(),o="scroll"===t;e.scrollSnapList().forEach(((e,t)=>{let l=e-a;n.slideRegistry[t].forEach((t=>{if(o&&!r.includes(t))return;n.options.loop&&n.slideLooper.loopPoints.forEach((n=>{const r=n.target();if(t===n.index&&0!==r){const t=Math.sign(r);-1===t&&(l=e-(1+a)),1===t&&(l=e+(1-a))}}));const c=1-Math.abs(l*i.current),u=(m=c,d=0,f=1,Math.min(Math.max(m,d),f));var m,d,f;s.current[t].style.transform=`scale(${u})`}))}))}),[]);return(0,a.useEffect)((()=>{r&&(c(r),u(r),v(r),r.on("reInit",c).on("reInit",u).on("reInit",v).on("scroll",v).on("slideFocus",v))}),[r,v]),a.createElement(a.Fragment,null,a.createElement("div",{className:"hidden sm:flex flex-col gap-5 p-8 lg:basis-[410px] shrink-0"},t?t.map(((e,t)=>a.createElement(f,{key:`dot-${e.id}`,service:e,onClick:()=>l(t),className:""+(t===o?"":"brightness-[0.4] hover:brightness-100")}))):null),a.createElement("div",{ref:n,className:"hidden sm:block overflow-hidden basis-full"},a.createElement("div",{style:{backfaceVisibility:"hidden"},className:"flex flex-col touch-pan-x h-[1000px] sm:h-[900px] md:h-[750px]"},t?t.map(((e,t)=>a.createElement("div",{key:e.id,onClick:()=>l(t),className:"grow-0 shrink-0 basis-1/3 min-h-0 select-none flex items-center"},a.createElement(d,{service:e,className:"select-none "+(t===o?"":"brightness-[0.4]")})))):null)))};var P=e=>{var t;let{data:n,pageContext:{markupData:i,lang:c}}=e;const m=null===(t=n.allMarkdownRemark)||void 0===t?void 0:t.nodes,f=(0,r.c)(i.image);return a.createElement(a.Fragment,null,a.createElement(o.Z,{heightClass:"lg:h-99",title:i.bannerTitle,image:f}),a.createElement("div",{className:"bg-main-100"},a.createElement(l.Z,{maxWidthClass:"max-w-[1280px]",className:"flex flex-col sm:flex-row items-start sm:justify-end py-6 sm:py-10 lg:!px-20 gap-0 sm:gap-5 lg:gap-[48px]"},m?a.createElement(C,{services:m}):null,m?m.map(((e,t)=>a.createElement(d,{key:e.id,service:e,className:"sm:hidden select-none"}))):null)),a.createElement(s(),{className:"w-full"}),a.createElement(u.Z,{lang:c}))};const T=e=>{let{pageContext:{markupData:t,site:n,lang:r},location:i}=e;return a.createElement(a.Fragment,null,a.createElement(c.Ag,{title:`${t.head} | ${t.bannerTitle.toUpperCase()}`,siteUrl:n.siteUrl,path:i.pathname,lang:r}))}}}]); -//# sourceMappingURL=component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js.map \ No newline at end of file diff --git a/component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js b/component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js new file mode 100644 index 00000000..1bc1b6a5 --- /dev/null +++ b/component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[417],{9153:function(e,t,n){n.r(t),n.d(t,{Head:function(){return T},default:function(){return P}});var a=n(7294),r=n(8032),i=n(4471),s=n.n(i),o=n(1929),l=n(1164),c=n(9165),u=n(4532),m=n(1312);var d=e=>{let{service:t,className:n}=e;const{html:r,frontmatter:{title:i,keywords:s,image:{publicURL:o}}}=t;return a.createElement("div",{className:`service-preview origin-[5%_50%] break-inside-avoid flex flex-col gap-5 p-8 text-secondary-100 cursor-pointer ${n}`,itemScope:!0,itemType:"https://schema.org/Service"},a.createElement("div",{className:"flex items-center gap-5"},a.createElement("img",{src:o,alt:`${i} logo`,className:"invert h-10 w-10"}),a.createElement("h2",{className:"font-bold text-2xl",itemProp:"serviceType"},i)),a.createElement("div",{className:"text-base text-secondary-70",dangerouslySetInnerHTML:{__html:r},itemProp:"description"}),s?a.createElement("div",{className:"flex gap-2 flex-wrap w-full"},s.map((e=>a.createElement("p",{key:e,className:"h-8 flex items-center whitespace-nowrap px-4 bg-main-70 text-secondary-70 rounded-lg"},e)))):null)};const f=e=>{let{service:t,className:n,...r}=e;const{frontmatter:{title:i,image:{publicURL:s}}}=t;return a.createElement("button",Object.assign({className:`flex gap-5 min-h-10 items-center ${n}`,type:"button"},r),a.createElement("div",{className:"py-1.5"},a.createElement("img",{src:s,alt:`${i} logo`,className:"invert h-7 w-7"})),a.createElement("h2",{className:"hidden lg:block font-semibold text-lg text-secondary-100 text-start",itemProp:"serviceType"},i))};function v(){return v=Object.assign||function(e){for(var t=1;t=e;case"y":return Math.abs(r)>=e;case"z":return Math.abs(i)>=e;default:return!1}}(d,o)&&e.preventDefault(),c.isStarted?c.isMomentum&&d>Math.max(2,2*c.lastAbsDelta)&&(j(!0),L()):L(),0===d&&Object.is&&Object.is(e.deltaX,-0)?u=!0:(t=e,c.axisMovement=p(c.axisMovement,o),c.lastAbsDelta=d,c.scrollPointsToMerge.push({axisDelta:o,timeStamp:m}),S(),f({axisDelta:o,isStart:!c.isStartPublished}),c.isStartPublished=!0,O())},S=function(){var e;2===c.scrollPointsToMerge.length?(c.scrollPoints.unshift({axisDeltaSum:c.scrollPointsToMerge.map((function(e){return e.axisDelta})).reduce(p),timeStamp:(e=c.scrollPointsToMerge.map((function(e){return e.timeStamp})),e.reduce((function(e,t){return e+t}))/e.length)}),D(),c.scrollPointsToMerge.length=0,c.scrollPoints.length=1,c.isMomentum||P()):c.isStartPublished||k()},k=function(){var e;c.axisVelocity=(e=c.scrollPointsToMerge,e[e.length-1]).axisDelta.map((function(e){return e/c.willEndTimeout}))},D=function(){var e=c.scrollPoints,t=e[0],n=e[1];if(n&&t){var a=t.timeStamp-n.timeStamp;if(!(a<=0)){var r=t.axisDeltaSum.map((function(e){return e/a})),i=r.map((function(e,t){return e/(c.axisVelocity[t]||1)}));c.axisVelocity=r,c.accelerationFactors.push(i),N(a)}}},N=function(e){var t=10*Math.ceil(e/10)*1.2;c.isMomentum||(t=Math.max(100,2*t)),c.willEndTimeout=Math.min(1e3,Math.round(t))},C=function(e){return 0===e||e<=.96&&e>=.6},P=function(){if(c.accelerationFactors.length>=5){if(u&&(u=!1,h(c.axisVelocity)>=.2))return void T();var e=c.accelerationFactors.slice(-5);e.every((function(e){var t=!!e.reduce((function(e,t){return e&&e<1&&e===t?1:0})),n=e.filter(C).length===e.length;return t||n}))&&T(),c.accelerationFactors=e}},T=function(){c.isMomentum=!0},L=function(){(c=y()).isStarted=!0,c.startTime=Date.now(),n=void 0,u=!1},O=function(){clearTimeout(a),a=setTimeout(j,c.willEndTimeout)},j=function(e){void 0===e&&(e=!1),c.isStarted&&(c.isMomentum&&e?f({isEnding:!0,isMomentumCancel:!0}):f({isEnding:!0}),c.isMomentum=!1,c.isStarted=!1)},A=function(e){var t=[],n=function(n){n.removeEventListener("wheel",e),t=t.filter((function(e){return e!==n}))};return g({observe:function(a){return a.addEventListener("wheel",e,{passive:!1}),t.push(a),function(){return n(a)}},unobserve:n,disconnect:function(){t.forEach(n)}})}(m),F=A.observe,V=A.unobserve,I=A.disconnect;return d(e),g({on:i,off:s,observe:F,unobserve:V,disconnect:I,feedWheel:m,updateOptions:d})},k={active:!0,breakpoints:{},wheelDraggingClass:"is-wheel-dragging",forceWheelAxis:void 0,target:void 0};N.globalOptions=void 0;var D=!1;function N(e){var t;void 0===e&&(e={});var n=function(){};return{name:"wheelGestures",options:e,init:function(a,r){var i,s,o=r.mergeOptions,l=r.optionsAtMedia,c=o(k,N.globalOptions),u=o(c,e);t=l(u);var m,d=a.internalEngine(),f=null!=(i=t.target)?i:a.containerNode().parentNode,v=null!=(s=t.forceWheelAxis)?s:d.options.axis,p=S({preventWheelAction:v,reverseSign:[!0,!0,!1]}),h=p.observe(f),g=p.on("wheel",(function(e){var a=e.axisDelta,r=a[0],i=a[1],s="x"===v?r:i,o="x"===v?i:r,l=e.isMomentum&&e.previous&&!e.previous.isMomentum,c=e.isEnding&&!e.isMomentum||l;Math.abs(s)>Math.abs(o)&&!x&&!e.isMomentum&&function(e){try{w(m=new MouseEvent("mousedown",e.event))}catch(a){return D&&console.warn("Legacy browser requires events-polyfill (https://github.com/xiel/embla-carousel-wheel-gestures#legacy-browsers)"),n()}x=!0,document.documentElement.addEventListener("mousemove",E,!0),document.documentElement.addEventListener("mouseup",E,!0),void document.documentElement.addEventListener("mousedown",E,!0),t.wheelDraggingClass&&f.classList.add(t.wheelDraggingClass)}(e);if(!x)return;c?function(e){x=!1,w(M("mouseup",e)),b(),t.wheelDraggingClass&&f.classList.remove(t.wheelDraggingClass)}(e):w(M("mousemove",e))})),x=!1;function b(){document.documentElement.removeEventListener("mousemove",E,!0),document.documentElement.removeEventListener("mouseup",E,!0),document.documentElement.removeEventListener("mousedown",E,!0)}function E(e){x&&e.isTrusted&&e.stopImmediatePropagation()}function M(e,t){var n,a;if(v===d.options.axis){var r=t.axisMovement;n=r[0],a=r[1]}else{var i=t.axisMovement;a=i[0],n=i[1]}if(!d.options.skipSnaps&&!d.options.dragFree){var s=d.containerRect.width,o=d.containerRect.height;n=n<0?Math.max(n,-s):Math.min(n,s),a=a<0?Math.max(a,-o):Math.min(a,o)}return new MouseEvent(e,{clientX:m.clientX+n,clientY:m.clientY+a,screenX:m.screenX+n,screenY:m.screenY+a,movementX:n,movementY:a,button:0,bubbles:!0,cancelable:!0,composed:!0})}function w(e){a.containerNode().dispatchEvent(e)}n=function(){h(),g(),b()}},destroy:function(){return n()}}}var C=e=>{let{services:t}=e;const[n,r]=(0,m.Z)({axis:"y",loop:!0,align:"center"},[N()]),i=(0,a.useRef)(0),s=(0,a.useRef)([]),{selectedIndex:o,onServiceButtonClick:l}=((e,t)=>{const{0:n,1:r}=(0,a.useState)(0),i=(0,a.useCallback)((n=>{e&&(e.scrollTo(n),t&&t(e))}),[e,t]),s=(0,a.useCallback)((e=>{r(e.selectedScrollSnap())}),[]);return(0,a.useEffect)((()=>{e&&(s(e),e.on("reInit",s).on("select",s))}),[e,s]),{selectedIndex:n,onServiceButtonClick:i}})(r),c=(0,a.useCallback)((e=>{s.current=e.slideNodes().map((e=>e.querySelector(".service-preview")))}),[]),u=(0,a.useCallback)((e=>{i.current=.2*e.scrollSnapList().length}),[]),v=(0,a.useCallback)(((e,t)=>{const n=e.internalEngine(),a=e.scrollProgress(),r=e.slidesInView(),o="scroll"===t;e.scrollSnapList().forEach(((e,t)=>{let l=e-a;n.slideRegistry[t].forEach((t=>{if(o&&!r.includes(t))return;n.options.loop&&n.slideLooper.loopPoints.forEach((n=>{const r=n.target();if(t===n.index&&0!==r){const t=Math.sign(r);-1===t&&(l=e-(1+a)),1===t&&(l=e+(1-a))}}));const c=1-Math.abs(l*i.current),u=(m=c,d=0,f=1,Math.min(Math.max(m,d),f));var m,d,f;s.current[t].style.transform=`scale(${u})`}))}))}),[]);return(0,a.useEffect)((()=>{r&&(c(r),u(r),v(r),r.on("reInit",c).on("reInit",u).on("reInit",v).on("scroll",v).on("slideFocus",v))}),[r,v]),a.createElement(a.Fragment,null,a.createElement("div",{className:"hidden sm:flex flex-col gap-5 p-8 lg:basis-[410px] shrink-0"},t?t.map(((e,t)=>a.createElement(f,{key:`dot-${e.id}`,service:e,onClick:()=>l(t),className:""+(t===o?"":"brightness-[0.4] hover:brightness-100")}))):null),a.createElement("div",{ref:n,className:"hidden sm:block overflow-hidden basis-full"},a.createElement("div",{style:{backfaceVisibility:"hidden"},className:"flex flex-col touch-pan-x h-[1000px] sm:h-[900px] md:h-[750px]"},t?t.map(((e,t)=>a.createElement("div",{key:e.id,onClick:()=>l(t),className:"grow-0 shrink-0 basis-1/3 min-h-0 select-none flex items-center"},a.createElement(d,{service:e,className:"select-none "+(t===o?"":"brightness-[0.4]")})))):null)))};var P=e=>{var t;let{data:n,pageContext:{markupData:i,lang:c}}=e;const m=null===(t=n.allMarkdownRemark)||void 0===t?void 0:t.nodes,f=(0,r.c)(i.image);return a.createElement(a.Fragment,null,a.createElement(o.Z,{heightClass:"lg:h-99",title:i.bannerTitle,image:f}),a.createElement("div",{className:"bg-main-100"},a.createElement(l.Z,{maxWidthClass:"max-w-[1280px]",className:"flex flex-col sm:flex-row items-start sm:justify-end py-6 sm:py-10 lg:!px-20 gap-0 sm:gap-5 lg:gap-[48px]"},m?a.createElement(C,{services:m}):null,m?m.map(((e,t)=>a.createElement(d,{key:e.id,service:e,className:"sm:hidden select-none"}))):null)),a.createElement(s(),{className:"w-full"}),a.createElement(u.Z,{lang:c}))};const T=e=>{let{pageContext:{markupData:t,site:n,lang:r},location:i}=e;return a.createElement(a.Fragment,null,a.createElement(c.Ag,{title:`${t.head} | ${t.bannerTitle.toUpperCase()}`,siteUrl:n.siteUrl,path:i.pathname,lang:r}))}}}]); +//# sourceMappingURL=component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js.map \ No newline at end of file diff --git a/component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js.map b/component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js.map similarity index 86% rename from component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js.map rename to component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js.map index 85332a09..36a3e188 100644 --- a/component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js.map +++ b/component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js.map @@ -1 +1 @@ -{"version":3,"file":"component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js","mappings":"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","sources":["webpack://code-cave/./src/components/services/servicePreview.tsx","webpack://code-cave/./src/components/services/servicesCarouselButtons.tsx","webpack://code-cave/./node_modules/wheel-gestures/dist/wheel-gestures.esm.js","webpack://code-cave/./node_modules/embla-carousel-wheel-gestures/dist/embla-carousel-wheel-gestures.esm.js","webpack://code-cave/./src/components/services/servicesCarousel.tsx","webpack://code-cave/./src/pagesTemplates/services.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { IServicePreview } from \"../../types/services.type\";\n\nconst ServicePreview = ({\n service,\n className,\n}: {\n service: IServicePreview;\n className?: string;\n}) => {\n const {\n html,\n frontmatter: {\n title,\n keywords,\n image: { publicURL: imageURL },\n },\n } = service;\n\n return (\n \n
\n \n

\n {title}\n

\n
\n \n {keywords ? (\n
\n {keywords.map((hashtag) => (\n \n {hashtag}\n

\n ))}\n
\n ) : null}\n \n );\n};\n\nexport default ServicePreview;\n","import React, {\n ComponentPropsWithRef,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport { EmblaCarouselType } from \"embla-carousel\";\nimport { IServicePreview } from \"../../types/services.type\";\n\ntype UseDotButtonType = {\n selectedIndex: number;\n onServiceButtonClick: (index: number) => void;\n};\n\nexport const useServicesButtons = (\n emblaApi: EmblaCarouselType | undefined,\n onButtonClick?: (emblaApi: EmblaCarouselType) => void\n): UseDotButtonType => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n const onServiceButtonClick = useCallback(\n (index: number) => {\n if (!emblaApi) return;\n emblaApi.scrollTo(index);\n if (onButtonClick) onButtonClick(emblaApi);\n },\n [emblaApi, onButtonClick]\n );\n\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setSelectedIndex(emblaApi.selectedScrollSnap());\n }, []);\n\n useEffect(() => {\n if (!emblaApi) return;\n\n onSelect(emblaApi);\n\n emblaApi.on(\"reInit\", onSelect).on(\"select\", onSelect);\n }, [emblaApi, onSelect]);\n\n return {\n selectedIndex,\n onServiceButtonClick,\n };\n};\n\ninterface IServiceCarouselButtonProps extends ComponentPropsWithRef<\"button\"> {\n service: IServicePreview;\n}\n\nexport const ServiceCarouselButton = ({\n service,\n className,\n ...attr\n}: IServiceCarouselButtonProps) => {\n const {\n frontmatter: {\n title,\n image: { publicURL: imageURL },\n },\n } = service;\n\n return (\n \n
\n {`${title}\n
\n \n {title}\n \n \n );\n};\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar DECAY = 0.996;\n/**\r\n * movement projection based on velocity\r\n * @param velocityPxMs\r\n * @param decay\r\n */\n\nvar projection = function projection(velocityPxMs, decay) {\n if (decay === void 0) {\n decay = DECAY;\n }\n\n return velocityPxMs * decay / (1 - decay);\n};\n\nfunction lastOf(array) {\n return array[array.length - 1];\n}\nfunction average(numbers) {\n return numbers.reduce(function (a, b) {\n return a + b;\n }) / numbers.length;\n}\nvar clamp = function clamp(value, min, max) {\n return Math.min(Math.max(min, value), max);\n};\nfunction addVectors(v1, v2) {\n if (v1.length !== v2.length) {\n throw new Error('vectors must be same length');\n }\n\n return v1.map(function (val, i) {\n return val + v2[i];\n });\n}\nfunction absMax(numbers) {\n return Math.max.apply(Math, numbers.map(Math.abs));\n} // eslint-disable-next-line @typescript-eslint/ban-types\n\nfunction deepFreeze(o) {\n Object.freeze(o);\n Object.values(o).forEach(function (value) {\n if (value !== null && typeof value === 'object' && !Object.isFrozen(value)) {\n deepFreeze(value);\n }\n });\n return o;\n}\n\nfunction EventBus() {\n var listeners = {};\n\n function on(type, listener) {\n listeners[type] = (listeners[type] || []).concat(listener);\n return function () {\n return off(type, listener);\n };\n }\n\n function off(type, listener) {\n listeners[type] = (listeners[type] || []).filter(function (l) {\n return l !== listener;\n });\n }\n\n function dispatch(type, data) {\n if (!(type in listeners)) return;\n listeners[type].forEach(function (l) {\n return l(data);\n });\n }\n\n return deepFreeze({\n on: on,\n off: off,\n dispatch: dispatch\n });\n}\n\nfunction WheelTargetObserver(eventListener) {\n var targets = []; // add event listener to target element\n\n var observe = function observe(target) {\n target.addEventListener('wheel', eventListener, {\n passive: false\n });\n targets.push(target);\n return function () {\n return unobserve(target);\n };\n }; /// remove event listener from target element\n\n\n var unobserve = function unobserve(target) {\n target.removeEventListener('wheel', eventListener);\n targets = targets.filter(function (t) {\n return t !== target;\n });\n }; // stops watching all of its target elements for visibility changes.\n\n\n var disconnect = function disconnect() {\n targets.forEach(unobserve);\n };\n\n return deepFreeze({\n observe: observe,\n unobserve: unobserve,\n disconnect: disconnect\n });\n}\n\nvar LINE_HEIGHT = 16 * 1.125;\nvar PAGE_HEIGHT = typeof window !== 'undefined' && window.innerHeight || 800;\nvar DELTA_MODE_UNIT = [1, LINE_HEIGHT, PAGE_HEIGHT];\nfunction normalizeWheel(e) {\n var deltaX = e.deltaX * DELTA_MODE_UNIT[e.deltaMode];\n var deltaY = e.deltaY * DELTA_MODE_UNIT[e.deltaMode];\n var deltaZ = (e.deltaZ || 0) * DELTA_MODE_UNIT[e.deltaMode];\n return {\n timeStamp: e.timeStamp,\n axisDelta: [deltaX, deltaY, deltaZ]\n };\n}\nvar reverseAll = [-1, -1, -1];\nfunction reverseAxisDeltaSign(wheel, reverseSign) {\n if (!reverseSign) {\n return wheel;\n }\n\n var multipliers = reverseSign === true ? reverseAll : reverseSign.map(function (shouldReverse) {\n return shouldReverse ? -1 : 1;\n });\n return _extends({}, wheel, {\n axisDelta: wheel.axisDelta.map(function (delta, i) {\n return delta * multipliers[i];\n })\n });\n}\nvar DELTA_MAX_ABS = 700;\nvar clampAxisDelta = function clampAxisDelta(wheel) {\n return _extends({}, wheel, {\n axisDelta: wheel.axisDelta.map(function (delta) {\n return clamp(delta, -DELTA_MAX_ABS, DELTA_MAX_ABS);\n })\n });\n};\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar ACC_FACTOR_MIN = 0.6;\nvar ACC_FACTOR_MAX = 0.96;\nvar WHEELEVENTS_TO_MERGE = 2;\nvar WHEELEVENTS_TO_ANALAZE = 5;\n\nvar configDefaults = /*#__PURE__*/deepFreeze({\n preventWheelAction: true,\n reverseSign: [true, true, false]\n});\n\nvar WILL_END_TIMEOUT_DEFAULT = 400;\nfunction createWheelGesturesState() {\n return {\n isStarted: false,\n isStartPublished: false,\n isMomentum: false,\n startTime: 0,\n lastAbsDelta: Infinity,\n axisMovement: [0, 0, 0],\n axisVelocity: [0, 0, 0],\n accelerationFactors: [],\n scrollPoints: [],\n scrollPointsToMerge: [],\n willEndTimeout: WILL_END_TIMEOUT_DEFAULT\n };\n}\n\nfunction WheelGestures(optionsParam) {\n if (optionsParam === void 0) {\n optionsParam = {};\n }\n\n var _EventBus = EventBus(),\n on = _EventBus.on,\n off = _EventBus.off,\n dispatch = _EventBus.dispatch;\n\n var config = configDefaults;\n var state = createWheelGesturesState();\n var currentEvent;\n var negativeZeroFingerUpSpecialEvent = false;\n var prevWheelEventState;\n\n var feedWheel = function feedWheel(wheelEvents) {\n if (Array.isArray(wheelEvents)) {\n wheelEvents.forEach(function (wheelEvent) {\n return processWheelEventData(wheelEvent);\n });\n } else {\n processWheelEventData(wheelEvents);\n }\n };\n\n var updateOptions = function updateOptions(newOptions) {\n if (newOptions === void 0) {\n newOptions = {};\n }\n\n if (Object.values(newOptions).some(function (option) {\n return option === undefined || option === null;\n })) {\n __DEV__ && console.error('updateOptions ignored! undefined & null options not allowed');\n return config;\n }\n\n return config = deepFreeze(_extends({}, configDefaults, config, newOptions));\n };\n\n var publishWheel = function publishWheel(additionalData) {\n var wheelEventState = _extends({\n event: currentEvent,\n isStart: false,\n isEnding: false,\n isMomentumCancel: false,\n isMomentum: state.isMomentum,\n axisDelta: [0, 0, 0],\n axisVelocity: state.axisVelocity,\n axisMovement: state.axisMovement,\n\n get axisMovementProjection() {\n return addVectors(wheelEventState.axisMovement, wheelEventState.axisVelocity.map(function (velocity) {\n return projection(velocity);\n }));\n }\n\n }, additionalData);\n\n dispatch('wheel', _extends({}, wheelEventState, {\n previous: prevWheelEventState\n })); // keep reference without previous, otherwise we would create a long chain\n\n prevWheelEventState = wheelEventState;\n }; // should prevent when there is mainly movement on the desired axis\n\n\n var shouldPreventDefault = function shouldPreventDefault(deltaMaxAbs, axisDelta) {\n var _config = config,\n preventWheelAction = _config.preventWheelAction;\n var deltaX = axisDelta[0],\n deltaY = axisDelta[1],\n deltaZ = axisDelta[2];\n if (typeof preventWheelAction === 'boolean') return preventWheelAction;\n\n switch (preventWheelAction) {\n case 'x':\n return Math.abs(deltaX) >= deltaMaxAbs;\n\n case 'y':\n return Math.abs(deltaY) >= deltaMaxAbs;\n\n case 'z':\n return Math.abs(deltaZ) >= deltaMaxAbs;\n\n default:\n __DEV__ && console.warn('unsupported preventWheelAction value: ' + preventWheelAction, 'warn');\n return false;\n }\n };\n\n var processWheelEventData = function processWheelEventData(wheelEvent) {\n var _clampAxisDelta = clampAxisDelta(reverseAxisDeltaSign(normalizeWheel(wheelEvent), config.reverseSign)),\n axisDelta = _clampAxisDelta.axisDelta,\n timeStamp = _clampAxisDelta.timeStamp;\n\n var deltaMaxAbs = absMax(axisDelta);\n\n if (wheelEvent.preventDefault && shouldPreventDefault(deltaMaxAbs, axisDelta)) {\n wheelEvent.preventDefault();\n }\n\n if (!state.isStarted) {\n start();\n } // check if user started scrolling again -> cancel\n else if (state.isMomentum && deltaMaxAbs > Math.max(2, state.lastAbsDelta * 2)) {\n end(true);\n start();\n } // special finger up event on windows + blink\n\n\n if (deltaMaxAbs === 0 && Object.is && Object.is(wheelEvent.deltaX, -0)) {\n negativeZeroFingerUpSpecialEvent = true; // return -> zero delta event should not influence velocity\n\n return;\n }\n\n currentEvent = wheelEvent;\n state.axisMovement = addVectors(state.axisMovement, axisDelta);\n state.lastAbsDelta = deltaMaxAbs;\n state.scrollPointsToMerge.push({\n axisDelta: axisDelta,\n timeStamp: timeStamp\n });\n mergeScrollPointsCalcVelocity(); // only wheel event (move) and not start/end get the delta values\n\n publishWheel({\n axisDelta: axisDelta,\n isStart: !state.isStartPublished\n }); // state.isMomentum ? MOMENTUM_WHEEL : WHEEL, { axisDelta })\n // publish start after velocity etc. have been updated\n\n state.isStartPublished = true; // calc debounced end function, to recognize end of wheel event stream\n\n willEnd();\n };\n\n var mergeScrollPointsCalcVelocity = function mergeScrollPointsCalcVelocity() {\n if (state.scrollPointsToMerge.length === WHEELEVENTS_TO_MERGE) {\n state.scrollPoints.unshift({\n axisDeltaSum: state.scrollPointsToMerge.map(function (b) {\n return b.axisDelta;\n }).reduce(addVectors),\n timeStamp: average(state.scrollPointsToMerge.map(function (b) {\n return b.timeStamp;\n }))\n }); // only update velocity after a merged scrollpoint was generated\n\n updateVelocity(); // reset toMerge array\n\n state.scrollPointsToMerge.length = 0; // after calculation of velocity only keep the most recent merged scrollPoint\n\n state.scrollPoints.length = 1;\n\n if (!state.isMomentum) {\n detectMomentum();\n }\n } else if (!state.isStartPublished) {\n updateStartVelocity();\n }\n };\n\n var updateStartVelocity = function updateStartVelocity() {\n state.axisVelocity = lastOf(state.scrollPointsToMerge).axisDelta.map(function (d) {\n return d / state.willEndTimeout;\n });\n };\n\n var updateVelocity = function updateVelocity() {\n // need to have two recent points to calc velocity\n var _state$scrollPoints = state.scrollPoints,\n latestScrollPoint = _state$scrollPoints[0],\n prevScrollPoint = _state$scrollPoints[1];\n\n if (!prevScrollPoint || !latestScrollPoint) {\n return;\n } // time delta\n\n\n var deltaTime = latestScrollPoint.timeStamp - prevScrollPoint.timeStamp;\n\n if (deltaTime <= 0) {\n __DEV__ && console.warn('invalid deltaTime');\n return;\n } // calc the velocity per axes\n\n\n var velocity = latestScrollPoint.axisDeltaSum.map(function (d) {\n return d / deltaTime;\n }); // calc the acceleration factor per axis\n\n var accelerationFactor = velocity.map(function (v, i) {\n return v / (state.axisVelocity[i] || 1);\n });\n state.axisVelocity = velocity;\n state.accelerationFactors.push(accelerationFactor);\n updateWillEndTimeout(deltaTime);\n };\n\n var updateWillEndTimeout = function updateWillEndTimeout(deltaTime) {\n // use current time between events rounded up and increased by a bit as timeout\n var newTimeout = Math.ceil(deltaTime / 10) * 10 * 1.2; // double the timeout, when momentum was not detected yet\n\n if (!state.isMomentum) {\n newTimeout = Math.max(100, newTimeout * 2);\n }\n\n state.willEndTimeout = Math.min(1000, Math.round(newTimeout));\n };\n\n var accelerationFactorInMomentumRange = function accelerationFactorInMomentumRange(accFactor) {\n // when main axis is the the other one and there is no movement/change on the current one\n if (accFactor === 0) return true;\n return accFactor <= ACC_FACTOR_MAX && accFactor >= ACC_FACTOR_MIN;\n };\n\n var detectMomentum = function detectMomentum() {\n if (state.accelerationFactors.length >= WHEELEVENTS_TO_ANALAZE) {\n if (negativeZeroFingerUpSpecialEvent) {\n negativeZeroFingerUpSpecialEvent = false;\n\n if (absMax(state.axisVelocity) >= 0.2) {\n recognizedMomentum();\n return;\n }\n }\n\n var recentAccelerationFactors = state.accelerationFactors.slice(WHEELEVENTS_TO_ANALAZE * -1); // check recent acceleration / deceleration factors\n // all recent need to match, if any did not match\n\n var detectedMomentum = recentAccelerationFactors.every(function (accFac) {\n // when both axis decelerate exactly in the same rate it is very likely caused by momentum\n var sameAccFac = !!accFac.reduce(function (f1, f2) {\n return f1 && f1 < 1 && f1 === f2 ? 1 : 0;\n }); // check if acceleration factor is within momentum range\n\n var bothAreInRangeOrZero = accFac.filter(accelerationFactorInMomentumRange).length === accFac.length; // one the requirements must be fulfilled\n\n return sameAccFac || bothAreInRangeOrZero;\n });\n\n if (detectedMomentum) {\n recognizedMomentum();\n } // only keep the most recent events\n\n\n state.accelerationFactors = recentAccelerationFactors;\n }\n };\n\n var recognizedMomentum = function recognizedMomentum() {\n state.isMomentum = true;\n };\n\n var start = function start() {\n state = createWheelGesturesState();\n state.isStarted = true;\n state.startTime = Date.now();\n prevWheelEventState = undefined;\n negativeZeroFingerUpSpecialEvent = false;\n };\n\n var willEnd = function () {\n var willEndId;\n return function () {\n clearTimeout(willEndId);\n willEndId = setTimeout(end, state.willEndTimeout);\n };\n }();\n\n var end = function end(isMomentumCancel) {\n if (isMomentumCancel === void 0) {\n isMomentumCancel = false;\n }\n\n if (!state.isStarted) return;\n\n if (state.isMomentum && isMomentumCancel) {\n publishWheel({\n isEnding: true,\n isMomentumCancel: true\n });\n } else {\n publishWheel({\n isEnding: true\n });\n }\n\n state.isMomentum = false;\n state.isStarted = false;\n };\n\n var _WheelTargetObserver = WheelTargetObserver(feedWheel),\n observe = _WheelTargetObserver.observe,\n unobserve = _WheelTargetObserver.unobserve,\n disconnect = _WheelTargetObserver.disconnect;\n\n updateOptions(optionsParam);\n return deepFreeze({\n on: on,\n off: off,\n observe: observe,\n unobserve: unobserve,\n disconnect: disconnect,\n feedWheel: feedWheel,\n updateOptions: updateOptions\n });\n}\n\nexport default WheelGestures;\nexport { WheelGestures, absMax, addVectors, average, clamp, configDefaults, deepFreeze, lastOf, projection };\n//# sourceMappingURL=wheel-gestures.esm.js.map\n","import WheelGestures from 'wheel-gestures';\n\nvar defaultOptions = {\n active: true,\n breakpoints: {},\n wheelDraggingClass: 'is-wheel-dragging',\n forceWheelAxis: undefined,\n target: undefined\n};\nWheelGesturesPlugin.globalOptions = undefined;\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nfunction WheelGesturesPlugin(userOptions) {\n if (userOptions === void 0) {\n userOptions = {};\n }\n\n var options;\n\n var cleanup = function cleanup() {};\n\n function init(embla, optionsHandler) {\n var _options$target, _options$forceWheelAx;\n\n var mergeOptions = optionsHandler.mergeOptions,\n optionsAtMedia = optionsHandler.optionsAtMedia;\n var optionsBase = mergeOptions(defaultOptions, WheelGesturesPlugin.globalOptions);\n var allOptions = mergeOptions(optionsBase, userOptions);\n options = optionsAtMedia(allOptions);\n var engine = embla.internalEngine();\n var targetNode = (_options$target = options.target) != null ? _options$target : embla.containerNode().parentNode;\n var wheelAxis = (_options$forceWheelAx = options.forceWheelAxis) != null ? _options$forceWheelAx : engine.options.axis;\n var wheelGestures = WheelGestures({\n preventWheelAction: wheelAxis,\n reverseSign: [true, true, false]\n });\n var unobserveTargetNode = wheelGestures.observe(targetNode);\n var offWheel = wheelGestures.on('wheel', handleWheel);\n var isStarted = false;\n var startEvent;\n\n function wheelGestureStarted(state) {\n try {\n startEvent = new MouseEvent('mousedown', state.event);\n dispatchEvent(startEvent);\n } catch (e) {\n // Legacy Browsers like IE 10 & 11 will throw when attempting to create the Event\n if (__DEV__) {\n console.warn('Legacy browser requires events-polyfill (https://github.com/xiel/embla-carousel-wheel-gestures#legacy-browsers)');\n }\n\n return cleanup();\n }\n\n isStarted = true;\n addNativeMouseEventListeners();\n\n if (options.wheelDraggingClass) {\n targetNode.classList.add(options.wheelDraggingClass);\n }\n }\n\n function wheelGestureEnded(state) {\n isStarted = false;\n dispatchEvent(createRelativeMouseEvent('mouseup', state));\n removeNativeMouseEventListeners();\n\n if (options.wheelDraggingClass) {\n targetNode.classList.remove(options.wheelDraggingClass);\n }\n }\n\n function addNativeMouseEventListeners() {\n document.documentElement.addEventListener('mousemove', preventNativeMouseHandler, true);\n document.documentElement.addEventListener('mouseup', preventNativeMouseHandler, true);\n document.documentElement.addEventListener('mousedown', preventNativeMouseHandler, true);\n }\n\n function removeNativeMouseEventListeners() {\n document.documentElement.removeEventListener('mousemove', preventNativeMouseHandler, true);\n document.documentElement.removeEventListener('mouseup', preventNativeMouseHandler, true);\n document.documentElement.removeEventListener('mousedown', preventNativeMouseHandler, true);\n }\n\n function preventNativeMouseHandler(e) {\n if (isStarted && e.isTrusted) {\n e.stopImmediatePropagation();\n }\n }\n\n function createRelativeMouseEvent(type, state) {\n var moveX, moveY;\n\n if (wheelAxis === engine.options.axis) {\n var _state$axisMovement = state.axisMovement;\n moveX = _state$axisMovement[0];\n moveY = _state$axisMovement[1];\n } else {\n var _state$axisMovement2 = state.axisMovement;\n moveY = _state$axisMovement2[0];\n moveX = _state$axisMovement2[1];\n } // prevent skipping slides\n\n\n if (!engine.options.skipSnaps && !engine.options.dragFree) {\n var maxX = engine.containerRect.width;\n var maxY = engine.containerRect.height;\n moveX = moveX < 0 ? Math.max(moveX, -maxX) : Math.min(moveX, maxX);\n moveY = moveY < 0 ? Math.max(moveY, -maxY) : Math.min(moveY, maxY);\n }\n\n return new MouseEvent(type, {\n clientX: startEvent.clientX + moveX,\n clientY: startEvent.clientY + moveY,\n screenX: startEvent.screenX + moveX,\n screenY: startEvent.screenY + moveY,\n movementX: moveX,\n movementY: moveY,\n button: 0,\n bubbles: true,\n cancelable: true,\n composed: true\n });\n }\n\n function dispatchEvent(event) {\n embla.containerNode().dispatchEvent(event);\n }\n\n function handleWheel(state) {\n var _state$axisDelta = state.axisDelta,\n deltaX = _state$axisDelta[0],\n deltaY = _state$axisDelta[1];\n var primaryAxisDelta = wheelAxis === 'x' ? deltaX : deltaY;\n var crossAxisDelta = wheelAxis === 'x' ? deltaY : deltaX;\n var isRelease = state.isMomentum && state.previous && !state.previous.isMomentum;\n var isEndingOrRelease = state.isEnding && !state.isMomentum || isRelease;\n var primaryAxisDeltaIsDominant = Math.abs(primaryAxisDelta) > Math.abs(crossAxisDelta);\n\n if (primaryAxisDeltaIsDominant && !isStarted && !state.isMomentum) {\n wheelGestureStarted(state);\n }\n\n if (!isStarted) return;\n\n if (isEndingOrRelease) {\n wheelGestureEnded(state);\n } else {\n dispatchEvent(createRelativeMouseEvent('mousemove', state));\n }\n }\n\n cleanup = function cleanup() {\n unobserveTargetNode();\n offWheel();\n removeNativeMouseEventListeners();\n };\n }\n\n var self = {\n name: 'wheelGestures',\n options: userOptions,\n init: init,\n destroy: function destroy() {\n return cleanup();\n }\n };\n return self;\n}\n\nexport { WheelGesturesPlugin };\n//# sourceMappingURL=embla-carousel-wheel-gestures.esm.js.map\n","import React, { useCallback, useEffect, useRef } from \"react\";\nimport { EmblaCarouselType, EmblaEventType } from \"embla-carousel\";\nimport useEmblaCarousel from \"embla-carousel-react\";\n\nimport { IServicePreview } from \"../../types/services.type\";\n\nimport ServicePreview from \"./servicePreview\";\nimport {\n ServiceCarouselButton,\n useServicesButtons,\n} from \"./servicesCarouselButtons\";\nimport { WheelGesturesPlugin } from \"embla-carousel-wheel-gestures\";\n\nconst TWEEN_FACTOR_BASE = 0.2;\nconst numberWithinRange = (number: number, min: number, max: number): number =>\n Math.min(Math.max(number, min), max);\n\nconst ServicesCarousel = ({ services }: { services: IServicePreview[] }) => {\n const [emblaRef, emblaApi] = useEmblaCarousel(\n {\n axis: \"y\",\n loop: true,\n align: \"center\",\n },\n [WheelGesturesPlugin()]\n );\n\n const tweenFactor = useRef(0);\n const tweenNodes = useRef([]);\n\n const { selectedIndex, onServiceButtonClick } = useServicesButtons(emblaApi);\n\n const setTweenNodes = useCallback((emblaApi: EmblaCarouselType): void => {\n tweenNodes.current = emblaApi.slideNodes().map((slideNode) => {\n return slideNode.querySelector(\".service-preview\") as HTMLElement;\n });\n }, []);\n\n const setTweenFactor = useCallback((emblaApi: EmblaCarouselType) => {\n tweenFactor.current = TWEEN_FACTOR_BASE * emblaApi.scrollSnapList().length;\n }, []);\n\n const tweenScale = useCallback(\n (emblaApi: EmblaCarouselType, eventName?: EmblaEventType) => {\n const engine = emblaApi.internalEngine();\n const scrollProgress = emblaApi.scrollProgress();\n const slidesInView = emblaApi.slidesInView();\n const isScrollEvent = eventName === \"scroll\";\n\n emblaApi.scrollSnapList().forEach((scrollSnap, snapIndex) => {\n let diffToTarget = scrollSnap - scrollProgress;\n const slidesInSnap = engine.slideRegistry[snapIndex];\n\n slidesInSnap.forEach((slideIndex) => {\n if (isScrollEvent && !slidesInView.includes(slideIndex)) return;\n\n if (engine.options.loop) {\n engine.slideLooper.loopPoints.forEach((loopItem) => {\n const target = loopItem.target();\n\n if (slideIndex === loopItem.index && target !== 0) {\n const sign = Math.sign(target);\n\n if (sign === -1) {\n diffToTarget = scrollSnap - (1 + scrollProgress);\n }\n if (sign === 1) {\n diffToTarget = scrollSnap + (1 - scrollProgress);\n }\n }\n });\n }\n\n const tweenValue = 1 - Math.abs(diffToTarget * tweenFactor.current);\n const scale = numberWithinRange(tweenValue, 0, 1);\n const tweenNode = tweenNodes.current[slideIndex];\n tweenNode.style.transform = `scale(${scale})`;\n });\n });\n },\n []\n );\n\n useEffect(() => {\n if (!emblaApi) return;\n\n setTweenNodes(emblaApi);\n setTweenFactor(emblaApi);\n tweenScale(emblaApi);\n\n emblaApi\n .on(\"reInit\", setTweenNodes)\n .on(\"reInit\", setTweenFactor)\n .on(\"reInit\", tweenScale)\n .on(\"scroll\", tweenScale)\n .on(\"slideFocus\", tweenScale);\n }, [emblaApi, tweenScale]);\n\n return (\n <>\n
\n {services\n ? services.map((service, i) => (\n onServiceButtonClick(i)}\n className={`${\n i === selectedIndex\n ? \"\"\n : \"brightness-[0.4] hover:brightness-100\"\n }`}\n />\n ))\n : null}\n
\n \n \n {services\n ? services.map((service, i) => (\n onServiceButtonClick(i)}\n className=\"grow-0 shrink-0 basis-1/3 min-h-0 select-none flex items-center\"\n >\n \n \n ))\n : null}\n \n \n \n );\n};\n\nexport default ServicesCarousel;\n","import React from \"react\";\nimport { HeadFC, HeadProps, PageProps } from \"gatsby\";\nimport { graphql } from \"gatsby\";\nimport { getImage } from \"gatsby-plugin-image\";\n\nimport {\n IServicesPageContext,\n IServicesPreviewQueryResult,\n} from \"../types/services.type\";\n\nimport Border from \"../assets/common/border.svg\";\n\nimport Banner from \"../components/common/banner\";\nimport ContentContainer from \"../components/common/contentContainer\";\nimport { HeadSeo } from \"../components/common/metadata\";\nimport ContactFormSection from \"../components/common/contactFormSection\";\nimport ServicesCarousel from \"../components/services/servicesCarousel\";\nimport ServicePreview from \"../components/services/servicePreview\";\n\nconst Services = ({\n data,\n pageContext: { markupData, lang },\n}: PageProps) => {\n const services = data.allMarkdownRemark?.nodes;\n const bannerImage = getImage(markupData.image);\n\n return (\n <>\n \n
\n \n {services ? : null}\n {services\n ? services.map((service, i) => (\n \n ))\n : null}\n \n
\n \n \n \n );\n};\n\nexport default Services;\n\nexport const Head: HeadFC<\n IServicesPreviewQueryResult,\n IServicesPageContext\n> = ({\n pageContext: { markupData, site, lang },\n location,\n}: HeadProps) => (\n <>\n \n \n);\n\nexport const query = graphql`\n query ($lang: String) {\n allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"services\" }, language: { eq: $lang } }\n }\n ) {\n nodes {\n id\n html\n frontmatter {\n title\n keywords\n image {\n publicURL\n }\n }\n }\n }\n }\n`;\n"],"names":["_ref","service","className","html","frontmatter","title","keywords","image","publicURL","imageURL","React","itemScope","itemType","src","alt","itemProp","dangerouslySetInnerHTML","__html","map","hashtag","key","ServiceCarouselButton","attr","Object","assign","type","_extends","target","i","arguments","length","source","prototype","hasOwnProperty","call","apply","this","addVectors","v1","v2","Error","val","absMax","numbers","Math","max","abs","deepFreeze","o","freeze","values","forEach","value","isFrozen","DELTA_MODE_UNIT","window","innerHeight","reverseAll","clampAxisDelta","wheel","axisDelta","delta","min","configDefaults","preventWheelAction","reverseSign","WILL_END_TIMEOUT_DEFAULT","createWheelGesturesState","isStarted","isStartPublished","isMomentum","startTime","lastAbsDelta","Infinity","axisMovement","axisVelocity","accelerationFactors","scrollPoints","scrollPointsToMerge","willEndTimeout","optionsParam","currentEvent","prevWheelEventState","willEndId","_EventBus","listeners","off","listener","filter","l","on","concat","dispatch","data","EventBus","config","state","negativeZeroFingerUpSpecialEvent","feedWheel","wheelEvents","Array","isArray","wheelEvent","processWheelEventData","updateOptions","newOptions","some","option","publishWheel","additionalData","wheelEventState","event","isStart","isEnding","isMomentumCancel","axisMovementProjection","velocity","decay","previous","e","deltaX","deltaY","deltaZ","_clampAxisDelta","multipliers","shouldReverse","reverseAxisDeltaSign","deltaMode","timeStamp","deltaMaxAbs","preventDefault","shouldPreventDefault","end","start","is","push","mergeScrollPointsCalcVelocity","willEnd","unshift","axisDeltaSum","b","reduce","a","updateVelocity","detectMomentum","updateStartVelocity","array","d","_state$scrollPoints","latestScrollPoint","prevScrollPoint","deltaTime","accelerationFactor","v","updateWillEndTimeout","newTimeout","ceil","round","accelerationFactorInMomentumRange","accFactor","recognizedMomentum","recentAccelerationFactors","slice","WHEELEVENTS_TO_ANALAZE","every","accFac","sameAccFac","f1","f2","bothAreInRangeOrZero","Date","now","undefined","clearTimeout","setTimeout","_WheelTargetObserver","eventListener","targets","unobserve","removeEventListener","t","observe","addEventListener","passive","disconnect","WheelTargetObserver","defaultOptions","active","breakpoints","wheelDraggingClass","forceWheelAxis","WheelGesturesPlugin","globalOptions","userOptions","options","cleanup","name","init","embla","optionsHandler","_options$target","_options$forceWheelAx","mergeOptions","optionsAtMedia","optionsBase","allOptions","startEvent","engine","internalEngine","targetNode","containerNode","parentNode","wheelAxis","axis","wheelGestures","unobserveTargetNode","offWheel","_state$axisDelta","primaryAxisDelta","crossAxisDelta","isRelease","isEndingOrRelease","dispatchEvent","MouseEvent","console","warn","document","documentElement","preventNativeMouseHandler","classList","add","wheelGestureStarted","createRelativeMouseEvent","removeNativeMouseEventListeners","remove","wheelGestureEnded","isTrusted","stopImmediatePropagation","moveX","moveY","_state$axisMovement","_state$axisMovement2","skipSnaps","dragFree","maxX","containerRect","width","maxY","height","clientX","clientY","screenX","screenY","movementX","movementY","button","bubbles","cancelable","composed","destroy","services","emblaRef","emblaApi","useEmblaCarousel","loop","align","tweenFactor","useRef","tweenNodes","selectedIndex","onServiceButtonClick","useServicesButtons","onButtonClick","setSelectedIndex","useState","useCallback","index","scrollTo","onSelect","selectedScrollSnap","useEffect","setTweenNodes","current","slideNodes","slideNode","querySelector","setTweenFactor","scrollSnapList","tweenScale","eventName","scrollProgress","slidesInView","isScrollEvent","scrollSnap","snapIndex","diffToTarget","slideRegistry","slideIndex","includes","slideLooper","loopPoints","loopItem","sign","tweenValue","scale","number","numberWithinRange","style","transform","id","onClick","ref","backfaceVisibility","ServicePreview","_data$allMarkdownRema","pageContext","markupData","lang","allMarkdownRemark","nodes","bannerImage","getImage","Banner","heightClass","bannerTitle","ContentContainer","maxWidthClass","ServicesCarousel","Border","ContactFormSection","Head","_ref2","site","location","HeadSeo","head","toUpperCase","siteUrl","path","pathname"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js","mappings":"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","sources":["webpack://code-cave/./src/components/services/servicePreview.tsx","webpack://code-cave/./src/components/services/servicesCarouselButtons.tsx","webpack://code-cave/./node_modules/wheel-gestures/dist/wheel-gestures.esm.js","webpack://code-cave/./node_modules/embla-carousel-wheel-gestures/dist/embla-carousel-wheel-gestures.esm.js","webpack://code-cave/./src/components/services/servicesCarousel.tsx","webpack://code-cave/./src/pagesTemplates/services.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { IServicePreview } from \"../../types/services.type\";\n\nconst ServicePreview = ({\n service,\n className,\n}: {\n service: IServicePreview;\n className?: string;\n}) => {\n const {\n html,\n frontmatter: {\n title,\n keywords,\n image: { publicURL: imageURL },\n },\n } = service;\n\n return (\n \n
\n \n

\n {title}\n

\n
\n \n {keywords ? (\n
\n {keywords.map((hashtag) => (\n \n {hashtag}\n

\n ))}\n
\n ) : null}\n \n );\n};\n\nexport default ServicePreview;\n","import React, {\n ComponentPropsWithRef,\n useCallback,\n useEffect,\n useState,\n} from \"react\";\nimport { EmblaCarouselType } from \"embla-carousel\";\nimport { IServicePreview } from \"../../types/services.type\";\n\ntype UseDotButtonType = {\n selectedIndex: number;\n onServiceButtonClick: (index: number) => void;\n};\n\nexport const useServicesButtons = (\n emblaApi: EmblaCarouselType | undefined,\n onButtonClick?: (emblaApi: EmblaCarouselType) => void\n): UseDotButtonType => {\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n const onServiceButtonClick = useCallback(\n (index: number) => {\n if (!emblaApi) return;\n emblaApi.scrollTo(index);\n if (onButtonClick) onButtonClick(emblaApi);\n },\n [emblaApi, onButtonClick]\n );\n\n const onSelect = useCallback((emblaApi: EmblaCarouselType) => {\n setSelectedIndex(emblaApi.selectedScrollSnap());\n }, []);\n\n useEffect(() => {\n if (!emblaApi) return;\n\n onSelect(emblaApi);\n\n emblaApi.on(\"reInit\", onSelect).on(\"select\", onSelect);\n }, [emblaApi, onSelect]);\n\n return {\n selectedIndex,\n onServiceButtonClick,\n };\n};\n\ninterface IServiceCarouselButtonProps extends ComponentPropsWithRef<\"button\"> {\n service: IServicePreview;\n}\n\nexport const ServiceCarouselButton = ({\n service,\n className,\n ...attr\n}: IServiceCarouselButtonProps) => {\n const {\n frontmatter: {\n title,\n image: { publicURL: imageURL },\n },\n } = service;\n\n return (\n \n
\n {`${title}\n
\n \n {title}\n \n \n );\n};\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar DECAY = 0.996;\n/**\r\n * movement projection based on velocity\r\n * @param velocityPxMs\r\n * @param decay\r\n */\n\nvar projection = function projection(velocityPxMs, decay) {\n if (decay === void 0) {\n decay = DECAY;\n }\n\n return velocityPxMs * decay / (1 - decay);\n};\n\nfunction lastOf(array) {\n return array[array.length - 1];\n}\nfunction average(numbers) {\n return numbers.reduce(function (a, b) {\n return a + b;\n }) / numbers.length;\n}\nvar clamp = function clamp(value, min, max) {\n return Math.min(Math.max(min, value), max);\n};\nfunction addVectors(v1, v2) {\n if (v1.length !== v2.length) {\n throw new Error('vectors must be same length');\n }\n\n return v1.map(function (val, i) {\n return val + v2[i];\n });\n}\nfunction absMax(numbers) {\n return Math.max.apply(Math, numbers.map(Math.abs));\n} // eslint-disable-next-line @typescript-eslint/ban-types\n\nfunction deepFreeze(o) {\n Object.freeze(o);\n Object.values(o).forEach(function (value) {\n if (value !== null && typeof value === 'object' && !Object.isFrozen(value)) {\n deepFreeze(value);\n }\n });\n return o;\n}\n\nfunction EventBus() {\n var listeners = {};\n\n function on(type, listener) {\n listeners[type] = (listeners[type] || []).concat(listener);\n return function () {\n return off(type, listener);\n };\n }\n\n function off(type, listener) {\n listeners[type] = (listeners[type] || []).filter(function (l) {\n return l !== listener;\n });\n }\n\n function dispatch(type, data) {\n if (!(type in listeners)) return;\n listeners[type].forEach(function (l) {\n return l(data);\n });\n }\n\n return deepFreeze({\n on: on,\n off: off,\n dispatch: dispatch\n });\n}\n\nfunction WheelTargetObserver(eventListener) {\n var targets = []; // add event listener to target element\n\n var observe = function observe(target) {\n target.addEventListener('wheel', eventListener, {\n passive: false\n });\n targets.push(target);\n return function () {\n return unobserve(target);\n };\n }; /// remove event listener from target element\n\n\n var unobserve = function unobserve(target) {\n target.removeEventListener('wheel', eventListener);\n targets = targets.filter(function (t) {\n return t !== target;\n });\n }; // stops watching all of its target elements for visibility changes.\n\n\n var disconnect = function disconnect() {\n targets.forEach(unobserve);\n };\n\n return deepFreeze({\n observe: observe,\n unobserve: unobserve,\n disconnect: disconnect\n });\n}\n\nvar LINE_HEIGHT = 16 * 1.125;\nvar PAGE_HEIGHT = typeof window !== 'undefined' && window.innerHeight || 800;\nvar DELTA_MODE_UNIT = [1, LINE_HEIGHT, PAGE_HEIGHT];\nfunction normalizeWheel(e) {\n var deltaX = e.deltaX * DELTA_MODE_UNIT[e.deltaMode];\n var deltaY = e.deltaY * DELTA_MODE_UNIT[e.deltaMode];\n var deltaZ = (e.deltaZ || 0) * DELTA_MODE_UNIT[e.deltaMode];\n return {\n timeStamp: e.timeStamp,\n axisDelta: [deltaX, deltaY, deltaZ]\n };\n}\nvar reverseAll = [-1, -1, -1];\nfunction reverseAxisDeltaSign(wheel, reverseSign) {\n if (!reverseSign) {\n return wheel;\n }\n\n var multipliers = reverseSign === true ? reverseAll : reverseSign.map(function (shouldReverse) {\n return shouldReverse ? -1 : 1;\n });\n return _extends({}, wheel, {\n axisDelta: wheel.axisDelta.map(function (delta, i) {\n return delta * multipliers[i];\n })\n });\n}\nvar DELTA_MAX_ABS = 700;\nvar clampAxisDelta = function clampAxisDelta(wheel) {\n return _extends({}, wheel, {\n axisDelta: wheel.axisDelta.map(function (delta) {\n return clamp(delta, -DELTA_MAX_ABS, DELTA_MAX_ABS);\n })\n });\n};\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\nvar ACC_FACTOR_MIN = 0.6;\nvar ACC_FACTOR_MAX = 0.96;\nvar WHEELEVENTS_TO_MERGE = 2;\nvar WHEELEVENTS_TO_ANALAZE = 5;\n\nvar configDefaults = /*#__PURE__*/deepFreeze({\n preventWheelAction: true,\n reverseSign: [true, true, false]\n});\n\nvar WILL_END_TIMEOUT_DEFAULT = 400;\nfunction createWheelGesturesState() {\n return {\n isStarted: false,\n isStartPublished: false,\n isMomentum: false,\n startTime: 0,\n lastAbsDelta: Infinity,\n axisMovement: [0, 0, 0],\n axisVelocity: [0, 0, 0],\n accelerationFactors: [],\n scrollPoints: [],\n scrollPointsToMerge: [],\n willEndTimeout: WILL_END_TIMEOUT_DEFAULT\n };\n}\n\nfunction WheelGestures(optionsParam) {\n if (optionsParam === void 0) {\n optionsParam = {};\n }\n\n var _EventBus = EventBus(),\n on = _EventBus.on,\n off = _EventBus.off,\n dispatch = _EventBus.dispatch;\n\n var config = configDefaults;\n var state = createWheelGesturesState();\n var currentEvent;\n var negativeZeroFingerUpSpecialEvent = false;\n var prevWheelEventState;\n\n var feedWheel = function feedWheel(wheelEvents) {\n if (Array.isArray(wheelEvents)) {\n wheelEvents.forEach(function (wheelEvent) {\n return processWheelEventData(wheelEvent);\n });\n } else {\n processWheelEventData(wheelEvents);\n }\n };\n\n var updateOptions = function updateOptions(newOptions) {\n if (newOptions === void 0) {\n newOptions = {};\n }\n\n if (Object.values(newOptions).some(function (option) {\n return option === undefined || option === null;\n })) {\n __DEV__ && console.error('updateOptions ignored! undefined & null options not allowed');\n return config;\n }\n\n return config = deepFreeze(_extends({}, configDefaults, config, newOptions));\n };\n\n var publishWheel = function publishWheel(additionalData) {\n var wheelEventState = _extends({\n event: currentEvent,\n isStart: false,\n isEnding: false,\n isMomentumCancel: false,\n isMomentum: state.isMomentum,\n axisDelta: [0, 0, 0],\n axisVelocity: state.axisVelocity,\n axisMovement: state.axisMovement,\n\n get axisMovementProjection() {\n return addVectors(wheelEventState.axisMovement, wheelEventState.axisVelocity.map(function (velocity) {\n return projection(velocity);\n }));\n }\n\n }, additionalData);\n\n dispatch('wheel', _extends({}, wheelEventState, {\n previous: prevWheelEventState\n })); // keep reference without previous, otherwise we would create a long chain\n\n prevWheelEventState = wheelEventState;\n }; // should prevent when there is mainly movement on the desired axis\n\n\n var shouldPreventDefault = function shouldPreventDefault(deltaMaxAbs, axisDelta) {\n var _config = config,\n preventWheelAction = _config.preventWheelAction;\n var deltaX = axisDelta[0],\n deltaY = axisDelta[1],\n deltaZ = axisDelta[2];\n if (typeof preventWheelAction === 'boolean') return preventWheelAction;\n\n switch (preventWheelAction) {\n case 'x':\n return Math.abs(deltaX) >= deltaMaxAbs;\n\n case 'y':\n return Math.abs(deltaY) >= deltaMaxAbs;\n\n case 'z':\n return Math.abs(deltaZ) >= deltaMaxAbs;\n\n default:\n __DEV__ && console.warn('unsupported preventWheelAction value: ' + preventWheelAction, 'warn');\n return false;\n }\n };\n\n var processWheelEventData = function processWheelEventData(wheelEvent) {\n var _clampAxisDelta = clampAxisDelta(reverseAxisDeltaSign(normalizeWheel(wheelEvent), config.reverseSign)),\n axisDelta = _clampAxisDelta.axisDelta,\n timeStamp = _clampAxisDelta.timeStamp;\n\n var deltaMaxAbs = absMax(axisDelta);\n\n if (wheelEvent.preventDefault && shouldPreventDefault(deltaMaxAbs, axisDelta)) {\n wheelEvent.preventDefault();\n }\n\n if (!state.isStarted) {\n start();\n } // check if user started scrolling again -> cancel\n else if (state.isMomentum && deltaMaxAbs > Math.max(2, state.lastAbsDelta * 2)) {\n end(true);\n start();\n } // special finger up event on windows + blink\n\n\n if (deltaMaxAbs === 0 && Object.is && Object.is(wheelEvent.deltaX, -0)) {\n negativeZeroFingerUpSpecialEvent = true; // return -> zero delta event should not influence velocity\n\n return;\n }\n\n currentEvent = wheelEvent;\n state.axisMovement = addVectors(state.axisMovement, axisDelta);\n state.lastAbsDelta = deltaMaxAbs;\n state.scrollPointsToMerge.push({\n axisDelta: axisDelta,\n timeStamp: timeStamp\n });\n mergeScrollPointsCalcVelocity(); // only wheel event (move) and not start/end get the delta values\n\n publishWheel({\n axisDelta: axisDelta,\n isStart: !state.isStartPublished\n }); // state.isMomentum ? MOMENTUM_WHEEL : WHEEL, { axisDelta })\n // publish start after velocity etc. have been updated\n\n state.isStartPublished = true; // calc debounced end function, to recognize end of wheel event stream\n\n willEnd();\n };\n\n var mergeScrollPointsCalcVelocity = function mergeScrollPointsCalcVelocity() {\n if (state.scrollPointsToMerge.length === WHEELEVENTS_TO_MERGE) {\n state.scrollPoints.unshift({\n axisDeltaSum: state.scrollPointsToMerge.map(function (b) {\n return b.axisDelta;\n }).reduce(addVectors),\n timeStamp: average(state.scrollPointsToMerge.map(function (b) {\n return b.timeStamp;\n }))\n }); // only update velocity after a merged scrollpoint was generated\n\n updateVelocity(); // reset toMerge array\n\n state.scrollPointsToMerge.length = 0; // after calculation of velocity only keep the most recent merged scrollPoint\n\n state.scrollPoints.length = 1;\n\n if (!state.isMomentum) {\n detectMomentum();\n }\n } else if (!state.isStartPublished) {\n updateStartVelocity();\n }\n };\n\n var updateStartVelocity = function updateStartVelocity() {\n state.axisVelocity = lastOf(state.scrollPointsToMerge).axisDelta.map(function (d) {\n return d / state.willEndTimeout;\n });\n };\n\n var updateVelocity = function updateVelocity() {\n // need to have two recent points to calc velocity\n var _state$scrollPoints = state.scrollPoints,\n latestScrollPoint = _state$scrollPoints[0],\n prevScrollPoint = _state$scrollPoints[1];\n\n if (!prevScrollPoint || !latestScrollPoint) {\n return;\n } // time delta\n\n\n var deltaTime = latestScrollPoint.timeStamp - prevScrollPoint.timeStamp;\n\n if (deltaTime <= 0) {\n __DEV__ && console.warn('invalid deltaTime');\n return;\n } // calc the velocity per axes\n\n\n var velocity = latestScrollPoint.axisDeltaSum.map(function (d) {\n return d / deltaTime;\n }); // calc the acceleration factor per axis\n\n var accelerationFactor = velocity.map(function (v, i) {\n return v / (state.axisVelocity[i] || 1);\n });\n state.axisVelocity = velocity;\n state.accelerationFactors.push(accelerationFactor);\n updateWillEndTimeout(deltaTime);\n };\n\n var updateWillEndTimeout = function updateWillEndTimeout(deltaTime) {\n // use current time between events rounded up and increased by a bit as timeout\n var newTimeout = Math.ceil(deltaTime / 10) * 10 * 1.2; // double the timeout, when momentum was not detected yet\n\n if (!state.isMomentum) {\n newTimeout = Math.max(100, newTimeout * 2);\n }\n\n state.willEndTimeout = Math.min(1000, Math.round(newTimeout));\n };\n\n var accelerationFactorInMomentumRange = function accelerationFactorInMomentumRange(accFactor) {\n // when main axis is the the other one and there is no movement/change on the current one\n if (accFactor === 0) return true;\n return accFactor <= ACC_FACTOR_MAX && accFactor >= ACC_FACTOR_MIN;\n };\n\n var detectMomentum = function detectMomentum() {\n if (state.accelerationFactors.length >= WHEELEVENTS_TO_ANALAZE) {\n if (negativeZeroFingerUpSpecialEvent) {\n negativeZeroFingerUpSpecialEvent = false;\n\n if (absMax(state.axisVelocity) >= 0.2) {\n recognizedMomentum();\n return;\n }\n }\n\n var recentAccelerationFactors = state.accelerationFactors.slice(WHEELEVENTS_TO_ANALAZE * -1); // check recent acceleration / deceleration factors\n // all recent need to match, if any did not match\n\n var detectedMomentum = recentAccelerationFactors.every(function (accFac) {\n // when both axis decelerate exactly in the same rate it is very likely caused by momentum\n var sameAccFac = !!accFac.reduce(function (f1, f2) {\n return f1 && f1 < 1 && f1 === f2 ? 1 : 0;\n }); // check if acceleration factor is within momentum range\n\n var bothAreInRangeOrZero = accFac.filter(accelerationFactorInMomentumRange).length === accFac.length; // one the requirements must be fulfilled\n\n return sameAccFac || bothAreInRangeOrZero;\n });\n\n if (detectedMomentum) {\n recognizedMomentum();\n } // only keep the most recent events\n\n\n state.accelerationFactors = recentAccelerationFactors;\n }\n };\n\n var recognizedMomentum = function recognizedMomentum() {\n state.isMomentum = true;\n };\n\n var start = function start() {\n state = createWheelGesturesState();\n state.isStarted = true;\n state.startTime = Date.now();\n prevWheelEventState = undefined;\n negativeZeroFingerUpSpecialEvent = false;\n };\n\n var willEnd = function () {\n var willEndId;\n return function () {\n clearTimeout(willEndId);\n willEndId = setTimeout(end, state.willEndTimeout);\n };\n }();\n\n var end = function end(isMomentumCancel) {\n if (isMomentumCancel === void 0) {\n isMomentumCancel = false;\n }\n\n if (!state.isStarted) return;\n\n if (state.isMomentum && isMomentumCancel) {\n publishWheel({\n isEnding: true,\n isMomentumCancel: true\n });\n } else {\n publishWheel({\n isEnding: true\n });\n }\n\n state.isMomentum = false;\n state.isStarted = false;\n };\n\n var _WheelTargetObserver = WheelTargetObserver(feedWheel),\n observe = _WheelTargetObserver.observe,\n unobserve = _WheelTargetObserver.unobserve,\n disconnect = _WheelTargetObserver.disconnect;\n\n updateOptions(optionsParam);\n return deepFreeze({\n on: on,\n off: off,\n observe: observe,\n unobserve: unobserve,\n disconnect: disconnect,\n feedWheel: feedWheel,\n updateOptions: updateOptions\n });\n}\n\nexport default WheelGestures;\nexport { WheelGestures, absMax, addVectors, average, clamp, configDefaults, deepFreeze, lastOf, projection };\n//# sourceMappingURL=wheel-gestures.esm.js.map\n","import WheelGestures from 'wheel-gestures';\n\nvar defaultOptions = {\n active: true,\n breakpoints: {},\n wheelDraggingClass: 'is-wheel-dragging',\n forceWheelAxis: undefined,\n target: undefined\n};\nWheelGesturesPlugin.globalOptions = undefined;\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nfunction WheelGesturesPlugin(userOptions) {\n if (userOptions === void 0) {\n userOptions = {};\n }\n\n var options;\n\n var cleanup = function cleanup() {};\n\n function init(embla, optionsHandler) {\n var _options$target, _options$forceWheelAx;\n\n var mergeOptions = optionsHandler.mergeOptions,\n optionsAtMedia = optionsHandler.optionsAtMedia;\n var optionsBase = mergeOptions(defaultOptions, WheelGesturesPlugin.globalOptions);\n var allOptions = mergeOptions(optionsBase, userOptions);\n options = optionsAtMedia(allOptions);\n var engine = embla.internalEngine();\n var targetNode = (_options$target = options.target) != null ? _options$target : embla.containerNode().parentNode;\n var wheelAxis = (_options$forceWheelAx = options.forceWheelAxis) != null ? _options$forceWheelAx : engine.options.axis;\n var wheelGestures = WheelGestures({\n preventWheelAction: wheelAxis,\n reverseSign: [true, true, false]\n });\n var unobserveTargetNode = wheelGestures.observe(targetNode);\n var offWheel = wheelGestures.on('wheel', handleWheel);\n var isStarted = false;\n var startEvent;\n\n function wheelGestureStarted(state) {\n try {\n startEvent = new MouseEvent('mousedown', state.event);\n dispatchEvent(startEvent);\n } catch (e) {\n // Legacy Browsers like IE 10 & 11 will throw when attempting to create the Event\n if (__DEV__) {\n console.warn('Legacy browser requires events-polyfill (https://github.com/xiel/embla-carousel-wheel-gestures#legacy-browsers)');\n }\n\n return cleanup();\n }\n\n isStarted = true;\n addNativeMouseEventListeners();\n\n if (options.wheelDraggingClass) {\n targetNode.classList.add(options.wheelDraggingClass);\n }\n }\n\n function wheelGestureEnded(state) {\n isStarted = false;\n dispatchEvent(createRelativeMouseEvent('mouseup', state));\n removeNativeMouseEventListeners();\n\n if (options.wheelDraggingClass) {\n targetNode.classList.remove(options.wheelDraggingClass);\n }\n }\n\n function addNativeMouseEventListeners() {\n document.documentElement.addEventListener('mousemove', preventNativeMouseHandler, true);\n document.documentElement.addEventListener('mouseup', preventNativeMouseHandler, true);\n document.documentElement.addEventListener('mousedown', preventNativeMouseHandler, true);\n }\n\n function removeNativeMouseEventListeners() {\n document.documentElement.removeEventListener('mousemove', preventNativeMouseHandler, true);\n document.documentElement.removeEventListener('mouseup', preventNativeMouseHandler, true);\n document.documentElement.removeEventListener('mousedown', preventNativeMouseHandler, true);\n }\n\n function preventNativeMouseHandler(e) {\n if (isStarted && e.isTrusted) {\n e.stopImmediatePropagation();\n }\n }\n\n function createRelativeMouseEvent(type, state) {\n var moveX, moveY;\n\n if (wheelAxis === engine.options.axis) {\n var _state$axisMovement = state.axisMovement;\n moveX = _state$axisMovement[0];\n moveY = _state$axisMovement[1];\n } else {\n var _state$axisMovement2 = state.axisMovement;\n moveY = _state$axisMovement2[0];\n moveX = _state$axisMovement2[1];\n } // prevent skipping slides\n\n\n if (!engine.options.skipSnaps && !engine.options.dragFree) {\n var maxX = engine.containerRect.width;\n var maxY = engine.containerRect.height;\n moveX = moveX < 0 ? Math.max(moveX, -maxX) : Math.min(moveX, maxX);\n moveY = moveY < 0 ? Math.max(moveY, -maxY) : Math.min(moveY, maxY);\n }\n\n return new MouseEvent(type, {\n clientX: startEvent.clientX + moveX,\n clientY: startEvent.clientY + moveY,\n screenX: startEvent.screenX + moveX,\n screenY: startEvent.screenY + moveY,\n movementX: moveX,\n movementY: moveY,\n button: 0,\n bubbles: true,\n cancelable: true,\n composed: true\n });\n }\n\n function dispatchEvent(event) {\n embla.containerNode().dispatchEvent(event);\n }\n\n function handleWheel(state) {\n var _state$axisDelta = state.axisDelta,\n deltaX = _state$axisDelta[0],\n deltaY = _state$axisDelta[1];\n var primaryAxisDelta = wheelAxis === 'x' ? deltaX : deltaY;\n var crossAxisDelta = wheelAxis === 'x' ? deltaY : deltaX;\n var isRelease = state.isMomentum && state.previous && !state.previous.isMomentum;\n var isEndingOrRelease = state.isEnding && !state.isMomentum || isRelease;\n var primaryAxisDeltaIsDominant = Math.abs(primaryAxisDelta) > Math.abs(crossAxisDelta);\n\n if (primaryAxisDeltaIsDominant && !isStarted && !state.isMomentum) {\n wheelGestureStarted(state);\n }\n\n if (!isStarted) return;\n\n if (isEndingOrRelease) {\n wheelGestureEnded(state);\n } else {\n dispatchEvent(createRelativeMouseEvent('mousemove', state));\n }\n }\n\n cleanup = function cleanup() {\n unobserveTargetNode();\n offWheel();\n removeNativeMouseEventListeners();\n };\n }\n\n var self = {\n name: 'wheelGestures',\n options: userOptions,\n init: init,\n destroy: function destroy() {\n return cleanup();\n }\n };\n return self;\n}\n\nexport { WheelGesturesPlugin };\n//# sourceMappingURL=embla-carousel-wheel-gestures.esm.js.map\n","import React, { useCallback, useEffect, useRef } from \"react\";\nimport { EmblaCarouselType, EmblaEventType } from \"embla-carousel\";\nimport useEmblaCarousel from \"embla-carousel-react\";\n\nimport { IServicePreview } from \"../../types/services.type\";\n\nimport ServicePreview from \"./servicePreview\";\nimport {\n ServiceCarouselButton,\n useServicesButtons,\n} from \"./servicesCarouselButtons\";\nimport { WheelGesturesPlugin } from \"embla-carousel-wheel-gestures\";\n\nconst TWEEN_FACTOR_BASE = 0.2;\nconst numberWithinRange = (number: number, min: number, max: number): number =>\n Math.min(Math.max(number, min), max);\n\nconst ServicesCarousel = ({ services }: { services: IServicePreview[] }) => {\n const [emblaRef, emblaApi] = useEmblaCarousel(\n {\n axis: \"y\",\n loop: true,\n align: \"center\",\n },\n [WheelGesturesPlugin()]\n );\n\n const tweenFactor = useRef(0);\n const tweenNodes = useRef([]);\n\n const { selectedIndex, onServiceButtonClick } = useServicesButtons(emblaApi);\n\n const setTweenNodes = useCallback((emblaApi: EmblaCarouselType): void => {\n tweenNodes.current = emblaApi.slideNodes().map((slideNode) => {\n return slideNode.querySelector(\".service-preview\") as HTMLElement;\n });\n }, []);\n\n const setTweenFactor = useCallback((emblaApi: EmblaCarouselType) => {\n tweenFactor.current = TWEEN_FACTOR_BASE * emblaApi.scrollSnapList().length;\n }, []);\n\n const tweenScale = useCallback(\n (emblaApi: EmblaCarouselType, eventName?: EmblaEventType) => {\n const engine = emblaApi.internalEngine();\n const scrollProgress = emblaApi.scrollProgress();\n const slidesInView = emblaApi.slidesInView();\n const isScrollEvent = eventName === \"scroll\";\n\n emblaApi.scrollSnapList().forEach((scrollSnap, snapIndex) => {\n let diffToTarget = scrollSnap - scrollProgress;\n const slidesInSnap = engine.slideRegistry[snapIndex];\n\n slidesInSnap.forEach((slideIndex) => {\n if (isScrollEvent && !slidesInView.includes(slideIndex)) return;\n\n if (engine.options.loop) {\n engine.slideLooper.loopPoints.forEach((loopItem) => {\n const target = loopItem.target();\n\n if (slideIndex === loopItem.index && target !== 0) {\n const sign = Math.sign(target);\n\n if (sign === -1) {\n diffToTarget = scrollSnap - (1 + scrollProgress);\n }\n if (sign === 1) {\n diffToTarget = scrollSnap + (1 - scrollProgress);\n }\n }\n });\n }\n\n const tweenValue = 1 - Math.abs(diffToTarget * tweenFactor.current);\n const scale = numberWithinRange(tweenValue, 0, 1);\n const tweenNode = tweenNodes.current[slideIndex];\n tweenNode.style.transform = `scale(${scale})`;\n });\n });\n },\n []\n );\n\n useEffect(() => {\n if (!emblaApi) return;\n\n setTweenNodes(emblaApi);\n setTweenFactor(emblaApi);\n tweenScale(emblaApi);\n\n emblaApi\n .on(\"reInit\", setTweenNodes)\n .on(\"reInit\", setTweenFactor)\n .on(\"reInit\", tweenScale)\n .on(\"scroll\", tweenScale)\n .on(\"slideFocus\", tweenScale);\n }, [emblaApi, tweenScale]);\n\n return (\n <>\n
\n {services\n ? services.map((service, i) => (\n onServiceButtonClick(i)}\n className={`${\n i === selectedIndex\n ? \"\"\n : \"brightness-[0.4] hover:brightness-100\"\n }`}\n />\n ))\n : null}\n
\n \n \n {services\n ? services.map((service, i) => (\n onServiceButtonClick(i)}\n className=\"grow-0 shrink-0 basis-1/3 min-h-0 select-none flex items-center\"\n >\n \n \n ))\n : null}\n \n \n \n );\n};\n\nexport default ServicesCarousel;\n","import React from \"react\";\nimport { HeadFC, HeadProps, PageProps } from \"gatsby\";\nimport { graphql } from \"gatsby\";\nimport { getImage } from \"gatsby-plugin-image\";\n\nimport {\n IServicesPageContext,\n IServicesPreviewQueryResult,\n} from \"../types/services.type\";\n\nimport Border from \"../assets/common/border.svg\";\n\nimport Banner from \"../components/common/banner\";\nimport ContentContainer from \"../components/common/contentContainer\";\nimport { HeadSeo } from \"../components/common/metadata\";\nimport ContactFormSection from \"../components/forms/contactFormSection\";\nimport ServicesCarousel from \"../components/services/servicesCarousel\";\nimport ServicePreview from \"../components/services/servicePreview\";\n\nconst Services = ({\n data,\n pageContext: { markupData, lang },\n}: PageProps) => {\n const services = data.allMarkdownRemark?.nodes;\n const bannerImage = getImage(markupData.image);\n\n return (\n <>\n \n
\n \n {services ? : null}\n {services\n ? services.map((service, i) => (\n \n ))\n : null}\n \n
\n \n \n \n );\n};\n\nexport default Services;\n\nexport const Head: HeadFC<\n IServicesPreviewQueryResult,\n IServicesPageContext\n> = ({\n pageContext: { markupData, site, lang },\n location,\n}: HeadProps) => (\n <>\n \n \n);\n\nexport const query = graphql`\n query ($lang: String) {\n allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"services\" }, language: { eq: $lang } }\n }\n ) {\n nodes {\n id\n html\n frontmatter {\n title\n keywords\n image {\n publicURL\n }\n }\n }\n }\n }\n`;\n"],"names":["_ref","service","className","html","frontmatter","title","keywords","image","publicURL","imageURL","React","itemScope","itemType","src","alt","itemProp","dangerouslySetInnerHTML","__html","map","hashtag","key","ServiceCarouselButton","attr","Object","assign","type","_extends","target","i","arguments","length","source","prototype","hasOwnProperty","call","apply","this","addVectors","v1","v2","Error","val","absMax","numbers","Math","max","abs","deepFreeze","o","freeze","values","forEach","value","isFrozen","DELTA_MODE_UNIT","window","innerHeight","reverseAll","clampAxisDelta","wheel","axisDelta","delta","min","configDefaults","preventWheelAction","reverseSign","WILL_END_TIMEOUT_DEFAULT","createWheelGesturesState","isStarted","isStartPublished","isMomentum","startTime","lastAbsDelta","Infinity","axisMovement","axisVelocity","accelerationFactors","scrollPoints","scrollPointsToMerge","willEndTimeout","optionsParam","currentEvent","prevWheelEventState","willEndId","_EventBus","listeners","off","listener","filter","l","on","concat","dispatch","data","EventBus","config","state","negativeZeroFingerUpSpecialEvent","feedWheel","wheelEvents","Array","isArray","wheelEvent","processWheelEventData","updateOptions","newOptions","some","option","publishWheel","additionalData","wheelEventState","event","isStart","isEnding","isMomentumCancel","axisMovementProjection","velocity","decay","previous","e","deltaX","deltaY","deltaZ","_clampAxisDelta","multipliers","shouldReverse","reverseAxisDeltaSign","deltaMode","timeStamp","deltaMaxAbs","preventDefault","shouldPreventDefault","end","start","is","push","mergeScrollPointsCalcVelocity","willEnd","unshift","axisDeltaSum","b","reduce","a","updateVelocity","detectMomentum","updateStartVelocity","array","d","_state$scrollPoints","latestScrollPoint","prevScrollPoint","deltaTime","accelerationFactor","v","updateWillEndTimeout","newTimeout","ceil","round","accelerationFactorInMomentumRange","accFactor","recognizedMomentum","recentAccelerationFactors","slice","WHEELEVENTS_TO_ANALAZE","every","accFac","sameAccFac","f1","f2","bothAreInRangeOrZero","Date","now","undefined","clearTimeout","setTimeout","_WheelTargetObserver","eventListener","targets","unobserve","removeEventListener","t","observe","addEventListener","passive","disconnect","WheelTargetObserver","defaultOptions","active","breakpoints","wheelDraggingClass","forceWheelAxis","WheelGesturesPlugin","globalOptions","userOptions","options","cleanup","name","init","embla","optionsHandler","_options$target","_options$forceWheelAx","mergeOptions","optionsAtMedia","optionsBase","allOptions","startEvent","engine","internalEngine","targetNode","containerNode","parentNode","wheelAxis","axis","wheelGestures","unobserveTargetNode","offWheel","_state$axisDelta","primaryAxisDelta","crossAxisDelta","isRelease","isEndingOrRelease","dispatchEvent","MouseEvent","console","warn","document","documentElement","preventNativeMouseHandler","classList","add","wheelGestureStarted","createRelativeMouseEvent","removeNativeMouseEventListeners","remove","wheelGestureEnded","isTrusted","stopImmediatePropagation","moveX","moveY","_state$axisMovement","_state$axisMovement2","skipSnaps","dragFree","maxX","containerRect","width","maxY","height","clientX","clientY","screenX","screenY","movementX","movementY","button","bubbles","cancelable","composed","destroy","services","emblaRef","emblaApi","useEmblaCarousel","loop","align","tweenFactor","useRef","tweenNodes","selectedIndex","onServiceButtonClick","useServicesButtons","onButtonClick","setSelectedIndex","useState","useCallback","index","scrollTo","onSelect","selectedScrollSnap","useEffect","setTweenNodes","current","slideNodes","slideNode","querySelector","setTweenFactor","scrollSnapList","tweenScale","eventName","scrollProgress","slidesInView","isScrollEvent","scrollSnap","snapIndex","diffToTarget","slideRegistry","slideIndex","includes","slideLooper","loopPoints","loopItem","sign","tweenValue","scale","number","numberWithinRange","style","transform","id","onClick","ref","backfaceVisibility","ServicePreview","_data$allMarkdownRema","pageContext","markupData","lang","allMarkdownRemark","nodes","bannerImage","getImage","Banner","heightClass","bannerTitle","ContentContainer","maxWidthClass","ServicesCarousel","Border","ContactFormSection","Head","_ref2","site","location","HeadSeo","head","toUpperCase","siteUrl","path","pathname"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js b/component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js deleted file mode 100644 index eb6c8377..00000000 --- a/component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[548],{216:function(e,t,l){var a=l(7294),n=l(4160),r=l(8322),s=l(4471),c=l.n(s),o=l(1164);t.Z=e=>{let{section:t,theme:l,title:s,linkTitle:m,className:i,children:u,borderT:d,borderB:f,isArrowLink:x=!0,...p}=e;const v=l===r.Q.dark?"text-secondary-100":"text-main-100",g=l===r.Q.dark?"text-secondary-100 hover:text-secondary-70":"text-main-100 hover:text-main-10",w=l===r.Q.dark?"bg-main-100":"bg-secondary-100";return a.createElement(a.Fragment,null,d?a.createElement(c(),{className:"w-full"}):null,a.createElement("section",Object.assign({className:`w-full py-16 ${w} ${i}`},p),a.createElement(o.Z,{maxWidthClass:"max-w-[1280px]",className:`flex-col items-center ${v}`},a.createElement("div",{className:"flex justify-between w-full items-center pb-8 sm:pb-14 flex-col sm:flex-row gap-5"},a.createElement("h2",{className:`text-4xl font-bold w-full ${v}`},s.toUpperCase()),t?a.createElement(n.rU,{to:`/${t}`,className:`w-full sm:w-auto text-start sm:text-end text-xl font-normal cursor-pointer whitespace-nowrap ${g}`},m?m.toUpperCase():"DISCOVER MORE"," ",x?a.createElement(a.Fragment,null,"→"):null):null),u)),f?a.createElement(c(),{className:"w-full"}):null)}},240:function(e,t,l){l.r(t),l.d(t,{Head:function(){return E},default:function(){return w}});var a=l(7294),n=l(8032),r=l(1929),s=l(1164);var c=e=>{let{step:t,scroll:l,stepNumber:n,className:r}=e;const s=(0,a.useRef)(null),{0:c,1:o}=(0,a.useState)("w-[100%]");(0,a.useEffect)((()=>{if(!s.current||!window)return;const e=s.current.getBoundingClientRect().bottom;window.innerHeight>e&&o("w-0")}),[l]);const{html:m,frontmatter:{title:i}}=t;return a.createElement("div",{ref:s,className:`workflow-step relative flex w-full items-center justify-between text-main-100 gap-5 md:gap-28 max-w-4.5xl ${r}`},a.createElement("div",{className:`hidden md:block cover absolute -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 ${c}`}),a.createElement("p",{className:"text-center px-5 md:px-20 text-[88px] sm:text-[148px] font-bold shrink-0 py-4"},n),a.createElement("div",{className:"flex flex-col flex-1 gap-2.5"},a.createElement("h2",{className:"font-bold text-2xl sm:text-3xl"},i),a.createElement("p",{className:"w-full font-normal text-sm sm:text-lg",dangerouslySetInnerHTML:{__html:m}})))},o=l(4160),m=l(8322),i=l(216);var u=e=>{let{reason:{frontmatter:{title:t},html:l},className:n}=e;return a.createElement("div",{className:`group why-us-card relative flex flex-col text-secondary-100 gap-2.5 cursor-pointer break-inside-avoid h-max ${n}`},a.createElement("h3",{className:"text-3xl"},t),a.createElement("div",{className:"text-lg text-secondary-70",dangerouslySetInnerHTML:{__html:l}}),a.createElement("div",{className:"line w-1 h-0 bg-secondary-100 absolute top-1/2 -left-5 -translate-y-1/2 transition-all duration-500 break-inside-avoid group-hover:h-full"}))};var d=e=>{var t,l,n,r,s,c,d,x,p;let{lang:v}=e;const g=(0,o.K2)(f);let w;v in g?w=null==g||null===(t=g[v])||void 0===t?void 0:t.nodes:null==g||null===(l=g.en)||void 0===l||l.nodes;const E=null!==(n=null==g||null===(r=g.markupData)||void 0===r||null===(s=r.nodes)||void 0===s||null===(c=s.find((e=>e.fields.language===v)))||void 0===c||null===(d=c.frontmatter)||void 0===d||null===(x=d.whyUs)||void 0===x?void 0:x.title)&&void 0!==n?n:"why us";return a.createElement(a.Fragment,null,null!==(p=w)&&void 0!==p&&p.length?a.createElement(i.Z,{theme:m.Q.dark,title:E,borderB:!0},a.createElement("div",{className:"flex w-full gap-x-28 max-w-4.5xl"},a.createElement("div",{className:"flex flex-col gap-y-14 justify-start"},w.map(((e,t)=>t%2==0&&a.createElement(u,{key:e.id,reason:e})))),a.createElement("div",{className:"flex flex-col gap-y-14 justify-start"},w.map(((e,t)=>t%2!=0&&a.createElement(u,{key:e.id,reason:e})))))):null)};const f="941943045";var x=l(9165),p=l(4471),v=l.n(p),g=l(577);var w=e=>{let{data:t,pageContext:{markupData:l,lang:o}}=e;const m=t.allMarkdownRemark.nodes,i=(0,n.c)(l.image),u=(0,a.useRef)(!0),{0:f,1:x}=(0,a.useState)(!1),p=()=>{x((e=>!e))};return(0,a.useEffect)((()=>{if(u.current&&window)return u.current=!1,window.addEventListener("scroll",p),()=>window.removeEventListener("scroll",p)}),[]),a.createElement(a.Fragment,null,a.createElement(r.Z,{heightClass:"lg:h-99",title:l.bannerTitle,image:i,borderBottom:!0}),a.createElement("div",{className:"bg-secondary-100"},a.createElement(s.Z,{className:"flex-col items-center relative transition-all duration-1000 py-16"},m?m.map(((e,t)=>a.createElement(c,{key:e.id,step:e,className:"even:flex-row-reverse",scroll:f,stepNumber:t+1}))):null),a.createElement(v(),{className:"w-full"})),a.createElement(d,{lang:o}),a.createElement(g.Z,{lang:o}))};const E=e=>{let{pageContext:{markupData:t,site:l,lang:n},location:r}=e;return a.createElement(x.Ag,{title:`${t.head} | ${t.bannerTitle.toUpperCase()}`,siteUrl:l.siteUrl,path:r.pathname,lang:n})}},8322:function(e,t,l){l.d(t,{Q:function(){return a}});let a=function(e){return e.dark="dark",e.light="light",e}({})}}]); -//# sourceMappingURL=component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js.map \ No newline at end of file diff --git a/component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js.map b/component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js.map deleted file mode 100644 index 51346b89..00000000 --- a/component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js","mappings":"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","sources":["webpack://code-cave/./src/components/common/templateSection.tsx","webpack://code-cave/./src/components/workflow/workflowStep.tsx","webpack://code-cave/./src/components/whyUs/whyUsReason.tsx","webpack://code-cave/./src/components/whyUs/whyUsSection.tsx","webpack://code-cave/./src/pagesTemplates/workflow.tsx","webpack://code-cave/./src/types/common.type.ts"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { Link } from \"gatsby\";\n\nimport { Theme } from \"../../types/common.type\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\n\ninterface ITemplateSectionProps extends React.HTMLAttributes {\n title: string;\n theme: Theme;\n isArrowLink?: boolean;\n linkTitle?: string;\n section?: string;\n className?: string;\n borderT?: boolean;\n borderB?: boolean;\n}\n\nconst TemplateSection = ({\n section,\n theme,\n title,\n linkTitle,\n className,\n children,\n borderT,\n borderB,\n isArrowLink = true,\n ...attr\n}: PropsWithChildren) => {\n const mainColorClass =\n theme === Theme.dark ? \"text-secondary-100\" : \"text-main-100\";\n const linkColorClass =\n theme === Theme.dark\n ? \"text-secondary-100 hover:text-secondary-70\"\n : \"text-main-100 hover:text-main-10\";\n const bgColorClass =\n theme === Theme.dark ? \"bg-main-100\" : \"bg-secondary-100\";\n\n return (\n <>\n {borderT ? : null}\n \n \n
\n

\n {title.toUpperCase()}\n

\n {section ? (\n \n {linkTitle ? linkTitle.toUpperCase() : \"DISCOVER MORE\"}{\" \"}\n {isArrowLink ? <>→ : null}\n \n ) : null}\n
\n {children}\n \n \n {borderB ? : null}\n \n );\n};\n\nexport default TemplateSection;\n","import React, { useEffect, useState, useRef } from \"react\";\n\nimport { IWorkflowStep } from \"../../types/workflow.type\";\n\nimport Bond from \"../../assets/workflow/bond.svg\";\n\nconst WorkflowStep = ({\n step,\n scroll,\n stepNumber,\n className,\n}: {\n step: IWorkflowStep;\n scroll: boolean;\n stepNumber: number;\n className?: string;\n}) => {\n const div = useRef(null);\n const [coverWidth, setCoverWidth] = useState<\"w-[100%]\" | \"w-0\">(\"w-[100%]\");\n\n useEffect(() => {\n if (!div.current || !window) return;\n const divBottom = div.current.getBoundingClientRect().bottom;\n\n if (window.innerHeight > divBottom) setCoverWidth(\"w-0\");\n }, [scroll]);\n\n const {\n html,\n frontmatter: { title },\n } = step;\n\n return (\n \n \n

\n {stepNumber}\n

\n
\n

{title}

\n \n
\n \n );\n};\n\nexport default WorkflowStep;\n\n{\n /* \n \n

\n {stepNumber}\n

\n \n \n \n
\n

{title}

\n \n
\n \n */\n}\n","import React from \"react\";\n\nimport { IWhyUsReason } from \"../../types/whyUs.type\";\n\nconst WhyUsReason = ({\n reason: {\n frontmatter: { title },\n html,\n },\n className,\n}: {\n reason: IWhyUsReason;\n className?: string;\n}) => {\n return (\n \n

{title}

\n \n \n \n );\n};\n\nexport default WhyUsReason;\n","import React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { IWhyUsQueryResult, IWhyUsReason } from \"../../types/whyUs.type\";\nimport { ILang, Theme } from \"../../types/common.type\";\n\nimport TemplateSection from \"../common/templateSection\";\nimport WhyUsReason from \"./whyUsReason\";\n\nconst WhyUsSection = ({ lang }: ILang) => {\n const whyUsQueryData = useStaticQuery(query) as IWhyUsQueryResult;\n\n let whyUsReasons: IWhyUsReason[] | null | undefined;\n if (lang in whyUsQueryData)\n whyUsReasons = whyUsQueryData?.[lang]?.nodes as\n | IWhyUsReason[]\n | null\n | undefined;\n else whyUsQueryData?.en?.nodes;\n\n const sectionTitle =\n whyUsQueryData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter?.whyUs?.title ?? \"why us\";\n\n return (\n <>\n {whyUsReasons?.length ? (\n \n
\n
\n {whyUsReasons.map(\n (reason, i) =>\n i % 2 === 0 && \n )}\n
\n
\n {whyUsReasons.map(\n (reason, i) =>\n i % 2 != 0 && \n )}\n
\n
\n
\n ) : null}\n \n );\n};\n\nexport default WhyUsSection;\n\nconst query = graphql`\n {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"whyUs\" }, language: { eq: \"en\" } }\n }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n id\n html\n frontmatter {\n title\n }\n fields {\n language\n }\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"whyUs\" }, language: { eq: \"ru\" } }\n }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n id\n html\n frontmatter {\n title\n }\n fields {\n language\n }\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n whyUs {\n title\n }\n }\n }\n }\n }\n`;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { HeadFC, HeadProps, PageProps } from \"gatsby\";\nimport { graphql } from \"gatsby\";\nimport { getImage } from \"gatsby-plugin-image\";\n\nimport {\n IWorkflowPageContext,\n IWorkflowStepsQueryResult,\n} from \"../types/workflow.type\";\n\nimport Banner from \"../components/common/banner\";\nimport ContentContainer from \"../components/common/contentContainer\";\nimport WorkflowStep from \"../components/workflow/workflowStep\";\nimport WhyUsSection from \"../components/whyUs/whyUsSection\";\nimport { HeadSeo } from \"../components/common/metadata\";\nimport Border from \"../assets/common/border.svg\";\nimport ContactFormSection from \"../components/common/contactFormSection\";\n\nconst Workflow = ({\n data,\n pageContext: { markupData, lang },\n}: PageProps) => {\n const workflowSteps = data.allMarkdownRemark.nodes;\n const bannerImage = getImage(markupData.image);\n\n const isInitial = useRef(true);\n const [scroll, setScroll] = useState(false);\n\n const scrollHandler = () => {\n setScroll((scroll) => !scroll);\n };\n\n useEffect(() => {\n if (!isInitial.current || !window) return;\n isInitial.current = false;\n\n window.addEventListener(\"scroll\", scrollHandler);\n\n return () => window.removeEventListener(\"scroll\", scrollHandler);\n }, []);\n\n return (\n <>\n \n
\n \n {workflowSteps\n ? workflowSteps.map((step, i) => (\n \n ))\n : null}\n \n \n
\n \n \n \n );\n};\n\nexport default Workflow;\n\nexport const Head: HeadFC = ({\n pageContext: { markupData, site, lang },\n location,\n}: HeadProps) => (\n \n);\n\nexport const query = graphql`\n query ($lang: String) {\n allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"workflow\" }, language: { eq: $lang } }\n }\n sort: { frontmatter: { step: ASC } }\n ) {\n nodes {\n id\n html\n frontmatter {\n title\n image {\n publicURL\n }\n }\n }\n }\n }\n`;\n","export interface ILang {\n lang: TLang;\n}\n\nexport type TLang = \"en\" | \"ru\";\n\nexport type TLinks = \"services\" | \"workflow\" | \"projects\" | \"blog\";\n\nexport interface IBasePageContext extends ILang {\n site: ISiteMetadata;\n}\n\nexport interface IMdQueryResult {\n allMarkdownRemark: {\n nodes: T[];\n };\n}\n\nexport interface ISiteMetadata {\n title: string;\n description: string;\n siteUrl: string;\n image: string;\n analyticsId: string;\n}\n\nexport enum Theme {\n dark = \"dark\",\n light = \"light\",\n}\n"],"names":["_ref","section","theme","title","linkTitle","className","children","borderT","borderB","isArrowLink","attr","mainColorClass","Theme","dark","linkColorClass","bgColorClass","React","Border","Object","assign","ContentContainer","maxWidthClass","toUpperCase","Link","to","step","scroll","stepNumber","div","useRef","coverWidth","setCoverWidth","useState","useEffect","current","window","divBottom","getBoundingClientRect","bottom","innerHeight","html","frontmatter","ref","dangerouslySetInnerHTML","__html","reason","_whyUsQueryData$lang","_whyUsQueryData$en","_whyUsQueryData$marku","_whyUsQueryData$marku2","_whyUsQueryData$marku3","_whyUsQueryData$marku4","_whyUsQueryData$marku5","_whyUsQueryData$marku6","_whyUsReasons","lang","whyUsQueryData","useStaticQuery","query","whyUsReasons","nodes","en","sectionTitle","markupData","find","node","fields","language","whyUs","length","TemplateSection","map","i","WhyUsReason","key","id","data","pageContext","workflowSteps","allMarkdownRemark","bannerImage","getImage","image","isInitial","setScroll","scrollHandler","addEventListener","removeEventListener","Banner","heightClass","bannerTitle","borderBottom","WorkflowStep","WhyUsSection","ContactFormSection","Head","_ref2","site","location","HeadSeo","head","siteUrl","path","pathname"],"sourceRoot":""} \ No newline at end of file diff --git a/component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js b/component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js new file mode 100644 index 00000000..2d54a745 --- /dev/null +++ b/component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkcode_cave=self.webpackChunkcode_cave||[]).push([[548],{216:function(e,t,l){var a=l(7294),n=l(4160),r=l(8322),s=l(4471),o=l.n(s),c=l(1164);t.Z=e=>{let{section:t,theme:l,title:s,linkTitle:m,subTitle:i,className:u,children:d,borderT:f,borderB:x,isArrowLink:p=!0,...v}=e;const g=l===r.Q.dark?"text-secondary-100":"text-main-100",w=l===r.Q.dark?"text-secondary-100 hover:text-secondary-70":"text-main-100 hover:text-main-10",E=l===r.Q.dark?"bg-main-100":"bg-secondary-100";return a.createElement(a.Fragment,null,f?a.createElement(o(),{className:"w-full"}):null,a.createElement("section",Object.assign({className:`w-full py-16 ${E} ${u}`},v),a.createElement(c.Z,{maxWidthClass:"max-w-[1280px]",className:`flex-col items-center ${g}`},a.createElement("div",{className:"flex justify-between w-full sm:items-center pb-8 sm:pb-14 flex-col sm:flex-row gap-5"},a.createElement("h2",{className:`text-4xl font-bold flex-1 ${g}`},s.toUpperCase()),t?a.createElement(n.rU,{to:`/${t}`,className:`w-full sm:w-auto text-start sm:text-end text-xl font-normal cursor-pointer whitespace-nowrap ${w}`},m?m.toUpperCase():"DISCOVER MORE"," ",p?a.createElement(a.Fragment,null,"→"):null):null,i?a.createElement("p",{className:`w-full sm:w-auto flex-1 text-start sm:text-end text-xl font-normal ${g}`},i.toUpperCase()):null),d)),x?a.createElement(o(),{className:"w-full"}):null)}},240:function(e,t,l){l.r(t),l.d(t,{Head:function(){return E},default:function(){return w}});var a=l(7294),n=l(8032),r=l(1929),s=l(1164);var o=e=>{let{step:t,scroll:l,stepNumber:n,className:r}=e;const s=(0,a.useRef)(null),{0:o,1:c}=(0,a.useState)("w-[100%]");(0,a.useEffect)((()=>{if(!s.current||!window)return;const e=s.current.getBoundingClientRect().bottom;window.innerHeight>e&&c("w-0")}),[l]);const{html:m,frontmatter:{title:i}}=t;return a.createElement("div",{ref:s,className:`workflow-step relative flex w-full items-center justify-between text-main-100 gap-5 md:gap-28 max-w-4.5xl ${r}`},a.createElement("div",{className:`hidden md:block cover absolute -top-2 -bottom-2 z-10 bg-secondary-100 transition-all duration-1000 ${o}`}),a.createElement("p",{className:"text-center px-5 md:px-20 text-[88px] sm:text-[148px] font-bold shrink-0 py-4"},n),a.createElement("div",{className:"flex flex-col flex-1 gap-2.5"},a.createElement("h2",{className:"font-bold text-2xl sm:text-3xl"},i),a.createElement("p",{className:"w-full font-normal text-sm sm:text-lg",dangerouslySetInnerHTML:{__html:m}})))},c=l(4160),m=l(8322),i=l(216);var u=e=>{let{reason:{frontmatter:{title:t},html:l},className:n}=e;return a.createElement("div",{className:`group why-us-card relative flex flex-col text-secondary-100 gap-2.5 cursor-pointer break-inside-avoid h-max ${n}`},a.createElement("h3",{className:"text-3xl"},t),a.createElement("div",{className:"text-lg text-secondary-70",dangerouslySetInnerHTML:{__html:l}}),a.createElement("div",{className:"line w-1 h-0 bg-secondary-100 absolute top-1/2 -left-5 -translate-y-1/2 transition-all duration-500 break-inside-avoid group-hover:h-full"}))};var d=e=>{var t,l,n,r,s,o,d,x,p;let{lang:v}=e;const g=(0,c.K2)(f);let w;v in g?w=null==g||null===(t=g[v])||void 0===t?void 0:t.nodes:null==g||null===(l=g.en)||void 0===l||l.nodes;const E=null!==(n=null==g||null===(r=g.markupData)||void 0===r||null===(s=r.nodes)||void 0===s||null===(o=s.find((e=>e.fields.language===v)))||void 0===o||null===(d=o.frontmatter)||void 0===d||null===(x=d.whyUs)||void 0===x?void 0:x.title)&&void 0!==n?n:"why us";return a.createElement(a.Fragment,null,null!==(p=w)&&void 0!==p&&p.length?a.createElement(i.Z,{theme:m.Q.dark,title:E,borderB:!0},a.createElement("div",{className:"flex w-full gap-x-28 max-w-4.5xl"},a.createElement("div",{className:"flex flex-col gap-y-14 justify-start"},w.map(((e,t)=>t%2==0&&a.createElement(u,{key:e.id,reason:e})))),a.createElement("div",{className:"flex flex-col gap-y-14 justify-start"},w.map(((e,t)=>t%2!=0&&a.createElement(u,{key:e.id,reason:e})))))):null)};const f="941943045";var x=l(9165),p=l(4471),v=l.n(p),g=l(4532);var w=e=>{let{data:t,pageContext:{markupData:l,lang:c}}=e;const m=t.allMarkdownRemark.nodes,i=(0,n.c)(l.image),u=(0,a.useRef)(!0),{0:f,1:x}=(0,a.useState)(!1),p=()=>{x((e=>!e))};return(0,a.useEffect)((()=>{if(u.current&&window)return u.current=!1,window.addEventListener("scroll",p),()=>window.removeEventListener("scroll",p)}),[]),a.createElement(a.Fragment,null,a.createElement(r.Z,{heightClass:"lg:h-99",title:l.bannerTitle,image:i,borderBottom:!0}),a.createElement("div",{className:"bg-secondary-100"},a.createElement(s.Z,{className:"flex-col items-center relative transition-all duration-1000 py-16"},m?m.map(((e,t)=>a.createElement(o,{key:e.id,step:e,className:"even:flex-row-reverse",scroll:f,stepNumber:t+1}))):null),a.createElement(v(),{className:"w-full"})),a.createElement(d,{lang:c}),a.createElement(g.Z,{lang:c}))};const E=e=>{let{pageContext:{markupData:t,site:l,lang:n},location:r}=e;return a.createElement(x.Ag,{title:`${t.head} | ${t.bannerTitle.toUpperCase()}`,siteUrl:l.siteUrl,path:r.pathname,lang:n})}},8322:function(e,t,l){l.d(t,{Q:function(){return a}});let a=function(e){return e.dark="dark",e.light="light",e}({})}}]); +//# sourceMappingURL=component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js.map \ No newline at end of file diff --git a/component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js.map b/component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js.map new file mode 100644 index 00000000..afee2116 --- /dev/null +++ b/component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js.map @@ -0,0 +1 @@ +{"version":3,"file":"component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js","mappings":"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","sources":["webpack://code-cave/./src/components/common/templateSection.tsx","webpack://code-cave/./src/components/workflow/workflowStep.tsx","webpack://code-cave/./src/components/whyUs/whyUsReason.tsx","webpack://code-cave/./src/components/whyUs/whyUsSection.tsx","webpack://code-cave/./src/pagesTemplates/workflow.tsx","webpack://code-cave/./src/types/common.type.ts"],"sourcesContent":["import React, { PropsWithChildren } from \"react\";\nimport { Link } from \"gatsby\";\n\nimport { Theme } from \"../../types/common.type\";\n\nimport Border from \"../../assets/common/border.svg\";\n\nimport ContentContainer from \"./contentContainer\";\n\ninterface ITemplateSectionProps extends React.HTMLAttributes {\n title: string;\n theme: Theme;\n isArrowLink?: boolean;\n linkTitle?: string;\n subTitle?: string;\n section?: string;\n className?: string;\n borderT?: boolean;\n borderB?: boolean;\n}\n\nconst TemplateSection = ({\n section,\n theme,\n title,\n linkTitle,\n subTitle,\n className,\n children,\n borderT,\n borderB,\n isArrowLink = true,\n ...attr\n}: PropsWithChildren) => {\n const mainColorClass =\n theme === Theme.dark ? \"text-secondary-100\" : \"text-main-100\";\n const linkColorClass =\n theme === Theme.dark\n ? \"text-secondary-100 hover:text-secondary-70\"\n : \"text-main-100 hover:text-main-10\";\n const bgColorClass =\n theme === Theme.dark ? \"bg-main-100\" : \"bg-secondary-100\";\n\n return (\n <>\n {borderT ? : null}\n \n \n
\n

\n {title.toUpperCase()}\n

\n {section ? (\n \n {linkTitle ? linkTitle.toUpperCase() : \"DISCOVER MORE\"}{\" \"}\n {isArrowLink ? <>→ : null}\n \n ) : null}\n {subTitle ? (\n \n {subTitle.toUpperCase()}\n

\n ) : null}\n
\n {children}\n \n \n {borderB ? : null}\n \n );\n};\n\nexport default TemplateSection;\n","import React, { useEffect, useState, useRef } from \"react\";\n\nimport { IWorkflowStep } from \"../../types/workflow.type\";\n\nimport Bond from \"../../assets/workflow/bond.svg\";\n\nconst WorkflowStep = ({\n step,\n scroll,\n stepNumber,\n className,\n}: {\n step: IWorkflowStep;\n scroll: boolean;\n stepNumber: number;\n className?: string;\n}) => {\n const div = useRef(null);\n const [coverWidth, setCoverWidth] = useState<\"w-[100%]\" | \"w-0\">(\"w-[100%]\");\n\n useEffect(() => {\n if (!div.current || !window) return;\n const divBottom = div.current.getBoundingClientRect().bottom;\n\n if (window.innerHeight > divBottom) setCoverWidth(\"w-0\");\n }, [scroll]);\n\n const {\n html,\n frontmatter: { title },\n } = step;\n\n return (\n \n \n

\n {stepNumber}\n

\n
\n

{title}

\n \n
\n \n );\n};\n\nexport default WorkflowStep;\n\n{\n /* \n \n

\n {stepNumber}\n

\n \n \n \n
\n

{title}

\n \n
\n \n */\n}\n","import React from \"react\";\n\nimport { IWhyUsReason } from \"../../types/whyUs.type\";\n\nconst WhyUsReason = ({\n reason: {\n frontmatter: { title },\n html,\n },\n className,\n}: {\n reason: IWhyUsReason;\n className?: string;\n}) => {\n return (\n \n

{title}

\n \n \n \n );\n};\n\nexport default WhyUsReason;\n","import React from \"react\";\nimport { graphql, useStaticQuery } from \"gatsby\";\n\nimport { IWhyUsQueryResult, IWhyUsReason } from \"../../types/whyUs.type\";\nimport { ILang, Theme } from \"../../types/common.type\";\n\nimport TemplateSection from \"../common/templateSection\";\nimport WhyUsReason from \"./whyUsReason\";\n\nconst WhyUsSection = ({ lang }: ILang) => {\n const whyUsQueryData = useStaticQuery(query) as IWhyUsQueryResult;\n\n let whyUsReasons: IWhyUsReason[] | null | undefined;\n if (lang in whyUsQueryData)\n whyUsReasons = whyUsQueryData?.[lang]?.nodes as\n | IWhyUsReason[]\n | null\n | undefined;\n else whyUsQueryData?.en?.nodes;\n\n const sectionTitle =\n whyUsQueryData?.markupData?.nodes?.find(\n (node) => node.fields.language === lang\n )?.frontmatter?.whyUs?.title ?? \"why us\";\n\n return (\n <>\n {whyUsReasons?.length ? (\n \n
\n
\n {whyUsReasons.map(\n (reason, i) =>\n i % 2 === 0 && \n )}\n
\n
\n {whyUsReasons.map(\n (reason, i) =>\n i % 2 != 0 && \n )}\n
\n
\n
\n ) : null}\n \n );\n};\n\nexport default WhyUsSection;\n\nconst query = graphql`\n {\n en: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"whyUs\" }, language: { eq: \"en\" } }\n }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n id\n html\n frontmatter {\n title\n }\n fields {\n language\n }\n }\n }\n ru: allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"whyUs\" }, language: { eq: \"ru\" } }\n }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n id\n html\n frontmatter {\n title\n }\n fields {\n language\n }\n }\n }\n markupData: allMarkdownRemark(\n filter: { fields: { sourceName: { eq: \"common\" } } }\n sort: { frontmatter: { order: ASC } }\n ) {\n nodes {\n fields {\n language\n }\n frontmatter {\n whyUs {\n title\n }\n }\n }\n }\n }\n`;\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { HeadFC, HeadProps, PageProps } from \"gatsby\";\nimport { graphql } from \"gatsby\";\nimport { getImage } from \"gatsby-plugin-image\";\n\nimport {\n IWorkflowPageContext,\n IWorkflowStepsQueryResult,\n} from \"../types/workflow.type\";\n\nimport Banner from \"../components/common/banner\";\nimport ContentContainer from \"../components/common/contentContainer\";\nimport WorkflowStep from \"../components/workflow/workflowStep\";\nimport WhyUsSection from \"../components/whyUs/whyUsSection\";\nimport { HeadSeo } from \"../components/common/metadata\";\nimport Border from \"../assets/common/border.svg\";\nimport ContactFormSection from \"../components/forms/contactFormSection\";\n\nconst Workflow = ({\n data,\n pageContext: { markupData, lang },\n}: PageProps) => {\n const workflowSteps = data.allMarkdownRemark.nodes;\n const bannerImage = getImage(markupData.image);\n\n const isInitial = useRef(true);\n const [scroll, setScroll] = useState(false);\n\n const scrollHandler = () => {\n setScroll((scroll) => !scroll);\n };\n\n useEffect(() => {\n if (!isInitial.current || !window) return;\n isInitial.current = false;\n\n window.addEventListener(\"scroll\", scrollHandler);\n\n return () => window.removeEventListener(\"scroll\", scrollHandler);\n }, []);\n\n return (\n <>\n \n
\n \n {workflowSteps\n ? workflowSteps.map((step, i) => (\n \n ))\n : null}\n \n \n
\n \n \n \n );\n};\n\nexport default Workflow;\n\nexport const Head: HeadFC = ({\n pageContext: { markupData, site, lang },\n location,\n}: HeadProps) => (\n \n);\n\nexport const query = graphql`\n query ($lang: String) {\n allMarkdownRemark(\n filter: {\n fields: { sourceName: { eq: \"workflow\" }, language: { eq: $lang } }\n }\n sort: { frontmatter: { step: ASC } }\n ) {\n nodes {\n id\n html\n frontmatter {\n title\n image {\n publicURL\n }\n }\n }\n }\n }\n`;\n","export interface ILang {\n lang: TLang;\n}\n\nexport type TLang = \"en\" | \"ru\";\n\nexport type TLinks = \"services\" | \"workflow\" | \"projects\" | \"blog\";\n\nexport interface IBasePageContext extends ILang {\n site: ISiteMetadata;\n}\n\nexport interface IMdQueryResult {\n allMarkdownRemark: {\n nodes: T[];\n };\n}\n\nexport interface ISiteMetadata {\n title: string;\n description: string;\n siteUrl: string;\n image: string;\n analyticsId: string;\n}\n\nexport enum Theme {\n dark = \"dark\",\n light = \"light\",\n}\n"],"names":["_ref","section","theme","title","linkTitle","subTitle","className","children","borderT","borderB","isArrowLink","attr","mainColorClass","Theme","dark","linkColorClass","bgColorClass","React","Border","Object","assign","ContentContainer","maxWidthClass","toUpperCase","Link","to","step","scroll","stepNumber","div","useRef","coverWidth","setCoverWidth","useState","useEffect","current","window","divBottom","getBoundingClientRect","bottom","innerHeight","html","frontmatter","ref","dangerouslySetInnerHTML","__html","reason","_whyUsQueryData$lang","_whyUsQueryData$en","_whyUsQueryData$marku","_whyUsQueryData$marku2","_whyUsQueryData$marku3","_whyUsQueryData$marku4","_whyUsQueryData$marku5","_whyUsQueryData$marku6","_whyUsReasons","lang","whyUsQueryData","useStaticQuery","query","whyUsReasons","nodes","en","sectionTitle","markupData","find","node","fields","language","whyUs","length","TemplateSection","map","i","WhyUsReason","key","id","data","pageContext","workflowSteps","allMarkdownRemark","bannerImage","getImage","image","isInitial","setScroll","scrollHandler","addEventListener","removeEventListener","Banner","heightClass","bannerTitle","borderBottom","WorkflowStep","WhyUsSection","ContactFormSection","Head","_ref2","site","location","HeadSeo","head","siteUrl","path","pathname"],"sourceRoot":""} \ No newline at end of file diff --git a/cookie-policy/index.html b/cookie-policy/index.html index d1d166a5..f23a65bd 100644 --- a/cookie-policy/index.html +++ b/cookie-policy/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/index.html b/index.html index e2e411c9..e16f2bf0 100644 --- a/index.html +++ b/index.html @@ -1,6 +1,6 @@ -

AR

CAD ADDINS

PLM

QUALITY ASSURANCE

3D

ETL

WEB DEVELOPMENT

UX/UI

MOBILE APP

CLOUD & DEVOPS

SOME OF OUR PROJECTS

DISCOVER MORE
cover

3 months

4 specialists

Bimcore Revit Add-In

cover

3 months

7 specialists

Web & Mobile apps for a logistics company

cover

3 mth - ongoing

6 specialists

IFSE Parameters Tool for Revit

OUR CUSTOMERS' SAY ABOUT US

REAL FEEDBACK FROM REAL PEOPLE
Specifi Europe Srl

Fabio Tantaro

General Manger, Specifi Europe Srl

Italy

Codecave helped us to migrate from our old internal system to the new ones, writing documentation that we will re-use in the future and assuring no lack of service in the interim for our customers.

Prima Consulting d.o.o.

Roberto Assi

CEO, Prima Consulting d.o.o.

Serbia

As a service company we wanted to create a website that would sum up all of our experiences gathered over the past 30 years.

+ }]);

AR

CAD ADDINS

PLM

QUALITY ASSURANCE

3D

ETL

WEB DEVELOPMENT

UX/UI

MOBILE APP

CLOUD & DEVOPS

SOME OF OUR PROJECTS

DISCOVER MORE
cover

3 months

4 specialists

Bimcore Revit Add-In

cover

3 months

7 specialists

Web & Mobile apps for a logistics company

cover

3 mth - ongoing

6 specialists

IFSE Parameters Tool for Revit

OUR CUSTOMERS' SAY ABOUT US

REAL FEEDBACK FROM REAL PEOPLE

Specifi Europe Srl

Fabio Tantaro

General Manger, Specifi Europe Srl

Italy

Codecave helped us to migrate from our old internal system to the new ones, writing documentation that we will re-use in the future and assuring no lack of service in the interim for our customers.

Prima Consulting d.o.o.

Roberto Assi

CEO, Prima Consulting d.o.o.

Serbia

As a service company we wanted to create a website that would sum up all of our experiences gathered over the past 30 years.

At the same time we wanted it to be dynamic, with a possibility to add new information over time, as we know that only dynamism makes a website more interesting to its visitors.

We contacted CODECAVE, because we had a chance to collaborate with their CEO when he worked in an Italian IT company. Yaroslav guided us through all the stages of website creation, providing us a complete support. We would like to express our satisfaction with the service and the outcome.

Soytex LLC

SIA "Agrolats Group"

CEO, Soytex LLC

Latvia

During our collaboration CodеCave have proven themselves to be a reliable and responsible company, which quickly and qualitatively solves all the tasks assigned to them.

-

We had a very tight deadlines, however CodeCave team have managed to create a bleeding edge web presentation for us. In the process they always paid great attention all our needs.

asdfas

LET’S DISCUSS YOUR PROJECT

WE’LL BE GLAD TO HEAR FROM YOU!

Describe your project or idea to get our expert assessment.

+

We had a very tight deadlines, however CodeCave team have managed to create a bleeding edge web presentation for us. In the process they always paid great attention all our needs.

anchor

LET’S DISCUSS YOUR PROJECT

WE’LL BE GLAD TO HEAR FROM YOU!

Describe your project or idea to get our expert assessment.

It’s totally free! No strings attached.

We can easily jump into a complex ongoing project or start from scratch.

Don’t miss this opportunity, contact us!

CONTACTS

EIN: 35-2654711, Company Code: 7296176

8 The Green STE B

Dover, DE 19901-3618, United States

+1 302 364 0193

Privacy PolicyCookie Policy

Leave your contact to get our portfolio

- \ No newline at end of file + \ No newline at end of file diff --git a/page-data/app-data.json b/page-data/app-data.json index 1be74c63..75d43b9e 100644 --- a/page-data/app-data.json +++ b/page-data/app-data.json @@ -1 +1 @@ -{"webpackCompilationHash":"5771282efffff01c9464"} +{"webpackCompilationHash":"1e93cba98b6defd99ba1"} diff --git a/privacy-policy/index.html b/privacy-policy/index.html index a5fa5a9c..8c19ec5e 100644 --- a/privacy-policy/index.html +++ b/privacy-policy/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html b/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html index a14b4839..5a5c92ce 100644 --- a/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html +++ b/projects/08716ab8-fc5f-5f90-9fc0-a8218ec51923/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/4010b091-889b-5be1-ab5a-bde195aa7729/index.html b/projects/4010b091-889b-5be1-ab5a-bde195aa7729/index.html index a6a2f818..67f4626e 100644 --- a/projects/4010b091-889b-5be1-ab5a-bde195aa7729/index.html +++ b/projects/4010b091-889b-5be1-ab5a-bde195aa7729/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html b/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html index 9f286405..99cdfb46 100644 --- a/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html +++ b/projects/9f63d17d-6164-509e-b2c7-4c655ab9ad7a/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html b/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html index 6928b632..3e364e3f 100644 --- a/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html +++ b/projects/f17de1e3-0a73-5f92-bf66-1e12d5fdc0fb/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html b/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html index 8be530e0..fc379d64 100644 --- a/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html +++ b/projects/ff9598a3-3fad-5a4e-a8a8-a8858b3a27e7/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/index.html b/projects/index.html index 3d20a711..735bd2a3 100644 --- a/projects/index.html +++ b/projects/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/projects/page/1/index.html b/projects/page/1/index.html index 28ce8095..55215049 100644 --- a/projects/page/1/index.html +++ b/projects/page/1/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/services/index.html b/services/index.html index 30d303a5..74c93102 100644 --- a/services/index.html +++ b/services/index.html @@ -1,6 +1,6 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/styles.89e9083ed75b4db019db.css b/styles.89e9083ed75b4db019db.css new file mode 100644 index 00000000..a95d4534 --- /dev/null +++ b/styles.89e9083ed75b4db019db.css @@ -0,0 +1,3 @@ +/* +! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com +*/*,:after,:before{border:0 solid}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1440px){.container{max-width:1440px}}@media (min-width:1900px){.container{max-width:1900px}}@media (min-width:2200px){.container{max-width:2200px}}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-bottom-1{bottom:-.25rem}.-bottom-2{bottom:-.5rem}.-left-2{left:-.5rem}.-left-5{left:-1.25rem}.-right-2{right:-.5rem}.-right-6{right:-1.5rem}.-top-16{top:-4rem}.-top-2{top:-.5rem}.-top-\[6\.5px\]{top:-6.5px}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.bottom-\[5\%\]{bottom:5%}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-\[2\%\]{left:2%}.right-0{right:0}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.-order-1{order:-1}.float-right{float:right}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-12{margin-left:3rem;margin-right:3rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-20{margin-bottom:5rem;margin-top:5rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-3{margin-left:.75rem}.mr-10{margin-right:2.5rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-3\.5{margin-right:.875rem}.mr-7{margin-right:1.75rem}.mt-3{margin-top:.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-0{height:0}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2\/3{height:66.666667%}.h-28{height:7rem}.h-32{height:8rem}.h-40{height:10rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-91{height:22.75rem}.h-\[1000px\]{height:1000px}.h-\[72px\]{height:72px}.h-full{height:100%}.h-max{height:-moz-max-content;height:max-content}.h-min{height:-moz-min-content;height:min-content}.max-h-\[424px\]{max-height:424px}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-91{min-height:22.75rem}.min-h-full{min-height:100%}.min-h-max{min-height:-moz-max-content;min-height:max-content}.min-h-screen{min-height:100vh}.w-0{width:0}.w-1{width:.25rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-28{width:7rem}.w-32{width:8rem}.w-40{width:10rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-\[100\%\]{width:100%}.w-\[192px\]{width:192px}.w-\[220px\]{width:220px}.w-\[72px\]{width:72px}.w-\[85\%\]{width:85%}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.max-w-2xl{max-width:680px}.max-w-4\.5xl{max-width:1038px}.max-w-7xl{max-width:80rem}.max-w-\[1280px\]{max-width:1280px}.max-w-\[320px\]{max-width:320px}.max-w-\[400px\]{max-width:400px}.max-w-\[500px\]{max-width:500px}.max-w-\[544px\]{max-width:544px}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-1\/3{flex-basis:33.333333%}.basis-1\/6{flex-basis:16.666667%}.basis-4\/6{flex-basis:66.666667%}.basis-full{flex-basis:100%}.origin-\[5\%_50\%\]{transform-origin:5% 50%}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-\[120\%\]{--tw-translate-y:-120%}.-translate-y-\[120\%\],.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-full{--tw-translate-y:100%}.-rotate-90,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.touch-pan-x{--tw-pan-x:pan-x;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-10{gap:2.5rem}.gap-14{gap:3.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.gap-x-16{-moz-column-gap:4rem;column-gap:4rem}.gap-x-24{-moz-column-gap:6rem;column-gap:6rem}.gap-x-28{-moz-column-gap:7rem;column-gap:7rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-14{row-gap:3.5rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-5{row-gap:1.25rem}.gap-y-8{row-gap:2rem}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.5rem*var(--tw-space-x-reverse))}.overflow-hidden{overflow:hidden}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.rounded{border-radius:.25rem}.rounded-2\.5xl{border-radius:20px}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-2xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-\[4px\]{border-bottom-width:4px}.border-t-2{border-top-width:2px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-main-10{--tw-border-opacity:1;border-color:rgb(143 143 143/var(--tw-border-opacity))}.border-main-100{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.border-secondary-10{--tw-border-opacity:1;border-color:rgb(209 209 209/var(--tw-border-opacity))}.border-secondary-100{--tw-border-opacity:1;border-color:rgb(249 249 249/var(--tw-border-opacity))}.border-secondary-70{--tw-border-opacity:1;border-color:rgb(189 189 189/var(--tw-border-opacity))}.border-t-main-100{--tw-border-opacity:1;border-top-color:rgb(17 17 17/var(--tw-border-opacity))}.border-t-secondary-100{--tw-border-opacity:1;border-top-color:rgb(249 249 249/var(--tw-border-opacity))}.bg-main-100{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity))}.bg-main-70{--tw-bg-opacity:1;background-color:rgb(45 45 45/var(--tw-bg-opacity))}.bg-secondary-10{--tw-bg-opacity:1;background-color:rgb(209 209 209/var(--tw-bg-opacity))}.bg-secondary-100{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.fill-main-100{fill:#111}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0{padding-left:0;padding-right:0}.px-12{padding-left:3rem;padding-right:3rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pb-10{padding-bottom:2.5rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-5{padding-top:1.25rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-start{text-align:start}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10\.5px\]{font-size:10.5px}.text-\[24px\]{font-size:24px}.text-\[72px\]{font-size:72px}.text-\[88px\]{font-size:88px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-5{line-height:1.25rem}.leading-\[3\.9\]{line-height:3.9}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.text-\[\#D32F2F\]{--tw-text-opacity:1;color:rgb(211 47 47/var(--tw-text-opacity))}.text-main-10{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.text-main-70{--tw-text-opacity:1;color:rgb(45 45 45/var(--tw-text-opacity))}.text-secondary-10{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}.text-secondary-100{--tw-text-opacity:1;color:rgb(249 249 249/var(--tw-text-opacity))}.text-secondary-30{--tw-text-opacity:1;color:rgb(228 228 228/var(--tw-text-opacity))}.text-secondary-70{--tw-text-opacity:1;color:rgb(189 189 189/var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.shadow-\[0px_2px_8px_rgba\(68\2c 68\2c 68\2c 0\.1\)\]{--tw-shadow:0px 2px 8px rgba(68,68,68,.1);--tw-shadow-colored:0px 2px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.brightness-\[0\.4\]{--tw-brightness:brightness(0.4)}.brightness-\[0\.4\],.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.invert{--tw-invert:invert(100%)}.filter,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-sm,.backdrop-brightness-75{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-brightness-75{--tw-backdrop-brightness:brightness(.75)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-1000{transition-duration:1s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-linear{transition-timing-function:linear}.placeholder\:absolute::-moz-placeholder{position:absolute}.placeholder\:absolute::placeholder{position:absolute}.placeholder\:left-\[60px\]::-moz-placeholder{left:60px}.placeholder\:left-\[60px\]::placeholder{left:60px}.placeholder\:font-light::-moz-placeholder{font-weight:300}.placeholder\:font-light::placeholder{font-weight:300}.placeholder\:italic::-moz-placeholder{font-style:italic}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-main-10::-moz-placeholder{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.placeholder\:text-main-10::placeholder{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.placeholder\:transition-all::-moz-placeholder{transition-duration:.15s;-moz-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder\:transition-all::placeholder{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.before\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.before\:mr-1:before{content:var(--tw-content);margin-right:.25rem}.before\:mt-\[6\.5px\]:before{content:var(--tw-content);margin-top:6.5px}.before\:box-border:before{box-sizing:border-box;content:var(--tw-content)}.before\:block:before{content:var(--tw-content);display:block}.before\:h-1:before{content:var(--tw-content);height:.25rem}.before\:h-1\.5:before{content:var(--tw-content);height:.375rem}.before\:w-2:before{content:var(--tw-content);width:.5rem}.before\:w-2\.5:before{content:var(--tw-content);width:.625rem}.before\:rounded-tl-lg:before{border-top-left-radius:.5rem;content:var(--tw-content)}.before\:border-0:before{border-width:0;content:var(--tw-content)}.before\:border-l:before{border-left-width:1px;content:var(--tw-content)}.before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.before\:border-main-100:before{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:ml-1:after{content:var(--tw-content);margin-left:.25rem}.after\:mt-\[6\.5px\]:after{content:var(--tw-content);margin-top:6.5px}.after\:box-border:after{box-sizing:border-box;content:var(--tw-content)}.after\:block:after{content:var(--tw-content);display:block}.after\:h-1:after{content:var(--tw-content);height:.25rem}.after\:h-1\.5:after{content:var(--tw-content);height:.375rem}.after\:w-2:after{content:var(--tw-content);width:.5rem}.after\:w-2\.5:after{content:var(--tw-content);width:.625rem}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:flex-grow:after{content:var(--tw-content);flex-grow:1}.after\:rounded-sm:after{border-radius:.125rem;content:var(--tw-content)}.after\:rounded-tr-lg:after{border-top-right-radius:.5rem;content:var(--tw-content)}.after\:border-0:after{border-width:0;content:var(--tw-content)}.after\:border-r:after{border-right-width:1px;content:var(--tw-content)}.after\:border-t:after{border-top-width:1px;content:var(--tw-content)}.after\:border-main-100:after{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.after\:bg-main-10:after{--tw-bg-opacity:1;background-color:rgb(143 143 143/var(--tw-bg-opacity));content:var(--tw-content)}.after\:bg-secondary-100:after{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity));content:var(--tw-content)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-36:first-child{margin-top:9rem}.even\:flex-row-reverse:nth-child(2n){flex-direction:row-reverse}.placeholder-shown\:border:-moz-placeholder-shown{border-width:1px}.placeholder-shown\:border:placeholder-shown{border-width:1px}.placeholder-shown\:border-main-100:-moz-placeholder-shown{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.placeholder-shown\:border-main-100:placeholder-shown{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.hover\:bg-main-100:hover{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity))}.hover\:bg-main-70:hover{--tw-bg-opacity:1;background-color:rgb(45 45 45/var(--tw-bg-opacity))}.hover\:bg-secondary-100:hover{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.hover\:bg-secondary-30:hover{--tw-bg-opacity:1;background-color:rgb(228 228 228/var(--tw-bg-opacity))}.hover\:text-main-10:hover{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.hover\:text-secondary-10:hover{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}.hover\:text-secondary-70:hover{--tw-text-opacity:1;color:rgb(189 189 189/var(--tw-text-opacity))}.hover\:shadow-\[0px_2px_14px_rgba\(68\2c 68\2c 68\2c 0\.25\)\]:hover{--tw-shadow:0px 2px 14px rgba(68,68,68,.25);--tw-shadow-colored:0px 2px 14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:brightness-100:hover{--tw-brightness:brightness(1)}.hover\:brightness-100:hover,.hover\:brightness-75:hover{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-75:hover{--tw-brightness:brightness(.75)}.focus\:border-main-100:focus{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.focus\:border-t-secondary-100:focus{--tw-border-opacity:1;border-top-color:rgb(249 249 249/var(--tw-border-opacity))}.focus\:placeholder\:left-4:focus::-moz-placeholder{left:1rem}.focus\:placeholder\:left-4:focus::placeholder{left:1rem}.disabled\:bg-main-70:disabled{--tw-bg-opacity:1;background-color:rgb(45 45 45/var(--tw-bg-opacity))}.disabled\:opacity-30:disabled{opacity:.3}.group:hover .group-hover\:h-full{height:100%}.group:hover .group-hover\:scale-\[1\.01\]{--tw-scale-x:1.01;--tw-scale-y:1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-main-10{--tw-border-opacity:1;border-color:rgb(143 143 143/var(--tw-border-opacity))}.group.hide .group-\[\.hide\]\:hidden{display:none}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:text-sm{font-size:.875rem;line-height:1.25rem}.peer:placeholder-shown~.peer-placeholder-shown\:text-sm{font-size:.875rem;line-height:1.25rem}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:leading-\[3\.9\]{line-height:3.9}.peer:placeholder-shown~.peer-placeholder-shown\:leading-\[3\.9\]{line-height:3.9}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:placeholder-shown~.peer-placeholder-shown\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:before\:border-0:before{border-width:0;content:var(--tw-content)}.peer:placeholder-shown~.peer-placeholder-shown\:before\:border-0:before{border-width:0;content:var(--tw-content)}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:after\:border-0:after{border-width:0;content:var(--tw-content)}.peer:placeholder-shown~.peer-placeholder-shown\:after\:border-0:after{border-width:0;content:var(--tw-content)}.peer:focus~.peer-focus\:text-xs{font-size:.75rem;line-height:1rem}.peer:focus~.peer-focus\:leading-tight{line-height:1.25}.peer:focus~.peer-focus\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:focus~.peer-focus\:before\:border-l:before{border-left-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:before\:border-main-100:before{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-r:after{border-right-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-t:after{border-top-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-main-100:after{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}@media (prefers-color-scheme:dark){.dark\:text-secondary-10{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}}@media (min-width:640px){.sm\:mb-12{margin-bottom:3rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-\[900px\]{height:900px}.sm\:w-64{width:16rem}.sm\:w-auto{width:auto}.sm\:w-max{width:-moz-max-content;width:max-content}.sm\:shrink-0{flex-shrink:0}.sm\:basis-5\/6{flex-basis:83.333333%}.sm\:basis-52{flex-basis:13rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:justify-start{justify-content:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-5{gap:1.25rem}.sm\:gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:py-10{padding-bottom:2.5rem;padding-top:2.5rem}.sm\:pb-14{padding-bottom:3.5rem}.sm\:pt-16{padding-top:4rem}.sm\:text-end{text-align:end}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-\[148px\]{font-size:148px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:last\:hidden:last-child{display:none}}@media (min-width:768px){.md\:left-auto{left:auto}.md\:top-auto{top:auto}.md\:z-0{z-index:0}.md\:-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.md\:mx-3{margin-left:.75rem;margin-right:.75rem}.md\:mb-12{margin-bottom:3rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-48{height:12rem}.md\:h-\[750px\]{height:750px}.md\:w-1\/2{width:50%}.md\:w-16{width:4rem}.md\:w-48{width:12rem}.md\:w-\[256px\]{width:256px}.md\:max-w-\[528px\]{max-width:528px}.md\:basis-4\/6{flex-basis:66.666667%}.md\:basis-5\/6{flex-basis:83.333333%}.md\:translate-x-full{--tw-translate-x:100%}.md\:translate-x-full,.md\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:translate-y-0{--tw-translate-y:0px}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-start{justify-content:flex-start}.md\:justify-between{justify-content:space-between}.md\:gap-14{gap:3.5rem}.md\:gap-28{gap:7rem}.md\:gap-5{gap:1.25rem}.md\:gap-8{gap:2rem}.md\:gap-y-5{row-gap:1.25rem}.md\:p-12{padding:3rem}.md\:\!px-0{padding-left:0!important;padding-right:0!important}.md\:px-20{padding-left:5rem;padding-right:5rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-16{padding-bottom:4rem;padding-top:4rem}.md\:py-8{padding-bottom:2rem;padding-top:2rem}.md\:pt-0{padding-top:0}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-\[100px\]{font-size:100px}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:first\:mt-0:first-child{margin-top:0}.md\:last\:mb-0:last-child{margin-bottom:0}}@media (min-width:1024px){.lg\:order-none{order:0}.lg\:mr-28{margin-right:7rem}.lg\:block{display:block}.lg\:h-99{height:396px}.lg\:h-full{height:100%}.lg\:w-1\/2{width:50%}.lg\:w-72{width:18rem}.lg\:w-80{width:20rem}.lg\:w-max{width:-moz-max-content;width:max-content}.lg\:basis-1\/2{flex-basis:50%}.lg\:basis-\[410px\]{flex-basis:410px}.lg\:flex-row{flex-direction:row}.lg\:justify-start{justify-content:flex-start}.lg\:justify-end{justify-content:flex-end}.lg\:gap-10{gap:2.5rem}.lg\:gap-16{gap:4rem}.lg\:gap-28{gap:7rem}.lg\:gap-\[48px\]{gap:48px}.lg\:gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.lg\:\!px-0{padding-left:0!important;padding-right:0!important}.lg\:\!px-20{padding-left:5rem!important;padding-right:5rem!important}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-0{padding-bottom:0;padding-top:0}.lg\:py-5{padding-bottom:1.25rem;padding-top:1.25rem}.lg\:text-start{text-align:start}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-4xl{font-size:2.25rem;line-height:2.5rem}.lg\:last\:flex:last-child{display:flex}}@media (min-width:1280px){.xl\:w-\[256px\]{width:256px}.xl\:basis-2\/5{flex-basis:40%}}@media (min-width:1900px){.\33xl\:w-\[400px\]{width:400px}.\33xl\:basis-1\/3{flex-basis:33.333333%}}@media (min-width:2200px){.\34xl\:basis-1\/4{flex-basis:25%}}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-cyrillic-ext-400-normal-caa98a3bc11105fffcfef482abfb2c37.woff2) format("woff2"),url(/static/rubik-glitch-cyrillic-ext-400-normal-54f97c66997053ace86c1d9f1bdef3fd.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-cyrillic-400-normal-b32f20a71003e8bb78b28eec73c0385b.woff2) format("woff2"),url(/static/rubik-glitch-cyrillic-400-normal-3fd27e06a8bdf8edbd455443d0854c3f.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-hebrew-400-normal-776cad11325d90d9061faad0b7107953.woff2) format("woff2"),url(/static/rubik-glitch-hebrew-400-normal-c8cefe9973692c5d21bdd5bb11616cc4.woff) format("woff");unicode-range:u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-latin-ext-400-normal-8ae808a02973fec508af9c0959fbbade.woff2) format("woff2"),url(/static/rubik-glitch-latin-ext-400-normal-16c59f7d884842f113e8ff185c8656c9.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-latin-400-normal-7a5b5bac6b066d71b0cae06ed087b905.woff2) format("woff2"),url(/static/rubik-glitch-latin-400-normal-3fb89918ce49908f5350076807cf1bef.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-cyrillic-ext-wght-normal-e84e812b71d18e04e6928fb272665c53.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-cyrillic-wght-normal-eb1783eb42487132539645641f761eb2.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-latin-ext-wght-normal-82d636d9375dd92118fd22c818a99c24.woff2) format("woff2-variations");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-latin-wght-normal-5028c63f6a70ab0cf7cba9015ae04154.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#ccc;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}*{border:0;margin:0;padding:0}*,:after,:before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}:active,:focus,a:active,a:focus{outline:none}aside,footer,header,nav{display:block}body,html{-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size:100%;font-size:14px;line-height:1;min-height:100vh}button,input,textarea{font-family:inherit}input::-ms-clear{display:none}button{cursor:pointer}button::-moz-focus-inner{border:0;padding:0}a,a:hover,a:visited{text-decoration:none}ul li{list-style:none}img{vertical-align:top}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:400}*{font-family:Montserrat Variable,Helvetica,Arial,sans-serif}input:-webkit-autofill,input:-webkit-autofill:active,input:-webkit-autofill:focus,input:-webkit-autofill:hover{-webkit-text-fill-color:#f9f9f9;-webkit-background-clip:text;box-shadow:inset 0 0 20px 20px #fa070700;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}#contact-form input:-webkit-autofill,#contact-form input:-webkit-autofill:active,#contact-form input:-webkit-autofill:focus,#contact-form input:-webkit-autofill:hover{-webkit-text-fill-color:#111}.banner-title{font-family:Montserrat Variable,Helvetica,Arial,sans-serif}.rubik-font{font-family:Rubik Glitch,Helvetica,Arial,sans-serif}@media screen and (max-width:640px){div#hubspot-messages-iframe-container{display:none!important}}#hubspot-messages-iframe-container{z-index:200!important}#hs-banner-parent{--hs-banner-font-family:"Montserrat Variable",Helvetica,Arial,sans-serif!important;--hs-banner-inset:auto 0px 10px 10px!important;--hs-banner-translate-x:0!important}#hs-eu-cookie-settings-button{font-weight:400!important;text-decoration:none!important}#hs-eu-cookie-confirmation{max-width:calc(100% - 20px)!important}div.privacy-policy h1{font-size:1.875rem;font-weight:600;line-height:2.25rem;text-align:center;width:100%}div.privacy-policy h2{font-size:1.5rem;font-weight:600;line-height:2rem;padding-top:1rem}div.privacy-policy h3{font-size:1.25rem;font-weight:600;line-height:1.75rem;padding-top:1rem}div.privacy-policy h4{font-weight:600;padding-top:.5rem}div.privacy-policy ul li{list-style-position:inside;list-style-type:disc;padding-top:1rem}div.privacy-policy ul li>h3{display:inline;font-weight:500;padding-top:0}div.privacy-policy a{text-decoration-line:underline}div.single-post{font-size:1rem;line-height:1.5rem}@media (min-width:640px){div.single-post{font-size:1.125rem;line-height:1.75rem}}div.single-post :is(h3,h4){--tw-text-opacity:1;color:rgb(249 249 249/var(--tw-text-opacity));font-size:1.125rem;font-weight:700;line-height:1.75rem;margin-bottom:.625rem;margin-top:2rem}@media (min-width:640px){div.single-post :is(h3,h4){font-size:1.25rem;line-height:1.75rem}}div.single-post h4{margin-top:1rem}div.single-post p{margin-bottom:1rem}@media (min-width:640px){div.single-post p{margin-bottom:2rem}}div.single-post span.gatsby-resp-image-wrapper{border-radius:20px!important;margin-bottom:1rem!important;margin-left:auto!important;margin-right:auto!important;max-width:444px!important;width:100%!important}@media (min-width:640px){div.single-post span.gatsby-resp-image-wrapper{margin-bottom:1.25rem!important}}div.single-post img{border-radius:20px!important}div.single-post span.gatsby-resp-image-wrapper+em{display:block;font-size:.875rem;font-style:normal;line-height:1.25rem;text-align:center;width:100%}div.single-post :is(ul,ol){margin-bottom:1rem;margin-top:1rem}@media (min-width:640px){div.single-post :is(ul,ol){margin-bottom:2rem;margin-top:2rem}}div.single-post ul li{list-style-position:inside;list-style-type:disc}div.single-post ol li{list-style-position:inside;list-style-type:decimal}div.single-post pre{--tw-bg-opacity:1;background-color:rgb(45 45 45/var(--tw-bg-opacity));border-radius:20px;font-size:.875rem;line-height:1.25rem;margin-bottom:1rem;margin-top:1rem;padding:1rem;white-space:pre-wrap}@media (min-width:640px){div.single-post pre{font-size:1rem;line-height:1.5rem;margin-bottom:2rem;margin-top:2rem;padding:2rem}}div.single-post pre code{white-space:pre-wrap}.gradient-border{-o-border-image:linear-gradient(90deg,#bdbdbd,#111) 30;border-image:linear-gradient(90deg,#bdbdbd,#111) 30}div.team-member:hover div.line{width:100%}div.applied-tech:hover div.line{height:100%}div.review-body p{padding-top:.5rem}div.review-body p:first-child{padding-top:0}div.workflow-step:nth-child(odd) div.cover{right:-.5rem}div.workflow-step:nth-child(2n) div.cover{left:-.5rem}div.why-us-card p{text-align:justify}p.contact-form-description span{display:block;padding-bottom:.5rem;padding-top:.5rem}p.contact-form-description strong{font-weight:600}ul.MuiMenu-list{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))} \ No newline at end of file diff --git a/styles.b87d930069bb5bdcd9f9.css b/styles.b87d930069bb5bdcd9f9.css deleted file mode 100644 index f6491c6f..00000000 --- a/styles.b87d930069bb5bdcd9f9.css +++ /dev/null @@ -1,3 +0,0 @@ -/* -! tailwindcss v3.3.2 | MIT License | https://tailwindcss.com -*/*,:after,:before{border:0 solid}:after,:before{--tw-content:""}html{-webkit-text-size-adjust:100%;font-feature-settings:normal;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]{display:none}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1440px){.container{max-width:1440px}}@media (min-width:1900px){.container{max-width:1900px}}@media (min-width:2200px){.container{max-width:2200px}}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.-bottom-1{bottom:-.25rem}.-bottom-2{bottom:-.5rem}.-left-2{left:-.5rem}.-left-5{left:-1.25rem}.-right-2{right:-.5rem}.-right-6{right:-1.5rem}.-top-16{top:-4rem}.-top-2{top:-.5rem}.-top-\[6\.5px\]{top:-6.5px}.bottom-0{bottom:0}.bottom-1{bottom:.25rem}.bottom-2{bottom:.5rem}.bottom-\[5\%\]{bottom:5%}.left-0{left:0}.left-1\/2{left:50%}.left-2{left:.5rem}.left-\[2\%\]{left:2%}.right-0{right:0}.top-0{top:0}.top-1\/2{top:50%}.top-full{top:100%}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-50{z-index:50}.-order-1{order:-1}.float-right{float:right}.mx-0{margin-left:0;margin-right:0}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-1\.5{margin-left:.375rem;margin-right:.375rem}.mx-12{margin-left:3rem;margin-right:3rem}.mx-5{margin-left:1.25rem;margin-right:1.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-20{margin-bottom:5rem;margin-top:5rem}.mb-2{margin-bottom:.5rem}.mb-2\.5{margin-bottom:.625rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-3{margin-left:.75rem}.mr-10{margin-right:2.5rem}.mr-2{margin-right:.5rem}.mr-3{margin-right:.75rem}.mr-3\.5{margin-right:.875rem}.mr-7{margin-right:1.75rem}.mt-3{margin-top:.75rem}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1/1}.h-0{height:0}.h-1{height:.25rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2\/3{height:66.666667%}.h-28{height:7rem}.h-32{height:8rem}.h-40{height:10rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-91{height:22.75rem}.h-\[1000px\]{height:1000px}.h-\[72px\]{height:72px}.h-full{height:100%}.h-max{height:-moz-max-content;height:max-content}.h-min{height:-moz-min-content;height:min-content}.max-h-\[424px\]{max-height:424px}.max-h-full{max-height:100%}.min-h-0{min-height:0}.min-h-91{min-height:22.75rem}.min-h-full{min-height:100%}.min-h-max{min-height:-moz-max-content;min-height:max-content}.min-h-screen{min-height:100vh}.w-0{width:0}.w-1{width:.25rem}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2\/3{width:66.666667%}.w-28{width:7rem}.w-32{width:8rem}.w-40{width:10rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-\[100\%\]{width:100%}.w-\[192px\]{width:192px}.w-\[220px\]{width:220px}.w-\[72px\]{width:72px}.w-\[85\%\]{width:85%}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.min-w-0{min-width:0}.min-w-10{min-width:2.5rem}.max-w-2xl{max-width:680px}.max-w-4\.5xl{max-width:1038px}.max-w-7xl{max-width:80rem}.max-w-\[1280px\]{max-width:1280px}.max-w-\[320px\]{max-width:320px}.max-w-\[400px\]{max-width:400px}.max-w-\[500px\]{max-width:500px}.max-w-\[544px\]{max-width:544px}.max-w-full{max-width:100%}.flex-1{flex:1 1 0%}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow,.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-1\/3{flex-basis:33.333333%}.basis-1\/6{flex-basis:16.666667%}.basis-4\/6{flex-basis:66.666667%}.basis-full{flex-basis:100%}.origin-\[5\%_50\%\]{transform-origin:5% 50%}.-translate-x-1\/2{--tw-translate-x:-50%}.-translate-x-1\/2,.-translate-y-1\/2{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-\[120\%\]{--tw-translate-y:-120%}.-translate-y-\[120\%\],.translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y:0px}.translate-y-full{--tw-translate-y:100%}.-rotate-90,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate:-90deg}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.touch-pan-x{--tw-pan-x:pan-x;touch-action:var(--tw-pan-x) var(--tw-pan-y) var(--tw-pinch-zoom)}.touch-manipulation{touch-action:manipulation}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.break-inside-avoid{-moz-column-break-inside:avoid;break-inside:avoid}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.content-center{align-content:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.gap-0{gap:0}.gap-1{gap:.25rem}.gap-10{gap:2.5rem}.gap-14{gap:3.5rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-14{-moz-column-gap:3.5rem;column-gap:3.5rem}.gap-x-16{-moz-column-gap:4rem;column-gap:4rem}.gap-x-24{-moz-column-gap:6rem;column-gap:6rem}.gap-x-28{-moz-column-gap:7rem;column-gap:7rem}.gap-x-5{-moz-column-gap:1.25rem;column-gap:1.25rem}.gap-y-14{row-gap:3.5rem}.gap-y-2{row-gap:.5rem}.gap-y-2\.5{row-gap:.625rem}.gap-y-5{row-gap:1.25rem}.gap-y-8{row-gap:2rem}.space-x-10>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:calc(2.5rem*(1 - var(--tw-space-x-reverse)));margin-right:calc(2.5rem*var(--tw-space-x-reverse))}.overflow-hidden{overflow:hidden}.whitespace-normal{white-space:normal}.whitespace-nowrap{white-space:nowrap}.whitespace-pre{white-space:pre}.rounded{border-radius:.25rem}.rounded-2\.5xl{border-radius:20px}.rounded-2xl{border-radius:1rem}.rounded-\[10px\]{border-radius:10px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-xl{border-radius:.75rem}.rounded-b-2xl{border-bottom-left-radius:1rem;border-bottom-right-radius:1rem}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-b-\[4px\]{border-bottom-width:4px}.border-t-2{border-top-width:2px}.border-solid{border-style:solid}.border-dashed{border-style:dashed}.border-main-10{--tw-border-opacity:1;border-color:rgb(143 143 143/var(--tw-border-opacity))}.border-main-100{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.border-secondary-10{--tw-border-opacity:1;border-color:rgb(209 209 209/var(--tw-border-opacity))}.border-secondary-100{--tw-border-opacity:1;border-color:rgb(249 249 249/var(--tw-border-opacity))}.border-secondary-70{--tw-border-opacity:1;border-color:rgb(189 189 189/var(--tw-border-opacity))}.border-t-main-100{--tw-border-opacity:1;border-top-color:rgb(17 17 17/var(--tw-border-opacity))}.border-t-secondary-100{--tw-border-opacity:1;border-top-color:rgb(249 249 249/var(--tw-border-opacity))}.bg-main-100{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity))}.bg-main-70{--tw-bg-opacity:1;background-color:rgb(45 45 45/var(--tw-bg-opacity))}.bg-secondary-10{--tw-bg-opacity:1;background-color:rgb(209 209 209/var(--tw-bg-opacity))}.bg-secondary-100{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.fill-main-100{fill:#111}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-0{padding-left:0;padding-right:0}.px-12{padding-left:3rem;padding-right:3rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-8{padding-left:2rem;padding-right:2rem}.py-1{padding-bottom:.25rem;padding-top:.25rem}.py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.py-10{padding-bottom:2.5rem;padding-top:2.5rem}.py-12{padding-bottom:3rem;padding-top:3rem}.py-16{padding-bottom:4rem;padding-top:4rem}.py-2{padding-bottom:.5rem;padding-top:.5rem}.py-2\.5{padding-bottom:.625rem;padding-top:.625rem}.py-4{padding-bottom:1rem;padding-top:1rem}.py-6{padding-bottom:1.5rem;padding-top:1.5rem}.pb-10{padding-bottom:2.5rem}.pb-4{padding-bottom:1rem}.pb-6{padding-bottom:1.5rem}.pb-8{padding-bottom:2rem}.pl-1{padding-left:.25rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-5{padding-top:1.25rem}.pt-8{padding-top:2rem}.text-center{text-align:center}.text-start{text-align:start}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-\[10\.5px\]{font-size:10.5px}.text-\[24px\]{font-size:24px}.text-\[72px\]{font-size:72px}.text-\[88px\]{font-size:88px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-light{font-weight:300}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-5{line-height:1.25rem}.leading-\[3\.9\]{line-height:3.9}.leading-tight{line-height:1.25}.tracking-wide{letter-spacing:.025em}.text-\[\#D32F2F\]{--tw-text-opacity:1;color:rgb(211 47 47/var(--tw-text-opacity))}.text-main-10{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.text-main-70{--tw-text-opacity:1;color:rgb(45 45 45/var(--tw-text-opacity))}.text-secondary-10{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}.text-secondary-100{--tw-text-opacity:1;color:rgb(249 249 249/var(--tw-text-opacity))}.text-secondary-30{--tw-text-opacity:1;color:rgb(228 228 228/var(--tw-text-opacity))}.text-secondary-70{--tw-text-opacity:1;color:rgb(189 189 189/var(--tw-text-opacity))}.opacity-0{opacity:0}.opacity-50{opacity:.5}.shadow-\[0px_2px_8px_rgba\(68\2c 68\2c 68\2c 0\.1\)\]{--tw-shadow:0px 2px 8px rgba(68,68,68,.1);--tw-shadow-colored:0px 2px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.brightness-\[0\.4\]{--tw-brightness:brightness(0.4)}.brightness-\[0\.4\],.grayscale{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%)}.invert{--tw-invert:invert(100%)}.filter,.invert{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-sm,.backdrop-brightness-75{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-brightness-75{--tw-backdrop-brightness:brightness(.75)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-1000{transition-duration:1s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.ease-linear{transition-timing-function:linear}.placeholder\:absolute::-moz-placeholder{position:absolute}.placeholder\:absolute::placeholder{position:absolute}.placeholder\:left-\[60px\]::-moz-placeholder{left:60px}.placeholder\:left-\[60px\]::placeholder{left:60px}.placeholder\:font-light::-moz-placeholder{font-weight:300}.placeholder\:font-light::placeholder{font-weight:300}.placeholder\:italic::-moz-placeholder{font-style:italic}.placeholder\:italic::placeholder{font-style:italic}.placeholder\:text-main-10::-moz-placeholder{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.placeholder\:text-main-10::placeholder{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.placeholder\:transition-all::-moz-placeholder{transition-duration:.15s;-moz-transition-property:all;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder\:transition-all::placeholder{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.before\:pointer-events-none:before{content:var(--tw-content);pointer-events:none}.before\:mr-1:before{content:var(--tw-content);margin-right:.25rem}.before\:mt-\[6\.5px\]:before{content:var(--tw-content);margin-top:6.5px}.before\:box-border:before{box-sizing:border-box;content:var(--tw-content)}.before\:block:before{content:var(--tw-content);display:block}.before\:h-1:before{content:var(--tw-content);height:.25rem}.before\:h-1\.5:before{content:var(--tw-content);height:.375rem}.before\:w-2:before{content:var(--tw-content);width:.5rem}.before\:w-2\.5:before{content:var(--tw-content);width:.625rem}.before\:rounded-tl-lg:before{border-top-left-radius:.5rem;content:var(--tw-content)}.before\:border-0:before{border-width:0;content:var(--tw-content)}.before\:border-l:before{border-left-width:1px;content:var(--tw-content)}.before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.before\:border-main-100:before{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.after\:pointer-events-none:after{content:var(--tw-content);pointer-events:none}.after\:ml-1:after{content:var(--tw-content);margin-left:.25rem}.after\:mt-\[6\.5px\]:after{content:var(--tw-content);margin-top:6.5px}.after\:box-border:after{box-sizing:border-box;content:var(--tw-content)}.after\:block:after{content:var(--tw-content);display:block}.after\:h-1:after{content:var(--tw-content);height:.25rem}.after\:h-1\.5:after{content:var(--tw-content);height:.375rem}.after\:w-2:after{content:var(--tw-content);width:.5rem}.after\:w-2\.5:after{content:var(--tw-content);width:.625rem}.after\:w-full:after{content:var(--tw-content);width:100%}.after\:flex-grow:after{content:var(--tw-content);flex-grow:1}.after\:rounded-sm:after{border-radius:.125rem;content:var(--tw-content)}.after\:rounded-tr-lg:after{border-top-right-radius:.5rem;content:var(--tw-content)}.after\:border-0:after{border-width:0;content:var(--tw-content)}.after\:border-r:after{border-right-width:1px;content:var(--tw-content)}.after\:border-t:after{border-top-width:1px;content:var(--tw-content)}.after\:border-main-100:after{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.after\:bg-main-10:after{--tw-bg-opacity:1;background-color:rgb(143 143 143/var(--tw-bg-opacity));content:var(--tw-content)}.after\:bg-secondary-100:after{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity));content:var(--tw-content)}.after\:content-\[\'\'\]:after{--tw-content:"";content:var(--tw-content)}.first\:mt-36:first-child{margin-top:9rem}.even\:flex-row-reverse:nth-child(2n){flex-direction:row-reverse}.placeholder-shown\:border:-moz-placeholder-shown{border-width:1px}.placeholder-shown\:border:placeholder-shown{border-width:1px}.placeholder-shown\:border-main-100:-moz-placeholder-shown{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.placeholder-shown\:border-main-100:placeholder-shown{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.hover\:bg-main-100:hover{--tw-bg-opacity:1;background-color:rgb(17 17 17/var(--tw-bg-opacity))}.hover\:bg-main-70:hover{--tw-bg-opacity:1;background-color:rgb(45 45 45/var(--tw-bg-opacity))}.hover\:bg-secondary-100:hover{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))}.hover\:bg-secondary-30:hover{--tw-bg-opacity:1;background-color:rgb(228 228 228/var(--tw-bg-opacity))}.hover\:text-main-10:hover{--tw-text-opacity:1;color:rgb(143 143 143/var(--tw-text-opacity))}.hover\:text-secondary-10:hover{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}.hover\:text-secondary-70:hover{--tw-text-opacity:1;color:rgb(189 189 189/var(--tw-text-opacity))}.hover\:shadow-\[0px_2px_14px_rgba\(68\2c 68\2c 68\2c 0\.25\)\]:hover{--tw-shadow:0px 2px 14px rgba(68,68,68,.25);--tw-shadow-colored:0px 2px 14px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:brightness-100:hover{--tw-brightness:brightness(1)}.hover\:brightness-100:hover,.hover\:brightness-75:hover{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.hover\:brightness-75:hover{--tw-brightness:brightness(.75)}.focus\:border-main-100:focus{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity))}.focus\:border-t-secondary-100:focus{--tw-border-opacity:1;border-top-color:rgb(249 249 249/var(--tw-border-opacity))}.focus\:placeholder\:left-4:focus::-moz-placeholder{left:1rem}.focus\:placeholder\:left-4:focus::placeholder{left:1rem}.disabled\:bg-main-70:disabled{--tw-bg-opacity:1;background-color:rgb(45 45 45/var(--tw-bg-opacity))}.disabled\:opacity-30:disabled{opacity:.3}.group:hover .group-hover\:h-full{height:100%}.group:hover .group-hover\:scale-\[1\.01\]{--tw-scale-x:1.01;--tw-scale-y:1.01;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:border-main-10{--tw-border-opacity:1;border-color:rgb(143 143 143/var(--tw-border-opacity))}.group.hide .group-\[\.hide\]\:hidden{display:none}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:text-sm{font-size:.875rem;line-height:1.25rem}.peer:placeholder-shown~.peer-placeholder-shown\:text-sm{font-size:.875rem;line-height:1.25rem}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:leading-\[3\.9\]{line-height:3.9}.peer:placeholder-shown~.peer-placeholder-shown\:leading-\[3\.9\]{line-height:3.9}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:placeholder-shown~.peer-placeholder-shown\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:before\:border-0:before{border-width:0;content:var(--tw-content)}.peer:placeholder-shown~.peer-placeholder-shown\:before\:border-0:before{border-width:0;content:var(--tw-content)}.peer:-moz-placeholder-shown~.peer-placeholder-shown\:after\:border-0:after{border-width:0;content:var(--tw-content)}.peer:placeholder-shown~.peer-placeholder-shown\:after\:border-0:after{border-width:0;content:var(--tw-content)}.peer:focus~.peer-focus\:text-xs{font-size:.75rem;line-height:1rem}.peer:focus~.peer-focus\:leading-tight{line-height:1.25}.peer:focus~.peer-focus\:text-main-100{--tw-text-opacity:1;color:rgb(17 17 17/var(--tw-text-opacity))}.peer:focus~.peer-focus\:before\:border-l:before{border-left-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:before\:border-t:before{border-top-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:before\:border-main-100:before{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-r:after{border-right-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-t:after{border-top-width:1px;content:var(--tw-content)}.peer:focus~.peer-focus\:after\:border-main-100:after{--tw-border-opacity:1;border-color:rgb(17 17 17/var(--tw-border-opacity));content:var(--tw-content)}@media (prefers-color-scheme:dark){.dark\:text-secondary-10{--tw-text-opacity:1;color:rgb(209 209 209/var(--tw-text-opacity))}}@media (min-width:640px){.sm\:mb-12{margin-bottom:3rem}.sm\:mb-5{margin-bottom:1.25rem}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:h-\[900px\]{height:900px}.sm\:w-64{width:16rem}.sm\:w-auto{width:auto}.sm\:w-max{width:-moz-max-content;width:max-content}.sm\:shrink-0{flex-shrink:0}.sm\:basis-5\/6{flex-basis:83.333333%}.sm\:basis-52{flex-basis:13rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-start{justify-content:flex-start}.sm\:justify-end{justify-content:flex-end}.sm\:justify-between{justify-content:space-between}.sm\:gap-5{gap:1.25rem}.sm\:gap-x-10{-moz-column-gap:2.5rem;column-gap:2.5rem}.sm\:px-12{padding-left:3rem;padding-right:3rem}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:py-10{padding-bottom:2.5rem;padding-top:2.5rem}.sm\:pb-14{padding-bottom:3.5rem}.sm\:pt-16{padding-top:4rem}.sm\:text-end{text-align:end}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-\[148px\]{font-size:148px}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:last\:hidden:last-child{display:none}}@media (min-width:768px){.md\:left-auto{left:auto}.md\:top-auto{top:auto}.md\:z-0{z-index:0}.md\:-my-2{margin-bottom:-.5rem;margin-top:-.5rem}.md\:mx-3{margin-left:.75rem;margin-right:.75rem}.md\:mb-12{margin-bottom:3rem}.md\:block{display:block}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-16{height:4rem}.md\:h-48{height:12rem}.md\:h-\[750px\]{height:750px}.md\:w-1\/2{width:50%}.md\:w-16{width:4rem}.md\:w-48{width:12rem}.md\:w-\[256px\]{width:256px}.md\:max-w-\[528px\]{max-width:528px}.md\:basis-4\/6{flex-basis:66.666667%}.md\:basis-5\/6{flex-basis:83.333333%}.md\:translate-x-full{--tw-translate-x:100%}.md\:translate-x-full,.md\:translate-y-0{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.md\:translate-y-0{--tw-translate-y:0px}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-start{justify-content:flex-start}.md\:justify-between{justify-content:space-between}.md\:gap-14{gap:3.5rem}.md\:gap-28{gap:7rem}.md\:gap-5{gap:1.25rem}.md\:gap-8{gap:2rem}.md\:gap-y-5{row-gap:1.25rem}.md\:p-12{padding:3rem}.md\:\!px-0{padding-left:0!important;padding-right:0!important}.md\:px-20{padding-left:5rem;padding-right:5rem}.md\:px-3{padding-left:.75rem;padding-right:.75rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:py-16{padding-bottom:4rem;padding-top:4rem}.md\:py-8{padding-bottom:2rem;padding-top:2rem}.md\:pt-0{padding-top:0}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-\[100px\]{font-size:100px}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}.md\:first\:mt-0:first-child{margin-top:0}.md\:last\:mb-0:last-child{margin-bottom:0}}@media (min-width:1024px){.lg\:order-none{order:0}.lg\:mr-28{margin-right:7rem}.lg\:block{display:block}.lg\:h-99{height:396px}.lg\:h-full{height:100%}.lg\:w-1\/2{width:50%}.lg\:w-72{width:18rem}.lg\:w-80{width:20rem}.lg\:w-max{width:-moz-max-content;width:max-content}.lg\:basis-1\/2{flex-basis:50%}.lg\:basis-\[410px\]{flex-basis:410px}.lg\:flex-row{flex-direction:row}.lg\:justify-start{justify-content:flex-start}.lg\:justify-end{justify-content:flex-end}.lg\:gap-10{gap:2.5rem}.lg\:gap-16{gap:4rem}.lg\:gap-28{gap:7rem}.lg\:gap-\[48px\]{gap:48px}.lg\:gap-x-12{-moz-column-gap:3rem;column-gap:3rem}.lg\:\!px-0{padding-left:0!important;padding-right:0!important}.lg\:\!px-20{padding-left:5rem!important;padding-right:5rem!important}.lg\:px-10{padding-left:2.5rem;padding-right:2.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:py-0{padding-bottom:0;padding-top:0}.lg\:py-5{padding-bottom:1.25rem;padding-top:1.25rem}.lg\:text-start{text-align:start}.lg\:text-3xl{font-size:1.875rem;line-height:2.25rem}.lg\:text-4xl{font-size:2.25rem;line-height:2.5rem}.lg\:last\:flex:last-child{display:flex}}@media (min-width:1280px){.xl\:w-\[256px\]{width:256px}.xl\:basis-2\/5{flex-basis:40%}}@media (min-width:1900px){.\33xl\:w-\[400px\]{width:400px}.\33xl\:basis-1\/3{flex-basis:33.333333%}}@media (min-width:2200px){.\34xl\:basis-1\/4{flex-basis:25%}}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-cyrillic-ext-400-normal-caa98a3bc11105fffcfef482abfb2c37.woff2) format("woff2"),url(/static/rubik-glitch-cyrillic-ext-400-normal-54f97c66997053ace86c1d9f1bdef3fd.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-cyrillic-400-normal-b32f20a71003e8bb78b28eec73c0385b.woff2) format("woff2"),url(/static/rubik-glitch-cyrillic-400-normal-3fd27e06a8bdf8edbd455443d0854c3f.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-hebrew-400-normal-776cad11325d90d9061faad0b7107953.woff2) format("woff2"),url(/static/rubik-glitch-hebrew-400-normal-c8cefe9973692c5d21bdd5bb11616cc4.woff) format("woff");unicode-range:u+0590-05ff,u+200c-2010,u+20aa,u+25cc,u+fb1d-fb4f}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-latin-ext-400-normal-8ae808a02973fec508af9c0959fbbade.woff2) format("woff2"),url(/static/rubik-glitch-latin-ext-400-normal-16c59f7d884842f113e8ff185c8656c9.woff) format("woff");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Rubik Glitch;font-style:normal;font-weight:400;src:url(/static/rubik-glitch-latin-400-normal-7a5b5bac6b066d71b0cae06ed087b905.woff2) format("woff2"),url(/static/rubik-glitch-latin-400-normal-3fb89918ce49908f5350076807cf1bef.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-cyrillic-ext-wght-normal-e84e812b71d18e04e6928fb272665c53.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c88,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-cyrillic-wght-normal-eb1783eb42487132539645641f761eb2.woff2) format("woff2-variations");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-latin-ext-wght-normal-82d636d9375dd92118fd22c818a99c24.woff2) format("woff2-variations");unicode-range:u+0100-02af,u+0304,u+0308,u+0329,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Montserrat Variable;font-style:normal;font-weight:100 900;src:url(/static/montserrat-latin-wght-normal-5028c63f6a70ab0cf7cba9015ae04154.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+2074,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:none;color:#ccc;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;text-align:left;white-space:pre;word-break:normal;word-spacing:normal}pre[class*=language-]{margin:.5em 0;overflow:auto;padding:1em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{border-radius:.3em;padding:.1em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}*{border:0;margin:0;padding:0}*,:after,:before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}:active,:focus,a:active,a:focus{outline:none}aside,footer,header,nav{display:block}body,html{-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-webkit-text-size-adjust:100%;font-size:100%;font-size:14px;line-height:1;min-height:100vh}button,input,textarea{font-family:inherit}input::-ms-clear{display:none}button{cursor:pointer}button::-moz-focus-inner{border:0;padding:0}a,a:hover,a:visited{text-decoration:none}ul li{list-style:none}img{vertical-align:top}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:400}*{font-family:Montserrat Variable,Helvetica,Arial,sans-serif}input:-webkit-autofill,input:-webkit-autofill:active,input:-webkit-autofill:focus,input:-webkit-autofill:hover{-webkit-text-fill-color:#f9f9f9;-webkit-background-clip:text;box-shadow:inset 0 0 20px 20px #fa070700;-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}#contact-form input:-webkit-autofill,#contact-form input:-webkit-autofill:active,#contact-form input:-webkit-autofill:focus,#contact-form input:-webkit-autofill:hover{-webkit-text-fill-color:#111}.banner-title{font-family:Montserrat Variable,Helvetica,Arial,sans-serif}.rubik-font{font-family:Rubik Glitch,Helvetica,Arial,sans-serif}@media screen and (max-width:640px){div#hubspot-messages-iframe-container{display:none!important}}#hubspot-messages-iframe-container{z-index:200!important}#hs-banner-parent{--hs-banner-font-family:"Montserrat Variable",Helvetica,Arial,sans-serif!important;--hs-banner-inset:auto 0px 10px 10px!important;--hs-banner-translate-x:0!important}#hs-eu-cookie-settings-button{font-weight:400!important;text-decoration:none!important}#hs-eu-cookie-confirmation{max-width:calc(100% - 20px)!important}div.privacy-policy h1{font-size:1.875rem;font-weight:600;line-height:2.25rem;text-align:center;width:100%}div.privacy-policy h2{font-size:1.5rem;font-weight:600;line-height:2rem;padding-top:1rem}div.privacy-policy h3{font-size:1.25rem;font-weight:600;line-height:1.75rem;padding-top:1rem}div.privacy-policy h4{font-weight:600;padding-top:.5rem}div.privacy-policy ul li{list-style-position:inside;list-style-type:disc;padding-top:1rem}div.privacy-policy ul li>h3{display:inline;font-weight:500;padding-top:0}div.privacy-policy a{text-decoration-line:underline}div.single-post{font-size:1rem;line-height:1.5rem}@media (min-width:640px){div.single-post{font-size:1.125rem;line-height:1.75rem}}div.single-post :is(h3,h4){--tw-text-opacity:1;color:rgb(249 249 249/var(--tw-text-opacity));font-size:1.125rem;font-weight:700;line-height:1.75rem;margin-bottom:.625rem;margin-top:2rem}@media (min-width:640px){div.single-post :is(h3,h4){font-size:1.25rem;line-height:1.75rem}}div.single-post h4{margin-top:1rem}div.single-post p{margin-bottom:1rem}@media (min-width:640px){div.single-post p{margin-bottom:2rem}}div.single-post span.gatsby-resp-image-wrapper{border-radius:20px!important;margin-bottom:1rem!important;margin-left:auto!important;margin-right:auto!important;max-width:444px!important;width:100%!important}@media (min-width:640px){div.single-post span.gatsby-resp-image-wrapper{margin-bottom:1.25rem!important}}div.single-post img{border-radius:20px!important}div.single-post span.gatsby-resp-image-wrapper+em{display:block;font-size:.875rem;font-style:normal;line-height:1.25rem;text-align:center;width:100%}div.single-post :is(ul,ol){margin-bottom:1rem;margin-top:1rem}@media (min-width:640px){div.single-post :is(ul,ol){margin-bottom:2rem;margin-top:2rem}}div.single-post ul li{list-style-position:inside;list-style-type:disc}div.single-post ol li{list-style-position:inside;list-style-type:decimal}div.single-post pre{--tw-bg-opacity:1;background-color:rgb(45 45 45/var(--tw-bg-opacity));border-radius:20px;font-size:.875rem;line-height:1.25rem;margin-bottom:1rem;margin-top:1rem;padding:1rem;white-space:pre-wrap}@media (min-width:640px){div.single-post pre{font-size:1rem;line-height:1.5rem;margin-bottom:2rem;margin-top:2rem;padding:2rem}}div.single-post pre code{white-space:pre-wrap}.gradient-border{-o-border-image:linear-gradient(90deg,#bdbdbd,#111) 30;border-image:linear-gradient(90deg,#bdbdbd,#111) 30}div.team-member:hover div.line{width:100%}div.applied-tech:hover div.line{height:100%}div.review-body p{padding-top:.5rem}div.review-body p:first-child{padding-top:0}div.workflow-step:nth-child(odd) div.cover{right:-.5rem}div.workflow-step:nth-child(2n) div.cover{left:-.5rem}div.why-us-card p{text-align:justify}p.contact-form-description span{display:block;padding-bottom:.5rem;padding-top:.5rem}p.contact-form-description strong{font-weight:600}ul.MuiMenu-list{--tw-bg-opacity:1;background-color:rgb(249 249 249/var(--tw-bg-opacity))} \ No newline at end of file diff --git a/webpack-runtime-cf5c87e3b6d887b1005c.js b/webpack-runtime-cc6cf993fdfec1422f40.js similarity index 92% rename from webpack-runtime-cf5c87e3b6d887b1005c.js rename to webpack-runtime-cc6cf993fdfec1422f40.js index b95b52da..802ac1bb 100644 --- a/webpack-runtime-cf5c87e3b6d887b1005c.js +++ b/webpack-runtime-cc6cf993fdfec1422f40.js @@ -1,2 +1,2 @@ -!function(){"use strict";var e,t,n,r,o,c={},a={};function f(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={exports:{}};return c[e](n,n.exports,f),n.exports}f.m=c,e=[],f.O=function(t,n,r,o){if(!n){var c=1/0;for(s=0;s=o)&&Object.keys(f.O).every((function(e){return f.O[e](n[u])}))?n.splice(u--,1):(a=!1,o0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[n,r,o]},f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var c={};t=t||[null,n({}),n([]),n(n)];for(var a=2&r&&e;"object"==typeof a&&!~t.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach((function(t){c[t]=function(){return e[t]}}));return c.default=function(){return e},f.d(o,c),o},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.f={},f.e=function(e){return Promise.all(Object.keys(f.f).reduce((function(t,n){return f.f[n](e,t),t}),[]))},f.u=function(e){return({147:"component---src-pages-templates-project-tsx",149:"component---src-pages-templates-policies-tsx",354:"component---src-pages-templates-post-tsx",403:"c294adedbbc0a5c4b071b27a5ffb97a116928d98",417:"component---src-pages-templates-services-tsx",514:"component---src-pages-templates-404-tsx",548:"component---src-pages-templates-workflow-tsx",577:"71598b7b9331211c5dc2cdd9e7a07dc39cf581bb",602:"dbbdfb320c5007a40fa91453221d77dae72f3b83",650:"component---src-pages-templates-projects-tsx",748:"component---src-pages-templates-blog-by-author-tsx",832:"component---src-pages-templates-index-tsx",899:"component---src-pages-templates-blog-by-hashtag-tsx",926:"component---src-pages-templates-blog-tsx"}[e]||e)+"-"+{147:"89b796e63f214fd74a94",149:"8d858839168d89834f5b",354:"d9e4800abdf31a9b10bf",403:"83f152d3f32c8162f39f",417:"855dcb43c3da2e141f61",475:"9be01aaaffb02978e152",514:"f72e430d4b3c5be8e265",548:"2a0b9d534d2f2fd33ad1",577:"e60b23337f8f1bbec667",602:"00be99e431fb904367c1",650:"2db44adef862c7339abb",731:"fc2222e8bcbd3a323b37",748:"408b6fd1d4ad17fa5f7c",832:"dd8623d9c743ca99433e",843:"82fd7f798c0dd9a6f67b",899:"5eb8f20809e2778721c3",926:"fa08d3c19795eb3db5d3"}[e]+".js"},f.miniCssF=function(e){return"styles.b87d930069bb5bdcd9f9.css"},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="code-cave:",f.l=function(e,t,n,c){if(r[e])r[e].push(t);else{var a,u;if(void 0!==n)for(var i=document.getElementsByTagName("script"),s=0;s=o)&&Object.keys(f.O).every((function(e){return f.O[e](n[u])}))?n.splice(u--,1):(a=!1,o0&&e[s-1][2]>o;s--)e[s]=e[s-1];e[s]=[n,r,o]},f.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},f.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);f.r(o);var c={};t=t||[null,n({}),n([]),n(n)];for(var a=2&r&&e;"object"==typeof a&&!~t.indexOf(a);a=n(a))Object.getOwnPropertyNames(a).forEach((function(t){c[t]=function(){return e[t]}}));return c.default=function(){return e},f.d(o,c),o},f.d=function(e,t){for(var n in t)f.o(t,n)&&!f.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},f.f={},f.e=function(e){return Promise.all(Object.keys(f.f).reduce((function(t,n){return f.f[n](e,t),t}),[]))},f.u=function(e){return({147:"component---src-pages-templates-project-tsx",149:"component---src-pages-templates-policies-tsx",354:"component---src-pages-templates-post-tsx",403:"c294adedbbc0a5c4b071b27a5ffb97a116928d98",417:"component---src-pages-templates-services-tsx",514:"component---src-pages-templates-404-tsx",548:"component---src-pages-templates-workflow-tsx",577:"71598b7b9331211c5dc2cdd9e7a07dc39cf581bb",602:"dbbdfb320c5007a40fa91453221d77dae72f3b83",650:"component---src-pages-templates-projects-tsx",748:"component---src-pages-templates-blog-by-author-tsx",832:"component---src-pages-templates-index-tsx",899:"component---src-pages-templates-blog-by-hashtag-tsx",926:"component---src-pages-templates-blog-tsx"}[e]||e)+"-"+{147:"89b796e63f214fd74a94",149:"8d858839168d89834f5b",354:"d9e4800abdf31a9b10bf",403:"83f152d3f32c8162f39f",417:"aa958a39a562031be9ac",475:"9be01aaaffb02978e152",514:"f72e430d4b3c5be8e265",548:"fabfa47493cd522f5d7c",577:"7d9d5075b2c40cb902af",602:"00be99e431fb904367c1",650:"2db44adef862c7339abb",731:"fc2222e8bcbd3a323b37",748:"408b6fd1d4ad17fa5f7c",832:"e4ea008035e9a749aaaa",843:"82fd7f798c0dd9a6f67b",899:"5eb8f20809e2778721c3",926:"fa08d3c19795eb3db5d3"}[e]+".js"},f.miniCssF=function(e){return"styles.89e9083ed75b4db019db.css"},f.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),f.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},o="code-cave:",f.l=function(e,t,n,c){if(r[e])r[e].push(t);else{var a,u;if(void 0!==n)for(var i=document.getElementsByTagName("script"),s=0;s 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"code-cave:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"147\":\"component---src-pages-templates-project-tsx\",\"149\":\"component---src-pages-templates-policies-tsx\",\"354\":\"component---src-pages-templates-post-tsx\",\"403\":\"c294adedbbc0a5c4b071b27a5ffb97a116928d98\",\"417\":\"component---src-pages-templates-services-tsx\",\"514\":\"component---src-pages-templates-404-tsx\",\"548\":\"component---src-pages-templates-workflow-tsx\",\"577\":\"71598b7b9331211c5dc2cdd9e7a07dc39cf581bb\",\"602\":\"dbbdfb320c5007a40fa91453221d77dae72f3b83\",\"650\":\"component---src-pages-templates-projects-tsx\",\"748\":\"component---src-pages-templates-blog-by-author-tsx\",\"832\":\"component---src-pages-templates-index-tsx\",\"899\":\"component---src-pages-templates-blog-by-hashtag-tsx\",\"926\":\"component---src-pages-templates-blog-tsx\"}[chunkId] || chunkId) + \"-\" + {\"147\":\"89b796e63f214fd74a94\",\"149\":\"8d858839168d89834f5b\",\"354\":\"d9e4800abdf31a9b10bf\",\"403\":\"83f152d3f32c8162f39f\",\"417\":\"855dcb43c3da2e141f61\",\"475\":\"9be01aaaffb02978e152\",\"514\":\"f72e430d4b3c5be8e265\",\"548\":\"2a0b9d534d2f2fd33ad1\",\"577\":\"e60b23337f8f1bbec667\",\"602\":\"00be99e431fb904367c1\",\"650\":\"2db44adef862c7339abb\",\"731\":\"fc2222e8bcbd3a323b37\",\"748\":\"408b6fd1d4ad17fa5f7c\",\"832\":\"dd8623d9c743ca99433e\",\"843\":\"82fd7f798c0dd9a6f67b\",\"899\":\"5eb8f20809e2778721c3\",\"926\":\"fa08d3c19795eb3db5d3\"}[chunkId] + \".js\";\n};","// This function allow to reference all chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + \"styles\" + \".\" + \"b87d930069bb5bdcd9f9\" + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t658: 0,\n\t532: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(532|658)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkcode_cave\"] = self[\"webpackChunkcode_cave\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","__proto__","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","call","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","p","b","baseURI","self","location","href","installedChunks","installedChunkData","test","promise","resolve","reject","error","Error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"webpack-runtime-cc6cf993fdfec1422f40.js","mappings":"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","sources":["webpack://code-cave/webpack/runtime/chunk loaded","webpack://code-cave/webpack/runtime/create fake namespace object","webpack://code-cave/webpack/runtime/load script","webpack://code-cave/webpack/bootstrap","webpack://code-cave/webpack/runtime/compat get default export","webpack://code-cave/webpack/runtime/define property getters","webpack://code-cave/webpack/runtime/ensure chunk","webpack://code-cave/webpack/runtime/get javascript chunk filename","webpack://code-cave/webpack/runtime/get mini-css chunk filename","webpack://code-cave/webpack/runtime/global","webpack://code-cave/webpack/runtime/hasOwnProperty shorthand","webpack://code-cave/webpack/runtime/make namespace object","webpack://code-cave/webpack/runtime/publicPath","webpack://code-cave/webpack/runtime/jsonp chunk loading"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"code-cave:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"147\":\"component---src-pages-templates-project-tsx\",\"149\":\"component---src-pages-templates-policies-tsx\",\"354\":\"component---src-pages-templates-post-tsx\",\"403\":\"c294adedbbc0a5c4b071b27a5ffb97a116928d98\",\"417\":\"component---src-pages-templates-services-tsx\",\"514\":\"component---src-pages-templates-404-tsx\",\"548\":\"component---src-pages-templates-workflow-tsx\",\"577\":\"71598b7b9331211c5dc2cdd9e7a07dc39cf581bb\",\"602\":\"dbbdfb320c5007a40fa91453221d77dae72f3b83\",\"650\":\"component---src-pages-templates-projects-tsx\",\"748\":\"component---src-pages-templates-blog-by-author-tsx\",\"832\":\"component---src-pages-templates-index-tsx\",\"899\":\"component---src-pages-templates-blog-by-hashtag-tsx\",\"926\":\"component---src-pages-templates-blog-tsx\"}[chunkId] || chunkId) + \"-\" + {\"147\":\"89b796e63f214fd74a94\",\"149\":\"8d858839168d89834f5b\",\"354\":\"d9e4800abdf31a9b10bf\",\"403\":\"83f152d3f32c8162f39f\",\"417\":\"aa958a39a562031be9ac\",\"475\":\"9be01aaaffb02978e152\",\"514\":\"f72e430d4b3c5be8e265\",\"548\":\"fabfa47493cd522f5d7c\",\"577\":\"7d9d5075b2c40cb902af\",\"602\":\"00be99e431fb904367c1\",\"650\":\"2db44adef862c7339abb\",\"731\":\"fc2222e8bcbd3a323b37\",\"748\":\"408b6fd1d4ad17fa5f7c\",\"832\":\"e4ea008035e9a749aaaa\",\"843\":\"82fd7f798c0dd9a6f67b\",\"899\":\"5eb8f20809e2778721c3\",\"926\":\"fa08d3c19795eb3db5d3\"}[chunkId] + \".js\";\n};","// This function allow to reference all chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + \"styles\" + \".\" + \"89e9083ed75b4db019db\" + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t658: 0,\n\t532: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(532|658)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkcode_cave\"] = self[\"webpackChunkcode_cave\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));"],"names":["deferred","leafPrototypes","getProto","inProgress","dataWebpackPrefix","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","Object","keys","every","key","splice","r","n","getter","__esModule","d","a","getPrototypeOf","obj","__proto__","t","value","mode","this","then","ns","create","def","current","indexOf","getOwnPropertyNames","forEach","definition","o","defineProperty","enumerable","get","f","e","chunkId","Promise","all","reduce","promises","u","miniCssF","g","globalThis","Function","window","prop","prototype","hasOwnProperty","call","l","url","done","push","script","needAttach","scripts","document","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","setTimeout","bind","type","target","head","appendChild","Symbol","toStringTag","p","b","baseURI","self","location","href","installedChunks","installedChunkData","test","promise","resolve","reject","error","Error","errorType","realSrc","message","name","request","webpackJsonpCallback","parentChunkLoadingFunction","data","moreModules","runtime","some","id","chunkLoadingGlobal"],"sourceRoot":""} \ No newline at end of file diff --git a/webpack.stats.json b/webpack.stats.json index 4a788a70..9b150d6b 100644 --- a/webpack.stats.json +++ b/webpack.stats.json @@ -1 +1 @@ -{"name":"build-javascript","namedChunkGroups":{"app":{"name":"app","assets":[{"name":"webpack-runtime-cf5c87e3b6d887b1005c.js","size":4831},{"name":"styles.b87d930069bb5bdcd9f9.css","size":52449},{"name":"framework-2f7a9a83fd6996cb764f.js","size":141400},{"name":"app-0c53081a2bc0c8966a79.js","size":350586}],"filteredAssets":0,"assetsSize":549266,"filteredAuxiliaryAssets":17,"auxiliaryAssetsSize":2499051},"component---src-pages-templates-404-tsx":{"name":"component---src-pages-templates-404-tsx","assets":[{"name":"component---src-pages-templates-404-tsx-f72e430d4b3c5be8e265.js","size":1675}],"filteredAssets":0,"assetsSize":1675,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":4354},"component---src-pages-templates-blog-by-author-tsx":{"name":"component---src-pages-templates-blog-by-author-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"component---src-pages-templates-blog-by-author-tsx-408b6fd1d4ad17fa5f7c.js","size":10805}],"filteredAssets":0,"assetsSize":21461,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":99837},"component---src-pages-templates-blog-by-hashtag-tsx":{"name":"component---src-pages-templates-blog-by-hashtag-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"component---src-pages-templates-blog-by-hashtag-tsx-5eb8f20809e2778721c3.js","size":9911}],"filteredAssets":0,"assetsSize":20567,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":96900},"component---src-pages-templates-blog-tsx":{"name":"component---src-pages-templates-blog-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"component---src-pages-templates-blog-tsx-fa08d3c19795eb3db5d3.js","size":9688}],"filteredAssets":0,"assetsSize":20344,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":96541},"component---src-pages-templates-index-tsx":{"name":"component---src-pages-templates-index-tsx","assets":[{"name":"styles.b87d930069bb5bdcd9f9.css","size":52449},{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js","size":30933},{"name":"dbbdfb320c5007a40fa91453221d77dae72f3b83-00be99e431fb904367c1.js","size":18834},{"name":"component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js","size":14090}],"filteredAssets":0,"assetsSize":126962,"filteredAuxiliaryAssets":18,"auxiliaryAssetsSize":848123},"component---src-pages-templates-policies-tsx":{"name":"component---src-pages-templates-policies-tsx","assets":[{"name":"component---src-pages-templates-policies-tsx-8d858839168d89834f5b.js","size":840}],"filteredAssets":0,"assetsSize":840,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":2107},"component---src-pages-templates-post-tsx":{"name":"component---src-pages-templates-post-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"component---src-pages-templates-post-tsx-d9e4800abdf31a9b10bf.js","size":7138}],"filteredAssets":0,"assetsSize":17794,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":86557},"component---src-pages-templates-project-tsx":{"name":"component---src-pages-templates-project-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"dbbdfb320c5007a40fa91453221d77dae72f3b83-00be99e431fb904367c1.js","size":18834},{"name":"component---src-pages-templates-project-tsx-89b796e63f214fd74a94.js","size":8474}],"filteredAssets":0,"assetsSize":37964,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":181678},"component---src-pages-templates-projects-tsx":{"name":"component---src-pages-templates-projects-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"component---src-pages-templates-projects-tsx-2db44adef862c7339abb.js","size":4275}],"filteredAssets":0,"assetsSize":14931,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":81157},"component---src-pages-templates-services-tsx":{"name":"component---src-pages-templates-services-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js","size":30933},{"name":"dbbdfb320c5007a40fa91453221d77dae72f3b83-00be99e431fb904367c1.js","size":18834},{"name":"component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js","size":11644}],"filteredAssets":0,"assetsSize":72067,"filteredAuxiliaryAssets":4,"auxiliaryAssetsSize":342222},"component---src-pages-templates-workflow-tsx":{"name":"component---src-pages-templates-workflow-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js","size":30933},{"name":"component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js","size":5134}],"filteredAssets":0,"assetsSize":46723,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":222908}},"assetsByChunkName":{"app":["webpack-runtime-cf5c87e3b6d887b1005c.js","styles.b87d930069bb5bdcd9f9.css","framework-2f7a9a83fd6996cb764f.js","app-0c53081a2bc0c8966a79.js"],"component---src-pages-templates-404-tsx":["component---src-pages-templates-404-tsx-f72e430d4b3c5be8e265.js"],"component---src-pages-templates-blog-by-author-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","component---src-pages-templates-blog-by-author-tsx-408b6fd1d4ad17fa5f7c.js"],"component---src-pages-templates-blog-by-hashtag-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","component---src-pages-templates-blog-by-hashtag-tsx-5eb8f20809e2778721c3.js"],"component---src-pages-templates-blog-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","component---src-pages-templates-blog-tsx-fa08d3c19795eb3db5d3.js"],"component---src-pages-templates-index-tsx":["styles.b87d930069bb5bdcd9f9.css","c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js","dbbdfb320c5007a40fa91453221d77dae72f3b83-00be99e431fb904367c1.js","component---src-pages-templates-index-tsx-dd8623d9c743ca99433e.js"],"component---src-pages-templates-policies-tsx":["component---src-pages-templates-policies-tsx-8d858839168d89834f5b.js"],"component---src-pages-templates-post-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","component---src-pages-templates-post-tsx-d9e4800abdf31a9b10bf.js"],"component---src-pages-templates-project-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","dbbdfb320c5007a40fa91453221d77dae72f3b83-00be99e431fb904367c1.js","component---src-pages-templates-project-tsx-89b796e63f214fd74a94.js"],"component---src-pages-templates-projects-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","component---src-pages-templates-projects-tsx-2db44adef862c7339abb.js"],"component---src-pages-templates-services-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js","dbbdfb320c5007a40fa91453221d77dae72f3b83-00be99e431fb904367c1.js","component---src-pages-templates-services-tsx-855dcb43c3da2e141f61.js"],"component---src-pages-templates-workflow-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-e60b23337f8f1bbec667.js","component---src-pages-templates-workflow-tsx-2a0b9d534d2f2fd33ad1.js"]},"childAssetsByChunkName":{}} \ No newline at end of file +{"name":"build-javascript","namedChunkGroups":{"app":{"name":"app","assets":[{"name":"webpack-runtime-cc6cf993fdfec1422f40.js","size":4831},{"name":"styles.89e9083ed75b4db019db.css","size":52486},{"name":"framework-2f7a9a83fd6996cb764f.js","size":141400},{"name":"app-0c53081a2bc0c8966a79.js","size":350586}],"filteredAssets":0,"assetsSize":549303,"filteredAuxiliaryAssets":17,"auxiliaryAssetsSize":2499051},"component---src-pages-templates-404-tsx":{"name":"component---src-pages-templates-404-tsx","assets":[{"name":"component---src-pages-templates-404-tsx-f72e430d4b3c5be8e265.js","size":1675}],"filteredAssets":0,"assetsSize":1675,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":4354},"component---src-pages-templates-blog-by-author-tsx":{"name":"component---src-pages-templates-blog-by-author-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"component---src-pages-templates-blog-by-author-tsx-408b6fd1d4ad17fa5f7c.js","size":10805}],"filteredAssets":0,"assetsSize":21461,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":99837},"component---src-pages-templates-blog-by-hashtag-tsx":{"name":"component---src-pages-templates-blog-by-hashtag-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"component---src-pages-templates-blog-by-hashtag-tsx-5eb8f20809e2778721c3.js","size":9911}],"filteredAssets":0,"assetsSize":20567,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":96900},"component---src-pages-templates-blog-tsx":{"name":"component---src-pages-templates-blog-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"component---src-pages-templates-blog-tsx-fa08d3c19795eb3db5d3.js","size":9688}],"filteredAssets":0,"assetsSize":20344,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":96541},"component---src-pages-templates-index-tsx":{"name":"component---src-pages-templates-index-tsx","assets":[{"name":"styles.89e9083ed75b4db019db.css","size":52486},{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js","size":30934},{"name":"dbbdfb320c5007a40fa91453221d77dae72f3b83-00be99e431fb904367c1.js","size":18834},{"name":"component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js","size":14199}],"filteredAssets":0,"assetsSize":127109,"filteredAuxiliaryAssets":18,"auxiliaryAssetsSize":848421},"component---src-pages-templates-policies-tsx":{"name":"component---src-pages-templates-policies-tsx","assets":[{"name":"component---src-pages-templates-policies-tsx-8d858839168d89834f5b.js","size":840}],"filteredAssets":0,"assetsSize":840,"filteredAuxiliaryAssets":1,"auxiliaryAssetsSize":2107},"component---src-pages-templates-post-tsx":{"name":"component---src-pages-templates-post-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"component---src-pages-templates-post-tsx-d9e4800abdf31a9b10bf.js","size":7138}],"filteredAssets":0,"assetsSize":17794,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":86557},"component---src-pages-templates-project-tsx":{"name":"component---src-pages-templates-project-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"dbbdfb320c5007a40fa91453221d77dae72f3b83-00be99e431fb904367c1.js","size":18834},{"name":"component---src-pages-templates-project-tsx-89b796e63f214fd74a94.js","size":8474}],"filteredAssets":0,"assetsSize":37964,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":181678},"component---src-pages-templates-projects-tsx":{"name":"component---src-pages-templates-projects-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"component---src-pages-templates-projects-tsx-2db44adef862c7339abb.js","size":4275}],"filteredAssets":0,"assetsSize":14931,"filteredAuxiliaryAssets":2,"auxiliaryAssetsSize":81157},"component---src-pages-templates-services-tsx":{"name":"component---src-pages-templates-services-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js","size":30934},{"name":"dbbdfb320c5007a40fa91453221d77dae72f3b83-00be99e431fb904367c1.js","size":18834},{"name":"component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js","size":11645}],"filteredAssets":0,"assetsSize":72069,"filteredAuxiliaryAssets":4,"auxiliaryAssetsSize":342221},"component---src-pages-templates-workflow-tsx":{"name":"component---src-pages-templates-workflow-tsx","assets":[{"name":"c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","size":10656},{"name":"71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js","size":30934},{"name":"component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js","size":5279}],"filteredAssets":0,"assetsSize":46869,"filteredAuxiliaryAssets":3,"auxiliaryAssetsSize":223293}},"assetsByChunkName":{"app":["webpack-runtime-cc6cf993fdfec1422f40.js","styles.89e9083ed75b4db019db.css","framework-2f7a9a83fd6996cb764f.js","app-0c53081a2bc0c8966a79.js"],"component---src-pages-templates-404-tsx":["component---src-pages-templates-404-tsx-f72e430d4b3c5be8e265.js"],"component---src-pages-templates-blog-by-author-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","component---src-pages-templates-blog-by-author-tsx-408b6fd1d4ad17fa5f7c.js"],"component---src-pages-templates-blog-by-hashtag-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","component---src-pages-templates-blog-by-hashtag-tsx-5eb8f20809e2778721c3.js"],"component---src-pages-templates-blog-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","component---src-pages-templates-blog-tsx-fa08d3c19795eb3db5d3.js"],"component---src-pages-templates-index-tsx":["styles.89e9083ed75b4db019db.css","c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js","dbbdfb320c5007a40fa91453221d77dae72f3b83-00be99e431fb904367c1.js","component---src-pages-templates-index-tsx-e4ea008035e9a749aaaa.js"],"component---src-pages-templates-policies-tsx":["component---src-pages-templates-policies-tsx-8d858839168d89834f5b.js"],"component---src-pages-templates-post-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","component---src-pages-templates-post-tsx-d9e4800abdf31a9b10bf.js"],"component---src-pages-templates-project-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","dbbdfb320c5007a40fa91453221d77dae72f3b83-00be99e431fb904367c1.js","component---src-pages-templates-project-tsx-89b796e63f214fd74a94.js"],"component---src-pages-templates-projects-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","component---src-pages-templates-projects-tsx-2db44adef862c7339abb.js"],"component---src-pages-templates-services-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js","dbbdfb320c5007a40fa91453221d77dae72f3b83-00be99e431fb904367c1.js","component---src-pages-templates-services-tsx-aa958a39a562031be9ac.js"],"component---src-pages-templates-workflow-tsx":["c294adedbbc0a5c4b071b27a5ffb97a116928d98-83f152d3f32c8162f39f.js","71598b7b9331211c5dc2cdd9e7a07dc39cf581bb-7d9d5075b2c40cb902af.js","component---src-pages-templates-workflow-tsx-fabfa47493cd522f5d7c.js"]},"childAssetsByChunkName":{}} \ No newline at end of file diff --git a/workflow/index.html b/workflow/index.html index 04a4bb90..e7885188 100644 --- a/workflow/index.html +++ b/workflow/index.html @@ -1,6 +1,6 @@ -

cover

1

Discovering

Tell us more about your business on a discovery call. We’ll discuss your project requirements, success criteria, timescale, budget and required skill sets to see if we can help.

2

Brainstorming

Using first-step information we'll take a deep dive into your target audience, needs and challenges of your business, customers, and desired technology.

3

Defining

We’ll quickly define your project roadmap, select the right tools and technologies. We’ll assemble your team and assign you a PM.

4

Proposition

Complete solution for your project will be proposed as soon as possible. Every effort will be made to reach an agreement on all issues.

5

Development

Once we have a contract, development process starts immediately. Our high skilled team definitelly will meet all the project's goals and wrap it in a reliable easily maintained solution.

6

Launch

Congratulations! Successfully released product and non-broken deadlines are irrefutable evidence of your right desicion to choose CodeCave as your partner.

7

Maintenance

The product won't be abandoned, we'll provide you long term maintenance support. And that's the main reason why we're highly intrested in clear code, agile and scalable solution.

A BIT MORE ABOUT US

Consistency and standards

No surprises! We are consistent and have many time-tested techniques at our disposal

Team efficiency = cost efficiency

We know how to assemble the perfect team to protect you from paying extra

Responsible development

We provide light and clear coding, that helps us to escape unbreakable loops of re-development.

Relationships

We create a transparent relationship with our customer. Mutual trust and straightforward communication are the key.

Flexibility

We're ready to face new challenges at any stage of the project.

Curious minds

We're constantly keeping an eye on tech advancements and possible ways to implement it in our work

asdfas

LET’S DISCUSS YOUR PROJECT

WE’LL BE GLAD TO HEAR FROM YOU!

Describe your project or idea to get our expert assessment.

+ }]);

cover

1

Discovering

Tell us more about your business on a discovery call. We’ll discuss your project requirements, success criteria, timescale, budget and required skill sets to see if we can help.

2

Brainstorming

Using first-step information we'll take a deep dive into your target audience, needs and challenges of your business, customers, and desired technology.

3

Defining

We’ll quickly define your project roadmap, select the right tools and technologies. We’ll assemble your team and assign you a PM.

4

Proposition

Complete solution for your project will be proposed as soon as possible. Every effort will be made to reach an agreement on all issues.

5

Development

Once we have a contract, development process starts immediately. Our high skilled team definitelly will meet all the project's goals and wrap it in a reliable easily maintained solution.

6

Launch

Congratulations! Successfully released product and non-broken deadlines are irrefutable evidence of your right desicion to choose CodeCave as your partner.

7

Maintenance

The product won't be abandoned, we'll provide you long term maintenance support. And that's the main reason why we're highly intrested in clear code, agile and scalable solution.

A BIT MORE ABOUT US

Consistency and standards

No surprises! We are consistent and have many time-tested techniques at our disposal

Team efficiency = cost efficiency

We know how to assemble the perfect team to protect you from paying extra

Responsible development

We provide light and clear coding, that helps us to escape unbreakable loops of re-development.

Relationships

We create a transparent relationship with our customer. Mutual trust and straightforward communication are the key.

Flexibility

We're ready to face new challenges at any stage of the project.

Curious minds

We're constantly keeping an eye on tech advancements and possible ways to implement it in our work

anchor

LET’S DISCUSS YOUR PROJECT

WE’LL BE GLAD TO HEAR FROM YOU!

Describe your project or idea to get our expert assessment.

It’s totally free! No strings attached.

We can easily jump into a complex ongoing project or start from scratch.

Don’t miss this opportunity, contact us!

CONTACTS

EIN: 35-2654711, Company Code: 7296176

8 The Green STE B

Dover, DE 19901-3618, United States

+1 302 364 0193

Privacy PolicyCookie Policy

Leave your contact to get our portfolio

- \ No newline at end of file + \ No newline at end of file